mirror of https://github.com/xemu-project/xemu.git
Fix GT-64xxx PCI mapping, by Aurelien Jarno.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2471 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
451a42127f
commit
35f1de3192
16
hw/gt64xxx.c
16
hw/gt64xxx.c
|
@ -222,18 +222,24 @@ typedef PCIHostState GT64120PCIState;
|
||||||
typedef struct GT64120State {
|
typedef struct GT64120State {
|
||||||
GT64120PCIState *pci;
|
GT64120PCIState *pci;
|
||||||
uint32_t regs[GT_REGS];
|
uint32_t regs[GT_REGS];
|
||||||
|
target_phys_addr_t PCI0IO_start;
|
||||||
|
target_phys_addr_t PCI0IO_length;
|
||||||
} GT64120State;
|
} GT64120State;
|
||||||
|
|
||||||
static void gt64120_pci_mapping(GT64120State *s)
|
static void gt64120_pci_mapping(GT64120State *s)
|
||||||
{
|
{
|
||||||
target_phys_addr_t start, length;
|
|
||||||
|
|
||||||
/* Update IO mapping */
|
/* Update IO mapping */
|
||||||
if ((s->regs[GT_PCI0IOLD] & 0x7f) <= s->regs[GT_PCI0IOHD])
|
if ((s->regs[GT_PCI0IOLD] & 0x7f) <= s->regs[GT_PCI0IOHD])
|
||||||
{
|
{
|
||||||
start = s->regs[GT_PCI0IOLD] << 21;
|
/* Unmap old IO address */
|
||||||
length = ((s->regs[GT_PCI0IOHD] + 1) - (s->regs[GT_PCI0IOLD] & 0x7f)) << 21;
|
if (s->PCI0IO_length)
|
||||||
isa_mmio_init(start, length);
|
{
|
||||||
|
cpu_register_physical_memory(s->PCI0IO_start, s->PCI0IO_length, IO_MEM_UNASSIGNED);
|
||||||
|
}
|
||||||
|
/* Map new IO address */
|
||||||
|
s->PCI0IO_start = s->regs[GT_PCI0IOLD] << 21;
|
||||||
|
s->PCI0IO_length = ((s->regs[GT_PCI0IOHD] + 1) - (s->regs[GT_PCI0IOLD] & 0x7f)) << 21;
|
||||||
|
isa_mmio_init(s->PCI0IO_start, s->PCI0IO_length);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue