B OOT ROM AND B OOTING THE P ROCESSOR
B OOT P ROGRAMMING M ODEL
Stack Requirements valid stack (SP, FP dividable by 4) required. 0x400 bytes of free stack suggested CRC 32 Polynomial
Generates a CRC look-up table using CRC0.
bool rom_Crc32Poly(uint32_t ulPolynomial);
PP Define FUNC_ROM_CRC32POLY
Prototype bool rom_Crc32Poly(uint32_t ulPolynomial); Arguments R0: Polynomial
Return Value0: on success -1 on failure
Stack Requirements none
CRC Initcode
The CRC Initcode is called by the bootstream. A respective init block is inserted by the loader utility when invoked by the -crc switch. The CRC Initcode extracts the polynomial from the dArgument field of each block header and calls then the CRC LUT function.
void rom_Crc32Initcode( STRUCT_ROM_BOOT_CONFIG *pBootStruct);
PP Define FUNC_ROM_CRC32INITCODE
Prototype void rom_Crc32Initcode( STRUCT_ROM_BOOT_CONFIG *pBootStruct); Arguments R0: Pointer to pBootStruct
Return Value none
Stack Requirements valid stack (SP, FP dividable by 4) required
ECC Protection
Protects 64-bit values by 8-bit ECC checksum using Hamming 7264 method. If return values equals
ROM_ECC_ERROR_1BIT source data is corrected in place. Cycle count is independent of data and
whether correction takes place or not.
uint8_t rom_Ecc(u64 *pData, uint8_t bChksum, bool bDecode);
PP Define FUNC_ROM_ECC
Prototype uint8_t rom_Ecc(u64 *pData, uint8_t bChksum, bool bDecode);
ADSP-BF60X B LACKFIN P ROCESSOR H ARDWARE R EFERENCE

我要评论