39 #include "../inc/hw_flash.h" 45 #define FLASH_API_KEY 0xB7E3A08FU 52 #define FLASH_BANK_0 FLASH_CMDCTL_BANKSEL_BANK0 53 #define FLASH_BANK_1 FLASH_CMDCTL_BANKSEL_BANK1 73 void (*pEnterStandby)(
const uint32_t *pCopyList);
75 uint32_t (*pCrc32)(
const uint8_t *pData, uint32_t nBytes);
77 void (*pApplyCopyList)(
const uint32_t *pList);
79 uint32_t (*pFlashSectorErase)(uint32_t key, uint32_t sectorAddress);
81 uint32_t (*pFlashBankErase)(uint32_t key, uint32_t bankSelect);
83 uint32_t (*pFlashProgram)(uint32_t key,
const uint8_t *pDataBuffer, uint32_t address, uint32_t nBytes);
85 uint32_t (*pCountBits)(uint32_t word);
87 void (*pSecdedEncode)(uint8_t *pParity,
const uint64_t *pData, uint32_t nWords64);
89 int32_t (*pSecdedDecode)(uint64_t *pData,
const uint8_t *pParity, uint32_t nWords64);
91 void (*pReservedDoNotUse)(void);
103 int_fast16_t (*pSha256SwAddData)(
SHA256SW_Handle handle,
const void *data,
size_t length);
107 void (*pResetDevice)(void);
109 void (*pSHA256SwProcessBlock)(uint32_t digest[8], uint32_t Ws[16]);
111 const uint32_t (*pSHA256SW_K256)[64];
113 const uint32_t (*pSHA256SW_initialDigest256)[8];
115 void (*pWaitUs)(uint32_t nUs);
117 uint32_t (*pClz)(uint32_t x);
119 int32_t (*pSbSetUpdateImageAddress)(uint32_t address);
121 uint32_t (*pSbGetUpdateImageAddress)(void);
123 int32_t (*pSbSetId)(uint32_t id);
125 uint32_t (*pSbGetId)(void);
127 void (*pSbSetStatus)(uint32_t status);
129 uint32_t (*pSbGetStatus)(void);
131 bool (*pSetTcmSync)(
bool syncVal);
135 #define HAPI_TABLE_BASE_ADDR 0x0F00004C 136 #define P_HAPITAB ((const HARD_API_T *)HAPI_TABLE_BASE_ADDR) 160 #define HapiEnterStandby(copyList) (P_HAPITAB->pEnterStandby((copyList))) 175 #define HapiCrc32(data, nBytes) (P_HAPITAB->pCrc32((data), (nBytes))) 203 #define HapiApplyCopyList(list) (P_HAPITAB->pApplyCopyList((list))) 231 #define HapiFlashSectorErase(key, addr) (P_HAPITAB->pFlashSectorErase((key), (addr))) 253 #define HapiFlashBankErase(key, bankSelect) (P_HAPITAB->pFlashBankErase((key), (bankSelect))) 291 #define HapiFlashProgram(key, data, addr, nBytes) (P_HAPITAB->pFlashProgram((key), (data), (addr), (nBytes))) 303 #define HapiCountBits(word) (P_HAPITAB->pCountBits((word))) 332 #define HapiSecdedEncode(parity, data, nWords64) (P_HAPITAB->pSecdedEncode((parity), (data), (nWords64))) 350 #define HapiSecdedDecode(data, parity, nWords64) (P_HAPITAB->pSecdedDecode((data), (parity), (nWords64))) 384 #define HapiSha256SwHashData(handle, data, length, digest) \ 385 (P_HAPITAB->pSha256SwHashData((handle), SHA2SW_HASH_TYPE_256, (data), (length), (digest))) 401 #define HapiSha256SwStart(handle) (P_HAPITAB->pSha256SwStart((handle), SHA2SW_HASH_TYPE_256)) 435 #define HapiSha256SwAddData(handle, data, length) (P_HAPITAB->pSha256SwAddData((handle), (data), (length))) 459 #define HapiSha256SwFinalize(handle, digest) (P_HAPITAB->pSha256SwFinalize((handle), (digest))) 469 #define HapiResetDevice() (P_HAPITAB->pResetDevice()) 472 #define HapiSha256SWProcessBlock(d, w) (P_HAPITAB->pSHA256SWProcessBlock((d), (w))) 475 #define HapiSha256SW_K256 (*P_HAPITAB->pSHA256SW_K256) 478 #define HapiSha256SW_initialDigest256 (*P_HAPITAB->pSHA256SW_initialDigest256) 487 #define HapiWaitUs(nUs) (P_HAPITAB->pWaitUs((nUs))) 498 #define HapiClz(x) (P_HAPITAB->pClz((x))) 511 #define HapiSbSetUpdateImageAddress(addr) (P_HAPITAB->pSbSetUpdateImageAddress((addr))) 520 #define HapiSbGetUpdateImageAddress() (P_HAPITAB->pSbGetUpdateImageAddress()) 532 #define HapiSbSetId(id) (P_HAPITAB->pSbSetId((id))) 541 #define HapiSbGetId() (P_HAPITAB->pSbGetId()) 553 #define HapiSbSetStatus(status) (P_HAPITAB->pSbSetStatus((status))) 562 #define HapiSbGetStatus() (P_HAPITAB->pSbGetStatus()) 582 #define HapiSetTcmSync(syncVal) (P_HAPITAB->pSetTcmSync((syncVal))) 595 #define HapiWaitUs HapiWaitUs_veneer
__tz_c_veneer void HapiWaitUs_veneer(uint32_t nUs)
Definition: hapi_veneers.c:41
SHA256SW Object.
Definition: sha256sw.h:217
SHA2SW_HashType
Enum for the hash types supported by the library.
Definition: sha2sw_common.h:53