591 lines
15 KiB
C
591 lines
15 KiB
C
/*
|
|
* Copyright (C) 2016 The Android Open Source Project
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
#ifndef __NANOHUBPACKET_H
|
|
#define __NANOHUBPACKET_H
|
|
|
|
/**
|
|
* Formats and constants related to nanohub packets. This header is intended
|
|
* to be shared between the host Linux kernel and the nanohub implementation.
|
|
*/
|
|
#include "toolchain.h"
|
|
|
|
#ifdef __KERNEL__
|
|
#include <linux/types.h>
|
|
#else
|
|
#include <hostIntf.h>
|
|
#include <stdint.h>
|
|
|
|
typedef uint16_t __le16;
|
|
typedef uint16_t __be16;
|
|
typedef uint32_t __le32;
|
|
typedef uint32_t __be32;
|
|
typedef uint64_t __le64;
|
|
typedef uint64_t __be64;
|
|
#endif
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubPacket {
|
|
uint8_t sync;
|
|
__le32 seq;
|
|
__le32 reason;
|
|
uint8_t len;
|
|
uint8_t data[0];
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubPacketFooter {
|
|
__le32 crc;
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
static inline struct NanohubPacketFooter *nanohubGetPacketFooter(struct NanohubPacket *packet)
|
|
{
|
|
return (struct NanohubPacketFooter *)(packet->data + packet->len);
|
|
}
|
|
|
|
#define NANOHUB_PACKET_SIZE(len) \
|
|
(sizeof(struct NanohubPacket) + (len) + sizeof(struct NanohubPacketFooter))
|
|
|
|
#define NANOHUB_PACKET_PAYLOAD_MAX 255
|
|
#define NANOHUB_PACKET_SIZE_MAX NANOHUB_PACKET_SIZE(NANOHUB_PACKET_PAYLOAD_MAX)
|
|
#define NANOHUB_PACKET_SIZE_MIN NANOHUB_PACKET_SIZE(0)
|
|
|
|
#define NANOHUB_SYNC_BYTE 0x31
|
|
|
|
#define NANOHUB_PREAMBLE_BYTE 0xFF
|
|
#define NANOHUB_ACK_PREAMBLE_LEN 16
|
|
#define NANOHUB_PAYLOAD_PREAMBLE_LEN 512
|
|
#define NANOHUB_RSA_KEY_CHUNK_LEN 64
|
|
|
|
#define NANOHUB_INT_BOOT_COMPLETE 0
|
|
#define NANOHUB_INT_WAKE_COMPLETE 0
|
|
#define NANOHUB_INT_WAKEUP 1
|
|
#define NANOHUB_INT_NONWAKEUP 2
|
|
#define NANOHUB_INT_CMD_WAIT 3
|
|
|
|
#define NANOHUB_REASON_ACK 0x00000000
|
|
#define NANOHUB_REASON_NAK 0x00000001
|
|
#define NANOHUB_REASON_NAK_BUSY 0x00000002
|
|
|
|
/**
|
|
* INFORMATIONAL
|
|
*/
|
|
|
|
#define NANOHUB_REASON_GET_OS_HW_VERSIONS 0x00001000
|
|
#if defined(__GNUC__)
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubOsHwVersionsRequest {
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
#endif
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubOsHwVersionsResponse {
|
|
__le16 hwType;
|
|
__le16 hwVer;
|
|
__le16 blVer;
|
|
__le16 osVer;
|
|
__le32 variantVer;
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
#define NANOHUB_REASON_GET_APP_VERSIONS 0x00001001
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubAppVersionsRequest {
|
|
__le64 appId;
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubAppVersionsResponse {
|
|
__le32 appVer;
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
#define NANOHUB_REASON_QUERY_APP_INFO 0x00001002
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubAppInfoRequest {
|
|
__le32 appIdx;
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubAppInfoResponse {
|
|
__le64 appId;
|
|
__le32 appVer;
|
|
__le32 appSize;
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
#define NANOHUB_REASON_START_FIRMWARE_UPLOAD 0x00001040
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubStartFirmwareUploadRequest {
|
|
__le32 size;
|
|
__le32 crc;
|
|
uint8_t type;
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubStartFirmwareUploadResponse {
|
|
uint8_t accepted;
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
#define NANOHUB_REASON_FIRMWARE_CHUNK 0x00001041
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubFirmwareChunkRequest {
|
|
__le32 offset;
|
|
uint8_t data[NANOHUB_PACKET_PAYLOAD_MAX-sizeof(__le32)];
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
enum NanohubFirmwareChunkReply {
|
|
NANOHUB_FIRMWARE_CHUNK_REPLY_ACCEPTED = 0,
|
|
NANOHUB_FIRMWARE_CHUNK_REPLY_WAIT,
|
|
NANOHUB_FIRMWARE_CHUNK_REPLY_RESEND,
|
|
NANOHUB_FIRMWARE_CHUNK_REPLY_RESTART,
|
|
NANOHUB_FIRMWARE_CHUNK_REPLY_CANCEL,
|
|
NANOHUB_FIRMWARE_CHUNK_REPLY_CANCEL_NO_RETRY,
|
|
NANOHUB_FIRMWARE_CHUNK_REPLY_NO_SPACE,
|
|
};
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubFirmwareChunkResponse {
|
|
uint8_t chunkReply;
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
#define NANOHUB_REASON_FINISH_FIRMWARE_UPLOAD 0x00001042
|
|
|
|
#if defined(__GNUC__)
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubFinishFirmwareUploadRequest {
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
#endif
|
|
|
|
enum NanohubFirmwareUploadReply {
|
|
NANOHUB_FIRMWARE_UPLOAD_SUCCESS = 0,
|
|
NANOHUB_FIRMWARE_UPLOAD_PROCESSING,
|
|
NANOHUB_FIRMWARE_UPLOAD_WAITING_FOR_DATA,
|
|
NANOHUB_FIRMWARE_UPLOAD_APP_SEC_KEY_NOT_FOUND,
|
|
NANOHUB_FIRMWARE_UPLOAD_APP_SEC_HEADER_ERROR,
|
|
NANOHUB_FIRMWARE_UPLOAD_APP_SEC_TOO_MUCH_DATA,
|
|
NANOHUB_FIRMWARE_UPLOAD_APP_SEC_TOO_LITTLE_DATA,
|
|
NANOHUB_FIRMWARE_UPLOAD_APP_SEC_SIG_VERIFY_FAIL,
|
|
NANOHUB_FIRMWARE_UPLOAD_APP_SEC_SIG_DECODE_FAIL,
|
|
NANOHUB_FIRMWARE_UPLOAD_APP_SEC_SIG_ROOT_UNKNOWN,
|
|
NANOHUB_FIRMWARE_UPLOAD_APP_SEC_MEMORY_ERROR,
|
|
NANOHUB_FIRMWARE_UPLOAD_APP_SEC_INVALID_DATA,
|
|
NANOHUB_FIRMWARE_UPLOAD_APP_SEC_VERIFY_FAILED,
|
|
NANOHUB_FIRMWARE_UPLOAD_APP_SEC_BAD,
|
|
};
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubFinishFirmwareUploadResponse {
|
|
uint8_t uploadReply;
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
#define NANOHUB_REASON_GET_INTERRUPT 0x00001080
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubGetInterruptRequest {
|
|
uint32_t clear[HOSTINTF_MAX_INTERRUPTS/(32*sizeof(uint8_t))];
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubGetInterruptResponse {
|
|
uint32_t interrupts[HOSTINTF_MAX_INTERRUPTS/(32*sizeof(uint8_t))];
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
#define NANOHUB_REASON_MASK_INTERRUPT 0x00001081
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubMaskInterruptRequest {
|
|
uint8_t interrupt;
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubMaskInterruptResponse {
|
|
uint8_t accepted;
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
#define NANOHUB_REASON_UNMASK_INTERRUPT 0x00001082
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubUnmaskInterruptRequest {
|
|
uint8_t interrupt;
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubUnmaskInterruptResponse {
|
|
uint8_t accepted;
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
#define NANOHUB_REASON_READ_EVENT 0x00001090
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubReadEventRequest {
|
|
__le64 apBootTime;
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubReadEventResponse {
|
|
__le32 evtType;
|
|
uint8_t evtData[NANOHUB_PACKET_PAYLOAD_MAX - sizeof(__le32)];
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
#define NANOHUB_REASON_WRITE_EVENT 0x00001091
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubWriteEventRequest {
|
|
__le32 evtType;
|
|
uint8_t evtData[NANOHUB_PACKET_PAYLOAD_MAX - sizeof(__le32)];
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubWriteEventResponse {
|
|
uint8_t accepted;
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
// this behaves more stable w.r.t. endianness than bit field
|
|
// this is setting byte fields in MgmtStatus response
|
|
// the high-order bit, if set, is indication of counter overflow
|
|
#define SET_COUNTER(counter, val) (counter = (val & 0x7F) | (val > 0x7F ? 0x80 : 0))
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct MgmtStatus {
|
|
union {
|
|
__le32 value;
|
|
// NOTE: union fields are accessed in CPU native mode
|
|
struct {
|
|
uint8_t app;
|
|
uint8_t task;
|
|
uint8_t op;
|
|
uint8_t erase;
|
|
} ATTRIBUTE_PACKED;
|
|
};
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
#ifdef LEGACY_HAL_ENABLED
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubHalLegacyHdr {
|
|
uint64_t appId;
|
|
uint8_t len;
|
|
uint8_t msg;
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
#define NANOHUB_HAL_LEGACY_EXT_APPS_ON 0
|
|
#define NANOHUB_HAL_LEGACY_EXT_APPS_OFF 1
|
|
#define NANOHUB_HAL_LEGACY_EXT_APP_DELETE 2
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubHalLegacyMgmtRx {
|
|
__le64 appId;
|
|
struct MgmtStatus stat;
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubHalLegacyMgmtTx {
|
|
struct NanohubHalLegacyHdr hdr;
|
|
__le32 status;
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
#define NANOHUB_HAL_LEGACY_QUERY_MEMINFO 3
|
|
#define NANOHUB_HAL_LEGACY_QUERY_APPS 4
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubHalLegacyQueryAppsRx {
|
|
__le32 idx;
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubHalLegacyQueryAppsTx {
|
|
struct NanohubHalLegacyHdr hdr;
|
|
__le64 appId;
|
|
__le32 version;
|
|
__le32 flashUse;
|
|
__le32 ramUse;
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
#define NANOHUB_HAL_LEGACY_QUERY_RSA_KEYS 5
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubHalLegacyQueryRsaKeysRx {
|
|
__le32 offset;
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubHalLegacyQueryRsaKeysTx {
|
|
struct NanohubHalLegacyHdr hdr;
|
|
uint8_t data[];
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
#define NANOHUB_HAL_LEGACY_START_UPLOAD 6
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubHalLegacyStartUploadRx {
|
|
uint8_t isOs;
|
|
__le32 length;
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubHalLegacyStartUploadTx {
|
|
struct NanohubHalLegacyHdr hdr;
|
|
uint8_t success;
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
#define NANOHUB_HAL_LEGACY_CONT_UPLOAD 7
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubHalLegacyContUploadRx {
|
|
__le32 offset;
|
|
uint8_t data[];
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubHalLegacyContUploadTx {
|
|
struct NanohubHalLegacyHdr hdr;
|
|
uint8_t success;
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
#define NANOHUB_HAL_LEGACY_FINISH_UPLOAD 8
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubHalLegacyFinishUploadTx {
|
|
struct NanohubHalLegacyHdr hdr;
|
|
uint8_t success;
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
#define NANOHUB_HAL_LEGACY_REBOOT 9
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubHalLegacyRebootTx {
|
|
struct NanohubHalLegacyHdr hdr;
|
|
__le32 reason;
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
#endif /* LEGACY_HAL_ENABLED */
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubHalHdr {
|
|
__le64 appId;
|
|
uint8_t len;
|
|
__le32 transactionId;
|
|
__le16 unused;
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubHalRet {
|
|
uint8_t msg;
|
|
__le32 status;
|
|
} ATTRIBUTE_PACKED;
|
|
|
|
#define NANOHUB_HAL_APP_MGMT 0x10
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubHalAppMgmtRx {
|
|
__le64 appId;
|
|
uint8_t cmd;
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
#define NANOHUB_HAL_APP_MGMT_START 0
|
|
#define NANOHUB_HAL_APP_MGMT_STOP 1
|
|
#define NANOHUB_HAL_APP_MGMT_UNLOAD 2
|
|
#define NANOHUB_HAL_APP_MGMT_DELETE 3
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubHalAppMgmtTx {
|
|
struct NanohubHalHdr hdr;
|
|
struct NanohubHalRet ret;
|
|
uint8_t cmd;
|
|
struct MgmtStatus stat;
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
#define NANOHUB_HAL_SYS_MGMT 0x11
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubHalSysMgmtRx {
|
|
uint8_t cmd;
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
#define NANOHUB_HAL_SYS_MGMT_ERASE 0
|
|
#define NANOHUB_HAL_SYS_MGMT_REBOOT 1
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubHalSysMgmtTx {
|
|
struct NanohubHalHdr hdr;
|
|
struct NanohubHalRet ret;
|
|
uint8_t cmd;
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
#define NANOHUB_HAL_APP_INFO 0x12
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubHalAppInfoRx {
|
|
__le32 addr;
|
|
uint8_t tags[HOST_HUB_CHRE_PACKET_MAX_LEN - sizeof(__le32)];
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
#define NANOHUB_HAL_APP_INFO_APPID 0x00
|
|
#define NANOHUB_HAL_APP_INFO_CRC 0x01
|
|
#define NANOHUB_HAL_APP_INFO_TID 0x02
|
|
#define NANOHUB_HAL_APP_INFO_VERSION 0x03
|
|
#define NANOHUB_HAL_APP_INFO_ADDR 0x04
|
|
#define NANOHUB_HAL_APP_INFO_SIZE 0x05
|
|
#define NANOHUB_HAL_APP_INFO_HEAP 0x06
|
|
#define NANOHUB_HAL_APP_INFO_DATA 0x07
|
|
#define NANOHUB_HAL_APP_INFO_BSS 0x08
|
|
#define NANOHUB_HAL_APP_INFO_CHRE_MAJOR 0x09
|
|
#define NANOHUB_HAL_APP_INFO_CHRE_MINOR 0x0A
|
|
#define NANOHUB_HAL_APP_INFO_END 0xFF
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubHalAppInfoTx {
|
|
struct NanohubHalHdr hdr;
|
|
struct NanohubHalRet ret;
|
|
uint8_t data[HOST_HUB_CHRE_PACKET_MAX_LEN - sizeof(struct NanohubHalRet)];
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
#define NANOHUB_HAL_SYS_INFO 0x13
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubHalSysInfoRx {
|
|
uint8_t tags[HOST_HUB_CHRE_PACKET_MAX_LEN];
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
#define NANOHUB_HAL_SYS_INFO_HEAP_FREE 0x0F
|
|
#define NANOHUB_HAL_SYS_INFO_RAM_SIZE 0x12
|
|
#define NANOHUB_HAL_SYS_INFO_EEDATA_SIZE 0x13
|
|
#define NANOHUB_HAL_SYS_INFO_EEDATA_FREE 0x14
|
|
#define NANOHUB_HAL_SYS_INFO_CODE_SIZE 0x15
|
|
#define NANOHUB_HAL_SYS_INFO_CODE_FREE 0x16
|
|
#define NANOHUB_HAL_SYS_INFO_SHARED_SIZE 0x17
|
|
#define NANOHUB_HAL_SYS_INFO_SHARED_FREE 0x18
|
|
#define NANOHUB_HAL_SYS_INFO_END 0xFF
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubHalSysInfoTx {
|
|
struct NanohubHalHdr hdr;
|
|
struct NanohubHalRet ret;
|
|
uint8_t data[HOST_HUB_CHRE_PACKET_MAX_LEN - sizeof(struct NanohubHalRet)];
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
#define NANOHUB_HAL_KEY_INFO 0x14
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubHalKeyInfoRx {
|
|
uint32_t keyNum;
|
|
uint32_t dataOffset;
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubHalKeyInfoTx {
|
|
struct NanohubHalHdr hdr;
|
|
struct NanohubHalRet ret;
|
|
uint32_t keyLength;
|
|
uint8_t data[NANOHUB_RSA_KEY_CHUNK_LEN];
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
#define NANOHUB_HAL_START_UPLOAD 0x16
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubHalStartUploadRx {
|
|
uint8_t isOs;
|
|
__le32 length;
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubHalStartUploadTx {
|
|
struct NanohubHalHdr hdr;
|
|
struct NanohubHalRet ret;
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
#define NANOHUB_HAL_CONT_UPLOAD 0x17
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubHalContUploadRx {
|
|
__le32 offset;
|
|
uint8_t data[HOST_HUB_CHRE_PACKET_MAX_LEN-sizeof(__le32)];
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubHalContUploadTx {
|
|
struct NanohubHalHdr hdr;
|
|
struct NanohubHalRet ret;
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
#define NANOHUB_HAL_FINISH_UPLOAD 0x18
|
|
|
|
SET_PACKED_STRUCT_MODE_ON
|
|
struct NanohubHalFinishUploadTx {
|
|
struct NanohubHalHdr hdr;
|
|
struct NanohubHalRet ret;
|
|
__le32 addr;
|
|
__le32 crc;
|
|
} ATTRIBUTE_PACKED;
|
|
SET_PACKED_STRUCT_MODE_OFF
|
|
|
|
#endif /* __NANOHUBPACKET_H */
|