mirror of
https://github.com/apache/nuttx.git
synced 2026-08-20 04:58:28 +00:00
boards/risc-v/eic7700x: Adopt the common board layout.
The port had one board directory holding one board, with everything in it whether it described the SoC or the PCB. A second EIC7700X board follows, so this adopts the common-plus-board layout NuttX provides, as mpfs uses. boards/risc-v/eic7700x/common holds what is true of the SoC: the boot path that mounts the RAM disk and /proc before calling the board's own bring up, the linker script, the start up scripts and the image builder. ARCH_CHIP_EIC7700X selects ARCH_BOARD_COMMON, so the symlinks the build makes always point at code that compiles. The board directory keeps what is a fact about the PCB: its own board.h and board_memorymap.h, since the include fallback is all or nothing, a bring up that owns the order its devices register in, and a board_config.h declaring what that bring up may call. The image builder moves to common/tools and derives its output name from the configuration. It computes the padding between the kernel and the RAM disk from _ebss rather than assuming 64 KiB, which fails once BSS grows past it: the disk lands below _ebss and the BSS clear zeroes it before anything searches for it. The StarPro64 configuration gains what the port now needs: four harts, 960 MiB of RAM, a larger task stack, a backtrace on assert, the system log in RAM for dmesg, and ELF applications, for which ARCH_CHIP_EIC7700X now selects ARCH_HAVE_ELF_EXECUTABLE. board.h loses its LED definitions. CONFIG_ARCH_LEDS is not set, nothing implements board_autoled_on(), and the indices they gave named no LED. The documentation pages gain the tags the template asks for. Assisted-by: Claude:claude-opus-5 Signed-off-by: Justin Hammond <justin@dynam.ac>
This commit is contained in:
parent
c60257bcc2
commit
78dfefa4cc
20 changed files with 372 additions and 39 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -61,6 +61,7 @@ etctmp/
|
|||
/cscope.*
|
||||
/defconfig
|
||||
/defconfig.tmp.bak
|
||||
/Image-*
|
||||
/Make.defs
|
||||
/nuttx
|
||||
/nuttx32
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
PINE64 StarPro64
|
||||
================
|
||||
|
||||
.. tags:: chip:eic7700x, arch:risc-v, vendor:pine64, experimental
|
||||
|
||||
`PINE64 StarPro64 <https://lupyuen.github.io/articles/starpro64>`_
|
||||
is a RISC-V Single-Board Computer based on the ESWIN EIC7700X RISC-V SoC
|
||||
with Quad-Core 64-bit RISC-V CPU, 32 GB LPDDR5 RAM and 100 Mbps Ethernet.
|
||||
|
|
@ -89,16 +91,21 @@ This produces the NuttX Kernel ``nuttx.bin``. Next, build the NuttX Apps Filesy
|
|||
$ tools/mkimport.sh -z -x ../nuttx/nuttx-export-*.tar.gz
|
||||
$ make import
|
||||
$ popd
|
||||
$ genromfs -f initrd -d ../apps/bin -V "NuttXBootVol"
|
||||
|
||||
This generates the Initial RAM Disk ``initrd``.
|
||||
|
||||
Package the NuttX Kernel and Initial RAM Disk into a NuttX Image:
|
||||
Package the NuttX Kernel and the applications into a NuttX Image:
|
||||
|
||||
.. code:: console
|
||||
|
||||
$ head -c 65536 /dev/zero >/tmp/nuttx.pad
|
||||
$ cat nuttx.bin /tmp/nuttx.pad initrd >Image-starpro64
|
||||
$ boards/risc-v/eic7700x/common/tools/mkimage.sh
|
||||
|
||||
The image is the kernel, then padding, then a RAM disk holding the
|
||||
applications. Use the script rather than padding by hand. The RAM disk is
|
||||
found at run time by searching memory for its header, and that search runs
|
||||
after BSS has been cleared, so the disk has to start above ``_ebss`` or it
|
||||
is zeroed before anything looks for it. The script reads ``_ebss`` from the
|
||||
kernel and pads to suit; a fixed pad works only until BSS grows past it, and
|
||||
when it does the board hangs during start up with nothing on the console at
|
||||
all, because the failure happens before there is a console to report it.
|
||||
|
||||
The NuttX Image ``Image-starpro64`` will be copied to the TFTP Server in the next step.
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
ESWIN EIC7700X
|
||||
==============
|
||||
|
||||
.. tags:: chip:eic7700x, arch:risc-v, vendor:eswin
|
||||
|
||||
`ESWIN EIC7700X <https://www.eswincomputing.com/en/products/index/36.html>`_ is a 64-bit RISC-V SoC with 4 RISC-V Cores:
|
||||
|
||||
- **Processors:** 4 x RV64GC 1.4 GHz 64-bit RISC-V Cores
|
||||
|
|
|
|||
|
|
@ -437,6 +437,8 @@ config ARCH_CHIP_SG2000
|
|||
|
||||
config ARCH_CHIP_EIC7700X
|
||||
bool "ESWIN EIC7700X"
|
||||
select ARCH_BOARD_COMMON
|
||||
select ARCH_HAVE_ELF_EXECUTABLE
|
||||
select ARCH_RV64
|
||||
select ARCH_RV_ISA_M
|
||||
select ARCH_RV_ISA_A
|
||||
|
|
|
|||
|
|
@ -2414,6 +2414,20 @@ config ARCH_BOARD_EIC7700X_STARPRO64
|
|||
This options selects support for NuttX on PINE64 StarPro64 based
|
||||
on ESWIN EIC7700X SoC.
|
||||
|
||||
UART0 is the console. There is no USB serial bridge on the
|
||||
board, so it comes out level shifted to 3.3V on the 40 pin GPIO
|
||||
header, transmit on pin 8 and receive on pin 10, which is where
|
||||
a Raspberry Pi puts them too.
|
||||
|
||||
UART1 carries the Bluetooth HCI of the on board AIC8800D80 WiFi
|
||||
and Bluetooth combo, CTS and RTS included.
|
||||
|
||||
Nothing else here is a UART, in spite of the UART map on sheet 3
|
||||
of the schematic. That table came from ESWIN's reference design
|
||||
and does not describe this board: GPIO62, which is the UART2_TX
|
||||
pad, drives the system state LED, GPIO63 is unconnected, the
|
||||
UART3 pads carry I2C8, and the UART4 pads go nowhere.
|
||||
|
||||
config ARCH_BOARD_S32K118EVB
|
||||
bool "NXP S32K118EVB"
|
||||
depends on ARCH_CHIP_S32K118
|
||||
|
|
|
|||
2
boards/risc-v/eic7700x/common/.gitignore
vendored
Normal file
2
boards/risc-v/eic7700x/common/.gitignore
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
etctmp
|
||||
etctmp.c
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
############################################################################
|
||||
# boards/risc-v/eic7700x/starpro64/src/Makefile
|
||||
# boards/risc-v/eic7700x/common/Makefile
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
|
@ -22,8 +22,10 @@
|
|||
|
||||
include $(TOPDIR)/Make.defs
|
||||
|
||||
RCSRCS = etc/init.d/rc.sysinit etc/init.d/rcS
|
||||
include board/Make.defs
|
||||
include src/Make.defs
|
||||
|
||||
CSRCS = eic7700x_boardinit.c
|
||||
DEPPATH += --dep-path board
|
||||
DEPPATH += --dep-path src
|
||||
|
||||
include $(TOPDIR)/boards/Board.mk
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
############################################################################
|
||||
# boards/risc-v/eic7700x/starpro64/scripts/Make.defs
|
||||
# boards/risc-v/eic7700x/common/scripts/Make.defs
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
|
@ -25,7 +25,7 @@ include $(TOPDIR)/tools/Config.mk
|
|||
include $(TOPDIR)/arch/risc-v/src/common/Toolchain.defs
|
||||
|
||||
LDSCRIPT = ld.script
|
||||
ARCHSCRIPT += $(BOARD_DIR)$(DELIM)scripts$(DELIM)$(LDSCRIPT)
|
||||
ARCHSCRIPT += $(call FINDSCRIPT,$(LDSCRIPT))
|
||||
|
||||
CFLAGS := $(ARCHCFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) -pipe
|
||||
CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS)
|
||||
|
|
@ -20,12 +20,26 @@
|
|||
*
|
||||
****************************************************************************/
|
||||
|
||||
/* The SoC has 16 GiB of LPDDR5 and this describes 960 MiB of it, which is as
|
||||
* much as the design can currently use. Three things decide that:
|
||||
*
|
||||
* - The kernel's RAM mapping hangs off a single 512 entry L2 page table at
|
||||
* L1 index 2, so it reaches 0x80000000 to 0xc0000000 and no further.
|
||||
* - The page pool cannot exceed 65535 pages, because the granule allocator
|
||||
* behind mm_pgalloc() counts them in a uint16_t. At 4 KiB that is just
|
||||
* under 256 MiB.
|
||||
* - Nothing yet allocates enough for the rest to be worth mapping.
|
||||
*
|
||||
* Every boundary is 2 MiB aligned because everything except kflash is mapped
|
||||
* with 2 MiB pages. 480 of the 512 L2 entries are used.
|
||||
*/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
kflash (rx) : ORIGIN = 0x80200000, LENGTH = 2048K /* w/ cache */
|
||||
ksram (rwx) : ORIGIN = 0x80400000, LENGTH = 2048K /* w/ cache */
|
||||
pgram (rwx) : ORIGIN = 0x80600000, LENGTH = 4096K /* w/ cache */
|
||||
ramdisk (rwx) : ORIGIN = 0x80A00000, LENGTH = 16M /* w/ cache */
|
||||
ksram (rwx) : ORIGIN = 0x80400000, LENGTH = 640M /* w/ cache */
|
||||
pgram (rwx) : ORIGIN = 0xA8400000, LENGTH = 254M /* w/ cache */
|
||||
ramdisk (rwx) : ORIGIN = 0xB8200000, LENGTH = 64M /* w/ cache */
|
||||
}
|
||||
|
||||
OUTPUT_ARCH("riscv")
|
||||
|
|
@ -38,10 +52,17 @@ __ksram_start = ORIGIN(ksram);
|
|||
__ksram_size = LENGTH(ksram);
|
||||
__ksram_end = ORIGIN(ksram) + LENGTH(ksram);
|
||||
|
||||
/* Page heap */
|
||||
/* Page heap.
|
||||
*
|
||||
* This is pgram and nothing else. The RAM disk must not be part of it: the
|
||||
* page allocator hands its pages out to user address environments, and there
|
||||
* is nothing anywhere in NuttX that holds a region back from it, so a pool
|
||||
* that covers the RAM disk is a pool that eventually returns pages of the
|
||||
* mounted file system.
|
||||
*/
|
||||
|
||||
__pgheap_start = ORIGIN(pgram);
|
||||
__pgheap_size = LENGTH(pgram) + LENGTH(ramdisk);
|
||||
__pgheap_size = LENGTH(pgram);
|
||||
|
||||
/* Application ramdisk */
|
||||
|
||||
33
boards/risc-v/eic7700x/common/src/Make.defs
Normal file
33
boards/risc-v/eic7700x/common/src/Make.defs
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
############################################################################
|
||||
# boards/risc-v/eic7700x/common/src/Make.defs
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership. The
|
||||
# ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance with the
|
||||
# License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
############################################################################
|
||||
|
||||
ifeq ($(CONFIG_ARCH_BOARD_COMMON),y)
|
||||
|
||||
CSRCS += eic7700x_boot.c
|
||||
|
||||
RCSRCS = etc/init.d/rc.sysinit etc/init.d/rcS
|
||||
|
||||
DEPPATH += --dep-path src
|
||||
VPATH += :src
|
||||
CFLAGS += ${INCDIR_PREFIX}$(TOPDIR)$(DELIM)arch$(DELIM)$(CONFIG_ARCH)$(DELIM)src$(DELIM)board$(DELIM)src
|
||||
|
||||
endif
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
/****************************************************************************
|
||||
* boards/risc-v/eic7700x/starpro64/src/eic7700x_boardinit.c
|
||||
* boards/risc-v/eic7700x/common/src/eic7700x_boot.c
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
|
|
@ -37,6 +37,8 @@
|
|||
#include <sys/boardctl.h>
|
||||
#include <arch/board/board_memorymap.h>
|
||||
|
||||
#include "board_config.h"
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-processor Definitions
|
||||
****************************************************************************/
|
||||
|
|
@ -118,8 +120,10 @@ void board_late_initialize(void)
|
|||
|
||||
mount_ramdisk();
|
||||
|
||||
/* Perform board-specific initialization */
|
||||
|
||||
mount(NULL, "/proc", "procfs", 0, NULL);
|
||||
|
||||
/* Devices whose presence or order is this board's business */
|
||||
|
||||
eic7700x_bringup();
|
||||
}
|
||||
#endif /* CONFIG_BOARD_LATE_INITIALIZE */
|
||||
112
boards/risc-v/eic7700x/common/tools/mkimage.sh
Executable file
112
boards/risc-v/eic7700x/common/tools/mkimage.sh
Executable file
|
|
@ -0,0 +1,112 @@
|
|||
#!/usr/bin/env bash
|
||||
############################################################################
|
||||
# boards/risc-v/eic7700x/common/tools/mkimage.sh
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership. The
|
||||
# ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance with the
|
||||
# License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
############################################################################
|
||||
#
|
||||
# Build the bootable image: the kernel, then padding, then the RAM disk.
|
||||
#
|
||||
# The padding is computed rather than fixed, and that is the whole point of
|
||||
# this script. The RAM disk is appended to the kernel and found at run time
|
||||
# by searching memory for its header, and that search happens after BSS has
|
||||
# been cleared. So the disk has to start above _ebss or it is zeroed before
|
||||
# anything looks for it. A fixed pad works only until BSS grows past it,
|
||||
# and when it does the failure is a panic before the console exists, which
|
||||
# looks like a board that hangs with no output at all. The kernel's own
|
||||
# sanity check compares against the idle stack top, which sits below BSS
|
||||
# rather than above it, so it does not catch this either.
|
||||
#
|
||||
# Usage:
|
||||
# mkimage.sh [-o output] [-a apps-dir] [-n nm-tool] [-l load-addr]
|
||||
#
|
||||
# The default output name is Image-<board>, taken from the configuration,
|
||||
# so each board's image names itself.
|
||||
#
|
||||
# Run from the nuttx directory after "make" and after the apps have been
|
||||
# built and installed into their bin directory.
|
||||
|
||||
set -e
|
||||
|
||||
APPSDIR="../apps"
|
||||
BOARD=$(sed -n 's/^CONFIG_ARCH_BOARD="\(.*\)"$/\1/p' .config 2>/dev/null)
|
||||
OUTPUT="Image-${BOARD:-eic7700x}"
|
||||
NM="${CROSSDEV:-riscv-none-elf-}nm"
|
||||
LOADADDR="0x80200000"
|
||||
MARGIN=$((64 * 1024))
|
||||
|
||||
usage()
|
||||
{
|
||||
sed -n '25,43p' "$0"
|
||||
echo
|
||||
echo " -o output image (default: $OUTPUT)"
|
||||
echo " -a apps directory (default: $APPSDIR)"
|
||||
echo " -n nm for the target (default: $NM)"
|
||||
echo " -l kernel load address (default: $LOADADDR)"
|
||||
exit 1
|
||||
}
|
||||
|
||||
while getopts "o:a:n:l:h" opt; do
|
||||
case $opt in
|
||||
o) OUTPUT="$OPTARG" ;;
|
||||
a) APPSDIR="$OPTARG" ;;
|
||||
n) NM="$OPTARG" ;;
|
||||
l) LOADADDR="$OPTARG" ;;
|
||||
*) usage ;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ ! -f nuttx ] || [ ! -f nuttx.bin ]; then
|
||||
echo "mkimage: run this from the nuttx directory after make" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -d "$APPSDIR/bin" ]; then
|
||||
echo "mkimage: no $APPSDIR/bin; build and install the apps first" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Where BSS ends, which is the earliest the RAM disk may start.
|
||||
|
||||
EBSS=$("$NM" nuttx | awk '/ _ebss$/ { print $1 }')
|
||||
if [ -z "$EBSS" ]; then
|
||||
echo "mkimage: no _ebss in nuttx; is $NM right for this target?" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
TMPDIR_="$(mktemp -d)"
|
||||
trap 'rm -rf "$TMPDIR_"' EXIT
|
||||
|
||||
genromfs -f "$TMPDIR_/initrd" -d "$APPSDIR/bin" -V "NuttXBootVol"
|
||||
|
||||
# Pad so that the disk lands past the end of BSS, with a margin. wc -c is
|
||||
# used rather than stat, whose flags differ between GNU and BSD.
|
||||
|
||||
BINSZ=$(wc -c < nuttx.bin)
|
||||
NEED=$(( 0x$EBSS - LOADADDR + MARGIN ))
|
||||
PAD=$(( NEED - BINSZ ))
|
||||
if [ "$PAD" -lt 0 ]; then
|
||||
PAD=0
|
||||
fi
|
||||
|
||||
head -c "$PAD" /dev/zero > "$TMPDIR_/pad"
|
||||
cat nuttx.bin "$TMPDIR_/pad" "$TMPDIR_/initrd" > "$OUTPUT"
|
||||
|
||||
printf '%s: _ebss 0x%s, kernel %s, pad %s, disk at %s\n' \
|
||||
"$OUTPUT" "$EBSS" "$BINSZ" "$PAD" "$(( BINSZ + PAD ))"
|
||||
|
|
@ -14,11 +14,16 @@ CONFIG_16550_UART0_BASE=0x50900000
|
|||
CONFIG_16550_UART0_CLOCK=198144000
|
||||
CONFIG_16550_UART0_IRQ=125
|
||||
CONFIG_16550_UART0_SERIAL_CONSOLE=y
|
||||
CONFIG_16550_UART1=y
|
||||
CONFIG_16550_UART1_BASE=0x50910000
|
||||
CONFIG_16550_UART1_CLOCK=198144000
|
||||
CONFIG_16550_UART1_IRQ=126
|
||||
CONFIG_16550_UART=y
|
||||
CONFIG_16550_WAIT_LCR=y
|
||||
CONFIG_ARCH="risc-v"
|
||||
CONFIG_ARCH_ADDRENV=y
|
||||
CONFIG_ARCH_BOARD="starpro64"
|
||||
CONFIG_ARCH_BOARD_COMMON=y
|
||||
CONFIG_ARCH_BOARD_EIC7700X_STARPRO64=y
|
||||
CONFIG_ARCH_CHIP="eic7700x"
|
||||
CONFIG_ARCH_CHIP_EIC7700X=y
|
||||
|
|
@ -29,9 +34,9 @@ CONFIG_ARCH_HEAP_VBASE=0xC0200000
|
|||
CONFIG_ARCH_INTERRUPTSTACK=2048
|
||||
CONFIG_ARCH_KERNEL_STACKSIZE=3072
|
||||
CONFIG_ARCH_PGPOOL_MAPPING=y
|
||||
CONFIG_ARCH_PGPOOL_PBASE=0x80600000
|
||||
CONFIG_ARCH_PGPOOL_SIZE=4194304
|
||||
CONFIG_ARCH_PGPOOL_VBASE=0x80600000
|
||||
CONFIG_ARCH_PGPOOL_PBASE=0xA8400000
|
||||
CONFIG_ARCH_PGPOOL_SIZE=266338304
|
||||
CONFIG_ARCH_PGPOOL_VBASE=0xA8400000
|
||||
CONFIG_ARCH_RISCV=y
|
||||
CONFIG_ARCH_STACKDUMP=y
|
||||
CONFIG_ARCH_TEXT_NPAGES=128
|
||||
|
|
@ -39,15 +44,23 @@ CONFIG_ARCH_TEXT_VBASE=0xC0000000
|
|||
CONFIG_ARCH_USE_MMU=y
|
||||
CONFIG_ARCH_USE_MPU=y
|
||||
CONFIG_ARCH_USE_S_MODE=y
|
||||
CONFIG_BINFMT_ELF_EXECUTABLE=y
|
||||
CONFIG_BOARDCTL_ROMDISK=y
|
||||
CONFIG_BOARD_LOOPSPERMSEC=1120
|
||||
CONFIG_BUILD_KERNEL=y
|
||||
CONFIG_DEBUG_ASSERTIONS=y
|
||||
CONFIG_DEBUG_ASSERTIONS_EXPRESSION=y
|
||||
CONFIG_DEBUG_FEATURES=y
|
||||
CONFIG_DEBUG_FS=y
|
||||
CONFIG_DEBUG_FS_ERROR=y
|
||||
CONFIG_DEBUG_FULLOPT=y
|
||||
CONFIG_DEBUG_MM=y
|
||||
CONFIG_DEBUG_MM_ERROR=y
|
||||
CONFIG_DEBUG_SCHED=y
|
||||
CONFIG_DEBUG_SYMBOLS=y
|
||||
CONFIG_DEFAULT_TASK_STACKSIZE=8192
|
||||
CONFIG_ELF=y
|
||||
CONFIG_ELF_STACKSIZE=2048
|
||||
CONFIG_EXAMPLES_HELLO=m
|
||||
CONFIG_FS_PROCFS=y
|
||||
CONFIG_FS_ROMFS=y
|
||||
|
|
@ -56,8 +69,8 @@ CONFIG_INIT_FILEPATH="/system/bin/init"
|
|||
CONFIG_INIT_MOUNT=y
|
||||
CONFIG_INIT_MOUNT_FLAGS=0x1
|
||||
CONFIG_INIT_MOUNT_TARGET="/system/bin"
|
||||
CONFIG_INIT_STACKSIZE=3072
|
||||
CONFIG_INTELHEX_BINARY=y
|
||||
CONFIG_IRQ_WORK_STACKSIZE=2048
|
||||
CONFIG_LIBC_ENVPATH=y
|
||||
CONFIG_LIBC_EXECFUNCS=y
|
||||
CONFIG_LIBC_MEMSET_64BIT=y
|
||||
|
|
@ -70,21 +83,32 @@ CONFIG_NSH_FILEIOSIZE=512
|
|||
CONFIG_NSH_FILE_APPS=y
|
||||
CONFIG_NSH_READLINE=y
|
||||
CONFIG_PATH_INITIAL="/system/bin"
|
||||
CONFIG_RAM_SIZE=1048576
|
||||
CONFIG_POSIX_SPAWN_DEFAULT_STACKSIZE=2048
|
||||
CONFIG_RAMLOG=y
|
||||
CONFIG_RAMLOG_BUFSIZE=32768
|
||||
CONFIG_RAMLOG_SYSLOG=y
|
||||
CONFIG_RAM_SIZE=1006632960
|
||||
CONFIG_RAM_START=0x80200000
|
||||
CONFIG_RAW_BINARY=y
|
||||
CONFIG_READLINE_CMD_HISTORY=y
|
||||
CONFIG_RR_INTERVAL=200
|
||||
CONFIG_SCHED_BACKTRACE=y
|
||||
CONFIG_SCHED_CPULOAD_SYSCLK=y
|
||||
CONFIG_SCHED_HAVE_PARENT=y
|
||||
CONFIG_SCHED_LPWORK=y
|
||||
CONFIG_SCHED_WAITPID=y
|
||||
CONFIG_SERIAL_UART_ARCH_MMIO=y
|
||||
CONFIG_SMP=y
|
||||
CONFIG_STACKCHECK_MARGIN=128
|
||||
CONFIG_STACK_COLORATION=y
|
||||
CONFIG_START_MONTH=12
|
||||
CONFIG_START_YEAR=2021
|
||||
CONFIG_SYMTAB_ORDEREDBYNAME=y
|
||||
CONFIG_SYSLOG_DEFAULT=y
|
||||
CONFIG_SYSLOG_MAX_CHANNELS=2
|
||||
CONFIG_SYSTEM_NSH=y
|
||||
CONFIG_SYSTEM_NSH_PROGNAME="init"
|
||||
CONFIG_TESTING_GETPRIME=y
|
||||
CONFIG_TESTING_OSTEST=y
|
||||
CONFIG_TESTING_SMP=y
|
||||
CONFIG_USEC_PER_TICK=1000
|
||||
|
|
|
|||
|
|
@ -33,16 +33,6 @@
|
|||
* Pre-processor Definitions
|
||||
****************************************************************************/
|
||||
|
||||
#define LED_STARTED 0 /* N/A */
|
||||
#define LED_HEAPALLOCATE 1 /* N/A */
|
||||
#define LED_IRQSENABLED 2 /* N/A */
|
||||
#define LED_STACKCREATED 3 /* N/A */
|
||||
#define LED_INIRQ 4 /* N/A */
|
||||
#define LED_SIGNAL 5 /* N/A */
|
||||
#define LED_ASSERTION 6 /* N/A */
|
||||
#define LED_PANIC 7 /* N/A */
|
||||
#define LED_CPU 8 /* LED */
|
||||
|
||||
/****************************************************************************
|
||||
* Public Types
|
||||
****************************************************************************/
|
||||
|
|
|
|||
|
|
@ -41,11 +41,6 @@
|
|||
#define KSRAM_SIZE (uintptr_t)__ksram_size
|
||||
#define KSRAM_END (uintptr_t)__ksram_end
|
||||
|
||||
/* Kernel RAM (RW) */
|
||||
|
||||
#define PGPOOL_START (uintptr_t)__pgheap_start
|
||||
#define PGPOOL_SIZE (uintptr_t)__pgheap_size
|
||||
|
||||
/* Page pool (RWX) */
|
||||
|
||||
#define PGPOOL_START (uintptr_t)__pgheap_start
|
||||
|
|
|
|||
27
boards/risc-v/eic7700x/starpro64/src/Make.defs
Normal file
27
boards/risc-v/eic7700x/starpro64/src/Make.defs
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
############################################################################
|
||||
# boards/risc-v/eic7700x/starpro64/src/Make.defs
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership. The
|
||||
# ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance with the
|
||||
# License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
############################################################################
|
||||
|
||||
CSRCS = eic7700x_bringup.c
|
||||
|
||||
DEPPATH += --dep-path board
|
||||
VPATH += :board
|
||||
CFLAGS += ${INCDIR_PREFIX}$(TOPDIR)$(DELIM)arch$(DELIM)$(CONFIG_ARCH)$(DELIM)src$(DELIM)board$(DELIM)board
|
||||
47
boards/risc-v/eic7700x/starpro64/src/board_config.h
Normal file
47
boards/risc-v/eic7700x/starpro64/src/board_config.h
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
/****************************************************************************
|
||||
* boards/risc-v/eic7700x/starpro64/src/board_config.h
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership. The
|
||||
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef __BOARDS_RISCV_EIC7700X_STARPRO64_SRC_BOARD_CONFIG_H
|
||||
#define __BOARDS_RISCV_EIC7700X_STARPRO64_SRC_BOARD_CONFIG_H
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Public Function Prototypes
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: eic7700x_bringup
|
||||
*
|
||||
* Description:
|
||||
* Bring up this board's devices, in this board's order. Called from the
|
||||
* common layer's board_late_initialize().
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int eic7700x_bringup(void);
|
||||
|
||||
#endif /* __BOARDS_RISCV_EIC7700X_STARPRO64_SRC_BOARD_CONFIG_H */
|
||||
50
boards/risc-v/eic7700x/starpro64/src/eic7700x_bringup.c
Normal file
50
boards/risc-v/eic7700x/starpro64/src/eic7700x_bringup.c
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
/****************************************************************************
|
||||
* boards/risc-v/eic7700x/starpro64/src/eic7700x_bringup.c
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership. The
|
||||
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
#include "board_config.h"
|
||||
|
||||
/****************************************************************************
|
||||
* Public Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: eic7700x_bringup
|
||||
*
|
||||
* Description:
|
||||
* Bring up this board's devices, in this board's order. Device drivers
|
||||
* register here as the port grows; the common layer owns everything that
|
||||
* is true of the SoC rather than of this board.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int eic7700x_bringup(void)
|
||||
{
|
||||
return OK;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue