From: deller@kernel.org
To: qemu-devel@nongnu.org
Cc: Helge Deller <deller@gmx.de>,
Richard Henderson <richard.henderson@linaro.org>,
Bruno Haible <bruno@clisp.org>
Subject: [PULL 04/10] target/hppa: Fix PDC address translation on PA2.0 with PSW.W=0
Date: Sat, 13 Jan 2024 06:57:22 +0100 [thread overview]
Message-ID: <20240113055729.4480-5-deller@kernel.org> (raw)
In-Reply-To: <20240113055729.4480-1-deller@kernel.org>
From: Helge Deller <deller@gmx.de>
Fix the address translation for PDC space on PA2.0 if PSW.W=0.
Basically, for any address in the 32-bit PDC range from 0xf0000000 to
0xf1000000 keep the lower 32-bits and just set the upper 32-bits to
0xfffffff0.
This mapping fixes the emulated power button in PDC space for 32- and
64-bit machines and is how the physical C3700 machine seems to map
PDC.
Figures H-10 and H-11 in the parisc2.0 spec [1] show that the 32-bit
region will be mapped somewhere into a higher and bigger 64-bit PDC
space. The start and end of this 64-bit space is defined by the
physical address bits. But the figures don't specifiy where exactly the
mapping will start inside that region. Tests on a real HP C3700
regarding the address of the power button indicate, that the lower
32-bits will stay the same though.
[1] https://parisc.wiki.kernel.org/images-parisc/7/73/Parisc2.0.pdf
Signed-off-by: Helge Deller <deller@gmx.de>
Tested-by: Bruno Haible <bruno@clisp.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
---
roms/seabios-hppa | 2 +-
target/hppa/mem_helper.c | 10 ++++++++--
2 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/roms/seabios-hppa b/roms/seabios-hppa
index 4c6ecda618..e4eac85880 160000
--- a/roms/seabios-hppa
+++ b/roms/seabios-hppa
@@ -1 +1 @@
-Subproject commit 4c6ecda618f2066707f50c53f31419244fd7f77a
+Subproject commit e4eac85880e8677f96d8b9e94de9f2eec9c0751f
diff --git a/target/hppa/mem_helper.c b/target/hppa/mem_helper.c
index 08abd1a9f9..4c28c58ee9 100644
--- a/target/hppa/mem_helper.c
+++ b/target/hppa/mem_helper.c
@@ -55,8 +55,14 @@ hwaddr hppa_abs_to_phys_pa2_w0(vaddr addr)
/* I/O address space */
addr = (int32_t)addr;
} else {
- /* PDC address space */
- addr &= MAKE_64BIT_MASK(0, 24);
+ /*
+ * PDC address space:
+ * Figures H-10 and H-11 of the parisc2.0 spec do not specify
+ * where to map into the 64-bit PDC address space.
+ * We map with an offset which equals the 32-bit address, which
+ * is what can be seen on physical machines too.
+ */
+ addr = (uint32_t)addr;
addr |= -1ull << (TARGET_PHYS_ADDR_SPACE_BITS - 4);
}
return addr;
--
2.43.0
next prev parent reply other threads:[~2024-01-13 5:59 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-13 5:57 [PULL 00/10] Hppa fixes 8.2 patches deller
2024-01-13 5:57 ` [PULL 01/10] hw/hppa/machine: Allow up to 3840 MB total memory deller
2024-01-13 5:57 ` [PULL 02/10] hw/hppa/machine: Disable default devices with --nodefaults option deller
2024-02-02 4:22 ` Guenter Roeck
2024-02-02 9:54 ` Helge Deller
2024-02-02 18:04 ` Guenter Roeck
2024-02-02 19:26 ` Helge Deller
2024-02-04 19:26 ` Guenter Roeck
2024-01-13 5:57 ` [PULL 03/10] hw/pci-host/astro: Add missing astro & elroy registers for NetBSD deller
2024-01-13 5:57 ` deller [this message]
2024-01-13 5:57 ` [PULL 05/10] hw/hppa: Move software power button address back into PDC deller
2024-01-13 5:57 ` [PULL 06/10] target/hppa: Avoid accessing %gr0 when raising exception deller
2024-01-13 5:57 ` [PULL 07/10] target/hppa: Export function hppa_set_ior_and_isr() deller
2024-01-13 5:57 ` [PULL 08/10] target/hppa: Fix IOR and ISR on unaligned access trap deller
2024-01-13 5:57 ` [PULL 09/10] target/hppa: Fix IOR and ISR on error in probe deller
2024-01-13 5:57 ` [PULL 10/10] target/hppa: Update SeaBIOS-hppa to version 15 deller
2024-01-16 16:33 ` [PULL 00/10] Hppa fixes 8.2 patches Peter Maydell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240113055729.4480-5-deller@kernel.org \
--to=deller@kernel.org \
--cc=bruno@clisp.org \
--cc=deller@gmx.de \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.