Commit f3b18f35 authored by Mark Cave-Ayland's avatar Mark Cave-Ayland
Browse files

sun4u: switch m48t59 NVRAM to MMIO access



Real sun4u systems memory-map the NVRAM on the (ISA) ebus, so switch over to
MMIO from ioport access whilst setting the base year to 1968 as used by Sun
systems. This allows all SPARC64 OSs included in my tests to correctly detect
the NVRAM IC and read the hardware clock correctly upon boot.

Note that this also requires a corresponding OpenBIOS update to r1330 in order
to switch the SPARC64 NVRAM accessors over from ioport to MMIO.

Signed-off-by: default avatarMark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
parent f2416d3a
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -612,7 +612,7 @@ pci_ebus_init1(PCIDevice *pci_dev)
                             0, 0x1000000);
    pci_register_bar(pci_dev, 0, PCI_BASE_ADDRESS_SPACE_MEMORY, &s->bar0);
    memory_region_init_alias(&s->bar1, OBJECT(s), "bar1", get_system_io(),
                             0, 0x1000);
                             0, 0x4000);
    pci_register_bar(pci_dev, 1, PCI_BASE_ADDRESS_SPACE_IO, &s->bar1);
    return 0;
}
@@ -825,6 +825,7 @@ static void sun4uv_init(MemoryRegion *address_space_mem,
    uint64_t initrd_addr, initrd_size, kernel_addr, kernel_size, kernel_entry;
    PCIBus *pci_bus, *pci_bus2, *pci_bus3;
    ISABus *isa_bus;
    SysBusDevice *s;
    qemu_irq *ivec_irqs, *pbm_irqs;
    DriveInfo *hd[MAX_IDE_BUS * MAX_IDE_DEVS];
    DriveInfo *fd[MAX_FD];
@@ -868,7 +869,12 @@ static void sun4uv_init(MemoryRegion *address_space_mem,
        fd[i] = drive_get(IF_FLOPPY, 0, i);
    }
    fdctrl_init_isa(isa_bus, fd);
    nvram = m48t59_init_isa(isa_bus, 0x0074, NVRAM_SIZE, 2000, 59);

    /* Map NVRAM into I/O (ebus) space */
    nvram = m48t59_init(NULL, 0, 0, NVRAM_SIZE, 1968, 59);
    s = SYS_BUS_DEVICE(nvram);
    memory_region_add_subregion(get_system_io(), 0x2000,
                                sysbus_mmio_get_region(s, 0));
 
    initrd_size = 0;
    initrd_addr = 0;
(729 KiB)

File changed.

No diff preview for this file type.

(373 KiB)

File changed.

No diff preview for this file type.

(1.54 MiB)

File changed.

No diff preview for this file type.

openbios @ b8dea397

Original line number Diff line number Diff line
Subproject commit 038aa78d3c331731733378a73e778ee620a5b9da
Subproject commit b8dea39718916f4d7d391cd1664314d52a45b872