Features/MicroBit: Difference between revisions

From QEMU
No edit summary
No edit summary
 
(42 intermediate revisions by 2 users not shown)
Line 8: Line 8:
== Patches ==
== Patches ==


v1 of Joel's micro:bit machine:
{| class="wikitable"
! scope="col"| Date
! scope="col"| Name
! scope="col"| Message ID
! scope="col"| Status
|-
|5/3/18
|<s>[PATCH 0/2] arm: Add nRF51 SoC and micro:bit machine</s>
| [http://patchew.org/QEMU/20180503090532.3113-1-joel@jms.id.au/ 20180503090532.3113-1-joel@jms.id.au]
| superseded
|-
|5/29/18
|[RFC 0/3] nRF51 SoC: Add UART support
|[http://patchew.org/QEMU/20180529220338.10879-1-jusual@mail.ru/ 20180529220338.10879-1-jusual@mail.ru]
| Not merged
|-
|6/2/18
|<s>[RFC 0/2] arm: add skeleton Cortex M0 CPU model</s>
|[http://patchew.org/QEMU/20180602141446.29982-1-stefanha@redhat.com/ 20180602141446.29982-1-stefanha@redhat.com]
| superseded
|-
|6/3/18
|[RFC v3] qapi: command category to stimulate high-level machine devices
|[http://patchew.org/QEMU/20180603203412.11033-1-contrib@steffen-goertz.de/ 20180603203412.11033-1-contrib@steffen-goertz.de]
| not merged
|-
|6/10/18
|<s>[RFC] target/arm: add ARMv6-M UNDEFINED 32-bit instruction test</s>
|[http://patchew.org/QEMU/20180610153556.17107-1-stefanha@redhat.com/ 20180610153556.17107-1-stefanha@redhat.com]
| superseded
|-
|6/12/18
|[PATCH] target/arm: Allow ARMv6-M Thumb2 instructions
|[http://patchew.org/QEMU/20180612204632.28780-1-jusual@mail.ru/ 20180612204632.28780-1-jusual@mail.ru]
| merged
|-
|6/14/18
|[RFC v2] target/arm: add ARMv6-M UNDEFINED 32-bit instruction test
|[http://patchew.org/QEMU/20180614081610.12092-1-stefanha@redhat.com/ 20180614081610.12092-1-stefanha@redhat.com]
| not merged
|-
|6/18/18
|[PATCH] target/arm: Minor cleanup for ARMv6-M 32-bit instructions
|[http://patchew.org/QEMU/20180618214604.6777-1-jusual@mail.ru/ 20180618214604.6777-1-jusual@mail.ru]
| merged
|-
|6/19/18
|<s>[RFC] Add NRF51 RNG peripheral</s>
|[http://patchew.org/QEMU/20180619105451.29163-1-contrib@steffen-goertz.de/ 20180619105451.29163-1-contrib@steffen-goertz.de]
| superseded
|-
|6/19/18
|<s>[PATCH] target/arm: Set strict alignment for ARMv6-M load/store</s>
|[http://patchew.org/QEMU/20180619204237.9931-1-jusual@mail.ru/ 20180619204237.9931-1-jusual@mail.ru]
| superseded
|-
|6/22/18
|[PATCH v2 0/2] Strict alignment for ARMv6-M and ARMv8-M Baseline
|[http://patchew.org/QEMU/20180622080138.17702-1-jusual@mail.ru/ 20180622080138.17702-1-jusual@mail.ru]
| merged
|-
|6/26/18
|<s>[RFC v2] arm: Add NRF51 SOC non-volatile memory controller</s>
|[http://patchew.org/QEMU/20180626093204.27612-1-contrib@steffen-goertz.de/ 20180626093204.27612-1-contrib@steffen-goertz.de]
| superseded
|-
|6/26/18
|<s>[RFC] arm: Add NRF51 SOC non-volatile memory controller</s>
|[http://patchew.org/QEMU/20180626081743.22097-1-contrib@steffen-goertz.de/ 20180626081743.22097-1-contrib@steffen-goertz.de]
| superseded
|-
|6/26/18
|<s>[RFC v2] arm: Add NRF51 random number generator peripheral</s>
|[http://patchew.org/QEMU/20180626104943.2756-1-contrib@steffen-goertz.de/ 20180626104943.2756-1-contrib@steffen-goertz.de]
| superseded
|-
|6/27/18
|[PATCH v2 0/3] arm: Add nRF51 SoC and micro:bit machine
| [http://patchew.org/QEMU/20180627143815.1829-1-joel@jms.id.au/ 20180627143815.1829-1-joel@jms.id.au]
| not merged
|-
|6/27/18
|[RFC 0/8] arm: Changes to Microbit Board and NRF51 SOC
|[http://patchew.org/QEMU/20180627073351.856-1-contrib@steffen-goertz.de/ 20180627073351.856-1-contrib@steffen-goertz.de]
| not merged
|-
|6/30/18
|[PATCH v2 0/3] arm: add skeleton Cortex M0 CPU model
|[http://patchew.org/QEMU/20180630091343.14391-1-stefanha@redhat.com/ 20180630091343.14391-1-stefanha@redhat.com]
| not merged
|-
|7/2/18
|[PATCH] qtest: Use cpu address space instead of system memory
|[http://patchew.org/QEMU/20180702065237.27899-1-jusual@mail.ru/ 20180702065237.27899-1-jusual@mail.ru]
| merged
|-
|7/4/18
|<s>[PATCH 0/2] nvic: Handle ARMv6-M SCS reserved registers</s>
|[http://patchew.org/QEMU/20180704195812.28798-1-jusual@mail.ru/ 20180704195812.28798-1-jusual@mail.ru]
| superseded
|-
|7/4/18
|<s>[PATCH] target/arm: Forbid unprivileged mode for M Baseline</s>
|[http://patchew.org/QEMU/20180704203639.29553-1-jusual@mail.ru/ 20180704203639.29553-1-jusual@mail.ru]
| superseded
|-
|7/5/18
|<s>[PATCH v2 0/2] nvic: Handle ARMv6-M SCS reserved registers</s>
|[http://patchew.org/QEMU/20180705215052.8795-1-jusual@mail.ru/ 20180705215052.8795-1-jusual@mail.ru]
| superseded
|-
|7/5/18
|[PATCH v3 0/2] nvic: Handle ARMv6-M SCS reserved registers
|[http://patchew.org/QEMU/20180705222115.17013-1-jusual@mail.ru/ 20180705222115.17013-1-jusual@mail.ru]
| queued
|-
|7/5/18
|[PATCH v2] target/arm: Forbid unprivileged mode for M Baseline
|[http://patchew.org/QEMU/20180705222622.17139-1-jusual@mail.ru/ 20180705222622.17139-1-jusual@mail.ru]
| queued
|-
|7/12/18
|[RFC v3 0/2] Add NRF51 SOC non-volatile memory controller
|[http://patchew.org/QEMU/20180712101219.32707-1-contrib@steffen-goertz.de/ 20180712101219.32707-1-contrib@steffen-goertz.de]
| not merged
|-
|7/13/18
|[PATCH] arm: Add ARMv6-M programmer's model support
|[http://patchew.org/QEMU/20180713103059.12539-1-jusual@mail.ru/ 20180713103059.12539-1-jusual@mail.ru]
| not merged
|-
|7/13/18
|[RFC v3] arm: Add NRF51 random number generator peripheral
|[http://patchew.org/QEMU/20180713154007.3853-1-contrib@steffen-goertz.de/ 20180713154007.3853-1-contrib@steffen-goertz.de]
| not merged
|-
|7/15/18
|<s>[RFC 1/2] arm: Add nRF51 GPIO peripheral</s>
|[http://patchew.org/QEMU/20180715163404.10077-1-contrib@steffen-goertz.de/ 20180715163404.10077-1-contrib@steffen-goertz.de]
| superseded
|-
|7/16/18
|[RFC v2 1/2] arm: Add nRF51 GPIO peripheral
|[http://patchew.org/QEMU/20180716104744.11105-1-contrib@steffen-goertz.de/ 20180716104744.11105-1-contrib@steffen-goertz.de]
| not merged
|-
|7/25/18
|<s>[PATCH v3 0/7] arm: add Cortex M0 CPU model and hex file loader</s>
|[https://patchew.org/QEMU/20180725085944.11856-1-stefanha@redhat.com/ 20180725085944.11856-1-stefanha@redhat.com]
| superseded
|-
|7/26/18
|<s>[PATCH v3 0/3] arm: Add nRF51 SoC and micro:bit machine</s>
|[https://patchew.org/QEMU/20180726023645.13927-1-joel@jms.id.au/ 20180726023645.13927-1-joel@jms.id.au]
| superseded
|-
|8/3/18
|[PATCH v6 0/7] arm: add Cortex M0 CPU model and hex file loader
|[https://patchew.org/QEMU/20180814162739.11814-1-stefanha@redhat.com/ 20180814162739.11814-1-stefanha@redhat.com]
| merged
|-
|7/26/18
|[PATCH v5 0/3] arm: Add nRF51 SoC and micro:bit machine
|[https://patchew.org/QEMU/20180816141303.20518-1-joel@jms.id.au/ 20180816141303.20518-1-joel@jms.id.au]
| not merged
|-
|8/6/18
|[PATCH 0/7] arm: nRF51 Devices and Microbit Support
|[https://patchew.org/QEMU/20180806100114.21410-1-contrib@steffen-goertz.de/ 20180806100114.21410-1-contrib@steffen-goertz.de]
| not merged
|-
|8/11/18
|[PATCH 0/7] arm: Instantiation of nRF51 SOC and bbc:microbit devices
|[https://patchew.org/QEMU/20180811090836.4024-1-contrib@steffen-goertz.de/ 20180811090836.4024-1-contrib@steffen-goertz.de]
| not merged
|-
|8/31/18
|[PATCH v6 0/3] arm: Add nRF51 SoC and micro:bit machine
|[https://patchew.org/QEMU/20180831220920.27113-1-joel@jms.id.au 20180831220920.27113-1-joel@jms.id.au]
| merged
|-
|//
|UART v3
|[https://patchew.org/QEMU/20181025005052.27661-1-jusual@mail.ru 20181025005052.27661-1-jusual@mail.ru]
| merged
|-
| 10/30/18
|[PATCH v3 00/13] arm: nRF51 Devices and Microbit Support
|[https://patchew.org/QEMU/20181031002526.14262-1-contrib@steffen-goertz.de 20181031002526.14262-1-contrib@steffen-goertz.de]
| not merged
|-
|11/2/18
|[PATCH v4 00/13] arm: nRF51 Devices and Microbit Support
|[https://patchew.org/QEMU/20181102170730.12432-1-contrib@steffen-goertz.de 20181102170730.12432-1-contrib@steffen-goertz.de]
| not merged
|}
 
Patches not contributed by the gang, but necessary for the microbit tree:


{| class="wikitable"
{| class="wikitable"
! scope="col"| Patchwork
! scope="col"| Date
! scope="col"| Name
! scope="col"| Message ID
! scope="col"| Message ID
! scope="col"| Status
|-
| 5/16/18
|[PATCH v9 0/2] Implement Hex file loader and add test case
|[http://patchew.org/QEMU/1526452467-18798-1-git-send-email-suhang16@mails.ucas.ac.cn/ 1526452467-18798-1-git-send-email-suhang16@mails.ucas.ac.cn]
| merged
|-
|-
|http://patchwork.ozlabs.org/patch/907900/  
| 6/1/18
|20180503090532.3113-2-joel@jms.id.au
|[PATCH 0/2] armv7m: Remove armv7m_init() function
|[http://patchew.org/QEMU/20180601144328.23817-1-peter.maydell@linaro.org/ 20180601144328.23817-1-peter.maydell@linaro.org]
| merged
|-
|-
|http://patchwork.ozlabs.org/patch/907902/
| 7/13/18
| 20180503090532.3113-3-joel@jms.id.au
| [PATCH v2 00/16] Fix crashes with introspection of ARM devices
| We need to adapt our devices according to this patch
| ??
|}
|}


=Devices=
=Devices=
==nRF51 System-on-Chip==
== nRF51 System-on-Chip ==
* Cortex M0 (ARMv6-M) CPU
* Cortex M0 (ARMv6-M) CPU
** SysTick timer
** SysTick timer
** NVIC irq controller
** NVIC irq controller
* UART [Julia]
* <s>UART</s> [Julia]
* Watchdog
* Watchdog
* Clock controller
* Clock controller [Julia]
* Timers
* <s>Timers</s> [Steffen]
* RTC
* RTC
* RNG
* <s>RNG</s> [Steffen]
* TWI (i2c)
* TWI (i2c)
* SPI
* SPI
Line 37: Line 245:
* Quadrature decoder
* Quadrature decoder
* Radio
* Radio
* GPIO
* <s>GPIO</s> [Steffen]
* <s>NVMC</s> [Steffen]
* <s>SWI</s> [Steffen] ''[seem to be covered by the NVIC without any work to do]''


==Peripherals==
== bbc:microbit ==
* A & B Buttons [Steffen]
* A & B Buttons [Steffen]
* 5x5 LEDs
* 5x5 LEDs [Steffen]
* i2c Accelerometer/Magnetometer
* i2c Accelerometer/Magnetometer



Latest revision as of 17:10, 2 November 2018

The micro:bit is a small ARMv6-M board designed for learning about computers. It can be programmed in Python, Javascript, and C/C++.

Julia Suvorova and Steffen Görtz are implementing micro:bit support in QEMU as part of the Outreachy and Google Summer of Code internship program.

Details

Patches

Date Name Message ID Status
5/3/18 [PATCH 0/2] arm: Add nRF51 SoC and micro:bit machine 20180503090532.3113-1-joel@jms.id.au superseded
5/29/18 [RFC 0/3] nRF51 SoC: Add UART support 20180529220338.10879-1-jusual@mail.ru Not merged
6/2/18 [RFC 0/2] arm: add skeleton Cortex M0 CPU model 20180602141446.29982-1-stefanha@redhat.com superseded
6/3/18 [RFC v3] qapi: command category to stimulate high-level machine devices 20180603203412.11033-1-contrib@steffen-goertz.de not merged
6/10/18 [RFC] target/arm: add ARMv6-M UNDEFINED 32-bit instruction test 20180610153556.17107-1-stefanha@redhat.com superseded
6/12/18 [PATCH] target/arm: Allow ARMv6-M Thumb2 instructions 20180612204632.28780-1-jusual@mail.ru merged
6/14/18 [RFC v2] target/arm: add ARMv6-M UNDEFINED 32-bit instruction test 20180614081610.12092-1-stefanha@redhat.com not merged
6/18/18 [PATCH] target/arm: Minor cleanup for ARMv6-M 32-bit instructions 20180618214604.6777-1-jusual@mail.ru merged
6/19/18 [RFC] Add NRF51 RNG peripheral 20180619105451.29163-1-contrib@steffen-goertz.de superseded
6/19/18 [PATCH] target/arm: Set strict alignment for ARMv6-M load/store 20180619204237.9931-1-jusual@mail.ru superseded
6/22/18 [PATCH v2 0/2] Strict alignment for ARMv6-M and ARMv8-M Baseline 20180622080138.17702-1-jusual@mail.ru merged
6/26/18 [RFC v2] arm: Add NRF51 SOC non-volatile memory controller 20180626093204.27612-1-contrib@steffen-goertz.de superseded
6/26/18 [RFC] arm: Add NRF51 SOC non-volatile memory controller 20180626081743.22097-1-contrib@steffen-goertz.de superseded
6/26/18 [RFC v2] arm: Add NRF51 random number generator peripheral 20180626104943.2756-1-contrib@steffen-goertz.de superseded
6/27/18 [PATCH v2 0/3] arm: Add nRF51 SoC and micro:bit machine 20180627143815.1829-1-joel@jms.id.au not merged
6/27/18 [RFC 0/8] arm: Changes to Microbit Board and NRF51 SOC 20180627073351.856-1-contrib@steffen-goertz.de not merged
6/30/18 [PATCH v2 0/3] arm: add skeleton Cortex M0 CPU model 20180630091343.14391-1-stefanha@redhat.com not merged
7/2/18 [PATCH] qtest: Use cpu address space instead of system memory 20180702065237.27899-1-jusual@mail.ru merged
7/4/18 [PATCH 0/2] nvic: Handle ARMv6-M SCS reserved registers 20180704195812.28798-1-jusual@mail.ru superseded
7/4/18 [PATCH] target/arm: Forbid unprivileged mode for M Baseline 20180704203639.29553-1-jusual@mail.ru superseded
7/5/18 [PATCH v2 0/2] nvic: Handle ARMv6-M SCS reserved registers 20180705215052.8795-1-jusual@mail.ru superseded
7/5/18 [PATCH v3 0/2] nvic: Handle ARMv6-M SCS reserved registers 20180705222115.17013-1-jusual@mail.ru queued
7/5/18 [PATCH v2] target/arm: Forbid unprivileged mode for M Baseline 20180705222622.17139-1-jusual@mail.ru queued
7/12/18 [RFC v3 0/2] Add NRF51 SOC non-volatile memory controller 20180712101219.32707-1-contrib@steffen-goertz.de not merged
7/13/18 [PATCH] arm: Add ARMv6-M programmer's model support 20180713103059.12539-1-jusual@mail.ru not merged
7/13/18 [RFC v3] arm: Add NRF51 random number generator peripheral 20180713154007.3853-1-contrib@steffen-goertz.de not merged
7/15/18 [RFC 1/2] arm: Add nRF51 GPIO peripheral 20180715163404.10077-1-contrib@steffen-goertz.de superseded
7/16/18 [RFC v2 1/2] arm: Add nRF51 GPIO peripheral 20180716104744.11105-1-contrib@steffen-goertz.de not merged
7/25/18 [PATCH v3 0/7] arm: add Cortex M0 CPU model and hex file loader 20180725085944.11856-1-stefanha@redhat.com superseded
7/26/18 [PATCH v3 0/3] arm: Add nRF51 SoC and micro:bit machine 20180726023645.13927-1-joel@jms.id.au superseded
8/3/18 [PATCH v6 0/7] arm: add Cortex M0 CPU model and hex file loader 20180814162739.11814-1-stefanha@redhat.com merged
7/26/18 [PATCH v5 0/3] arm: Add nRF51 SoC and micro:bit machine 20180816141303.20518-1-joel@jms.id.au not merged
8/6/18 [PATCH 0/7] arm: nRF51 Devices and Microbit Support 20180806100114.21410-1-contrib@steffen-goertz.de not merged
8/11/18 [PATCH 0/7] arm: Instantiation of nRF51 SOC and bbc:microbit devices 20180811090836.4024-1-contrib@steffen-goertz.de not merged
8/31/18 [PATCH v6 0/3] arm: Add nRF51 SoC and micro:bit machine 20180831220920.27113-1-joel@jms.id.au merged
// UART v3 20181025005052.27661-1-jusual@mail.ru merged
10/30/18 [PATCH v3 00/13] arm: nRF51 Devices and Microbit Support 20181031002526.14262-1-contrib@steffen-goertz.de not merged
11/2/18 [PATCH v4 00/13] arm: nRF51 Devices and Microbit Support 20181102170730.12432-1-contrib@steffen-goertz.de not merged

Patches not contributed by the gang, but necessary for the microbit tree:

Date Name Message ID Status
5/16/18 [PATCH v9 0/2] Implement Hex file loader and add test case 1526452467-18798-1-git-send-email-suhang16@mails.ucas.ac.cn merged
6/1/18 [PATCH 0/2] armv7m: Remove armv7m_init() function 20180601144328.23817-1-peter.maydell@linaro.org merged
7/13/18 [PATCH v2 00/16] Fix crashes with introspection of ARM devices We need to adapt our devices according to this patch ??

Devices

nRF51 System-on-Chip

  • Cortex M0 (ARMv6-M) CPU
    • SysTick timer
    • NVIC irq controller
  • UART [Julia]
  • Watchdog
  • Clock controller [Julia]
  • Timers [Steffen]
  • RTC
  • RNG [Steffen]
  • TWI (i2c)
  • SPI
  • ADC
  • Quadrature decoder
  • Radio
  • GPIO [Steffen]
  • NVMC [Steffen]
  • SWI [Steffen] [seem to be covered by the NVIC without any work to do]

bbc:microbit

  • A & B Buttons [Steffen]
  • 5x5 LEDs [Steffen]
  • i2c Accelerometer/Magnetometer

User interface

  • New WebSocket QMP monitor for UI commands
  • Button commands
  • LED update events
  • HTML/Javascript frontend that connects to WebSocket UI monitor