Part Number:AM3359
Tool/software: Linux
Hi Team, I come with some problem in Sitara AM3357 development.
Problem descripiton:
Can't Find the PRU Ethernet Device in the Linux Envoriment !
Hardware description:
Our application base on the custom board which we designed according to TIMSK3359ICEV2.
Pins of PRU-ETH is shown as:
![]()
Software description:
1 gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf
and
2 am335x-evm-linux-rt-sdk-src-04.03.00.05
and
3 the file system is created by buildroot, and we also test with the ti's file system "Arago".
4 device tree associate with PRU-ETH is shown as
/* Dual mac ethernet application node on icss */
pruss_eth {
compatible = "ti,am3359-prueth";
pruss = <&pruss>;
sram = <&ocmcram>;
interrupt-parent = <&pruss_intc>;
status = "okey";
pinctrl-0 = <&pruss_eth_default>;
pinctrl-names = "default";
pruss_emac0: ethernet-mii0 {
phy-handle = <&pruss_eth0_phy>;
phy-mode = "mii";
interrupts = <20>, <22>;
interrupt-names = "rx", "tx";
/* Filled in by bootloader */
local-mac-address = [00 00 00 00 00 00];
};
pruss_emac1: ethernet-mii1 {
phy-handle = <&pruss_eth1_phy>;
phy-mode = "mii";
interrupts = <21>, <23>;
interrupt-names = "rx", "tx";
/* Filled in by bootloader */
local-mac-address = [00 00 00 00 00 00];
};
};
pruss_mdio_default: pruss_mdio_default {
pinctrl-single,pins = <
AM33XX_IOPAD(0x88c, (PIN_OUTPUT | MUX_MODE5)) /* gpmc_clk.pr1_mdio_mdclk */
AM33XX_IOPAD(0x888, (PIN_INPUT | MUX_MODE5)) /* gpmc_csn3.pr1_mdio_data */
>;
};
pruss_eth_default: pruss_eth_default {
pinctrl-single,pins = <
0x20 ( PIN_INPUT | MUX_MODE5 ) /* (U10) gpmc_ad8.pr1_mii_mt0_clk */
0x38 ( PIN_OUTPUT | MUX_MODE5 ) /* (V13) gpmc_ad14.pr1_mii0_txd0 */
0x34 ( PIN_OUTPUT | MUX_MODE5 ) /* (R12) gpmc_ad13.pr1_mii0_txd1 */
0x30 ( PIN_OUTPUT | MUX_MODE5 ) /* (T12) gpmc_ad12.pr1_mii0_txd2 */
0x2c ( PIN_OUTPUT | MUX_MODE5 ) /* (U12) gpmc_ad11.pr1_mii0_txd3 */
0xcc ( PIN_INPUT | MUX_MODE5 ) /* (U4) lcd_data11.pr1_mii0_rxd0 */
0xc8 ( PIN_INPUT | MUX_MODE5 ) /* (U3) lcd_data10.pr1_mii0_rxd1 */
0xc4 ( PIN_INPUT | MUX_MODE5 ) /* (U2) lcd_data9.pr1_mii0_rxd2 */
0xc0 ( PIN_INPUT | MUX_MODE5 ) /* (U1) lcd_data8.pr1_mii0_rxd3 */
0x28 ( PIN_OUTPUT | MUX_MODE5 ) /* (T11) gpmc_ad10.pr1_mii0_txen */
0xd8 ( PIN_INPUT | MUX_MODE5 ) /* (V4) lcd_data14.pr1_mii_mr0_clk */
0xdc ( PIN_INPUT | MUX_MODE5 ) /* (T5) lcd_data15.pr1_mii0_rxdv */
0xd4 ( PIN_INPUT | MUX_MODE5 ) /* (V3) lcd_data13.pr1_mii0_rxer */
0xd0 ( PIN_INPUT | MUX_MODE5 ) /* (V2) lcd_data12.pr1_mii0_rxlink */
0xe8 ( PIN_INPUT | MUX_MODE2 ) /* (V5) lcd_pclk.pr1_mii0_crs */
0x24 ( PIN_INPUT | MUX_MODE5 ) /* (T10) gpmc_ad9.pr1_mii0_col */
AM33XX_IOPAD(0x840, (PIN_INPUT | MUX_MODE5)) /* gpmc_a0.pr1_mii_mt1_clk */
AM33XX_IOPAD(0x850, (PIN_OUTPUT | MUX_MODE5)) /* gpmc_a4.pr1_mii1_txd0 */
AM33XX_IOPAD(0x84c, (PIN_OUTPUT | MUX_MODE5)) /* gpmc_a3.pr1_mii1_txd1 */
AM33XX_IOPAD(0x848, (PIN_OUTPUT | MUX_MODE5)) /* gpmc_a2.pr1_mii1_txd2 */
AM33XX_IOPAD(0x844, (PIN_OUTPUT | MUX_MODE5)) /* gpmc_a1.pr1_mii1_txd3 */
AM33XX_IOPAD(0x860, (PIN_INPUT | MUX_MODE5)) /* gpmc_a8.pr1_mii1_rxd0 */
AM33XX_IOPAD(0x85c, (PIN_INPUT | MUX_MODE5)) /* gpmc_a7.pr1_mii1_rxd1 */
AM33XX_IOPAD(0x858, (PIN_INPUT | MUX_MODE5)) /* gpmc_a6.pr1_mii1_rxd2 */
AM33XX_IOPAD(0x854, (PIN_INPUT | MUX_MODE5)) /* gpmc_a5.pr1_mii1_rxd3 */
AM33XX_IOPAD(0x874, (PIN_OUTPUT | MUX_MODE5)) /* gpmc_wpn.pr1_mii1_txen */
AM33XX_IOPAD(0x864, (PIN_INPUT | MUX_MODE5)) /* gpmc_a9.pr1_mii_mr1_clk */
AM33XX_IOPAD(0x868, (PIN_INPUT | MUX_MODE5)) /* gpmc_a10.pr1_mii1_rxdv */
AM33XX_IOPAD(0x86c, (PIN_INPUT | MUX_MODE5)) /* gpmc_a11.pr1_mii1_rxer */
AM33XX_IOPAD(0x878, (PIN_INPUT | MUX_MODE5)) /* gpmc_ben1.pr1_mii1_rxlink */
AM33XX_IOPAD(0x8ec, (PIN_INPUT | MUX_MODE2)) /* lcd_ac_bias_en.pr1_mii1_crs */
AM33XX_IOPAD(0x870, (PIN_INPUT | MUX_MODE5)) /* gpmc_wait0.pr1_mii1_col */
>;
};
&pruss_soc_bus {
status = "okay";
pruss: pruss@4a300000 {
status = "okay";
pru0: pru@4a334000 {
status = "okay";
};
pru1: pru@4a338000 {
status = "okay";
};
};
};
&pruss_mdio {
pinctrl-0 = <&pruss_mdio_default>;
pinctrl-names = "default";
reset-gpios = <&gpio3 19 GPIO_ACTIVE_LOW>;
reset-delay-us = <2>; /* PHY datasheet states 1uS min */
status = "okay";
pruss_eth0_phy: ethernet-phy@1 {
reg = <1>;
};
pruss_eth1_phy: ethernet-phy@0 {
reg = <0>;
};
};
&sham {
status = "okay";
};
Experiment result:
linux kernel boot information is shown as:
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 4.9.65-rt23-g7069a470d5 (root@voss) (gcc version 6.2.1 20161016 (Linaro GCC 6.2-2016.11) ) #2 PREEMPT RT Mon Apr 15 11:14:00 EDT 2019
[ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] OF: fdt:Machine model: TI AM3359 ICE-V2
[ 0.000000] efi: Getting EFI parameters from FDT:
[ 0.000000] efi: UEFI not found.
[ 0.000000] cma: Reserved 48 MiB at 0x8b800000
[ 0.000000] Memory policy: Data cache writeback
[ 0.000000] CPU: All CPU(s) started in SVC mode.
[ 0.000000] AM335X ES2.1 (neon)
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 64960
[ 0.000000] Kernel command line: console=ttyS0,115200n8 root=ubi0:rootfs rw ubi.mtd=7,2048 noinitrd rootfstype=ubifs ubi.fm_autoconvert=1
[ 0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[ 0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[ 0.000000] Memory: 198312K/262144K available (7168K kernel code, 281K rwdata, 2260K rodata, 1024K init, 298K bss, 14680K reserved, 49152K cma-reserved, 0K highmem)
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
[ 0.000000] vmalloc : 0xd0800000 - 0xff800000 ( 752 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xd0000000 ( 256 MB)
[ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
[ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
[ 0.000000] .text : 0xc0008000 - 0xc0800000 (8160 kB)
[ 0.000000] .init : 0xc0b00000 - 0xc0c00000 (1024 kB)
[ 0.000000] .data : 0xc0c00000 - 0xc0c46420 ( 282 kB)
[ 0.000000] .bss : 0xc0c46420 - 0xc0c90d84 ( 299 kB)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] Preemptible hierarchical RCU implementation.
[ 0.000000] RCU kthread priority: 1.
[ 0.000000] NR_IRQS:16 nr_irqs:16 16
[ 0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
[ 0.000000] OMAP clockevent source: timer2 at 24000000 Hz
[ 0.000016] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[ 0.000029] clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[ 0.000036] OMAP clocksource: timer1 at 24000000 Hz
[ 0.000204] clocksource_probe: no matching clocksources found
[ 0.000399] Console: colour dummy device 80x30
[ 0.089075] Calibrating delay loop... 795.44 BogoMIPS (lpj=3977216)
[ 0.089081] pid_max: default: 32768 minimum: 301
[ 0.089220] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.089227] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.090232] CPU: Testing write buffer coherency: ok
[ 0.090614] Setting up static identity map for 0x80100000 - 0x80100060
[ 0.091931] EFI services will not be available.
[ 0.093381] devtmpfs: initialized
[ 0.106814] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
[ 0.107260] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.107297] futex hash table entries: 256 (order: 1, 8192 bytes)
[ 0.111693] pinctrl core: initialized pinctrl subsystem
[ 0.113163] NET: Registered protocol family 16
[ 0.115753] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.189200] OMAP GPIO hardware version 0.1
[ 0.204583] omap-gpmc 50000000.gpmc: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/nandflash_pins_s0, deferring probe
[ 0.206860] No ATAGs?
[ 0.206881] hw-breakpoint: debug architecture 0x4 unsupported.
[ 0.224905] edma 49000000.edma: TI EDMA DMA engine driver
[ 0.228815] omap_i2c 44e0b000.i2c: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/pinmux_i2c0_pins, deferring probe
[ 0.228958] media: Linux media interface: v0.10
[ 0.229021] Linux video capture interface: v2.00
[ 0.229234] pps_core: LinuxPPS API ver. 1 registered
[ 0.229245] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 0.229283] PTP clock support registered
[ 0.229333] EDAC MC: Ver: 3.0.0
[ 0.230498] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
[ 0.230875] Advanced Linux Sound Architecture Driver Initialized.
[ 0.232114] clocksource: Switched to clocksource timer1
[ 0.244392] NET: Registered protocol family 2
[ 0.245370] TCP established hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.245421] TCP bind hash table entries: 2048 (order: 3, 49152 bytes)
[ 0.245524] TCP: Hash tables configured (established 2048 bind 2048)
[ 0.245617] UDP hash table entries: 256 (order: 2, 16384 bytes)
[ 0.245655] UDP-Lite hash table entries: 256 (order: 2, 16384 bytes)
[ 0.245866] NET: Registered protocol family 1
[ 0.246427] RPC: Registered named UNIX socket transport module.
[ 0.246445] RPC: Registered udp transport module.
[ 0.246452] RPC: Registered tcp transport module.
[ 0.246458] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.247530] hw perfevents: enabled with armv7_cortex_a8 PMU driver, 5 counters available
[ 0.250219] workingset: timestamp_bits=14 max_order=16 bucket_order=2
[ 0.259290] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 0.260442] NFS: Registering the id_resolver key type
[ 0.260496] Key type id_resolver registered
[ 0.260505] Key type id_legacy registered
[ 0.260564] ntfs: driver 2.1.32 [Flags: R/O].
[ 0.262976] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247)
[ 0.263002] io scheduler noop registered
[ 0.263009] io scheduler deadline registered
[ 0.263182] io scheduler cfq registered (default)
[ 0.264583] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
[ 0.337825] Serial: 8250/16550 driver, 10 ports, IRQ sharing disabled
[ 0.341710] console [ttyS0] disabled
[ 0.341876] 44e09000.serial: ttyS0 at MMIO 0x44e09000 (irq = 158, base_baud = 3000000) is a 8250
[ 0.908626] console [ttyS0] enabled
[ 0.913523] 48022000.serial: ttyS1 at MMIO 0x48022000 (irq = 159, base_baud = 3000000) is a 8250
[ 0.924409] omap_rng 48310000.rng: OMAP Random Number Generator ver. 20
[ 0.931224] [drm] Initialized
[ 0.950561] brd: module loaded
[ 0.961322] loop: module loaded
[ 0.967573] libphy: Fixed MDIO Bus: probed
[ 1.042216] davinci_mdio 4a101000.mdio: davinci mdio revision 1.6
[ 1.048354] davinci_mdio 4a101000.mdio: detected phy mask fffffffd
[ 1.055646] libphy: 4a101000.mdio: probed
[ 1.059695] davinci_mdio 4a101000.mdio: phy[1]: device 4a101000.mdio:01, driver NS DP83848C 10/100 Mbps PHY
[ 1.070340] cpsw 4a100000.ethernet: Detected MACID = 38:d2:69:77:b4:94
[ 1.077089] cpsw 4a100000.ethernet: device node lookup for pps timer failed
[ 1.084127] cpsw 4a100000.ethernet: cpts: overflow check period 500 (jiffies)
[ 1.093737] mousedev: PS/2 mouse device common for all mice
[ 1.099885] i2c /dev entries driver
[ 1.106405] NET: Registered protocol family 17
[ 1.111020] Key type dns_resolver registered
[ 1.115635] omap_voltage_late_init: Voltage driver support not added
[ 1.129456] omap-gpmc 50000000.gpmc: GPMC revision 6.0
[ 1.134822] gpmc_mem_init: disabling cs 0 mapped at 0x0-0x1000000
[ 1.143246] nand: device found, Manufacturer ID: 0xc8, Chip ID: 0xdc
[ 1.149639] nand: ESMT NAND 512MiB 3,3V 8-bit
[ 1.154021] nand: 512 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
[ 1.161715] nand: using OMAP_ECC_BCH8_CODE_HW ECC scheme
[ 1.167143] 8 ofpart partitions found on MTD device omap2-nand.0
[ 1.173178] Creating 8 MTD partitions on "omap2-nand.0":
[ 1.178523] 0x000000000000-0x000000020000 : "SPL1"
[ 1.185149] 0x000000020000-0x000000040000 : "SPL2"
[ 1.191382] 0x000000040000-0x000000060000 : "SPL3"
[ 1.197615] 0x000000060000-0x000000080000 : "SPL4"
[ 1.203809] 0x000000080000-0x000000260000 : "U-boot"
[ 1.210487] 0x000000260000-0x000000280000 : "environment"
[ 1.217331] 0x000000280000-0x000000780000 : "Kernel"
[ 1.224781] 0x000000780000-0x000010000000 : "File-System"
[ 1.312397] tps65910 0-002d: No interrupt support, no core IRQ
[ 1.320439] vrtc: supplied by vbat
[ 1.327666] vio: supplied by vbat
[ 1.332553] vdd1: supplied by vbat
[ 1.337804] vdd2: supplied by vbat
[ 1.344535] vdig1: supplied by vbat
[ 1.349439] vdig2: supplied by vbat
[ 1.354364] vpll: supplied by vbat
[ 1.359184] vdac: supplied by vbat
[ 1.364016] vaux1: supplied by vbat
[ 1.368916] vaux2: supplied by vbat
[ 1.373825] vaux33: supplied by vbat
[ 1.378817] vmmc: supplied by vbat
[ 1.383212] random: fast init done
[ 1.387057] vbb: supplied by vbat
[ 1.391602] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 400 kHz
[ 1.397657] ubi0: attaching mtd7
[ 2.512208] ubi0: scanning is finished
[ 2.533924] ubi0: attached mtd7 (name "File-System", size 248 MiB)
[ 2.540154] ubi0: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
[ 2.547061] ubi0: min./max. I/O unit sizes: 2048/2048, sub-page size 512
[ 2.553794] ubi0: VID header offset: 2048 (aligned 2048), data offset: 4096
[ 2.560786] ubi0: good PEBs: 1981, bad PEBs: 7, corrupted PEBs: 0
[ 2.566907] ubi0: user volume: 1, internal volumes: 1, max. volumes count: 128
[ 2.574161] ubi0: max/mean erase counter: 2/0, WL threshold: 4096, image sequence number: 85083965
[ 2.583162] ubi0: available PEBs: 0, total reserved PEBs: 1981, PEBs reserved for bad PEB handling: 73
[ 2.592520] ubi0: background thread "ubi_bgt0d" started, PID 85
[ 2.598835] hctosys: unable to open rtc device (rtc0)
[ 2.604461] lis3_reg: disabling
[ 2.607855] ALSA device list:
[ 2.610841] No soundcards found.
[ 2.622275] UBIFS (ubi0:0): background thread "ubifs_bgt0_0" started, PID 87
[ 2.701840] UBIFS (ubi0:0): recovery needed
[ 2.920053] UBIFS (ubi0:0): recovery completed
[ 2.924981] UBIFS (ubi0:0): UBIFS: mounted UBI device 0, volume 0, name "rootfs"
[ 2.932421] UBIFS (ubi0:0): LEB size: 126976 bytes (124 KiB), min./max. I/O unit sizes: 2048 bytes/2048 bytes
[ 2.942387] UBIFS (ubi0:0): FS size: 199225344 bytes (189 MiB, 1569 LEBs), journal size 9023488 bytes (8 MiB, 72 LEBs)
[ 2.953130] UBIFS (ubi0:0): reserved for root: 0 bytes (0 KiB)
[ 2.958992] UBIFS (ubi0:0): media format: w4/r0 (latest is w4/r0), UUID F8BE0769-D445-4FEF-A72D-1787F15709F9, small LPT model
[ 2.971644] VFS: Mounted root (ubifs filesystem) on device 0:14.
[ 2.978695] devtmpfs: mounted
[ 2.983329] Freeing unused kernel memory: 1024K
Starting logging: OK
Initializing random number generator... done.
Starting network: OK
Welcome to Buildroot
buildroot login: root
As we execute the following command
# cd /lib/modules/4.9.65-rt23-g7069a470d5/kernel/drivers/remoteproc/
# ls
pru_rproc.ko pruss_intc.ko remoteproc.ko
pruss.ko pruss_soc_bus.ko wkup_m3_rproc.ko
# insmod remoteproc.ko
# insmod pruss_intc.ko
# insmod pruss_soc_bus.ko
# insmod pruss.ko
We Get the information as:
[ 53.415839] ti-pruss 4a300000.pruss: creating PRU cores and other child platform devices
[ 53.482153] davinci_mdio 4a332400.mdio: davinci mdio revision 1.6
[ 53.488300] libphy: 4a332400.mdio: probed
[ 53.546314] davinci_mdio 4a332400.mdio: phy[0]: device 4a332400.mdio:00, driver TI TLK10X 10/100 Mbps PHY
[ 53.556107] davinci_mdio 4a332400.mdio: phy[1]: device 4a332400.mdio:01, driver TI TLK10X 10/100 Mbps PHY
#
After we insmod the /lib/modules/4.9.65-rt23-g7069a470d5/kernel/drivers/net/ethernet/ti/ti_prueth.ko
it looks like nothing has happend. I can't find any PRU ethernet device anywhere.
We also execute the lsmod command, shown as:
#lsmod
Module Size Used by Not tainted
ti_prueth 54754 0
virtio_rpmsg_bus 9396 0
rpmsg_pru 4912 0
rpmsg_core 7124 2 virtio_rpmsg_bus,rpmsg_pru
uio_pruss 3310 0
uio 9158 1 uio_pruss
pru_rproc 10682 1 ti_prueth
pruss 9725 2 ti_prueth,pru_rproc
pruss_soc_bus 3649 0
pruss_intc 7249 1 pru_rproc
remoteproc 28648 2 ti_prueth,pru_rproc
And we want to find some PRU ethernet device by:
#find -name *pru*
./lib/firmware/ti-pruss
./lib/firmware/ti-pruss/am335x-pru0-pruprp-fw.elf
./lib/firmware/ti-pruss/am335x-pru1-pruhsr-fw.elf
./lib/firmware/ti-pruss/am335x-pru1-prueth-fw.elf
./lib/firmware/ti-pruss/am335x-pru1-pruprp-fw.elf
./lib/firmware/ti-pruss/am335x-pru0-pruhsr-fw.elf
./lib/firmware/ti-pruss/am335x-pru0-prueth-fw.elf
./lib/modules/4.9.65-rt23-g7069a470d5/kernel/drivers/net/ethernet/ti/ti_prueth.ko
./lib/modules/4.9.65-rt23-g7069a470d5/kernel/drivers/uio/uio_pruss.ko
./lib/modules/4.9.65-rt23-g7069a470d5/kernel/drivers/rpmsg/rpmsg_pru.ko
./lib/modules/4.9.65-rt23-g7069a470d5/kernel/drivers/remoteproc/pruss_soc_bus.ko
./lib/modules/4.9.65-rt23-g7069a470d5/kernel/drivers/remoteproc/pru_rproc.ko
./lib/modules/4.9.65-rt23-g7069a470d5/kernel/drivers/remoteproc/pruss_intc.ko
./lib/modules/4.9.65-rt23-g7069a470d5/kernel/drivers/remoteproc/pruss.ko
./sys/devices/platform/ocp/4a326000.pruss-soc-bus
./sys/devices/platform/ocp/4a326000.pruss-soc-bus/4a300000.pruss
./sys/devices/platform/ocp/4a326000.pruss-soc-bus/4a300000.pruss/4a338000.pru1
./sys/devices/platform/ocp/4a326000.pruss-soc-bus/4a300000.pruss/4a334000.pru0
./sys/devices/platform/ocp/480c8000.mailbox/mbox/mbox_pru1
./sys/devices/platform/ocp/480c8000.mailbox/mbox/mbox_pru0
./sys/class/rpmsg_pru
./sys/class/mbox/mbox_pru1
./sys/class/mbox/mbox_pru0
./sys/firmware/devicetree/base/ocp/pruss_soc_bus@4a326000
./sys/firmware/devicetree/base/ocp/pruss_soc_bus@4a326000/pruss@4a300000
./sys/firmware/devicetree/base/ocp/pruss_soc_bus@4a326000/pruss@4a300000/pru@4a338000
./sys/firmware/devicetree/base/ocp/pruss_soc_bus@4a326000/pruss@4a300000/pru@4a334000
./sys/firmware/devicetree/base/ocp/mailbox@480C8000/mbox_pru1
./sys/firmware/devicetree/base/ocp/mailbox@480C8000/mbox_pru0
./sys/firmware/devicetree/base/ocp/l4_wkup@44c00000/scm@210000/pinmux@800/pruss_eth_default
./sys/firmware/devicetree/base/ocp/l4_wkup@44c00000/scm@210000/pinmux@800/pruss_mdio_default
./sys/firmware/devicetree/base/ocp/l4_wkup@44c00000/prcm@200000/clocks/pruss_ocp_gclk@530
./sys/firmware/devicetree/base/pruss_eth
./sys/firmware/devicetree/base/pruss_eth/pruss
./sys/bus/platform/devices/4a300000.pruss
./sys/bus/platform/devices/4a326000.pruss-soc-bus
./sys/bus/platform/devices/4a338000.pru1
./sys/bus/platform/devices/4a334000.pru0
./sys/bus/platform/drivers/pru-rproc
./sys/bus/platform/drivers/pru-rproc/4a338000.pru1
./sys/bus/platform/drivers/pru-rproc/4a334000.pru0
./sys/bus/platform/drivers/ti-pruss
./sys/bus/platform/drivers/ti-pruss/4a300000.pruss
./sys/bus/platform/drivers/pruss-soc-bus
./sys/bus/platform/drivers/pruss-soc-bus/4a326000.pruss-soc-bus
./sys/bus/platform/drivers/pruss_uio
./sys/bus/platform/drivers/prueth
./sys/bus/platform/drivers/pruss-intc
./sys/bus/rpmsg/drivers/rpmsg_pru
./sys/module/pru_rproc
./sys/module/pru_rproc/holders/ti_prueth
./sys/module/pru_rproc/drivers/platform:pru-rproc
./sys/module/pruss
./sys/module/pruss/holders/pru_rproc
./sys/module/pruss/holders/ti_prueth
./sys/module/pruss/drivers/platform:ti-pruss
./sys/module/uio_pruss
./sys/module/uio_pruss/drivers/platform:pruss_uio
./sys/module/ti_prueth
./sys/module/ti_prueth/parameters/pruss2_mc_mask
./sys/module/ti_prueth/parameters/pruss1_ethtype
./sys/module/ti_prueth/parameters/pruss0_hsr_mode
./sys/module/ti_prueth/parameters/pruss0_mc_mask
./sys/module/ti_prueth/parameters/pruss2_ethtype
./sys/module/ti_prueth/parameters/pruss1_hsr_mode
./sys/module/ti_prueth/parameters/pruss1_mc_mask
./sys/module/ti_prueth/parameters/pruss0_ethtype
./sys/module/ti_prueth/parameters/pruss2_hsr_mode
./sys/module/ti_prueth/drivers/platform:prueth
./sys/module/uio/holders/uio_pruss
./sys/module/pruss_soc_bus
./sys/module/pruss_soc_bus/drivers/platform:pruss-soc-bus
./sys/module/rpmsg_pru
./sys/module/rpmsg_pru/drivers/rpmsg:rpmsg_pru
./sys/module/pruss_intc
./sys/module/pruss_intc/holders/pru_rproc
./sys/module/pruss_intc/drivers/platform:pruss-intc
./sys/module/remoteproc/holders/pru_rproc
./sys/module/remoteproc/holders/ti_prueth
./sys/module/rpmsg_core/holders/rpmsg_pru
./sbin/iprule
But nothing can be found as pru_eth0 or pru_eth1.
My question is how to Create a PRU ethernet device in the linux envoriment?
how can we use the ICSS-EMAC driver under the linux?
and any steps that we missed?
In addition, there is no problem on the hardware of our board, we have tested all functions with the TI-RTOS envoriment, include the PRU-ICSS.
our design is based on ICSS_EMAC_BasicExample_icev2AM335x_wSoCFile_armTestproject.
Thanks very much.