On 6/19/21 12:27 PM, Philippe Mathieu-Daudé wrote: > +Julia / Su / Steffen > > On 6/19/21 11:57 AM, Alexandre Iooss wrote: >> This adds the target guide for BBC Micro:bit. >> >> Information is taken from https://wiki.qemu.org/Features/MicroBit >> and from hw/arm/nrf51_soc.c. > > Great idea :) > >> >> Signed-off-by: Alexandre Iooss >> --- >> MAINTAINERS | 1 + >> docs/system/arm/nrf.rst | 49 ++++++++++++++++++++++++++++++++++++++ >> docs/system/target-arm.rst | 1 + >> 3 files changed, 51 insertions(+) >> create mode 100644 docs/system/arm/nrf.rst >> >> diff --git a/MAINTAINERS b/MAINTAINERS >> index 636bf2f536..7c54611cc2 100644 >> --- a/MAINTAINERS >> +++ b/MAINTAINERS >> @@ -1031,6 +1031,7 @@ F: hw/*/microbit*.c >> F: include/hw/*/nrf51*.h >> F: include/hw/*/microbit*.h >> F: tests/qtest/microbit-test.c >> +F: docs/system/arm/nrf.rst >> >> AVR Machines >> ------------- >> diff --git a/docs/system/arm/nrf.rst b/docs/system/arm/nrf.rst >> new file mode 100644 >> index 0000000000..e30aba8b06 >> --- /dev/null >> +++ b/docs/system/arm/nrf.rst >> @@ -0,0 +1,49 @@ >> +Nordic nRF boards (``microbit``) >> +================================ >> + >> +The `Nordic nRF`_ chips are a family of ARM-based System-on-Chip that >> +are designed to be used for low-power and short-range wireless solutions. >> + >> +.. _Nordic nRF: https://www.nordicsemi.com/Products >> + >> +The nRF51 series is the first series for short range wireless applications. >> +It is superseded by the nRF51 series. Just noticed a typo here, it's "superseded by the nRF52 series". I will fix this in next version of this patch. >> +The following machines are based on this chip : >> + >> +- ``microbit`` BBC micro:bit board with nRF51822 SoC >> + >> +There are other series such as nRF52, nRF53 and nRF91 which are currently not >> +supported by QEMU. >> + >> +Supported devices >> +----------------- >> + >> + * ARM Cortex-M0 (ARMv6-M) >> + * Serial ports (UART) >> + * Clock controller >> + * Timers >> + * Random Number Generator (RNG) >> + * GPIO controller >> + * NVMC >> + * SWI >> + >> +Missing devices >> +--------------- >> + >> + * Watchdog >> + * Real-Time Clock (RTC) controller >> + * TWI (i2c) >> + * SPI controller >> + * Analog to Digital Converter (ADC) >> + * Quadrature decoder >> + * Radio >> + >> +Boot options >> +------------ >> + >> +The Micro:bit machine can be started using the ``-device`` option to load a >> +firmware in hexadecimal format. Example: > > I'd use "ihex format" instead of "hexadecimal format", see > > https://en.wikipedia.org/wiki/Intel_HEX > > and also commit e4a25ed91947af1ec87f23725de4ac86a3353b48: > > loader: Implement .hex file loader > > This patch adds Intel Hexadecimal Object File format support to the > generic loader device. The file format specification is available > here: http://www.piclist.com/techref/fileext/hex/intel.htm > > This file format is often used with microcontrollers such as the > micro:bit, Arduino, STM32, etc. Users expect to be able to run .hex > files directly with without first converting them to ELF. Most > micro:bit code is developed in web-based IDEs without direct user > access to binutils so it is important for QEMU to handle this file > format natively. > > Otherwise: > Reviewed-by: Philippe Mathieu-Daudé > I was not aware of the name of the format. I will apply the change and add a link to the Wikipedia page of Intel HEX. >> + >> +.. code-block:: bash >> + >> + $ qemu-system-arm -M microbit -device loader,file=test.hex >> diff --git a/docs/system/target-arm.rst b/docs/system/target-arm.rst >> index edd013c7bb..5277ac0242 100644 >> --- a/docs/system/target-arm.rst >> +++ b/docs/system/target-arm.rst >> @@ -87,6 +87,7 @@ undocumented; you can get a complete list by running >> arm/digic >> arm/musicpal >> arm/gumstix >> + arm/nrf >> arm/nseries >> arm/nuvoton >> arm/orangepi >> > Thanks, -- Alexandre