xref: /openbmc/qemu/docs/system/arm/stm32.rst (revision ea8ae47bdd2024dc2596f16b27f27fd4dcc08776)
1*800cbbfbSPeter MaydellSTMicroelectronics STM32 boards (``netduino2``, ``netduinoplus2``, ``olimex-stm32-h405``, ``stm32vldiscovery``)
2*800cbbfbSPeter Maydell===============================================================================================================
31af060e5SAlexandre Iooss
41af060e5SAlexandre IoossThe `STM32`_ chips are a family of 32-bit ARM-based microcontroller by
51af060e5SAlexandre IoossSTMicroelectronics.
61af060e5SAlexandre Iooss
71af060e5SAlexandre Iooss.. _STM32: https://www.st.com/en/microcontrollers-microprocessors/stm32-32-bit-arm-cortex-mcus.html
81af060e5SAlexandre Iooss
91af060e5SAlexandre IoossThe STM32F1 series is based on ARM Cortex-M3 core. The following machines are
101af060e5SAlexandre Ioossbased on this chip :
111af060e5SAlexandre Iooss
121af060e5SAlexandre Iooss- ``stm32vldiscovery``  STM32VLDISCOVERY board with STM32F100RBT6 microcontroller
131af060e5SAlexandre Iooss
141af060e5SAlexandre IoossThe STM32F2 series is based on ARM Cortex-M3 core. The following machines are
151af060e5SAlexandre Ioossbased on this chip :
161af060e5SAlexandre Iooss
171af060e5SAlexandre Iooss- ``netduino2``         Netduino 2 board with STM32F205RFT6 microcontroller
181af060e5SAlexandre Iooss
1941581f13SInès VarholThe STM32F4 series is based on ARM Cortex-M4F core, as well as the STM32L4
2041581f13SInès Varholultra-low-power series. The STM32F4 series is pin-to-pin compatible with STM32F2 series.
2141581f13SInès VarholThe following machines are based on this ARM Cortex-M4F chip :
221af060e5SAlexandre Iooss
231af060e5SAlexandre Iooss- ``netduinoplus2``     Netduino Plus 2 board with STM32F405RGT6 microcontroller
24ee5bffa9SFelipe Balbi- ``olimex-stm32-h405`` Olimex STM32 H405 board with STM32F405RGT6 microcontroller
2541581f13SInès Varhol- ``b-l475e-iot01a``     :doc:`B-L475E-IOT01A IoT Node </system/arm/b-l475e-iot01a>` board with STM32L475VG microcontroller
261af060e5SAlexandre Iooss
271af060e5SAlexandre IoossThere are many other STM32 series that are currently not supported by QEMU.
281af060e5SAlexandre Iooss
291af060e5SAlexandre IoossSupported devices
301af060e5SAlexandre Iooss-----------------
311af060e5SAlexandre Iooss
321af060e5SAlexandre Iooss * ARM Cortex-M3, Cortex M4F
331af060e5SAlexandre Iooss * Analog to Digital Converter (ADC)
341af060e5SAlexandre Iooss * EXTI interrupt
351af060e5SAlexandre Iooss * Serial ports (USART)
361af060e5SAlexandre Iooss * SPI controller
371af060e5SAlexandre Iooss * System configuration (SYSCFG)
381af060e5SAlexandre Iooss * Timer controller (TIMER)
39950dff9aSRomán Cárdenas Rodríguez * Reset and Clock Controller (RCC) (STM32F4 only, reset and enable only)
401af060e5SAlexandre Iooss
411af060e5SAlexandre IoossMissing devices
421af060e5SAlexandre Iooss---------------
431af060e5SAlexandre Iooss
441af060e5SAlexandre Iooss * Camera interface (DCMI)
451af060e5SAlexandre Iooss * Controller Area Network (CAN)
461af060e5SAlexandre Iooss * Cycle Redundancy Check (CRC) calculation unit
471af060e5SAlexandre Iooss * Digital to Analog Converter (DAC)
481af060e5SAlexandre Iooss * DMA controller
491af060e5SAlexandre Iooss * Ethernet controller
501af060e5SAlexandre Iooss * Flash Interface Unit
511af060e5SAlexandre Iooss * GPIO controller
521af060e5SAlexandre Iooss * I2C controller
531af060e5SAlexandre Iooss * Inter-Integrated Sound (I2S) controller
541af060e5SAlexandre Iooss * Power supply configuration (PWR)
551af060e5SAlexandre Iooss * Random Number Generator (RNG)
561af060e5SAlexandre Iooss * Real-Time Clock (RTC) controller
57950dff9aSRomán Cárdenas Rodríguez * Reset and Clock Controller (RCC) (other features than reset and enable)
581af060e5SAlexandre Iooss * Secure Digital Input/Output (SDIO) interface
591af060e5SAlexandre Iooss * USB OTG
601af060e5SAlexandre Iooss * Watchdog controller (IWDG, WWDG)
611af060e5SAlexandre Iooss
621af060e5SAlexandre IoossBoot options
631af060e5SAlexandre Iooss------------
641af060e5SAlexandre Iooss
651af060e5SAlexandre IoossThe STM32 machines can be started using the ``-kernel`` option to load a
661af060e5SAlexandre Ioossfirmware. Example:
671af060e5SAlexandre Iooss
681af060e5SAlexandre Iooss.. code-block:: bash
691af060e5SAlexandre Iooss
701af060e5SAlexandre Iooss  $ qemu-system-arm -M stm32vldiscovery -kernel firmware.bin
71