You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The ICSSG driver reads the firmware names from device tree. Add
documentation on how these name are read.
Signed-off-by: MD Danish Anwar <[email protected]>
Copy file name to clipboardExpand all lines: source/linux/Foundational_Components/PRU-ICSS/Linux_Drivers/PRU_ICSSG_Ethernet.rst
+57Lines changed: 57 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -901,3 +901,60 @@ SRAM Required for each ICSSG instance (per two ports) is as below.
901
901
902
902
For each ICSSG instance, the SRAM required needs to be contiguous.
903
903
PRUETH only uses the required amount of SRAM from the SRAM/MSMC pool. If PRUETH doesn't get the required amount of SRAM, the prueth_probe() API will return with -ENOMEM error.
904
+
905
+
Firmware Name Handling
906
+
######################
907
+
908
+
Starting from Processor SDK v11.01, the ICSSG PRUETH driver reads firmware names from the device tree instead of using hardcoded values. This change improves flexibility and maintainability, especially when supporting different SoCs or firmware versions.
909
+
910
+
**How firmware names are read:**
911
+
912
+
- The device tree property `firmware-name` is used to specify the firmware names for each core (PRU, RTU, TX_PRU) and for each slice (MAC port).
913
+
- Only the EMAC (Ethernet MAC) firmware names are specified in the device tree.
914
+
- The driver reads these names at probe time and stores them internally.
915
+
- For other supported modes (SWITCH, HSR and PRP), the driver generates the firmware names dynamically by replacing the substring in the EMAC firmware name:
916
+
- `"eth"` is replaced with `"sw"` for SWITCH mode.
917
+
- `"eth"` is replaced with `"hsr"` for HSR mode.
918
+
- `"eth"` is replaced with `"prp"` for PRP mode.
919
+
920
+
921
+
**Device Tree Example for AM65x:**
922
+
923
+
.. code-block:: dts
924
+
925
+
icssg2_eth: icssg2-eth@... {
926
+
...
927
+
firmware-name =
928
+
"ti-pruss/am65x-sr2-pru0-prueth-fw.elf",
929
+
"ti-pruss/am65x-sr2-rtu0-prueth-fw.elf",
930
+
"ti-pruss/am65x-sr2-txpru0-prueth-fw.elf",
931
+
"ti-pruss/am65x-sr2-pru1-prueth-fw.elf",
932
+
"ti-pruss/am65x-sr2-rtu1-prueth-fw.elf",
933
+
"ti-pruss/am65x-sr2-txpru1-prueth-fw.elf";
934
+
...
935
+
};
936
+
937
+
**Device Tree Example for AM64x:**
938
+
939
+
.. code-block:: dts
940
+
941
+
icssg1_eth: icssg1-eth@... {
942
+
...
943
+
firmware-name =
944
+
"ti-pruss/am64x-sr2-pru0-prueth-fw.elf",
945
+
"ti-pruss/am64x-sr2-rtu0-prueth-fw.elf",
946
+
"ti-pruss/am64x-sr2-txpru0-prueth-fw.elf",
947
+
"ti-pruss/am64x-sr2-pru1-prueth-fw.elf",
948
+
"ti-pruss/am64x-sr2-rtu1-prueth-fw.elf",
949
+
"ti-pruss/am64x-sr2-txpru1-prueth-fw.elf";
950
+
...
951
+
};
952
+
953
+
**Notes:**
954
+
955
+
- This approach is backwards compatible with existing AM65x and AM64x device trees, as they already provide the `firmware-name` property.
956
+
- If you need to use a different firmware version, simply update the `firmware-name` property in your device tree.
957
+
- The driver will automatically handle the correct firmware names for all supported modes.
0 commit comments