This patchset tries to address a discrepancy between the C3700 machine in QEMU/SeaBIOS and the documentation (chapter 5)
http://ftp.parisc-linux.org/docs/whitepapers/PA-8700wp.pdf where 40 bits of physical address space are used in SeaBIOS compared to the 44 bits specified in the documentation. A PA-8500 CPU with 40 bits of physical address space is added to be used with the A400 machine. AFAICT there are no major differences from QEMUs side between the PA-8500 and 8700 aside from the physical address space size. The PA-8700 machine can then be moved to using 44 bits. To account for the discrepancy with SeaBIOS, the functional tests now run the A400. This series introduces a small restructuring to the HPPA CPU class heirarchy. CPU model definitions now inherit from a TYPE_HPPA_CPU base class and use a HPPACPUDef struct to provide model specifics, similar to the SPARC and RISCV targets. This hopefully makes it easier to add other models, such as the 8800/8900. Signed-off-by: Anton Johansson <[email protected]> --- Changes in v5: - Moved assert on maximum size of the physical address space to base class initialization function, so it's only ran once. - Clarified commit message in final patch. - Link to v4: https://lore.kernel.org/qemu-devel/[email protected] Changes in v4: - Add PA-8500 instead of PA-8600 and use the now upstreamed A400 machine. - Link to v3: https://lore.kernel.org/qemu-devel/[email protected] Changes in v3: - Fixed spelling in commit message/comment - Rebased - Dropped if statement in hppa_cpu_class_base_init() (patch "hppa: Introduce HPPACPUDef"). Not needed as it will simply be set to NULL for the abstract base class anyway. - Link to v2: https://lore.kernel.org/qemu-devel/[email protected] Changes in v2: - Missed a reference to the old "hppa" CPU model, updated to "pa-7300lc". - Link to v1: https://lore.kernel.org/qemu-devel/[email protected] --- Anton Johansson (4): hppa: Restructure CPU Class heirarchy hppa: Introduce HPPACPUDef hppa: Get physical address space bits from HPPACPUDef hppa: Use 44 bit physical addresses for PA-8700 target/hppa/cpu-qom.h | 8 ++++- target/hppa/cpu.h | 35 ++++++++++++++++----- hw/hppa/machine.c | 25 +++++++++------ hw/pci-host/astro.c | 2 +- linux-user/hppa/elfload.c | 2 +- target/hppa/cpu.c | 57 +++++++++++++++++++++++++++-------- target/hppa/mem_helper.c | 39 +++++++----------------- tests/qtest/machine-none-test.c | 2 +- tests/functional/hppa/test_seabios.py | 4 +-- 9 files changed, 111 insertions(+), 63 deletions(-)
