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
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.
Signed-off-by: Alexandre Iooss <erdnaxe@crans.org>
---
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.
+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:
+
+.. 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
--
2.25.1
+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 <erdnaxe@crans.org>
> ---
> 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.
> +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é <f4bug@amsat.org>
> +
> +.. 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
>
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 <erdnaxe@crans.org> >> --- >> 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é <f4bug@amsat.org> > 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
© 2016 - 2025 Red Hat, Inc.