jazz: remove usage of isa_mem_base
Do assorted changes in memory-mapped rtc interface. Also fix size of ISA I/O memory region, which should be 0x10000 bytes. Signed-off-by: Hervé Poussineau <hpoussin@reactos.org> Signed-off-by: Leon Alrae <leon.alrae@imgtec.com>
This commit is contained in:
parent
f33772c851
commit
5c63bcf750
|
@ -60,13 +60,16 @@ static void main_cpu_reset(void *opaque)
|
||||||
|
|
||||||
static uint64_t rtc_read(void *opaque, hwaddr addr, unsigned size)
|
static uint64_t rtc_read(void *opaque, hwaddr addr, unsigned size)
|
||||||
{
|
{
|
||||||
return cpu_inw(0x71);
|
uint8_t val;
|
||||||
|
address_space_read(&address_space_memory, 0x90000071, &val, 1);
|
||||||
|
return val;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rtc_write(void *opaque, hwaddr addr,
|
static void rtc_write(void *opaque, hwaddr addr,
|
||||||
uint64_t val, unsigned size)
|
uint64_t val, unsigned size)
|
||||||
{
|
{
|
||||||
cpu_outw(0x71, val & 0xff);
|
uint8_t buf = val & 0xff;
|
||||||
|
address_space_write(&address_space_memory, 0x90000071, &buf, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const MemoryRegionOps rtc_ops = {
|
static const MemoryRegionOps rtc_ops = {
|
||||||
|
@ -124,7 +127,6 @@ static void mips_jazz_init(MachineState *machine,
|
||||||
enum jazz_model_e jazz_model)
|
enum jazz_model_e jazz_model)
|
||||||
{
|
{
|
||||||
MemoryRegion *address_space = get_system_memory();
|
MemoryRegion *address_space = get_system_memory();
|
||||||
MemoryRegion *address_space_io = get_system_io();
|
|
||||||
const char *cpu_model = machine->cpu_model;
|
const char *cpu_model = machine->cpu_model;
|
||||||
char *filename;
|
char *filename;
|
||||||
int bios_size, n;
|
int bios_size, n;
|
||||||
|
@ -134,7 +136,8 @@ static void mips_jazz_init(MachineState *machine,
|
||||||
qemu_irq *rc4030, *i8259;
|
qemu_irq *rc4030, *i8259;
|
||||||
rc4030_dma *dmas;
|
rc4030_dma *dmas;
|
||||||
void* rc4030_opaque;
|
void* rc4030_opaque;
|
||||||
MemoryRegion *isa = g_new(MemoryRegion, 1);
|
MemoryRegion *isa_mem = g_new(MemoryRegion, 1);
|
||||||
|
MemoryRegion *isa_io = g_new(MemoryRegion, 1);
|
||||||
MemoryRegion *rtc = g_new(MemoryRegion, 1);
|
MemoryRegion *rtc = g_new(MemoryRegion, 1);
|
||||||
MemoryRegion *i8042 = g_new(MemoryRegion, 1);
|
MemoryRegion *i8042 = g_new(MemoryRegion, 1);
|
||||||
MemoryRegion *dma_dummy = g_new(MemoryRegion, 1);
|
MemoryRegion *dma_dummy = g_new(MemoryRegion, 1);
|
||||||
|
@ -219,8 +222,14 @@ static void mips_jazz_init(MachineState *machine,
|
||||||
memory_region_init_io(dma_dummy, NULL, &dma_dummy_ops, NULL, "dummy_dma", 0x1000);
|
memory_region_init_io(dma_dummy, NULL, &dma_dummy_ops, NULL, "dummy_dma", 0x1000);
|
||||||
memory_region_add_subregion(address_space, 0x8000d000, dma_dummy);
|
memory_region_add_subregion(address_space, 0x8000d000, dma_dummy);
|
||||||
|
|
||||||
|
/* ISA bus: IO space at 0x90000000, mem space at 0x91000000 */
|
||||||
|
memory_region_init(isa_io, NULL, "isa-io", 0x00010000);
|
||||||
|
memory_region_init(isa_mem, NULL, "isa-mem", 0x01000000);
|
||||||
|
memory_region_add_subregion(address_space, 0x90000000, isa_io);
|
||||||
|
memory_region_add_subregion(address_space, 0x91000000, isa_mem);
|
||||||
|
isa_bus = isa_bus_new(NULL, isa_mem, isa_io);
|
||||||
|
|
||||||
/* ISA devices */
|
/* ISA devices */
|
||||||
isa_bus = isa_bus_new(NULL, get_system_memory(), address_space_io);
|
|
||||||
i8259 = i8259_init(isa_bus, env->irq[4]);
|
i8259 = i8259_init(isa_bus, env->irq[4]);
|
||||||
isa_bus_irqs(isa_bus, i8259);
|
isa_bus_irqs(isa_bus, i8259);
|
||||||
cpu_exit_irq = qemu_allocate_irqs(cpu_request_exit, NULL, 1);
|
cpu_exit_irq = qemu_allocate_irqs(cpu_request_exit, NULL, 1);
|
||||||
|
@ -228,12 +237,6 @@ static void mips_jazz_init(MachineState *machine,
|
||||||
pit = pit_init(isa_bus, 0x40, 0, NULL);
|
pit = pit_init(isa_bus, 0x40, 0, NULL);
|
||||||
pcspk_init(isa_bus, pit);
|
pcspk_init(isa_bus, pit);
|
||||||
|
|
||||||
/* ISA IO space at 0x90000000 */
|
|
||||||
memory_region_init_alias(isa, NULL, "isa_mmio",
|
|
||||||
get_system_io(), 0, 0x01000000);
|
|
||||||
memory_region_add_subregion(address_space, 0x90000000, isa);
|
|
||||||
isa_mem_base = 0x11000000;
|
|
||||||
|
|
||||||
/* Video card */
|
/* Video card */
|
||||||
switch (jazz_model) {
|
switch (jazz_model) {
|
||||||
case JAZZ_MAGNUM:
|
case JAZZ_MAGNUM:
|
||||||
|
|
Loading…
Reference in New Issue