[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v7 00/18] Add Allwinner H3 SoC and Orange Pi PC Machine
From: |
Niek Linnenbank |
Subject: |
[PATCH v7 00/18] Add Allwinner H3 SoC and Orange Pi PC Machine |
Date: |
Tue, 10 Mar 2020 22:31:45 +0100 |
Dear QEMU developers,
Hereby I would like to contribute the following set of patches to QEMU
which add support for the Allwinner H3 System on Chip and the
Orange Pi PC machine. The following features and devices are supported:
* SMP (Quad Core Cortex A7)
* Generic Interrupt Controller configuration
* SRAM mappings
* SDRAM controller
* Real Time Clock
* Timer device (re-used from Allwinner A10)
* UART
* SD/MMC storage controller
* EMAC ethernet
* USB 2.0 interfaces
* Clock Control Unit
* System Control module
* Security Identifier device
Functionality related to graphical output such as HDMI, GPU,
Display Engine and audio are not included. Recently released
mainline Linux kernels (4.19 up to latest master), mainline U-Boot
and NetBSD 9.0 are known to work.
For full details on how to use the Orange Pi PC machine, see the file
docs/system/orangepi.rst which is included as a patch in this series.
The contents of this patch series is available on Github at:
https://github.com/nieklinnenbank/qemu/tree/allwinner-h3-v7
The followings are currently known issues in this series:
- RTC date & time is not persistent
- boot0 custom Allwinner bootloader not yet working
- Watchdog not yet implemented, affects U-Boot 'reset' and shutdown/reboot
-> This is part of the existing A10 timer that needs to be generalized
first
Looking forward to your review comments. I will do my best
to update the patches where needed.
===== CHANGELOG =====
v7:
* tests/acceptances/boot_linux_console.py: extend test_arm_orangepi_sd with
checks for ethernet device
* docs/system/orangepi.rst: moved from docs/ top level to docs/system/
* docs/system/orangepi.rst: correct indentation and section headers to resolve
sphinx parse errors
* docs/system/orangepi.rst: add .. code-block:: bash for each code example
* docs/system/target-arm.rst: include the orangepi.rst file
* hw/misc/allwinner-cpucfg.c: use arm_feature(&target_cpu->env,
ARM_FEATURE_AARCH64) to fill target_aa64 for 64-bit compatibility
* hw/arm/orangepi.c: use object_property_add_child to add H3 SoC object to
machine and use object_unref, to avoid memory leak on exit
v6: https://lists.gnu.org/archive/html/qemu-devel/2020-03/msg00046.html
https://github.com/nieklinnenbank/qemu/tree/allwinner-h3-v6
v5: https://lists.gnu.org/archive/html/qemu-devel/2020-02/msg04525.html
https://github.com/nieklinnenbank/qemu/tree/allwinner-h3-v5
v4: https://lists.gnu.org/archive/html/qemu-devel/2020-01/msg03960.html
https://github.com/nieklinnenbank/qemu/tree/allwinner-h3-v4
v3: https://lists.gnu.org/archive/html/qemu-devel/2020-01/msg01534.html
https://github.com/nieklinnenbank/qemu/tree/allwinner-h3-v3
v2: https://lists.gnu.org/archive/html/qemu-devel/2019-12/msg03265.html
https://github.com/nieklinnenbank/qemu/tree/allwinner-h3-v2
v1: https://lists.gnu.org/archive/html/qemu-devel/2019-12/msg00320.html
https://github.com/nieklinnenbank/qemu/tree/allwinner-h3-v1
With kind regards,
Niek Linnenbank
Niek Linnenbank (13):
hw/arm: add Allwinner H3 System-on-Chip
hw/arm: add Xunlong Orange Pi PC machine
hw/arm/allwinner-h3: add Clock Control Unit
hw/arm/allwinner-h3: add USB host controller
hw/arm/allwinner-h3: add System Control module
hw/arm/allwinner: add CPU Configuration module
hw/arm/allwinner: add Security Identifier device
hw/arm/allwinner: add SD/MMC host controller
hw/arm/allwinner-h3: add EMAC ethernet device
hw/arm/allwinner-h3: add Boot ROM support
hw/arm/allwinner-h3: add SDRAM controller device
hw/arm/allwinner: add RTC device support
docs: add Orange Pi PC document
Philippe Mathieu-Daudé (5):
tests/boot_linux_console: Add a quick test for the OrangePi PC board
tests/boot_linux_console: Add initrd test for the Orange Pi PC board
tests/boot_linux_console: Add a SD card test for the OrangePi PC board
tests/boot_linux_console: Add a SLOW test booting Ubuntu on OrangePi
PC
tests/boot_linux_console: Test booting NetBSD via U-Boot on OrangePi
PC
docs/system/orangepi.rst | 253 +++++++
docs/system/target-arm.rst | 2 +
default-configs/arm-softmmu.mak | 1 +
hw/usb/hcd-ehci.h | 1 +
include/hw/arm/allwinner-a10.h | 4 +
include/hw/arm/allwinner-h3.h | 161 +++++
include/hw/misc/allwinner-cpucfg.h | 52 ++
include/hw/misc/allwinner-h3-ccu.h | 66 ++
include/hw/misc/allwinner-h3-dramc.h | 106 +++
include/hw/misc/allwinner-h3-sysctrl.h | 67 ++
include/hw/misc/allwinner-sid.h | 60 ++
include/hw/net/allwinner-sun8i-emac.h | 99 +++
include/hw/rtc/allwinner-rtc.h | 134 ++++
include/hw/sd/allwinner-sdhost.h | 135 ++++
hw/arm/allwinner-a10.c | 19 +
hw/arm/allwinner-h3.c | 466 +++++++++++++
hw/arm/cubieboard.c | 15 +
hw/arm/orangepi.c | 131 ++++
hw/misc/allwinner-cpucfg.c | 282 ++++++++
hw/misc/allwinner-h3-ccu.c | 242 +++++++
hw/misc/allwinner-h3-dramc.c | 358 ++++++++++
hw/misc/allwinner-h3-sysctrl.c | 140 ++++
hw/misc/allwinner-sid.c | 168 +++++
hw/net/allwinner-sun8i-emac.c | 871 +++++++++++++++++++++++++
hw/rtc/allwinner-rtc.c | 411 ++++++++++++
hw/sd/allwinner-sdhost.c | 854 ++++++++++++++++++++++++
hw/usb/hcd-ehci-sysbus.c | 17 +
MAINTAINERS | 9 +
hw/arm/Kconfig | 12 +
hw/arm/Makefile.objs | 1 +
hw/misc/Makefile.objs | 5 +
hw/misc/trace-events | 19 +
hw/net/Kconfig | 3 +
hw/net/Makefile.objs | 1 +
hw/net/trace-events | 10 +
hw/rtc/Makefile.objs | 1 +
hw/rtc/trace-events | 4 +
hw/sd/Makefile.objs | 1 +
hw/sd/trace-events | 7 +
tests/acceptance/boot_linux_console.py | 230 +++++++
40 files changed, 5418 insertions(+)
create mode 100644 docs/system/orangepi.rst
create mode 100644 include/hw/arm/allwinner-h3.h
create mode 100644 include/hw/misc/allwinner-cpucfg.h
create mode 100644 include/hw/misc/allwinner-h3-ccu.h
create mode 100644 include/hw/misc/allwinner-h3-dramc.h
create mode 100644 include/hw/misc/allwinner-h3-sysctrl.h
create mode 100644 include/hw/misc/allwinner-sid.h
create mode 100644 include/hw/net/allwinner-sun8i-emac.h
create mode 100644 include/hw/rtc/allwinner-rtc.h
create mode 100644 include/hw/sd/allwinner-sdhost.h
create mode 100644 hw/arm/allwinner-h3.c
create mode 100644 hw/arm/orangepi.c
create mode 100644 hw/misc/allwinner-cpucfg.c
create mode 100644 hw/misc/allwinner-h3-ccu.c
create mode 100644 hw/misc/allwinner-h3-dramc.c
create mode 100644 hw/misc/allwinner-h3-sysctrl.c
create mode 100644 hw/misc/allwinner-sid.c
create mode 100644 hw/net/allwinner-sun8i-emac.c
create mode 100644 hw/rtc/allwinner-rtc.c
create mode 100644 hw/sd/allwinner-sdhost.c
--
2.17.1
- [PATCH v7 00/18] Add Allwinner H3 SoC and Orange Pi PC Machine,
Niek Linnenbank <=
- [PATCH v7 02/18] hw/arm: add Xunlong Orange Pi PC machine, Niek Linnenbank, 2020/03/10
- [PATCH v7 04/18] hw/arm/allwinner-h3: add USB host controller, Niek Linnenbank, 2020/03/10
- [PATCH v7 05/18] hw/arm/allwinner-h3: add System Control module, Niek Linnenbank, 2020/03/10
- [PATCH v7 03/18] hw/arm/allwinner-h3: add Clock Control Unit, Niek Linnenbank, 2020/03/10
- [PATCH v7 01/18] hw/arm: add Allwinner H3 System-on-Chip, Niek Linnenbank, 2020/03/10
- [PATCH v7 10/18] hw/arm/allwinner-h3: add Boot ROM support, Niek Linnenbank, 2020/03/10
- [PATCH v7 07/18] hw/arm/allwinner: add Security Identifier device, Niek Linnenbank, 2020/03/10