[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 00/30] hw/arm/raspi: Dynamically create machines based on the
[PATCH v2 00/30] hw/arm/raspi: Dynamically create machines based on the board revision
Thu, 6 Feb 2020 02:17:26 +0100
These patches simplify adding the raspi0/raspi1/raspi4 boards.
Igor has been working in his "refactor main RAM allocation to use
hostmem backend" series, and now v4  is almost reviewed.
His raspi patch  clashes with my work, Since it is easier for
him to apply his on top of mine, I am sending these patches first.
Only the 4 first patches matter regarding Igor's refactor, to
include "Extract the RAM size from the board revision" which
should solve the problem he has to fix in .
I finally finished the SoC code, so can add the raspi0/1.
Avocado tests also include to demostrate the boards work.
I will probably move the raspi tests out of boot_linux_console.py,
but that is another series.
Latest patches NOTFORMERGE are mostly to justify this refactor,
like the raspi0 and 1, it is easy to add a new soc/board.
However other bcm peripherals patches need to get merged first
(on the list but old so I need to rebase/repost them).
Please review, at least up to patch 21 (before the tests).
Philippe Mathieu-Daudé (30):
hw/arm/raspi: Use BCM2708 machine type with pre Device Tree kernels
hw/arm/raspi: Correct the board descriptions
hw/arm/raspi: Extract the version from the board revision
hw/arm/raspi: Extract the RAM size from the board revision
hw/arm/raspi: Extract the processor type from the board revision
hw/arm/raspi: Trivial code movement
hw/arm/raspi: Make machines children of abstract RaspiMachineClass
hw/arm/raspi: Make board_rev a field of RaspiMachineClass
hw/arm/raspi: Let class_init() directly call raspi_machine_init()
hw/arm/raspi: Set default RAM size to size encoded in board revision
hw/arm/raspi: Extract the board model from the board revision
hw/arm/raspi: Use a unique raspi_machine_class_init() method
hw/arm/raspi: Extract the cores count from the board revision
hw/arm/bcm2836: Restrict BCM283XClass declaration to C source
hw/arm/bcm2836: QOM'ify more by adding class_init() to each SoC type
hw/arm/bcm2836: Introduce BCM283XClass::core_count
hw/arm/bcm2836: Only provide "enabled-cpus" property to multicore SoCs
hw/arm/bcm2836: Split out common realize() code
hw/arm/bcm2836: Introduce the BCM2835 SoC
hw/arm/raspi: Add the Raspberry Pi Zero machine
hw/arm/raspi: Add the Raspberry Pi B+ machine
tests/acceptance/boot_linux_console: Use raspi console model as key
tests/acceptance/boot_linux_console: Add raspi version=2 parameter
tests/acceptance/boot_linux_console: Test the raspi1 console
tests/acceptance/boot_linux_console: Test the raspi0 console
python/qemu/machine: Allow to use other serial consoles than default
tests/acceptance/boot_linux_console: Test the raspi1 AUX console
tests/acceptance: Count Raspberry Pi logos displayed on framebuffer
hw/arm/bcm2836: Add the ARMv8 BCM2838
hw/arm/raspi: Add the Raspberry Pi 4
include/hw/arm/bcm2836.h | 16 +-
hw/arm/bcm2836.c | 396 +++++++++++++++++++++----
hw/arm/raspi.c | 204 ++++++++++---
python/qemu/machine.py | 10 +-
tests/acceptance/boot_linux_console.py | 154 +++++++++-
5 files changed, 645 insertions(+), 135 deletions(-)