CRC Checksum Calculation
The ADSP-BF50x Blackfin processors provide an initcode and a callback
routine in ROM that can be used for CRC32 checksum generation during
boot time. The checksum routine only verifies the payload data of the
blocks. The block headers are already protected by the native XOR check-
sum mechanism.
Before boot blocks can be tagged with the
checksum calculation on the blocks, the boot stream must contain an
initcode block with no payload data and with the CRC32 polynomial in
the block header
The initcode registers a proper CRC32 wrapper to the
pointer. The registration principle is similar to the XOR checksum exam-
ple shown in
"Programming Examples" on page
Load Functions
All boot modes are processed by a common boot kernel algorithm. The
major customization is done by a subroutine that must be registered to the
pLoadFunction
type is as follows.
void LoadFunction (ADI_BOOT_DATA* pBootStruct);
The header files define the following type:
typedef void ADI_BOOT_LOAD_FUNC (ADI_BOOT_DATA* ) ;
For a few scenarios some of the flags in the
ADI_BOOT_DATA
slightly modify the boot kernel algorithm.
The boot ROM contains several load functions. One performs a memory
DMA for flash boot, others perform peripheral DMAs or load data from
booting source by polling operation. The first is reused for fill operation
and indirect booting as well.
ADSP-BF50x Blackfin Processor Hardware Reference
word.
ARGUMENT
pointer in the
ADI_BOOT_DATA
structure, such as
BFLAG_PERIPHERAL
System Reset and Booting
flag to enable
BFLAG_CALLBACK
pCallBackFunction
24-82.
structure. Its simple proto-
word of the
dFlags
and
BFLAG_SLAVE
,
24-33
Need help?
Do you have a question about the ADSP-BF506F and is the answer not in the manual?