summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bsp/zynq/zynq7000/.config1034
-rw-r--r--bsp/zynq/zynq7000/Kconfig37
-rw-r--r--bsp/zynq/zynq7000/README.md125
-rw-r--r--bsp/zynq/zynq7000/SConscript15
-rw-r--r--bsp/zynq/zynq7000/SConstruct40
-rw-r--r--bsp/zynq/zynq7000/Xilinx.spec2
-rw-r--r--bsp/zynq/zynq7000/applications/SConscript14
-rw-r--r--bsp/zynq/zynq7000/applications/app.c18
-rw-r--r--bsp/zynq/zynq7000/bootgen/.gitignore1
-rw-r--r--bsp/zynq/zynq7000/bootgen/build.bat1
-rw-r--r--bsp/zynq/zynq7000/bootgen/output.bif6
-rw-r--r--bsp/zynq/zynq7000/bsp/.gitignore2
-rw-r--r--bsp/zynq/zynq7000/bsp/SConscript15
-rw-r--r--bsp/zynq/zynq7000/drivers/Kconfig43
-rw-r--r--bsp/zynq/zynq7000/drivers/SConscript22
-rw-r--r--bsp/zynq/zynq7000/drivers/board.c130
-rw-r--r--bsp/zynq/zynq7000/drivers/board.h42
-rw-r--r--bsp/zynq/zynq7000/drivers/drv_emmc.c373
-rw-r--r--bsp/zynq/zynq7000/drivers/drv_gpio.c202
-rw-r--r--bsp/zynq/zynq7000/drivers/drv_gpio.h16
-rw-r--r--bsp/zynq/zynq7000/drivers/drv_spiflash.c446
-rw-r--r--bsp/zynq/zynq7000/drivers/drv_timer.c44
-rw-r--r--bsp/zynq/zynq7000/drivers/drv_uart.c277
-rw-r--r--bsp/zynq/zynq7000/drivers/fal_cfg.h36
-rw-r--r--bsp/zynq/zynq7000/figures/board.jpgbin1739814 -> 0 bytes
-rw-r--r--bsp/zynq/zynq7000/figures/step_2.pngbin168965 -> 0 bytes
-rw-r--r--bsp/zynq/zynq7000/figures/step_3.pngbin174503 -> 0 bytes
-rw-r--r--bsp/zynq/zynq7000/figures/step_4.pngbin183282 -> 0 bytes
-rw-r--r--bsp/zynq/zynq7000/figures/step_5.pngbin693213 -> 0 bytes
-rw-r--r--bsp/zynq/zynq7000/figures/step_6.pngbin974421 -> 0 bytes
-rw-r--r--bsp/zynq/zynq7000/figures/step_7.pngbin958766 -> 0 bytes
-rw-r--r--bsp/zynq/zynq7000/figures/step_8.pngbin817757 -> 0 bytes
-rw-r--r--bsp/zynq/zynq7000/figures/step_9.pngbin1009050 -> 0 bytes
-rw-r--r--bsp/zynq/zynq7000/figures/step_9_1.pngbin783231 -> 0 bytes
-rw-r--r--bsp/zynq/zynq7000/lscript.ld312
-rw-r--r--bsp/zynq/zynq7000/rtconfig.h263
-rw-r--r--bsp/zynq/zynq7000/rtconfig.py59
37 files changed, 0 insertions, 3575 deletions
diff --git a/bsp/zynq/zynq7000/.config b/bsp/zynq/zynq7000/.config
deleted file mode 100644
index c0c5bcb2eb..0000000000
--- a/bsp/zynq/zynq7000/.config
+++ /dev/null
@@ -1,1034 +0,0 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# RT-Thread Project Configuration
-#
-
-#
-# RT-Thread Kernel
-#
-CONFIG_RT_NAME_MAX=8
-# CONFIG_RT_USING_ARCH_DATA_TYPE is not set
-# CONFIG_RT_USING_SMART is not set
-# CONFIG_RT_USING_AMP is not set
-# CONFIG_RT_USING_SMP is not set
-CONFIG_RT_ALIGN_SIZE=8
-# CONFIG_RT_THREAD_PRIORITY_8 is not set
-CONFIG_RT_THREAD_PRIORITY_32=y
-# CONFIG_RT_THREAD_PRIORITY_256 is not set
-CONFIG_RT_THREAD_PRIORITY_MAX=32
-CONFIG_RT_TICK_PER_SECOND=1000
-CONFIG_RT_USING_OVERFLOW_CHECK=y
-CONFIG_RT_USING_HOOK=y
-CONFIG_RT_HOOK_USING_FUNC_PTR=y
-CONFIG_RT_USING_IDLE_HOOK=y
-CONFIG_RT_IDLE_HOOK_LIST_SIZE=4
-CONFIG_IDLE_THREAD_STACK_SIZE=256
-CONFIG_RT_USING_TIMER_SOFT=y
-CONFIG_RT_TIMER_THREAD_PRIO=4
-CONFIG_RT_TIMER_THREAD_STACK_SIZE=512
-
-#
-# kservice optimization
-#
-CONFIG_RT_KSERVICE_USING_STDLIB=y
-# CONFIG_RT_KSERVICE_USING_STDLIB_MEMORY is not set
-# CONFIG_RT_KSERVICE_USING_TINY_SIZE is not set
-# CONFIG_RT_USING_TINY_FFS is not set
-# CONFIG_RT_KPRINTF_USING_LONGLONG is not set
-CONFIG_RT_USING_DEBUG=y
-CONFIG_RT_DEBUGING_COLOR=y
-CONFIG_RT_DEBUGING_CONTEXT=y
-CONFIG_RT_DEBUGING_INIT=y
-# CONFIG_RT_DEBUGING_PAGE_LEAK is not set
-
-#
-# Inter-Thread communication
-#
-CONFIG_RT_USING_SEMAPHORE=y
-CONFIG_RT_USING_MUTEX=y
-CONFIG_RT_USING_EVENT=y
-CONFIG_RT_USING_MAILBOX=y
-CONFIG_RT_USING_MESSAGEQUEUE=y
-# CONFIG_RT_USING_MESSAGEQUEUE_PRIORITY is not set
-# CONFIG_RT_USING_SIGNALS is not set
-
-#
-# Memory Management
-#
-CONFIG_RT_PAGE_MAX_ORDER=11
-CONFIG_RT_USING_MEMPOOL=y
-CONFIG_RT_USING_SMALL_MEM=y
-# CONFIG_RT_USING_SLAB is not set
-# CONFIG_RT_USING_MEMHEAP is not set
-CONFIG_RT_USING_SMALL_MEM_AS_HEAP=y
-# CONFIG_RT_USING_MEMHEAP_AS_HEAP is not set
-# CONFIG_RT_USING_SLAB_AS_HEAP is not set
-# CONFIG_RT_USING_USERHEAP is not set
-# CONFIG_RT_USING_NOHEAP is not set
-# CONFIG_RT_USING_MEMTRACE is not set
-# CONFIG_RT_USING_HEAP_ISR is not set
-CONFIG_RT_USING_HEAP=y
-
-#
-# Kernel Device Object
-#
-CONFIG_RT_USING_DEVICE=y
-# CONFIG_RT_USING_DEVICE_OPS is not set
-# CONFIG_RT_USING_DM is not set
-# CONFIG_RT_USING_INTERRUPT_INFO is not set
-CONFIG_RT_USING_CONSOLE=y
-CONFIG_RT_CONSOLEBUF_SIZE=128
-CONFIG_RT_CONSOLE_DEVICE_NAME="uart0"
-CONFIG_RT_VER_NUM=0x50001
-# CONFIG_RT_USING_STDC_ATOMIC is not set
-CONFIG_RT_USING_CACHE=y
-CONFIG_RT_USING_HW_ATOMIC=y
-# CONFIG_ARCH_ARM_BOOTWITH_FLUSH_CACHE is not set
-# CONFIG_ARCH_CPU_STACK_GROWS_UPWARD is not set
-CONFIG_RT_USING_CPU_FFS=y
-CONFIG_ARCH_MM_MMU=y
-CONFIG_ARCH_ARM=y
-CONFIG_ARCH_ARM_MMU=y
-CONFIG_ARCH_ARM_CORTEX_A=y
-# CONFIG_RT_SMP_AUTO_BOOT is not set
-CONFIG_RT_USING_GIC_V2=y
-# CONFIG_RT_USING_GIC_V3 is not set
-CONFIG_ARCH_ARM_CORTEX_A9=y
-# CONFIG_ARCH_ARM_SECURE_MODE is not set
-# CONFIG_RT_BACKTRACE_FUNCTION_NAME is not set
-
-#
-# RT-Thread Components
-#
-CONFIG_RT_USING_COMPONENTS_INIT=y
-CONFIG_RT_USING_USER_MAIN=y
-CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048
-CONFIG_RT_MAIN_THREAD_PRIORITY=10
-# CONFIG_RT_USING_LEGACY is not set
-CONFIG_RT_USING_MSH=y
-CONFIG_RT_USING_FINSH=y
-CONFIG_FINSH_USING_MSH=y
-CONFIG_FINSH_THREAD_NAME="tshell"
-CONFIG_FINSH_THREAD_PRIORITY=20
-CONFIG_FINSH_THREAD_STACK_SIZE=4096
-CONFIG_FINSH_USING_HISTORY=y
-CONFIG_FINSH_HISTORY_LINES=5
-CONFIG_FINSH_USING_SYMTAB=y
-CONFIG_FINSH_CMD_SIZE=80
-CONFIG_MSH_USING_BUILT_IN_COMMANDS=y
-CONFIG_FINSH_USING_DESCRIPTION=y
-# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set
-# CONFIG_FINSH_USING_AUTH is not set
-CONFIG_FINSH_ARG_MAX=10
-
-#
-# DFS: device virtual file system
-#
-CONFIG_RT_USING_DFS=y
-CONFIG_DFS_USING_POSIX=y
-CONFIG_DFS_USING_WORKDIR=y
-# CONFIG_RT_USING_DFS_MNTTABLE is not set
-CONFIG_DFS_FD_MAX=16
-CONFIG_RT_USING_DFS_V1=y
-# CONFIG_RT_USING_DFS_V2 is not set
-CONFIG_DFS_FILESYSTEMS_MAX=4
-CONFIG_DFS_FILESYSTEM_TYPES_MAX=4
-# CONFIG_RT_USING_DFS_ELMFAT is not set
-CONFIG_RT_USING_DFS_DEVFS=y
-# CONFIG_RT_USING_DFS_ROMFS is not set
-# CONFIG_RT_USING_DFS_CROMFS is not set
-# CONFIG_RT_USING_DFS_RAMFS is not set
-# CONFIG_RT_USING_DFS_TMPFS is not set
-# CONFIG_RT_USING_DFS_MQUEUE is not set
-# CONFIG_RT_USING_FAL is not set
-
-#
-# Device Drivers
-#
-CONFIG_RT_USING_DEVICE_IPC=y
-CONFIG_RT_UNAMED_PIPE_NUMBER=64
-# CONFIG_RT_USING_SYSTEM_WORKQUEUE is not set
-CONFIG_RT_USING_SERIAL=y
-CONFIG_RT_USING_SERIAL_V1=y
-# CONFIG_RT_USING_SERIAL_V2 is not set
-CONFIG_RT_SERIAL_USING_DMA=y
-CONFIG_RT_SERIAL_RB_BUFSZ=64
-# CONFIG_RT_USING_CAN is not set
-# CONFIG_RT_USING_HWTIMER is not set
-# CONFIG_RT_USING_CPUTIME is not set
-# CONFIG_RT_USING_I2C is not set
-# CONFIG_RT_USING_PHY is not set
-CONFIG_RT_USING_PIN=y
-# CONFIG_RT_USING_ADC is not set
-# CONFIG_RT_USING_DAC is not set
-# CONFIG_RT_USING_NULL is not set
-# CONFIG_RT_USING_ZERO is not set
-# CONFIG_RT_USING_RANDOM is not set
-# CONFIG_RT_USING_PWM is not set
-# CONFIG_RT_USING_MTD_NOR is not set
-# CONFIG_RT_USING_MTD_NAND is not set
-# CONFIG_RT_USING_PM is not set
-# CONFIG_RT_USING_FDT is not set
-# CONFIG_RT_USING_RTC is not set
-# 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_HWCRYPTO is not set
-# CONFIG_RT_USING_PULSE_ENCODER is not set
-# CONFIG_RT_USING_INPUT_CAPTURE is not set
-# CONFIG_RT_USING_DEV_BUS is not set
-# CONFIG_RT_USING_WIFI is not set
-# CONFIG_RT_USING_VIRTIO is not set
-
-#
-# Using USB
-#
-# CONFIG_RT_USING_USB is not set
-# CONFIG_RT_USING_USB_HOST is not set
-# CONFIG_RT_USING_USB_DEVICE is not set
-
-#
-# C/C++ and POSIX layer
-#
-CONFIG_RT_LIBC_DEFAULT_TIMEZONE=8
-
-#
-# POSIX (Portable Operating System Interface) layer
-#
-# CONFIG_RT_USING_POSIX_FS is not set
-# CONFIG_RT_USING_POSIX_DELAY is not set
-# CONFIG_RT_USING_POSIX_CLOCK is not set
-# CONFIG_RT_USING_POSIX_TIMER is not set
-# CONFIG_RT_USING_PTHREADS is not set
-# CONFIG_RT_USING_MODULE is not set
-
-#
-# Interprocess Communication (IPC)
-#
-# CONFIG_RT_USING_POSIX_PIPE is not set
-# CONFIG_RT_USING_POSIX_MESSAGE_QUEUE is not set
-# CONFIG_RT_USING_POSIX_MESSAGE_SEMAPHORE is not set
-
-#
-# Socket is in the 'Network' category
-#
-# CONFIG_RT_USING_CPLUSPLUS is not set
-
-#
-# 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_AT is not set
-
-#
-# Utilities
-#
-# CONFIG_RT_USING_RYM is not set
-# CONFIG_RT_USING_ULOG is not set
-# CONFIG_RT_USING_UTEST is not set
-# CONFIG_RT_USING_VAR_EXPORT is not set
-# CONFIG_RT_USING_RESOURCE_ID is not set
-CONFIG_RT_USING_ADT=y
-CONFIG_RT_USING_ADT_AVL=y
-CONFIG_RT_USING_ADT_BITMAP=y
-CONFIG_RT_USING_ADT_HASHMAP=y
-CONFIG_RT_USING_ADT_REF=y
-# CONFIG_RT_USING_RT_LINK is not set
-# CONFIG_RT_USING_VBUS is not set
-# CONFIG_RT_USING_KTIME is not set
-
-#
-# RT-Thread Utestcases
-#
-# CONFIG_RT_USING_UTESTCASES is not set
-
-#
-# Hardware Drivers Config
-#
-
-#
-# On-chip Peripheral Drivers
-#
-CONFIG_BSP_USING_GPIO=y
-CONFIG_BSP_USING_UART=y
-CONFIG_BSP_USING_UART0=y
-# CONFIG_BSP_USING_UART1 is not set
-CONFIG_SOC_ZYNQ_7000=y
-CONFIG_RT_USING_FPU=y
-
-#
-# RT-Thread online packages
-#
-
-#
-# IoT - internet of things
-#
-# CONFIG_PKG_USING_LWIP is not set
-# CONFIG_PKG_USING_LORAWAN_DRIVER is not set
-# CONFIG_PKG_USING_PAHOMQTT is not set
-# CONFIG_PKG_USING_UMQTT is not set
-# CONFIG_PKG_USING_WEBCLIENT is not set
-# CONFIG_PKG_USING_WEBNET is not set
-# CONFIG_PKG_USING_MONGOOSE is not set
-# CONFIG_PKG_USING_MYMQTT is not set
-# CONFIG_PKG_USING_KAWAII_MQTT is not set
-# CONFIG_PKG_USING_BC28_MQTT is not set
-# CONFIG_PKG_USING_WEBTERMINAL is not set
-# CONFIG_PKG_USING_FREEMODBUS is not set
-# CONFIG_PKG_USING_NANOPB is not set
-
-#
-# Wi-Fi
-#
-
-#
-# Marvell WiFi
-#
-# CONFIG_PKG_USING_WLANMARVELL is not set
-
-#
-# Wiced WiFi
-#
-# CONFIG_PKG_USING_WLAN_WICED is not set
-# CONFIG_PKG_USING_RW007 is not set
-
-#
-# CYW43012 WiFi
-#
-# CONFIG_PKG_USING_WLAN_CYW43012 is not set
-# CONFIG_PKG_USING_COAP is not set
-# CONFIG_PKG_USING_NOPOLL is not set
-# CONFIG_PKG_USING_NETUTILS is not set
-# CONFIG_PKG_USING_CMUX is not set
-# CONFIG_PKG_USING_PPP_DEVICE is not set
-# CONFIG_PKG_USING_AT_DEVICE is not set
-# CONFIG_PKG_USING_ATSRV_SOCKET is not set
-# CONFIG_PKG_USING_WIZNET is not set
-# CONFIG_PKG_USING_ZB_COORDINATOR is not set
-
-#
-# IoT Cloud
-#
-# CONFIG_PKG_USING_ONENET is not set
-# CONFIG_PKG_USING_GAGENT_CLOUD is not set
-# CONFIG_PKG_USING_ALI_IOTKIT is not set
-# CONFIG_PKG_USING_AZURE is not set
-# CONFIG_PKG_USING_TENCENT_IOT_EXPLORER is not set
-# CONFIG_PKG_USING_JIOT-C-SDK is not set
-# CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set
-# CONFIG_PKG_USING_JOYLINK is not set
-# CONFIG_PKG_USING_EZ_IOT_OS is not set
-# CONFIG_PKG_USING_IOTSHARP_SDK is not set
-# CONFIG_PKG_USING_NIMBLE is not set
-# CONFIG_PKG_USING_LLSYNC_SDK_ADAPTER is not set
-# CONFIG_PKG_USING_OTA_DOWNLOADER is not set
-# CONFIG_PKG_USING_IPMSG is not set
-# CONFIG_PKG_USING_LSSDP is not set
-# CONFIG_PKG_USING_AIRKISS_OPEN is not set
-# CONFIG_PKG_USING_LIBRWS is not set
-# CONFIG_PKG_USING_TCPSERVER is not set
-# CONFIG_PKG_USING_PROTOBUF_C is not set
-# CONFIG_PKG_USING_DLT645 is not set
-# CONFIG_PKG_USING_QXWZ is not set
-# CONFIG_PKG_USING_SMTP_CLIENT is not set
-# CONFIG_PKG_USING_ABUP_FOTA is not set
-# CONFIG_PKG_USING_LIBCURL2RTT is not set
-# CONFIG_PKG_USING_CAPNP is not set
-# CONFIG_PKG_USING_AGILE_TELNET is not set
-# CONFIG_PKG_USING_NMEALIB is not set
-# CONFIG_PKG_USING_PDULIB is not set
-# CONFIG_PKG_USING_BTSTACK is not set
-# CONFIG_PKG_USING_LORAWAN_ED_STACK is not set
-# CONFIG_PKG_USING_WAYZ_IOTKIT is not set
-# CONFIG_PKG_USING_MAVLINK is not set
-# CONFIG_PKG_USING_BSAL is not set
-# CONFIG_PKG_USING_AGILE_MODBUS is not set
-# CONFIG_PKG_USING_AGILE_FTP is not set
-# CONFIG_PKG_USING_EMBEDDEDPROTO is not set
-# CONFIG_PKG_USING_RT_LINK_HW is not set
-# CONFIG_PKG_USING_RYANMQTT is not set
-# CONFIG_PKG_USING_RYANW5500 is not set
-# CONFIG_PKG_USING_LORA_PKT_FWD is not set
-# CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set
-# CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set
-# CONFIG_PKG_USING_HM is not set
-# CONFIG_PKG_USING_SMALL_MODBUS is not set
-# CONFIG_PKG_USING_NET_SERVER is not set
-# CONFIG_PKG_USING_ZFTP is not set
-# CONFIG_PKG_USING_WOL is not set
-# CONFIG_PKG_USING_ZEPHYR_POLLING is not set
-
-#
-# security packages
-#
-# CONFIG_PKG_USING_MBEDTLS is not set
-# CONFIG_PKG_USING_LIBSODIUM is not set
-# CONFIG_PKG_USING_LIBHYDROGEN is not set
-# CONFIG_PKG_USING_TINYCRYPT is not set
-# CONFIG_PKG_USING_TFM is not set
-# CONFIG_PKG_USING_YD_CRYPTO is not set
-
-#
-# language packages
-#
-
-#
-# JSON: JavaScript Object Notation, a lightweight data-interchange format
-#
-# CONFIG_PKG_USING_CJSON is not set
-# CONFIG_PKG_USING_LJSON is not set
-# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set
-# CONFIG_PKG_USING_RAPIDJSON is not set
-# CONFIG_PKG_USING_JSMN is not set
-# CONFIG_PKG_USING_AGILE_JSMN is not set
-# CONFIG_PKG_USING_PARSON is not set
-
-#
-# XML: Extensible Markup Language
-#
-# CONFIG_PKG_USING_SIMPLE_XML is not set
-# CONFIG_PKG_USING_EZXML is not set
-# CONFIG_PKG_USING_LUATOS_SOC is not set
-# CONFIG_PKG_USING_LUA is not set
-# CONFIG_PKG_USING_JERRYSCRIPT is not set
-# CONFIG_PKG_USING_MICROPYTHON is not set
-# CONFIG_PKG_USING_PIKASCRIPT is not set
-# CONFIG_PKG_USING_RTT_RUST is not set
-
-#
-# multimedia packages
-#
-
-#
-# LVGL: powerful and easy-to-use embedded GUI library
-#
-# CONFIG_PKG_USING_LVGL is not set
-# CONFIG_PKG_USING_LV_MUSIC_DEMO is not set
-# CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set
-
-#
-# u8g2: a monochrome graphic library
-#
-# CONFIG_PKG_USING_U8G2_OFFICIAL is not set
-# CONFIG_PKG_USING_U8G2 is not set
-# CONFIG_PKG_USING_OPENMV is not set
-# CONFIG_PKG_USING_MUPDF is not set
-# CONFIG_PKG_USING_STEMWIN is not set
-# CONFIG_PKG_USING_WAVPLAYER is not set
-# CONFIG_PKG_USING_TJPGD is not set
-# CONFIG_PKG_USING_PDFGEN is not set
-# CONFIG_PKG_USING_HELIX is not set
-# CONFIG_PKG_USING_AZUREGUIX is not set
-# CONFIG_PKG_USING_TOUCHGFX2RTT is not set
-# CONFIG_PKG_USING_NUEMWIN is not set
-# CONFIG_PKG_USING_MP3PLAYER is not set
-# CONFIG_PKG_USING_TINYJPEG is not set
-# CONFIG_PKG_USING_UGUI is not set
-# CONFIG_PKG_USING_MCURSES is not set
-# CONFIG_PKG_USING_TERMBOX is not set
-# CONFIG_PKG_USING_VT100 is not set
-# CONFIG_PKG_USING_QRCODE is not set
-# CONFIG_PKG_USING_GUIENGINE is not set
-# CONFIG_PKG_USING_PERSIMMON is not set
-# CONFIG_PKG_USING_3GPP_AMRNB is not set
-
-#
-# tools packages
-#
-# CONFIG_PKG_USING_CMBACKTRACE is not set
-# CONFIG_PKG_USING_EASYFLASH is not set
-# CONFIG_PKG_USING_EASYLOGGER is not set
-# CONFIG_PKG_USING_SYSTEMVIEW is not set
-# CONFIG_PKG_USING_SEGGER_RTT is not set
-# CONFIG_PKG_USING_RTT_AUTO_EXE_CMD is not set
-# CONFIG_PKG_USING_RDB is not set
-# CONFIG_PKG_USING_ULOG_EASYFLASH is not set
-# CONFIG_PKG_USING_LOGMGR is not set
-# CONFIG_PKG_USING_ADBD is not set
-# CONFIG_PKG_USING_COREMARK is not set
-# CONFIG_PKG_USING_DHRYSTONE is not set
-# CONFIG_PKG_USING_MEMORYPERF is not set
-# CONFIG_PKG_USING_NR_MICRO_SHELL is not set
-# CONFIG_PKG_USING_CHINESE_FONT_LIBRARY is not set
-# CONFIG_PKG_USING_LUNAR_CALENDAR is not set
-# CONFIG_PKG_USING_BS8116A is not set
-# CONFIG_PKG_USING_GPS_RMC is not set
-# CONFIG_PKG_USING_URLENCODE is not set
-# CONFIG_PKG_USING_UMCN is not set
-# CONFIG_PKG_USING_LWRB2RTT is not set
-# CONFIG_PKG_USING_CPU_USAGE is not set
-# CONFIG_PKG_USING_GBK2UTF8 is not set
-# CONFIG_PKG_USING_VCONSOLE is not set
-# CONFIG_PKG_USING_KDB is not set
-# CONFIG_PKG_USING_WAMR is not set
-# CONFIG_PKG_USING_MICRO_XRCE_DDS_CLIENT is not set
-# CONFIG_PKG_USING_LWLOG is not set
-# CONFIG_PKG_USING_ANV_TRACE is not set
-# CONFIG_PKG_USING_ANV_MEMLEAK is not set
-# CONFIG_PKG_USING_ANV_TESTSUIT is not set
-# CONFIG_PKG_USING_ANV_BENCH is not set
-# CONFIG_PKG_USING_DEVMEM is not set
-# CONFIG_PKG_USING_REGEX is not set
-# CONFIG_PKG_USING_MEM_SANDBOX is not set
-# CONFIG_PKG_USING_SOLAR_TERMS is not set
-# CONFIG_PKG_USING_GAN_ZHI is not set
-# CONFIG_PKG_USING_FDT is not set
-# CONFIG_PKG_USING_CBOX is not set
-# CONFIG_PKG_USING_SNOWFLAKE is not set
-# CONFIG_PKG_USING_HASH_MATCH is not set
-# CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set
-# CONFIG_PKG_USING_VOFA_PLUS is not set
-# CONFIG_PKG_USING_ZDEBUG is not set
-
-#
-# system packages
-#
-
-#
-# enhanced kernel services
-#
-# CONFIG_PKG_USING_RT_MEMCPY_CM is not set
-# CONFIG_PKG_USING_RT_KPRINTF_THREADSAFE is not set
-# CONFIG_PKG_USING_RT_VSNPRINTF_FULL is not set
-
-#
-# acceleration: Assembly language or algorithmic acceleration packages
-#
-# CONFIG_PKG_USING_QFPLIB_M0_FULL is not set
-# CONFIG_PKG_USING_QFPLIB_M0_TINY is not set
-# CONFIG_PKG_USING_QFPLIB_M3 is not set
-
-#
-# CMSIS: ARM Cortex-M Microcontroller Software Interface Standard
-#
-# CONFIG_PKG_USING_CMSIS_5 is not set
-# CONFIG_PKG_USING_CMSIS_RTOS1 is not set
-# CONFIG_PKG_USING_CMSIS_RTOS2 is not set
-
-#
-# Micrium: Micrium software products porting for RT-Thread
-#
-# CONFIG_PKG_USING_UCOSIII_WRAPPER is not set
-# CONFIG_PKG_USING_UCOSII_WRAPPER is not set
-# CONFIG_PKG_USING_UC_CRC is not set
-# CONFIG_PKG_USING_UC_CLK is not set
-# CONFIG_PKG_USING_UC_COMMON is not set
-# CONFIG_PKG_USING_UC_MODBUS is not set
-# CONFIG_PKG_USING_FREERTOS_WRAPPER is not set
-# CONFIG_PKG_USING_LITEOS_SDK is not set
-# CONFIG_PKG_USING_CAIRO is not set
-# CONFIG_PKG_USING_PIXMAN is not set
-# CONFIG_PKG_USING_PARTITION is not set
-# CONFIG_PKG_USING_PERF_COUNTER is not set
-# CONFIG_PKG_USING_FLASHDB is not set
-# CONFIG_PKG_USING_SQLITE is not set
-# CONFIG_PKG_USING_RTI is not set
-# CONFIG_PKG_USING_DFS_YAFFS is not set
-# CONFIG_PKG_USING_LITTLEFS is not set
-# CONFIG_PKG_USING_DFS_JFFS2 is not set
-# CONFIG_PKG_USING_DFS_UFFS is not set
-# CONFIG_PKG_USING_LWEXT4 is not set
-# CONFIG_PKG_USING_THREAD_POOL is not set
-# CONFIG_PKG_USING_ROBOTS is not set
-# CONFIG_PKG_USING_EV is not set
-# CONFIG_PKG_USING_SYSWATCH is not set
-# CONFIG_PKG_USING_SYS_LOAD_MONITOR is not set
-# CONFIG_PKG_USING_PLCCORE is not set
-# CONFIG_PKG_USING_RAMDISK is not set
-# CONFIG_PKG_USING_MININI is not set
-# CONFIG_PKG_USING_QBOOT is not set
-# CONFIG_PKG_USING_PPOOL is not set
-# CONFIG_PKG_USING_OPENAMP is not set
-# CONFIG_PKG_USING_LPM is not set
-# CONFIG_PKG_USING_TLSF is not set
-# CONFIG_PKG_USING_EVENT_RECORDER is not set
-# CONFIG_PKG_USING_ARM_2D is not set
-# CONFIG_PKG_USING_MCUBOOT is not set
-# CONFIG_PKG_USING_TINYUSB is not set
-# CONFIG_PKG_USING_CHERRYUSB is not set
-# CONFIG_PKG_USING_KMULTI_RTIMER is not set
-# CONFIG_PKG_USING_TFDB is not set
-# CONFIG_PKG_USING_QPC is not set
-# CONFIG_PKG_USING_AGILE_UPGRADE is not set
-# CONFIG_PKG_USING_FLASH_BLOB is not set
-# CONFIG_PKG_USING_MLIBC is not set
-# CONFIG_PKG_USING_TASK_MSG_BUS is not set
-
-#
-# peripheral libraries and drivers
-#
-
-#
-# sensors drivers
-#
-# CONFIG_PKG_USING_LSM6DSM is not set
-# CONFIG_PKG_USING_LSM6DSL is not set
-# CONFIG_PKG_USING_LPS22HB is not set
-# CONFIG_PKG_USING_HTS221 is not set
-# CONFIG_PKG_USING_LSM303AGR is not set
-# CONFIG_PKG_USING_BME280 is not set
-# CONFIG_PKG_USING_BME680 is not set
-# CONFIG_PKG_USING_BMA400 is not set
-# CONFIG_PKG_USING_BMI160_BMX160 is not set
-# CONFIG_PKG_USING_SPL0601 is not set
-# CONFIG_PKG_USING_MS5805 is not set
-# CONFIG_PKG_USING_DA270 is not set
-# CONFIG_PKG_USING_DF220 is not set
-# CONFIG_PKG_USING_HSHCAL001 is not set
-# CONFIG_PKG_USING_BH1750 is not set
-# CONFIG_PKG_USING_MPU6XXX is not set
-# CONFIG_PKG_USING_AHT10 is not set
-# CONFIG_PKG_USING_AP3216C is not set
-# CONFIG_PKG_USING_TSL4531 is not set
-# CONFIG_PKG_USING_DS18B20 is not set
-# CONFIG_PKG_USING_DHT11 is not set
-# CONFIG_PKG_USING_DHTXX is not set
-# CONFIG_PKG_USING_GY271 is not set
-# CONFIG_PKG_USING_GP2Y10 is not set
-# CONFIG_PKG_USING_SGP30 is not set
-# CONFIG_PKG_USING_HDC1000 is not set
-# CONFIG_PKG_USING_BMP180 is not set
-# CONFIG_PKG_USING_BMP280 is not set
-# CONFIG_PKG_USING_SHTC1 is not set
-# CONFIG_PKG_USING_BMI088 is not set
-# CONFIG_PKG_USING_HMC5883 is not set
-# CONFIG_PKG_USING_MAX6675 is not set
-# CONFIG_PKG_USING_TMP1075 is not set
-# CONFIG_PKG_USING_SR04 is not set
-# CONFIG_PKG_USING_CCS811 is not set
-# CONFIG_PKG_USING_PMSXX is not set
-# CONFIG_PKG_USING_RT3020 is not set
-# CONFIG_PKG_USING_MLX90632 is not set
-# CONFIG_PKG_USING_MLX90393 is not set
-# CONFIG_PKG_USING_MLX90392 is not set
-# CONFIG_PKG_USING_MLX90397 is not set
-# CONFIG_PKG_USING_MS5611 is not set
-# CONFIG_PKG_USING_MAX31865 is not set
-# CONFIG_PKG_USING_VL53L0X is not set
-# CONFIG_PKG_USING_INA260 is not set
-# CONFIG_PKG_USING_MAX30102 is not set
-# CONFIG_PKG_USING_INA226 is not set
-# CONFIG_PKG_USING_LIS2DH12 is not set
-# CONFIG_PKG_USING_HS300X is not set
-# CONFIG_PKG_USING_ZMOD4410 is not set
-# CONFIG_PKG_USING_ISL29035 is not set
-# CONFIG_PKG_USING_MMC3680KJ is not set
-# CONFIG_PKG_USING_QMP6989 is not set
-# CONFIG_PKG_USING_BALANCE is not set
-# CONFIG_PKG_USING_SHT2X is not set
-# CONFIG_PKG_USING_SHT3X is not set
-# CONFIG_PKG_USING_SHT4X is not set
-# CONFIG_PKG_USING_AD7746 is not set
-# CONFIG_PKG_USING_ADT74XX is not set
-# CONFIG_PKG_USING_MAX17048 is not set
-# CONFIG_PKG_USING_AS7341 is not set
-# CONFIG_PKG_USING_CW2015 is not set
-# CONFIG_PKG_USING_ICM20608 is not set
-# CONFIG_PKG_USING_PAJ7620 is not set
-# CONFIG_PKG_USING_STHS34PF80 is not set
-
-#
-# touch drivers
-#
-# CONFIG_PKG_USING_GT9147 is not set
-# CONFIG_PKG_USING_GT1151 is not set
-# CONFIG_PKG_USING_GT917S is not set
-# CONFIG_PKG_USING_GT911 is not set
-# CONFIG_PKG_USING_FT6206 is not set
-# CONFIG_PKG_USING_FT5426 is not set
-# CONFIG_PKG_USING_FT6236 is not set
-# CONFIG_PKG_USING_XPT2046_TOUCH is not set
-# CONFIG_PKG_USING_CST816X is not set
-# CONFIG_PKG_USING_REALTEK_AMEBA is not set
-# CONFIG_PKG_USING_STM32_SDIO is not set
-# CONFIG_PKG_USING_ESP_IDF is not set
-# CONFIG_PKG_USING_BUTTON is not set
-# CONFIG_PKG_USING_PCF8574 is not set
-# CONFIG_PKG_USING_SX12XX is not set
-# CONFIG_PKG_USING_SIGNAL_LED is not set
-# CONFIG_PKG_USING_LEDBLINK is not set
-# CONFIG_PKG_USING_LITTLED is not set
-# CONFIG_PKG_USING_LKDGUI is not set
-# CONFIG_PKG_USING_NRF5X_SDK is not set
-# CONFIG_PKG_USING_NRFX is not set
-
-#
-# Kendryte SDK
-#
-# CONFIG_PKG_USING_K210_SDK is not set
-# CONFIG_PKG_USING_KENDRYTE_SDK is not set
-# CONFIG_PKG_USING_INFRARED is not set
-# CONFIG_PKG_USING_MULTI_INFRARED is not set
-# CONFIG_PKG_USING_AGILE_BUTTON is not set
-# CONFIG_PKG_USING_AGILE_LED is not set
-# CONFIG_PKG_USING_AT24CXX is not set
-# CONFIG_PKG_USING_MOTIONDRIVER2RTT is not set
-# CONFIG_PKG_USING_PCA9685 is not set
-# CONFIG_PKG_USING_ILI9341 is not set
-# CONFIG_PKG_USING_I2C_TOOLS is not set
-# CONFIG_PKG_USING_NRF24L01 is not set
-# CONFIG_PKG_USING_RPLIDAR is not set
-# CONFIG_PKG_USING_AS608 is not set
-# CONFIG_PKG_USING_RC522 is not set
-# CONFIG_PKG_USING_WS2812B is not set
-# CONFIG_PKG_USING_EMBARC_BSP is not set
-# CONFIG_PKG_USING_EXTERN_RTC_DRIVERS is not set
-# CONFIG_PKG_USING_MULTI_RTIMER is not set
-# CONFIG_PKG_USING_MAX7219 is not set
-# CONFIG_PKG_USING_BEEP is not set
-# CONFIG_PKG_USING_EASYBLINK is not set
-# CONFIG_PKG_USING_PMS_SERIES is not set
-# CONFIG_PKG_USING_CAN_YMODEM is not set
-# CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set
-# CONFIG_PKG_USING_QLED is not set
-# CONFIG_PKG_USING_AGILE_CONSOLE is not set
-# CONFIG_PKG_USING_LD3320 is not set
-# CONFIG_PKG_USING_WK2124 is not set
-# CONFIG_PKG_USING_LY68L6400 is not set
-# CONFIG_PKG_USING_DM9051 is not set
-# CONFIG_PKG_USING_SSD1306 is not set
-# CONFIG_PKG_USING_QKEY is not set
-# CONFIG_PKG_USING_RS485 is not set
-# CONFIG_PKG_USING_RS232 is not set
-# CONFIG_PKG_USING_NES is not set
-# CONFIG_PKG_USING_VIRTUAL_SENSOR is not set
-# CONFIG_PKG_USING_VDEVICE is not set
-# CONFIG_PKG_USING_SGM706 is not set
-# CONFIG_PKG_USING_STM32WB55_SDK is not set
-# CONFIG_PKG_USING_RDA58XX is not set
-# CONFIG_PKG_USING_LIBNFC is not set
-# CONFIG_PKG_USING_MFOC is not set
-# CONFIG_PKG_USING_TMC51XX is not set
-# CONFIG_PKG_USING_TCA9534 is not set
-# CONFIG_PKG_USING_KOBUKI is not set
-# CONFIG_PKG_USING_ROSSERIAL is not set
-# CONFIG_PKG_USING_MICRO_ROS is not set
-# CONFIG_PKG_USING_MCP23008 is not set
-# CONFIG_PKG_USING_BLUETRUM_SDK is not set
-# CONFIG_PKG_USING_MISAKA_AT24CXX is not set
-# CONFIG_PKG_USING_MISAKA_RGB_BLING is not set
-# CONFIG_PKG_USING_LORA_MODEM_DRIVER is not set
-# CONFIG_PKG_USING_SOFT_SERIAL is not set
-# CONFIG_PKG_USING_MB85RS16 is not set
-# CONFIG_PKG_USING_RFM300 is not set
-# CONFIG_PKG_USING_IO_INPUT_FILTER is not set
-# CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set
-# CONFIG_PKG_USING_LRF_NV7LIDAR is not set
-# CONFIG_PKG_USING_AIP650 is not set
-# CONFIG_PKG_USING_FINGERPRINT is not set
-# CONFIG_PKG_USING_BT_ECB02C is not set
-# CONFIG_PKG_USING_UAT is not set
-# CONFIG_PKG_USING_ST7789 is not set
-# CONFIG_PKG_USING_SPI_TOOLS is not set
-
-#
-# AI packages
-#
-# CONFIG_PKG_USING_LIBANN is not set
-# CONFIG_PKG_USING_NNOM is not set
-# CONFIG_PKG_USING_ONNX_BACKEND is not set
-# CONFIG_PKG_USING_ONNX_PARSER is not set
-# CONFIG_PKG_USING_TENSORFLOWLITEMICRO is not set
-# CONFIG_PKG_USING_ELAPACK is not set
-# CONFIG_PKG_USING_ULAPACK is not set
-# CONFIG_PKG_USING_QUEST is not set
-# CONFIG_PKG_USING_NAXOS is not set
-
-#
-# Signal Processing and Control Algorithm Packages
-#
-# CONFIG_PKG_USING_FIRE_PID_CURVE is not set
-# CONFIG_PKG_USING_QPID is not set
-# CONFIG_PKG_USING_UKAL is not set
-# CONFIG_PKG_USING_DIGITALCTRL is not set
-# CONFIG_PKG_USING_KISSFFT is not set
-# CONFIG_PKG_USING_CMSIS_DSP is not set
-
-#
-# miscellaneous packages
-#
-
-#
-# project laboratory
-#
-
-#
-# samples: kernel and components samples
-#
-# CONFIG_PKG_USING_KERNEL_SAMPLES is not set
-# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set
-# CONFIG_PKG_USING_NETWORK_SAMPLES is not set
-# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set
-
-#
-# entertainment: terminal games and other interesting software packages
-#
-# CONFIG_PKG_USING_CMATRIX is not set
-# CONFIG_PKG_USING_SL is not set
-# CONFIG_PKG_USING_CAL is not set
-# CONFIG_PKG_USING_ACLOCK is not set
-# CONFIG_PKG_USING_THREES is not set
-# CONFIG_PKG_USING_2048 is not set
-# CONFIG_PKG_USING_SNAKE is not set
-# CONFIG_PKG_USING_TETRIS is not set
-# CONFIG_PKG_USING_DONUT is not set
-# CONFIG_PKG_USING_COWSAY is not set
-# CONFIG_PKG_USING_MORSE is not set
-# CONFIG_PKG_USING_LIBCSV is not set
-# CONFIG_PKG_USING_OPTPARSE is not set
-# CONFIG_PKG_USING_FASTLZ is not set
-# CONFIG_PKG_USING_MINILZO is not set
-# CONFIG_PKG_USING_QUICKLZ is not set
-# CONFIG_PKG_USING_LZMA is not set
-# CONFIG_PKG_USING_MULTIBUTTON is not set
-# CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set
-# CONFIG_PKG_USING_CANFESTIVAL is not set
-# CONFIG_PKG_USING_ZLIB is not set
-# CONFIG_PKG_USING_MINIZIP is not set
-# CONFIG_PKG_USING_HEATSHRINK is not set
-# CONFIG_PKG_USING_DSTR is not set
-# CONFIG_PKG_USING_TINYFRAME is not set
-# CONFIG_PKG_USING_KENDRYTE_DEMO is not set
-# CONFIG_PKG_USING_UPACKER is not set
-# CONFIG_PKG_USING_UPARAM is not set
-# CONFIG_PKG_USING_HELLO is not set
-# CONFIG_PKG_USING_VI is not set
-# CONFIG_PKG_USING_KI is not set
-# CONFIG_PKG_USING_ARMv7M_DWT is not set
-# CONFIG_PKG_USING_CRCLIB is not set
-# CONFIG_PKG_USING_LWGPS is not set
-# CONFIG_PKG_USING_STATE_MACHINE is not set
-# CONFIG_PKG_USING_DESIGN_PATTERN is not set
-# CONFIG_PKG_USING_CONTROLLER is not set
-# CONFIG_PKG_USING_PHASE_LOCKED_LOOP is not set
-# CONFIG_PKG_USING_MFBD is not set
-# CONFIG_PKG_USING_SLCAN2RTT is not set
-# CONFIG_PKG_USING_SOEM is not set
-# CONFIG_PKG_USING_QPARAM is not set
-# CONFIG_PKG_USING_CorevMCU_CLI is not set
-
-#
-# Arduino libraries
-#
-# CONFIG_PKG_USING_RTDUINO is not set
-
-#
-# Projects and Demos
-#
-# CONFIG_PKG_USING_ARDUINO_MSGQ_C_CPP_DEMO is not set
-# CONFIG_PKG_USING_ARDUINO_ULTRASOUND_RADAR is not set
-# CONFIG_PKG_USING_ARDUINO_SENSOR_KIT is not set
-# CONFIG_PKG_USING_ARDUINO_MATLAB_SUPPORT is not set
-
-#
-# Sensors
-#
-# CONFIG_PKG_USING_ARDUINO_SENSOR_DEVICE_DRIVERS is not set
-# CONFIG_PKG_USING_ARDUINO_CAPACITIVESENSOR is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL375 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L0X is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L1X is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SENSOR is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL6180X is not set
-# CONFIG_PKG_USING_ADAFRUIT_MAX31855 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31865 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31856 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX6675 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90614 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM9DS1 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AHTX0 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM9DS0 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP280 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADT7410 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP085 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BME680 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP9808 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP4728 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_INA219 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LTR390 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL345 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DHT is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP9600 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM6DS is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BNO055 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX1704X is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MMC56X3 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90393 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90395 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ICM20X is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DPS310 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HTS221 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SHT4X is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SHT31 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL343 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BME280 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AS726X is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AMG88XX is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AM2320 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AM2315 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LTR329_LTR303 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP085_UNIFIED is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP183 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP183_UNIFIED is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP3XX is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MS8607 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LIS3MDL is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90640 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MMA8451 is not set
-# CONFIG_PKG_USING_ADAFRUIT_MSA301 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPL115A2 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BNO08X is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BNO08X_RVC is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LIS2MDL is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM303DLH_MAG is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LC709203F is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_CAP1188 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_CCS811 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_NAU7802 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LIS331 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LPS2X is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LPS35HW is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM303_ACCEL is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LIS3DH is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCF8591 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPL3115A2 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPR121 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPRLS is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPU6050 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCT2075 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PM25AQI is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_EMC2101 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_FXAS21002C is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SCD30 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_FXOS8700 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HMC5883_UNIFIED is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SGP30 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TMP006 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TLA202X is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TCS34725 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI7021 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI1145 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SGP40 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SHTC3 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HDC1000 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HTU21DF is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AS7341 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HTU31D is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SENSORLAB is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_INA260 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TMP007_LIBRARY is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_L3GD20 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TMP117 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TSC2007 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TSL2561 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TSL2591_LIBRARY is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VCNL4040 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VEML6070 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VEML6075 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VEML7700 is not set
-# CONFIG_PKG_USING_ARDUINO_SEEED_LIS3DHTR is not set
-# CONFIG_PKG_USING_ARDUINO_SEEED_DHT is not set
-# CONFIG_PKG_USING_ARDUINO_SEEED_ADXL335 is not set
-# CONFIG_PKG_USING_ARDUINO_SEEED_ADXL345 is not set
-# CONFIG_PKG_USING_ARDUINO_SEEED_BME280 is not set
-# CONFIG_PKG_USING_ARDUINO_SEEED_BMP280 is not set
-# CONFIG_PKG_USING_ARDUINO_SEEED_H3LIS331DL is not set
-# CONFIG_PKG_USING_ARDUINO_SEEED_MMA7660 is not set
-# CONFIG_PKG_USING_ARDUINO_SEEED_TSL2561 is not set
-# CONFIG_PKG_USING_ARDUINO_SEEED_PAJ7620 is not set
-# CONFIG_PKG_USING_ARDUINO_SEEED_VL53L0X is not set
-# CONFIG_PKG_USING_SEEED_ITG3200 is not set
-# CONFIG_PKG_USING_ARDUINO_SEEED_SHT31 is not set
-# CONFIG_PKG_USING_ARDUINO_SEEED_HP20X is not set
-# CONFIG_PKG_USING_ARDUINO_SEEED_DRV2605L is not set
-# CONFIG_PKG_USING_ARDUINO_SEEED_BBM150 is not set
-# CONFIG_PKG_USING_ARDUINO_SEEED_HMC5883L is not set
-# CONFIG_PKG_USING_ARDUINO_SEEED_LSM303DLH is not set
-# CONFIG_PKG_USING_ARDUINO_SEEED_TCS3414CS is not set
-# CONFIG_PKG_USING_SEEED_MP503 is not set
-# CONFIG_PKG_USING_ARDUINO_SEEED_BMP085 is not set
-# CONFIG_PKG_USING_ARDUINO_SEEED_HIGHTEMP is not set
-# CONFIG_PKG_USING_ARDUINO_SEEED_VEML6070 is not set
-# CONFIG_PKG_USING_ARDUINO_SEEED_SI1145 is not set
-# CONFIG_PKG_USING_ARDUINO_SEEED_SHT35 is not set
-# CONFIG_PKG_USING_ARDUINO_SEEED_AT42QT1070 is not set
-# CONFIG_PKG_USING_ARDUINO_SEEED_LSM6DS3 is not set
-# CONFIG_PKG_USING_ARDUINO_SEEED_HDC1000 is not set
-# CONFIG_PKG_USING_ARDUINO_SEEED_HM3301 is not set
-# CONFIG_PKG_USING_ARDUINO_SEEED_MCP9600 is not set
-# CONFIG_PKG_USING_ARDUINO_SEEED_LTC2941 is not set
-# CONFIG_PKG_USING_ARDUINO_SEEED_LDC1612 is not set
-
-#
-# Display
-#
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set
-# CONFIG_PKG_USING_ARDUINO_U8G2 is not set
-# CONFIG_PKG_USING_ARDUINO_TFT_ESPI is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ST7735 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SSD1306 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ILI9341 is not set
-# CONFIG_PKG_USING_SEEED_TM1637 is not set
-
-#
-# Timing
-#
-# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set
-# CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set
-# CONFIG_PKG_USING_ARDUINO_TICKER is not set
-# CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set
-
-#
-# Data Processing
-#
-# CONFIG_PKG_USING_ARDUINO_KALMANFILTER is not set
-# CONFIG_PKG_USING_ARDUINO_ARDUINOJSON is not set
-
-#
-# Data Storage
-#
-
-#
-# Communication
-#
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PN532 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI4713 is not set
-
-#
-# Device Control
-#
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCF8574 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCA9685 is not set
-# CONFIG_PKG_USING_ARDUINO_SEEED_PCF85063TP is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TPA2016 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DRV2605 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS1841 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS3502 is not set
-
-#
-# Other
-#
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MFRC630 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI5351 is not set
-
-#
-# Signal IO
-#
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BUSIO is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TCA8418 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP23017 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADS1X15 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AW9523 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP3008 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP4725 is not set
-# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BD3491FS is not set
-
-#
-# Uncategorized
-#
diff --git a/bsp/zynq/zynq7000/Kconfig b/bsp/zynq/zynq7000/Kconfig
deleted file mode 100644
index a5ad885f59..0000000000
--- a/bsp/zynq/zynq7000/Kconfig
+++ /dev/null
@@ -1,37 +0,0 @@
-mainmenu "RT-Thread Project Configuration"
-
-config BSP_DIR
- string
- option env="BSP_ROOT"
- default "."
-
-config RTT_DIR
- string
- option env="RTT_ROOT"
- default "../../.."
-
-config PKGS_DIR
- string
- option env="PKGS_ROOT"
- default "packages"
-
-source "$RTT_DIR/Kconfig"
-source "drivers/Kconfig"
-
-config SOC_ZYNQ_7000
- bool
- select ARCH_ARM_CORTEX_A9
- select RT_USING_COMPONENTS_INIT
- select RT_USING_USER_MAIN
- select RT_USING_GIC_V2
- default y
-
-config RT_USING_CACHE
- bool
- default y
-
-config RT_USING_FPU
- bool
- default y
-
-source "$PKGS_DIR/Kconfig"
diff --git a/bsp/zynq/zynq7000/README.md b/bsp/zynq/zynq7000/README.md
deleted file mode 100644
index 15973d6d98..0000000000
--- a/bsp/zynq/zynq7000/README.md
+++ /dev/null
@@ -1,125 +0,0 @@
-# 正点原子启明星开发板 BSP 说明
-
-## 简介
-
-本文档是为 正点原子启明星开发板提供的 BSP (板级支持包) 说明。
-
-主要内容如下:
-
-- 开发板资源介绍
-- 开发流程说明
-
-## 开发板介绍
-
-正点原子开发的基于 zynq7000 生成的开发板, 注: 理论上也可以适用于其它 zynq7000的开发板.
-
-![board](figures/board.jpg)
-
-开发板更多详细信息请参考[官方文档](http://www.openedv.com/docs/boards/fpga/zdyz_qimxing(V2).html)。
-
-## 外设支持
-
-本 BSP 目前对外设的支持情况如下:
-
-| **核心** | **支持情况** | **备注** |
-| :----------------- | :----------: | :------------------------------------- |
-| cortex-a9 | 支持 | 运行系统的为cortex-a9核的CPU0 |
-| **板载外设** | **支持情况** | **备注** |
-| 无 | | |
-| **片上外设** | **支持情况** | **备注** |
-| GPIO | 支持 | |
-| UART | 支持 | UART0, UART1 |
-| SPI FLASH | 支持 | |
-| EMMC / SDIO | 支持 | |
-| CAN | 即将支持 | |
-
-## 使用说明
-
-本 bsp 驱动基于之前的 zynq7000 bsp 的基础上,除了定时器仍然沿用之前的寄存器写法外,其余驱动均基于 vivado sdk 2017.4 生成的驱动库开发。具体开发使用流程如下:
-
-### 1. 创建 vivado 工程 & pl 部分开发
-
-使用 vivado 创建工程, 完成 pl 部分开发, 此部分与 rtt 软件开发无关,
-故省略具体说明. 注意 zynq ps 部分必须启用 `MIO`, `UART0` 和 `Quad SPI FLASH`.
-
-### 2. 启动 sdk 生成 bsp 和 fsbl
-
-完成第一步后, 导出硬件到 sdk, 然后启动 sdk, 创建 fsbl 工程
-
-![step2](figures/step_2.png)
-![step3](figures/step_3.png)
-
-由于后续即将添加的复杂驱动依赖于usleep.c 的接口函数, 故需要对 sdk
-中的 `bsp\ps7_cortexa9_0\libsrc\standalone_v6_5\src\usleep.c` 做如下修改:
-
-```DIFF
-@@ -63,6 +63,15 @@
- /* Global Timer is always clocked at half of the CPU frequency */
- #define COUNTS_PER_USECOND (XPAR_CPU_CORTEXA9_CORE_CLOCK_FREQ_HZ / (2U*1000000U))
-
-+typedef void (*usleep_hook_t) (unsigned long useconds);
-+
-+static usleep_hook_t usleep_hook;
-+
-+void zynq_set_usleep_hook(usleep_hook_t hook)
-+{
-+ usleep_hook = hook;
-+}
-+
- /*****************************************************************************/
- /**
- *
-@@ -78,6 +87,12 @@
- ****************************************************************************/
- int usleep(unsigned long useconds)
- {
-+ if (usleep_hook)
-+ {
-+ usleep_hook(useconds);
-+ return 0;
-+ }
-+
- XTime tEnd, tCur;
-
- XTime_GetTime(&tCur);
-
-```
-
-修改完成后保存文件,等待sdk 自动完成编译.
-
-### 3. 拷贝 sdk 下的 bsp, 完成 app 编译
-
-拷贝 sdk bsp 文件夹下的 `include` 和 `lib` 文件夹到 [bsp](bsp) 文件夹下
-
-![step4](figures/step_4.png)
-
-然后 scons 编译app, 得到 `rtthread-zynq7000.elf`
-
-### 4. 调试运行
-
-#### 方式1: sdk 调试运行
-
-1. 点击 SDK `Run` -> `Debug Configurations...`
-![step5](figures/step_5.png)
-
-2. 右键 new 创建新的 debug
-![stp6](figures/step_6.png)
-
-3. 配置 debug, 选择 app 所在路径
-![step7](figures/step_7.png)
-![step8](figures/step_8.png)
-
-4. 随后点击 debug 就可以运行了.效果如下图所示:
-![step9](figures/step_9.png)
-![step9_1](figures/step_9_1.png)
-
-#### 方式2: 生成 BOOT.BIN 拷贝到 sd 卡运行
-
-参见 vivado bootgen 使用方法,将 app 换成
-scons 编译生成的 `rtthread-zynq7000.elf` 即可
-
-## 联系人信息
-
-维护人:
-
-- [a1012112796](https://github.com/a1012112796)
diff --git a/bsp/zynq/zynq7000/SConscript b/bsp/zynq/zynq7000/SConscript
deleted file mode 100644
index e120ff1700..0000000000
--- a/bsp/zynq/zynq7000/SConscript
+++ /dev/null
@@ -1,15 +0,0 @@
-# for module compiling
-import os
-Import('RTT_ROOT')
-from building import *
-
-cwd = GetCurrentDir()
-objs = []
-list = os.listdir(cwd)
-
-for d in list:
- path = os.path.join(cwd, d)
- if os.path.isfile(os.path.join(path, 'SConscript')):
- objs = objs + SConscript(os.path.join(d, 'SConscript'))
-
-Return('objs')
diff --git a/bsp/zynq/zynq7000/SConstruct b/bsp/zynq/zynq7000/SConstruct
deleted file mode 100644
index 27daa96583..0000000000
--- a/bsp/zynq/zynq7000/SConstruct
+++ /dev/null
@@ -1,40 +0,0 @@
-import os
-import sys
-import rtconfig
-
-if os.getenv('RTT_ROOT'):
- RTT_ROOT = os.getenv('RTT_ROOT')
-else:
- RTT_ROOT = os.path.normpath(os.getcwd() + '/../../..')
-
-sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')]
-
-try:
- from building import *
-except:
- print('Cannot found RT-Thread root directory, please check RTT_TOOLS')
- print(RTT_ROOT)
- exit(-1)
-
-TARGET = 'rtthread-zynq7000.' + rtconfig.TARGET_EXT
-
-DefaultEnvironment(tools=[])
-env = Environment(tools = ['mingw'],
- AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS,
- CC = rtconfig.CC, CCFLAGS = rtconfig.CFLAGS,
- CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS,
- AR = rtconfig.AR, ARFLAGS = '-rc',
- LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS)
-env.PrependENVPath('PATH', rtconfig.EXEC_PATH)
-
-Export('RTT_ROOT')
-Export('rtconfig')
-
-# prepare building environment
-objs = PrepareBuilding(env, RTT_ROOT)
-
-# if the linker script changed, relink the target
-Depends(TARGET, rtconfig.LINK_SCRIPT)
-
-# make a building
-DoBuilding(TARGET, objs)
diff --git a/bsp/zynq/zynq7000/Xilinx.spec b/bsp/zynq/zynq7000/Xilinx.spec
deleted file mode 100644
index 8eea377485..0000000000
--- a/bsp/zynq/zynq7000/Xilinx.spec
+++ /dev/null
@@ -1,2 +0,0 @@
-*startfile:
-crti%O%s crtbegin%O%s
diff --git a/bsp/zynq/zynq7000/applications/SConscript b/bsp/zynq/zynq7000/applications/SConscript
deleted file mode 100644
index 7b270695a1..0000000000
--- a/bsp/zynq/zynq7000/applications/SConscript
+++ /dev/null
@@ -1,14 +0,0 @@
-Import('RTT_ROOT')
-Import('rtconfig')
-from building import *
-
-cwd = GetCurrentDir()
-CPPPATH = [cwd + '/..']
-
-src = Split('''
-app.c
-''')
-
-group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH)
-
-Return('group')
diff --git a/bsp/zynq/zynq7000/applications/app.c b/bsp/zynq/zynq7000/applications/app.c
deleted file mode 100644
index 70003d37ee..0000000000
--- a/bsp/zynq/zynq7000/applications/app.c
+++ /dev/null
@@ -1,18 +0,0 @@
-#include "rtthread.h"
-#include "rtdevice.h"
-
-#define LED_PIN 0
-
-int main(void)
-{
- rt_pin_mode(LED_PIN, PIN_MODE_OUTPUT);
- rt_uint8_t out = 0;
-
- while(1)
- {
- rt_thread_mdelay(500);
- rt_pin_write(LED_PIN, out);
- out = (out + 1) % 2;
- }
- return 0;
-}
diff --git a/bsp/zynq/zynq7000/bootgen/.gitignore b/bsp/zynq/zynq7000/bootgen/.gitignore
deleted file mode 100644
index 5b3bf5785a..0000000000
--- a/bsp/zynq/zynq7000/bootgen/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-*.bit
diff --git a/bsp/zynq/zynq7000/bootgen/build.bat b/bsp/zynq/zynq7000/bootgen/build.bat
deleted file mode 100644
index 033d982cb1..0000000000
--- a/bsp/zynq/zynq7000/bootgen/build.bat
+++ /dev/null
@@ -1 +0,0 @@
-.\bootgen.exe -image output.bif -o BOOT.BIN -w on
diff --git a/bsp/zynq/zynq7000/bootgen/output.bif b/bsp/zynq/zynq7000/bootgen/output.bif
deleted file mode 100644
index d479d41f47..0000000000
--- a/bsp/zynq/zynq7000/bootgen/output.bif
+++ /dev/null
@@ -1,6 +0,0 @@
-//arch = zynq; split = false; format = BIN
-the_ROM_image:
-{
- [bootloader]fsbl.elf
- ..\rtthread-zynq7000.elf
-} \ No newline at end of file
diff --git a/bsp/zynq/zynq7000/bsp/.gitignore b/bsp/zynq/zynq7000/bsp/.gitignore
deleted file mode 100644
index daa189f89d..0000000000
--- a/bsp/zynq/zynq7000/bsp/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/lib
-/include
diff --git a/bsp/zynq/zynq7000/bsp/SConscript b/bsp/zynq/zynq7000/bsp/SConscript
deleted file mode 100644
index c03705b3d1..0000000000
--- a/bsp/zynq/zynq7000/bsp/SConscript
+++ /dev/null
@@ -1,15 +0,0 @@
-
-from building import *
-
-cwd = GetCurrentDir()
-CPPPATH = [cwd + '/include',]
-LIBS = ['libxil',]
-LIBPATH = [cwd + '/lib']
-
-group = DefineGroup('zynq_hal', [],
- depend = [],
- CPPPATH = CPPPATH,
- LIBS = LIBS,
- LIBPATH = LIBPATH)
-
-Return('group')
diff --git a/bsp/zynq/zynq7000/drivers/Kconfig b/bsp/zynq/zynq7000/drivers/Kconfig
deleted file mode 100644
index 65c20b11aa..0000000000
--- a/bsp/zynq/zynq7000/drivers/Kconfig
+++ /dev/null
@@ -1,43 +0,0 @@
-menu "Hardware Drivers Config"
-
-menu "On-chip Peripheral Drivers"
- config BSP_USING_GPIO
- bool "Enable zynq MIO"
- select RT_USING_PIN
- default y
-
- menuconfig BSP_USING_UART
- bool "Enable UART"
- default y
- select RT_USING_SERIAL
- if BSP_USING_UART
- config BSP_USING_UART0
- bool "Enable UART0"
- default y
-
- config BSP_USING_UART1
- bool "Enable UART1"
- default n
- endif
-
- config BSP_USING_SPIFLASH
- bool "Enable spi flash"
- select RT_USING_FAL
- default n
-
- menuconfig BSP_USING_SDIO
- bool "Enable sdio (emmc)"
- default n
-
- if BSP_USING_SDIO
- config BSP_USING_SDIO0
- bool "Enable sdio0"
- default n
-
- config BSP_USING_SDIO1
- bool "Enable sdio1"
- default n
- endif
-endmenu
-
-endmenu
diff --git a/bsp/zynq/zynq7000/drivers/SConscript b/bsp/zynq/zynq7000/drivers/SConscript
deleted file mode 100644
index 7955bc2d51..0000000000
--- a/bsp/zynq/zynq7000/drivers/SConscript
+++ /dev/null
@@ -1,22 +0,0 @@
-from building import *
-
-cwd = GetCurrentDir()
-src = Glob('*.c')
-
-if GetDepend('BSP_USING_UART') == False:
- src_need_remove = ['drv_uart.c'] # need remove file list.
- SrcRemove(src, src_need_remove)
-
-if GetDepend('BSP_USING_SPIFLASH') == False:
- src_need_remove = ['drv_spiflash.c'] # need remove file list.
- SrcRemove(src, src_need_remove)
-
-if GetDepend('BSP_USING_SDIO') == False:
- src_need_remove = ['drv_emmc.c'] # need remove file list.
- SrcRemove(src, src_need_remove)
-
-CPPPATH = [cwd]
-
-group = DefineGroup('Drivers', src, depend = [''], CPPPATH = CPPPATH)
-
-Return('group')
diff --git a/bsp/zynq/zynq7000/drivers/board.c b/bsp/zynq/zynq7000/drivers/board.c
deleted file mode 100644
index f18bd70ada..0000000000
--- a/bsp/zynq/zynq7000/drivers/board.c
+++ /dev/null
@@ -1,130 +0,0 @@
-#include <rthw.h>
-#include <rtthread.h>
-#include "xil_assert.h"
-#include "rtdevice.h"
-#include "drv_gpio.h"
-#include <mmu.h>
-
-extern rt_uint32_t __text_start;
-
-struct mem_desc platform_mem_desc[] = {
- /* no access to the memory below .text */
- /* 521Mb cached DDR memory */
- {(rt_uint32_t)&__text_start, 0x3F600000-1, (rt_uint32_t)&__text_start, NORMAL_MEM},
- /* PL region */
- {0x40000000, 0xBFFFFFFF, 0x40000000, DEVICE_MEM},
- /* IOP registers */
- {0xE0000000, 0xE02FFFFF, 0xE0000000, DEVICE_MEM},
- /* SLCR, PS and CPU private registers, note we map more memory space as the
- * entry is 1MB in size. */
- {0xF8000000, 0xFFFFFFFF, 0xF8000000, DEVICE_MEM},
-};
-
-const rt_uint32_t platform_mem_desc_size = sizeof(platform_mem_desc)/sizeof(platform_mem_desc[0]);
-
-void idle_wfi(void)
-{
- asm volatile ("wfi");
-}
-
-static void rt_xil_assert_callback(const char8 *File, s32 Line)
-{
- rt_kprintf("Xil_AssertCallback: %s, %d\n", File, Line);
- RT_ASSERT(0);
-}
-
-typedef void (*usleep_hook_t) (unsigned long useconds);
-
-// note: should edit usleep.c in bsp to fix it
-//
-// static usleep_hook_t usleep_hook;
-//
-// void zynq_set_usleep_hook(usleep_hook_t hook)
-// {
-// usleep_hook = hook;
-// }
-//
-// int usleep(unsigned long useconds)
-// {
-// if (usleep_hook)
-// {
-// usleep_hook(useconds);
-// return 0;
-// }
-
-// XTime tEnd, tCur;
-
-// XTime_GetTime(&tCur);
-// tEnd = tCur + (((XTime) useconds) * COUNTS_PER_USECOND);
-// do
-// {
-// XTime_GetTime(&tCur);
-// } while (tCur < tEnd);
-
-// return 0;
-// }
-//
-
-extern void zynq_set_usleep_hook(usleep_hook_t hook);
-
-static void hw_usleep_hook(unsigned long useconds)
-{
- useconds /= 1000;
- if (useconds == 0)
- useconds = 1;
-
- rt_thread_mdelay(useconds);
-}
-
-static int setup_zynq_usleep_hook(void)
-{
- zynq_set_usleep_hook(hw_usleep_hook);
- return 0;
-}
-INIT_BOARD_EXPORT(setup_zynq_usleep_hook);
-
-static void _assert_hook (const char *ex, const char *func, rt_size_t line)
-{
- RT_ASSERT(0);
-}
-
-/**
- * This function will initialize beaglebone board
- */
-void rt_hw_board_init(void)
-{
- Xil_AssertSetCallback(rt_xil_assert_callback);
-
- /* initialize hardware interrupt */
- rt_hw_interrupt_init();
- /* initialize system heap */
- rt_system_heap_init(HEAP_BEGIN, HEAP_END);
-
- rt_hw_pin_init();
-
- rt_components_board_init();
-
- rt_console_set_device(RT_CONSOLE_DEVICE_NAME);
-
- rt_thread_idle_sethook(idle_wfi);
-
-#ifdef RT_USING_SMP
- /* install IPI handle */
- rt_hw_ipi_handler_install(RT_SCHEDULE_IPI, rt_scheduler_ipi_handler);
-#endif
-
- rt_assert_set_hook(_assert_hook);
-}
-
-#include "xil_io.h"
-#define PSS_RST_CTRL_REG 0xF8000200
-#define SLCR_UNLOCK_ADDR 0xF8000008
-#define UNLOCK_KEY 0xDF0D
-#define PSS_RST_MASK 0x01
-
-static void zynq_hw_software_reset(void)
-{
- Xil_Out32(SLCR_UNLOCK_ADDR, UNLOCK_KEY);
- Xil_Out32(PSS_RST_CTRL_REG, PSS_RST_MASK);
-}
-MSH_CMD_EXPORT_ALIAS(zynq_hw_software_reset, reboot, soft reboot);
diff --git a/bsp/zynq/zynq7000/drivers/board.h b/bsp/zynq/zynq7000/drivers/board.h
deleted file mode 100644
index bf0ea027dd..0000000000
--- a/bsp/zynq/zynq7000/drivers/board.h
+++ /dev/null
@@ -1,42 +0,0 @@
-#ifndef __BOARD_H__
-#define __BOARD_H__
-
-#if defined(__CC_ARM)
-extern int Image$$RW_IRAM1$$ZI$$Limit;
-#define HEAP_BEGIN ((void*)&Image$$RW_IRAM1$$ZI$$Limit)
-#elif defined(__GNUC__)
-extern int __bss_end;
-#define HEAP_BEGIN ((void*)&__bss_end)
-#endif
-
-#define HEAP_END (void*)(0x20100000-1)
-#define GIC_IRQ_START 0
-#define MAX_HANDLERS 94
-#define GIC_ACK_INTID_MASK 0x000003ff
-#define ARM_GIC_MAX_NR 1
-#define ARM_GIC_NR_IRQS MAX_HANDLERS
-
-#include "rtthread.h"
-#include "xparameters.h"
-
-#define Zynq7000_GIC_CPU_BASE XPAR_PS7_SCUGIC_0_BASEADDR
-#define Zynq7000_GIC_DIST_BASE XPAR_PS7_SCUGIC_0_DIST_BASEADDR
-
-rt_inline rt_uint32_t platform_get_gic_dist_base(void)
-{
- return Zynq7000_GIC_DIST_BASE;
-}
-
-rt_inline rt_uint32_t platform_get_gic_cpu_base(void)
-{
- return Zynq7000_GIC_CPU_BASE;
-}
-
-#define __REG32(x) (*((volatile unsigned int *)(x)))
-#define __REG16(x) (*((volatile unsigned short *)(x)))
-
-void rt_hw_board_init();
-
-int rt_hw_uart_init(void);
-
-#endif
diff --git a/bsp/zynq/zynq7000/drivers/drv_emmc.c b/bsp/zynq/zynq7000/drivers/drv_emmc.c
deleted file mode 100644
index d9adfd44ed..0000000000
--- a/bsp/zynq/zynq7000/drivers/drv_emmc.c
+++ /dev/null
@@ -1,373 +0,0 @@
-#include "xil_exception.h"
-#include "xsdps.h"
-#include <stdio.h>
-#include "xparameters.h"
-#include "rtthread.h"
-#include <rtdevice.h>
-
-#define DBG_TAG "drv.mmc"
-#define DBG_LVL DBG_INFO
-#include <rtdbg.h>
-
-#define EMMC_BLOCK_SIZE (512)
-
-extern u16 TransferMode;
-extern s32 XSdPs_CmdTransfer(XSdPs *InstancePtr, u32 Cmd, u32 Arg, u32 BlkCnt);
-extern void XSdPs_SetupADMA2DescTbl(XSdPs *InstancePtr, u32 BlkCnt, const u8 *Buff);
-
-// replace XSdPs_ReadPolled, using `rt_thread_mdelay`
-s32 XSdPs_ReadPolled_rtt(XSdPs *InstancePtr, u32 Arg, u32 BlkCnt, u8 *Buff)
-{
- s32 Status;
- u32 PresentStateReg;
- u32 StatusReg;
-
- if ((InstancePtr->HC_Version != XSDPS_HC_SPEC_V3) ||
- ((InstancePtr->Host_Caps & XSDPS_CAPS_SLOT_TYPE_MASK)
- != XSDPS_CAPS_EMB_SLOT)) {
- if(InstancePtr->Config.CardDetect != 0U) {
- /* Check status to ensure card is initialized */
- PresentStateReg = XSdPs_ReadReg(InstancePtr->Config.BaseAddress,
- XSDPS_PRES_STATE_OFFSET);
- if ((PresentStateReg & XSDPS_PSR_CARD_INSRT_MASK) == 0x0U) {
- Status = XST_FAILURE;
- goto RETURN_PATH;
- }
- }
- }
-
- /* Set block size to 512 if not already set */
- if( XSdPs_ReadReg(InstancePtr->Config.BaseAddress,
- XSDPS_BLK_SIZE_OFFSET) != XSDPS_BLK_SIZE_512_MASK ) {
- Status = XSdPs_SetBlkSize(InstancePtr,
- XSDPS_BLK_SIZE_512_MASK);
- if (Status != XST_SUCCESS) {
- Status = XST_FAILURE;
- goto RETURN_PATH;
- }
- }
-
- XSdPs_SetupADMA2DescTbl(InstancePtr, BlkCnt, Buff);
-
- TransferMode = XSDPS_TM_AUTO_CMD12_EN_MASK |
- XSDPS_TM_BLK_CNT_EN_MASK | XSDPS_TM_DAT_DIR_SEL_MASK |
- XSDPS_TM_DMA_EN_MASK | XSDPS_TM_MUL_SIN_BLK_SEL_MASK;
-
- if (InstancePtr->Config.IsCacheCoherent == 0) {
- Xil_DCacheInvalidateRange((INTPTR)Buff,
- BlkCnt * XSDPS_BLK_SIZE_512_MASK);
- }
-
- /* Send block read command */
- Status = XSdPs_CmdTransfer(InstancePtr, CMD18, Arg, BlkCnt);
- if (Status != XST_SUCCESS) {
- Status = XST_FAILURE;
- goto RETURN_PATH;
- }
-
- /* Check for transfer complete */
- do {
- StatusReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress,
- XSDPS_NORM_INTR_STS_OFFSET);
- if ((StatusReg & XSDPS_INTR_ERR_MASK) != 0U) {
- /* Write to clear error bits */
- XSdPs_WriteReg16(InstancePtr->Config.BaseAddress,
- XSDPS_ERR_INTR_STS_OFFSET,
- XSDPS_ERROR_INTR_ALL_MASK);
- Status = XST_FAILURE;
- goto RETURN_PATH;
- }
-
- // delay 1ms
- if ((StatusReg & XSDPS_INTR_TC_MASK) == 0U)
- rt_thread_mdelay(1);
-
- } while((StatusReg & XSDPS_INTR_TC_MASK) == 0U);
-
- /* Write to clear bit */
- XSdPs_WriteReg16(InstancePtr->Config.BaseAddress,
- XSDPS_NORM_INTR_STS_OFFSET, XSDPS_INTR_TC_MASK);
- Status = (s32)XSdPs_ReadReg(InstancePtr->Config.BaseAddress,
- XSDPS_RESP0_OFFSET);
-
- Status = XST_SUCCESS;
-
-RETURN_PATH:
- return Status;
-}
-
-// replace XSdPs_WritePolled, using rt_thread_mdelay
-s32 XSdPs_WritePolled_rtt(XSdPs *InstancePtr, u32 Arg, u32 BlkCnt, const u8 *Buff)
-{
- s32 Status;
- u32 PresentStateReg;
- u32 StatusReg;
-
- if ((InstancePtr->HC_Version != XSDPS_HC_SPEC_V3) ||
- ((InstancePtr->Host_Caps & XSDPS_CAPS_SLOT_TYPE_MASK)
- != XSDPS_CAPS_EMB_SLOT)) {
- if(InstancePtr->Config.CardDetect != 0U) {
- /* Check status to ensure card is initialized */
- PresentStateReg = XSdPs_ReadReg(InstancePtr->Config.BaseAddress,
- XSDPS_PRES_STATE_OFFSET);
- if ((PresentStateReg & XSDPS_PSR_CARD_INSRT_MASK) == 0x0U) {
- Status = XST_FAILURE;
- goto RETURN_PATH;
- }
- }
- }
-
- /* Set block size to 512 if not already set */
- if( XSdPs_ReadReg(InstancePtr->Config.BaseAddress,
- XSDPS_BLK_SIZE_OFFSET) != XSDPS_BLK_SIZE_512_MASK ) {
- Status = XSdPs_SetBlkSize(InstancePtr,
- XSDPS_BLK_SIZE_512_MASK);
- if (Status != XST_SUCCESS) {
- Status = XST_FAILURE;
- goto RETURN_PATH;
- }
-
- }
-
- XSdPs_SetupADMA2DescTbl(InstancePtr, BlkCnt, Buff);
- if (InstancePtr->Config.IsCacheCoherent == 0) {
- Xil_DCacheFlushRange((INTPTR)Buff,
- BlkCnt * XSDPS_BLK_SIZE_512_MASK);
- }
-
- TransferMode = XSDPS_TM_AUTO_CMD12_EN_MASK |
- XSDPS_TM_BLK_CNT_EN_MASK |
- XSDPS_TM_MUL_SIN_BLK_SEL_MASK | XSDPS_TM_DMA_EN_MASK;
-
- /* Send block write command */
- Status = XSdPs_CmdTransfer(InstancePtr, CMD25, Arg, BlkCnt);
- if (Status != XST_SUCCESS) {
- Status = XST_FAILURE;
- goto RETURN_PATH;
- }
-
- /*
- * Check for transfer complete
- * Polling for response for now
- */
- do {
- StatusReg = XSdPs_ReadReg16(InstancePtr->Config.BaseAddress,
- XSDPS_NORM_INTR_STS_OFFSET);
- if ((StatusReg & XSDPS_INTR_ERR_MASK) != 0U) {
- /* Write to clear error bits */
- XSdPs_WriteReg16(InstancePtr->Config.BaseAddress,
- XSDPS_ERR_INTR_STS_OFFSET,
- XSDPS_ERROR_INTR_ALL_MASK);
- Status = XST_FAILURE;
- goto RETURN_PATH;
- }
-
- if ((StatusReg & XSDPS_INTR_TC_MASK) == 0U)
- rt_thread_mdelay(1);
-
- } while((StatusReg & XSDPS_INTR_TC_MASK) == 0U);
-
- /* Write to clear bit */
- XSdPs_WriteReg16(InstancePtr->Config.BaseAddress,
- XSDPS_NORM_INTR_STS_OFFSET, XSDPS_INTR_TC_MASK);
-
- Status = XST_SUCCESS;
-
- RETURN_PATH:
- return Status;
-}
-
-struct rt_hw_emmc_device {
- struct rt_device dev;
- XSdPs emmc;
- XSdPs_Config *cfg;
- struct rt_mutex lock;
- u16 dev_id;
-};
-
-#ifdef BSP_USING_SDIO0
-static struct rt_hw_emmc_device emmc0 = {
- .dev_id = XPAR_PS7_SD_0_DEVICE_ID,
-};
-#endif
-
-#ifdef BSP_USING_SDIO1
-static struct rt_hw_emmc_device emmc1 = {
- .dev_id = XPAR_PS7_SD_1_DEVICE_ID,
-};
-#endif
-
-#define __INIT_CHECK_CFG(cfg) \
- if (Status != XST_SUCCESS) \
- { \
- rt_kprintf("EMMC Config '%s' failed: err: %d\n", cfg, Status); \
- return -RT_EIO; \
- }
-
-static rt_err_t rt_sdcard_init(rt_device_t dev)
-{
- RT_ASSERT(dev);
- struct rt_hw_emmc_device *pdev = rt_container_of(dev, struct rt_hw_emmc_device, dev);
- RT_ASSERT(pdev != RT_NULL);
-
- rt_mutex_take(&pdev->lock, RT_WAITING_FOREVER);
- if (pdev->cfg != RT_NULL)
- {
- LOG_I("init '%s' success", pdev->dev.parent.name);
- rt_mutex_release(&pdev->lock);
- return RT_EOK;
- }
-
- pdev->cfg = XSdPs_LookupConfig(pdev->dev_id);
- RT_ASSERT(pdev->cfg != RT_NULL);
- s32 Status = XSdPs_CfgInitialize(&pdev->emmc, pdev->cfg, pdev->cfg->BaseAddress);
- __INIT_CHECK_CFG("cfg");
-
- Status = XSdPs_CardInitialize(&pdev->emmc);
- __INIT_CHECK_CFG("init");
-
- LOG_I("init '%s' success", pdev->dev.parent.name);
- rt_mutex_release(&pdev->lock);
-
- return RT_EOK;
-}
-
-rt_inline rt_uint32_t _emmc_start_addr(struct rt_hw_emmc_device *pdev)
-{
- return 0;
-}
-
-rt_inline rt_uint32_t _emmc_size(struct rt_hw_emmc_device *pdev)
-{
- return pdev->emmc.SectorCount;
-}
-
-rt_inline rt_uint32_t _emmc_end_addr(struct rt_hw_emmc_device *pdev)
-{
- return pdev->emmc.SectorCount;
-}
-
-static rt_err_t rt_sdcard_open(rt_device_t dev, rt_uint16_t oflag)
-{
- return RT_EOK;
-}
-
-static rt_err_t rt_sdcard_close(rt_device_t dev)
-{
- return RT_EOK;
-}
-
-static rt_ssize_t rt_sdcard_read(rt_device_t dev, rt_off_t pos, void *buffer, rt_size_t size)
-{
- s32 status;
- RT_ASSERT(dev);
- struct rt_hw_emmc_device *pdev = rt_container_of(dev, struct rt_hw_emmc_device, dev);
- RT_ASSERT(pdev != RT_NULL);
-
- pos += _emmc_start_addr(pdev);
- if (size + pos >= _emmc_end_addr(pdev))
- {
- LOG_E("addr out of ranger: %d %d", pos, size);
- return 0;
- }
-
- rt_mutex_take(&pdev->lock, RT_WAITING_FOREVER);
- status = XSdPs_ReadPolled_rtt(&pdev->emmc, pos, size, buffer);
- rt_mutex_release(&pdev->lock);
-
- if (status == XST_SUCCESS)
- return size;
-
- rt_kprintf("sdcard read failed: %d\n", status);
- return 0;
-}
-
-static rt_uint8_t sdio_write_buf[2][EMMC_BLOCK_SIZE] __attribute__((aligned(32)));
-
-static rt_ssize_t rt_sdcard_write(rt_device_t dev, rt_off_t pos, const void *buffer, rt_size_t size)
-{
- s32 status;
- rt_ssize_t rt = 0;
-
- RT_ASSERT(dev);
- struct rt_hw_emmc_device *pdev = rt_container_of(dev, struct rt_hw_emmc_device, dev);
- RT_ASSERT(pdev != RT_NULL);
-
- pos += _emmc_start_addr(pdev);
- if (size + pos >= _emmc_end_addr(pdev))
- {
- LOG_E("addr out of ranger: %d %d", pos, size);
- return 0;
- }
-
- rt_mutex_take(&pdev->lock, RT_WAITING_FOREVER);
- for (int i = 0; i < size; i++)
- {
- rt_memcpy(sdio_write_buf[pdev->dev_id], ((rt_uint8_t *)buffer) + EMMC_BLOCK_SIZE * i, EMMC_BLOCK_SIZE);
-
- status = XSdPs_WritePolled_rtt(&pdev->emmc, pos + i, 1, sdio_write_buf[pdev->dev_id]);
-
- if (status != XST_SUCCESS)
- {
- rt_kprintf("sdcard write failed: %d\n", status);
- break;
- }
-
- rt++;
- }
- rt_mutex_release(&pdev->lock);
-
- return rt;
-}
-
-static rt_err_t rt_sdcard_control(rt_device_t dev, int cmd, void *args)
-{
- RT_ASSERT(dev);
- struct rt_hw_emmc_device *pdev = rt_container_of(dev, struct rt_hw_emmc_device, dev);
- RT_ASSERT(pdev != RT_NULL);
-
- if (cmd == RT_DEVICE_CTRL_BLK_GETGEOME)
- {
- struct rt_device_blk_geometry *geometry;
-
- geometry = (struct rt_device_blk_geometry *)args;
- if (geometry == RT_NULL)
- return -RT_ERROR;
-
- geometry->bytes_per_sector = EMMC_BLOCK_SIZE;
- geometry->block_size = EMMC_BLOCK_SIZE;
- geometry->sector_count = _emmc_size(pdev);
- }
-
- return RT_EOK;
-}
-
-static void _init_emmc_dev(struct rt_hw_emmc_device *pdev, const char *name)
-{
- rt_mutex_init(&pdev->lock, name, RT_IPC_FLAG_PRIO);
-
- pdev->dev.type = RT_Device_Class_Block;
- pdev->dev.init = rt_sdcard_init;
- pdev->dev.open = rt_sdcard_open;
- pdev->dev.close = rt_sdcard_close;
- pdev->dev.read = rt_sdcard_read;
- pdev->dev.write = rt_sdcard_write;
- pdev->dev.control = rt_sdcard_control;
- pdev->dev.user_data = RT_NULL;
-
- rt_device_register(&pdev->dev, name, RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_STANDALONE);
-}
-
-int rt_hw_emmc_init(void)
-{
-#ifdef BSP_USING_SDIO0
- _init_emmc_dev(&emmc0, "sd0");
-#endif
-
-#ifdef BSP_USING_SDIO1
- _init_emmc_dev(&emmc1, "sd1");
-#endif
-
- return RT_EOK;
-}
-INIT_BOARD_EXPORT(rt_hw_emmc_init);
diff --git a/bsp/zynq/zynq7000/drivers/drv_gpio.c b/bsp/zynq/zynq7000/drivers/drv_gpio.c
deleted file mode 100644
index 0e635dad5b..0000000000
--- a/bsp/zynq/zynq7000/drivers/drv_gpio.c
+++ /dev/null
@@ -1,202 +0,0 @@
-#include <board.h>
-#include "drv_gpio.h"
-#include "rtdevice.h"
-#include "rthw.h"
-
-#include "xparameters.h"
-#include "xgpiops.h"
-
-#define GPIOPS_ID XPAR_XGPIOPS_0_DEVICE_ID
-#define GPIO_INTERRUPT_ID XPAR_XGPIOPS_0_INTR
-
-struct hw_intr_node {
- rt_slist_t node;
- rt_uint32_t id;
- void (*hdr)(void *args);
- void *args;
-};
-
-static XGpioPs gpio;
-static rt_slist_t intr_list;
-
-rt_inline struct hw_intr_node *_find_intr_node(rt_uint32_t id)
-{
- struct hw_intr_node *p;
- rt_slist_for_each_entry(p, &intr_list, node)
- {
- if (p->id == id)
- {
- return p;
- }
- }
-
- return RT_NULL;
-}
-
-static void intr_handler(int vector, void *param)
-{
- struct hw_intr_node *p;
- rt_slist_for_each_entry(p, &intr_list, node)
- {
- if (!XGpioPs_IntrGetStatusPin(&gpio, p->id))
- continue;
-
- XGpioPs_IntrDisablePin(&gpio, p->id);
- if (p->hdr)
- p->hdr(p->args);
-
- XGpioPs_IntrClearPin(&gpio, p->id);
- XGpioPs_IntrEnablePin(&gpio, p->id);
- }
-}
-
-static rt_base_t zynq_pin_get(const char *name)
-{
- rt_set_errno(-RT_ENOSYS);
- return -1;
-}
-
-static void zynq_pin_write(rt_device_t dev, rt_base_t pin, rt_uint8_t value)
-{
- if (pin >= XGPIOPS_DEVICE_MAX_PIN_NUM)
- {
- rt_set_errno(-RT_ENOSYS);
- return;
- }
-
- XGpioPs_WritePin(&gpio, pin, value);
-}
-
-static rt_int8_t zynq_pin_read(rt_device_t dev, rt_base_t pin)
-{
- if (pin >= XGPIOPS_DEVICE_MAX_PIN_NUM)
- {
- rt_set_errno(-RT_ENOSYS);
- return -1;
- }
-
- return XGpioPs_ReadPin(&gpio, pin);
-}
-
-static void zynq_pin_mode(rt_device_t dev, rt_base_t pin, rt_uint8_t mode)
-{
- rt_uint8_t isOutput = (mode == PIN_MODE_OUTPUT) || (mode == PIN_MODE_OUTPUT_OD);
- XGpioPs_SetDirectionPin(&gpio, pin, isOutput);
- XGpioPs_SetOutputEnablePin(&gpio, pin, isOutput);
-}
-
-static rt_err_t zynq_pin_attach_irq(struct rt_device *device, rt_int32_t pin,
- rt_uint8_t mode, void (*hdr)(void *args), void *args)
-{
- u8 irq_type;
- switch (mode)
- {
- case PIN_IRQ_MODE_RISING:
- irq_type = XGPIOPS_IRQ_TYPE_EDGE_RISING;
- break;
-
- case PIN_IRQ_MODE_FALLING:
- irq_type = XGPIOPS_IRQ_TYPE_EDGE_FALLING;
- break;
-
- case PIN_IRQ_MODE_RISING_FALLING:
- irq_type = XGPIOPS_IRQ_TYPE_EDGE_BOTH;
- break;
-
- case PIN_IRQ_MODE_HIGH_LEVEL:
- irq_type = XGPIOPS_IRQ_TYPE_LEVEL_HIGH;
- break;
-
- case PIN_IRQ_MODE_LOW_LEVEL:
- irq_type = XGPIOPS_IRQ_TYPE_LEVEL_LOW;
- break;
-
- default:
- return -RT_ENOSYS;
- }
-
- struct hw_intr_node *node = _find_intr_node(pin);
- if (node != RT_NULL)
- {
- return -RT_EBUSY;
- }
-
- node = rt_malloc(sizeof(struct hw_intr_node));
- if (node == RT_NULL)
- {
- return -RT_ENOMEM;
- }
-
- XGpioPs_SetIntrTypePin(&gpio, pin, irq_type);
-
- node->id = pin;
- node->hdr = hdr;
- node->args = args;
-
- rt_slist_append(&intr_list, &node->node);
-
- return RT_EOK;
-}
-
-static rt_err_t zynq_pin_dettach_irq(struct rt_device *device, rt_base_t pin)
-{
- struct hw_intr_node *node;
-
- rt_enter_critical();
- node = _find_intr_node(pin);
- if (node != RT_NULL)
- {
- rt_exit_critical();
- return -RT_ERROR;
- }
- rt_slist_remove(&intr_list, &node->node);
- rt_exit_critical();
-
- rt_free(node);
-
- return RT_EOK;
-}
-
-static rt_err_t zynq_pin_irq_enable(struct rt_device *device, rt_base_t pin,
- rt_uint8_t enabled)
-{
- if (enabled)
- {
- XGpioPs_IntrEnablePin(&gpio, pin);
- }
- else
- {
- XGpioPs_IntrDisablePin(&gpio, pin);
- }
-
- return RT_EOK;
-}
-
-const static struct rt_pin_ops _zynq_pin_ops =
-{
- zynq_pin_mode,
- zynq_pin_write,
- zynq_pin_read,
- zynq_pin_attach_irq,
- zynq_pin_dettach_irq,
- zynq_pin_irq_enable,
- zynq_pin_get,
-};
-
-int rt_hw_pin_init(void)
-{
- XGpioPs_Config *gpiops_cfg_ptr;
- gpiops_cfg_ptr = XGpioPs_LookupConfig(GPIOPS_ID);
- RT_ASSERT(gpiops_cfg_ptr);
-
- RT_ASSERT(
- XGpioPs_CfgInitialize(&gpio, gpiops_cfg_ptr, gpiops_cfg_ptr->BaseAddr)
- == 0
- )
-
- rt_slist_init(&intr_list);
- rt_hw_interrupt_install(GPIO_INTERRUPT_ID, intr_handler, RT_NULL, "pin");
- rt_hw_interrupt_umask(GPIO_INTERRUPT_ID);
-
- return rt_device_pin_register("pin", &_zynq_pin_ops, RT_NULL);
-}
diff --git a/bsp/zynq/zynq7000/drivers/drv_gpio.h b/bsp/zynq/zynq7000/drivers/drv_gpio.h
deleted file mode 100644
index d97d1eea34..0000000000
--- a/bsp/zynq/zynq7000/drivers/drv_gpio.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef __DRV_GPIO_H__
-#define __DRV_GPIO_H__
-
-#include <board.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-int rt_hw_pin_init(void);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* __DRV_GPIO_H__ */
diff --git a/bsp/zynq/zynq7000/drivers/drv_spiflash.c b/bsp/zynq/zynq7000/drivers/drv_spiflash.c
deleted file mode 100644
index 8ad810836f..0000000000
--- a/bsp/zynq/zynq7000/drivers/drv_spiflash.c
+++ /dev/null
@@ -1,446 +0,0 @@
-#include "xparameters.h"
-#include "xqspips.h"
-
-#define QSPI_DEVICE_ID XPAR_XQSPIPS_0_DEVICE_ID
-
-#include <rthw.h>
-#include <rtdevice.h>
-#include "board.h"
-
-#define DBG_TAG "drv.spiflash"
-#define DBG_LVL DBG_INFO
-#include <rtdbg.h>
-
-#define WRITE_STATUS_CMD 0x01
-#define WRITE_CMD 0x02
-#define READ_CMD 0x03
-#define WRITE_DISABLE_CMD 0x04
-#define READ_STATUS_CMD 0x05
-#define WRITE_ENABLE_CMD 0x06
-#define FAST_READ_CMD 0x0B
-#define DUAL_READ_CMD 0x3B
-#define QUAD_READ_CMD 0x6B
-#define BULK_ERASE_CMD 0xC7
-#define SEC_ERASE_CMD 0xD8
-#define READ_ID 0x9F
-
-#define COMMAND_OFFSET 0 // FLASH instruction */
-#define ADDRESS_1_OFFSET 1 // MSB byte of address to read or write */
-#define ADDRESS_2_OFFSET 2 // Middle byte of address to read or write */
-#define ADDRESS_3_OFFSET 3 // LSB byte of address to read or write */
-#define DATA_OFFSET 4 // Start of Data for Read/Write */
-#define DUMMY_OFFSET 4 // Dummy byte offset for fast, dual and quad reads
-#define DUMMY_SIZE 1 // Number of dummy bytes for fast, dual and quad reads
-#define RD_ID_SIZE 4 // Read ID command + 3 bytes ID response */
-#define BULK_ERASE_SIZE 1 // Bulk Erase command size */
-#define SEC_ERASE_SIZE 4 // Sector Erase command + Sector address */
-#define OVERHEAD_SIZE 4 // control information: command and address
-
-#define SECTOR_SIZE 0x10000
-#define NUM_SECTORS 0x200
-#define NUM_PAGES 0x10000
-#define PAGE_SIZE 256
-
-static XQspiPs qspi_dev;
-
-static u8 ReadBuffer[PAGE_SIZE + DATA_OFFSET + DUMMY_SIZE];
-static u8 WriteBuffer[PAGE_SIZE + DATA_OFFSET];
-
-static int FlashReadID(void);
-static void FlashQuadEnable(XQspiPs *QspiPtr);
-
-static int init(void)
-{
- int Status;
-
- XQspiPs_Config *QspiConfig;
-
- QspiConfig = XQspiPs_LookupConfig(QSPI_DEVICE_ID);
- if (QspiConfig == NULL) {
- LOG_E("lockup failed");
- return XST_FAILURE;
- }
-
- Status = XQspiPs_CfgInitialize(&qspi_dev, QspiConfig,
- QspiConfig->BaseAddress);
- if (Status != XST_SUCCESS) {
- LOG_E("cfg init failed : %d", Status);
- return XST_FAILURE;
- }
-
- XQspiPs_SetOptions(&qspi_dev, XQSPIPS_FORCE_SSELECT_OPTION | XQSPIPS_HOLD_B_DRIVE_OPTION);
- XQspiPs_SetClkPrescaler(&qspi_dev, XQSPIPS_CLK_PRESCALE_8);
- XQspiPs_SetSlaveSelect(&qspi_dev);
- FlashReadID();
- FlashQuadEnable(&qspi_dev);
-
- return XST_SUCCESS;
-}
-
-/*****************************************************************************/
-/**
- *
- * This function writes to the serial FLASH connected to the QSPI interface.
- * All the data put into the buffer must be in the same page of the device with
- * page boundaries being on 256 byte boundaries.
- *
- * @param QspiPtr is a pointer to the QSPI driver component to use.
- * @param Address contains the address to write data to in the FLASH.
- * @param ByteCount contains the number of bytes to write.
- * @param Command is the command used to write data to the flash. QSPI
- * device supports only Page Program command to write data to the
- * flash.
- *
- * @return None.
- *
- * @note None.
- *
- ******************************************************************************/
-rt_inline void FlashWrite(XQspiPs *QspiPtr, u32 Address, u32 ByteCount, u8 Command)
-{
- u8 WriteEnableCmd = { WRITE_ENABLE_CMD };
- u8 ReadStatusCmd[] = { READ_STATUS_CMD, 0 }; /* must send 2 bytes */
- u8 FlashStatus[2];
-
- /*
- * Send the write enable command to the FLASH so that it can be
- * written to, this needs to be sent as a seperate transfer before
- * the write
- */
- XQspiPs_PolledTransfer(QspiPtr, &WriteEnableCmd, NULL,
- sizeof(WriteEnableCmd));
-
- /*
- * Setup the write command with the specified address and data for the
- * FLASH
- */
- WriteBuffer[COMMAND_OFFSET] = Command;
- WriteBuffer[ADDRESS_1_OFFSET] = (u8) ((Address & 0xFF0000) >> 16);
- WriteBuffer[ADDRESS_2_OFFSET] = (u8) ((Address & 0xFF00) >> 8);
- WriteBuffer[ADDRESS_3_OFFSET] = (u8) (Address & 0xFF);
-
- /*
- * Send the write command, address, and data to the FLASH to be
- * written, no receive buffer is specified since there is nothing to
- * receive
- */
- XQspiPs_PolledTransfer(QspiPtr, WriteBuffer, NULL,
- ByteCount + OVERHEAD_SIZE);
-
- /*
- * Wait for the write command to the FLASH to be completed, it takes
- * some time for the data to be written
- */
- while (1) {
- /*
- * Poll the status register of the FLASH to determine when it
- * completes, by sending a read status command and receiving the
- * status byte
- */
- XQspiPs_PolledTransfer(QspiPtr, ReadStatusCmd, FlashStatus,
- sizeof(ReadStatusCmd));
-
- /*
- * If the status indicates the write is done, then stop waiting,
- * if a value of 0xFF in the status byte is read from the
- * device and this loop never exits, the device slave select is
- * possibly incorrect such that the device status is not being
- * read
- */
- if ((FlashStatus[1] & 0x01) == 0) {
- break;
- }
- }
-}
-
-static int write(long offset, const uint8_t *buf, size_t size)
-{
- RT_ASSERT(size > 0 && size % PAGE_SIZE == 0 && offset % PAGE_SIZE == 0);
-
- for (int pos = 0; pos < size; pos += PAGE_SIZE)
- {
- rt_memcpy(&WriteBuffer[DATA_OFFSET], &buf[pos], PAGE_SIZE);
- FlashWrite(&qspi_dev, offset + pos, PAGE_SIZE, WRITE_CMD);
- }
-
- return size;
-}
-
-/*****************************************************************************/
-/**
- *
- * This function reads from the serial FLASH connected to the
- * QSPI interface.
- *
- * @param QspiPtr is a pointer to the QSPI driver component to use.
- * @param Address contains the address to read data from in the FLASH.
- * @param ByteCount contains the number of bytes to read.
- * @param Command is the command used to read data from the flash. QSPI
- * device supports one of the Read, Fast Read, Dual Read and Fast
- * Read commands to read data from the flash.
- *
- * @return None.
- *
- * @note None.
- *
- ******************************************************************************/
-rt_inline void FlashRead(XQspiPs *QspiPtr, u32 Address, u32 ByteCount, u8 Command)
-{
- /*
- * Setup the write command with the specified address and data for the
- * FLASH
- */
- WriteBuffer[COMMAND_OFFSET] = Command;
- WriteBuffer[ADDRESS_1_OFFSET] = (u8) ((Address & 0xFF0000) >> 16);
- WriteBuffer[ADDRESS_2_OFFSET] = (u8) ((Address & 0xFF00) >> 8);
- WriteBuffer[ADDRESS_3_OFFSET] = (u8) (Address & 0xFF);
-
- if ((Command == FAST_READ_CMD) || (Command == DUAL_READ_CMD)
- || (Command == QUAD_READ_CMD)) {
- ByteCount += DUMMY_SIZE;
- }
- /*
- * Send the read command to the FLASH to read the specified number
- * of bytes from the FLASH, send the read command and address and
- * receive the specified number of bytes of data in the data buffer
- */
- XQspiPs_PolledTransfer(QspiPtr, WriteBuffer, ReadBuffer,
- ByteCount + OVERHEAD_SIZE);
-}
-
-static int read(long offset, uint8_t *buf, size_t size)
-{
- RT_ASSERT(size > 0 && size % PAGE_SIZE == 0 && offset % PAGE_SIZE == 0);
-
- for (int pos = 0; pos < size; pos += PAGE_SIZE)
- {
- FlashRead(&qspi_dev, offset + pos, PAGE_SIZE, QUAD_READ_CMD);
- rt_memcpy(&buf[pos], &ReadBuffer[DATA_OFFSET + DUMMY_SIZE], PAGE_SIZE);
- }
-
- return size;
-}
-
-/*****************************************************************************/
-/**
- *
- * This function erases the sectors in the serial FLASH connected to the
- * QSPI interface.
- *
- * @param QspiPtr is a pointer to the QSPI driver component to use.
- * @param Address contains the address of the first sector which needs to
- * be erased.
- * @param ByteCount contains the total size to be erased.
- *
- * @return None.
- *
- * @note None.
- *
- ******************************************************************************/
-rt_inline void Erase (XQspiPs *QspiPtr, u32 Address, u32 ByteCount)
-{
- u8 WriteEnableCmd = { WRITE_ENABLE_CMD };
- u8 ReadStatusCmd[] = { READ_STATUS_CMD, 0 }; /* must send 2 bytes */
- u8 FlashStatus[2];
- int Sector;
- int total_sector;
-
- /*
- * If erase size is same as the total size of the flash, use bulk erase
- * command
- */
- if (ByteCount == (NUM_SECTORS * SECTOR_SIZE)) {
- /*
- * Send the write enable command to the FLASH so that it can be
- * written to, this needs to be sent as a seperate transfer
- * before the erase
- */
- XQspiPs_PolledTransfer(QspiPtr, &WriteEnableCmd, NULL,
- sizeof(WriteEnableCmd));
-
- /* Setup the bulk erase command*/
- WriteBuffer[COMMAND_OFFSET] = BULK_ERASE_CMD;
-
- /*
- * Send the bulk erase command; no receive buffer is specified
- * since there is nothing to receive
- */
- XQspiPs_PolledTransfer(QspiPtr, WriteBuffer, NULL,
- BULK_ERASE_SIZE);
-
- /* Wait for the erase command to the FLASH to be completed*/
- while (1) {
- /*
- * Poll the status register of the device to determine
- * when it completes, by sending a read status command
- * and receiving the status byte
- */
- XQspiPs_PolledTransfer(QspiPtr, ReadStatusCmd, FlashStatus,
- sizeof(ReadStatusCmd));
-
- /*
- * If the status indicates the write is done, then stop
- * waiting; if a value of 0xFF in the status byte is
- * read from the device and this loop never exits, the
- * device slave select is possibly incorrect such that
- * the device status is not being read
- */
- if ((FlashStatus[1] & 0x01) == 0) {
- break;
- }
- }
-
- return;
- }
-
- /*
- * If the erase size is less than the total size of the flash, use
- * sector erase command
- */
- total_sector = RT_ALIGN(ByteCount, SECTOR_SIZE) / SECTOR_SIZE;
-
- for (Sector = 0; Sector < total_sector; Sector++) {
- /*
- * Send the write enable command to the SEEPOM so that it can be
- * written to, this needs to be sent as a seperate transfer
- * before the write
- */
- XQspiPs_PolledTransfer(QspiPtr, &WriteEnableCmd, NULL,
- sizeof(WriteEnableCmd));
-
- /*
- * Setup the write command with the specified address and data
- * for the FLASH
- */
- WriteBuffer[COMMAND_OFFSET] = SEC_ERASE_CMD;
- WriteBuffer[ADDRESS_1_OFFSET] = (u8) (Address >> 16);
- WriteBuffer[ADDRESS_2_OFFSET] = (u8) (Address >> 8);
- WriteBuffer[ADDRESS_3_OFFSET] = (u8) (Address & 0xFF);
-
- /*
- * Send the sector erase command and address; no receive buffer
- * is specified since there is nothing to receive
- */
- XQspiPs_PolledTransfer(QspiPtr, WriteBuffer, NULL,
- SEC_ERASE_SIZE);
-
- /*
- * Wait for the sector erse command to the
- * FLASH to be completed
- */
- while (1) {
- /*
- * Poll the status register of the device to determine
- * when it completes, by sending a read status command
- * and receiving the status byte
- */
- XQspiPs_PolledTransfer(QspiPtr, ReadStatusCmd, FlashStatus,
- sizeof(ReadStatusCmd));
-
- /*
- * If the status indicates the write is done, then stop
- * waiting, if a value of 0xFF in the status byte is
- * read from the device and this loop never exits, the
- * device slave select is possibly incorrect such that
- * the device status is not being read
- */
- if ((FlashStatus[1] & 0x01) == 0) {
- break;
- }
- }
-
- Address += SECTOR_SIZE;
- }
-}
-
-static int erase(long offset, size_t size)
-{
- Erase(&qspi_dev, offset, size);
- return size % SECTOR_SIZE == 0? size : (size / SECTOR_SIZE + 1) * SECTOR_SIZE;
-}
-
-/*****************************************************************************/
-/**
- *
- * This function reads serial FLASH ID connected to the SPI interface.
- *
- * @param None.
- *
- * @return XST_SUCCESS if read id, otherwise XST_FAILURE.
- *
- * @note None.
- *
- ******************************************************************************/
-static int FlashReadID(void)
-{
- int Status;
-
- /* Read ID in Auto mode.*/
- WriteBuffer[COMMAND_OFFSET] = READ_ID;
- WriteBuffer[ADDRESS_1_OFFSET] = 0x23; /* 3 dummy bytes */
- WriteBuffer[ADDRESS_2_OFFSET] = 0x08;
- WriteBuffer[ADDRESS_3_OFFSET] = 0x09;
-
- Status = XQspiPs_PolledTransfer(&qspi_dev, WriteBuffer, ReadBuffer, RD_ID_SIZE);
- if (Status != XST_SUCCESS) {
- return XST_FAILURE;
- }
-
- LOG_I("FlashID=0x%x 0x%x 0x%x\n\r", ReadBuffer[1], ReadBuffer[2], ReadBuffer[3]);
-
- return XST_SUCCESS;
-}
-
-/*****************************************************************************/
-
-/**
- *
- * This function enables quad mode in the serial flash connected to the
- * SPI interface.
- *
- * @param QspiPtr is a pointer to the QSPI driver component to use.
- *
- * @return None.
- *
- * @note None.
- *
- ******************************************************************************/
-static void FlashQuadEnable(XQspiPs *QspiPtr)
-{
- u8 WriteEnableCmd = { WRITE_ENABLE_CMD };
- u8 ReadStatusCmd[] = { READ_STATUS_CMD, 0 };
- u8 QuadEnableCmd[] = { WRITE_STATUS_CMD, 0 };
- u8 FlashStatus[2];
-
- if (ReadBuffer[1] == 0x9D) {
-
- XQspiPs_PolledTransfer(QspiPtr, ReadStatusCmd, FlashStatus,
- sizeof(ReadStatusCmd));
-
- QuadEnableCmd[1] = FlashStatus[1] | 1 << 6;
-
- XQspiPs_PolledTransfer(QspiPtr, &WriteEnableCmd, NULL,
- sizeof(WriteEnableCmd));
-
- XQspiPs_PolledTransfer(QspiPtr, QuadEnableCmd, NULL,
- sizeof(QuadEnableCmd));
- }
-}
-
-#include "fal.h"
-const struct fal_flash_dev spi_flash =
-{
- .name = "spi_flash",
- .addr = 0x00000000,
- .len = NUM_SECTORS * SECTOR_SIZE,
- .blk_size = PAGE_SIZE,
- .ops = {init, read, write, erase},
- .write_gran = PAGE_SIZE,
-};
-
-static int rt_hw_on_chip_flash_init(void)
-{
- fal_init();
- return RT_EOK;
-}
-INIT_ENV_EXPORT(rt_hw_on_chip_flash_init);
diff --git a/bsp/zynq/zynq7000/drivers/drv_timer.c b/bsp/zynq/zynq7000/drivers/drv_timer.c
deleted file mode 100644
index 08c649ed11..0000000000
--- a/bsp/zynq/zynq7000/drivers/drv_timer.c
+++ /dev/null
@@ -1,44 +0,0 @@
-#include "rtthread.h"
-
-#include "xparameters.h"
-#include "xscutimer.h"
-
-#define APU_FREQ XPAR_PS7_CORTEXA9_0_CPU_CLK_FREQ_HZ
-#define TIMER_DEVICE_ID XPAR_XSCUTIMER_0_DEVICE_ID
-#define TIMER_IRPT_INTR XPAR_SCUTIMER_INTR
-
-static XScuTimer timer;
-
-static void rt_hw_timer_isr(int vector, void *param)
-{
- rt_tick_increase();
-
- XScuTimer_ClearInterruptStatus(&timer);
-}
-
-int rt_hw_timer_init(void)
-{
- XScuTimer_Config *cfg;
- s32 err;
-
- cfg = XScuTimer_LookupConfig(TIMER_DEVICE_ID);
- RT_ASSERT(cfg);
-
- err = XScuTimer_CfgInitialize(&timer, cfg, cfg->BaseAddr);
- RT_ASSERT(err == XST_SUCCESS);
-
- err = XScuTimer_SelfTest(&timer);
- RT_ASSERT(err == XST_SUCCESS);
-
- rt_hw_interrupt_install(TIMER_IRPT_INTR, rt_hw_timer_isr, RT_NULL, "tick");
- rt_hw_interrupt_umask(TIMER_IRPT_INTR);
- XScuTimer_EnableInterrupt(&timer);
-
- XScuTimer_LoadTimer(&timer, APU_FREQ/2/RT_TICK_PER_SECOND);
- XScuTimer_EnableAutoReload(&timer);
-
- XScuTimer_Start(&timer);
-
- return 0;
-}
-INIT_BOARD_EXPORT(rt_hw_timer_init);
diff --git a/bsp/zynq/zynq7000/drivers/drv_uart.c b/bsp/zynq/zynq7000/drivers/drv_uart.c
deleted file mode 100644
index 3db11b146d..0000000000
--- a/bsp/zynq/zynq7000/drivers/drv_uart.c
+++ /dev/null
@@ -1,277 +0,0 @@
-#include "stdio.h"
-#include "xparameters.h"
-#include "xscugic.h"
-#include "xuartps.h"
-
-#include "board.h"
-#include <rtdevice.h>
-#include <rthw.h>
-
-struct hw_uart_device
-{
- XUartPs uart;
- rt_uint32_t irqno;
- uint16_t dev_id;
- u32 base_addr;
- rt_bool_t inited;
-};
-
-#ifdef BSP_USING_UART0
-static struct hw_uart_device _uart_device0 = {
- .dev_id = XPAR_PS7_UART_0_DEVICE_ID,
- .irqno = XPAR_XUARTPS_0_INTR,
- .base_addr = XPAR_PS7_UART_0_BASEADDR,
- .inited = RT_FALSE,
-};
-#endif
-
-#ifdef BSP_USING_UART1
-static struct hw_uart_device _uart_device1 = {
- .dev_id = XPAR_PS7_UART_1_DEVICE_ID,
- .irqno = XPAR_XUARTPS_1_INTR,
- .base_addr = XPAR_PS7_UART_1_BASEADDR,
- .inited = RT_FALSE,
-};
-#endif
-
-rt_inline rt_err_t _uart_init(struct hw_uart_device *device)
-{
- XUartPs_Config *uart_cfg = XUartPs_LookupConfig(device->dev_id);
- if (NULL == uart_cfg)
- return XST_FAILURE;
- int status = XUartPs_CfgInitialize(&device->uart, uart_cfg,
- uart_cfg->BaseAddress);
- if (status != XST_SUCCESS)
- return XST_FAILURE;
-
- status = XUartPs_SelfTest(&device->uart);
- if (status != XST_SUCCESS)
- return XST_FAILURE;
-
- XUartPs_SetOperMode(&device->uart, XUARTPS_OPER_MODE_NORMAL);
-
- XUartPs_SetFifoThreshold(&device->uart, 1);
-
- return RT_EOK;
-}
-
-rt_inline void _uart_set_fmt(struct hw_uart_device *device,
- struct serial_configure *cfg)
-{
- XUartPsFormat uart_format;
- uart_format.BaudRate = cfg->baud_rate;
- switch (cfg->data_bits)
- {
- case 7:
- uart_format.DataBits = XUARTPS_FORMAT_7_BITS;
- break;
- case 6:
- uart_format.DataBits = XUARTPS_FORMAT_6_BITS;
- break;
- default: /* 8 */
- uart_format.DataBits = XUARTPS_FORMAT_8_BITS;
- break;
- }
- // cfg->bit_order ?
- switch (cfg->parity)
- {
- case PARITY_ODD:
- uart_format.Parity = XUARTPS_FORMAT_ODD_PARITY;
- break;
- case PARITY_EVEN:
- uart_format.Parity = XUARTPS_FORMAT_EVEN_PARITY;
- break;
- default: /** None */
- uart_format.Parity = XUARTPS_FORMAT_NO_PARITY;
- break;
- }
- switch (cfg->stop_bits)
- {
- case STOP_BITS_2:
- uart_format.StopBits = XUARTPS_FORMAT_2_STOP_BIT;
- break;
- default:
- uart_format.StopBits = XUARTPS_FORMAT_1_STOP_BIT;
- break;
- }
-
- XUartPs_SetDataFormat(&device->uart, &uart_format);
-}
-
-static rt_err_t uart_configure(struct rt_serial_device *serial,
- struct serial_configure *cfg)
-{
- RT_ASSERT(serial != RT_NULL);
- RT_ASSERT(cfg != RT_NULL);
- struct hw_uart_device *device
- = (struct hw_uart_device *)serial->parent.user_data;
- RT_ASSERT(device != RT_NULL);
-
- if (!device->inited)
- {
- int err = _uart_init(device);
- if (err != RT_EOK)
- return err;
-
- device->inited = RT_TRUE;
- }
-
- _uart_set_fmt(device, cfg);
-
- return RT_EOK;
-}
-
-static void rt_hw_uart_isr(int irqno, void *param)
-{
- struct rt_serial_device *serial = (struct rt_serial_device *)param;
- struct hw_uart_device *device
- = (struct hw_uart_device *)serial->parent.user_data;
-
- u32 isr_status;
-
- isr_status
- = XUartPs_ReadReg(device->uart.Config.BaseAddress, XUARTPS_IMR_OFFSET);
- isr_status &= XUartPs_ReadReg(device->uart.Config.BaseAddress,
- XUARTPS_ISR_OFFSET);
-
- if (isr_status & (u32)XUARTPS_IXR_RXOVR)
- {
- XUartPs_WriteReg(device->uart.Config.BaseAddress, XUARTPS_ISR_OFFSET,
- XUARTPS_IXR_RXOVR);
- }
-
- rt_hw_serial_isr(serial, RT_SERIAL_EVENT_RX_IND);
-}
-
-static rt_err_t
-uart_control(struct rt_serial_device *serial, int cmd, void *arg)
-{
- struct hw_uart_device *pdev;
-
- RT_ASSERT(serial != RT_NULL);
-
- pdev = serial->parent.user_data;
-
- switch (cmd)
- {
- case RT_DEVICE_CTRL_CLR_INT:
- break;
-
- case RT_DEVICE_CTRL_SET_INT:
- rt_hw_interrupt_install(pdev->irqno, rt_hw_uart_isr, (void *)serial,
- serial->parent.parent.name);
- rt_hw_interrupt_umask(pdev->irqno);
-
- XUartPs_SetInterruptMask(&pdev->uart, XUARTPS_IXR_RXOVR);
- break;
- }
-
- return RT_EOK;
-}
-
-static int uart_putc(struct rt_serial_device *serial, char c)
-{
- struct hw_uart_device *dev;
-
- RT_ASSERT(serial != RT_NULL);
- dev = (struct hw_uart_device *)serial->parent.user_data;
- RT_ASSERT(dev != RT_NULL);
-
- XUartPs_SendByte(dev->base_addr, c);
-
- return 1;
-}
-
-static int uart_getc(struct rt_serial_device *serial)
-{
- struct hw_uart_device *dev;
-
- RT_ASSERT(serial != RT_NULL);
- dev = (struct hw_uart_device *)serial->parent.user_data;
-
- u32 RecievedByte;
- if (!XUartPs_IsReceiveData(dev->base_addr))
- {
- return -1;
- }
-
- RecievedByte = XUartPs_ReadReg(dev->base_addr, XUARTPS_FIFO_OFFSET);
- /* Return the byte received */
- return RecievedByte;
-}
-
-#ifdef RT_SERIAL_USING_DMA
-static rt_ssize_t dma_transmit(struct rt_serial_device *serial,
- rt_uint8_t *buf,
- rt_size_t size,
- int direction)
-{
- RT_ASSERT(serial != RT_NULL);
- struct hw_uart_device *dev
- = (struct hw_uart_device *)serial->parent.user_data;
- RT_ASSERT(dev != RT_NULL);
-
- for (int i = 0; i < size; i++)
- XUartPs_SendByte(dev->base_addr, buf[i]);
- rt_hw_serial_isr(serial, RT_SERIAL_EVENT_TX_DMADONE);
-
- return size;
-}
-#endif
-
-static const struct rt_uart_ops _uart_ops = {
- uart_configure,
- uart_control,
- uart_putc,
- uart_getc,
-#ifdef RT_SERIAL_USING_DMA
- dma_transmit,
-#endif
-};
-
-#include "rtthread.h"
-
-#ifdef BSP_USING_UART0
-static struct rt_serial_device _serial0;
-#endif
-
-#ifdef BSP_USING_UART1
-static struct rt_serial_device _serial1;
-#endif
-
-int rt_hw_uart_init(void)
-{
- struct serial_configure config;
-
- config.baud_rate = BAUD_RATE_115200;
- config.bit_order = BIT_ORDER_LSB;
- config.data_bits = DATA_BITS_8;
- config.parity = PARITY_NONE;
- config.stop_bits = STOP_BITS_1;
- config.invert = NRZ_NORMAL;
- config.bufsz = RT_SERIAL_RB_BUFSZ;
-
-#ifdef BSP_USING_UART0
- _serial0.ops = &_uart_ops;
- _serial0.config = config;
-
- /* register uart device */
- rt_hw_serial_register(&_serial0, "uart0",
- RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX
- | RT_DEVICE_FLAG_DMA_TX,
- &_uart_device0);
-#endif
-
-#ifdef BSP_USING_UART1
- _serial1.ops = &_uart_ops;
- _serial1.config = config;
-
- rt_hw_serial_register(&_serial1, "uart1",
- RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX
- | RT_DEVICE_FLAG_DMA_TX,
- &_uart_device1);
-#endif
-
- return 0;
-}
-INIT_BOARD_EXPORT(rt_hw_uart_init);
diff --git a/bsp/zynq/zynq7000/drivers/fal_cfg.h b/bsp/zynq/zynq7000/drivers/fal_cfg.h
deleted file mode 100644
index f98bd61a71..0000000000
--- a/bsp/zynq/zynq7000/drivers/fal_cfg.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (c) 2006-2018, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2018-05-17 armink the first version
- */
-
-#ifndef _FAL_CFG_H_
-#define _FAL_CFG_H_
-
-#include <rtconfig.h>
-
-/* ===================== Flash device Configuration ========================= */
-extern const struct fal_flash_dev spi_flash;
-
-/* flash device table */
-#define FAL_FLASH_DEV_TABLE \
-{ \
- &spi_flash, \
-}
-
-/* ====================== Partition Configuration ========================== */
-#ifdef FAL_PART_HAS_TABLE_CFG
-/* partition table */
-#define FAL_PART_TABLE \
-{ \
- {FAL_PART_MAGIC_WORD, "golden", "spi_flash", 0, 8*1024*1024, 0}, \
- {FAL_PART_MAGIC_WORD, "app", "spi_flash", 8*1024*1024, 8*1024*1024, 0}, \
- {FAL_PART_MAGIC_WORD, "data", "spi_flash", 16*1024*1024, 8*1024*1024, 0}, \
-}
-#endif /* FAL_PART_HAS_TABLE_CFG */
-
-#endif /* _FAL_CFG_H_ */
diff --git a/bsp/zynq/zynq7000/figures/board.jpg b/bsp/zynq/zynq7000/figures/board.jpg
deleted file mode 100644
index 7dc6aaafe8..0000000000
--- a/bsp/zynq/zynq7000/figures/board.jpg
+++ /dev/null
Binary files differ
diff --git a/bsp/zynq/zynq7000/figures/step_2.png b/bsp/zynq/zynq7000/figures/step_2.png
deleted file mode 100644
index 78932239c6..0000000000
--- a/bsp/zynq/zynq7000/figures/step_2.png
+++ /dev/null
Binary files differ
diff --git a/bsp/zynq/zynq7000/figures/step_3.png b/bsp/zynq/zynq7000/figures/step_3.png
deleted file mode 100644
index c97d8c73ae..0000000000
--- a/bsp/zynq/zynq7000/figures/step_3.png
+++ /dev/null
Binary files differ
diff --git a/bsp/zynq/zynq7000/figures/step_4.png b/bsp/zynq/zynq7000/figures/step_4.png
deleted file mode 100644
index e8caddfc2d..0000000000
--- a/bsp/zynq/zynq7000/figures/step_4.png
+++ /dev/null
Binary files differ
diff --git a/bsp/zynq/zynq7000/figures/step_5.png b/bsp/zynq/zynq7000/figures/step_5.png
deleted file mode 100644
index 682b20a204..0000000000
--- a/bsp/zynq/zynq7000/figures/step_5.png
+++ /dev/null
Binary files differ
diff --git a/bsp/zynq/zynq7000/figures/step_6.png b/bsp/zynq/zynq7000/figures/step_6.png
deleted file mode 100644
index 7866e6925b..0000000000
--- a/bsp/zynq/zynq7000/figures/step_6.png
+++ /dev/null
Binary files differ
diff --git a/bsp/zynq/zynq7000/figures/step_7.png b/bsp/zynq/zynq7000/figures/step_7.png
deleted file mode 100644
index 8018bc47e0..0000000000
--- a/bsp/zynq/zynq7000/figures/step_7.png
+++ /dev/null
Binary files differ
diff --git a/bsp/zynq/zynq7000/figures/step_8.png b/bsp/zynq/zynq7000/figures/step_8.png
deleted file mode 100644
index 0bc365b48d..0000000000
--- a/bsp/zynq/zynq7000/figures/step_8.png
+++ /dev/null
Binary files differ
diff --git a/bsp/zynq/zynq7000/figures/step_9.png b/bsp/zynq/zynq7000/figures/step_9.png
deleted file mode 100644
index 1b6ffe475d..0000000000
--- a/bsp/zynq/zynq7000/figures/step_9.png
+++ /dev/null
Binary files differ
diff --git a/bsp/zynq/zynq7000/figures/step_9_1.png b/bsp/zynq/zynq7000/figures/step_9_1.png
deleted file mode 100644
index eb214c3a27..0000000000
--- a/bsp/zynq/zynq7000/figures/step_9_1.png
+++ /dev/null
Binary files differ
diff --git a/bsp/zynq/zynq7000/lscript.ld b/bsp/zynq/zynq7000/lscript.ld
deleted file mode 100644
index 574ebde4b5..0000000000
--- a/bsp/zynq/zynq7000/lscript.ld
+++ /dev/null
@@ -1,312 +0,0 @@
-/*******************************************************************/
-/* */
-/* This file is automatically generated by linker script generator.*/
-/* */
-/* Version: 2018.3 */
-/* */
-/* Copyright (c) 2010-2016 Xilinx, Inc. All rights reserved. */
-/* */
-/* Description : Cortex-A9 Linker Script */
-/* */
-/*******************************************************************/
-
-_STACK_SIZE = DEFINED(_STACK_SIZE) ? _STACK_SIZE : 0x2000;
-_HEAP_SIZE = DEFINED(_HEAP_SIZE) ? _HEAP_SIZE : 0x2000;
-
-_ABORT_STACK_SIZE = DEFINED(_ABORT_STACK_SIZE) ? _ABORT_STACK_SIZE : 1024;
-_SUPERVISOR_STACK_SIZE = DEFINED(_SUPERVISOR_STACK_SIZE) ? _SUPERVISOR_STACK_SIZE : 2048;
-_IRQ_STACK_SIZE = DEFINED(_IRQ_STACK_SIZE) ? _IRQ_STACK_SIZE : 1024;
-_FIQ_STACK_SIZE = DEFINED(_FIQ_STACK_SIZE) ? _FIQ_STACK_SIZE : 1024;
-_UNDEF_STACK_SIZE = DEFINED(_UNDEF_STACK_SIZE) ? _UNDEF_STACK_SIZE : 1024;
-
-/* Define Memories in the system */
-
-MEMORY
-{
- ps7_ddr_0 : ORIGIN = 0x100000, LENGTH = 0x20000000
- ps7_qspi_linear_0 : ORIGIN = 0xFC000000, LENGTH = 0x1000000
- ps7_ram_0 : ORIGIN = 0x0, LENGTH = 0x30000
- ps7_ram_1 : ORIGIN = 0xFFFF0000, LENGTH = 0xFE00
-}
-
-/* Specify the default entry point to the program */
-
-ENTRY(_reset)
-
-/* Define the sections, and where they are mapped in memory */
-
-SECTIONS
-{
-.text : {
- __text_start = .;
- KEEP (*(.vectors))
- *(.boot)
- *(.text)
- *(.text.*)
-
- /* section information for finsh shell */
- . = ALIGN(4);
- __fsymtab_start = .;
- KEEP(*(FSymTab))
- __fsymtab_end = .;
- . = ALIGN(4);
- __vsymtab_start = .;
- KEEP(*(VSymTab))
- __vsymtab_end = .;
- . = ALIGN(4);
-
- /* section information for modules */
- . = ALIGN(4);
- __rtmsymtab_start = .;
- KEEP(*(RTMSymTab))
- __rtmsymtab_end = .;
-
- /* section information for initialization */
- . = ALIGN(4);
- __rt_init_start = .;
- KEEP(*(SORT(.rti_fn*)))
- __rt_init_end = .;
-
- *(.gnu.linkonce.t.*)
- *(.plt)
- *(.gnu_warning)
- *(.gcc_execpt_table)
- *(.glue_7)
- *(.glue_7t)
- *(.vfp11_veneer)
- *(.ARM.extab)
- *(.gnu.linkonce.armextab.*)
-} > ps7_ddr_0
-
-.init : {
- KEEP (*(.init))
-} > ps7_ddr_0
-
-.fini : {
- KEEP (*(.fini))
-} > ps7_ddr_0
-
-.rodata : {
- __rodata_start = .;
- *(.rodata)
- *(.rodata.*)
- *(.gnu.linkonce.r.*)
- __rodata_end = .;
-} > ps7_ddr_0
-
-.rodata1 : {
- __rodata1_start = .;
- *(.rodata1)
- *(.rodata1.*)
- __rodata1_end = .;
-} > ps7_ddr_0
-
-.sdata2 : {
- __sdata2_start = .;
- *(.sdata2)
- *(.sdata2.*)
- *(.gnu.linkonce.s2.*)
- __sdata2_end = .;
-} > ps7_ddr_0
-
-.sbss2 : {
- __sbss2_start = .;
- *(.sbss2)
- *(.sbss2.*)
- *(.gnu.linkonce.sb2.*)
- __sbss2_end = .;
-} > ps7_ddr_0
-
-.data : {
- __data_start = .;
- *(.data)
- *(.data.*)
- *(.gnu.linkonce.d.*)
- *(.jcr)
- *(.got)
- *(.got.plt)
- __data_end = .;
-} > ps7_ddr_0
-
-.data1 : {
- __data1_start = .;
- *(.data1)
- *(.data1.*)
- __data1_end = .;
-} > ps7_ddr_0
-
-.got : {
- *(.got)
-} > ps7_ddr_0
-
-.ctors : {
- PROVIDE(__ctors_start__ = .);
- KEEP(*(SORT(.ctors.*)))
- KEEP(*(.ctors))
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array))
- PROVIDE(__ctors_end__ = .);
-} > ps7_ddr_0
-
-.dtors : {
- __DTOR_LIST__ = .;
- ___DTORS_LIST___ = .;
- KEEP (*crtbegin.o(.dtors))
- KEEP (*(EXCLUDE_FILE(*crtend.o) .dtors))
- KEEP (*(SORT(.dtors.*)))
- KEEP (*(.dtors))
- __DTOR_END__ = .;
- ___DTORS_END___ = .;
-} > ps7_ddr_0
-
-.fixup : {
- __fixup_start = .;
- *(.fixup)
- __fixup_end = .;
-} > ps7_ddr_0
-
-.eh_frame : {
- *(.eh_frame)
-} > ps7_ddr_0
-
-.eh_framehdr : {
- __eh_framehdr_start = .;
- *(.eh_framehdr)
- __eh_framehdr_end = .;
-} > ps7_ddr_0
-
-.gcc_except_table : {
- *(.gcc_except_table)
-} > ps7_ddr_0
-
-.mmu_tbl (ALIGN(16384)) : {
- __mmu_tbl_start = .;
- *(.mmu_tbl)
- __mmu_tbl_end = .;
-} > ps7_ddr_0
-
-.ARM.exidx : {
- __exidx_start = .;
- *(.ARM.exidx*)
- *(.gnu.linkonce.armexidix.*.*)
- __exidx_end = .;
-} > ps7_ddr_0
-
-.preinit_array : {
- __preinit_array_start = .;
- KEEP (*(SORT(.preinit_array.*)))
- KEEP (*(.preinit_array))
- __preinit_array_end = .;
-} > ps7_ddr_0
-
-.init_array : {
- __init_array_start = .;
- KEEP (*(SORT(.init_array.*)))
- KEEP (*(.init_array))
- __init_array_end = .;
-} > ps7_ddr_0
-
-.fini_array : {
- __fini_array_start = .;
- KEEP (*(SORT(.fini_array.*)))
- KEEP (*(.fini_array))
- __fini_array_end = .;
-} > ps7_ddr_0
-
-.ARM.attributes : {
- __ARM.attributes_start = .;
- *(.ARM.attributes)
- __ARM.attributes_end = .;
-} > ps7_ddr_0
-
-.sdata : {
- __sdata_start = .;
- *(.sdata)
- *(.sdata.*)
- *(.gnu.linkonce.s.*)
- __sdata_end = .;
-} > ps7_ddr_0
-
-.sbss (NOLOAD) : {
- __sbss_start = .;
- *(.sbss)
- *(.sbss.*)
- *(.gnu.linkonce.sb.*)
- __sbss_end = .;
-} > ps7_ddr_0
-
-.tdata : {
- __tdata_start = .;
- *(.tdata)
- *(.tdata.*)
- *(.gnu.linkonce.td.*)
- __tdata_end = .;
-} > ps7_ddr_0
-
-.tbss : {
- __tbss_start = .;
- *(.tbss)
- *(.tbss.*)
- *(.gnu.linkonce.tb.*)
- __tbss_end = .;
-} > ps7_ddr_0
-
-.bss (NOLOAD) : {
- __bss_start = .;
- *(.bss)
- *(.bss.*)
- *(.gnu.linkonce.b.*)
- *(COMMON)
- __bss_end = .;
- _exit = .;
-} > ps7_ddr_0
-
-_SDA_BASE_ = __sdata_start + ((__sbss_end - __sdata_start) / 2 );
-
-_SDA2_BASE_ = __sdata2_start + ((__sbss2_end - __sdata2_start) / 2 );
-
-/* Generate Stack and Heap definitions */
-
-.heap (NOLOAD) : {
- . = ALIGN(16);
- _heap = .;
- HeapBase = .;
- _heap_start = .;
- . += _HEAP_SIZE;
- _heap_end = .;
- HeapLimit = .;
-} > ps7_ddr_0
-
-.stack (NOLOAD) : {
- . = ALIGN(16);
- _stack_end = .;
- . += _STACK_SIZE;
- . = ALIGN(16);
- _stack = .;
- __stack = _stack;
- . = ALIGN(16);
- _irq_stack_end = .;
- . += _IRQ_STACK_SIZE;
- . = ALIGN(16);
- __irq_stack = .;
- _supervisor_stack_end = .;
- . += _SUPERVISOR_STACK_SIZE;
- . = ALIGN(16);
- __supervisor_stack = .;
- _abort_stack_end = .;
- . += _ABORT_STACK_SIZE;
- . = ALIGN(16);
- __abort_stack = .;
- _fiq_stack_end = .;
- . += _FIQ_STACK_SIZE;
- . = ALIGN(16);
- __fiq_stack = .;
- _undef_stack_end = .;
- . += _UNDEF_STACK_SIZE;
- . = ALIGN(16);
- __undef_stack = .;
-} > ps7_ddr_0
-
-_end = .;
-}
-
diff --git a/bsp/zynq/zynq7000/rtconfig.h b/bsp/zynq/zynq7000/rtconfig.h
deleted file mode 100644
index 6cde74bde6..0000000000
--- a/bsp/zynq/zynq7000/rtconfig.h
+++ /dev/null
@@ -1,263 +0,0 @@
-#ifndef RT_CONFIG_H__
-#define RT_CONFIG_H__
-
-/* Automatically generated file; DO NOT EDIT. */
-/* RT-Thread Project Configuration */
-
-/* RT-Thread Kernel */
-
-#define RT_NAME_MAX 8
-#define RT_ALIGN_SIZE 8
-#define RT_THREAD_PRIORITY_32
-#define RT_THREAD_PRIORITY_MAX 32
-#define RT_TICK_PER_SECOND 1000
-#define RT_USING_OVERFLOW_CHECK
-#define RT_USING_HOOK
-#define RT_HOOK_USING_FUNC_PTR
-#define RT_USING_IDLE_HOOK
-#define RT_IDLE_HOOK_LIST_SIZE 4
-#define IDLE_THREAD_STACK_SIZE 256
-#define RT_USING_TIMER_SOFT
-#define RT_TIMER_THREAD_PRIO 4
-#define RT_TIMER_THREAD_STACK_SIZE 512
-
-/* kservice optimization */
-
-#define RT_KSERVICE_USING_STDLIB
-#define RT_USING_DEBUG
-#define RT_DEBUGING_COLOR
-#define RT_DEBUGING_CONTEXT
-#define RT_DEBUGING_INIT
-
-/* Inter-Thread communication */
-
-#define RT_USING_SEMAPHORE
-#define RT_USING_MUTEX
-#define RT_USING_EVENT
-#define RT_USING_MAILBOX
-#define RT_USING_MESSAGEQUEUE
-
-/* Memory Management */
-
-#define RT_PAGE_MAX_ORDER 11
-#define RT_USING_MEMPOOL
-#define RT_USING_SMALL_MEM
-#define RT_USING_SMALL_MEM_AS_HEAP
-#define RT_USING_HEAP
-
-/* Kernel Device Object */
-
-#define RT_USING_DEVICE
-#define RT_USING_CONSOLE
-#define RT_CONSOLEBUF_SIZE 128
-#define RT_CONSOLE_DEVICE_NAME "uart0"
-#define RT_VER_NUM 0x50001
-#define RT_USING_CACHE
-#define RT_USING_HW_ATOMIC
-#define RT_USING_CPU_FFS
-#define ARCH_MM_MMU
-#define ARCH_ARM
-#define ARCH_ARM_MMU
-#define ARCH_ARM_CORTEX_A
-#define RT_USING_GIC_V2
-#define ARCH_ARM_CORTEX_A9
-
-/* RT-Thread Components */
-
-#define RT_USING_COMPONENTS_INIT
-#define RT_USING_USER_MAIN
-#define RT_MAIN_THREAD_STACK_SIZE 2048
-#define RT_MAIN_THREAD_PRIORITY 10
-#define RT_USING_MSH
-#define RT_USING_FINSH
-#define FINSH_USING_MSH
-#define FINSH_THREAD_NAME "tshell"
-#define FINSH_THREAD_PRIORITY 20
-#define FINSH_THREAD_STACK_SIZE 4096
-#define FINSH_USING_HISTORY
-#define FINSH_HISTORY_LINES 5
-#define FINSH_USING_SYMTAB
-#define FINSH_CMD_SIZE 80
-#define MSH_USING_BUILT_IN_COMMANDS
-#define FINSH_USING_DESCRIPTION
-#define FINSH_ARG_MAX 10
-
-/* DFS: device virtual file system */
-
-#define RT_USING_DFS
-#define DFS_USING_POSIX
-#define DFS_USING_WORKDIR
-#define DFS_FD_MAX 16
-#define RT_USING_DFS_V1
-#define DFS_FILESYSTEMS_MAX 4
-#define DFS_FILESYSTEM_TYPES_MAX 4
-#define RT_USING_DFS_DEVFS
-
-/* Device Drivers */
-
-#define RT_USING_DEVICE_IPC
-#define RT_UNAMED_PIPE_NUMBER 64
-#define RT_USING_SERIAL
-#define RT_USING_SERIAL_V1
-#define RT_SERIAL_USING_DMA
-#define RT_SERIAL_RB_BUFSZ 64
-#define RT_USING_PIN
-
-/* Using USB */
-
-
-/* C/C++ and POSIX layer */
-
-#define RT_LIBC_DEFAULT_TIMEZONE 8
-
-/* POSIX (Portable Operating System Interface) layer */
-
-
-/* Interprocess Communication (IPC) */
-
-
-/* Socket is in the 'Network' category */
-
-
-/* Network */
-
-
-/* Utilities */
-
-#define RT_USING_ADT
-#define RT_USING_ADT_AVL
-#define RT_USING_ADT_BITMAP
-#define RT_USING_ADT_HASHMAP
-#define RT_USING_ADT_REF
-
-/* RT-Thread Utestcases */
-
-
-/* Hardware Drivers Config */
-
-/* On-chip Peripheral Drivers */
-
-#define BSP_USING_GPIO
-#define BSP_USING_UART
-#define BSP_USING_UART0
-#define SOC_ZYNQ_7000
-#define RT_USING_FPU
-
-/* RT-Thread online packages */
-
-/* IoT - internet of things */
-
-
-/* Wi-Fi */
-
-/* Marvell WiFi */
-
-
-/* Wiced WiFi */
-
-
-/* CYW43012 WiFi */
-
-
-/* IoT Cloud */
-
-
-/* security packages */
-
-
-/* language packages */
-
-/* JSON: JavaScript Object Notation, a lightweight data-interchange format */
-
-
-/* XML: Extensible Markup Language */
-
-
-/* multimedia packages */
-
-/* LVGL: powerful and easy-to-use embedded GUI library */
-
-
-/* u8g2: a monochrome graphic library */
-
-
-/* tools packages */
-
-
-/* system packages */
-
-/* enhanced kernel services */
-
-
-/* acceleration: Assembly language or algorithmic acceleration packages */
-
-
-/* CMSIS: ARM Cortex-M Microcontroller Software Interface Standard */
-
-
-/* Micrium: Micrium software products porting for RT-Thread */
-
-
-/* peripheral libraries and drivers */
-
-/* sensors drivers */
-
-
-/* touch drivers */
-
-
-/* Kendryte SDK */
-
-
-/* AI packages */
-
-
-/* Signal Processing and Control Algorithm Packages */
-
-
-/* miscellaneous packages */
-
-/* project laboratory */
-
-/* samples: kernel and components samples */
-
-
-/* entertainment: terminal games and other interesting software packages */
-
-
-/* Arduino libraries */
-
-
-/* Projects and Demos */
-
-
-/* Sensors */
-
-
-/* Display */
-
-
-/* Timing */
-
-
-/* Data Processing */
-
-
-/* Data Storage */
-
-/* Communication */
-
-
-/* Device Control */
-
-
-/* Other */
-
-
-/* Signal IO */
-
-
-/* Uncategorized */
-
-
-#endif
diff --git a/bsp/zynq/zynq7000/rtconfig.py b/bsp/zynq/zynq7000/rtconfig.py
deleted file mode 100644
index 248cabf201..0000000000
--- a/bsp/zynq/zynq7000/rtconfig.py
+++ /dev/null
@@ -1,59 +0,0 @@
-import os
-
-# toolchains options
-ARCH='arm'
-CPU='cortex-a'
-CROSS_TOOL='gcc'
-
-if os.getenv('RTT_CC'):
- CROSS_TOOL = os.getenv('RTT_CC')
-
-# only support GNU GCC compiler
-PLATFORM = 'gcc'
-EXEC_PATH = '/opt/arm-none-eabi-gcc'
-
-if os.getenv('RTT_EXEC_PATH'):
- EXEC_PATH = os.getenv('RTT_EXEC_PATH')
-
-# BUILD = 'relsase'
-BUILD = 'debug'
-if os.getenv('RTT_BUILD_TYPE'):
- BUILD = os.getenv('RTT_BUILD_TYPE')
-
-if PLATFORM == 'gcc':
- # toolchains
- PREFIX = 'arm-none-eabi-'
- CC = PREFIX + 'gcc'
- CXX = PREFIX + 'g++'
- AS = PREFIX + 'gcc'
- AR = PREFIX + 'ar'
- LINK = PREFIX + 'gcc'
- TARGET_EXT = 'elf'
- SIZE = PREFIX + 'size'
- OBJDUMP = PREFIX + 'objdump'
- OBJCPY = PREFIX + 'objcopy'
- STRIP = PREFIX + 'strip'
- DEVICE = ' -Wall -Werror -mcpu=cortex-a9 -mfloat-abi=hard -mfpu=vfpv3 -ffunction-sections -fdata-sections -funwind-tables '
- CFLAGS = DEVICE
- AFLAGS = ' -c -fmessage-length=0' + DEVICE + ' -x assembler-with-cpp -D__ASSEMBLY__ -I. '
- LINK_SCRIPT = 'lscript.ld'
- LFLAGS = DEVICE + ' -Wl,-Map=zynq7000.map,--gc-sections,-build-id=none -specs=Xilinx.spec -Wl,-T -Wl,%s' % LINK_SCRIPT
- CXXFLAGS = DEVICE + ' -std=gnu++11 -Woverloaded-virtual -fno-exceptions -fno-rtti'
-
- CPATH = ''
- LPATH = ''
-
- M_CFLAGS = CFLAGS + ' -mlong-calls -fPIC '
- M_CXXFLAGS = CXXFLAGS + ' -mlong-calls -fPIC'
- M_LFLAGS = DEVICE + CXXFLAGS + ' -Wl,--gc-sections,-z,max-page-size=0x4' +\
- ' -shared -fPIC -nostartfiles -nostdlib -static-libgcc'
- M_POST_ACTION = STRIP + ' -R .hash $TARGET\n' + SIZE + ' $TARGET \n'
-
- if BUILD == 'debug':
- CFLAGS += ' -O0 -gdwarf-2'
- AFLAGS += ' -gdwarf-2'
- else:
- CFLAGS += ' -O3'
-
- POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' +\
- SIZE + ' $TARGET \n'