hw/pci-host/astro: Fix initial addresses in IOC
F-Extend the LMMIO and IOS distributed addresses. Use the 44-bit address for the IOS distributed address. Signed-off-by: Helge Deller <deller@gmx.de>
Helge Deller committed
Mar 29, 2026 at 00:15 UTC
64f676beead4fb57fc2f5e30f259f8c50dc3248f
2 files changed
+5
-5
hw/pci-host/astro.c
+3
-3
@@ -804,13 +804,13 @@ static void astro_reset(DeviceState *dev)
804
* The LBA BASE/MASK registers control IO -> System routing (in Elroy)
805
*/
806
memset(&s->ioc_ranges, 0, sizeof(s->ioc_ranges));
807
- s->ioc_ranges[(0x360 - 0x300) / 8] = LMMIO_DIST_BASE_ADDR | 0x01; /* LMMIO_DIST_BASE (SBA) */
807
+ s->ioc_ranges[(0x360 - 0x300) / 8] = F_EXTEND(LMMIO_DIST_BASE_ADDR) | 0x01;
808
s->ioc_ranges[(0x368 - 0x300) / 8] = 0xfc000000; /* LMMIO_DIST_MASK */
809
s->ioc_ranges[(0x370 - 0x300) / 8] = 0; /* LMMIO_DIST_ROUTE */
810
- s->ioc_ranges[(0x390 - 0x300) / 8] = IOS_DIST_BASE_ADDR | 0x01; /* IOS_DIST_BASE */
810
+ s->ioc_ranges[(0x390 - 0x300) / 8] = F_EXTEND(IOS_DIST_BASE_ADDR) | 0x01;
811
s->ioc_ranges[(0x398 - 0x300) / 8] = 0xffffff0000; /* IOS_DIST_MASK */
812
s->ioc_ranges[(0x3a0 - 0x300) / 8] = 0x3400000000000000ULL; /* IOS_DIST_ROUTE */
813
- s->ioc_ranges[(0x3c0 - 0x300) / 8] = 0xfffee00000; /* IOS_DIRECT_BASE */
813
+ s->ioc_ranges[(0x3c0 - 0x300) / 8] = IOS_DIST_BASE_ADDR; /* IOS_DIRECT_BASE */
814
s->ioc_ranges[(0x3c8 - 0x300) / 8] = 0xffffff0000; /* IOS_DIRECT_MASK */
815
s->ioc_ranges[(0x3d0 - 0x300) / 8] = 0x0; /* IOS_DIRECT_ROUTE */
816
include/hw/pci-host/astro.h
+2
-2
@@ -26,8 +26,8 @@ OBJECT_DECLARE_SIMPLE_TYPE(ElroyState, ELROY_PCI_HOST_BRIDGE)
26
27
#define LMMIO_DIRECT_RANGES 4
28
29
-#define IOS_DIST_BASE_ADDR 0xfffee00000ULL
30
-#define IOS_DIST_BASE_SIZE 0x10000ULL
29
+#define IOS_DIST_BASE_ADDR 0xffffee00000ULL
30
+#define IOS_DIST_BASE_SIZE 0x10000ULL
31
32
#define HF_ENABLE 0x40 /* enable HF mode (default is -1 mode) */
33