diff --git a/bsp/k230/.config b/bsp/k230/.config index 3e1126a375b3..180bcd79b1fb 100644 --- a/bsp/k230/.config +++ b/bsp/k230/.config @@ -116,7 +116,7 @@ CONFIG_RT_KLIBC_USING_VSNPRINTF_LOG10_TAYLOR_TERMS=4 # end of rt_strnlen options # end of klibc options -CONFIG_RT_NAME_MAX=16 +CONFIG_RT_NAME_MAX=32 # CONFIG_RT_USING_ARCH_DATA_TYPE is not set # CONFIG_RT_USING_NANO is not set CONFIG_RT_USING_SMART=y @@ -193,7 +193,7 @@ CONFIG_RT_USING_CONSOLE=y CONFIG_RT_CONSOLEBUF_SIZE=256 CONFIG_RT_CONSOLE_DEVICE_NAME="uart0" CONFIG_RT_USING_CONSOLE_OUTPUT_CTL=y -CONFIG_RT_VER_NUM=0x50300 +CONFIG_RT_VER_NUM=0x50400 CONFIG_RT_USING_STDC_ATOMIC=y CONFIG_RT_BACKTRACE_LEVEL_MAX_NR=32 # end of RT-Thread Kernel @@ -204,16 +204,16 @@ CONFIG_ARCH_MM_MMU=y CONFIG_KERNEL_VADDR_START=0xffffffc000000000 CONFIG_ARCH_RISCV=y CONFIG_ARCH_RISCV_FPU=y -CONFIG_ARCH_RISCV_VECTOR=y -CONFIG_ARCH_VECTOR_VLEN_128=y -# CONFIG_ARCH_VECTOR_VLEN_256 is not set -# CONFIG_ARCH_VECTOR_VLEN_512 is not set -# CONFIG_ARCH_VECTOR_VLEN_1024 is not set -# CONFIG_ARCH_VECTOR_VLEN_2048 is not set -# CONFIG_ARCH_VECTOR_VLEN_4096 is not set -CONFIG_ARCH_RISCV_FPU_D=y CONFIG_ARCH_RISCV64=y +CONFIG_ARCH_RISCV_XUANTIE=y + +# +# RISC-V Architecture Configuration +# +# end of RISC-V Architecture Configuration + CONFIG_ARCH_USING_NEW_CTX_SWITCH=y +CONFIG_CONFIG_XUANTIE_SVPBMT=1 CONFIG_ARCH_REMAP_KERNEL=y # @@ -250,40 +250,6 @@ CONFIG_RT_USING_DFS=y CONFIG_DFS_USING_POSIX=y CONFIG_DFS_USING_WORKDIR=y CONFIG_DFS_FD_MAX=16 -CONFIG_RT_USING_DFS_V2=y -CONFIG_RT_USING_DFS_ELMFAT=y - -# -# elm-chan's FatFs, Generic FAT Filesystem Module -# -CONFIG_RT_DFS_ELM_CODE_PAGE=437 -CONFIG_RT_DFS_ELM_WORD_ACCESS=y -# CONFIG_RT_DFS_ELM_USE_LFN_0 is not set -# CONFIG_RT_DFS_ELM_USE_LFN_1 is not set -# CONFIG_RT_DFS_ELM_USE_LFN_2 is not set -CONFIG_RT_DFS_ELM_USE_LFN_3=y -CONFIG_RT_DFS_ELM_USE_LFN=3 -CONFIG_RT_DFS_ELM_LFN_UNICODE_0=y -# CONFIG_RT_DFS_ELM_LFN_UNICODE_1 is not set -# CONFIG_RT_DFS_ELM_LFN_UNICODE_2 is not set -# CONFIG_RT_DFS_ELM_LFN_UNICODE_3 is not set -CONFIG_RT_DFS_ELM_LFN_UNICODE=0 -CONFIG_RT_DFS_ELM_MAX_LFN=255 -CONFIG_RT_DFS_ELM_DRIVES=2 -CONFIG_RT_DFS_ELM_MAX_SECTOR_SIZE=512 -# CONFIG_RT_DFS_ELM_USE_ERASE is not set -CONFIG_RT_DFS_ELM_REENTRANT=y -CONFIG_RT_DFS_ELM_MUTEX_TIMEOUT=3000 -# CONFIG_RT_DFS_ELM_USE_EXFAT is not set -# end of elm-chan's FatFs, Generic FAT Filesystem Module - -CONFIG_RT_USING_DFS_DEVFS=y -# CONFIG_RT_USING_DFS_ROMFS is not set -CONFIG_RT_USING_DFS_PTYFS=y -# CONFIG_RT_USING_DFS_PROCFS is not set -CONFIG_RT_USING_DFS_CROMFS=y -CONFIG_RT_USING_DFS_TMPFS=y -# CONFIG_RT_USING_DFS_MQUEUE is not set CONFIG_RT_USING_PAGECACHE=y # @@ -317,12 +283,13 @@ CONFIG_RT_SERIAL_USING_DMA=y CONFIG_RT_SERIAL_RB_BUFSZ=64 CONFIG_RT_USING_SERIAL_BYPASS=y # CONFIG_RT_USING_CAN is not set +# CONFIG_RT_USING_ADC is not set CONFIG_RT_USING_CLOCK_TIME=y -CONFIG_CLOCK_TIMER_FREQ=0 +# CONFIG_RT_USING_CLOCK_TIMER_TRIGGER is not set +CONFIG_CLOCK_TIMER_FREQ=25000000 # CONFIG_RT_USING_I2C is not set # CONFIG_RT_USING_PHY is not set # CONFIG_RT_USING_PHY_V2 is not set -# CONFIG_RT_USING_ADC is not set # CONFIG_RT_USING_DAC is not set CONFIG_RT_USING_NULL=y CONFIG_RT_USING_ZERO=y @@ -335,7 +302,7 @@ CONFIG_RT_USING_RANDOM=y # CONFIG_RT_USING_PM is not set CONFIG_RT_USING_RTC=y # CONFIG_RT_USING_ALARM is not set -# CONFIG_RT_USING_SOFT_RTC is not set +CONFIG_RT_USING_SOFT_RTC=y CONFIG_RT_USING_SDIO=y CONFIG_RT_SDIO_STACK_SIZE=8192 CONFIG_RT_SDIO_THREAD_PRIORITY=15 @@ -352,6 +319,7 @@ CONFIG_RT_MMCSD_MAX_PARTITION=16 # CONFIG_RT_USING_LCD is not set # CONFIG_RT_USING_HWCRYPTO is not set # CONFIG_RT_USING_WIFI is not set +# CONFIG_RT_USING_RPMSG is not set CONFIG_RT_USING_BLK=y # @@ -363,7 +331,6 @@ CONFIG_RT_BLK_PARTITION_EFI=y # CONFIG_RT_USING_REGULATOR is not set # CONFIG_RT_USING_POWER_SUPPLY is not set -# CONFIG_RT_USING_VIRTIO is not set CONFIG_RT_USING_PIN=y # CONFIG_RT_USING_CHERRYUSB is not set # end of Device Drivers @@ -413,7 +380,8 @@ CONFIG_RT_USING_POSIX_TIMER=y # # Interprocess Communication (IPC) # -# CONFIG_RT_USING_POSIX_PIPE is not set +CONFIG_RT_USING_POSIX_PIPE=y +CONFIG_RT_USING_POSIX_PIPE_SIZE=2048 # CONFIG_RT_USING_POSIX_MESSAGE_QUEUE is not set # CONFIG_RT_USING_POSIX_MESSAGE_SEMAPHORE is not set @@ -442,6 +410,12 @@ CONFIG_SAL_USING_LWIP=y # end of Docking with protocol stacks CONFIG_SAL_USING_POSIX=y +CONFIG_RT_USING_AF_UNIX=y +CONFIG_AF_UNIX_DGRAM_MAX_SIZE=4096 +CONFIG_AF_UNIX_DGRAM_QUEUE_LEN=16 +CONFIG_AF_UNIX_STREAM_BUFFER_SIZE=4096 +CONFIG_AF_UNIX_LISTEN_BACKLOG_MAX=16 +CONFIG_AF_UNIX_RIGHTS_MAX=16 CONFIG_RT_USING_NETDEV=y CONFIG_NETDEV_USING_IFCONFIG=y CONFIG_NETDEV_USING_PING=y @@ -456,6 +430,7 @@ CONFIG_RT_USING_LWIP=y # CONFIG_RT_USING_LWIP141 is not set # CONFIG_RT_USING_LWIP203 is not set CONFIG_RT_USING_LWIP212=y +# CONFIG_RT_USING_LWIP221 is not set # CONFIG_RT_USING_LWIP_LATEST is not set CONFIG_RT_USING_LWIP_VER_NUM=0x20102 # CONFIG_RT_USING_LWIP_IPV6 is not set @@ -505,8 +480,9 @@ CONFIG_LWIP_SO_RCVTIMEO=1 CONFIG_LWIP_SO_SNDTIMEO=1 CONFIG_LWIP_SO_RCVBUF=1 CONFIG_LWIP_SO_LINGER=0 -# CONFIG_RT_LWIP_NETIF_LOOPBACK is not set -CONFIG_LWIP_NETIF_LOOPBACK=0 +CONFIG_RT_LWIP_NETIF_LOOPBACK=y +CONFIG_RT_LWIP_USING_LOOPBACK=y +CONFIG_LWIP_NETIF_LOOPBACK=1 # CONFIG_RT_LWIP_STATS is not set # CONFIG_RT_LWIP_USING_HW_CHECKSUM is not set CONFIG_RT_LWIP_USING_PING=y @@ -558,7 +534,7 @@ CONFIG_RT_PAGE_MAX_ORDER=11 CONFIG_RT_USING_LWP=y CONFIG_LWP_DEBUG=y -CONFIG_LWP_DEBUG_INIT=y +# CONFIG_LWP_DEBUG_INIT is not set CONFIG_LWP_USING_RUNTIME=y CONFIG_RT_LWP_MAX_NR=30 CONFIG_LWP_TASK_STACK_SIZE=16384 @@ -580,6 +556,7 @@ CONFIG_RT_USING_VDSO=y # end of Using USB legacy version # CONFIG_RT_USING_FDT is not set +# CONFIG_RT_USING_LEGACY_VIRTIO is not set # CONFIG_RT_USING_RUST is not set # end of RT-Thread Components @@ -596,20 +573,6 @@ CONFIG_RT_USING_VDSO=y # # IoT - internet of things # -# 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 -# CONFIG_PKG_USING_WIFI_HOST_DRIVER is not set -# CONFIG_PKG_USING_ESP_HOSTED is not set # # Wi-Fi @@ -618,36 +581,355 @@ CONFIG_RT_USING_VDSO=y # # Marvell WiFi # -# CONFIG_PKG_USING_WLANMARVELL is not set # end of Marvell WiFi # # Wiced WiFi # -# CONFIG_PKG_USING_WLAN_WICED is not set # end of Wiced WiFi -# CONFIG_PKG_USING_RW007 is not set # # CYW43012 WiFi # -# CONFIG_PKG_USING_WLAN_CYW43012 is not set # end of CYW43012 WiFi # # BL808 WiFi # -# CONFIG_PKG_USING_WLAN_BL808 is not set # end of BL808 WiFi # # CYW43439 WiFi # -# CONFIG_PKG_USING_WLAN_CYW43439 is not set # end of CYW43439 WiFi # end of Wi-Fi + +# +# IoT Cloud +# +# end of IoT Cloud + +# end of IoT - internet of things + +# +# security packages +# +# end of security packages + +# +# language packages +# + +# +# JSON: JavaScript Object Notation, a lightweight data-interchange format +# +# end of JSON: JavaScript Object Notation, a lightweight data-interchange format + +# +# XML: Extensible Markup Language +# +# end of XML: Extensible Markup Language + +# end of language packages + +# +# multimedia packages +# + +# +# LVGL: powerful and easy-to-use embedded GUI library +# +# end of LVGL: powerful and easy-to-use embedded GUI library + +# +# u8g2: a monochrome graphic library +# +# end of u8g2: a monochrome graphic library + +# end of multimedia packages + +# +# tools packages +# +# end of tools packages + +# +# system packages +# + +# +# enhanced kernel services +# +# end of enhanced kernel services + + +# +# acceleration: Assembly language or algorithmic acceleration packages +# +# end of acceleration: Assembly language or algorithmic acceleration packages + +# +# CMSIS: ARM Cortex-M Microcontroller Software Interface Standard +# +# end of CMSIS: ARM Cortex-M Microcontroller Software Interface Standard + +# +# Micrium: Micrium software products porting for RT-Thread +# +# end of Micrium: Micrium software products porting for RT-Thread + +# end of system packages + +# +# peripheral libraries and drivers +# + +# +# HAL & SDK Drivers +# + +# +# STM32 HAL & SDK Drivers +# +# end of STM32 HAL & SDK Drivers + +# +# Infineon HAL Packages +# +# end of Infineon HAL Packages + + +# +# Kendryte SDK +# +# end of Kendryte SDK + + +# +# MM32 HAL & SDK Drivers +# +# end of MM32 HAL & SDK Drivers + +# +# WCH HAL & SDK Drivers +# +# end of WCH HAL & SDK Drivers + +# +# AT32 HAL & SDK Drivers +# +# end of AT32 HAL & SDK Drivers + +# +# HC32 DDL Drivers +# +# end of HC32 DDL Drivers + +# +# NXP HAL & SDK Drivers +# +# end of NXP HAL & SDK Drivers + +# +# NUVOTON Drivers +# +# end of NUVOTON Drivers + +# +# GD32 Drivers +# +# end of GD32 Drivers + +# +# HPMicro SDK +# +# end of HPMicro SDK + +# +# FT32 HAL & SDK Drivers +# +# end of FT32 HAL & SDK Drivers + +# +# NOVOSNS Drivers +# +# end of NOVOSNS Drivers +# end of HAL & SDK Drivers + +# +# sensors drivers +# +# end of sensors drivers + +# +# touch drivers +# +# end of touch drivers + +# end of peripheral libraries and drivers + +# +# AI packages +# +# end of AI packages + +# +# Signal Processing and Control Algorithm Packages +# +# end of Signal Processing and Control Algorithm Packages + +# +# miscellaneous packages +# + +# +# project laboratory +# +# end of project laboratory + +# +# samples: kernel and components samples +# +# end of samples: kernel and components samples + +# +# entertainment: terminal games and other interesting software packages +# +# end of entertainment: terminal games and other interesting software packages + +# CONFIG_ZLIB_USING_SAMPLE is not set +# end of miscellaneous packages + +# +# Arduino libraries +# + +# +# Projects and Demos +# +# end of Projects and Demos + +# +# Sensors +# +# end of Sensors + +# +# Display +# +# end of Display + +# +# Timing +# +# end of Timing + +# +# Data Processing +# +# end of Data Processing + +# +# Data Storage +# + +# +# Communication +# +# end of Communication + +# +# Device Control +# +# end of Device Control + +# +# Other +# +# end of Other + +# +# Signal IO +# +# end of Signal IO + +# +# Uncategorized +# +# end of Arduino libraries +# end of RT-Thread online packages + +# +# Drivers Configuration +# +# CONFIG_BSP_USING_GNNE is not set +# CONFIG_BSP_USING_GPIO is not set +# CONFIG_BSP_USING_SPI is not set +# CONFIG_BSP_USING_I2C is not set +# CONFIG_BSP_USING_RTC is not set +# CONFIG_BSP_USING_ADC is not set +# CONFIG_BSP_USING_TS is not set +CONFIG_BSP_USING_UART=y +CONFIG_BSP_UART_USING_DMA=y +CONFIG_BSP_USING_UART0=y +# CONFIG_BSP_USING_UART1 is not set +# CONFIG_BSP_USING_UART2 is not set +# CONFIG_BSP_USING_UART3 is not set +# CONFIG_BSP_USING_UART4 is not set +# CONFIG_BSP_USING_PWM is not set +CONFIG_BSP_USING_HARDLOCK=y +CONFIG_BSP_USING_SDIO=y +CONFIG_BSP_USING_SDIO0=y +# CONFIG_BSP_SDIO0_EMMC is not set +# CONFIG_BSP_SDIO0_1V8 is not set +# CONFIG_BSP_USING_SDIO1 is not set +CONFIG_BSP_SD_MNT_DEVNAME="sd0p0" +# CONFIG_BSP_USING_TIMERS is not set +# CONFIG_BSP_USING_WDT is not set +# CONFIG_BSP_USING_PDMA is not set +# CONFIG_BSP_UTEST_DRIVERS is not set +# end of Drivers Configuration + +# CONFIG_SOC_K230 is not set +CONFIG_SOC_K230D=y +CONFIG_BOARD_C908=y +CONFIG___STACKSIZE__=65536 +# CONFIG_BSP_ROOTFS_TYPE_ELMFAT is not set +CONFIG_BSP_ROOTFS_TYPE_EXT4=y +# CONFIG_BSP_ROOTFS_TYPE_CROMFS is not set +CONFIG_BSP_RISCV_FPU_SOFT=y +# CONFIG_BSP_RISCV_FPU_D is not set +CONFIG_RT_USING_DFS_V2=y +# 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_PTYFS=y +CONFIG_RT_USING_DFS_PROCFS=y +CONFIG_RT_USING_DFS_CROMFS=y +CONFIG_RT_USING_DFS_TMPFS=y +# CONFIG_RT_USING_DFS_MQUEUE 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 +# CONFIG_PKG_USING_WIFI_HOST_DRIVER is not set +# CONFIG_PKG_USING_ESP_HOSTED is not set +# CONFIG_PKG_USING_WLANMARVELL is not set +# CONFIG_PKG_USING_WLAN_WICED is not set +# CONFIG_PKG_USING_RW007 is not set +# CONFIG_PKG_USING_WLAN_CYW43012 is not set +# CONFIG_PKG_USING_WLAN_BL808 is not set +# CONFIG_PKG_USING_WLAN_CYW43439 is not set # CONFIG_PKG_USING_COAP is not set # CONFIG_PKG_USING_NOPOLL is not set # CONFIG_PKG_USING_NETUTILS is not set @@ -657,10 +939,6 @@ CONFIG_RT_USING_VDSO=y # 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 @@ -670,8 +948,6 @@ CONFIG_RT_USING_VDSO=y # CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set # CONFIG_PKG_USING_JOYLINK is not set # CONFIG_PKG_USING_IOTSHARP_SDK is not set -# end of IoT Cloud - # CONFIG_PKG_USING_NIMBLE is not set # CONFIG_PKG_USING_LLSYNC_SDK_ADAPTER is not set # CONFIG_PKG_USING_OTA_DOWNLOADER is not set @@ -718,70 +994,33 @@ CONFIG_RT_USING_VDSO=y # CONFIG_PKG_USING_PNET is not set # CONFIG_PKG_USING_OPENER is not set # CONFIG_PKG_USING_FREEMQTT is not set -# end of IoT - internet of things - -# -# 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 -# end of security packages - -# -# 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 -# CONFIG_PKG_USING_RYAN_JSON is not set -# end of JSON: JavaScript Object Notation, a lightweight data-interchange format - -# -# XML: Extensible Markup Language -# +# CONFIG_PKG_USING_AGILE_JSMN is not set +# CONFIG_PKG_USING_PARSON is not set +# CONFIG_PKG_USING_RYAN_JSON is not set # CONFIG_PKG_USING_SIMPLE_XML is not set # CONFIG_PKG_USING_EZXML is not set -# end of XML: Extensible Markup Language - # 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 -# end of language packages - -# -# 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 -# end of LVGL: powerful and easy-to-use embedded GUI library - -# -# u8g2: a monochrome graphic library -# # CONFIG_PKG_USING_U8G2_OFFICIAL is not set # CONFIG_PKG_USING_U8G2 is not set -# end of u8g2: a monochrome graphic library - # CONFIG_PKG_USING_NES_SIMULATOR is not set # CONFIG_PKG_USING_OPENMV is not set # CONFIG_PKG_USING_MUPDF is not set @@ -802,11 +1041,6 @@ CONFIG_RT_USING_VDSO=y # CONFIG_PKG_USING_QRCODE is not set # CONFIG_PKG_USING_GUIENGINE is not set # CONFIG_PKG_USING_3GPP_AMRNB is not set -# end of multimedia packages - -# -# tools packages -# # CONFIG_PKG_USING_VECTOR is not set # CONFIG_PKG_USING_SORCH is not set # CONFIG_PKG_USING_DICT is not set @@ -861,50 +1095,23 @@ CONFIG_RT_USING_VDSO=y # CONFIG_PKG_USING_UORB is not set # CONFIG_PKG_USING_RT_TUNNEL is not set # CONFIG_PKG_USING_VIRTUAL_TERMINAL is not set -# end of tools packages - -# -# system packages -# - -# -# enhanced kernel services -# # CONFIG_PKG_USING_RT_MEMCPY_CM is not set # CONFIG_PKG_USING_RT_KPRINTF_THREADSAFE is not set -# end of enhanced kernel services - # CONFIG_PKG_USING_AUNITY 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 -# end of acceleration: Assembly language or algorithmic acceleration packages - -# -# CMSIS: ARM Cortex-M Microcontroller Software Interface Standard -# # CONFIG_PKG_USING_CMSIS_5 is not set # CONFIG_PKG_USING_CMSIS_CORE is not set # CONFIG_PKG_USING_CMSIS_NN is not set # CONFIG_PKG_USING_CMSIS_RTOS1 is not set # CONFIG_PKG_USING_CMSIS_RTOS2 is not set -# end of CMSIS: ARM Cortex-M Microcontroller Software Interface Standard - -# -# 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 -# end of Micrium: Micrium software products porting for RT-Thread - # CONFIG_PKG_USING_FREERTOS_WRAPPER is not set # CONFIG_PKG_USING_LITEOS_SDK is not set # CONFIG_PKG_USING_TZ_DATABASE is not set @@ -921,7 +1128,13 @@ CONFIG_RT_USING_VDSO=y # 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_LWEXT4=y +CONFIG_PKG_LWEXT4_PATH="/packages/system/lwext4" +CONFIG_RT_USING_DFS_LWEXT4=y +# CONFIG_PKG_USING_LWEXT4_V200 is not set +CONFIG_PKG_USING_LWEXT4_LATEST_VERSION=y +# CONFIG_PKG_USING_LWEXT4_V110 is not set +CONFIG_PKG_LWEXT4_VER="latest" # CONFIG_PKG_USING_THREAD_POOL is not set # CONFIG_PKG_USING_ROBOTS is not set # CONFIG_PKG_USING_EV is not set @@ -958,19 +1171,6 @@ CONFIG_RT_USING_VDSO=y # CONFIG_PKG_USING_CHERRYECAT is not set # CONFIG_PKG_USING_EVENT_LOOP is not set # CONFIG_PKG_USING_THREAD_MANAGER is not set -# end of system packages - -# -# peripheral libraries and drivers -# - -# -# HAL & SDK Drivers -# - -# -# STM32 HAL & SDK Drivers -# # CONFIG_PKG_USING_STM32F0_HAL_DRIVER is not set # CONFIG_PKG_USING_STM32F0_CMSIS_DRIVER is not set # CONFIG_PKG_USING_STM32F1_HAL_DRIVER is not set @@ -1009,11 +1209,6 @@ CONFIG_RT_USING_VDSO=y # CONFIG_PKG_USING_STM32WB_CMSIS_DRIVER is not set # CONFIG_PKG_USING_STM32MP1_M4_HAL_DRIVER is not set # CONFIG_PKG_USING_STM32MP1_M4_CMSIS_DRIVER is not set -# end of STM32 HAL & SDK Drivers - -# -# Infineon HAL Packages -# # CONFIG_PKG_USING_INFINEON_CAT1CM0P is not set # CONFIG_PKG_USING_INFINEON_CMSIS is not set # CONFIG_PKG_USING_INFINEON_CORE_LIB is not set @@ -1024,36 +1219,19 @@ CONFIG_RT_USING_VDSO=y # CONFIG_PKG_USING_INFINEON_CSDIDAC is not set # CONFIG_PKG_USING_INFINEON_SERIAL_FLASH is not set # CONFIG_PKG_USING_INFINEON_USBDEV is not set -# end of Infineon HAL Packages - # CONFIG_PKG_USING_BLUETRUM_SDK is not set # CONFIG_PKG_USING_EMBARC_BSP is not set # CONFIG_PKG_USING_ESP_IDF is not set - -# -# Kendryte SDK -# # CONFIG_PKG_USING_K210_SDK is not set # CONFIG_PKG_USING_KENDRYTE_SDK is not set -# end of Kendryte SDK - # CONFIG_PKG_USING_NRF5X_SDK is not set # CONFIG_PKG_USING_NRFX is not set # CONFIG_PKG_USING_NUCLEI_SDK is not set # CONFIG_PKG_USING_RASPBERRYPI_PICO_RP2350_SDK is not set # CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set # CONFIG_PKG_USING_MM32 is not set - -# -# WCH HAL & SDK Drivers -# # CONFIG_PKG_USING_CH32V20x_SDK is not set # CONFIG_PKG_USING_CH32V307_SDK is not set -# end of WCH HAL & SDK Drivers - -# -# AT32 HAL & SDK Drivers -# # CONFIG_PKG_USING_AT32A403A_HAL_DRIVER is not set # CONFIG_PKG_USING_AT32A403A_CMSIS_DRIVER is not set # CONFIG_PKG_USING_AT32A423_HAL_DRIVER is not set @@ -1078,20 +1256,10 @@ CONFIG_RT_USING_VDSO=y # CONFIG_PKG_USING_AT32F435_437_CMSIS_DRIVER is not set # CONFIG_PKG_USING_AT32M412_416_HAL_DRIVER is not set # CONFIG_PKG_USING_AT32M412_416_CMSIS_DRIVER is not set -# end of AT32 HAL & SDK Drivers - -# -# HC32 DDL Drivers -# # CONFIG_PKG_USING_HC32F3_CMSIS_DRIVER is not set # CONFIG_PKG_USING_HC32F3_SERIES_DRIVER is not set # CONFIG_PKG_USING_HC32F4_CMSIS_DRIVER is not set # CONFIG_PKG_USING_HC32F4_SERIES_DRIVER is not set -# end of HC32 DDL Drivers - -# -# NXP HAL & SDK Drivers -# # CONFIG_PKG_USING_NXP_MCX_CMSIS_DRIVER is not set # CONFIG_PKG_USING_NXP_MCX_SERIES_DRIVER is not set # CONFIG_PKG_USING_NXP_LPC_DRIVER is not set @@ -1099,42 +1267,16 @@ CONFIG_RT_USING_VDSO=y # CONFIG_PKG_USING_NXP_IMX6SX_DRIVER is not set # CONFIG_PKG_USING_NXP_IMX6UL_DRIVER is not set # CONFIG_PKG_USING_NXP_IMXRT_DRIVER is not set -# end of NXP HAL & SDK Drivers - -# -# NUVOTON Drivers -# # CONFIG_PKG_USING_NUVOTON_SERIES_DRIVER is not set -# end of NUVOTON Drivers - -# -# GD32 Drivers -# # CONFIG_PKG_USING_GD32_ARM_CMSIS_DRIVER is not set # CONFIG_PKG_USING_GD32_ARM_SERIES_DRIVER is not set # CONFIG_PKG_USING_GD32_RISCV_SERIES_DRIVER is not set # CONFIG_PKG_USING_GD32VW55X_WIFI is not set -# end of GD32 Drivers - -# -# HPMicro SDK -# # CONFIG_PKG_USING_HPM_SDK is not set -# end of HPMicro SDK - -# -# FT32 HAL & SDK Drivers -# # CONFIG_PKG_USING_FT32F0_STD_DRIVER is not set # CONFIG_PKG_USING_FT32F0_CMSIS_DRIVER is not set # CONFIG_PKG_USING_FT32F4_STD_DRIVER is not set # CONFIG_PKG_USING_FT32F4_CMSIS_DRIVER is not set -# end of FT32 HAL & SDK Drivers -# end of HAL & SDK Drivers - -# -# sensors drivers -# # CONFIG_PKG_USING_LSM6DSM is not set # CONFIG_PKG_USING_LSM6DSL is not set # CONFIG_PKG_USING_LPS22HB is not set @@ -1209,11 +1351,6 @@ CONFIG_RT_USING_VDSO=y # CONFIG_PKG_USING_QMI8658 is not set # CONFIG_PKG_USING_ICM20948 is not set # CONFIG_PKG_USING_SCD4X is not set -# end of sensors drivers - -# -# touch drivers -# # CONFIG_PKG_USING_GT9147 is not set # CONFIG_PKG_USING_GT1151 is not set # CONFIG_PKG_USING_GT917S is not set @@ -1224,8 +1361,6 @@ CONFIG_RT_USING_VDSO=y # CONFIG_PKG_USING_XPT2046_TOUCH is not set # CONFIG_PKG_USING_CST816X is not set # CONFIG_PKG_USING_CST812T is not set -# end of touch drivers - # CONFIG_PKG_USING_LCD_SPI_DRIVER is not set # CONFIG_PKG_USING_REALTEK_AMEBA is not set # CONFIG_PKG_USING_BUTTON is not set @@ -1314,11 +1449,6 @@ CONFIG_RT_USING_VDSO=y # CONFIG_PKG_USING_ST7305 is not set # CONFIG_PKG_USING_TM1668 is not set # CONFIG_PKG_USING_SPI_TOOLS is not set -# end of peripheral libraries and drivers - -# -# AI packages -# # CONFIG_PKG_USING_LIBANN is not set # CONFIG_PKG_USING_NNOM is not set # CONFIG_PKG_USING_ONNX_BACKEND is not set @@ -1330,40 +1460,16 @@ CONFIG_RT_USING_VDSO=y # CONFIG_PKG_USING_NAXOS is not set # CONFIG_PKG_USING_R_TINYMAIX is not set # CONFIG_PKG_USING_LLMCHAT is not set -# end of AI packages - -# -# Signal Processing and Control Algorithm Packages -# # CONFIG_PKG_USING_APID is not set # 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 -# end of Signal Processing and Control Algorithm Packages - -# -# miscellaneous packages -# - -# -# project laboratory -# -# end of 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 -# end of samples: kernel and components samples - -# -# 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 @@ -1375,8 +1481,6 @@ CONFIG_RT_USING_VDSO=y # CONFIG_PKG_USING_DONUT is not set # CONFIG_PKG_USING_COWSAY is not set # CONFIG_PKG_USING_MORSE is not set -# end of entertainment: terminal games and other interesting software packages - # CONFIG_PKG_USING_LIBCSV is not set # CONFIG_PKG_USING_OPTPARSE is not set # CONFIG_PKG_USING_FASTLZ is not set @@ -1389,7 +1493,6 @@ CONFIG_RT_USING_VDSO=y # CONFIG_PKG_USING_CANFESTIVAL is not set CONFIG_PKG_USING_ZLIB=y CONFIG_PKG_ZLIB_PATH="/packages/misc/zlib" -# CONFIG_ZLIB_USING_SAMPLE is not set # CONFIG_PKG_USING_ZLIB_V100 is not set # CONFIG_PKG_USING_ZLIB_V123 is not set CONFIG_PKG_USING_ZLIB_LATEST_VERSION=y @@ -1418,16 +1521,7 @@ CONFIG_PKG_ZLIB_VER="latest" # CONFIG_PKG_USING_QPARAM is not set # CONFIG_PKG_USING_CorevMCU_CLI is not set # CONFIG_PKG_USING_DRMP is not set -# end of miscellaneous packages - -# -# 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_SKETCH_LOADER_DEMO is not set # CONFIG_PKG_USING_ARDUINO_ULTRASOUND_RADAR is not set @@ -1435,11 +1529,6 @@ CONFIG_PKG_ZLIB_VER="latest" # CONFIG_PKG_USING_ARDUINO_NINEINONE_SENSOR_SHIELD is not set # CONFIG_PKG_USING_ARDUINO_SENSOR_KIT is not set # CONFIG_PKG_USING_ARDUINO_MATLAB_SUPPORT is not set -# end of Projects and Demos - -# -# Sensors -# # CONFIG_PKG_USING_ARDUINO_SENSOR_DEVICE_DRIVERS is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SENSOR is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SENSORLAB is not set @@ -1576,11 +1665,6 @@ CONFIG_PKG_ZLIB_VER="latest" # CONFIG_PKG_USING_ARDUINO_SEEED_LDC1612 is not set # CONFIG_PKG_USING_ARDUINO_CAPACITIVESENSOR is not set # CONFIG_PKG_USING_ARDUINO_JARZEBSKI_MPU6050 is not set -# end of Sensors - -# -# 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 @@ -1588,40 +1672,16 @@ CONFIG_PKG_ZLIB_VER="latest" # 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 -# end of Display - -# -# 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 -# end of Timing - -# -# Data Processing -# # CONFIG_PKG_USING_ARDUINO_KALMANFILTER is not set # CONFIG_PKG_USING_ARDUINO_ARDUINOJSON is not set # CONFIG_PKG_USING_ARDUINO_TENSORFLOW_LITE_MICRO is not set # CONFIG_PKG_USING_ARDUINO_RUNNINGMEDIAN is not set -# end of Data Processing - -# -# Data Storage -# - -# -# Communication -# # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PN532 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI4713 is not set -# end of Communication - -# -# Device Control -# # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCF8574 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCA9685 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TPA2016 is not set @@ -1629,18 +1689,8 @@ CONFIG_PKG_ZLIB_VER="latest" # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS1841 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS3502 is not set # CONFIG_PKG_USING_ARDUINO_SEEED_PCF85063TP is not set -# end of Device Control - -# -# Other -# # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MFRC630 is not set # CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI5351 is not set -# end of Other - -# -# 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 @@ -1649,47 +1699,3 @@ CONFIG_PKG_ZLIB_VER="latest" # 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 -# end of Signal IO - -# -# Uncategorized -# -# end of Arduino libraries -# end of RT-Thread online packages - -# -# Drivers Configuration -# -# CONFIG_BSP_USING_GNNE is not set -# CONFIG_BSP_USING_SPI is not set -# CONFIG_BSP_USING_I2C is not set -# CONFIG_BSP_USING_RTC is not set -# CONFIG_BSP_USING_ADC is not set -# CONFIG_BSP_USING_TS is not set -CONFIG_BSP_USING_UART=y -CONFIG_BSP_UART_USING_DMA=y -CONFIG_BSP_USING_UART0=y -# CONFIG_BSP_USING_UART1 is not set -# CONFIG_BSP_USING_UART2 is not set -# CONFIG_BSP_USING_UART3 is not set -# CONFIG_BSP_USING_UART4 is not set -# CONFIG_BSP_USING_PWM is not set -CONFIG_BSP_USING_HARDLOCK=y -CONFIG_BSP_USING_SDIO=y -CONFIG_BSP_USING_SDIO0=y -# CONFIG_BSP_SDIO0_EMMC is not set -# CONFIG_BSP_SDIO0_1V8 is not set -# CONFIG_BSP_USING_SDIO1 is not set -CONFIG_BSP_SD_MNT_DEVNAME="sd0p1" -# CONFIG_BSP_USING_TIMERS is not set -# CONFIG_BSP_USING_WDT is not set -# CONFIG_BSP_USING_PDMA is not set -# CONFIG_BSP_UTEST_DRIVERS is not set -# end of Drivers Configuration - -CONFIG_BOARD_C908=y -CONFIG___STACKSIZE__=65536 -CONFIG_BSP_ROOTFS_TYPE_ELMFAT=y -# CONFIG_BSP_ROOTFS_TYPE_CROMFS is not set -# CONFIG_BSP_RISCV_FPU_SOFT is not set -CONFIG_BSP_RISCV_FPU_D=y diff --git a/bsp/k230/Kconfig b/bsp/k230/Kconfig index 3ddee1c468c4..643432f1947e 100644 --- a/bsp/k230/Kconfig +++ b/bsp/k230/Kconfig @@ -10,14 +10,26 @@ source "$RTT_DIR/Kconfig" source "$PKGS_DIR/Kconfig" rsource "board/Kconfig" +choice + prompt "SoC variant" + default SOC_K230 + +config SOC_K230 + bool "K230" + +config SOC_K230D + bool "K230D (128MB DDR)" +endchoice + config BOARD_C908 bool select ARCH_RISCV64 select RT_USING_COMPONENTS_INIT select RT_USING_USER_MAIN select RT_USING_CACHE - select ARCH_MM_MMU + select ARCH_MM_MMU select ARCH_RISCV_FPU + select ARCH_RISCV_XUANTIE select ARCH_REMAP_KERNEL if RT_USING_SMART default y @@ -33,6 +45,10 @@ choice BSP_ROOTFS_TYPE bool "Use Elm-chan FAT File-System" select RT_USING_DFS_ELMFAT + config BSP_ROOTFS_TYPE_EXT4 + bool "Use Ext4 File-System" + select PKG_USING_LWEXT4 + config BSP_ROOTFS_TYPE_CROMFS bool "Use Compressed ROM File-System (ReadOnly)" select RT_USING_DFS_CROMFS diff --git a/bsp/k230/SConstruct b/bsp/k230/SConstruct index d12a8ff8e1be..ac689ea33a60 100644 --- a/bsp/k230/SConstruct +++ b/bsp/k230/SConstruct @@ -38,10 +38,8 @@ TARGET = 'rtthread.' + rtconfig.TARGET_EXT options = LocalOptions("rtconfig.h") soft_fpu = GetLocalDepend(options, 'BSP_RISCV_FPU_SOFT') if soft_fpu: - rtconfig.DEVICE = rtconfig.DEVICE.replace('-march=rv64imafdcv -mabi=lp64d', '-march=rv64imafdc -mabi=lp64') - rtconfig.CFLAGS = rtconfig.CFLAGS.replace('-march=rv64imafdcv -mabi=lp64d', '-march=rv64imafdc -mabi=lp64') - rtconfig.LFLAGS = rtconfig.LFLAGS.replace('-march=rv64imafdcv -mabi=lp64d', '-march=rv64imafdc -mabi=lp64') - rtconfig.AFLAGS = rtconfig.AFLAGS.replace('-march=rv64imafdcv -mabi=lp64d', '-march=rv64imafdc -mabi=lp64') + for name in ('DEVICE', 'CFLAGS', 'LFLAGS', 'AFLAGS'): + setattr(rtconfig, name, getattr(rtconfig, name).replace('-march=rv64imafdcv', '-march=rv64imafdc')) DefaultEnvironment(tools=[]) env = Environment(tools = ['mingw'], diff --git a/bsp/k230/applications/mnt.c b/bsp/k230/applications/mnt.c index 3e86c2db0356..93df25006a66 100644 --- a/bsp/k230/applications/mnt.c +++ b/bsp/k230/applications/mnt.c @@ -24,25 +24,51 @@ static int mnt_cromfs(void) } #endif +#ifdef RT_USING_DFS_PTYFS +static int mnt_ptyfs(void) +{ + mkdir("/dev/pts", 0755); + + if (dfs_mount(RT_NULL, "/dev/pts", "ptyfs", 0, RT_NULL) != RT_EOK) + { + rt_kprintf("ptyfs mounted on /dev/pts failed!\n"); + return -RT_ERROR; + } + + rt_kprintf("ptyfs mounted on /dev/pts success!\n"); + return RT_EOK; +} +#endif + int mnt_init(void) { -#if defined(BSP_USING_SDIO) && defined(BSP_ROOTFS_TYPE_ELMFAT) - int timeout = 50; // Timeout after 50 iterations (5 seconds if each iteration waits 100ms) +#if defined(BSP_USING_SDIO) && \ + (defined(BSP_ROOTFS_TYPE_ELMFAT) || defined(BSP_ROOTFS_TYPE_EXT4)) + int timeout = 50; + const char *filesystem; + +#ifdef BSP_ROOTFS_TYPE_EXT4 + filesystem = "ext"; +#else + filesystem = "elm"; +#endif + while (mmcsd_wait_cd_changed(100) != MMCSD_HOST_PLUGED) { if (--timeout <= 0) { rt_kprintf("Timeout waiting for MMCSD host to be plugged!\n"); - return -1; // Return an error code to indicate failure + return -1; } - rt_thread_mdelay(100); // Yield to the scheduler + rt_thread_mdelay(100); } - if (dfs_mount(BSP_SD_MNT_DEVNAME, "/", "elm", 0, 0) != 0) + if (dfs_mount(BSP_SD_MNT_DEVNAME, "/", filesystem, 0, 0) != 0) { rt_kprintf("%s mounted on / failed!\n", BSP_SD_MNT_DEVNAME); } - else { + else + { rt_kprintf("%s mounted on / success!\n", BSP_SD_MNT_DEVNAME); } #endif @@ -62,15 +88,9 @@ int mnt_init(void) } #endif - mkdir("/dev/shm", 0x777); - - if (dfs_mount(RT_NULL, "/dev/shm", "tmp", 0, 0) != 0) - { - rt_kprintf("tmpfs mounted on /dev/shm failed!\n"); - } - else { - rt_kprintf("tmpfs mounted on /dev/shm success!\n"); - } +#ifdef RT_USING_DFS_PTYFS + (void)mnt_ptyfs(); +#endif rt_kprintf("file system initialization done!\n"); @@ -78,4 +98,21 @@ int mnt_init(void) } INIT_ENV_EXPORT(mnt_init); +#if defined(RT_USING_DFS_PROCFS) && !defined(RT_USING_DM) +static int mnt_procfs(void) +{ + mkdir("/proc", 0755); + + if (dfs_mount(RT_NULL, "/proc", "procfs", 0, RT_NULL) != RT_EOK) + { + rt_kprintf("procfs mounted on /proc failed!\n"); + return -RT_ERROR; + } + + rt_kprintf("procfs mounted on /proc success!\n"); + return RT_EOK; +} +INIT_FS_EXPORT(mnt_procfs); +#endif + #endif /* RT_USING_DFS */ diff --git a/bsp/k230/board/Kconfig b/bsp/k230/board/Kconfig index 97af85242068..89f31bfea44b 100644 --- a/bsp/k230/board/Kconfig +++ b/bsp/k230/board/Kconfig @@ -4,6 +4,11 @@ menu "Drivers Configuration" bool "Enable KPU and AI2D" default n + config BSP_USING_GPIO + bool "Enable GPIO" + select RT_USING_PIN + default n + menuconfig BSP_USING_SPI bool "Enable SPI" select RT_USING_SPI @@ -160,7 +165,7 @@ menu "Drivers Configuration" config BSP_SD_MNT_DEVNAME string "The name of the SD-BlkDev to be mounted" - default "sd0p1" + default "sd0p0" endif menuconfig BSP_USING_TIMERS diff --git a/bsp/k230/board/board.c b/bsp/k230/board/board.c index 8e4eb675d588..e74ae35802c4 100644 --- a/bsp/k230/board/board.c +++ b/bsp/k230/board/board.c @@ -39,7 +39,6 @@ extern unsigned int __bss_end; #define RT_HW_PAGE_END ((void *)(RAM_END)) #ifdef RT_USING_SMART - rt_region_t init_page_region = {(rt_size_t)RT_HW_PAGE_START, (rt_size_t)RT_HW_PAGE_END}; extern size_t MMUTable[]; @@ -47,9 +46,7 @@ extern size_t MMUTable[]; struct mem_desc platform_mem_desc[] = { {KERNEL_VADDR_START, (rt_size_t)(KERNEL_VADDR_START + CONFIG_MEM_MMZ_BASE + CONFIG_MEM_MMZ_SIZE - 1), (rt_size_t)ARCH_MAP_FAILED, NORMAL_MEM}, }; - #define NUM_MEM_DESC (sizeof(platform_mem_desc) / sizeof(platform_mem_desc[0])) - #endif /* RT_USING_SMART */ #ifndef ARCH_REMAP_KERNEL @@ -76,34 +73,35 @@ static void __rt_assert_handler(const char *ex_string, const char *func, rt_size asm volatile("ebreak":::"memory"); } -//BSP的C入口 +/* C entry point, this gets called on primary CPU after stack setup. */ void primary_cpu_entry(void) { - //关中断 rt_hw_interrupt_disable(); + +#ifdef RT_DEBUGING_ASSERT rt_assert_set_hook(__rt_assert_handler); - //启动RT-Thread Smart内核 +#endif + entry(); } #define IOREMAP_SIZE (1ul << 30) -//这个初始化程序由内核主动调用,此时调度器还未启动,因此在此不能使用依赖线程上下文的函数 +/* + * This function is called by the kernel during initialization. At this point, + * the scheduler has not started, so functions that depend on thread context + * cannot be used. + */ void rt_hw_board_init(void) { #ifdef RT_USING_SMART - /* init data structure */ rt_hw_mmu_map_init(&rt_kernel_space, (void *)(IOREMAP_VEND - IOREMAP_SIZE), IOREMAP_SIZE, (rt_size_t *)MMUTable, PV_OFFSET); - - /* init page allocator */ rt_page_init(init_page_region); - /* setup region, and enable MMU */ rt_hw_mmu_setup(&rt_kernel_space, platform_mem_desc, NUM_MEM_DESC); #endif #ifdef RT_USING_HEAP - /* initialize memory system */ rt_system_heap_init(RT_HW_HEAP_BEGIN, RT_HW_HEAP_END); #endif /* initalize interrupt */ diff --git a/bsp/k230/board/board.h b/bsp/k230/board/board.h index 5b06bda30fb8..47eafaee3705 100644 --- a/bsp/k230/board/board.h +++ b/bsp/k230/board/board.h @@ -20,9 +20,6 @@ * * See K230 Technical Reference Manual, chapter 1.5 Address Space mapping */ -#define SRAM_BASE_ADDR (0x80200000UL) -#define SRAM_IO_SIZE (0x00200000UL) - #define KPU_BASE_ADDR (0x80400000UL) #define KPU_IO_SIZE (0x00000800UL) @@ -32,43 +29,15 @@ #define AI2D_BASE_ADDR (0x80400C00UL) #define AI2D_IO_SIZE (0x00000400UL) -#define GSDMA_BASE_ADDR (0x80800000UL) -#define GSDMA_IO_SIZE (0x00004000UL) - #define DMA_BASE_ADDR (0x80804000UL) #define DMA_IO_SIZE (0x00004000UL) -#define DECOMP_BASE_ADDR (0x80808000UL) -#define DECOMP_IO_SIZE (0x00004000UL) - -#define NON_AI2D_BASE_ADDR (0x8080C000UL) -#define NON_AI2D_IO_SIZE (0x00004000UL) - -#define ISP_BASE_ADDR (0x90000000UL) -#define ISP_IO_SIZE (0x00008000UL) - -#define DEWARP_BASE_ADDR (0x90008000UL) -#define DEWARP_IO_SIZE (0x00001000UL) - -#define CSI_BASE_ADDR (0x90009000UL) -#define CSI_IO_SIZE (0x00002000UL) - -#define VPU_BASE_ADDR (0x90400000UL) -#define VPU_IO_SIZE (0x00010000UL) - -/*2.5D*/ -#define TAAH_GPU_BASE_ADDR (0x90800000UL) -#define TAAH_GPU_IO_SIZE (0x00040000UL) - #define VO_BASE_ADDR (0x90840000UL) #define VO_IO_SIZE (0x00010000UL) #define DSI_BASE_ADDR (0x90850000UL) #define DSI_IO_SIZE (0x00001000UL) -#define GPU_ENGINE_BASE_ADDR (0x90A00000UL) -#define GPU_ENGINE_IO_SIZE (0x00000800UL) - #define PMU_BASE_ADDR (0x91000000UL) #define PMU_IO_SIZE (0x00000C00UL) @@ -105,18 +74,9 @@ #define TS_BASE_ADDR (0x91107000UL) #define TS_IO_SIZE (0x00000800UL) -#define HDI_BASE_ADDR (0x91107800UL) -#define HDI_IO_SIZE (0x00000800UL) - #define STC_BASE_ADDR (0x91108000UL) #define STC_IO_SIZE (0x00001000UL) -#define BOOTROM_BASE_ADDR (0x91200000UL) -#define BOOTROM_IO_SIZE (0x00010000UL) - -#define SECURITY_BASE_ADDR (0x91210000UL) -#define SECURITY_IO_SIZE (0x00008000UL) - #define UART0_BASE_ADDR (0x91400000UL) #define UART0_IO_SIZE (0x00001000UL) @@ -159,35 +119,10 @@ #define ADC_BASE_ADDR (0x9140D000UL) #define ADC_IO_SIZE (0x00001000UL) -#define CODEC_BASE_ADDR (0x9140E000UL) -#define CODEC_IO_SIZE (0x00001000UL) - -#define AUDIO_BASE_ADDR (0x9140F000UL) -#define AUDIO_IO_SIZE (0x00001000UL) - -#define USB2_BASE_ADDR (0x91500000UL) -#define USB2_IO_SIZE (0x00080000UL) - -#define SD_HC_BASE_ADDR (0x91580000UL) -#define SD_HC_IO_SIZE (0x00002000UL) - #define SPI_QOPI_BASE_ADDR (0x91582000UL) #define SPI_QOPI_IO_SIZE (0x00002000UL) #define SPI_OPI_BASE_ADDR (0x91584000UL) #define SPI_OPI_IO_SIZE (0x00001000UL) -#define HI_SYS_CONFIG_BASE_ADDR (0x91585000UL) -#define HI_SYS_CONFIG_IO_SIZE (0x00000400UL) - -#define DDRC_CONF_BASE_ADDR (0x98000000UL) -#define DDRC_CONF_IO_SIZE (0x02000000UL) - -#define SPI_XIP_FLASH_BASE_ADDR (0xC0000000UL) -#define SPI_XIP_FLASH_IO_SIZE (0x08000000UL) - -#define IO_SPACE_BASE_ADDR (KPU_BASE_ADDR) - -#define TIMER_CLK_FREQ (27000000) - #endif // BOARD_H__ diff --git a/bsp/k230/board/mem_layout.h b/bsp/k230/board/mem_layout.h index cca1e0f7d998..fec1e7f76771 100644 --- a/bsp/k230/board/mem_layout.h +++ b/bsp/k230/board/mem_layout.h @@ -26,7 +26,7 @@ * | ...... | maybe zero * +---------+ <- CONFIG_MEM_RTSMART_SIZE * | guard | MEM_GUARD_SIZE - * +---------+ <- End of Kerenl + * +---------+ <- End of Kernel * | | * | | * +---------+ @@ -47,30 +47,35 @@ * the SDK configuration. * * If CONFIG_XXX is defined, it means that the value comes from the SDK - * configuration, otherwise the default configuration of bsp/k230 in RT-Thead - * is used. The default configuration of bsp/k230 is for the 01Studio CanMV - * development board that supports 512MB of memory. + * configuration, otherwise the default configuration defined in this file + * is used. */ + +#if !defined(SOC_K230) && !defined(SOC_K230D) +#error "Either SOC_K230 or SOC_K230D must be defined" +#endif + +/* Standalone defaults for K230 and K230D boards with 128MB DDR. */ #ifndef CONFIG_MEM_TOTAL_SIZE -#define CONFIG_MEM_TOTAL_SIZE 0x20000000 // 512M +#define CONFIG_MEM_TOTAL_SIZE 0x8000000 // 128M #endif #ifndef CONFIG_MEM_RTSMART_SIZE -#define CONFIG_MEM_RTSMART_SIZE 0x10000000 // 256M +#define CONFIG_MEM_RTSMART_SIZE 0x3A00000 // 58M #endif #ifndef CONFIG_MEM_RTSMART_HEAP_SIZE -#define CONFIG_MEM_RTSMART_HEAP_SIZE 0x2000000 // 32M +#define CONFIG_MEM_RTSMART_HEAP_SIZE 0x800000 // 8M #endif #ifndef CONFIG_MEM_MMZ_BASE -#define CONFIG_MEM_MMZ_BASE 0x10000000 // 512M +#define CONFIG_MEM_MMZ_BASE 0x3A00000 // 58M #endif #ifndef CONFIG_MEM_MMZ_SIZE -#define CONFIG_MEM_MMZ_SIZE 0x10000000 // 256M +#define CONFIG_MEM_MMZ_SIZE 0x4600000 // 70M #endif #define MEM_KERNEL_SIZE (CONFIG_MEM_RTSMART_SIZE - MEM_OPENSBI_SIZE - MEM_GUARD_SIZE) -#endif // MEMORY_LAYOUT_H__ \ No newline at end of file +#endif // MEMORY_LAYOUT_H__ diff --git a/bsp/k230/drivers/interdrv/gpio/drv_gpio.c b/bsp/k230/drivers/interdrv/gpio/drv_gpio.c index 2185418aea08..62db48ede521 100644 --- a/bsp/k230/drivers/interdrv/gpio/drv_gpio.c +++ b/bsp/k230/drivers/interdrv/gpio/drv_gpio.c @@ -32,6 +32,7 @@ #include #include #include +#include #include #include #include "ioremap.h" @@ -52,7 +53,6 @@ #define DBG_COLOR struct kd_gpio_device { - struct rt_device dev; void* base[2]; int hardlock; }; @@ -92,7 +92,7 @@ static rt_uint32_t kd_gpio_reg_readl(void* reg, rt_size_t offset) static int check_pin_valid(rt_base_t pin) { - if ((rt_uint16_t)pin < 0 || (rt_uint16_t)pin > GPIO_MAX_NUM) + if (pin < 0 || pin >= GPIO_MAX_NUM) { LOG_E("pin %d is not valid\n", pin); return -RT_EINVAL; @@ -379,6 +379,74 @@ rt_err_t kd_pin_irq_enable(rt_base_t pin, rt_uint32_t enabled) return RT_EOK; } +static void k230_pin_mode(struct rt_device *device, rt_base_t pin, rt_uint8_t mode) +{ + (void)device; + + switch (mode) + { + case PIN_MODE_OUTPUT: + case PIN_MODE_OUTPUT_OD: + (void)kd_pin_mode(pin, GPIO_DM_OUTPUT); + break; + case PIN_MODE_INPUT: + case PIN_MODE_INPUT_PULLUP: + case PIN_MODE_INPUT_PULLDOWN: + (void)kd_pin_mode(pin, GPIO_DM_INPUT); + break; + default: + LOG_E("pin mode %u is not supported", mode); + break; + } +} + +static void k230_pin_write(struct rt_device *device, rt_base_t pin, rt_uint8_t value) +{ + (void)device; + + (void)kd_pin_write(pin, value ? GPIO_PV_HIGH : GPIO_PV_LOW); +} + +static rt_ssize_t k230_pin_read(struct rt_device *device, rt_base_t pin) +{ + (void)device; + + return kd_pin_read(pin); +} + +static rt_err_t k230_pin_attach_irq(struct rt_device *device, rt_base_t pin, + rt_uint8_t mode, void (*hdr)(void *args), + void *args) +{ + (void)device; + + return kd_pin_attach_irq(pin, mode, hdr, args); +} + +static rt_err_t k230_pin_detach_irq(struct rt_device *device, rt_base_t pin) +{ + (void)device; + + return kd_pin_detach_irq(pin); +} + +static rt_err_t k230_pin_irq_enable(struct rt_device *device, rt_base_t pin, + rt_uint8_t enabled) +{ + (void)device; + + return kd_pin_irq_enable(pin, enabled); +} + +static const struct rt_pin_ops k230_pin_ops = { + .pin_mode = k230_pin_mode, + .pin_write = k230_pin_write, + .pin_read = k230_pin_read, + .pin_attach_irq = k230_pin_attach_irq, + .pin_detach_irq = k230_pin_detach_irq, + .pin_irq_enable = k230_pin_irq_enable, +}; + int rt_hw_gpio_init(void) { rt_err_t ret; @@ -393,8 +461,8 @@ int rt_hw_gpio_init(void) } gpio_dev.hardlock = HARDLOCK_GPIO; - ret = rt_device_register(&gpio_dev.dev, "gpio", RT_DEVICE_FLAG_RDWR); + ret = rt_device_pin_register("gpio", &k230_pin_ops, RT_NULL); return ret; } -INIT_BOARD_EXPORT(rt_hw_gpio_init); \ No newline at end of file +INIT_BOARD_EXPORT(rt_hw_gpio_init); diff --git a/bsp/k230/drivers/interdrv/rtc/drv_rtc.c b/bsp/k230/drivers/interdrv/rtc/drv_rtc.c index b4820dc79a13..f64db7826253 100644 --- a/bsp/k230/drivers/interdrv/rtc/drv_rtc.c +++ b/bsp/k230/drivers/interdrv/rtc/drv_rtc.c @@ -230,8 +230,8 @@ static void rtc_irq(int vector, void *param) static void rtc_date_time_set(struct k230_rtc_dev *dev, int year, int month, int day, \ int hour, int minute, int second, int week) { - rtc_date_t date; - rtc_time_t time; + rtc_date_t date = { 0 }; + rtc_time_t time = { 0 }; rtc_count_t count; volatile rtc_t *rtc = (rtc_t *)dev->base; @@ -318,8 +318,8 @@ static void rtc_alarm_set(struct k230_rtc_dev *dev, void *args) time_t t; struct tm p_tm; volatile rtc_t *rtc = (rtc_t *)dev->base; - rtc_alarm_time_t alarm_time; - rtc_alarm_date_t alarm_date; + rtc_alarm_time_t alarm_time = { 0 }; + rtc_alarm_date_t alarm_date = { 0 }; rtc_date_t date = rtc->date; int year, year_l, year_h, val; @@ -477,7 +477,7 @@ static int rt_hw_rtc_init(void) ret = rt_device_register(&rtc_dev.device, "rtc", RT_DEVICE_FLAG_RDWR); RT_ASSERT(ret == RT_EOK); - LOG_I("rtc driver register OK\n"); + LOG_D("rtc driver register OK"); rtc_alarm_stop(&rtc_dev); rtc_tick_stop(&rtc_dev); diff --git a/bsp/k230/rtconfig.h b/bsp/k230/rtconfig.h index 56556cfb936f..581e9cb1d76c 100644 --- a/bsp/k230/rtconfig.h +++ b/bsp/k230/rtconfig.h @@ -72,7 +72,7 @@ /* end of rt_strnlen options */ /* end of klibc options */ -#define RT_NAME_MAX 16 +#define RT_NAME_MAX 32 #define RT_USING_SMART #define RT_CPUS_NR 1 #define RT_ALIGN_SIZE 8 @@ -122,7 +122,7 @@ #define RT_CONSOLEBUF_SIZE 256 #define RT_CONSOLE_DEVICE_NAME "uart0" #define RT_USING_CONSOLE_OUTPUT_CTL -#define RT_VER_NUM 0x50300 +#define RT_VER_NUM 0x50400 #define RT_USING_STDC_ATOMIC #define RT_BACKTRACE_LEVEL_MAX_NR 32 /* end of RT-Thread Kernel */ @@ -132,11 +132,14 @@ #define KERNEL_VADDR_START 0xffffffc000000000 #define ARCH_RISCV #define ARCH_RISCV_FPU -#define ARCH_RISCV_VECTOR -#define ARCH_VECTOR_VLEN_128 -#define ARCH_RISCV_FPU_D #define ARCH_RISCV64 +#define ARCH_RISCV_XUANTIE + +/* RISC-V Architecture Configuration */ + +/* end of RISC-V Architecture Configuration */ #define ARCH_USING_NEW_CTX_SWITCH +#define CONFIG_XUANTIE_SVPBMT 1 #define ARCH_REMAP_KERNEL /* RT-Thread Components */ @@ -166,27 +169,6 @@ #define DFS_USING_POSIX #define DFS_USING_WORKDIR #define DFS_FD_MAX 16 -#define RT_USING_DFS_V2 -#define RT_USING_DFS_ELMFAT - -/* elm-chan's FatFs, Generic FAT Filesystem Module */ - -#define RT_DFS_ELM_CODE_PAGE 437 -#define RT_DFS_ELM_WORD_ACCESS -#define RT_DFS_ELM_USE_LFN_3 -#define RT_DFS_ELM_USE_LFN 3 -#define RT_DFS_ELM_LFN_UNICODE_0 -#define RT_DFS_ELM_LFN_UNICODE 0 -#define RT_DFS_ELM_MAX_LFN 255 -#define RT_DFS_ELM_DRIVES 2 -#define RT_DFS_ELM_MAX_SECTOR_SIZE 512 -#define RT_DFS_ELM_REENTRANT -#define RT_DFS_ELM_MUTEX_TIMEOUT 3000 -/* end of elm-chan's FatFs, Generic FAT Filesystem Module */ -#define RT_USING_DFS_DEVFS -#define RT_USING_DFS_PTYFS -#define RT_USING_DFS_CROMFS -#define RT_USING_DFS_TMPFS #define RT_USING_PAGECACHE /* page cache config */ @@ -213,11 +195,12 @@ #define RT_SERIAL_RB_BUFSZ 64 #define RT_USING_SERIAL_BYPASS #define RT_USING_CLOCK_TIME -#define CLOCK_TIMER_FREQ 0 +#define CLOCK_TIMER_FREQ 25000000 #define RT_USING_NULL #define RT_USING_ZERO #define RT_USING_RANDOM #define RT_USING_RTC +#define RT_USING_SOFT_RTC #define RT_USING_SDIO #define RT_SDIO_STACK_SIZE 8192 #define RT_SDIO_THREAD_PRIORITY 15 @@ -265,6 +248,8 @@ /* Interprocess Communication (IPC) */ +#define RT_USING_POSIX_PIPE +#define RT_USING_POSIX_PIPE_SIZE 2048 /* Socket is in the 'Network' category */ @@ -283,6 +268,12 @@ #define SAL_USING_LWIP /* end of Docking with protocol stacks */ #define SAL_USING_POSIX +#define RT_USING_AF_UNIX +#define AF_UNIX_DGRAM_MAX_SIZE 4096 +#define AF_UNIX_DGRAM_QUEUE_LEN 16 +#define AF_UNIX_STREAM_BUFFER_SIZE 4096 +#define AF_UNIX_LISTEN_BACKLOG_MAX 16 +#define AF_UNIX_RIGHTS_MAX 16 #define RT_USING_NETDEV #define NETDEV_USING_IFCONFIG #define NETDEV_USING_PING @@ -332,7 +323,9 @@ #define LWIP_SO_SNDTIMEO 1 #define LWIP_SO_RCVBUF 1 #define LWIP_SO_LINGER 0 -#define LWIP_NETIF_LOOPBACK 0 +#define RT_LWIP_NETIF_LOOPBACK +#define RT_LWIP_USING_LOOPBACK +#define LWIP_NETIF_LOOPBACK 1 #define RT_LWIP_USING_PING /* end of Network */ @@ -361,7 +354,6 @@ /* end of Memory management */ #define RT_USING_LWP #define LWP_DEBUG -#define LWP_DEBUG_INIT #define LWP_USING_RUNTIME #define RT_LWP_MAX_NR 30 #define LWP_TASK_STACK_SIZE 16384 @@ -386,7 +378,6 @@ /* IoT - internet of things */ - /* Wi-Fi */ /* Marvell WiFi */ @@ -480,6 +471,10 @@ /* end of Kendryte SDK */ +/* MM32 HAL & SDK Drivers */ + +/* end of MM32 HAL & SDK Drivers */ + /* WCH HAL & SDK Drivers */ /* end of WCH HAL & SDK Drivers */ @@ -511,6 +506,10 @@ /* FT32 HAL & SDK Drivers */ /* end of FT32 HAL & SDK Drivers */ + +/* NOVOSNS Drivers */ + +/* end of NOVOSNS Drivers */ /* end of HAL & SDK Drivers */ /* sensors drivers */ @@ -543,13 +542,10 @@ /* entertainment: terminal games and other interesting software packages */ /* end of entertainment: terminal games and other interesting software packages */ -#define PKG_USING_ZLIB -#define PKG_USING_ZLIB_LATEST_VERSION /* end of miscellaneous packages */ /* Arduino libraries */ - /* Projects and Demos */ /* end of Projects and Demos */ @@ -601,11 +597,23 @@ #define BSP_USING_HARDLOCK #define BSP_USING_SDIO #define BSP_USING_SDIO0 -#define BSP_SD_MNT_DEVNAME "sd0p1" +#define BSP_SD_MNT_DEVNAME "sd0p0" /* end of Drivers Configuration */ +#define SOC_K230D #define BOARD_C908 #define __STACKSIZE__ 65536 -#define BSP_ROOTFS_TYPE_ELMFAT -#define BSP_RISCV_FPU_D +#define BSP_ROOTFS_TYPE_EXT4 +#define BSP_RISCV_FPU_SOFT +#define RT_USING_DFS_V2 +#define RT_USING_DFS_DEVFS +#define RT_USING_DFS_PTYFS +#define RT_USING_DFS_PROCFS +#define RT_USING_DFS_CROMFS +#define RT_USING_DFS_TMPFS +#define PKG_USING_LWEXT4 +#define RT_USING_DFS_LWEXT4 +#define PKG_USING_LWEXT4_LATEST_VERSION +#define PKG_USING_ZLIB +#define PKG_USING_ZLIB_LATEST_VERSION #endif