mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 08:13:54 -06:00
target/hppa qemu v8.2 regression fixes
There were some regressions introduced with Qemu v8.2 on the hppa/hppa64 target, e.g.: - 32-bit HP-UX crashes on B160L (32-bit) machine - NetBSD boot failure due to power button in page zero - NetBSD FPU detection failure - OpenBSD 7.4 boot failure This patch series fixes those known regressions and additionally: - allows usage of the max. 3840MB of memory (instead of 3GB), - adds support for the qemu --nodefaults option (to debug other devices) This patch set will not fix those known (non-regression) bugs: - HP-UX and NetBSD still fail to boot on the new 64-bit C3700 machine - Linux kernel will still fail to boot on C3700 as long as kernel modules are used. Changes v2->v3: - Added comment about Figures H-10 and H-11 in the parisc2.0 spec in patch which calculate PDC address translation if PSW.W=0 - Introduce and use hppa_set_ior_and_isr() - Use drive_get_max_bus(IF_SCSI), nd_table[] and serial_hd() to check if default devices should be created - Added Tested-by and Reviewed-by tags Changes v1->v2: - fix OpenBSD boot with SeaBIOS v15 instead of v14 - commit message enhancements suggested by BALATON Zoltan - use uint64_t for ram_max in patch #1 -----BEGIN PGP SIGNATURE----- iHUEABYKAB0WIQS86RI+GtKfB8BJu973ErUQojoPXwUCZaImPQAKCRD3ErUQojoP X2C5AP9fbIkCni45JU6KC6OmFsCbAReRQCPwLO+MzR8/us2ywgD+PsGxSBk8ASxM nqtv3J9JC3i+XSnbtwLV+qChnO+IXwc= =FAMY -----END PGP SIGNATURE----- Merge tag 'hppa-fixes-8.2-pull-request' of https://github.com/hdeller/qemu-hppa into staging target/hppa qemu v8.2 regression fixes There were some regressions introduced with Qemu v8.2 on the hppa/hppa64 target, e.g.: - 32-bit HP-UX crashes on B160L (32-bit) machine - NetBSD boot failure due to power button in page zero - NetBSD FPU detection failure - OpenBSD 7.4 boot failure This patch series fixes those known regressions and additionally: - allows usage of the max. 3840MB of memory (instead of 3GB), - adds support for the qemu --nodefaults option (to debug other devices) This patch set will not fix those known (non-regression) bugs: - HP-UX and NetBSD still fail to boot on the new 64-bit C3700 machine - Linux kernel will still fail to boot on C3700 as long as kernel modules are used. Changes v2->v3: - Added comment about Figures H-10 and H-11 in the parisc2.0 spec in patch which calculate PDC address translation if PSW.W=0 - Introduce and use hppa_set_ior_and_isr() - Use drive_get_max_bus(IF_SCSI), nd_table[] and serial_hd() to check if default devices should be created - Added Tested-by and Reviewed-by tags Changes v1->v2: - fix OpenBSD boot with SeaBIOS v15 instead of v14 - commit message enhancements suggested by BALATON Zoltan - use uint64_t for ram_max in patch #1 # -----BEGIN PGP SIGNATURE----- # # iHUEABYKAB0WIQS86RI+GtKfB8BJu973ErUQojoPXwUCZaImPQAKCRD3ErUQojoP # X2C5AP9fbIkCni45JU6KC6OmFsCbAReRQCPwLO+MzR8/us2ywgD+PsGxSBk8ASxM # nqtv3J9JC3i+XSnbtwLV+qChnO+IXwc= # =FAMY # -----END PGP SIGNATURE----- # gpg: Signature made Sat 13 Jan 2024 05:57:17 GMT # gpg: using EDDSA key BCE9123E1AD29F07C049BBDEF712B510A23A0F5F # gpg: Good signature from "Helge Deller <deller@gmx.de>" [unknown] # gpg: aka "Helge Deller <deller@kernel.org>" [unknown] # gpg: WARNING: This key is not certified with a trusted signature! # gpg: There is no indication that the signature belongs to the owner. # Primary key fingerprint: 4544 8228 2CD9 10DB EF3D 25F8 3E5F 3D04 A7A2 4603 # Subkey fingerprint: BCE9 123E 1AD2 9F07 C049 BBDE F712 B510 A23A 0F5F * tag 'hppa-fixes-8.2-pull-request' of https://github.com/hdeller/qemu-hppa: target/hppa: Update SeaBIOS-hppa to version 15 target/hppa: Fix IOR and ISR on error in probe target/hppa: Fix IOR and ISR on unaligned access trap target/hppa: Export function hppa_set_ior_and_isr() target/hppa: Avoid accessing %gr0 when raising exception hw/hppa: Move software power button address back into PDC target/hppa: Fix PDC address translation on PA2.0 with PSW.W=0 hw/pci-host/astro: Add missing astro & elroy registers for NetBSD hw/hppa/machine: Disable default devices with --nodefaults option hw/hppa/machine: Allow up to 3840 MB total memory Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
d0f4aa7d50
8 changed files with 65 additions and 39 deletions
|
@ -166,6 +166,8 @@ static MemTxResult elroy_chip_write_with_attrs(void *opaque, hwaddr addr,
|
|||
trace_elroy_write(addr, size, val);
|
||||
|
||||
switch ((addr >> 3) << 3) {
|
||||
case 0x000: /* PCI_ID & PCI_COMMAND_STATUS_REG */
|
||||
break;
|
||||
case 0x080:
|
||||
put_val_in_int64(&s->arb_mask, addr, size, val);
|
||||
break;
|
||||
|
@ -175,6 +177,9 @@ static MemTxResult elroy_chip_write_with_attrs(void *opaque, hwaddr addr,
|
|||
case 0x200 ... 0x250 - 1: /* LMMIO, GMMIO, WLMMIO, WGMMIO, ... */
|
||||
put_val_in_arrary(s->mmio_base, 0x200, addr, size, val);
|
||||
break;
|
||||
case 0x300: /* ibase */
|
||||
case 0x308: /* imask */
|
||||
break;
|
||||
case 0x0680:
|
||||
put_val_in_int64(&s->error_config, addr, size, val);
|
||||
break;
|
||||
|
@ -538,6 +543,9 @@ static MemTxResult astro_chip_read_with_attrs(void *opaque, hwaddr addr,
|
|||
case 0x0030: /* HP-UX 10.20 and 11.11 reads it. No idea. */
|
||||
val = -1;
|
||||
break;
|
||||
case 0x0078: /* NetBSD reads 0x78 ? */
|
||||
val = -1;
|
||||
break;
|
||||
case 0x0300 ... 0x03d8: /* LMMIO_DIRECT0_BASE... */
|
||||
index = (addr - 0x300) / 8;
|
||||
val = s->ioc_ranges[index];
|
||||
|
@ -624,31 +632,43 @@ static MemTxResult astro_chip_write_with_attrs(void *opaque, hwaddr addr,
|
|||
case 0x10220:
|
||||
case 0x10230: /* HP-UX 11.11 reads it. No idea. */
|
||||
break;
|
||||
case 0x22108: /* IOC STATUS_CONTROL */
|
||||
put_val_in_int64(&s->ioc_status_ctrl, addr, size, val);
|
||||
break;
|
||||
case 0x20200 ... 0x20240 - 1: /* IOC Rope0_Control ... */
|
||||
put_val_in_arrary(s->ioc_rope_control, 0x20200, addr, size, val);
|
||||
break;
|
||||
case 0x20040: /* IOC Rope config */
|
||||
case 0x22040:
|
||||
put_val_in_int64(&s->ioc_rope_config, addr, size, val);
|
||||
break;
|
||||
case 0x20300:
|
||||
case 0x22300:
|
||||
put_val_in_int64(&s->tlb_ibase, addr, size, val);
|
||||
break;
|
||||
case 0x20308:
|
||||
case 0x22308:
|
||||
put_val_in_int64(&s->tlb_imask, addr, size, val);
|
||||
break;
|
||||
case 0x20310:
|
||||
case 0x22310:
|
||||
put_val_in_int64(&s->tlb_pcom, addr, size, val);
|
||||
/* TODO: flush iommu */
|
||||
break;
|
||||
case 0x20318:
|
||||
case 0x22318:
|
||||
put_val_in_int64(&s->tlb_tcnfg, addr, size, val);
|
||||
break;
|
||||
case 0x20320:
|
||||
case 0x22320:
|
||||
put_val_in_int64(&s->tlb_pdir_base, addr, size, val);
|
||||
break;
|
||||
case 0x22000: /* func_id */
|
||||
break;
|
||||
case 0x22008: /* func_class */
|
||||
break;
|
||||
case 0x22050: /* rope_debug */
|
||||
break;
|
||||
case 0x22108: /* IOC STATUS_CONTROL */
|
||||
put_val_in_int64(&s->ioc_status_ctrl, addr, size, val);
|
||||
break;
|
||||
/*
|
||||
* empty placeholders for non-existent elroys, e.g.
|
||||
* func_class, pci config & data
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue