Skip to content
Open
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
116 changes: 66 additions & 50 deletions bsp/zynqmp-a53-dfzu2eg/.config
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,8 @@
# rt_vsnprintf options
#
# CONFIG_RT_KLIBC_USING_LIBC_VSNPRINTF is not set
CONFIG_RT_KLIBC_USING_VSNPRINTF_LONGLONG=y
CONFIG_RT_KLIBC_USING_VSNPRINTF_STANDARD=y
CONFIG_RT_KLIBC_USING_VSNPRINTF_DECIMAL_SPECIFIERS=y
CONFIG_RT_KLIBC_USING_VSNPRINTF_EXPONENTIAL_SPECIFIERS=y
CONFIG_RT_KLIBC_USING_VSNPRINTF_WRITEBACK_SPECIFIER=y
CONFIG_RT_KLIBC_USING_VSNPRINTF_CHECK_NUL_IN_FORMAT_SPECIFIER=y
# CONFIG_RT_KLIBC_USING_VSNPRINTF_MSVC_STYLE_INTEGER_SPECIFIERS is not set
CONFIG_RT_KLIBC_USING_VSNPRINTF_INTEGER_BUFFER_SIZE=32
CONFIG_RT_KLIBC_USING_VSNPRINTF_DECIMAL_BUFFER_SIZE=32
CONFIG_RT_KLIBC_USING_VSNPRINTF_FLOAT_PRECISION=6
CONFIG_RT_KLIBC_USING_VSNPRINTF_MAX_INTEGRAL_DIGITS_FOR_DECIMAL=9
CONFIG_RT_KLIBC_USING_VSNPRINTF_LOG10_TAYLOR_TERMS=4
# CONFIG_RT_KLIBC_USING_VSNPRINTF_LONGLONG is not set
# CONFIG_RT_KLIBC_USING_VSNPRINTF_STANDARD is not set
# end of rt_vsnprintf options

#
Expand Down Expand Up @@ -194,7 +184,8 @@ CONFIG_RT_USING_INTERRUPT_INFO=y
CONFIG_RT_USING_CONSOLE=y
CONFIG_RT_CONSOLEBUF_SIZE=256
CONFIG_RT_CONSOLE_DEVICE_NAME="uart0"
CONFIG_RT_VER_NUM=0x50201
CONFIG_RT_USING_CONSOLE_OUTPUT_CTL=y
CONFIG_RT_VER_NUM=0x50300
CONFIG_RT_USING_STDC_ATOMIC=y
CONFIG_RT_BACKTRACE_LEVEL_MAX_NR=32
# end of RT-Thread Kernel
Expand Down Expand Up @@ -295,7 +286,7 @@ CONFIG_RT_USING_DFS_ROMFS=y
#
# Device Drivers
#
# CONFIG_RT_USING_DM is not set
CONFIG_RT_USING_DM=y
CONFIG_RT_USING_DEV_BUS=y
CONFIG_RT_USING_DEVICE_IPC=y
CONFIG_RT_UNAMED_PIPE_NUMBER=64
Expand All @@ -308,8 +299,13 @@ CONFIG_RT_USING_SERIAL_V1=y
CONFIG_RT_SERIAL_USING_DMA=y
CONFIG_RT_SERIAL_RB_BUFSZ=256
# CONFIG_RT_USING_SERIAL_BYPASS is not set
# CONFIG_RT_SERIAL_EARLY_HVC is not set
# CONFIG_RT_SERIAL_PL011 is not set
# CONFIG_RT_SERIAL_8250 is not set
CONFIG_RT_SERIAL_XILINX_PS=y
# CONFIG_RT_USING_CAN is not set
# CONFIG_RT_USING_CPUTIME is not set
CONFIG_RT_USING_CLOCK_TIME=y
CONFIG_RT_CLOCK_TIME_ARM_ARCH=y
# CONFIG_RT_USING_I2C is not set
# CONFIG_RT_USING_PHY is not set
# CONFIG_RT_USING_PHY_V2 is not set
Expand All @@ -323,38 +319,68 @@ CONFIG_RT_USING_RANDOM=y
# CONFIG_RT_USING_INPUT_CAPTURE is not set
# CONFIG_RT_USING_MTD_NOR is not set
# CONFIG_RT_USING_MTD_NAND is not set
CONFIG_RT_USING_PM=y
CONFIG_PM_TICKLESS_THRESHOLD_TIME=2
# CONFIG_PM_USING_CUSTOM_CONFIG is not set
# CONFIG_PM_ENABLE_DEBUG is not set
# CONFIG_PM_ENABLE_SUSPEND_SLEEP_MODE is not set
# CONFIG_PM_ENABLE_THRESHOLD_SLEEP_MODE is not set
# CONFIG_RT_USING_PM is not set
CONFIG_RT_USING_RTC=y
# CONFIG_RT_USING_ALARM is not set
CONFIG_RT_USING_SOFT_RTC=y
CONFIG_RT_USING_ALARM=y
CONFIG_RT_ALARM_STACK_SIZE=8192
CONFIG_RT_ALARM_TIMESLICE=5
CONFIG_RT_ALARM_PRIORITY=10
# CONFIG_RT_ALARM_USING_LOCAL_TIME is not set
# CONFIG_RT_USING_SOFT_RTC is not set
# CONFIG_RT_RTC_GOLDFISH is not set
# CONFIG_RT_RTC_PL031 is not set
CONFIG_RT_RTC_ZYNQMP=y
# CONFIG_RT_USING_SDIO is not set
# CONFIG_RT_USING_SPI is not set
# CONFIG_RT_USING_WDT is not set
# CONFIG_RT_USING_AUDIO is not set
# CONFIG_RT_USING_SENSOR is not set
# CONFIG_RT_USING_TOUCH is not set
# CONFIG_RT_USING_LCD is not set
# CONFIG_RT_USING_GRAPHIC is not set
# CONFIG_RT_USING_HWCRYPTO is not set
# CONFIG_RT_USING_WIFI is not set
# CONFIG_RT_USING_LED is not set
# CONFIG_RT_USING_INPUT is not set
# CONFIG_RT_USING_MBOX is not set
# CONFIG_RT_USING_HWSPINLOCK is not set
# CONFIG_RT_USING_PHYE is not set
# CONFIG_RT_USING_BLK is not set
CONFIG_RT_USING_VIRTIO=y
CONFIG_RT_USING_VIRTIO10=y
CONFIG_RT_USING_VIRTIO_MMIO_ALIGN=y
CONFIG_RT_USING_VIRTIO_BLK=y
# CONFIG_RT_USING_VIRTIO_NET is not set
CONFIG_RT_USING_VIRTIO_CONSOLE=y
CONFIG_RT_USING_VIRTIO_CONSOLE_PORT_MAX_NR=4
CONFIG_RT_USING_VIRTIO_GPU=y
CONFIG_RT_USING_VIRTIO_INPUT=y
CONFIG_RT_USING_PIN=y
CONFIG_RT_USING_KTIME=y
# CONFIG_RT_USING_HWTIMER is not set
# CONFIG_RT_USING_SCSI is not set
# CONFIG_RT_USING_FIRMWARE is not set
# CONFIG_RT_USING_HWCACHE is not set
# CONFIG_RT_USING_REGULATOR is not set
CONFIG_RT_USING_RESET=y
# CONFIG_RT_RESET_SIMPLE is not set

#
# Power Management (PM) Domains device drivers
#
# end of Power Management (PM) Domains device drivers

# CONFIG_RT_USING_POWER_RESET is not set
# CONFIG_RT_USING_POWER_SUPPLY is not set
# CONFIG_RT_USING_THERMAL is not set
# CONFIG_RT_USING_DMA is not set
# CONFIG_RT_USING_MFD is not set
CONFIG_RT_USING_OFW=y
CONFIG_RT_USING_BUILTIN_FDT=y
CONFIG_RT_BUILTIN_FDT_PATH="zynqmp.dtb"
CONFIG_RT_FDT_EARLYCON_MSG_SIZE=128
CONFIG_RT_USING_OFW_BUS_RANGES_NUMBER=8
# CONFIG_RT_USING_PCI is not set
CONFIG_RT_USING_PIC=y
# CONFIG_RT_USING_PIC_STATISTICS is not set
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_CLK=y
# CONFIG_RT_USING_CHERRYUSB is not set

#
# SoC (System on Chip) Drivers
#
# end of Device Drivers

#
Expand Down Expand Up @@ -445,14 +471,14 @@ CONFIG_RT_USING_ADT_REF=y
# CONFIG_RT_USING_RT_LINK is not set
# end of Utilities

# CONFIG_RT_USING_VBUS is not set

#
# Memory management
#
# CONFIG_RT_PAGE_MPR_SIZE_DYNAMIC is not set
CONFIG_RT_PAGE_AFFINITY_BLOCK_SIZE=0x1000
CONFIG_RT_PAGE_MAX_ORDER=11
# CONFIG_RT_USING_MEMBLOCK is not set
CONFIG_RT_USING_MEMBLOCK=y
CONFIG_RT_INIT_MEMORY_REGIONS=128

#
# Debugging
Expand All @@ -471,6 +497,7 @@ CONFIG_RT_PAGE_MAX_ORDER=11
# end of Using USB legacy version

# CONFIG_RT_USING_FDT is not set
# CONFIG_RT_USING_RUST is not set
# end of RT-Thread Components

#
Expand Down Expand Up @@ -1506,14 +1533,3 @@ CONFIG_RT_PAGE_MAX_ORDER=11
# end of RT-Thread online packages

CONFIG_SOC_ZYNQMP_AARCH64=y

#
# Hardware Drivers Config
#
CONFIG_BSP_SUPPORT_FPU=y
CONFIG_BSP_USING_UART=y
CONFIG_BSP_USING_UART0=y
CONFIG_BSP_USING_GIC=y
CONFIG_BSP_USING_GICV2=y
# CONFIG_BSP_USING_GICV3 is not set
# end of Hardware Drivers Config
14 changes: 6 additions & 8 deletions bsp/zynqmp-a53-dfzu2eg/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,18 @@ RTT_DIR := ../../

PKGS_DIR := packages

SOC_DM_RTC_DIR := $(BSP_DIR)/drivers/rtc
SOC_DM_SERIAL_DIR := $(BSP_DIR)/drivers/serial

source "$(RTT_DIR)/Kconfig"
osource "$PKGS_DIR/Kconfig"

config SOC_ZYNQMP_AARCH64
bool
select ARCH_ARMV8
select ARCH_CPU_64BIT
select ARCH_ARM_MMU
select RT_USING_CACHE
select RT_USING_COMPONENTS_INIT
select RT_USING_USER_MAIN
select RT_USING_GIC
select BSP_USING_GIC
select ARCH_MM_MMU
select ARCH_CPU_64BIT
select RT_USING_CACHE
select RT_USING_STDC_ATOMIC
default y

source "$(BSP_DIR)/drivers/Kconfig"
3 changes: 2 additions & 1 deletion bsp/zynqmp-a53-dfzu2eg/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ setenv gatewayip 192.168.1.1
setenv netmask 255.255.255.0
setenv serverip 192.168.1.3
tftpboot 0x00200000 rtthread.bin
go 0x00200000
booti 0x00200000 - ${fdt_addr}
```

其中`192.168.1.3`为TFTP服务器的PC机的IP地址,大家可以根据自己的实际情况进行修改。
Expand Down Expand Up @@ -141,6 +141,7 @@ msh />
| 驱动 | 支持情况 | 备注 |
| ------ | ---- | :------: |
| UART | 支持 | UART0 |
| RTC | 支持 | - |
| GPIO | 暂不支持 | - |
| SPI | 暂不支持 | - |
| SDIO | 暂不支持 | - |
Expand Down
3 changes: 3 additions & 0 deletions bsp/zynqmp-a53-dfzu2eg/SConstruct
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ else:

sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')]
from building import *
import dtc

dtc.dts_to_dtb(RTT_ROOT, ["zynqmp.dts"], include_paths = [os.getcwd()], ignore_warning = ["simple_bus_reg", "unit_address_vs_reg", "clocks_is_cell", "gpios_property"])

TARGET = 'rtthread.' + rtconfig.TARGET_EXT
TRACE_CONFIG = ""
Expand Down
32 changes: 0 additions & 32 deletions bsp/zynqmp-a53-dfzu2eg/drivers/Kconfig

This file was deleted.

8 changes: 7 additions & 1 deletion bsp/zynqmp-a53-dfzu2eg/drivers/SConscript
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,13 @@ from building import *

cwd = GetCurrentDir()
src = Glob('*.c')
CPPPATH = [cwd , cwd + '/zynqmp']
CPPPATH = [cwd, cwd + "/../../../components/drivers/rtc"]

if GetDepend(['RT_RTC_ZYNQMP']):
src += ['rtc/rtc-zynqmp.c']

if GetDepend(['RT_SERIAL_XILINX_PS']):
src += ['serial/xilinx_uartps.c']

group = DefineGroup('Drivers', src, depend = [''], CPPPATH = CPPPATH)

Expand Down
66 changes: 3 additions & 63 deletions bsp/zynqmp-a53-dfzu2eg/drivers/board.c
Original file line number Diff line number Diff line change
Expand Up @@ -6,72 +6,12 @@
* Change Logs:
* Date Author Notes
* 2024-04-11 liYony the first version
* 2024-07-07 GuEe-GUI init common
*/

#include <mmu.h>
#include <board.h>
#include <mm_aspace.h>
#include <mm_page.h>
#include <drv_uart.h>
#include <gtimer.h>

extern size_t MMUTable[];

#ifdef RT_USING_SMART
struct mem_desc platform_mem_desc[] = {
{KERNEL_VADDR_START, KERNEL_VADDR_START + 0x7FF00000 - 1, (rt_size_t)ARCH_MAP_FAILED, NORMAL_MEM}
};
#else
struct mem_desc platform_mem_desc[] =
{
{0x00200000, 0x7FF00000 - 1, 0x00200000, NORMAL_MEM},
{GIC400_DISTRIBUTOR_PPTR, GIC400_DISTRIBUTOR_PPTR + GIC400_SIZE - 1, GIC400_DISTRIBUTOR_PPTR, DEVICE_MEM},
{GIC400_CONTROLLER_PPTR, GIC400_CONTROLLER_PPTR + GIC400_SIZE - 1, GIC400_CONTROLLER_PPTR, DEVICE_MEM},
};
#endif

const rt_uint32_t platform_mem_desc_size = sizeof(platform_mem_desc) / sizeof(platform_mem_desc[0]);

void idle_wfi(void)
{
asm volatile("wfi");
}
#include <setup.h>

void rt_hw_board_init(void)
{
#ifdef RT_USING_SMART
rt_hw_mmu_map_init(&rt_kernel_space, (void *)0xfffffffff0000000, 0x10000000, MMUTable, PV_OFFSET);
#else
rt_hw_mmu_map_init(&rt_kernel_space, (void *)0xffffd0000000, 0x10000000, MMUTable, 0);
#endif
rt_region_t init_page_region;
init_page_region.start = PAGE_START;
init_page_region.end = PAGE_END;
rt_page_init(init_page_region);

rt_hw_mmu_setup(&rt_kernel_space, platform_mem_desc, platform_mem_desc_size);

#ifdef RT_USING_HEAP
/* initialize system heap */
rt_system_heap_init((void *)HEAP_BEGIN, (void *)HEAP_END);
#endif
/* initialize hardware interrupt */
rt_hw_interrupt_init();

/* initialize uart */
rt_hw_uart_init();

/* initialize timer for os tick */
rt_hw_gtimer_init();

rt_thread_idle_sethook(idle_wfi);
#if defined(RT_USING_CONSOLE) && defined(RT_USING_DEVICE)
/* set console device */
rt_console_set_device(RT_CONSOLE_DEVICE_NAME);
#endif
rt_kprintf("heap: [0x%08x - 0x%08x]\n", HEAP_BEGIN, HEAP_END);

#ifdef RT_USING_COMPONENTS_INIT
rt_components_board_init();
#endif
rt_hw_common_setup();
}
20 changes: 0 additions & 20 deletions bsp/zynqmp-a53-dfzu2eg/drivers/board.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,26 +11,6 @@
#ifndef __BOARD_H__
#define __BOARD_H__

#include <zynqmp.h>

extern unsigned char __bss_end;

#define HEAP_BEGIN ((void*)&__bss_end)

#ifdef RT_USING_SMART
#define HEAP_END ((size_t)KERNEL_VADDR_START + 64 * 1024 * 1024)
#define PAGE_START HEAP_END
#define PAGE_END ((size_t)KERNEL_VADDR_START + 128 * 1024 * 1024)
#else
#define KERNEL_VADDR_START 0x0

#define HEAP_END (KERNEL_VADDR_START + 64 * 1024 * 1024)
#define PAGE_START HEAP_END
#define PAGE_END ((size_t)PAGE_START + 64 * 1024 * 1024)
#endif

void rt_hw_board_init(void);

int rt_hw_uart_init(void);

#endif /* __BOARD_H__ */
Loading