summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bsp/zynqmp-a53-dfzu2eg/.config101
-rw-r--r--bsp/zynqmp-a53-dfzu2eg/README.md2
-rwxr-xr-xbsp/zynqmp-a53-dfzu2eg/qemu.py1
-rw-r--r--bsp/zynqmp-a53-dfzu2eg/rtconfig.h65
-rwxr-xr-xbsp/zynqmp-a53-dfzu2eg/zynqmp.dts29
5 files changed, 190 insertions, 8 deletions
diff --git a/bsp/zynqmp-a53-dfzu2eg/.config b/bsp/zynqmp-a53-dfzu2eg/.config
index c8cc09b1f1..758a0c4be0 100644
--- a/bsp/zynqmp-a53-dfzu2eg/.config
+++ b/bsp/zynqmp-a53-dfzu2eg/.config
@@ -310,9 +310,11 @@ CONFIG_RT_SERIAL_XILINX_PS=y
# CONFIG_RT_USING_CAN is not set
CONFIG_RT_USING_CLOCK_TIME=y
CONFIG_RT_CLOCK_TIME_ARM_ARCH=y
+CONFIG_RT_USING_ETHERNET=y
+CONFIG_RT_ETHERNET_CADENCE=y
# CONFIG_RT_USING_I2C is not set
# CONFIG_RT_USING_PHY is not set
-# CONFIG_RT_USING_PHY_V2 is not set
+CONFIG_RT_USING_PHY_V2=y
# CONFIG_RT_USING_ADC is not set
# CONFIG_RT_USING_DAC is not set
CONFIG_RT_USING_NULL=y
@@ -343,6 +345,7 @@ CONFIG_RT_RTC_ZYNQMP=y
# CONFIG_RT_USING_GRAPHIC is not set
# CONFIG_RT_USING_HWCRYPTO is not set
# CONFIG_RT_USING_WIFI is not set
+# CONFIG_RT_USING_PTP is not set
# CONFIG_RT_USING_LED is not set
# CONFIG_RT_USING_INPUT is not set
# CONFIG_RT_USING_MBOX is not set
@@ -366,7 +369,9 @@ CONFIG_RT_USING_RESET=y
# CONFIG_RT_USING_POWER_SUPPLY is not set
# CONFIG_RT_USING_THERMAL is not set
# CONFIG_RT_USING_VIRTIO is not set
-# CONFIG_RT_USING_DMA is not set
+# CONFIG_RT_USING_NVMEM is not set
+CONFIG_RT_USING_DMA=y
+# CONFIG_RT_DMA_PL330 is not set
# CONFIG_RT_USING_MFD is not set
CONFIG_RT_USING_OFW=y
CONFIG_RT_USING_BUILTIN_FDT=y
@@ -380,7 +385,9 @@ CONFIG_MAX_HANDLERS=256
CONFIG_RT_PIC_ARM_GIC=y
# CONFIG_RT_PIC_ARM_GIC_V3 is not set
CONFIG_RT_PIC_ARM_GIC_MAX_NR=1
-# CONFIG_RT_USING_PIN is not set
+CONFIG_RT_USING_PIN=y
+# CONFIG_RT_PIN_PL061 is not set
+# CONFIG_RT_USING_PINCTRL is not set
CONFIG_RT_USING_CLK=y
# CONFIG_RT_USING_CHERRYUSB is not set
@@ -448,9 +455,90 @@ CONFIG_RT_USING_POSIX_PIPE_SIZE=512
#
# Network
#
-# CONFIG_RT_USING_SAL is not set
-# CONFIG_RT_USING_NETDEV is not set
-# CONFIG_RT_USING_LWIP is not set
+CONFIG_RT_USING_SAL=y
+CONFIG_SAL_INTERNET_CHECK=y
+CONFIG_SOCKET_TABLE_STEP_LEN=4
+
+#
+# Docking with protocol stacks
+#
+CONFIG_SAL_USING_LWIP=y
+# CONFIG_SAL_USING_AT is not set
+# CONFIG_SAL_USING_TLS is not set
+# end of Docking with protocol stacks
+
+CONFIG_SAL_USING_POSIX=y
+CONFIG_RT_USING_NETDEV=y
+CONFIG_NETDEV_USING_IFCONFIG=y
+CONFIG_NETDEV_USING_PING=y
+CONFIG_NETDEV_USING_NETSTAT=y
+CONFIG_NETDEV_USING_AUTO_DEFAULT=y
+# CONFIG_NETDEV_USING_LINK_STATUS_CALLBACK is not set
+# CONFIG_NETDEV_USING_IPV6 is not set
+CONFIG_NETDEV_IPV4=1
+CONFIG_NETDEV_IPV6=0
+CONFIG_RT_USING_LWIP=y
+# CONFIG_RT_USING_LWIP_LOCAL_VERSION is not set
+# CONFIG_RT_USING_LWIP141 is not set
+CONFIG_RT_USING_LWIP203=y
+# CONFIG_RT_USING_LWIP212 is not set
+# CONFIG_RT_USING_LWIP_LATEST is not set
+CONFIG_RT_USING_LWIP_VER_NUM=0x20003
+# CONFIG_RT_USING_LWIP_IPV6 is not set
+CONFIG_RT_LWIP_MEM_ALIGNMENT=8
+CONFIG_RT_LWIP_IGMP=y
+CONFIG_RT_LWIP_ICMP=y
+# CONFIG_RT_LWIP_SNMP is not set
+CONFIG_RT_LWIP_DNS=y
+CONFIG_RT_LWIP_DHCP=y
+CONFIG_IP_SOF_BROADCAST=1
+CONFIG_IP_SOF_BROADCAST_RECV=1
+
+#
+# Static IPv4 Address
+#
+CONFIG_RT_LWIP_IPADDR="192.168.1.30"
+CONFIG_RT_LWIP_GWADDR="192.168.1.1"
+CONFIG_RT_LWIP_MSKADDR="255.255.255.0"
+# end of Static IPv4 Address
+
+CONFIG_RT_LWIP_UDP=y
+CONFIG_RT_LWIP_TCP=y
+CONFIG_RT_LWIP_RAW=y
+# CONFIG_RT_LWIP_PPP is not set
+CONFIG_RT_MEMP_NUM_NETCONN=8
+CONFIG_RT_LWIP_PBUF_NUM=16
+CONFIG_RT_LWIP_RAW_PCB_NUM=4
+CONFIG_RT_LWIP_UDP_PCB_NUM=4
+CONFIG_RT_LWIP_TCP_PCB_NUM=4
+CONFIG_RT_LWIP_TCP_SEG_NUM=40
+CONFIG_RT_LWIP_TCP_SND_BUF=8196
+CONFIG_RT_LWIP_TCP_WND=8196
+CONFIG_RT_LWIP_TCPTHREAD_PRIORITY=10
+CONFIG_RT_LWIP_TCPTHREAD_MBOX_SIZE=8
+CONFIG_RT_LWIP_TCPTHREAD_STACKSIZE=8192
+# CONFIG_LWIP_NO_RX_THREAD is not set
+# CONFIG_LWIP_NO_TX_THREAD is not set
+CONFIG_RT_LWIP_ETHTHREAD_PRIORITY=12
+CONFIG_RT_LWIP_ETHTHREAD_STACKSIZE=8192
+CONFIG_RT_LWIP_ETHTHREAD_MBOX_SIZE=8
+# CONFIG_RT_LWIP_REASSEMBLY_FRAG is not set
+CONFIG_LWIP_NETIF_STATUS_CALLBACK=1
+CONFIG_LWIP_NETIF_LINK_CALLBACK=1
+CONFIG_RT_LWIP_NETIF_NAMESIZE=6
+CONFIG_SO_REUSE=1
+CONFIG_LWIP_SO_RCVTIMEO=1
+CONFIG_LWIP_SO_SNDTIMEO=1
+CONFIG_LWIP_SO_RCVBUF=1
+CONFIG_LWIP_SO_LINGER=0
+# CONFIG_RT_LWIP_NETIF_LOOPBACK is not set
+CONFIG_LWIP_NETIF_LOOPBACK=0
+# CONFIG_RT_LWIP_STATS is not set
+# CONFIG_RT_LWIP_USING_HW_CHECKSUM is not set
+CONFIG_RT_LWIP_USING_PING=y
+# CONFIG_LWIP_USING_DHCPD is not set
+# CONFIG_RT_LWIP_ENABLE_USER_HOOKS is not set
+# CONFIG_RT_LWIP_DEBUG is not set
# CONFIG_RT_USING_AT is not set
# end of Network
@@ -503,6 +591,7 @@ CONFIG_RT_INIT_MEMORY_REGIONS=128
# end of Using USB legacy version
# CONFIG_RT_USING_FDT is not set
+# CONFIG_RT_USING_LEGACY_VIRTIO is not set
# CONFIG_RT_USING_RUST is not set
# end of RT-Thread Components
diff --git a/bsp/zynqmp-a53-dfzu2eg/README.md b/bsp/zynqmp-a53-dfzu2eg/README.md
index 2b6ea5dc2d..95f7967628 100644
--- a/bsp/zynqmp-a53-dfzu2eg/README.md
+++ b/bsp/zynqmp-a53-dfzu2eg/README.md
@@ -145,7 +145,7 @@ msh />
| GPIO | 暂不支持 | - |
| SPI | 暂不支持 | - |
| SDIO | 暂不支持 | - |
-| ETH | 暂不支持 | - |
+| ETH | 支持 | - |
目前BSP仅保证成功运行,驱动后续会慢慢支持!
diff --git a/bsp/zynqmp-a53-dfzu2eg/qemu.py b/bsp/zynqmp-a53-dfzu2eg/qemu.py
index 680ea34ffd..0b476a8ad2 100755
--- a/bsp/zynqmp-a53-dfzu2eg/qemu.py
+++ b/bsp/zynqmp-a53-dfzu2eg/qemu.py
@@ -39,5 +39,6 @@ os.system("""
-kernel rtthread.bin \
{} \
{} \
+ -nic user,model=cadence_gem \
-serial mon:stdio
""".format(RTT_QEMU_ROOT, mem, q_graphic, q_debug))
diff --git a/bsp/zynqmp-a53-dfzu2eg/rtconfig.h b/bsp/zynqmp-a53-dfzu2eg/rtconfig.h
index 9e7cb96782..e3b9d520be 100644
--- a/bsp/zynqmp-a53-dfzu2eg/rtconfig.h
+++ b/bsp/zynqmp-a53-dfzu2eg/rtconfig.h
@@ -206,6 +206,9 @@
#define RT_SERIAL_XILINX_PS
#define RT_USING_CLOCK_TIME
#define RT_CLOCK_TIME_ARM_ARCH
+#define RT_USING_ETHERNET
+#define RT_ETHERNET_CADENCE
+#define RT_USING_PHY_V2
#define RT_USING_NULL
#define RT_USING_ZERO
#define RT_USING_RANDOM
@@ -220,6 +223,7 @@
/* Power Management (PM) Domains device drivers */
/* end of Power Management (PM) Domains device drivers */
+#define RT_USING_DMA
#define RT_USING_OFW
#define RT_USING_BUILTIN_FDT
#define RT_BUILTIN_FDT_PATH "zynqmp.dtb"
@@ -229,6 +233,7 @@
#define MAX_HANDLERS 256
#define RT_PIC_ARM_GIC
#define RT_PIC_ARM_GIC_MAX_NR 1
+#define RT_USING_PIN
#define RT_USING_CLK
/* SoC (System on Chip) Drivers */
@@ -273,6 +278,66 @@
/* Network */
+#define RT_USING_SAL
+#define SAL_INTERNET_CHECK
+#define SOCKET_TABLE_STEP_LEN 4
+
+/* Docking with protocol stacks */
+
+#define SAL_USING_LWIP
+/* end of Docking with protocol stacks */
+#define SAL_USING_POSIX
+#define RT_USING_NETDEV
+#define NETDEV_USING_IFCONFIG
+#define NETDEV_USING_PING
+#define NETDEV_USING_NETSTAT
+#define NETDEV_USING_AUTO_DEFAULT
+#define NETDEV_IPV4 1
+#define NETDEV_IPV6 0
+#define RT_USING_LWIP
+#define RT_USING_LWIP203
+#define RT_USING_LWIP_VER_NUM 0x20003
+#define RT_LWIP_MEM_ALIGNMENT 8
+#define RT_LWIP_IGMP
+#define RT_LWIP_ICMP
+#define RT_LWIP_DNS
+#define RT_LWIP_DHCP
+#define IP_SOF_BROADCAST 1
+#define IP_SOF_BROADCAST_RECV 1
+
+/* Static IPv4 Address */
+
+#define RT_LWIP_IPADDR "192.168.1.30"
+#define RT_LWIP_GWADDR "192.168.1.1"
+#define RT_LWIP_MSKADDR "255.255.255.0"
+/* end of Static IPv4 Address */
+#define RT_LWIP_UDP
+#define RT_LWIP_TCP
+#define RT_LWIP_RAW
+#define RT_MEMP_NUM_NETCONN 8
+#define RT_LWIP_PBUF_NUM 16
+#define RT_LWIP_RAW_PCB_NUM 4
+#define RT_LWIP_UDP_PCB_NUM 4
+#define RT_LWIP_TCP_PCB_NUM 4
+#define RT_LWIP_TCP_SEG_NUM 40
+#define RT_LWIP_TCP_SND_BUF 8196
+#define RT_LWIP_TCP_WND 8196
+#define RT_LWIP_TCPTHREAD_PRIORITY 10
+#define RT_LWIP_TCPTHREAD_MBOX_SIZE 8
+#define RT_LWIP_TCPTHREAD_STACKSIZE 8192
+#define RT_LWIP_ETHTHREAD_PRIORITY 12
+#define RT_LWIP_ETHTHREAD_STACKSIZE 8192
+#define RT_LWIP_ETHTHREAD_MBOX_SIZE 8
+#define LWIP_NETIF_STATUS_CALLBACK 1
+#define LWIP_NETIF_LINK_CALLBACK 1
+#define RT_LWIP_NETIF_NAMESIZE 6
+#define SO_REUSE 1
+#define LWIP_SO_RCVTIMEO 1
+#define LWIP_SO_SNDTIMEO 1
+#define LWIP_SO_RCVBUF 1
+#define LWIP_SO_LINGER 0
+#define LWIP_NETIF_LOOPBACK 0
+#define RT_LWIP_USING_PING
/* end of Network */
/* Memory protection */
diff --git a/bsp/zynqmp-a53-dfzu2eg/zynqmp.dts b/bsp/zynqmp-a53-dfzu2eg/zynqmp.dts
index 281f8da3f5..289ef71f58 100755
--- a/bsp/zynqmp-a53-dfzu2eg/zynqmp.dts
+++ b/bsp/zynqmp-a53-dfzu2eg/zynqmp.dts
@@ -23,12 +23,13 @@
interrupt-parent = <&gic>;
chosen {
- bootargs = "earlycon console=ttyPS0";
+ bootargs = "earlycon console=ttyPS0 cma=8M coherent_pool=2M";
stdout-path = "serial0:115200n8";
};
aliases {
serial0 = &uart0;
+ ethernet0 = &gem0;
};
memory {
@@ -107,6 +108,13 @@
clock-frequency = <100000000>;
};
+ clk125: clk125 {
+ compatible = "fixed-clock";
+ clock-output-names = "clk125mhz";
+ #clock-cells = <0>;
+ clock-frequency = <125000000>;
+ };
+
amba: amba {
compatible = "simple-bus";
#address-cells = <2>;
@@ -129,5 +137,24 @@
clocks = <&clk100 &clk100>;
clock-names = "uart_clk", "pclk";
};
+
+ gem0: ethernet@ff0b0000 {
+ compatible = "cdns,zynqmp-gem", "cdns,gem";
+ reg = <0x0 0xff0b0000 0x0 0x1000>;
+ interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "macirq", "hs_macirq";
+ clocks = <&clk100 &clk100 &clk125 &clk125 &clk100>;
+ clock-names = "pclk", "hclk", "tx_clk", "rx_clk", "tsu_clk";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ phy-mode = "rgmii-id";
+ phy-handle = <&gem0_phy>;
+ local-mac-address = [52 54 00 12 34 56];
+
+ gem0_phy: ethernet-phy@17 {
+ reg = <23>;
+ };
+ };
};
};