API Reference
When dealing with indirect blocks, there are restrictions on the amount of data that can be loaded depending on the
size of the intermediate buffer. For this reason the nFlags parameter is used to indicate the status of the callback
when handling larger blocks of indirect data. The table below defines the supported flags:
Bit Position
0
1
2
3
31:4
When a callback block header is received by the boot kernel a call to the callback is performed with the
ROM_CBFLAG_DIRECT flag set. If the ROM_BFLAG_INDIRECT flag or the ROM_BFLAG_PAGEMODE flags
are set indicating the use of indirect or page mode the ROM_CBFLAG_FIRST and ROM_CBFLAG_FINAL flags
are cleared. If the transfer is a direct transfer straight to the final destination and not via the intermediate buffers
then the ROM_CBFLAG_FIRST and ROM_CBFLAG_FINAL flags are also set.
This allows software to identify a callback call based on the processing of a block header with the
ROM_BFLAG_CALLBACK flag set.
In addition to callbacks being performed on processing of the block header they are also called when processing
payloads indirectly or when page mode is enabled. When the callback is called as a result of processing the payload
data via the intermediate buffers ROM_CBFLAG_DIRECT is cleared. If the callback is being called as a result of
fetching the first block of data in the payload the ROM_CBFLAG_FIRST flag is set. If the complete block of data
fits in the intermediate buffer is also set. If the payload does not fit completely in the intermediate buffers multiple
fetches must take place and thus multiple callbacks generated. If no flags are set it indicates a callback on a payload
transfer and it is neither the first nor the last block of data in the payload, so there is still further data in the payload
to be fetched. If only ROM_CBFLAG_FINAL is set then it is the final block in a payload transfer.
The following table provides an overview of the flag states and their meaning for the processing of callbacks.
ROM_CBFLAG_
ROM_CBFLAG_
DIRECT
PAGESTART
1
0
1
0
0
1
53–80
Flag Name
ROM_CBFLAG_DIRECT
ROM_CBLAG_PAGESTART
ROM_CBFLAG_FIRST
ROM_CBFLAG_FINAL
Reserved
ROM_CBFLAG_
FIRST
0
1
0
ADSP-SC58x/ADSP-2158x SHARC+ Processor Hardware Reference
Description
When set indicates the call was from the processing of a block head-
er with the ROM_BFLAG_CALLBACK flag set
Indicates the callback was a result of a fetch of a page of data to the
intermediate buffers
Set if the first fetch of payload data
Set if the final fetch of payload data
Reserved
ROM_CBFLAG_
Description
FINAL
0
Callback as a result of processing a block
header with indirect or pagemode enabled
1
Callback as a result of processing a block
header with indirect and pagemode disabled
0
Callback as a result of fetching a page of data
in pagemode
Need help?
Do you have a question about the ADSP-SC58 Series and is the answer not in the manual?