Documentation: migrate qemu-armv7a/README.txt to rst
Migrate qemu-armv7a/README.txt to rst. Also add some notes about PCI support for this board
This commit is contained in:
parent
656883fec5
commit
85eba56068
2 changed files with 103 additions and 93 deletions
|
@ -1,91 +0,0 @@
|
|||
README.txt
|
||||
==========
|
||||
|
||||
This board configuration will use QEMU to emulate generic ARM v7-A series
|
||||
hardware platform and provides support for these devices:
|
||||
|
||||
- GICv2 interrupt controllers
|
||||
- ARM Generic Timer
|
||||
- PL011 UART controller
|
||||
|
||||
Contents
|
||||
========
|
||||
- Getting Started
|
||||
- Status
|
||||
- Platform Features
|
||||
- Debugging with QEMU
|
||||
- FPU Support and Performance
|
||||
- SMP Support
|
||||
- References
|
||||
|
||||
Getting Started
|
||||
===============
|
||||
|
||||
1. Configuring and running
|
||||
1.1 Single Core
|
||||
Configuring NuttX and compile:
|
||||
$ ./tools/configure.sh -l qemu-armv7a:nsh
|
||||
$ make
|
||||
Running with qemu
|
||||
$ qemu-system-arm -cpu cortex-a7 -nographic \
|
||||
-machine virt,virtualization=off,gic-version=2 \
|
||||
-net none -chardev stdio,id=con,mux=on -serial chardev:con \
|
||||
-mon chardev=con,mode=readline -kernel ./nuttx
|
||||
|
||||
2. knsh
|
||||
------
|
||||
This is a configuration of testing the BUILD_KERNEL configuration
|
||||
$ cd nuttx
|
||||
$ ./tools/configure.sh qemu-armv7a:knsh
|
||||
$ make V=1 -j7
|
||||
$ make export V=1
|
||||
$ cd ../apps
|
||||
$ ./tools/mkimport.sh -z -x ../nuttx/nuttx-export-*.tar.gz
|
||||
$ make import V=1
|
||||
$ cd ../nuttx
|
||||
$ qemu-system-arm -semihosting -M virt -m 1024 -nographic -kernel ./nuttx
|
||||
|
||||
NuttShell (NSH) NuttX-12.3.0-RC0
|
||||
nsh> uname -a
|
||||
NuttX 12.3.0-RC0 28dee592a3-dirty Oct 12 2023 03:03:07 arm qemu-armv7a
|
||||
nsh> ps
|
||||
PID GROUP PRI POLICY TYPE NPX STATE EVENT SIGMASK STACK USED FILLED COMMAND
|
||||
0 0 0 FIFO Kthread N-- Ready 0000000000000000 004088 000896 21.9% Idle_Task
|
||||
1 1 100 RR Kthread --- Waiting Semaphore 0000000000000000 004040 000304 7.5% lpwork 0x40119398 0x401193ac
|
||||
2 2 100 RR Task --- Running 0000000000000000 003032 001032 34.0% /system/bin/init
|
||||
nsh> free
|
||||
total used free largest nused nfree
|
||||
Kmem: 133058556 16644 133041912 133041152 41 3
|
||||
Page: 134217728 1105920 133111808 133111808
|
||||
nsh> /system/bin/hello
|
||||
Hello, World!!
|
||||
nsh>
|
||||
|
||||
Debugging with QEMU
|
||||
===================
|
||||
|
||||
The nuttx ELF image can be debugged with QEMU.
|
||||
|
||||
1. To debug the nuttx (ELF) with symbols, make sure the following change have
|
||||
applied to defconfig.
|
||||
|
||||
+CONFIG_DEBUG_SYMBOLS=y
|
||||
|
||||
2. Run QEMU(at shell terminal 1)
|
||||
|
||||
Single Core
|
||||
$ qemu-system-arm -cpu cortex-a7 -nographic \
|
||||
-machine virt,virtualization=off,gic-version=2 \
|
||||
-net none -chardev stdio,id=con,mux=on -serial chardev:con \
|
||||
-mon chardev=con,mode=readline -kernel ./nuttx -S -s
|
||||
|
||||
3. Run gdb with TUI, connect to QEMU, load nuttx and continue (at shell terminal 2)
|
||||
|
||||
$ arm-none-eabi-gdb -tui --eval-command='target remote localhost:1234' nuttx
|
||||
(gdb) c
|
||||
Continuing.
|
||||
^C
|
||||
Program received signal SIGINT, Interrupt.
|
||||
nx_start () at armv7-a/arm_head.S:209
|
||||
(gdb)
|
||||
|
|
@ -2,6 +2,107 @@
|
|||
qemu-armv7a
|
||||
===========
|
||||
|
||||
.. include:: README.txt
|
||||
:literal:
|
||||
This board configuration will use QEMU to emulate generic ARM v7-A series
|
||||
hardware platform and provides support for these devices:
|
||||
|
||||
* GICv2 interrupt controllers
|
||||
* ARM Generic Timer
|
||||
* PL011 UART controller
|
||||
* PCI ECAM
|
||||
* VirtIO Device
|
||||
|
||||
Getting Started
|
||||
===============
|
||||
|
||||
NSH (Single Core)
|
||||
-----------------
|
||||
|
||||
Configuring NuttX and compile::
|
||||
|
||||
$ ./tools/configure.sh -l qemu-armv7a:nsh
|
||||
$ make
|
||||
|
||||
Running with qemu::
|
||||
|
||||
$ qemu-system-arm -cpu cortex-a7 -nographic \
|
||||
-machine virt,virtualization=off,gic-version=2 \
|
||||
-net none -chardev stdio,id=con,mux=on -serial chardev:con \
|
||||
-mon chardev=con,mode=readline -kernel ./nuttx
|
||||
|
||||
KNSH (Single Core)
|
||||
------------------
|
||||
|
||||
This is a configuration of testing the BUILD_KERNEL configuration::
|
||||
|
||||
$ cd nuttx
|
||||
$ ./tools/configure.sh qemu-armv7a:knsh
|
||||
$ make V=1 -j7
|
||||
$ make export V=1
|
||||
$ cd ../apps
|
||||
$ ./tools/mkimport.sh -z -x ../nuttx/nuttx-export-*.tar.gz
|
||||
$ make import V=1
|
||||
$ cd ../nuttx
|
||||
$ qemu-system-arm -semihosting -M virt -m 1024 -nographic -kernel ./nuttx
|
||||
|
||||
NuttShell (NSH) NuttX-12.3.0-RC0
|
||||
nsh> uname -a
|
||||
NuttX 12.3.0-RC0 28dee592a3-dirty Oct 12 2023 03:03:07 arm qemu-armv7a
|
||||
nsh> ps
|
||||
PID GROUP PRI POLICY TYPE NPX STATE EVENT SIGMASK STACK USED FILLED COMMAND
|
||||
0 0 0 FIFO Kthread N-- Ready 0000000000000000 004088 000896 21.9% Idle_Task
|
||||
1 1 100 RR Kthread --- Waiting Semaphore 0000000000000000 004040 000304 7.5% lpwork 0x40119398 0x401193ac
|
||||
2 2 100 RR Task --- Running 0000000000000000 003032 001032 34.0% /system/bin/init
|
||||
nsh> free
|
||||
total used free largest nused nfree
|
||||
Kmem: 133058556 16644 133041912 133041152 41 3
|
||||
Page: 134217728 1105920 133111808 133111808
|
||||
nsh> /system/bin/hello
|
||||
Hello, World!!
|
||||
nsh>
|
||||
|
||||
Debugging with QEMU
|
||||
===================
|
||||
|
||||
The nuttx ELF image can be debugged with QEMU.
|
||||
|
||||
1. To debug the nuttx (ELF) with symbols, make sure the following change have
|
||||
applied to defconfig::
|
||||
|
||||
+CONFIG_DEBUG_SYMBOLS=y
|
||||
|
||||
2. Run QEMU (Single Core) at shell terminal 1::
|
||||
|
||||
$ qemu-system-arm -cpu cortex-a7 -nographic \
|
||||
-machine virt,virtualization=off,gic-version=2 \
|
||||
-net none -chardev stdio,id=con,mux=on -serial chardev:con \
|
||||
-mon chardev=con,mode=readline -kernel ./nuttx -S -s
|
||||
|
||||
3. Run gdb with TUI, connect to QEMU, load nuttx and continue (at shell terminal 2)::
|
||||
|
||||
$ arm-none-eabi-gdb -tui --eval-command='target remote localhost:1234' nuttx
|
||||
(gdb) c
|
||||
Continuing.
|
||||
^C
|
||||
Program received signal SIGINT, Interrupt.
|
||||
nx_start () at armv7-a/arm_head.S:209
|
||||
(gdb)
|
||||
|
||||
PCI support
|
||||
===========
|
||||
|
||||
To enable PCI support, set the following options::
|
||||
|
||||
CONFIG_DEVICE_TREE=y
|
||||
CONFIG_PCI=y
|
||||
CONFIG_PCI=y
|
||||
|
||||
Then run qemu with::
|
||||
|
||||
-machine virt,highmem=off,virtualization=off,gic-version=2
|
||||
|
||||
The command that starts QEMU and enables the QEMU EDU device looks like this::
|
||||
|
||||
qemu-system-arm -cpu cortex-a7 -nographic \
|
||||
-machine virt,highmem=off,virtualization=off,gic-version=2 \
|
||||
-chardev stdio,id=con,mux=on -serial chardev:con -mon chardev=con,mode=readline \
|
||||
-kernel nuttx -device edu
|
||||
|
|
Loading…
Reference in a new issue