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.

AM335x PRU Ethernet with TLK110

Other Parts Discussed in Thread: TLK110, SYSBIOS

Hi Team ,

we using tlk110 connected at pru mii (connectivity reference is taken from am335x_ICE board ),


i have added all the driver and pin mux related to the same in this kernal (by refering latest processor sdk-3.00.00.04) and looking forward for your support .

when i build this kernal its successfully built.

i get fallowing log during boot.

[    1.485345] omap-aes 53500000.aes: OMAP AES hw accel rev: 3.2
[    1.492856] omap-sham 53100000.sham: hw accel on OMAP rev 4.3
[    1.498838]  mmcblk0: p1 p2
[    1.502638] omap-sham 53100000.sham: initialization failed.
[    1.508442] omap-sham: probe of 53100000.sham failed with error -22
[    1.518671]  remoteproc0: wkup_m3 is available
[    1.523204]  remoteproc0: Note: remoteproc is still under development and considered experimental.
[    1.532311]  remoteproc0: THE BINARY FORMAT IS NOT YET FINALIZED, and backward compatibility isn't yet guaranteed.
[    1.542913]  remoteproc0: Direct firmware load for am335x-pm-firmware.elf failed with error -2
[    1.552115] ti-pruss 4a300000.pruss: platform data (reset configuration information) missing
[    1.560697]  remoteproc0: Falling back to user helper
[    1.571720] oprofile: using arm/armv7
[    1.575795] Initializing XFRM netlink socket
[    1.580218] NET: Registered protocol family 17
[    1.584720] NET: Registered protocol family 15

i feel the log which is in bold letter is effecting me ,


i have taken pin muxing reference from the processor sdk-3.00.00.04 from am33xx.dtsi and am335x-icev2.dts

after this log kernal completely loads and works perfectly with other things ,


can you even tell am335x-pru0-prueth-fw.elf  am335x-pru1-prueth-fw.elf will get loaded into PRU ?

still pru Ethernet is not detecting can you please guide me .

thanks,

  • Can you describe what you want to do with this PRU MII interface? Some industrial protocol or standard Ethernet?
  • How about this

    [ 1.523204] remoteproc0: Note: remoteproc is still under development and considered experimental.
    [ 1.532311] remoteproc0: THE BINARY FORMAT IS NOT YET FINALIZED, and backward compatibility isn't yet guaranteed.
    [ 1.542913] remoteproc0: Direct firmware load for am335x-pm-firmware.elf failed with error -2
    [ 1.552115] ti-pruss 4a300000.pruss: platform data (reset configuration information) missing
    [ 1.560697] remoteproc0: Falling back to user helper

    can i ignore above logs

    i have verified the above link and fallowed all the steps from the same link.

    ifup eth2

    gives fallowing error

    ifup: ignoring unknown interface eth2.
  • This is the power management firmware, it has nothing to do with PRU Ethernet. Check if your PRU firmware files are in the correct directories.
  • insmod /lib/modules/prueth.ko

    [ 162.949723] prueth: Unknown symbol pruss_cfg_xfr_enable (err 0)
    [ 162.955749] prueth: Unknown symbol rproc_boot (err 0)
    [ 162.961548] prueth: Unknown symbol pruss_cfg_miirt_enable (err 0)
    [ 162.967700] prueth: Unknown symbol pruss_request_mem_region (err 0)
    [ 162.974380] prueth: Unknown symbol pru_rproc_set_ctable (err 0)
    [ 162.980428] prueth: Unknown symbol rproc_shutdown (err 0)
    [ 162.985922] prueth: Unknown symbol pruss_rproc_put (err 0)
    [ 162.991764] prueth: Unknown symbol pruss_release_mem_region (err 0)
    [ 162.998091] prueth: Unknown symbol pruss_rproc_get (err 0)
    [ 163.003885] prueth: Unknown symbol pruss_put (err 0)
    [ 163.008940] prueth: Unknown symbol pruss_cfg_gpimode (err 0)
    [ 163.014633] prueth: Unknown symbol pruss_get (err 0)
    insmod: ERROR: could not insert module /lib/modules/prueth.ko: Unknown symbol in module


    can i know what exactly is the problem.

    i am unable to initialise pru ethernet
  • i have passsed previous errors now i am getting the fallowing

    insmod pruss.ko
    [ 110.717602] ti-pruss 4a300000.pruss: platform data (reset configuration information) missing

    insmod prueth.ko
    [ 502.298167] prueth pruss_eth: unable to get pruss handle

    please suggest the solution
  • i have passsed previous errors now i am getting the fallowing

    insmod pruss.ko
    [ 110.717602] ti-pruss 4a300000.pruss: platform data (reset configuration information) missing

    insmod prueth.ko
    [ 502.298167] prueth pruss_eth: unable to get pruss handle

    please suggest the solution
  • The software team has been notified. They will respond here.
  • now further phy is able to respond and link is able to detect but i cannot able to transmi and recieve packets


    [ 13.458688] virtio_rpmsg_bus virtio0: creating channel rpmsg-pru addr 0x1e
    Starting Avahi mDNS/DNS-SD Stack...[ 13.466059] virtio_rpmsg_bus virtio0: rpmsg host is online

    [ 13.488263] prueth pruss_eth: netdev init ethernet-mii1 failed: -19


    will this log in last line effect ?
  • Hi

    There is a example project which can assist you in developing an application. This is described in http://processors.wiki.ti.com/index.php/Processor_SDK_RTOS_ICSS-EMAC#Examples This is a test application with limited functionality.

    However, the ICE board is also supported by the SYSBIOS Industrial SDK http://downloads.ti.com/sitara_indus/esd/SYSBIOSSDK-IND-SITARA/latest/index_FDS.html . This SDK has both an ICSS Ethernet_MAC example and a EnterNet/IP example that will be of interest. The EtherNet/IP example can modified to work as a Switch application by removing the Ethernet/IP dependencies. The steps to create Switch application are at http://processors.wiki.ti.com/index.php/SYSBIOS_ISDK_Steps_for_creating_stand_alone_switch_example

    The SYSBIOS Industrial SDK has specific version requirements for CCS, SYSBIOS, XDCTOOLS , and NDK that must be installed separately. These requirements are outlined in the user guide.

    The SYSBIOS and XDC tool versions are available from http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/bios/sysbios/index.html

    NDK versions can be downloaded from ttp://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/ndk/

    CCS versions can be downloaded from http://processors.wiki.ti.com/index.php/Download_CCS

    David

  • i am looking for the support in linux the PRU phy is up with fallowing details

    root@am335x-evm:~#
    [ 641.470565] eth2: Link is Up - 100Mbps/Full - flow control rx/tx
    [ 641.476941] IPv6: ADDRCONF(NETDEV_CHANGE): eth2: link becomes ready


    root@am335x-evm:~# ethtool eth2
    Settings for eth2:
    Supported ports: [ TP MII ]
    Supported link modes: 10baseT/Half 10baseT/Full
    100baseT/Half 100baseT/Full
    Supported pause frame use: No
    Supports auto-negotiation: Yes
    Advertised link modes: 10baseT/Half 10baseT/Full
    100baseT/Half 100baseT/Full
    Advertised pause frame use: No
    Advertised auto-negotiation: Yes
    Link partner advertised link modes: 10baseT/Half 10baseT/Full
    100baseT/Half 100baseT/Full
    Link partner advertised pause frame use: Symmetric Receive-only
    Link partner advertised auto-negotiation: Yes
    Speed: 100Mb/s
    Duplex: Full
    Port: MII
    PHYAD: 1
    Transceiver: external
    Auto-negotiation: on
    Link detected: yes

    i think MDIO path is through i probed the clk clock from the phy is up .tx and rx paths are not through..

    please provide support for the linux
  • Can you confirm that your dts file has "ti,am3359-icev2" listed in its compatible string? As an example, look at the top of the arch/arm/boot/dts/am335x-icev2.dts file provided in the Linux Processor SDK v3.0.0.4.

    This compatible string is how the firmware determines whether to load the provided PRU Ethernet firmwares or if it should load the out of box PRU RPMsg example firmwares. Your most recent console output showed the RPMsg channels getting configured which should not happen when the PRU Ethernet firmwares get loaded.

    Jason Reeder

  • Hi Team

    Can you confirm that your dts file has "ti,am3359-icev2" listed in its compatible string?

    ---yes this was not done in our DTB now i have added it .

    Now i am able to do internal loop back unable to ping to other IP, still data transmission is not complete.

    we tried to ping to our board and probed RX and TX lines RX line is getting DATA at processor side .

    The details like boot logs , kernel configuration file , dts and schematic of my board is attached in the zip here please check those files and guide further .ti_info.tar.gz

  • From your schematic and your 'iceg_stlg.dtsi' file it appears like you've switched pr1_mii0 pins from using the dss_data set of pins to the gpmc_ad set of pins. However, you did not update your comments in the dtsi file. More importantly, you did not update the MUX_MODE in the dtsi file.

    For example, pr1_mii0_txd0 should be:
    0x38 ((PIN_OUTPUT | MUX_MODE5)) /*gpmc_ad14.pr1_mii0_txd0 */

    You need to go through your dtsi file and double check your pin mux settings.

    Based on your schematic, it looks like you are only trying to enable one of the PRU Ethernet ports. If this is the case, you can remove the PRU1 Ethernet nodes from your dtsi file. This should stop the following boot log errors:
    12.630629] prueth pruss_eth: couldn't connect to phy /ocp/pruss@4a300000/mdio@4a332400/ethernet-phy@3
    12.670197] prueth pruss_eth: netdev init ethernet-mii1 failed: -19

    Jason Reeder