From 0f26ffa7a26117396e2763fa74bf397cf907efe3 Mon Sep 17 00:00:00 2001 From: bigmagic Date: Sun, 5 Apr 2020 13:29:29 +0800 Subject: [PATCH 1/8] add ls2k bsp --- bsp/ls2kdev/.config | 435 ++++++++++++++++++++++++++++ bsp/ls2kdev/Kconfig | 32 ++ bsp/ls2kdev/README.md | 8 + bsp/ls2kdev/SConscript | 12 + bsp/ls2kdev/SConstruct | 39 +++ bsp/ls2kdev/applications/SConscript | 8 + bsp/ls2kdev/applications/main.c | 17 ++ bsp/ls2kdev/drivers/SConscript | 10 + bsp/ls2kdev/drivers/board.c | 99 +++++++ bsp/ls2kdev/drivers/board.h | 24 ++ bsp/ls2kdev/drivers/drv_uart.c | 178 ++++++++++++ bsp/ls2kdev/drivers/drv_uart.h | 114 ++++++++ bsp/ls2kdev/drivers/interrupt.c | 89 ++++++ bsp/ls2kdev/drivers/ls2k1000.h | 13 + bsp/ls2kdev/mipssim_ram.lds | 141 +++++++++ bsp/ls2kdev/rtconfig.h | 168 +++++++++++ bsp/ls2kdev/rtconfig.py | 60 ++++ libcpu/Kconfig | 3 + libcpu/mips/common/asm.h | 89 ++++++ libcpu/mips/common/entry_gcc.S | 25 +- libcpu/mips/common/mips_addrspace.h | 18 +- libcpu/mips/gs264/SConscript | 14 + libcpu/mips/gs264/cpuinit_gcc.S | 26 ++ 23 files changed, 1606 insertions(+), 16 deletions(-) create mode 100644 bsp/ls2kdev/.config create mode 100644 bsp/ls2kdev/Kconfig create mode 100644 bsp/ls2kdev/README.md create mode 100644 bsp/ls2kdev/SConscript create mode 100644 bsp/ls2kdev/SConstruct create mode 100644 bsp/ls2kdev/applications/SConscript create mode 100644 bsp/ls2kdev/applications/main.c create mode 100644 bsp/ls2kdev/drivers/SConscript create mode 100644 bsp/ls2kdev/drivers/board.c create mode 100644 bsp/ls2kdev/drivers/board.h create mode 100644 bsp/ls2kdev/drivers/drv_uart.c create mode 100644 bsp/ls2kdev/drivers/drv_uart.h create mode 100644 bsp/ls2kdev/drivers/interrupt.c create mode 100644 bsp/ls2kdev/drivers/ls2k1000.h create mode 100644 bsp/ls2kdev/mipssim_ram.lds create mode 100644 bsp/ls2kdev/rtconfig.h create mode 100644 bsp/ls2kdev/rtconfig.py create mode 100644 libcpu/mips/gs264/SConscript create mode 100644 libcpu/mips/gs264/cpuinit_gcc.S diff --git a/bsp/ls2kdev/.config b/bsp/ls2kdev/.config new file mode 100644 index 0000000000..00b8746e4f --- /dev/null +++ b/bsp/ls2kdev/.config @@ -0,0 +1,435 @@ +# +# Automatically generated file; DO NOT EDIT. +# RT-Thread Configuration +# + +# +# RT-Thread Kernel +# +CONFIG_RT_NAME_MAX=8 +# CONFIG_RT_USING_ARCH_DATA_TYPE is not set +# CONFIG_RT_USING_SMP is not set +CONFIG_RT_ALIGN_SIZE=4 +# 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=100 +CONFIG_RT_USING_OVERFLOW_CHECK=y +CONFIG_RT_USING_HOOK=y +CONFIG_RT_USING_IDLE_HOOK=y +CONFIG_RT_IDLE_HOOK_LIST_SIZE=4 +CONFIG_IDLE_THREAD_STACK_SIZE=2048 +CONFIG_RT_USING_TIMER_SOFT=y +CONFIG_RT_TIMER_THREAD_PRIO=4 +CONFIG_RT_TIMER_THREAD_STACK_SIZE=2048 +CONFIG_RT_DEBUG=y +# CONFIG_RT_DEBUG_COLOR is not set +# CONFIG_RT_DEBUG_INIT_CONFIG is not set +# CONFIG_RT_DEBUG_THREAD_CONFIG is not set +# CONFIG_RT_DEBUG_SCHEDULER_CONFIG is not set +# CONFIG_RT_DEBUG_IPC_CONFIG is not set +# CONFIG_RT_DEBUG_TIMER_CONFIG is not set +# CONFIG_RT_DEBUG_IRQ_CONFIG is not set +# CONFIG_RT_DEBUG_MEM_CONFIG is not set +# CONFIG_RT_DEBUG_SLAB_CONFIG is not set +# CONFIG_RT_DEBUG_MEMHEAP_CONFIG is not set +# CONFIG_RT_DEBUG_MODULE_CONFIG 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_SIGNALS is not set + +# +# Memory Management +# +CONFIG_RT_USING_MEMPOOL=y +# CONFIG_RT_USING_MEMHEAP is not set +# CONFIG_RT_USING_NOHEAP is not set +CONFIG_RT_USING_SMALL_MEM=y +# CONFIG_RT_USING_SLAB is not set +# CONFIG_RT_USING_MEMTRACE 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_INTERRUPT_INFO is not set +CONFIG_RT_USING_CONSOLE=y +CONFIG_RT_CONSOLEBUF_SIZE=128 +CONFIG_RT_CONSOLE_DEVICE_NAME="uart" +CONFIG_RT_VER_NUM=0x40003 +# CONFIG_RT_USING_CPU_FFS is not set +CONFIG_ARCH_MIPS64=y +# CONFIG_ARCH_CPU_STACK_GROWS_UPWARD 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 + +# +# C++ features +# +# CONFIG_RT_USING_CPLUSPLUS is not set + +# +# Command shell +# +CONFIG_RT_USING_FINSH=y +CONFIG_FINSH_THREAD_NAME="tshell" +CONFIG_FINSH_USING_HISTORY=y +CONFIG_FINSH_HISTORY_LINES=5 +CONFIG_FINSH_USING_SYMTAB=y +CONFIG_FINSH_USING_DESCRIPTION=y +# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set +CONFIG_FINSH_THREAD_PRIORITY=20 +CONFIG_FINSH_THREAD_STACK_SIZE=4096 +CONFIG_FINSH_CMD_SIZE=80 +# CONFIG_FINSH_USING_AUTH is not set +CONFIG_FINSH_USING_MSH=y +CONFIG_FINSH_USING_MSH_DEFAULT=y +# CONFIG_FINSH_USING_MSH_ONLY is not set +CONFIG_FINSH_ARG_MAX=10 + +# +# Device virtual file system +# +CONFIG_RT_USING_DFS=y +CONFIG_DFS_USING_WORKDIR=y +CONFIG_DFS_FILESYSTEMS_MAX=2 +CONFIG_DFS_FILESYSTEM_TYPES_MAX=2 +CONFIG_DFS_FD_MAX=16 +# CONFIG_RT_USING_DFS_MNTTABLE is not set +# 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_RAMFS is not set +# CONFIG_RT_USING_DFS_UFFS is not set +# CONFIG_RT_USING_DFS_JFFS2 is not set + +# +# Device Drivers +# +CONFIG_RT_USING_DEVICE_IPC=y +CONFIG_RT_PIPE_BUFSZ=512 +# CONFIG_RT_USING_SYSTEM_WORKQUEUE is not set +CONFIG_RT_USING_SERIAL=y +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_PIN=y +# CONFIG_RT_USING_ADC 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_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_HWCRYPTO is not set +# CONFIG_RT_USING_PULSE_ENCODER is not set +# CONFIG_RT_USING_INPUT_CAPTURE is not set +# CONFIG_RT_USING_WIFI is not set + +# +# Using USB +# +# CONFIG_RT_USING_USB_HOST is not set +# CONFIG_RT_USING_USB_DEVICE is not set + +# +# POSIX layer and C standard library +# +CONFIG_RT_USING_LIBC=y +# CONFIG_RT_USING_PTHREADS is not set +CONFIG_RT_USING_POSIX=y +# CONFIG_RT_USING_POSIX_MMAP is not set +# CONFIG_RT_USING_POSIX_TERMIOS is not set +# CONFIG_RT_USING_POSIX_AIO is not set +# CONFIG_RT_USING_MODULE is not set + +# +# Network +# + +# +# Socket abstraction layer +# +# CONFIG_RT_USING_SAL is not set + +# +# Network interface device +# +# CONFIG_RT_USING_NETDEV is not set + +# +# light weight TCP/IP stack +# +# CONFIG_RT_USING_LWIP is not set + +# +# AT commands +# +# CONFIG_RT_USING_AT is not set + +# +# VBUS(Virtual Software BUS) +# +# CONFIG_RT_USING_VBUS 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 + +# +# RT-Thread MIPS CPU +# +# CONFIG_RT_USING_FPU is not set + +# +# RT-Thread online packages +# + +# +# IoT - internet of things +# +# CONFIG_PKG_USING_PAHOMQTT 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_WEBTERMINAL is not set +# CONFIG_PKG_USING_CJSON is not set +# CONFIG_PKG_USING_JSMN is not set +# CONFIG_PKG_USING_LIBMODBUS is not set +# CONFIG_PKG_USING_FREEMODBUS is not set +# CONFIG_PKG_USING_LJSON is not set +# CONFIG_PKG_USING_EZXML 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 +# CONFIG_PKG_USING_COAP is not set +# CONFIG_PKG_USING_NOPOLL is not set +# CONFIG_PKG_USING_NETUTILS 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 + +# +# 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_IOTHUB is not set +# CONFIG_PKG_USING_JIOT-C-SDK is not set +# CONFIG_PKG_USING_NIMBLE 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_ONNX_PARSER is not set +# CONFIG_PKG_USING_ONNX_BACKEND 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 + +# +# security packages +# +# CONFIG_PKG_USING_MBEDTLS is not set +# CONFIG_PKG_USING_libsodium is not set +# CONFIG_PKG_USING_TINYCRYPT is not set + +# +# language packages +# +# CONFIG_PKG_USING_LUA is not set +# CONFIG_PKG_USING_JERRYSCRIPT is not set +# CONFIG_PKG_USING_MICROPYTHON is not set + +# +# multimedia packages +# +# 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 + +# +# 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_RDB is not set +# CONFIG_PKG_USING_QRCODE is not set +# CONFIG_PKG_USING_ULOG_EASYFLASH 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_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 + +# +# system packages +# +# CONFIG_PKG_USING_GUIENGINE is not set +# CONFIG_PKG_USING_CAIRO is not set +# CONFIG_PKG_USING_PIXMAN is not set +# CONFIG_PKG_USING_LWEXT4 is not set +# CONFIG_PKG_USING_PARTITION is not set +# CONFIG_PKG_USING_FAL is not set +# CONFIG_PKG_USING_SQLITE is not set +# CONFIG_PKG_USING_RTI is not set +# CONFIG_PKG_USING_LITTLEVGL2RTT is not set +# CONFIG_PKG_USING_CMSIS is not set +# CONFIG_PKG_USING_DFS_YAFFS is not set +# CONFIG_PKG_USING_LITTLEFS 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 + +# +# peripheral libraries and drivers +# +# CONFIG_PKG_USING_SENSORS_DRIVERS is not set +# CONFIG_PKG_USING_REALTEK_AMEBA is not set +# CONFIG_PKG_USING_SHT2X is not set +# CONFIG_PKG_USING_SHT3X is not set +# CONFIG_PKG_USING_STM32_SDIO is not set +# CONFIG_PKG_USING_ICM20608 is not set +# CONFIG_PKG_USING_U8G2 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_WM_LIBRARIES is not set +# CONFIG_PKG_USING_KENDRYTE_SDK is not set +# CONFIG_PKG_USING_INFRARED is not set +# CONFIG_PKG_USING_ROSSERIAL 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_AD7746 is not set +# CONFIG_PKG_USING_PCA9685 is not set +# CONFIG_PKG_USING_I2C_TOOLS is not set +# CONFIG_PKG_USING_NRF24L01 is not set +# CONFIG_PKG_USING_TOUCH_DRIVERS is not set +# CONFIG_PKG_USING_MAX17048 is not set +# CONFIG_PKG_USING_RPLIDAR is not set +# CONFIG_PKG_USING_AS608 is not set + +# +# miscellaneous packages +# +# 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_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_DSTR is not set +# CONFIG_PKG_USING_TINYFRAME is not set +# CONFIG_PKG_USING_KENDRYTE_DEMO is not set +# CONFIG_PKG_USING_DIGITALCTRL is not set +# CONFIG_PKG_USING_UPACKER is not set +# CONFIG_PKG_USING_UPARAM is not set + +# +# 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 +# CONFIG_PKG_USING_HELLO is not set +# CONFIG_PKG_USING_VI is not set +# CONFIG_PKG_USING_NNOM is not set +# CONFIG_PKG_USING_LIBANN is not set +# CONFIG_PKG_USING_ELAPACK is not set +# CONFIG_PKG_USING_ARMv7M_DWT is not set +# CONFIG_PKG_USING_VT100 is not set +# CONFIG_PKG_USING_ULAPACK is not set +# CONFIG_PKG_USING_UKAL is not set + +# +# Privated Packages of RealThread +# +# CONFIG_PKG_USING_CODEC is not set +# CONFIG_PKG_USING_PLAYER is not set +# CONFIG_PKG_USING_MPLAYER is not set +# CONFIG_PKG_USING_PERSIMMON_SRC is not set +# CONFIG_PKG_USING_JS_PERSIMMON is not set +# CONFIG_PKG_USING_JERRYSCRIPT_WIN32 is not set + +# +# Network Utilities +# +# CONFIG_PKG_USING_WICED is not set +# CONFIG_PKG_USING_CLOUDSDK is not set +# CONFIG_PKG_USING_POWER_MANAGER is not set +# CONFIG_PKG_USING_RT_OTA is not set +# CONFIG_PKG_USING_RDBD_SRC is not set +# CONFIG_PKG_USING_RTINSIGHT is not set +# CONFIG_PKG_USING_SMARTCONFIG is not set +# CONFIG_PKG_USING_RTX is not set +# CONFIG_RT_USING_TESTCASE is not set +# CONFIG_PKG_USING_NGHTTP2 is not set +# CONFIG_PKG_USING_AVS is not set +# CONFIG_PKG_USING_JOYLINK is not set +# CONFIG_PKG_USING_STS is not set +# CONFIG_PKG_USING_DLMS is not set +# CONFIG_PKG_USING_AUDIO_FRAMEWORK is not set +# CONFIG_PKG_USING_ZBAR is not set +CONFIG_SOC_LS2K1000=y diff --git a/bsp/ls2kdev/Kconfig b/bsp/ls2kdev/Kconfig new file mode 100644 index 0000000000..5cfb6892ff --- /dev/null +++ b/bsp/ls2kdev/Kconfig @@ -0,0 +1,32 @@ +mainmenu "RT-Thread Configuration" + +config BSP_DIR + string + option env="BSP_ROOT" + default "." + +config RTT_DIR + string + option env="RTT_ROOT" + default "../.." + +# you can change the RTT_ROOT default "../.." to your rtthread_root, +# example : default "F:/git_repositories/rt-thread" + +config PKGS_DIR + string + option env="PKGS_ROOT" + default "packages" + +source "$RTT_DIR/Kconfig" +source "$RTT_DIR/libcpu/mips/common/Kconfig" +source "$PKGS_DIR/Kconfig" + +config SOC_LS2K1000 + bool + select ARCH_MIPS64 + select RT_USING_COMPONENTS_INIT + select RT_USING_USER_MAIN + select RT_USING_DEVICE + default y + \ No newline at end of file diff --git a/bsp/ls2kdev/README.md b/bsp/ls2kdev/README.md new file mode 100644 index 0000000000..9e3ce3aa1e --- /dev/null +++ b/bsp/ls2kdev/README.md @@ -0,0 +1,8 @@ +ls2k 板级支持包 + + +--- + +## 1. 简介 + +本bsp在龙芯派上运行 \ No newline at end of file diff --git a/bsp/ls2kdev/SConscript b/bsp/ls2kdev/SConscript new file mode 100644 index 0000000000..0992612410 --- /dev/null +++ b/bsp/ls2kdev/SConscript @@ -0,0 +1,12 @@ +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/ls2kdev/SConstruct b/bsp/ls2kdev/SConstruct new file mode 100644 index 0000000000..c605363062 --- /dev/null +++ b/bsp/ls2kdev/SConstruct @@ -0,0 +1,39 @@ +import os +import sys +import rtconfig + +from rtconfig import RTT_ROOT + +sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')] +from building import * + +TARGET = 'rtthread.' + rtconfig.TARGET_EXT + +rtconfig.AFLAGS += ' -I' + str(Dir('#')) + +DefaultEnvironment(tools=[]) +env = Environment(tools = ['mingw'], + AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS, + CC = rtconfig.CC, CCFLAGS = rtconfig.CFLAGS, + 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) + +rtconfig.LFLAGS += " -Ttext 0xffffffff80200000" +env.Replace(LINKFLAGS = rtconfig.LFLAGS) + +if GetDepend('RT_USING_FPU'): + env['CCFLAGS'] = env['CCFLAGS'].replace('-msoft-float', '-mhard-float') + env['ASFLAGS'] = env['ASFLAGS'].replace('-msoft-float', '-mhard-float') + env['CXXFLAGS'] = env['CXXFLAGS'].replace('-msoft-float', '-mhard-float') + env['LINKFLAGS'] = env['LINKFLAGS'].replace('-msoft-float', '-mhard-float') + +# make a building +DoBuilding(TARGET, objs) diff --git a/bsp/ls2kdev/applications/SConscript b/bsp/ls2kdev/applications/SConscript new file mode 100644 index 0000000000..fb5ce2ce93 --- /dev/null +++ b/bsp/ls2kdev/applications/SConscript @@ -0,0 +1,8 @@ +from building import * + +cwd = GetCurrentDir() +src = Glob('*.c') + +group = DefineGroup('Applications', src, depend = ['']) + +Return('group') diff --git a/bsp/ls2kdev/applications/main.c b/bsp/ls2kdev/applications/main.c new file mode 100644 index 0000000000..54691f0f89 --- /dev/null +++ b/bsp/ls2kdev/applications/main.c @@ -0,0 +1,17 @@ +/* + * Copyright (c) 2006-2020, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-04-05 bigmagic first version + */ + +#include + +int main(int argc, char** argv) +{ + rt_kprintf("ls2k1000:hello rtthread!\n"); + return 0; +} diff --git a/bsp/ls2kdev/drivers/SConscript b/bsp/ls2kdev/drivers/SConscript new file mode 100644 index 0000000000..d5542b768f --- /dev/null +++ b/bsp/ls2kdev/drivers/SConscript @@ -0,0 +1,10 @@ +from building import * + +cwd = GetCurrentDir() +src = Glob('*.c') + Glob('*.cpp') + Glob('*_gcc.S') + +CPPPATH = [cwd] + +group = DefineGroup('Drivers', src, depend = [''], CPPPATH = CPPPATH) + +Return('group') diff --git a/bsp/ls2kdev/drivers/board.c b/bsp/ls2kdev/drivers/board.c new file mode 100644 index 0000000000..3edbae9ee7 --- /dev/null +++ b/bsp/ls2kdev/drivers/board.c @@ -0,0 +1,99 @@ +/* + * Copyright (c) 2006-2020, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-04-05 bigmagic Initial version + */ + +#include +#include + +#include "mips_regs.h" +#include "exception.h" +#include "drv_uart.h" +#include "board.h" +/** + * this function will reset CPU + * + */ +void rt_hw_cpu_reset(void) +{ + rt_kprintf("reboot system...\n"); + while (1); +} + +/** + * this function will shutdown CPU + * + */ +void rt_hw_cpu_shutdown(void) +{ + rt_kprintf("shutdown...\n"); + + while (1); +} + + +/** + * This is the timer interrupt service routine. + */ +void rt_hw_timer_handler(void) +{ + unsigned int count; + + count = read_c0_compare(); + write_c0_compare(count); + write_c0_count(0); + /* increase a OS tick */ + rt_tick_increase(); +} + +/** + * This function will initial OS timer + */ +void rt_hw_timer_init(void) +{ + write_c0_compare(CPU_HZ/2/RT_TICK_PER_SECOND); + write_c0_count(0); + mips_unmask_cpu_irq(7); +} + +/** + * Board level initialization + */ +void rt_hw_board_init(void) +{ + rt_hw_exception_init(); + /* init hardware interrupt */ + rt_hw_interrupt_init(); + + #ifdef RT_USING_FPU + /* init hardware fpu */ + rt_hw_fpu_init(); + #endif + +#ifdef RT_USING_SERIAL + /* init hardware UART device */ + rt_hw_uart_init(); + /* set console device */ + rt_console_set_device("uart"); +#endif + +#ifdef RT_USING_HEAP + rt_system_heap_init((void*)RT_HW_HEAP_BEGIN, (void*)RT_HW_HEAP_END); +#endif + + /* init operating system timer */ + rt_hw_timer_init(); + + +#ifdef RT_USING_COMPONENTS_INIT + rt_components_board_init(); +#endif + + rt_kprintf("Current SR: 0x%08x\n", read_c0_status()); + +} diff --git a/bsp/ls2kdev/drivers/board.h b/bsp/ls2kdev/drivers/board.h new file mode 100644 index 0000000000..df4b40fb78 --- /dev/null +++ b/bsp/ls2kdev/drivers/board.h @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2006-2020, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-04-05 bigmagic the first version + */ + +#ifndef BOARD_H__ +#define BOARD_H__ + +#include + +extern unsigned char __bss_end; + +#define CPU_HZ (100 * 1000 * 1000) +#define RT_HW_HEAP_BEGIN (void*)&__bss_end +#define RT_HW_HEAP_END (void*)(RT_HW_HEAP_BEGIN + 64 * 1024 * 1024) + +void rt_hw_board_init(void); + +#endif diff --git a/bsp/ls2kdev/drivers/drv_uart.c b/bsp/ls2kdev/drivers/drv_uart.c new file mode 100644 index 0000000000..428393dcc4 --- /dev/null +++ b/bsp/ls2kdev/drivers/drv_uart.c @@ -0,0 +1,178 @@ +/* + * Copyright (c) 2006-2020, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-04-05 bigmagic Initial version + */ + +/** + * @addtogroup ls2k + */ + +/*@{*/ + +#include +#include +#include +#include "drv_uart.h" + +#define TRUE 1 +#define FALSE 0 + +struct rt_uart_ls2k +{ + void *base; + rt_uint32_t IRQ; +}; + +static rt_err_t mipssim_uart_configure(struct rt_serial_device *serial, struct serial_configure *cfg) +{ + struct rt_uart_ls2k *uart_dev = RT_NULL; + + RT_ASSERT(serial != RT_NULL); + RT_ASSERT(cfg != RT_NULL); + + uart_dev = (struct rt_uart_ls2k *)serial->parent.user_data; + + UART_IER(uart_dev->base) = 0; /* clear interrupt */ + UART_FCR(uart_dev->base) = 0xc1; /* reset UART Rx/Tx */ + /* set databits, stopbits and parity. (8-bit data, 1 stopbit, no parity) */ + UART_LCR(uart_dev->base) = 0x3; + UART_MCR(uart_dev->base) = 0x3; + UART_LSR(uart_dev->base) = 0x60; + UART_MSR(uart_dev->base) = 0xb0; + + return RT_EOK; +} + +static rt_err_t mipssim_uart_control(struct rt_serial_device *serial, int cmd, void *arg) +{ + struct rt_uart_ls2k *uart_dev = RT_NULL; + + RT_ASSERT(serial != RT_NULL); + uart_dev = (struct rt_uart_ls2k *)serial->parent.user_data; + + switch (cmd) + { + case RT_DEVICE_CTRL_CLR_INT: /* Disable RX IRQ */ + rt_hw_interrupt_mask(uart_dev->IRQ); + break; + + case RT_DEVICE_CTRL_SET_INT: /* Enable RX IRQ */ + rt_hw_interrupt_umask(uart_dev->IRQ); + UART_IER(uart_dev->base) |= (IER_IRxE|IER_ILE); + break; + + default: + break; + } + + return RT_EOK; + +} + +static rt_bool_t uart_is_transmit_empty(struct rt_uart_ls2k *uart_dev) +{ + unsigned char status = UART_LSR(uart_dev->base); + + if (status & (UARTLSR_TE | UARTLSR_TFE)) + { + return TRUE; + } + else + { + return FALSE; + } +} + +static int mipssim_uart_putc(struct rt_serial_device *serial, char c) +{ + struct rt_uart_ls2k *uart_dev = RT_NULL; + + RT_ASSERT(serial != RT_NULL); + + uart_dev = (struct rt_uart_ls2k *)serial->parent.user_data; + + while (FALSE == uart_is_transmit_empty(uart_dev)) + ; + + UART_DAT(uart_dev->base) = c; + + return 1; +} + +static int mipssim_uart_getc(struct rt_serial_device *serial) +{ + struct rt_uart_ls2k *uart_dev = RT_NULL; + + RT_ASSERT(serial != RT_NULL); + + uart_dev = (struct rt_uart_ls2k *)serial->parent.user_data; + + if (LSR_RXRDY & UART_LSR(uart_dev->base)) + { + return UART_DAT(uart_dev->base); + } + + return -1; +} + +/* UART interrupt handler */ +static void uart_irq_handler(int vector, void *param) +{ + struct rt_serial_device *serial = (struct rt_serial_device *)param; + struct rt_uart_ls2k *uart_dev = RT_NULL; + + RT_ASSERT(serial != RT_NULL); + + uart_dev = (struct rt_uart_ls2k *)serial->parent.user_data; + unsigned char iir = UART_IIR(uart_dev->base); + + /* Find out interrupt reason */ + if ((IIR_RXTOUT & iir) || (IIR_RXRDY & iir)) + { + rt_interrupt_enter(); + rt_hw_serial_isr(serial, RT_SERIAL_EVENT_RX_IND); + rt_interrupt_leave(); + } + +} + +static const struct rt_uart_ops mipssim_uart_ops = +{ + mipssim_uart_configure, + mipssim_uart_control, + mipssim_uart_putc, + mipssim_uart_getc, +}; + +struct rt_uart_ls2k uart_dev0 = +{ + (void *)UART0_BASE, + 4, +}; +struct rt_serial_device serial; + + +void rt_hw_uart_init(void) +{ + struct rt_uart_ls2k *uart; + struct serial_configure config = RT_SERIAL_CONFIG_DEFAULT; + + uart = &uart_dev0; + + serial.ops = &mipssim_uart_ops; + serial.config = config; + + rt_hw_interrupt_install(uart->IRQ, uart_irq_handler, &serial, "UART"); + + /* register UART device */ + rt_hw_serial_register(&serial, + "uart", + RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX, + uart); +} +/*@}*/ diff --git a/bsp/ls2kdev/drivers/drv_uart.h b/bsp/ls2kdev/drivers/drv_uart.h new file mode 100644 index 0000000000..95c69a0442 --- /dev/null +++ b/bsp/ls2kdev/drivers/drv_uart.h @@ -0,0 +1,114 @@ +/* + * Copyright (c) 2006-2020, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2019-04-05 bigmagic Initial version + */ + +#ifndef _DRV_UART_H__ +#define _DRV_UART_H__ + +#include "ls2k1000.h" +#include + +/* UART registers */ +#define UART_DAT(base) HWREG8(base + 0x00) +#define UART_IER(base) HWREG8(base + 0x01) +#define UART_IIR(base) HWREG8(base + 0x02) +#define UART_FCR(base) HWREG8(base + 0x02) +#define UART_LCR(base) HWREG8(base + 0x03) +#define UART_MCR(base) HWREG8(base + 0x04) +#define UART_LSR(base) HWREG8(base + 0x05) +#define UART_MSR(base) HWREG8(base + 0x06) + +#define UART_LSB(base) HWREG8(base + 0x00) +#define UART_MSB(base) HWREG8(base + 0x01) + +/* interrupt enable register */ +#define IER_IRxE 0x1 +#define IER_ITxE 0x2 +#define IER_ILE 0x4 +#define IER_IME 0x8 + +/* interrupt identification register */ +#define IIR_IMASK 0xf /* mask */ +#define IIR_RXTOUT 0xc /* receive timeout */ +#define IIR_RLS 0x6 /* receive line status */ +#define IIR_RXRDY 0x4 /* receive ready */ +#define IIR_TXRDY 0x2 /* transmit ready */ +#define IIR_NOPEND 0x1 /* nothing */ +#define IIR_MLSC 0x0 /* modem status */ +#define IIR_FIFO_MASK 0xc0 /* set if FIFOs are enabled */ + +/* fifo control register */ +#define FIFO_ENABLE 0x01 /* enable fifo */ +#define FIFO_RCV_RST 0x02 /* reset receive fifo */ +#define FIFO_XMT_RST 0x04 /* reset transmit fifo */ +#define FIFO_DMA_MODE 0x08 /* enable dma mode */ +#define FIFO_TRIGGER_1 0x00 /* trigger at 1 char */ +#define FIFO_TRIGGER_4 0x40 /* trigger at 4 chars */ +#define FIFO_TRIGGER_8 0x80 /* trigger at 8 chars */ +#define FIFO_TRIGGER_14 0xc0 /* trigger at 14 chars */ + +// 线路控制寄存器 +/* character format control register */ +#define CFCR_DLAB 0x80 /* divisor latch */ +#define CFCR_SBREAK 0x40 /* send break */ +#define CFCR_PZERO 0x30 /* zero parity */ +#define CFCR_PONE 0x20 /* one parity */ +#define CFCR_PEVEN 0x10 /* even parity */ +#define CFCR_PODD 0x00 /* odd parity */ +#define CFCR_PENAB 0x08 /* parity enable */ +#define CFCR_STOPB 0x04 /* 2 stop bits */ +#define CFCR_8BITS 0x03 /* 8 data bits */ +#define CFCR_7BITS 0x02 /* 7 data bits */ +#define CFCR_6BITS 0x01 /* 6 data bits */ +#define CFCR_5BITS 0x00 /* 5 data bits */ + +/* modem control register */ +#define MCR_LOOPBACK 0x10 /* loopback */ +#define MCR_IENABLE 0x08 /* output 2 = int enable */ +#define MCR_DRS 0x04 /* output 1 = xxx */ +#define MCR_RTS 0x02 /* enable RTS */ +#define MCR_DTR 0x01 /* enable DTR */ + +/* line status register */ +#define LSR_RCV_FIFO 0x80 /* error in receive fifo */ +#define LSR_TSRE 0x40 /* transmitter empty */ +#define LSR_TXRDY 0x20 /* transmitter ready */ +#define LSR_BI 0x10 /* break detected */ +#define LSR_FE 0x08 /* framing error */ +#define LSR_PE 0x04 /* parity error */ +#define LSR_OE 0x02 /* overrun error */ +#define LSR_RXRDY 0x01 /* receiver ready */ +#define LSR_RCV_MASK 0x1f + + +/* UART interrupt enable register value */ +#define UARTIER_IME (1 << 3) +#define UARTIER_ILE (1 << 2) +#define UARTIER_ITXE (1 << 1) +#define UARTIER_IRXE (1 << 0) + +/* UART line control register value */ +#define UARTLCR_DLAB (1 << 7) +#define UARTLCR_BCB (1 << 6) +#define UARTLCR_SPB (1 << 5) +#define UARTLCR_EPS (1 << 4) +#define UARTLCR_PE (1 << 3) +#define UARTLCR_SB (1 << 2) + +/* UART line status register value */ +#define UARTLSR_ERROR (1 << 7) +#define UARTLSR_TE (1 << 6) +#define UARTLSR_TFE (1 << 5) +#define UARTLSR_BI (1 << 4) +#define UARTLSR_FE (1 << 3) +#define UARTLSR_PE (1 << 2) +#define UARTLSR_OE (1 << 1) +#define UARTLSR_DR (1 << 0) + +#endif diff --git a/bsp/ls2kdev/drivers/interrupt.c b/bsp/ls2kdev/drivers/interrupt.c new file mode 100644 index 0000000000..6473e5aa94 --- /dev/null +++ b/bsp/ls2kdev/drivers/interrupt.c @@ -0,0 +1,89 @@ +/* + * Copyright (c) 2006-2019, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-04-05 bigmagic Initial version + */ + +/** + * @addtogroup ls2k + */ + +/*@{*/ + +#include +#include +#include + +#define MAX_INTR 32 + +static struct rt_irq_desc irq_handle_table[MAX_INTR]; + +static void rt_hw_interrupt_handler(int vector, void *param) +{ + rt_kprintf("Unhandled interrupt %d occured!!!\n", vector); +} + +/** + * This function will initialize hardware interrupt + */ +void rt_hw_interrupt_init(void) +{ + rt_uint32_t idx; + rt_memset(irq_handle_table, 0x00, sizeof(irq_handle_table)); + for (idx = 0; idx < MAX_INTR; idx ++) + { + irq_handle_table[idx].handler = rt_hw_interrupt_handler; + } +} + +rt_isr_handler_t rt_hw_interrupt_install(int vector, rt_isr_handler_t handler, + void *param, const char *name) +{ + rt_isr_handler_t old_handler = RT_NULL; + + if (vector >= 0 && vector < MAX_INTR) + { + old_handler = irq_handle_table[vector].handler; + +#ifdef RT_USING_INTERRUPT_INFO + rt_strncpy(irq_handle_table[vector].name, name, RT_NAME_MAX); +#endif /* RT_USING_INTERRUPT_INFO */ + irq_handle_table[vector].handler = handler; + irq_handle_table[vector].param = param; + } + + return old_handler; +} + +void rt_hw_timer_handler(void); + +void rt_do_mips_cpu_irq(rt_uint32_t ip) +{ + void *param; + rt_isr_handler_t irq_func; + + if (ip == 7) { + rt_hw_timer_handler(); + } else { + irq_func = irq_handle_table[ip].handler; + param = irq_handle_table[ip].param; + + /* do interrupt */ + irq_func(ip, param); + } +} + +void rt_hw_interrupt_umask(int irq) +{ + mips_unmask_cpu_irq(irq); +} + +void rt_hw_interrupt_mask(int irq) +{ + mips_mask_cpu_irq(irq); +} +/*@}*/ diff --git a/bsp/ls2kdev/drivers/ls2k1000.h b/bsp/ls2kdev/drivers/ls2k1000.h new file mode 100644 index 0000000000..8c2d84bfaa --- /dev/null +++ b/bsp/ls2kdev/drivers/ls2k1000.h @@ -0,0 +1,13 @@ +#ifndef _LS2K1000_H__ +#define _LS2K1000_H__ + +#include + +#define UART0_BASE_ADDR 0xbfe00000 +#define UART0_OFF 0x0 +#define UART0_BASE CKSEG1ADDR(UART0_BASE_ADDR + UART0_OFF) + +void rt_hw_timer_handler(void); +void rt_hw_uart_init(void); + +#endif \ No newline at end of file diff --git a/bsp/ls2kdev/mipssim_ram.lds b/bsp/ls2kdev/mipssim_ram.lds new file mode 100644 index 0000000000..70385101c1 --- /dev/null +++ b/bsp/ls2kdev/mipssim_ram.lds @@ -0,0 +1,141 @@ +/* + * Copyright (c) 2006-2020, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-04-05 bigmagic Initial version + */ + +OUTPUT_ARCH(mips) +GROUP(-lgcc -lc) + +ENTRY(_start) +SECTIONS +{ + . = 0x80200000 ; + .text : + { + __ebase_entry = .; + KEEP(*(.exc_vectors)) + __ebase_end = .; + start = .; + *(.start); + . = ALIGN(4); + *(.text) + *(.text.*) + *(.rodata) + *(.rodata.*) + *(.rodata1) + *(.rodata1.*) + + + /* section information for finsh shell */ + . = ALIGN(4); + __fsymtab_start = .; + KEEP(*(FSymTab)) + __fsymtab_end = .; + . = ALIGN(4); + __vsymtab_start = .; + KEEP(*(VSymTab)) + __vsymtab_end = .; + . = ALIGN(4); + + . = ALIGN(4); + __rt_init_start = .; + KEEP(*(SORT(.rti_fn*))) + __rt_init_end = .; + . = ALIGN(4); + + . = ALIGN(4); + __rt_utest_tc_tab_start = .; + KEEP(*(UtestTcTab)) + __rt_utest_tc_tab_end = .; + . = ALIGN(4); + } + + .eh_frame_hdr : + { + *(.eh_frame_hdr) + *(.eh_frame_entry) + } + .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } + + . = ALIGN(4); + .data : + { + *(.data) + *(.data.*) + + *(.data1) + *(.data1.*) + + . = ALIGN(8); + _gp = ABSOLUTE(.); /* Base of small data */ + + *(.sdata) + *(.sdata.*) + } + + .stack : + { + . = ALIGN(8); + _system_stack_start = .; + . = . + 0x1000; + _system_stack = .; + } + + .sbss : + { + __bss_start = .; + *(.sbss) + *(.sbss.*) + *(.dynsbss) + *(.scommon) + } + + .bss : + { + *(.bss) + *(.bss.*) + *(.dynbss) + *(COMMON) + __bss_end = .; + } + _end = .; + + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + /* DWARF debug sections. + * Symbols in the DWARF debugging sections are relative to the beginning + * of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } +} diff --git a/bsp/ls2kdev/rtconfig.h b/bsp/ls2kdev/rtconfig.h new file mode 100644 index 0000000000..f53fcc66f4 --- /dev/null +++ b/bsp/ls2kdev/rtconfig.h @@ -0,0 +1,168 @@ +#ifndef RT_CONFIG_H__ +#define RT_CONFIG_H__ + +/* Automatically generated file; DO NOT EDIT. */ +/* RT-Thread Configuration */ + +/* RT-Thread Kernel */ + +#define RT_NAME_MAX 8 +#define RT_ALIGN_SIZE 4 +#define RT_THREAD_PRIORITY_32 +#define RT_THREAD_PRIORITY_MAX 32 +#define RT_TICK_PER_SECOND 100 +#define RT_USING_OVERFLOW_CHECK +#define RT_USING_HOOK +#define RT_USING_IDLE_HOOK +#define RT_IDLE_HOOK_LIST_SIZE 4 +#define IDLE_THREAD_STACK_SIZE 2048 +#define RT_USING_TIMER_SOFT +#define RT_TIMER_THREAD_PRIO 4 +#define RT_TIMER_THREAD_STACK_SIZE 2048 +#define RT_DEBUG + +/* 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_USING_MEMPOOL +#define RT_USING_SMALL_MEM +#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 "uart" +#define RT_VER_NUM 0x40003 +#define ARCH_MIPS64 + +/* 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 + +/* C++ features */ + + +/* Command shell */ + +#define RT_USING_FINSH +#define FINSH_THREAD_NAME "tshell" +#define FINSH_USING_HISTORY +#define FINSH_HISTORY_LINES 5 +#define FINSH_USING_SYMTAB +#define FINSH_USING_DESCRIPTION +#define FINSH_THREAD_PRIORITY 20 +#define FINSH_THREAD_STACK_SIZE 4096 +#define FINSH_CMD_SIZE 80 +#define FINSH_USING_MSH +#define FINSH_USING_MSH_DEFAULT +#define FINSH_ARG_MAX 10 + +/* Device virtual file system */ + +#define RT_USING_DFS +#define DFS_USING_WORKDIR +#define DFS_FILESYSTEMS_MAX 2 +#define DFS_FILESYSTEM_TYPES_MAX 2 +#define DFS_FD_MAX 16 +#define RT_USING_DFS_DEVFS + +/* Device Drivers */ + +#define RT_USING_DEVICE_IPC +#define RT_PIPE_BUFSZ 512 +#define RT_USING_SERIAL +#define RT_SERIAL_USING_DMA +#define RT_SERIAL_RB_BUFSZ 64 +#define RT_USING_PIN + +/* Using USB */ + + +/* POSIX layer and C standard library */ + +#define RT_USING_LIBC +#define RT_USING_POSIX + +/* Network */ + +/* Socket abstraction layer */ + + +/* Network interface device */ + + +/* light weight TCP/IP stack */ + + +/* AT commands */ + + +/* VBUS(Virtual Software BUS) */ + + +/* Utilities */ + + +/* RT-Thread MIPS CPU */ + + +/* RT-Thread online packages */ + +/* IoT - internet of things */ + + +/* Wi-Fi */ + +/* Marvell WiFi */ + + +/* Wiced WiFi */ + + +/* IoT Cloud */ + + +/* security packages */ + + +/* language packages */ + + +/* multimedia packages */ + + +/* tools packages */ + + +/* system packages */ + + +/* peripheral libraries and drivers */ + + +/* miscellaneous packages */ + + +/* samples: kernel and components samples */ + + +/* Privated Packages of RealThread */ + + +/* Network Utilities */ + +#define SOC_LS2K1000 + +#endif diff --git a/bsp/ls2kdev/rtconfig.py b/bsp/ls2kdev/rtconfig.py new file mode 100644 index 0000000000..f3e3786525 --- /dev/null +++ b/bsp/ls2kdev/rtconfig.py @@ -0,0 +1,60 @@ +import os +# CPU options +ARCH='mips' +CPU ='gs264' + +if os.getenv('RTT_ROOT'): + RTT_ROOT = os.getenv('RTT_ROOT') +else: + RTT_ROOT = '../..' + +# toolchains options +CROSS_TOOL = 'gcc' + +if os.getenv('RTT_CC'): + CROSS_TOOL = os.getenv('RTT_CC') + +if CROSS_TOOL == 'gcc': + PLATFORM = 'gcc' + EXEC_PATH = "/opt/mips-2015.05-19-mips-sde-elf-i686-pc-linux-gnu/mips-2015.05/bin/" +# EXEC_PATH = r'D:\mgc\embedded\codebench\bin' +else: + print('================ERROR===========================') + print('Not support %s yet!' % CROSS_TOOL) + print('=================================================') + exit(0) + +if os.getenv('RTT_EXEC_PATH'): + EXEC_PATH = os.getenv('RTT_EXEC_PATH') + +BUILD = 'debug' + +PREFIX = 'mips-sde-elf-' +CC = PREFIX + 'gcc' +AS = PREFIX + 'gcc' +AR = PREFIX + 'ar' +LINK = PREFIX + 'gcc' +TARGET_EXT = 'elf' +SIZE = PREFIX + 'size' +OBJDUMP = PREFIX + 'objdump' +OBJCPY = PREFIX + 'objcopy' +READELF = PREFIX + 'readelf' + +DEVICE = ' -march=mips64r2 -mabi=64 -msoft-float' +CFLAGS = DEVICE + ' -EL -G0 -mno-abicalls -fno-pic -fno-builtin -fno-exceptions -ffunction-sections -fomit-frame-pointer' +AFLAGS = ' -c' + DEVICE + ' -EL -fno-pic -fno-builtin -mno-abicalls -x assembler-with-cpp' +LFLAGS = DEVICE + ' -nostartfiles -EL -Wl,--gc-sections,-Map=rtthread.map,-cref,-u,Reset_Handler -T mipssim_ram.lds' +CXXFLAGS = CFLAGS + +CPATH = '' +LPATH = '' + +if BUILD == 'debug': + CFLAGS += ' -O0 -gdwarf-2' + AFLAGS += ' -gdwarf-2' +else: + CFLAGS += ' -O2' + +DUMP_ACTION = OBJDUMP + ' -D -S $TARGET > rtt.asm\n' +READELF_ACTION = READELF + ' -a $TARGET > rtt.map\n' +POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n' diff --git a/libcpu/Kconfig b/libcpu/Kconfig index 3c8c73636d..95d3dd5228 100644 --- a/libcpu/Kconfig +++ b/libcpu/Kconfig @@ -77,6 +77,9 @@ config ARCH_ARM_CORTEX_A9 config ARCH_MIPS bool +config ARCH_MIPS64 + bool + config ARCH_MIPS_XBURST bool select ARCH_MIPS diff --git a/libcpu/mips/common/asm.h b/libcpu/mips/common/asm.h index ec451650d2..987a1fb2b6 100644 --- a/libcpu/mips/common/asm.h +++ b/libcpu/mips/common/asm.h @@ -14,6 +14,7 @@ #ifndef __ASM_H__ #define __ASM_H__ +#include /* * LEAF - declare leaf routine */ @@ -117,7 +118,94 @@ symbol = value /* * Macros to handle different pointer/register sizes for 32/64-bit code */ +#if defined SOC_LS2K1000 +/* + * Size of a register + */ +#define SZREG 8 +/* + * Use the following macros in assemblercode to load/store registers, + * pointers etc. + */ +#define REG_S sd +#define REG_L ld +#define REG_SUBU dsubu +#define REG_ADDU daddu + +/* + * How to add/sub/load/store/shift C int variables. + */ +#define INT_ADD dadd +#define INT_ADDU daddu +#define INT_ADDI daddi +#define INT_ADDIU daddiu +#define INT_SUB dsub +#define INT_SUBU dsubu +#define INT_L ld +#define INT_S sd +#define INT_SLL dsll +#define INT_SLLV dsllv +#define INT_SRL dsrl +#define INT_SRLV dsrlv +#define INT_SRA dsra +#define INT_SRAV dsrav + +/* + * Use the following macros in assemblercode to load/store registers, + * pointers etc. + */ +#define LONG_ADD dadd +#define LONG_ADDU daddu +#define LONG_ADDI daddi +#define LONG_ADDIU daddiu +#define LONG_SUB dsub +#define LONG_SUBU dsubu +#define LONG_L ld +#define LONG_S sd +#define LONG_SP sdp +#define LONG_SLL dsll +#define LONG_SLLV dsllv +#define LONG_SRL dsrl +#define LONG_SRLV dsrlv +#define LONG_SRA dsra +#define LONG_SRAV dsrav + +#define LONG .dword +#define LONGSIZE 8 +#define LONGMASK 7 +#define LONGLOG 3 + +/* + * How to add/sub/load/store/shift pointers. + */ +#define PTR_ADD dadd +#define PTR_ADDU daddu +#define PTR_ADDI daddi +#define PTR_ADDIU daddiu +#define PTR_SUB dsub +#define PTR_SUBU dsubu +#define PTR_L ld +#define PTR_S sd +#define PTR_LA dla +#define PTR_LI dli +#define PTR_SLL dsll +#define PTR_SLLV dsllv +#define PTR_SRL dsrl +#define PTR_SRLV dsrlv +#define PTR_SRA dsra +#define PTR_SRAV dsrav + +#define PTR_SCALESHIFT 3 + +#define PTR .dword +#define PTRSIZE 8 +#define PTRLOG 3 + +#define MFC0 dmfc0 +#define MTC0 dmtc0 + +#else /* * Size of a register */ @@ -211,6 +299,7 @@ symbol = value #define MFC0 mfc0 #define MTC0 mtc0 +#endif #define SSNOP sll zero, zero, 1 diff --git a/libcpu/mips/common/entry_gcc.S b/libcpu/mips/common/entry_gcc.S index b6f758e273..757774cfd9 100644 --- a/libcpu/mips/common/entry_gcc.S +++ b/libcpu/mips/common/entry_gcc.S @@ -13,6 +13,9 @@ #endif #include +#include + +#include "asm.h" #include .section ".start", "ax" @@ -25,27 +28,33 @@ _rtthread_entry: .globl _start _start: #endif - la ra, _rtthread_entry + PTR_LA ra, _rtthread_entry /* disable interrupt */ mtc0 zero, CP0_CAUSE mtc0 zero, CP0_STATUS # Set CPU to disable interrupt. ehb + +#ifdef ARCH_MIPS64 + dli t0, ST0_KX + MTC0 t0, CP0_STATUS +#endif + /* setup stack pointer */ - la sp, _system_stack - la gp, _gp + PTR_LA sp, _system_stack + PTR_LA gp, _gp bal rt_cpu_early_init nop /* clear bss */ - la t0, __bss_start - la t1, __bss_end + PTR_LA t0, __bss_start + PTR_LA t1, __bss_end + _clr_bss_loop: sw zero, 0(t0) - bne t0, t1, _clr_bss_loop - addiu t0, t0, 4 - + bne t1, t0, _clr_bss_loop + addu t0, 4 /* jump to RT-Thread RTOS */ jal rtthread_startup nop diff --git a/libcpu/mips/common/mips_addrspace.h b/libcpu/mips/common/mips_addrspace.h index 10fc2d6593..b057e1e917 100644 --- a/libcpu/mips/common/mips_addrspace.h +++ b/libcpu/mips/common/mips_addrspace.h @@ -24,7 +24,7 @@ #define _ATYPE_ __PTRDIFF_TYPE__ #define _ATYPE32_ int #define _ATYPE64_ __s64 -#ifdef CONFIG_64BIT +#ifdef ARCH_MIPS64 #define _CONST64_(x) x ## L #else #define _CONST64_(x) x ## LL @@ -54,7 +54,7 @@ #define XPHYSADDR(a) ((_ACAST64_(a)) & \ _CONST64_(0x000000ffffffffff)) -#ifdef CONFIG_64BIT +#ifdef ARCH_MIPS64 /* * Memory segments (64bit kernel mode addresses) @@ -90,6 +90,14 @@ #define KSEG2ADDR(a) (CPHYSADDR(a) | KSEG2BASE) #define KSEG3ADDR(a) (CPHYSADDR(a) | KSEG3BASE) +#define CKUSEG 0x00000000 +#define CKSEG0 0x80000000 +#define CKSEG1 0xa0000000 +#define CKSEG2 0xc0000000 +#define CKSEG3 0xe0000000 + +#endif + /* * Memory segments (32bit kernel mode addresses) * These are the traditional names used in the 32-bit universe. @@ -100,13 +108,7 @@ #define KSEG2BASE 0xc0000000 #define KSEG3BASE 0xe0000000 -#define CKUSEG 0x00000000 -#define CKSEG0 0x80000000 -#define CKSEG1 0xa0000000 -#define CKSEG2 0xc0000000 -#define CKSEG3 0xe0000000 -#endif /* * Cache modes for XKPHYS address conversion macros diff --git a/libcpu/mips/gs264/SConscript b/libcpu/mips/gs264/SConscript new file mode 100644 index 0000000000..b0ae20ba02 --- /dev/null +++ b/libcpu/mips/gs264/SConscript @@ -0,0 +1,14 @@ +# RT-Thread building script for component + +from building import * + +Import('rtconfig') + +cwd = GetCurrentDir() +src = Glob('*.c') + Glob('*.cpp') + Glob('*_gcc.S') +CPPPATH = [cwd] +ASFLAGS = '' + +group = DefineGroup('cpu', src, depend = [''], CPPPATH = CPPPATH, ASFLAGS = ASFLAGS) + +Return('group') diff --git a/libcpu/mips/gs264/cpuinit_gcc.S b/libcpu/mips/gs264/cpuinit_gcc.S new file mode 100644 index 0000000000..bd84663350 --- /dev/null +++ b/libcpu/mips/gs264/cpuinit_gcc.S @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2006-2020, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2020-04-05 bigmagic Initial version + */ + +#ifndef __ASSEMBLY__ +#define __ASSEMBLY__ +#endif + +#include + + .section ".text", "ax" + .set noreorder + + .globl rt_cpu_early_init +rt_cpu_early_init: + mfc0 t0, CP0_CONFIG + ori t0, 3 + mtc0 t0, CP0_CONFIG + ehb + jr ra \ No newline at end of file From 990f731b776055390db854f9cc980799e39247e8 Mon Sep 17 00:00:00 2001 From: bigmagic Date: Mon, 6 Apr 2020 15:46:28 +0800 Subject: [PATCH 2/8] fix mips64 some bug --- bsp/ls2kdev/.config | 22 ++------- bsp/ls2kdev/drivers/board.c | 7 ++- bsp/ls2kdev/drivers/board.h | 2 +- bsp/ls2kdev/{mipssim_ram.lds => ls2k_ram.lds} | 2 +- bsp/ls2kdev/rtconfig.h | 11 ++--- bsp/ls2kdev/rtconfig.py | 8 ++-- libcpu/mips/common/asm.h | 4 ++ libcpu/mips/common/context_gcc.S | 24 +++++----- libcpu/mips/common/entry_gcc.S | 4 +- libcpu/mips/common/exception.c | 17 ++++--- libcpu/mips/common/exception_gcc.S | 13 ++++-- libcpu/mips/common/mips_addrspace.h | 9 +++- libcpu/mips/common/mips_regs.h | 46 ++++++++++++++++++- libcpu/mips/common/ptrace.h | 25 ++++++++-- libcpu/mips/common/stack.c | 21 +++++---- libcpu/mips/common/stackframe.h | 4 +- 16 files changed, 138 insertions(+), 81 deletions(-) rename bsp/ls2kdev/{mipssim_ram.lds => ls2k_ram.lds} (99%) diff --git a/bsp/ls2kdev/.config b/bsp/ls2kdev/.config index 00b8746e4f..20cf03b625 100644 --- a/bsp/ls2kdev/.config +++ b/bsp/ls2kdev/.config @@ -21,11 +21,12 @@ CONFIG_RT_USING_IDLE_HOOK=y CONFIG_RT_IDLE_HOOK_LIST_SIZE=4 CONFIG_IDLE_THREAD_STACK_SIZE=2048 CONFIG_RT_USING_TIMER_SOFT=y -CONFIG_RT_TIMER_THREAD_PRIO=4 +CONFIG_RT_TIMER_THREAD_PRIO=20 CONFIG_RT_TIMER_THREAD_STACK_SIZE=2048 CONFIG_RT_DEBUG=y # CONFIG_RT_DEBUG_COLOR is not set -# CONFIG_RT_DEBUG_INIT_CONFIG is not set +CONFIG_RT_DEBUG_INIT_CONFIG=y +CONFIG_RT_DEBUG_INIT=1 # CONFIG_RT_DEBUG_THREAD_CONFIG is not set # CONFIG_RT_DEBUG_SCHEDULER_CONFIG is not set # CONFIG_RT_DEBUG_IPC_CONFIG is not set @@ -106,18 +107,7 @@ CONFIG_FINSH_ARG_MAX=10 # # Device virtual file system # -CONFIG_RT_USING_DFS=y -CONFIG_DFS_USING_WORKDIR=y -CONFIG_DFS_FILESYSTEMS_MAX=2 -CONFIG_DFS_FILESYSTEM_TYPES_MAX=2 -CONFIG_DFS_FD_MAX=16 -# CONFIG_RT_USING_DFS_MNTTABLE is not set -# 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_RAMFS is not set -# CONFIG_RT_USING_DFS_UFFS is not set -# CONFIG_RT_USING_DFS_JFFS2 is not set +# CONFIG_RT_USING_DFS is not set # # Device Drivers @@ -161,10 +151,6 @@ CONFIG_RT_USING_PIN=y # CONFIG_RT_USING_LIBC=y # CONFIG_RT_USING_PTHREADS is not set -CONFIG_RT_USING_POSIX=y -# CONFIG_RT_USING_POSIX_MMAP is not set -# CONFIG_RT_USING_POSIX_TERMIOS is not set -# CONFIG_RT_USING_POSIX_AIO is not set # CONFIG_RT_USING_MODULE is not set # diff --git a/bsp/ls2kdev/drivers/board.c b/bsp/ls2kdev/drivers/board.c index 3edbae9ee7..20b7a84516 100644 --- a/bsp/ls2kdev/drivers/board.c +++ b/bsp/ls2kdev/drivers/board.c @@ -70,10 +70,10 @@ void rt_hw_board_init(void) /* init hardware interrupt */ rt_hw_interrupt_init(); - #ifdef RT_USING_FPU +#ifdef RT_USING_FPU /* init hardware fpu */ rt_hw_fpu_init(); - #endif +#endif #ifdef RT_USING_SERIAL /* init hardware UART device */ @@ -88,8 +88,7 @@ void rt_hw_board_init(void) /* init operating system timer */ rt_hw_timer_init(); - - + #ifdef RT_USING_COMPONENTS_INIT rt_components_board_init(); #endif diff --git a/bsp/ls2kdev/drivers/board.h b/bsp/ls2kdev/drivers/board.h index df4b40fb78..6e2f85ec74 100644 --- a/bsp/ls2kdev/drivers/board.h +++ b/bsp/ls2kdev/drivers/board.h @@ -16,7 +16,7 @@ extern unsigned char __bss_end; #define CPU_HZ (100 * 1000 * 1000) -#define RT_HW_HEAP_BEGIN (void*)&__bss_end +#define RT_HW_HEAP_BEGIN KSEG1BASE//(void*)&__bss_end #define RT_HW_HEAP_END (void*)(RT_HW_HEAP_BEGIN + 64 * 1024 * 1024) void rt_hw_board_init(void); diff --git a/bsp/ls2kdev/mipssim_ram.lds b/bsp/ls2kdev/ls2k_ram.lds similarity index 99% rename from bsp/ls2kdev/mipssim_ram.lds rename to bsp/ls2kdev/ls2k_ram.lds index 70385101c1..8bec1e855b 100644 --- a/bsp/ls2kdev/mipssim_ram.lds +++ b/bsp/ls2kdev/ls2k_ram.lds @@ -14,7 +14,7 @@ GROUP(-lgcc -lc) ENTRY(_start) SECTIONS { - . = 0x80200000 ; + . = 0xffffffff82000000 ; .text : { __ebase_entry = .; diff --git a/bsp/ls2kdev/rtconfig.h b/bsp/ls2kdev/rtconfig.h index f53fcc66f4..80f068c5c0 100644 --- a/bsp/ls2kdev/rtconfig.h +++ b/bsp/ls2kdev/rtconfig.h @@ -17,9 +17,11 @@ #define RT_IDLE_HOOK_LIST_SIZE 4 #define IDLE_THREAD_STACK_SIZE 2048 #define RT_USING_TIMER_SOFT -#define RT_TIMER_THREAD_PRIO 4 +#define RT_TIMER_THREAD_PRIO 20 #define RT_TIMER_THREAD_STACK_SIZE 2048 #define RT_DEBUG +#define RT_DEBUG_INIT_CONFIG +#define RT_DEBUG_INIT 1 /* Inter-Thread communication */ @@ -71,12 +73,6 @@ /* Device virtual file system */ -#define RT_USING_DFS -#define DFS_USING_WORKDIR -#define DFS_FILESYSTEMS_MAX 2 -#define DFS_FILESYSTEM_TYPES_MAX 2 -#define DFS_FD_MAX 16 -#define RT_USING_DFS_DEVFS /* Device Drivers */ @@ -93,7 +89,6 @@ /* POSIX layer and C standard library */ #define RT_USING_LIBC -#define RT_USING_POSIX /* Network */ diff --git a/bsp/ls2kdev/rtconfig.py b/bsp/ls2kdev/rtconfig.py index f3e3786525..c8490a382f 100644 --- a/bsp/ls2kdev/rtconfig.py +++ b/bsp/ls2kdev/rtconfig.py @@ -40,10 +40,10 @@ OBJDUMP = PREFIX + 'objdump' OBJCPY = PREFIX + 'objcopy' READELF = PREFIX + 'readelf' -DEVICE = ' -march=mips64r2 -mabi=64 -msoft-float' -CFLAGS = DEVICE + ' -EL -G0 -mno-abicalls -fno-pic -fno-builtin -fno-exceptions -ffunction-sections -fomit-frame-pointer' -AFLAGS = ' -c' + DEVICE + ' -EL -fno-pic -fno-builtin -mno-abicalls -x assembler-with-cpp' -LFLAGS = DEVICE + ' -nostartfiles -EL -Wl,--gc-sections,-Map=rtthread.map,-cref,-u,Reset_Handler -T mipssim_ram.lds' +DEVICE = ' -march=mips64r2 -mabi=64 -msoft-float -EL' +CFLAGS = DEVICE + ' -G0 -mno-abicalls -fno-pic -fno-builtin -fno-exceptions -ffunction-sections -fomit-frame-pointer' +AFLAGS = ' -c' + DEVICE + ' -fno-pic -fno-builtin -mno-abicalls -x assembler-with-cpp' +LFLAGS = DEVICE + ' -nostartfiles -Wl,--gc-sections,-Map=rtthread.map,-cref,-u,Reset_Handler -T ls2k_ram.lds' CXXFLAGS = CFLAGS CPATH = '' diff --git a/libcpu/mips/common/asm.h b/libcpu/mips/common/asm.h index 987a1fb2b6..a16db1868e 100644 --- a/libcpu/mips/common/asm.h +++ b/libcpu/mips/common/asm.h @@ -261,7 +261,11 @@ symbol = value #define LONG_SRAV srav #define LONG .word +#ifdef ARCH_MIPS64 +#define LONGSIZE 8 +#else #define LONGSIZE 4 +#endif #define LONGMASK 3 #define LONGLOG 2 diff --git a/libcpu/mips/common/context_gcc.S b/libcpu/mips/common/context_gcc.S index 251fc81c3c..cdcdede39a 100644 --- a/libcpu/mips/common/context_gcc.S +++ b/libcpu/mips/common/context_gcc.S @@ -25,11 +25,11 @@ */ .globl rt_hw_context_switch rt_hw_context_switch: - mtc0 ra, CP0_EPC + MTC0 ra, CP0_EPC SAVE_ALL - sw sp, 0(a0) /* store sp in preempted tasks TCB */ - lw sp, 0(a1) /* get new task stack pointer */ + REG_S sp, 0(a0) /* store sp in preempted tasks TCB */ + REG_L sp, 0(a1) /* get new task stack pointer */ RESTORE_ALL_AND_RET @@ -39,7 +39,7 @@ rt_hw_context_switch: */ .globl rt_hw_context_switch_to rt_hw_context_switch_to: - lw sp, 0(a0) /* get new task stack pointer */ + REG_L sp, 0(a0) /* get new task stack pointer */ RESTORE_ALL_AND_RET /* @@ -50,17 +50,17 @@ rt_hw_context_switch_to: .globl rt_interrupt_to_thread .globl rt_hw_context_switch_interrupt rt_hw_context_switch_interrupt: - la t0, rt_thread_switch_interrupt_flag - lw t1, 0(t0) + PTR_LA t0, rt_thread_switch_interrupt_flag + REG_L t1, 0(t0) nop bnez t1, _reswitch nop li t1, 0x01 /* set rt_thread_switch_interrupt_flag to 1 */ sw t1, 0(t0) - la t0, rt_interrupt_from_thread /* set rt_interrupt_from_thread */ + PTR_LA t0, rt_interrupt_from_thread /* set rt_interrupt_from_thread */ sw a0, 0(t0) _reswitch: - la t0, rt_interrupt_to_thread /* set rt_interrupt_to_thread */ + PTR_LA t0, rt_interrupt_to_thread /* set rt_interrupt_to_thread */ sw a1, 0(t0) jr ra nop @@ -78,7 +78,7 @@ mips_irq_handle: /* let k0 keep the current context sp */ move k0, sp /* switch to kernel stack */ - la sp, _system_stack + PTR_LA sp, _system_stack jal rt_interrupt_enter nop @@ -96,7 +96,7 @@ mips_irq_handle: * if rt_thread_switch_interrupt_flag set, jump to * rt_hw_context_switch_interrupt_do and do not return */ - la k0, rt_thread_switch_interrupt_flag + PTR_LA k0, rt_thread_switch_interrupt_flag lw k1, 0(k0) beqz k1, spurious_interrupt nop @@ -106,12 +106,12 @@ mips_irq_handle: /* * switch to the new thread */ - la k0, rt_interrupt_from_thread + PTR_LA k0, rt_interrupt_from_thread lw k1, 0(k0) nop sw sp, 0(k1) /* store sp in preempted task TCB */ - la k0, rt_interrupt_to_thread + PTR_LA k0, rt_interrupt_to_thread lw k1, 0(k0) nop lw sp, 0(k1) /* get new task stack pointer */ diff --git a/libcpu/mips/common/entry_gcc.S b/libcpu/mips/common/entry_gcc.S index 757774cfd9..d1a0704809 100644 --- a/libcpu/mips/common/entry_gcc.S +++ b/libcpu/mips/common/entry_gcc.S @@ -31,8 +31,8 @@ _start: PTR_LA ra, _rtthread_entry /* disable interrupt */ - mtc0 zero, CP0_CAUSE - mtc0 zero, CP0_STATUS # Set CPU to disable interrupt. + MTC0 zero, CP0_CAUSE + MTC0 zero, CP0_STATUS # Set CPU to disable interrupt. ehb #ifdef ARCH_MIPS64 diff --git a/libcpu/mips/common/exception.c b/libcpu/mips/common/exception.c index de67e98199..11192955cf 100644 --- a/libcpu/mips/common/exception.c +++ b/libcpu/mips/common/exception.c @@ -19,10 +19,10 @@ /*@{*/ -extern rt_uint32_t __ebase_entry; -rt_uint32_t rt_interrupt_from_thread; -rt_uint32_t rt_interrupt_to_thread; -rt_uint32_t rt_thread_switch_interrupt_flag; +extern rt_ubase_t __ebase_entry; +rt_ubase_t rt_interrupt_from_thread; +rt_ubase_t rt_interrupt_to_thread; +rt_ubase_t rt_thread_switch_interrupt_flag; rt_base_t rt_hw_interrupt_disable(void) { @@ -101,7 +101,10 @@ static void install_default_exception_handler(void) int rt_hw_exception_init(void) { - rt_uint32_t ebase = (rt_uint32_t)&__ebase_entry; + rt_ubase_t ebase = (rt_ubase_t)&__ebase_entry; +#ifdef ARCH_MIPS64 + ebase |= 0xffffffff00000000; +#endif write_c0_ebase(ebase); clear_c0_status(ST0_BEV | ST0_ERL | ST0_EXL); clear_c0_status(ST0_IM | ST0_IE); @@ -114,12 +117,12 @@ int rt_hw_exception_init(void) void rt_general_exc_dispatch(struct pt_regs *regs) { - rt_uint32_t cause, exccode; + rt_ubase_t cause, exccode; exccode = (cause & CAUSEF_EXCCODE) >> CAUSEB_EXCCODE; if (exccode == 0) { - rt_uint32_t status, pending; + rt_ubase_t status, pending; status = read_c0_status(); pending = (cause & CAUSEF_IP) & (status & ST0_IM); if (pending & CAUSEF_IP0) diff --git a/libcpu/mips/common/exception_gcc.S b/libcpu/mips/common/exception_gcc.S index 176b60e594..9664438ac1 100644 --- a/libcpu/mips/common/exception_gcc.S +++ b/libcpu/mips/common/exception_gcc.S @@ -7,6 +7,11 @@ * Date Author Notes * 2019-12-04 Jiaxun Yang Initial version */ +#ifndef __ASSEMBLY__ +#define __ASSEMBLY__ +#endif + +#include .section ".exc_vectors", "ax" .extern tlb_refill_handler @@ -45,15 +50,15 @@ irq_exception: /* general exception handler */ _general_exception_handler: .set noreorder - la $k0, mips_irq_handle - jr $k0 + PTR_LA k0, mips_irq_handle + jr k0 nop .set reorder /* interrupt handler */ _irq_handler: .set noreorder - la $k0, mips_irq_handle - jr $k0 + PTR_LA k0, mips_irq_handle + jr k0 nop .set reorder diff --git a/libcpu/mips/common/mips_addrspace.h b/libcpu/mips/common/mips_addrspace.h index b057e1e917..f3bb60662e 100644 --- a/libcpu/mips/common/mips_addrspace.h +++ b/libcpu/mips/common/mips_addrspace.h @@ -75,6 +75,12 @@ #define CKSEG2ADDR(a) (CPHYSADDR(a) | CKSEG2) #define CKSEG3ADDR(a) (CPHYSADDR(a) | CKSEG3) +#define KUSEGBASE 0xffffffff00000000 +#define KSEG0BASE 0xffffffff80000000 +#define KSEG1BASE 0xffffffffa0000000 +#define KSEG2BASE 0xffffffffc0000000 +#define KSEG3BASE 0xffffffffe0000000 + #else #define CKSEG0ADDR(a) (CPHYSADDR(a) | KSEG0BASE) @@ -96,8 +102,6 @@ #define CKSEG2 0xc0000000 #define CKSEG3 0xe0000000 -#endif - /* * Memory segments (32bit kernel mode addresses) * These are the traditional names used in the 32-bit universe. @@ -108,6 +112,7 @@ #define KSEG2BASE 0xc0000000 #define KSEG3BASE 0xe0000000 +#endif /* diff --git a/libcpu/mips/common/mips_regs.h b/libcpu/mips/common/mips_regs.h index 7e1359fa33..a7db15d2ad 100644 --- a/libcpu/mips/common/mips_regs.h +++ b/libcpu/mips/common/mips_regs.h @@ -10,13 +10,14 @@ #ifndef _MIPS_REGS_H_ #define _MIPS_REGS_H_ - +#include #define REG_A0 4 #define REG_SP 29 #define REG_GP 28 #define REG_FP 30 #define REG_RA 31 +#ifdef ARCH_MIPS64 #define zero $0 /* wired zero */ #define AT $1 /* assembler temp - uppercase because of ".set at" */ #define v0 $2 /* return value */ @@ -56,6 +57,49 @@ #define s8 $30 /* same like fp! */ #define ra $31 /* return address */ +#else + +#define zero $0 /* wired zero */ +#define AT $at /* assembler temp - uppercase because of ".set at" */ +#define v0 $2 /* return value - caller saved */ +#define v1 $3 +#define a0 $4 /* argument registers */ +#define a1 $5 +#define a2 $6 +#define a3 $7 +#define a4 $8 /* arg reg 64 bit; caller saved in 32 bit */ +#define ta0 $8 +#define a5 $9 +#define ta1 $9 +#define a6 $10 +#define ta2 $10 +#define a7 $11 +#define ta3 $11 +#define t0 $12 /* caller saved */ +#define t1 $13 +#define t2 $14 +#define t3 $15 +#define s0 $16 /* callee saved */ +#define s1 $17 +#define s2 $18 +#define s3 $19 +#define s4 $20 +#define s5 $21 +#define s6 $22 +#define s7 $23 +#define t8 $24 /* caller saved */ +#define t9 $25 /* callee address for PIC/temp */ +#define jp $25 /* PIC jump register */ +#define k0 $26 /* kernel temporary */ +#define k1 $27 +#define gp $28 /* global pointer - caller saved for PIC */ +#define sp $29 /* stack pointer */ +#define fp $30 /* frame pointer */ +#define s8 $30 /* callee saved */ +#define ra $31 /* return address */ + +#endif + #define fv0 $f0 /* return value */ #define fv0f $f1 #define fv1 $f2 diff --git a/libcpu/mips/common/ptrace.h b/libcpu/mips/common/ptrace.h index cae57cbf4c..c048959053 100644 --- a/libcpu/mips/common/ptrace.h +++ b/libcpu/mips/common/ptrace.h @@ -14,6 +14,8 @@ #include "asm.h" #include "mips_regs.h" +#define HI_LO_SIZE 4 + #define FP_REG_SIZE 8 #define NUM_FPU_REGS 16 @@ -27,6 +29,7 @@ struct mips_fpu_struct { }; struct pt_regs { +#ifndef ARCH_MIPS64 /* Only O32 Need This! */ /* Pad bytes for argument save space on the stack. */ rt_uint32_t pad0[8]; @@ -41,6 +44,18 @@ struct pt_regs { rt_uint32_t cp0_badvaddr; rt_uint32_t cp0_cause; rt_uint32_t cp0_epc; +#else + /* Saved main processor registers. */ + unsigned long regs[32]; + + /* Saved special registers. */ + rt_uint32_t cp0_status; + rt_uint32_t hi; + rt_uint32_t lo; + unsigned long cp0_badvaddr; + rt_uint32_t cp0_cause; + unsigned long cp0_epc; +#endif #ifdef RT_USING_FPU /* FPU Registers */ @@ -52,7 +67,7 @@ struct pt_regs { #endif /* Note: For call stack o32 ABI has 0x8 shadowsoace Here */ -#define PT_R0 (0x8 * LONGSIZE) /* 0 */ +#define PT_R0 (0x0 * LONGSIZE) /* 0 */ #define PT_R1 ((PT_R0) + LONGSIZE) /* 1 */ #define PT_R2 ((PT_R1) + LONGSIZE) /* 2 */ #define PT_R3 ((PT_R2) + LONGSIZE) /* 3 */ @@ -89,8 +104,8 @@ struct pt_regs { * Saved special registers */ #define PT_STATUS ((PT_R31) + LONGSIZE) /* 32 */ -#define PT_HI ((PT_STATUS) + LONGSIZE) /* 33 */ -#define PT_LO ((PT_HI) + LONGSIZE) /* 34 */ +#define PT_HI ((PT_STATUS) + HI_LO_SIZE) /* 33 */ +#define PT_LO ((PT_HI) + HI_LO_SIZE) /* 34 */ #define PT_BADVADDR ((PT_LO) + LONGSIZE) /* 35 */ #define PT_CAUSE ((PT_BADVADDR) + LONGSIZE) /* 36 */ #define PT_EPC ((PT_CAUSE) + LONGSIZE) /* 37 */ @@ -115,9 +130,9 @@ struct pt_regs { #define PT_FPU_R28 ((PT_FPU_R26) + FP_REG_SIZE) #define PT_FPU_R30 ((PT_FPU_R28) + FP_REG_SIZE) #define PT_FPU_FCSR31 ((PT_FPU_R30) + FP_REG_SIZE) -#define PT_FPU_PAD0 ((PT_FPU_FCSR31) + LONGSIZE) +#define PT_FPU_PAD0 ((PT_FPU_FCSR31) + 4) -#define PT_FPU_END ((PT_FPU_PAD0) + LONGSIZE) +#define PT_FPU_END ((PT_FPU_PAD0) + 4) #define PT_SIZE PT_FPU_END #else #define PT_SIZE PT_REG_END diff --git a/libcpu/mips/common/stack.c b/libcpu/mips/common/stack.c index b0e613c7a7..b933b184e7 100644 --- a/libcpu/mips/common/stack.c +++ b/libcpu/mips/common/stack.c @@ -16,8 +16,8 @@ register rt_uint32_t $GP __asm__ ("$28"); rt_uint8_t *rt_hw_stack_init(void *tentry, void *parameter, rt_uint8_t *stack_addr, void *texit) { - static rt_uint32_t wSR=0; - static rt_uint32_t wGP; + static rt_ubase_t wSR=0; + static rt_ubase_t wGP; rt_uint8_t *stk; struct pt_regs *pt; @@ -25,26 +25,27 @@ rt_uint8_t *rt_hw_stack_init(void *tentry, void *parameter, rt_uint8_t *stack_ad rt_uint32_t i; /* Get stack aligned */ - stk = (rt_uint8_t *)RT_ALIGN_DOWN((rt_uint32_t)stack_addr, 8); + stk = (rt_uint8_t *)RT_ALIGN_DOWN((rt_ubase_t)stack_addr, 8); stk -= sizeof(struct pt_regs); pt = (struct pt_regs*)stk; +#ifndef ARCH_MIPS64 for (i = 0; i < 8; ++i) { pt->pad0[i] = 0xdeadbeef; } - +#endif /* Fill Stack register numbers */ for (i = 0; i < 32; ++i) { pt->regs[i] = 0xdeadbeef; } - pt->regs[REG_SP] = (rt_uint32_t)stk; - pt->regs[REG_A0] = (rt_uint32_t)parameter; - pt->regs[REG_GP] = (rt_uint32_t)$GP; - pt->regs[REG_FP] = (rt_uint32_t)0x0; - pt->regs[REG_RA] = (rt_uint32_t)texit; + pt->regs[REG_SP] = (rt_ubase_t)stk; + pt->regs[REG_A0] = (rt_ubase_t)parameter; + pt->regs[REG_GP] = (rt_ubase_t)$GP; + pt->regs[REG_FP] = (rt_ubase_t)0x0; + pt->regs[REG_RA] = (rt_ubase_t)texit; pt->hi = 0x0; pt->lo = 0x0; @@ -53,7 +54,7 @@ rt_uint8_t *rt_hw_stack_init(void *tentry, void *parameter, rt_uint8_t *stack_ad pt->cp0_status |= (ST0_CU1 | ST0_FR); #endif pt->cp0_cause = read_c0_cause(); - pt->cp0_epc = (rt_uint32_t)tentry; + pt->cp0_epc = (rt_ubase_t)tentry; pt->cp0_badvaddr = 0x0; return stk; diff --git a/libcpu/mips/common/stackframe.h b/libcpu/mips/common/stackframe.h index 77d55f6934..b5a038d1f6 100644 --- a/libcpu/mips/common/stackframe.h +++ b/libcpu/mips/common/stackframe.h @@ -159,11 +159,11 @@ .endm .macro RESTORE_TEMP - LONG_L $24, PT_LO(sp) + lw $24, PT_LO(sp) LONG_L $8, PT_R8(sp) LONG_L $9, PT_R9(sp) mtlo $24 - LONG_L $24, PT_HI(sp) + lw $24, PT_HI(sp) LONG_L $10, PT_R10(sp) LONG_L $11, PT_R11(sp) mthi $24 From c024e2e485c813aa1c70e079f61fe50a80d8215c Mon Sep 17 00:00:00 2001 From: bigmagic Date: Tue, 7 Apr 2020 11:26:30 +0800 Subject: [PATCH 3/8] add ls2k bsp config --- bsp/ls2kdev/.config | 9 +++------ bsp/ls2kdev/applications/main.c | 2 +- bsp/ls2kdev/rtconfig.h | 7 +------ libcpu/mips/common/exception.c | 6 +++--- libcpu/mips/common/stackframe.h | 4 ++-- 5 files changed, 10 insertions(+), 18 deletions(-) diff --git a/bsp/ls2kdev/.config b/bsp/ls2kdev/.config index 20cf03b625..d8a97b46b0 100644 --- a/bsp/ls2kdev/.config +++ b/bsp/ls2kdev/.config @@ -20,13 +20,10 @@ CONFIG_RT_USING_HOOK=y CONFIG_RT_USING_IDLE_HOOK=y CONFIG_RT_IDLE_HOOK_LIST_SIZE=4 CONFIG_IDLE_THREAD_STACK_SIZE=2048 -CONFIG_RT_USING_TIMER_SOFT=y -CONFIG_RT_TIMER_THREAD_PRIO=20 -CONFIG_RT_TIMER_THREAD_STACK_SIZE=2048 +# CONFIG_RT_USING_TIMER_SOFT is not set CONFIG_RT_DEBUG=y # CONFIG_RT_DEBUG_COLOR is not set -CONFIG_RT_DEBUG_INIT_CONFIG=y -CONFIG_RT_DEBUG_INIT=1 +# CONFIG_RT_DEBUG_INIT_CONFIG is not set # CONFIG_RT_DEBUG_THREAD_CONFIG is not set # CONFIG_RT_DEBUG_SCHEDULER_CONFIG is not set # CONFIG_RT_DEBUG_IPC_CONFIG is not set @@ -65,7 +62,7 @@ CONFIG_RT_USING_DEVICE=y # CONFIG_RT_USING_DEVICE_OPS is not set # CONFIG_RT_USING_INTERRUPT_INFO is not set CONFIG_RT_USING_CONSOLE=y -CONFIG_RT_CONSOLEBUF_SIZE=128 +CONFIG_RT_CONSOLEBUF_SIZE=256 CONFIG_RT_CONSOLE_DEVICE_NAME="uart" CONFIG_RT_VER_NUM=0x40003 # CONFIG_RT_USING_CPU_FFS is not set diff --git a/bsp/ls2kdev/applications/main.c b/bsp/ls2kdev/applications/main.c index 54691f0f89..bd975f4825 100644 --- a/bsp/ls2kdev/applications/main.c +++ b/bsp/ls2kdev/applications/main.c @@ -12,6 +12,6 @@ int main(int argc, char** argv) { - rt_kprintf("ls2k1000:hello rtthread!\n"); + rt_kprintf("Hi, this is RT-Thread!!\n"); return 0; } diff --git a/bsp/ls2kdev/rtconfig.h b/bsp/ls2kdev/rtconfig.h index 80f068c5c0..aaeed71df5 100644 --- a/bsp/ls2kdev/rtconfig.h +++ b/bsp/ls2kdev/rtconfig.h @@ -16,12 +16,7 @@ #define RT_USING_IDLE_HOOK #define RT_IDLE_HOOK_LIST_SIZE 4 #define IDLE_THREAD_STACK_SIZE 2048 -#define RT_USING_TIMER_SOFT -#define RT_TIMER_THREAD_PRIO 20 -#define RT_TIMER_THREAD_STACK_SIZE 2048 #define RT_DEBUG -#define RT_DEBUG_INIT_CONFIG -#define RT_DEBUG_INIT 1 /* Inter-Thread communication */ @@ -41,7 +36,7 @@ #define RT_USING_DEVICE #define RT_USING_CONSOLE -#define RT_CONSOLEBUF_SIZE 128 +#define RT_CONSOLEBUF_SIZE 256 #define RT_CONSOLE_DEVICE_NAME "uart" #define RT_VER_NUM 0x40003 #define ARCH_MIPS64 diff --git a/libcpu/mips/common/exception.c b/libcpu/mips/common/exception.c index 11192955cf..cd7d97e6c0 100644 --- a/libcpu/mips/common/exception.c +++ b/libcpu/mips/common/exception.c @@ -117,14 +117,14 @@ int rt_hw_exception_init(void) void rt_general_exc_dispatch(struct pt_regs *regs) { - rt_ubase_t cause, exccode; + rt_ubase_t exccode = 0; - exccode = (cause & CAUSEF_EXCCODE) >> CAUSEB_EXCCODE; if (exccode == 0) { rt_ubase_t status, pending; status = read_c0_status(); - pending = (cause & CAUSEF_IP) & (status & ST0_IM); + + pending = (CAUSEF_IP) & (status & ST0_IM); if (pending & CAUSEF_IP0) rt_do_mips_cpu_irq(0); if (pending & CAUSEF_IP1) diff --git a/libcpu/mips/common/stackframe.h b/libcpu/mips/common/stackframe.h index b5a038d1f6..258f9a994f 100644 --- a/libcpu/mips/common/stackframe.h +++ b/libcpu/mips/common/stackframe.h @@ -60,11 +60,11 @@ mfhi v1 LONG_S $8, PT_R8(sp) LONG_S $9, PT_R9(sp) - LONG_S v1, PT_HI(sp) + sw v1, PT_HI(sp) mflo v1 LONG_S $10, PT_R10(sp) LONG_S $11, PT_R11(sp) - LONG_S v1, PT_LO(sp) + sw v1, PT_LO(sp) LONG_S $12, PT_R12(sp) LONG_S $13, PT_R13(sp) LONG_S $14, PT_R14(sp) From 8b4e3659351f49367115d0853fd458899bdf6567 Mon Sep 17 00:00:00 2001 From: bigmagic Date: Tue, 7 Apr 2020 14:32:20 +0800 Subject: [PATCH 4/8] add ls2k readme --- bsp/ls2kdev/README.md | 89 +++++++++++++++++++++++++++-- bsp/ls2kdev/figures/loongsonpi.png | Bin 0 -> 479916 bytes 2 files changed, 84 insertions(+), 5 deletions(-) create mode 100644 bsp/ls2kdev/figures/loongsonpi.png diff --git a/bsp/ls2kdev/README.md b/bsp/ls2kdev/README.md index 9e3ce3aa1e..9a78bce2d8 100644 --- a/bsp/ls2kdev/README.md +++ b/bsp/ls2kdev/README.md @@ -1,8 +1,87 @@ -ls2k 板级支持包 - - ---- +# loogson_pi2 板级支持包说明 ## 1. 简介 -本bsp在龙芯派上运行 \ No newline at end of file +2K龙芯派采是首款采用2K1000低功耗处理的嵌入式方案验证板,具有资源丰富、接口齐全、低功耗、高可靠的特点。 + +| 硬件 | 描述 | +| -- | -- | +|芯片型号| 2K1000 | +|CPU| GS264 | +|主频| 1GHz | +|DDR3| 2GB | +|片外Flash| 8Mb SPI FLASH | + +[龙芯派][1]搭载 2K1000 处理器(主频 1GHz),板载 DDR3 颗粒,实现 DDR3 的运行存储功能。实现了 GPIO 的输入输出,中断功能。板上集成 1 个网 口,集成 3 个 USB 接口,HDMI 接口,LCD 接口,音频输入/输出,集成 SD 卡接口,集成 2 个 CAN 接口,集成 RTC 计时功能。可以外扩 WIFI 模块。2K 龙芯派可以广泛应用于信息安 全、电力、轨道交通、工业控制、信号处理、数据通信、信息教育等领域。 + + +## 2. 编译说明 + +环境搭建在Ubuntu上进行,首先下载[mips-sde-elf-gcc][2]。该文件存放在网盘中,提取码为ucb2。 + +解压到指定的目录,然后修改当前目录下的`rtconfig.py`文件。 + +```python +if CROSS_TOOL == 'gcc': + PLATFORM = 'gcc' + EXEC_PATH = "/opt/mips-2015.05-19-mips-sde-elf-i686-pc-linux-gnu/mips-2015.05/bin/" +``` + +然后在控制台输入`scons`即可,可以生成`rtthread.elf`、`rtthread.bin`文件,其中`rtthread.elf`是下载到开发板上的程序。 + +## 3.程序运行 + +首先龙芯派开发板必须先运行[pmon][3]。rt-thread是通过龙芯的pmon引导起来的。 + +![2020-04-07_11-53](figures/loongsonpi.png) + +首先板子接上12V的电源,然后连接串口,该串口为RS232,所以需要RS232转USB线来进行连接。接着连接`LAN0`网口。 + +初次上电时,需要按下开发板的`START`按键,听到`滴`启动声后可以在控制台看到串口打印信息。通过启动时在控制台不停的按下字符`c`直到进入到pmon控制台。 + +目前在龙芯派上推荐使用PMON通过tftp的方式下载到设备内存中运行。 + +需要让开发板和主机处于同一网段,利用pmon的tftp进行固件传输。首先查看主机的ip地址,如果`ifconfig`查看ip是`192.168.12.35`。输入以下指令开始运行。 + +``` +ifaddr syn0 192.168.12.100 +load tftp://192.168.12.35/rtthread.elf; +g +``` + +其中`ifaddr`是设置pmon设置网络的命令,`syn0`表示第一个网卡。然后从tftp的主机上加载`rtthread.elf`文件,此时主机必须有tftp服务器。`g`表示程序跳转运行。 + +而后可以看到rtthread程序正常的运行。 + +``` + zero at v0 v1 a0 a1 a2 a3 + 00000000 00000000 00000000 00000000 00000003 aafffea8 8f800000 8f1371d0 + t0 t1 t2 t3 t4 t5 t6 t7 + 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 + s0 s1 s2 s3 s4 s5 s6 s7 + 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 + t8 t9 k0 k1 gp sp s8 ra + 00000000 00000000 00000000 00000000 00000000 aafffe88 00000000 8f0b1418 +Current SR: 0x10008080 + + \ | / +- RT - Thread Operating System + / | \ 4.0.3 build Apr 7 2020 + 2006 - 2020 Copyright by rt-thread team +Hi, this is RT-Thread!! +msh > +``` + +## 4. 支持情况 + +| 驱动 | 支持情况 | 备注 | +| ------ | ---- | :------: | +| UART | 支持 | UART0| + +## 5. 联系人信息 + +维护人:[bernard][4] +[1]:http://ftp.loongnix.org/loongsonpi/pi_2/doc +[2]: https://pan.baidu.com/s/17dbdOE4NAJ-qEW7drVRq2w +[3]:http://ftp.loongnix.org/embedd/ls2k/ +[4]: https://github.com/BernardXiong diff --git a/bsp/ls2kdev/figures/loongsonpi.png b/bsp/ls2kdev/figures/loongsonpi.png new file mode 100644 index 0000000000000000000000000000000000000000..b24d28a4a6e7d8d00ccd3405064dbec42a1ed937 GIT binary patch literal 479916 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 z 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