This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM6442: Firmware files for ICSSG interface

Part Number: AM6442


Tool/software:

Hi Team,

We are using AM6442 processor in our custom design and our requirement is to use ICSSG0 as well as ICSSG1 interface. For the ICSSG to work its required to have the firmware file in the Filesystem and in the devices, tree following firmware are listed 

"ti-pruss/am64x-sr2-pru0-prueth-fw.elf",
"ti-pruss/am64x-sr2-rtu0-prueth-fw.elf",
"ti-pruss/am64x-sr2-txpru0-prueth-fw.elf",
"ti-pruss/am64x-sr2-pru1-prueth-fw.elf",
"ti-pruss/am64x-sr2-rtu1-prueth-fw.elf",
"ti-pruss/am64x-sr2-txpru1-prueth-fw.elf"

From the filesystem I could find below mentioned firmware only

ls /lib/firmware/ti-pruss/
am335x-pru0-prueth-fw.elf       am437x-pru0-pruhsr-fw.elf       am57xx-pru0-prusw-fw.elf        am65x-rtu1-prueth-fw.elf        am65x-sr2-rtu0-prueth-fw.elf    am65x-sr2-txpru0-pruhsr-fw.elf
am335x-pru0-pruhsr-fw.elf       am437x-pru0-prusw-fw.elf        am57xx-pru1-prueth-fw.elf       am65x-sr2-pru0-prueth-fw.elf    am65x-sr2-rtu0-pruhsr-fw.elf    am65x-sr2-txpru0-prusw-fw.elf
am335x-pru0-prusw-fw.elf        am437x-pru1-prueth-fw.elf       am57xx-pru1-pruhsr-fw.elf       am65x-sr2-pru0-pruhsr-fw.elf    am65x-sr2-rtu0-prusw-fw.elf     am65x-sr2-txpru1-prueth-fw.elf
am335x-pru1-prueth-fw.elf       am437x-pru1-pruhsr-fw.elf       am57xx-pru1-prusw-fw.elf        am65x-sr2-pru0-prusw-fw.elf     am65x-sr2-rtu1-prueth-fw.elf    am65x-sr2-txpru1-pruhsr-fw.elf
am335x-pru1-pruhsr-fw.elf       am437x-pru1-prusw-fw.elf        am65x-pru0-prueth-fw.elf        am65x-sr2-pru1-prueth-fw.elf    am65x-sr2-rtu1-pruhsr-fw.elf    am65x-sr2-txpru1-prusw-fw.elf
am335x-pru1-prusw-fw.elf        am57xx-pru0-prueth-fw.elf       am65x-pru1-prueth-fw.elf        am65x-sr2-pru1-pruhsr-fw.elf    am65x-sr2-rtu1-prusw-fw.elf
am437x-pru0-prueth-fw.elf       am57xx-pru0-pruhsr-fw.elf       am65x-rtu0-prueth-fw.elf        am65x-sr2-pru1-prusw-fw.elf     am65x-sr2-txpru0-prueth-fw.elf

So, I want to clear some of the points

  1. The firmware listed in the device tree could not be found in the Filesystem
  2. Where could we download the above-mentioned files "am64xXXXXX-fw.elf" files?
  3. Are the files found in the FS is enough for the ICSSG to work.

Regards,

Shwetha Nayak

  • Hello Shwetha,

    Apologies for the confusion here.

    In all of our current software releases, we are using the same PRU binary files for both AM64x & AM65x. That is why you only see binaries named am65* on the filesystem for SDKs 10.1 and earlier. AM64x uses the am65x-sr2-* binaries.

    Wait a minute - I thought the remoteproc driver grabs the firmware name from the Linux devicetree entry. What is going on here? 

    That is how it works for loading regular PRU binary files, as well as loading R5F & M4F cores.

    However, at this point in time, the PRU Ethernet driver has hardcoded the binary names that it loads into the PRU cores. So the Linux devicetree entries for firmware-name are ignored for any SDK release where the Linux devicetree and the Linux driver conflict.

    That's confusing. Why did TI change the name in the Linux devicetree from matching the Linux driver to being different from the Linux driver? 

    My understanding is that we will create separate binaries for AM64x and AM65x at some point in time (this is partially related to the fact that the PRU cores on AM65x can only go up to 250MHz, but the PRU cores on AM64x can go up to 333MHz, so we can unlock more performance on AM64x). At that point in time, the Linux driver will be modified to load the PRU firmware specified by the Linux devicetree file.

    I have actually filed requirements to change the name of the AM64x firmware when we start building it separate from AM65x. AM65x silicon revision (SR) 1 had a different PRU Subsystem than AM65x SR2, so it makes sense to label the firmware for AM65x SR2. However, AM64x has always had the same PRU subsystem, so eventually I want the firmware to be named like
    "ti-pruss/am64x-txpru0-prueth-fw.elf" instead of "ti-pruss/am64x-sr2-txpru0-prueth-fw.elf".

    Regards,

    Nick