<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>P-SeriesのトピックRe: Help with P2020 eTSEC DTS configuration (I *think*)</title>
    <link>https://community.nxp.com/t5/P-Series/Help-with-P2020-eTSEC-DTS-configuration-I-think/m-p/1652514#M5137</link>
    <description>&lt;P&gt;I fixed it by using the code for&amp;nbsp;/drivers/net/phy/broadcom.c from&amp;nbsp;&lt;A href="https://www.uwsg.indiana.edu/hypermail/linux/kernel/0609.1/2317.html" target="_blank"&gt;https://www.uwsg.indiana.edu/hypermail/linux/kernel/0609.1/2317.html&lt;/A&gt;&lt;/P&gt;&lt;TABLE border="1" width="100%"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="100%"&gt;&lt;P&gt;#include &amp;lt;linux/kernel.h&amp;gt;&lt;BR /&gt;#include &amp;lt;linux/sched.h&amp;gt;&lt;BR /&gt;#include &amp;lt;linux/string.h&amp;gt;&lt;BR /&gt;#include &amp;lt;linux/errno.h&amp;gt;&lt;BR /&gt;#include &amp;lt;linux/unistd.h&amp;gt;&lt;BR /&gt;#include &amp;lt;linux/slab.h&amp;gt;&lt;BR /&gt;#include &amp;lt;linux/interrupt.h&amp;gt;&lt;BR /&gt;#include &amp;lt;linux/init.h&amp;gt;&lt;BR /&gt;#include &amp;lt;linux/delay.h&amp;gt;&lt;BR /&gt;#include &amp;lt;linux/netdevice.h&amp;gt;&lt;BR /&gt;#include &amp;lt;linux/etherdevice.h&amp;gt;&lt;BR /&gt;#include &amp;lt;linux/skbuff.h&amp;gt;&lt;BR /&gt;#include &amp;lt;linux/spinlock.h&amp;gt;&lt;BR /&gt;#include &amp;lt;linux/mm.h&amp;gt;&lt;BR /&gt;#include &amp;lt;linux/module.h&amp;gt;&lt;BR /&gt;#include &amp;lt;linux/mii.h&amp;gt;&lt;BR /&gt;#include &amp;lt;linux/ethtool.h&amp;gt;&lt;BR /&gt;#include &amp;lt;linux/phy.h&amp;gt;&lt;/P&gt;&lt;P&gt;#include &amp;lt;asm/io.h&amp;gt;&lt;BR /&gt;#include &amp;lt;asm/irq.h&amp;gt;&lt;BR /&gt;#include &amp;lt;asm/uaccess.h&amp;gt;&lt;/P&gt;&lt;P&gt;/* BCM5421S control register */&lt;BR /&gt;#define MII_BCM5421S_CONTROL 0x00&lt;BR /&gt;#define MII_BCM5421S_CONTROL_RESET 0x00008000&lt;BR /&gt;#define MII_BCM5421S_CONTROL_INIT 0x00001140&lt;BR /&gt;#define MII_BCM5421S_ANEN 0x00001000&lt;BR /&gt;#define MII_BCM5421S_CR 0x00&lt;BR /&gt;#define MII_BCM5421S_CR_RST 0x00008000&lt;BR /&gt;#define MII_BCM5421S_CR_INIT 0x00001000&lt;BR /&gt;#define MII_BCM5421S_STATUS 0x1&lt;BR /&gt;#define MII_BCM5421S_STATUS_AN_DONE 0x00000020&lt;BR /&gt;#define MII_BCM5421S_STATUS_LINK 0x0004&lt;BR /&gt;#define MII_BCM5421S_PHYIR1 0x2&lt;BR /&gt;#define MII_BCM5421S_PHYIR2 0x3&lt;BR /&gt;#define MII_BCM5421S_ANLPBPA 0x5&lt;BR /&gt;#define MII_BCM5421S_ANLPBPA_HALF 0x00000040&lt;BR /&gt;#define MII_BCM5421S_ANLPBPA_FULL 0x00000020&lt;BR /&gt;#define MII_BCM5421S_ANEX 0x6&lt;BR /&gt;#define MII_BCM5421S_ANEX_NP 0x00000004&lt;BR /&gt;#define MII_BCM5421S_ANEX_PRX 0x00000002&lt;/P&gt;&lt;P&gt;MODULE_DESCRIPTION("Broadcom PHY driver");&lt;BR /&gt;MODULE_AUTHOR("Amy Fong");&lt;BR /&gt;MODULE_LICENSE("GPL");&lt;/P&gt;&lt;P&gt;static int bcm5421s_config_aneg(struct phy_device *phydev)&lt;BR /&gt;{&lt;BR /&gt;int err;&lt;/P&gt;&lt;P&gt;/* Write the appropriate value to the PHY reg */&lt;BR /&gt;if (phydev-&amp;gt;supported &amp;amp; SUPPORTED_1000baseT_Full)&lt;BR /&gt;err = phy_write(phydev, MII_BCM5421S_CONTROL, MII_BCM5421S_CONTROL_INIT);&lt;BR /&gt;else&lt;BR /&gt;err = phy_write(phydev, MII_BCM5421S_CONTROL, MII_BCM5421S_CR_INIT);&lt;/P&gt;&lt;P&gt;if (err &amp;lt; 0) return err;&lt;/P&gt;&lt;P&gt;/* doesn't have phy interrupt */&lt;BR /&gt;phydev-&amp;gt;interrupts = PHY_INTERRUPT_DISABLED;&lt;/P&gt;&lt;P&gt;return 0;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;static struct phy_driver bcm5421s_driver = {&lt;BR /&gt;.phy_id = 0x002060e1,&lt;BR /&gt;.phy_id_mask = 0x00ffffff,&lt;BR /&gt;.name = "Broadcom BCM5421S",&lt;BR /&gt;.features = PHY_GBIT_FEATURES,&lt;BR /&gt;.config_aneg = bcm5421s_config_aneg,&lt;BR /&gt;.read_status = genphy_read_status,&lt;BR /&gt;.driver = { .owner = THIS_MODULE,},&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;/* Glossy description on Broadcom's site seems to hint that the 5461&lt;BR /&gt;should be a drop-in for the 5421.... */&lt;BR /&gt;static struct phy_driver bcm5461s_driver = {&lt;BR /&gt;.phy_id = 0x002060c1,&lt;BR /&gt;.phy_id_mask = 0x00ffffff,&lt;BR /&gt;.name = "Broadcom BCM5461S",&lt;BR /&gt;.features = PHY_GBIT_FEATURES,&lt;BR /&gt;.config_aneg = bcm5421s_config_aneg,&lt;BR /&gt;.read_status = genphy_read_status,&lt;BR /&gt;.driver = { .owner = THIS_MODULE,},&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;static int __init broadcom_init(void)&lt;BR /&gt;{&lt;BR /&gt;int ret;&lt;/P&gt;&lt;P&gt;ret = phy_driver_register(&amp;amp;bcm5421s_driver);&lt;BR /&gt;if (!ret) {&lt;BR /&gt;ret = phy_driver_register(&amp;amp;bcm5461s_driver);&lt;BR /&gt;if (ret) phy_driver_unregister(&amp;amp;bcm5421s_driver);&lt;BR /&gt;}&lt;BR /&gt;return ret;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;static void __exit broadcom_exit(void)&lt;BR /&gt;{&lt;BR /&gt;phy_driver_unregister(&amp;amp;bcm5421s_driver);&lt;BR /&gt;phy_driver_unregister(&amp;amp;bcm5461s_driver);&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;module_init(broadcom_init);&lt;BR /&gt;module_exit(broadcom_exit);&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
    <pubDate>Wed, 17 May 2023 20:48:31 GMT</pubDate>
    <dc:creator>jyav</dc:creator>
    <dc:date>2023-05-17T20:48:31Z</dc:date>
    <item>
      <title>Help with P2020 eTSEC DTS configuration (I *think*)</title>
      <link>https://community.nxp.com/t5/P-Series/Help-with-P2020-eTSEC-DTS-configuration-I-think/m-p/1651503#M5134</link>
      <description>&lt;P&gt;Hi, I am porting Open Network Linux (ONL) to a bare metal switch (Kuga 7048N - see attached KUGA7048N_HW_SPEC_v03.pdf). The eTSEC NIC works fine in uboot and in the factory-loaded ONIE install/recovery environments.&lt;/P&gt;&lt;P&gt;However, eTSEC NIC *TX* isn't working for my build. Base address reported as 0xe000 whereas it's 0x8000 in (working) ONIE environment. See below ifconfig output:&lt;/P&gt;&lt;TABLE border="1" width="100%"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="100%"&gt;root@localhost:~# ifconfig ma1&lt;BR /&gt;ma1 Link encap:Ethernet HWaddr 00:30:ab:2e:45:44&lt;BR /&gt;UP BROADCAST MULTICAST MTU:1500 Metric:1&lt;BR /&gt;RX packets:16853 errors:0 dropped:414 overruns:0 frame:0&lt;BR /&gt;TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;BR /&gt;collisions:0 txqueuelen:1000&lt;BR /&gt;RX bytes:2247973 (2.1 MiB) TX bytes:0 (0.0 B)&lt;BR /&gt;Base address:0xe000&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The NIC receives packets, as indicated by ifconfig output above and tcpdump output below:&lt;/P&gt;&lt;TABLE border="1" width="100%"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="100%"&gt;&lt;P&gt;root@localhost:~# tcpdump -i ma1&lt;BR /&gt;device ma1 entered promiscuous mode&lt;BR /&gt;tcpdump: verbose output suppressed, use -v or -vv for full protocol decode&lt;BR /&gt;listening on ma1, link-type EN10MB (Ethernet), capture size 262144 bytes&lt;BR /&gt;00:28:21.542348 ARP, Request who-has 10.1.1.108 tell 10.1.1.4, length 46&lt;BR /&gt;00:28:21.680745 STP 802.1w, Rapid STP, Flags [Learn, Forward], bridge-id 8000.00:1f:12:3a:11:41.821d, length 43&lt;BR /&gt;00:28:22.047322 ARP, Request who-has 10.1.1.240 tell 10.1.1.240, length 46&lt;BR /&gt;00:28:22.109159 ARP, Request who-has 10.1.3.232 tell 10.1.1.6, length 46&lt;BR /&gt;[ ... keeps going ...]&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I created DTS (see attached &lt;SPAN&gt;powerpc-delta-kuga7048-r0.dts)&amp;nbsp;&lt;/SPAN&gt;by dumping precompiled DTB from uboot (see attached&amp;nbsp;uboot-dts-dump.txt) and editing it to:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;use&amp;nbsp;P2020RDB profile&lt;/LI&gt;&lt;LI&gt;replace&amp;nbsp;"interrupts" and "interrupt-map"&amp;nbsp;&lt;SPAN&gt;references (&lt;/SPAN&gt;&lt;SPAN&gt;* 0x######## [0x########]) with md dump of memory addresses referenced.&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;SPAN&gt;ethtool reports no link detected and speed/duplex unknown. See output below:&lt;/SPAN&gt;&lt;/P&gt;&lt;TABLE border="1" width="100%"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="100%"&gt;root@localhost:~# ethtool ma1&lt;BR /&gt;Settings for ma1:&lt;BR /&gt;Supported ports: [ MII ]&lt;BR /&gt;Supported link modes: 10baseT/Half 10baseT/Full&lt;BR /&gt;100baseT/Half 100baseT/Full&lt;BR /&gt;1000baseT/Full&lt;BR /&gt;Supported pause frame use: Symmetric Receive-only&lt;BR /&gt;Supports auto-negotiation: Yes&lt;BR /&gt;Advertised link modes: 10baseT/Half 10baseT/Full&lt;BR /&gt;100baseT/Half 100baseT/Full&lt;BR /&gt;1000baseT/Full&lt;BR /&gt;Advertised pause frame use: Symmetric Receive-only&lt;BR /&gt;Advertised auto-negotiation: Yes&lt;BR /&gt;Speed: Unknown!&lt;BR /&gt;Duplex: Unknown! (255)&lt;BR /&gt;Port: MII&lt;BR /&gt;PHYAD: 1&lt;BR /&gt;Transceiver: external&lt;BR /&gt;Auto-negotiation: on&lt;BR /&gt;Current message level: 0x0000003f (63)&lt;BR /&gt;drv probe link timer ifdown ifup&lt;BR /&gt;Link detected: no&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;mii-tool reports auto-negotiation completed and link ok. See output below:&lt;/P&gt;&lt;TABLE border="1" width="100%"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="100%"&gt;root@localhost:~# mii-tool ma1 -vvvv&lt;BR /&gt;Using SIOCGMIIPHY=0x8947&lt;BR /&gt;ma1: negotiated 1000baseT-FD flow-control, link ok&lt;BR /&gt;registers for MII PHY 1:&lt;BR /&gt;1140 796d 0020 60c1 0de1 c5e1 000d 2001&lt;BR /&gt;4e8a 0200 3800 0000 0000 0000 0000 3000&lt;BR /&gt;0000 1301 0000 0000 0101 0000 0000 0000&lt;BR /&gt;0400 ff1f 043e fff1 0000 337b 0000 0000&lt;BR /&gt;product info: vendor 00:08:18, model 12 rev 1&lt;BR /&gt;basic mode: autonegotiation enabled&lt;BR /&gt;basic status: autonegotiation complete, link ok&lt;BR /&gt;capabilities: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD&lt;BR /&gt;advertising: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control&lt;BR /&gt;link partner: 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;uname -a output:&lt;/P&gt;&lt;TABLE border="1" width="100%"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="100%"&gt;root@localhost:~# uname -a&lt;BR /&gt;Linux localhost 3.16.76-OpenNetworkLinux-85xx #1 SMP Sun Mar 19 06:16:10 UTC 2023 ppc GNU/Linux&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am happy to post output of any other commands. This isn't my area of expertise, but I am happy to do more digging on my own to solve the issue myself. I've just gotten to the point where I'm spinning my wheels, and I'm not sure what question(s) I need to ask to get the answer(s) that I need. Thanks in advance!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;**** More pasted output that might help ****&lt;/P&gt;&lt;TABLE border="1" width="100%"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="100%"&gt;ONIE:/ # fw_printenv&lt;BR /&gt;autoload=no&lt;BR /&gt;baudrate=9600&lt;BR /&gt;bdev=ram&lt;BR /&gt;bootcmd=run bootonie&lt;BR /&gt;bootdelay=10&lt;BR /&gt;bootdiag=setenv bootargs root=/dev/$bdev rw console=$consoledev,$baudrate $othbootargs; cp.b 0xed000000 $ramdiskaddr 0x1000000; cp.b 0xee800000 $loadaddr 0x400000; cp.b 0xeef00000 $fdtaddr 0x80000; bootm $loadaddr $ramdiskaddr $fdtaddr&lt;BR /&gt;bootfile=uImage&lt;BR /&gt;bootonie=sys_eeprom onie;run check_boot_reason; run nos_bootcmd; run onie_bootcmd&lt;BR /&gt;check_boot_reason=if test -n $onie_boot_reason; then setenv onie_bootargs boot_reason=$onie_boot_reason; run onie_bootcmd; fi;&lt;BR /&gt;clearenv=protect off eff60000 +20000;erase eff60000 +20000;protect on eff60000 +20000&lt;BR /&gt;consoledev=ttyS0&lt;BR /&gt;dhcp_user-class=powerpc-fsl_p2020rdbpca-r0_uboot&lt;BR /&gt;dhcp_vendor-class-identifier=uboot:powerpc-p2041-2-DNI_L7048N-r1&lt;BR /&gt;dtbflashaddr=0xeef00000&lt;BR /&gt;eth1addr=00:E0:0C:02:01:FD&lt;BR /&gt;eth2addr=00:E0:0C:02:02:FD&lt;BR /&gt;ethact=eTSEC3&lt;BR /&gt;ethaddr=00:30:AB:2E:45:44&lt;BR /&gt;ethprime=eTSEC1&lt;BR /&gt;fdtaddr=c00000&lt;BR /&gt;fdtfile=p2020ds.dtb&lt;BR /&gt;fsflashaddr=0xed000000&lt;BR /&gt;gatewayip=192.168.1.1&lt;BR /&gt;hostname=unknown&lt;BR /&gt;hwconfig=fsl_ddr:ctlr_intlv=bank,bank_intlv=cs0_cs1;usb1:dr_mode=host,phy_type=ulpi&lt;BR /&gt;ipaddr=192.168.1.254&lt;BR /&gt;loadaddr=1000000&lt;BR /&gt;loads_echo=1&lt;BR /&gt;netdev=eth0&lt;BR /&gt;netmask=255.255.255.0&lt;BR /&gt;nfsboot=setenv bootargs root=/dev/nfs rw nfsroot=$serverip:$rootpath ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:$netdev:off console=$consoledev,$baudrate $othbootargs;tftp $loadaddr $bootfile;tftp $fdtaddr $fdtfile;bootm $loadaddr - $fdtaddr&lt;BR /&gt;onie_args=run onie_initargs onie_platformargs&lt;BR /&gt;onie_bootcmd=echo Loading Open Network Install Environment ...; echo Platform: $onie_platform ; echo Version : $onie_version ; cp.b $onie_start $loadaddr ${onie_sz.b} &amp;amp;&amp;amp; run onie_args &amp;amp;&amp;amp; bootm ${loadaddr}&lt;BR /&gt;onie_initargs=setenv bootargs quiet console=$consoledev,$baudrate&lt;BR /&gt;onie_machine=fsl_p2041_kuga7048&lt;BR /&gt;onie_machine_rev=0&lt;BR /&gt;onie_platform=powerpc-p2041-2-DNI_L7048N-r1&lt;BR /&gt;onie_platformargs=setenv bootargs $bootargs serial_num=${serial#} eth_addr=$ethaddr platform=$onie_platform $onie_bootargs $onie_debugargs&lt;BR /&gt;onie_rescue=setenv onie_boot_reason rescue &amp;amp;&amp;amp; run bootonie&lt;BR /&gt;onie_start=0xef020000&lt;BR /&gt;onie_sz.b=0x00f40000&lt;BR /&gt;onie_uninstall=setenv onie_boot_reason uninstall &amp;amp;&amp;amp; run bootonie&lt;BR /&gt;onie_update=setenv onie_boot_reason update &amp;amp;&amp;amp; run bootonie&lt;BR /&gt;onie_vendor_id=33118&lt;BR /&gt;onie_version=2013.11.00&lt;BR /&gt;oniefile=onie-kuga7048-r0.bin&lt;BR /&gt;onieflashaddr=0xef020000&lt;BR /&gt;othbootargs=cache-sram-size=0x10000&lt;BR /&gt;partition=scsi 0:0&lt;BR /&gt;perf_mode=performance&lt;BR /&gt;platform=fsl_p2041_kuga7048&lt;BR /&gt;ramboot=setenv bootargs root=/dev/ram rw console=$consoledev,$baudrate $othbootargs;tftp $ramdiskaddr $ramdiskfile;tftp $loadaddr $bootfile;tftp $fdtaddr $fdtfile;bootm $loadaddr $ramdiskaddr $fdtaddr&lt;BR /&gt;ramdiskaddr=2000000&lt;BR /&gt;ramdiskfile=rootfs.ext2.gz.uboot&lt;BR /&gt;rootpath=/opt/nfsroot&lt;BR /&gt;serial#=K48DL150422142&lt;BR /&gt;serverip=192.168.1.111&lt;BR /&gt;stderr=serial&lt;BR /&gt;stdin=serial&lt;BR /&gt;stdout=serial&lt;BR /&gt;tftpflash=tftpboot $loadaddr $uboot; protect off 0xeff80000 +$filesize; erase 0xeff80000 +$filesize; cp.b $loadaddr 0xeff80000 $filesize; protect on 0xeff80000 +$filesize; cmp.b $loadaddr 0xeff80000 $filesize&lt;BR /&gt;uboot=u-boot.bin&lt;BR /&gt;uimgflashaddr=0xee800000&lt;BR /&gt;uplddtb=tftp $fdtaddr $serverip:$fdtfile;protect off $dtbflashaddr +$filesize;erase $dtbflashaddr +$filesize;cp.b $fdtaddr $dtbflashaddr $filesize;protect on $dtbflashaddr +$filesize&lt;BR /&gt;upldfs=tftp $ramdiskaddr $serverip:$ramdiskfile;protect off $fsflashaddr +$filesize;erase $fsflashaddr +$filesize;cp.b $ramdiskaddr $fsflashaddr $filesize;protect on $fsflashaddr +$filesize&lt;BR /&gt;upldlinux=ping $serverip;run uplduimg;run upldfs;run uplddtb;&lt;BR /&gt;upldonie=tftp $loadaddr $serverip:$oniefile;protect off $onieflashaddr +$filesize;erase $onieflashaddr +$filesize;cp.b $loadaddr $onieflashaddr $filesize;protect on $onieflashaddr +$filesize&lt;BR /&gt;uplduimg=tftp $loadaddr $serverip:$bootfile;protect off $uimgflashaddr +$filesize;erase $uimgflashaddr +$filesize;cp.b $loadaddr $uimgflashaddr $filesize;protect on $uimgflashaddr +$filesize&lt;BR /&gt;onie_dropbear_rsa_host_key=begin-base64@600@r#AAAAB3NzaC1yc2EAAAADAQABAAAAgwCXO4N0OTAhH2TxUTK3od1YASeoqGJz#4SxXOXJ68GmMPh0+uhzGThCDspDftlKPghnMynHD6dPCiyl2Ggmo9ls3WAA+#M3IgpYkKn9kq4wFuf8xuyTLfJHkyIJgjgwR9BbUWNvHEsaIX6yhnyXTMHC2x#Cwpa6J0AnAOzKq/pdpO/lq+rAAAAggF9Od4lx1jhe5ekumB0h5QbmXhfsBh+#ryEXamPWL4k3U10QGBhxIa3U+aLk+LXRDM/8w6yvhhZJqIQxMscnJd7K9cE2#GkOyJY3zqHaUNm3CjxS0JVPhqa+m1wAc6yjmAwp6wFpP2QilfyZwZsw/SsdN#csPRCnu37za+5yuCNgiW3AEAAABCAKCtPxmPRvM+oGxR+ob0p7yX/C8BDn75#PUUWWH8YeCIMAvyjS1T7rhtrYLEmPh5CqzFPb+dG8keEIPtx+uXFJdtLAAAA#QgDw8+uP66cUsy+oQeVvHWtMbdn2GsipTdYbZpYudQOMf3E/SYS1pDn1NbYG#kGkGd84aITwHaE6njOA3vc+yKBphIQ==#====#&lt;BR /&gt;onie_dropbear_dss_host_key=begin-base64@600@d#AAAAB3NzaC1kc3MAAACBAO4Lzx5WXMQkMzLHxYBxkyS2bmc2b2fB+PU43gJH#u3kTK3qy8VEg4qmYhu4iEldqYCdYIOGwl+s8I2EQwlc84lTmuzUE6uSiyGE/#rUPFAog9qBTy5a0JIkzAbl9yHNkpWOUyW/eXYXtlTyG7A2koCfRRDAwOigLl#adLcoAbT0TnfAAAAFQCVUaqVCQecdbU7rYGx9Tk4W7l+MQAAAIEAt3t0Ddbn#rMsF+35Sk9AE1IGr3A+oC2w3IrDurjFzuDdGLohFdSbsViBUCPdObZyynp6i#5SuUSFe+xIpe4m9kZxOEN9ycWOdtReRFlgrvVxIrLdVKgCr0gizv7H+xobec#vaw76+ioAIJHur0aVW9zgj4CWt01dqD+p6s4p86LXxMAAACBAOmgTOdhg5WA#nRnU4qhncYSQ6Ygos9RCKa6Bdq+tSGmpi0U9uIa+gse1I9eX560WL7QSYoWi#BIqzpm0U4orSRIllLUAUlnF9QYRKIJb/4jmWsNKP7FqYFbmq5/me/n8KLaPw#Vkg7URPW0a+aW/Mm1Y5XNd87sisxHVA62M/SYH4mAAAAFQCB3zMpIgLe4tZK#wh8/5m8hPdQ/Ug==#====#&lt;BR /&gt;boot-config-default=TkVUREVWPW1hMQpCT09UTU9ERT1JTlNUQUxMRUQKU1dJPWltYWdlczo6bGF0ZXN0Cg==&lt;BR /&gt;onl_installer_initrd=onl-loader-fit.itb:93495c:134f992&lt;BR /&gt;nos_bootcmd=setenv onl_loadaddr 0x10000000; setenv onl_platform powerpc-delta-kuga7048-r0; setenv onl_itb powerpc-delta-kuga7048-r0.itb; setenv bootargs console=$consoledev,$baudrate onl_platform=$onl_platform; mmc part 0; ext2load mmc 0:1 $onl_loadaddr $onl_itb; bootm $onl_loadaddr#$onl_platform&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Uboot console output:&lt;/P&gt;&lt;TABLE border="1" width="100%"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="100%"&gt;&lt;P&gt;U-Boot 2013.01 (Nov 19 2014 - 17:10:19) L7048N V1.0.0.4&lt;/P&gt;&lt;P&gt;CPU0: P2020E, Version: 2.1, (0x80ea0021)&lt;BR /&gt;Core: E500, Version: 5.1, (0x80211051)&lt;BR /&gt;Clock Configuration:&lt;BR /&gt;CPU0:1200 MHz, CPU1:1200 MHz,&lt;BR /&gt;CCB:600 MHz,&lt;BR /&gt;DDR:333.333 MHz (666.667 MT/s data rate) (Asynchronous), LBC:37.500 MHz&lt;BR /&gt;L1: D-cache 32 kB enabled&lt;BR /&gt;I-cache 32 kB enabled&lt;BR /&gt;Board: L7048N&lt;BR /&gt;I2C: ready&lt;BR /&gt;SPI: ready&lt;BR /&gt;DRAM: Detected UDIMM 75.A83E0.G000C&lt;BR /&gt;2 GiB (DDR3, 64-bit, CL=6, ECC on)&lt;BR /&gt;Testing 0x00000000 - 0x7fffffff&lt;BR /&gt;Remap DDR&lt;BR /&gt;POST memory PASSED&lt;BR /&gt;Flash: 128 MiB&lt;BR /&gt;L2: 512 KB enabled&lt;BR /&gt;MMC: FSL_SDHC: 0&lt;BR /&gt;EEPROM: TlvInfo v1 len=129&lt;BR /&gt;PCIe1: Root Complex of Slot 1, x2, regs @ 0xffe0a000&lt;BR /&gt;PCIe1: Bus 00 - 01&lt;BR /&gt;In: serial&lt;BR /&gt;Out: serial&lt;BR /&gt;Err: serial&lt;BR /&gt;Net: eTSEC3 is in sgmii mode.&lt;BR /&gt;eTSEC3&lt;BR /&gt;Hit any key to stop autoboot: 0&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;ONIE installer environment ifconfig output (eth2 corresponds to physical interface):&lt;/P&gt;&lt;TABLE border="1" width="100%"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="100%"&gt;&lt;P&gt;ONIE:/proc/device-tree/chosen # cat bootargs&lt;BR /&gt;quiet console=ttyS0,9600 serial_num=K48DL150422142 eth_addr=00:30:AB:2E:45:44 platform=powerpc-p2041-2-DNI_L7048N-r1 boot_reason=rescueONIE:/proc/device-tree/chosen # ifconfig eth0&lt;BR /&gt;eth0 Link encap:Ethernet HWaddr 00:E0:0C:02:01:FD&lt;BR /&gt;inet addr:192.168.3.1 Bcast:192.168.3.255 Mask:255.255.255.0&lt;BR /&gt;UP BROADCAST MULTICAST MTU:1500 Metric:1&lt;BR /&gt;RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;BR /&gt;TX packets:0 errors:0 dropped:0 overruns:0 carrier:0&lt;BR /&gt;collisions:0 txqueuelen:1000&lt;BR /&gt;RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)&lt;BR /&gt;Base address:0x4000&lt;/P&gt;&lt;P&gt;ONIE:/proc/device-tree/chosen # ifconfig eth1&lt;BR /&gt;eth1 Link encap:Ethernet HWaddr 00:E0:0C:02:02:FD&lt;BR /&gt;inet addr:192.168.4.1 Bcast:192.168.4.255 Mask:255.255.255.0&lt;BR /&gt;inet6 addr: fe80::2e0:cff:fe02:2fd/64 Scope:Link&lt;BR /&gt;UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1&lt;BR /&gt;RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;BR /&gt;TX packets:10 errors:0 dropped:0 overruns:0 carrier:0&lt;BR /&gt;collisions:0 txqueuelen:1000&lt;BR /&gt;RX bytes:0 (0.0 B) TX bytes:2080 (2.0 KiB)&lt;BR /&gt;Base address:0x6000&lt;/P&gt;&lt;P&gt;ONIE:/proc/device-tree/chosen # ifconfig eth2&lt;BR /&gt;eth2 Link encap:Ethernet &lt;STRONG&gt;HWaddr 00:30:AB:2E:45:44&lt;/STRONG&gt;&lt;BR /&gt;inet addr:10.1.1.220 Bcast:10.1.255.255 Mask:255.255.0.0&lt;BR /&gt;inet6 addr: fe80::230:abff:fe2e:4544/64 Scope:Link&lt;BR /&gt;UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1&lt;BR /&gt;RX packets:5904 errors:0 dropped:175 overruns:0 frame:0&lt;BR /&gt;TX packets:9 errors:0 dropped:0 overruns:0 carrier:0&lt;BR /&gt;collisions:0 txqueuelen:1000&lt;BR /&gt;RX bytes:869187 (848.8 KiB) TX bytes:1689 (1.6 KiB)&lt;BR /&gt;Base address:&lt;STRONG&gt;0x8000&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 16 May 2023 21:08:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/P-Series/Help-with-P2020-eTSEC-DTS-configuration-I-think/m-p/1651503#M5134</guid>
      <dc:creator>jyav</dc:creator>
      <dc:date>2023-05-16T21:08:02Z</dc:date>
    </item>
    <item>
      <title>Re: Help with P2020 eTSEC DTS configuration (I *think*)</title>
      <link>https://community.nxp.com/t5/P-Series/Help-with-P2020-eTSEC-DTS-configuration-I-think/m-p/1652159#M5135</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;Very good job, but this error is not the device tree, this is going to driver code or something in the apps that can not be store in that address.&lt;/P&gt;
&lt;P&gt;Regards&lt;/P&gt;</description>
      <pubDate>Wed, 17 May 2023 14:50:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/P-Series/Help-with-P2020-eTSEC-DTS-configuration-I-think/m-p/1652159#M5135</guid>
      <dc:creator>Bio_TICFSL</dc:creator>
      <dc:date>2023-05-17T14:50:37Z</dc:date>
    </item>
    <item>
      <title>Re: Help with P2020 eTSEC DTS configuration (I *think*)</title>
      <link>https://community.nxp.com/t5/P-Series/Help-with-P2020-eTSEC-DTS-configuration-I-think/m-p/1652514#M5137</link>
      <description>&lt;P&gt;I fixed it by using the code for&amp;nbsp;/drivers/net/phy/broadcom.c from&amp;nbsp;&lt;A href="https://www.uwsg.indiana.edu/hypermail/linux/kernel/0609.1/2317.html" target="_blank"&gt;https://www.uwsg.indiana.edu/hypermail/linux/kernel/0609.1/2317.html&lt;/A&gt;&lt;/P&gt;&lt;TABLE border="1" width="100%"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD width="100%"&gt;&lt;P&gt;#include &amp;lt;linux/kernel.h&amp;gt;&lt;BR /&gt;#include &amp;lt;linux/sched.h&amp;gt;&lt;BR /&gt;#include &amp;lt;linux/string.h&amp;gt;&lt;BR /&gt;#include &amp;lt;linux/errno.h&amp;gt;&lt;BR /&gt;#include &amp;lt;linux/unistd.h&amp;gt;&lt;BR /&gt;#include &amp;lt;linux/slab.h&amp;gt;&lt;BR /&gt;#include &amp;lt;linux/interrupt.h&amp;gt;&lt;BR /&gt;#include &amp;lt;linux/init.h&amp;gt;&lt;BR /&gt;#include &amp;lt;linux/delay.h&amp;gt;&lt;BR /&gt;#include &amp;lt;linux/netdevice.h&amp;gt;&lt;BR /&gt;#include &amp;lt;linux/etherdevice.h&amp;gt;&lt;BR /&gt;#include &amp;lt;linux/skbuff.h&amp;gt;&lt;BR /&gt;#include &amp;lt;linux/spinlock.h&amp;gt;&lt;BR /&gt;#include &amp;lt;linux/mm.h&amp;gt;&lt;BR /&gt;#include &amp;lt;linux/module.h&amp;gt;&lt;BR /&gt;#include &amp;lt;linux/mii.h&amp;gt;&lt;BR /&gt;#include &amp;lt;linux/ethtool.h&amp;gt;&lt;BR /&gt;#include &amp;lt;linux/phy.h&amp;gt;&lt;/P&gt;&lt;P&gt;#include &amp;lt;asm/io.h&amp;gt;&lt;BR /&gt;#include &amp;lt;asm/irq.h&amp;gt;&lt;BR /&gt;#include &amp;lt;asm/uaccess.h&amp;gt;&lt;/P&gt;&lt;P&gt;/* BCM5421S control register */&lt;BR /&gt;#define MII_BCM5421S_CONTROL 0x00&lt;BR /&gt;#define MII_BCM5421S_CONTROL_RESET 0x00008000&lt;BR /&gt;#define MII_BCM5421S_CONTROL_INIT 0x00001140&lt;BR /&gt;#define MII_BCM5421S_ANEN 0x00001000&lt;BR /&gt;#define MII_BCM5421S_CR 0x00&lt;BR /&gt;#define MII_BCM5421S_CR_RST 0x00008000&lt;BR /&gt;#define MII_BCM5421S_CR_INIT 0x00001000&lt;BR /&gt;#define MII_BCM5421S_STATUS 0x1&lt;BR /&gt;#define MII_BCM5421S_STATUS_AN_DONE 0x00000020&lt;BR /&gt;#define MII_BCM5421S_STATUS_LINK 0x0004&lt;BR /&gt;#define MII_BCM5421S_PHYIR1 0x2&lt;BR /&gt;#define MII_BCM5421S_PHYIR2 0x3&lt;BR /&gt;#define MII_BCM5421S_ANLPBPA 0x5&lt;BR /&gt;#define MII_BCM5421S_ANLPBPA_HALF 0x00000040&lt;BR /&gt;#define MII_BCM5421S_ANLPBPA_FULL 0x00000020&lt;BR /&gt;#define MII_BCM5421S_ANEX 0x6&lt;BR /&gt;#define MII_BCM5421S_ANEX_NP 0x00000004&lt;BR /&gt;#define MII_BCM5421S_ANEX_PRX 0x00000002&lt;/P&gt;&lt;P&gt;MODULE_DESCRIPTION("Broadcom PHY driver");&lt;BR /&gt;MODULE_AUTHOR("Amy Fong");&lt;BR /&gt;MODULE_LICENSE("GPL");&lt;/P&gt;&lt;P&gt;static int bcm5421s_config_aneg(struct phy_device *phydev)&lt;BR /&gt;{&lt;BR /&gt;int err;&lt;/P&gt;&lt;P&gt;/* Write the appropriate value to the PHY reg */&lt;BR /&gt;if (phydev-&amp;gt;supported &amp;amp; SUPPORTED_1000baseT_Full)&lt;BR /&gt;err = phy_write(phydev, MII_BCM5421S_CONTROL, MII_BCM5421S_CONTROL_INIT);&lt;BR /&gt;else&lt;BR /&gt;err = phy_write(phydev, MII_BCM5421S_CONTROL, MII_BCM5421S_CR_INIT);&lt;/P&gt;&lt;P&gt;if (err &amp;lt; 0) return err;&lt;/P&gt;&lt;P&gt;/* doesn't have phy interrupt */&lt;BR /&gt;phydev-&amp;gt;interrupts = PHY_INTERRUPT_DISABLED;&lt;/P&gt;&lt;P&gt;return 0;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;static struct phy_driver bcm5421s_driver = {&lt;BR /&gt;.phy_id = 0x002060e1,&lt;BR /&gt;.phy_id_mask = 0x00ffffff,&lt;BR /&gt;.name = "Broadcom BCM5421S",&lt;BR /&gt;.features = PHY_GBIT_FEATURES,&lt;BR /&gt;.config_aneg = bcm5421s_config_aneg,&lt;BR /&gt;.read_status = genphy_read_status,&lt;BR /&gt;.driver = { .owner = THIS_MODULE,},&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;/* Glossy description on Broadcom's site seems to hint that the 5461&lt;BR /&gt;should be a drop-in for the 5421.... */&lt;BR /&gt;static struct phy_driver bcm5461s_driver = {&lt;BR /&gt;.phy_id = 0x002060c1,&lt;BR /&gt;.phy_id_mask = 0x00ffffff,&lt;BR /&gt;.name = "Broadcom BCM5461S",&lt;BR /&gt;.features = PHY_GBIT_FEATURES,&lt;BR /&gt;.config_aneg = bcm5421s_config_aneg,&lt;BR /&gt;.read_status = genphy_read_status,&lt;BR /&gt;.driver = { .owner = THIS_MODULE,},&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;static int __init broadcom_init(void)&lt;BR /&gt;{&lt;BR /&gt;int ret;&lt;/P&gt;&lt;P&gt;ret = phy_driver_register(&amp;amp;bcm5421s_driver);&lt;BR /&gt;if (!ret) {&lt;BR /&gt;ret = phy_driver_register(&amp;amp;bcm5461s_driver);&lt;BR /&gt;if (ret) phy_driver_unregister(&amp;amp;bcm5421s_driver);&lt;BR /&gt;}&lt;BR /&gt;return ret;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;static void __exit broadcom_exit(void)&lt;BR /&gt;{&lt;BR /&gt;phy_driver_unregister(&amp;amp;bcm5421s_driver);&lt;BR /&gt;phy_driver_unregister(&amp;amp;bcm5461s_driver);&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;module_init(broadcom_init);&lt;BR /&gt;module_exit(broadcom_exit);&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Wed, 17 May 2023 20:48:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/P-Series/Help-with-P2020-eTSEC-DTS-configuration-I-think/m-p/1652514#M5137</guid>
      <dc:creator>jyav</dc:creator>
      <dc:date>2023-05-17T20:48:31Z</dc:date>
    </item>
  </channel>
</rss>

