This is an automated email from the ASF dual-hosted git repository. xiaoxiang pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx.git
The following commit(s) were added to refs/heads/master by this push: new e696e99d9a arm64: Update readme.txt for FVP platform e696e99d9a is described below commit e696e99d9aa50594fcb5264faec314a0ac71c37a Author: qinwei1 <qinw...@xiaomi.com> AuthorDate: Sat Mar 4 23:02:31 2023 +0800 arm64: Update readme.txt for FVP platform Summary: Updating Readme.TXT for FVP platform. Signed-off-by: qinwei1 <qinw...@xiaomi.com> --- boards/arm64/fvp-v8r/fvp-armv8r/README.txt | 140 +++++++++++++++++++++++++++-- 1 file changed, 134 insertions(+), 6 deletions(-) diff --git a/boards/arm64/fvp-v8r/fvp-armv8r/README.txt b/boards/arm64/fvp-v8r/fvp-armv8r/README.txt index 421256e853..56d4b38deb 100644 --- a/boards/arm64/fvp-v8r/fvp-armv8r/README.txt +++ b/boards/arm64/fvp-v8r/fvp-armv8r/README.txt @@ -24,9 +24,9 @@ Getting Started https://github.com/apache/nuttx/tree/master/boards/arm64/qemu/qemu-armv8a Note: -1. My host environment is Ubuntu 22.04.1 LTS, Ubuntu 18.04 will work too -2. The newest GNU toolchain is 12.2, available from: - https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads + 1 My host environment is Ubuntu 22.04.1 LTS, Ubuntu 18.04 will work too + 2 The newest GNU toolchain is 12.2, available from: + https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads 2. Getting Armv8-R AEM FVP @@ -39,6 +39,24 @@ Note: AEMv8R_FVP/AEMv8R_base_pkg/models/Linux64_GCC-9.3/FVP_BaseR_AEMv8R 3. Configuring and building + 3.1 FVP Overview + Just like QEMU, Fixed Virtual Platforms (FVP) are complete simulations of an Arm system, + including processor, memory and peripherals. These are set out in a "programmer's view", + which gives you a comprehensive model on which to build and test your software. + + The FVP tools simulate 4 serial port and implement them to wait on local socket port: + + $ /home/qinwei/workdir/tools/AEMv8R_FVP/AEMv8R_base_pkg/models/Linux64_GCC-9.3/FVP_BaseR_AEMv8R \ + -f boards/arm64/fvp-v8r/fvp-armv8r/scripts/fvp_cfg.txt -a ./nuttx + terminal_0: Listening for serial connection on port 5000 + terminal_1: Listening for serial connection on port 5001 + terminal_2: Listening for serial connection on port 5002 + terminal_3: Listening for serial connection on port 5003 + + FVP has four UART port and I choice UART1 as tty, so just telnet to port 5001 + will enter nsh: + telnet localhost 5001 + 3.1 Single Core Configuring NuttX and compile: $ ./tools/configure.sh -l fvp-armv8r:nsh @@ -49,15 +67,125 @@ Note: $ ./tools/configure.sh -l fvp-armv8r:nsh_smp $ make -3. Running - Single Core +4. Running + + 4.1 Single Core + + Step1: Booting NuttX + $ AEMv8R_FVP/AEMv8R_base_pkg/models/Linux64_GCC-9.3/FVP_BaseR_AEMv8R \ -f boards/arm64/fvp-v8r/fvp-armv8r/scripts/fvp_cfg.txt \ -a ./nuttx - SMP + terminal_0: Listening for serial connection on port 5000 + terminal_1: Listening for serial connection on port 5001 + terminal_2: Listening for serial connection on port 5002 + terminal_3: Listening for serial connection on port 5003 + - Ready to Boot Primary CPU + - Boot from EL2 + - Boot from EL1 + - Boot to C runtime for OS Initialize + [ 0] (null): arm64_chip_boot: Main CPU 0x80000000 + [ 0] (null): nx_start: Entry + [ 0] (null): up_allocate_heap: heap_start=0x0x3c000, heap_size=0x7fc4000 + [ 0] Idle Task: gic_validate_dist_version: GICv3 version detect + [ 0] Idle Task: gic_validate_dist_version: GICD_TYPER = 0x490067 + [ 0] Idle Task: gic_validate_dist_version: 224 SPIs implemented + [ 0] Idle Task: gic_validate_dist_version: 0 Extended SPIs implemented + [ 0] Idle Task: gic_validate_dist_version: Distributor has no Range Selector support + [ 0] Idle Task: gic_validate_dist_version: MBIs is present, But No support + [ 0] Idle Task: gic_validate_redist_version: GICR_TYPER = 0x0 + [ 0] Idle Task: gic_validate_redist_version: 16 PPIs implemented + [ 0] Idle Task: gic_validate_redist_version: no VLPI support, no direct LPI support + [ 0] Idle Task: up_timer_initialize: up_timer_initialize: cp15 timer(s) running at 100.00MHz, cycle 100000 + [ 0] Idle Task: uart_register: Registering /dev/console + [ 0] Idle Task: uart_register: Registering /dev/ttyS0 + [ 0] Idle Task: work_start_highpri: Starting high-priority kernel worker thread(s) + [ 0] Idle Task: nx_start_application: Starting init thread + [ 0] Idle Task: task_spawn: name=nsh_main entry=0xa590 file_actions=0 attr=0x3bf88 argv=0x3bf80 + nsh: mkfatfs: command not found + + NuttShell (NSH) NuttX-12.0.0 + nsh> [ 0] Idle Task: nx_start: CPU0: Beginning Idle Loop + + Step2: telnet to UART1 + Starting another terminal and enter: + $ telnet localhost 5001 + Trying 127.0.0.1... + Connected to localhost. + Escape character is '^]'. + nsh: mkfatfs: command not found + NuttShell (NSH) NuttX-12.0.0 + nsh> + + 4.2 SMP $ AEMv8R_FVP/AEMv8R_base_pkg/models/Linux64_GCC-9.3/FVP_BaseR_AEMv8R \ -f boards/arm64/fvp-v8r/fvp-armv8r/scripts/fvp_cfg_smp.txt \ -a ./nuttx + terminal_0: Listening for serial connection on port 5000 + terminal_1: Listening for serial connection on port 5001 + terminal_2: Listening for serial connection on port 5002 + terminal_3: Listening for serial connection on port 5003 + - Ready to Boot Primary CPU + - Boot from EL2 + - Boot from EL1 + - Boot to C runtime for OS Initialize + [CPU0] [ 0] (null): arm64_chip_boot: Main CPU 0x80000000 + [CPU0] [ 0] (null): nx_start: Entry + [CPU0] [ 0] (null): up_allocate_heap: heap_start=0x0x4a000, heap_size=0x7fb6000 + [CPU0] [ 0] CPU0 IDLE: gic_validate_dist_version: GICv3 version detect + [CPU0] [ 0] CPU0 IDLE: gic_validate_dist_version: GICD_TYPER = 0x490067 + [CPU0] [ 0] CPU0 IDLE: gic_validate_dist_version: 224 SPIs implemented + [CPU0] [ 0] CPU0 IDLE: gic_validate_dist_version: 0 Extended SPIs implemented + [CPU0] [ 0] CPU0 IDLE: gic_validate_dist_version: Distributor has no Range Selector support + [CPU0] [ 0] CPU0 IDLE: gic_validate_dist_version: MBIs is present, But No support + [CPU0] [ 0] CPU0 IDLE: gic_validate_redist_version: GICR_TYPER = 0x0 + [CPU0] [ 0] CPU0 IDLE: gic_validate_redist_version: 16 PPIs implemented + [CPU0] [ 0] CPU0 IDLE: gic_validate_redist_version: no VLPI support, no direct LPI support + [CPU0] [ 0] CPU0 IDLE: up_timer_initialize: up_timer_initialize: cp15 timer(s) running at 100.00MHz, cycle 100000 + [CPU0] [ 0] CPU0 IDLE: uart_register: Registering /dev/console + [CPU0] [ 0] CPU0 IDLE: uart_register: Registering /dev/ttyS0 + - Ready to Boot Second CPU + - Boot from EL2 + - Boot from EL1 + - Boot to C runtime for OS Initialize + [CPU1] [ 1] CPU1 IDLE: gic_validate_redist_version: GICR_TYPER = 0x100000100 + [CPU1] [ 1] CPU1 IDLE: gic_validate_redist_version: 16 PPIs implemented + [CPU1] [ 1] CPU1 IDLE: gic_validate_redist_version: no VLPI support, no direct LPI support + [CPU1] [ 1] CPU1 IDLE: nx_idle_trampoline: CPU1: Beginning Idle Loop + - Ready to Boot Second CPU + - Boot from EL2 + - Boot from EL1 + - Boot to C runtime for OS Initialize + [CPU2] [ 2] CPU2 IDLE: gic_validate_redist_version: GICR_TYPER = 0x200000200 + [CPU2] [ 2] CPU2 IDLE: gic_validate_redist_version: 16 PPIs implemented + [CPU2] [ 2] CPU2 IDLE: gic_validate_redist_version: no VLPI support, no direct LPI support + [CPU2] [ 2] CPU2 IDLE: nx_idle_trampoline: CPU2: Beginning Idle Loop + - Ready to Boot Second CPU + - Boot from EL2 + - Boot from EL1 + - Boot to C runtime for OS Initialize + [CPU3] [ 3] CPU3 IDLE: gic_validate_redist_version: GICR_TYPER = 0x300000310 + [CPU3] [ 3] CPU3 IDLE: gic_validate_redist_version: 16 PPIs implemented + [CPU3] [ 3] CPU3 IDLE: gic_validate_redist_version: no VLPI support, no direct LPI support + [CPU3] [ 3] CPU3 IDLE: nx_idle_trampoline: CPU3: Beginning Idle Loop + [CPU0] [ 0] CPU0 IDLE: work_start_highpri: Starting high-priority kernel worker thread(s) + [CPU0] [ 0] CPU0 IDLE: nx_start_application: Starting init thread + [CPU0] [ 0] CPU0 IDLE: task_spawn: name=nsh_main entry=0xc41c file_actions=0 attr=0x43f68 argv=0x43f60 + [CPU0] [ 0] CPU0 IDLE: nx_start: CPU0: Beginning Idle Loop + nsh: mkfatfs: command not found + + NuttShell (NSH) NuttX-12.0.0 + nsh> + + Step2: telnet to UART1 + Starting another terminal and enter: + $ telnet localhost 5001 + Trying 127.0.0.1... + Connected to localhost. + Escape character is '^]'. + nsh: mkfatfs: command not found + NuttShell (NSH) NuttX-12.0.0 + nsh> Status ======