Hi,
I am trying to get a bare metal implementation, using lwip, running on the TE0715-30 hosted on the TE0706 carrier, to bring up both Ethernet interfaces.
- Windows 10
- Vivado 2018.3
- SDK 2018.3
So far I have the first Ethernet interface (ETH0), which uses to TE0715-30 PHY working. However, I am struggling with the second Ethernet interface (ETH1).
I have configured Vivado like this (see Vivado.PNG attached)....

... with the pinout like this ...
set_property PACKAGE_PIN P6 [get_ports RGMII_td[3]]
set_property PACKAGE_PIN P5 [get_ports RGMII_td[2]]
set_property PACKAGE_PIN N4 [get_ports RGMII_td[1]]
set_property PACKAGE_PIN N3 [get_ports RGMII_td[0]]
set_property PACKAGE_PIN T2 [get_ports RGMII_rxc]
set_property PACKAGE_PIN T1 [get_ports ETH_CONFIG]
set_property PACKAGE_PIN R5 [get_ports RGMII_rd[3]]
set_property PACKAGE_PIN R4 [get_ports RGMII_rd[2]]
set_property PACKAGE_PIN N1 [get_ports RGMII_rd[1]]
set_property PACKAGE_PIN P1 [get_ports RGMII_rd[0]]
set_property PACKAGE_PIN L2 [get_ports RGMII_rx_ctl]
set_property PACKAGE_PIN L1 [get_ports MDIO_PHY_mdc]
set_property PACKAGE_PIN M4 [get_ports MDIO_PHY_mdio_io]
set_property PACKAGE_PIN M3 [get_ports ETH_RST[0]]
set_property PACKAGE_PIN U2 [get_ports RGMII_txc]
set_property PACKAGE_PIN U1 [get_ports RGMII_tx_ctl]
... the TE0706 is set to operate at 1V8.
I have the following code to attempt to bring up the second Ethernet interface...
struct netif NtwrkIF;
struct ip4_addr sonarIP;
struct ip4_addr sonarNetMask;
struct ip4_addr sonarGateWay;
u8 macAddr[6] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05}; //changed from actual MAC address
static struct udp_pcb *pUDP_PCB;
...
IP4_ADDR(&sonarIP, 192,168,16,200);
IP4_ADDR(&sonarNetMask, 255,255,255,0);
IP4_ADDR(&sonarGateWay, 192,168,16,1);
...
xemac_add(&NtwrkIF, &sonarIP, &sonarNetMask,
&sonarGateWay, macAddr, XPAR_XEMACPS_1_BASEADDR);
netif_set_default(&NtwrkIF);
netif_set_up(&NtwrkIF);
pUDP_PCB = udp_new();
udp_bind(pUDP_PCB, IP_ADDR_ANY, 1234); //changed from actual port
udp_recv(pUDP_PCB, &RcvHandler, NULL);
... but the RcvHandler is never called despite the LEDs on the RJ45 connector flashing to indicate that data is being received. The only difference between using ETH0 and ETH1 is a change of XPAR_XEMACPS_0_BASEADDR to XPAR_XEMACPS_1_BASEADDR.
ETH0 is working fine.
What have I done wrong?
Thanks,
Simon