Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
101 changes: 95 additions & 6 deletions bsp/zynqmp-a53-dfzu2eg/.config
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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

Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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

Expand Down
2 changes: 1 addition & 1 deletion bsp/zynqmp-a53-dfzu2eg/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ msh />
| GPIO | 暂不支持 | - |
| SPI | 暂不支持 | - |
| SDIO | 暂不支持 | - |
| ETH | 暂不支持 | - |
| ETH | 支持 | - |

目前BSP仅保证成功运行,驱动后续会慢慢支持!

Expand Down
1 change: 1 addition & 0 deletions bsp/zynqmp-a53-dfzu2eg/qemu.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,5 +39,6 @@ def is_opt(key, inkey):
-kernel rtthread.bin \
{} \
{} \
-nic user,model=cadence_gem \
-serial mon:stdio
""".format(RTT_QEMU_ROOT, mem, q_graphic, q_debug))
65 changes: 65 additions & 0 deletions bsp/zynqmp-a53-dfzu2eg/rtconfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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"
Expand All @@ -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 */
Expand Down Expand Up @@ -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 */
Expand Down
29 changes: 28 additions & 1 deletion bsp/zynqmp-a53-dfzu2eg/zynqmp.dts
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down Expand Up @@ -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>;
Expand All @@ -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>;
};
};
};
};
Loading