mirror of https://github.com/xemu-project/xemu.git
hw/pci-host/astro: Map Astro chip into 64-bit I/O memory region
Map Astro into high F-region and add alias for 32-bit OS in low region. Signed-off-by: Helge Deller <deller@gmx.de>
This commit is contained in:
parent
5dd5c00366
commit
fd842b2f4c
|
@ -19,6 +19,8 @@
|
|||
|
||||
#define TYPE_ASTRO_IOMMU_MEMORY_REGION "astro-iommu-memory-region"
|
||||
|
||||
#define F_EXTEND(addr) ((addr) | MAKE_64BIT_MASK(32, 32))
|
||||
|
||||
#include "qemu/osdep.h"
|
||||
#include "qemu/module.h"
|
||||
#include "qemu/units.h"
|
||||
|
@ -821,15 +823,16 @@ static void astro_realize(DeviceState *obj, Error **errp)
|
|||
|
||||
/* map elroys mmio */
|
||||
map_size = LMMIO_DIST_BASE_SIZE / ROPES_PER_IOC;
|
||||
map_addr = (uint32_t) (LMMIO_DIST_BASE_ADDR + rope * map_size);
|
||||
map_addr = F_EXTEND(LMMIO_DIST_BASE_ADDR + rope * map_size);
|
||||
memory_region_init_alias(&elroy->pci_mmio_alias, OBJECT(elroy),
|
||||
"pci-mmio-alias",
|
||||
&elroy->pci_mmio, map_addr, map_size);
|
||||
&elroy->pci_mmio, (uint32_t) map_addr, map_size);
|
||||
memory_region_add_subregion(get_system_memory(), map_addr,
|
||||
&elroy->pci_mmio_alias);
|
||||
|
||||
/* map elroys io */
|
||||
map_size = IOS_DIST_BASE_SIZE / ROPES_PER_IOC;
|
||||
map_addr = (uint32_t) (IOS_DIST_BASE_ADDR + rope * map_size);
|
||||
map_addr = F_EXTEND(IOS_DIST_BASE_ADDR + rope * map_size);
|
||||
memory_region_add_subregion(get_system_memory(), map_addr,
|
||||
&elroy->pci_io);
|
||||
|
||||
|
|
Loading…
Reference in New Issue