Hi,
I am developing ethernet driver for LS1043A DPAA on a custom RTOS. So, I am reading about the DPAA and trying to understand it. In between, I noticed a message in U-Boot that "Fman1: Uploading microcode version xxx.xx.xx".
Here, my doubt is, what is the purpose of the FMan microcode? Does it needed even when I am not using the Linux or U-Boot?
In other words, Can I write a raw driver without using the FMAN microcode? Similarly, do I need any other firmware for writing the driver for the DPAA?
Besides these, If you have any sample program or initialization sequence for the DPAA, please let me know. Thank you.
已解决! 转到解答。
FMan functions implemented thru microcode are the following:
A- ‘’Independent Mode’’
Simplified FMan-to-Memory model, bypassing BMan/QMan for Boot/Debug purposes and simple Ethernet driver
B- Table Lookup Coarse Classification
To classify incoming packets thru some protocol headers exact match criteria
C- Advanced packet processing offloads
Header manipulation, IP-Fragmentation/Reassembly, IPSec pre-processing
D- Host Command interface
QMan based FMan control commands used by core/SW for updating some FMan global configuration during operation.
Can FMan provide Ethernet without loading microcode?
Overall answer is YES …
… as far as functions listed for Q1 (IM-Independent Mode, Host Interface, Table Lookup Coarse Classification, Advanced packet processing offloads) are not needed, none of them being strictly mandatory.
Software reference environment provided by FSL (Linux/SDK) or other suppliers require microcode to be loaded ..
What is FMan Independent Mode (IM), what is it used for?
IM is a simplified FMan mode of operation where Ethernet Rx and Tx are managed through simple BD rings as in PowerQUICC and non-DPAA QorIQ devices.
In IM mode, BMan and QMan are not used and thus do not need to be initialized.
IM mode is primarily intended for use during boot phase, before application performs full initialization of all DPAA resources (FMan/BMan/QMan …).
IM can also be used in operational mode (after boot phase) but due to simple BD ring model, the use of IM generally leads to lower Ethernet performance.
I use the ls1046a
In you answer above you say that the FSL Linux/SDK require the microcode to be loaded. Is it the Linux OS or an "user space" application that does the full initialization of the DPAA resources?
Thanks a lot for detailed explanation.
I understand that this microcode is loaded to QUICC Engine Block. If you have any specification or manual regarding the microcode, please share it so that I can decide whether to use it.
I find difficult to find any reference code for the LS1043A (DPAA) Ethernet drivers. Kindly let me know any reference source or application notes for that.
There is no customer-available documents about the microcode.
Please refer to the LSDK User Guide:
FMan functions implemented thru microcode are the following:
A- ‘’Independent Mode’’
Simplified FMan-to-Memory model, bypassing BMan/QMan for Boot/Debug purposes and simple Ethernet driver
B- Table Lookup Coarse Classification
To classify incoming packets thru some protocol headers exact match criteria
C- Advanced packet processing offloads
Header manipulation, IP-Fragmentation/Reassembly, IPSec pre-processing
D- Host Command interface
QMan based FMan control commands used by core/SW for updating some FMan global configuration during operation.
Can FMan provide Ethernet without loading microcode?
Overall answer is YES …
… as far as functions listed for Q1 (IM-Independent Mode, Host Interface, Table Lookup Coarse Classification, Advanced packet processing offloads) are not needed, none of them being strictly mandatory.
Software reference environment provided by FSL (Linux/SDK) or other suppliers require microcode to be loaded ..
What is FMan Independent Mode (IM), what is it used for?
IM is a simplified FMan mode of operation where Ethernet Rx and Tx are managed through simple BD rings as in PowerQUICC and non-DPAA QorIQ devices.
In IM mode, BMan and QMan are not used and thus do not need to be initialized.
IM mode is primarily intended for use during boot phase, before application performs full initialization of all DPAA resources (FMan/BMan/QMan …).
IM can also be used in operational mode (after boot phase) but due to simple BD ring model, the use of IM generally leads to lower Ethernet performance.