From fd3ece2533730eb4ab2dd787a1c1418b38b40d6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20F=C3=A4rber?= Date: Wed, 12 Mar 2014 17:16:56 +0100 Subject: [PATCH 1/2] Add OpenHack'Ware submodule MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This replaces the ohw.diff file on top of v0.4.1. Signed-off-by: Andreas Färber --- .gitmodules | 3 + pc-bios/README | 2 +- pc-bios/ohw.diff | 1843 --------------------------------------------- roms/openhackware | 1 + 4 files changed, 5 insertions(+), 1844 deletions(-) delete mode 100644 pc-bios/ohw.diff create mode 160000 roms/openhackware diff --git a/.gitmodules b/.gitmodules index 45e51e79be..444c24a993 100644 --- a/.gitmodules +++ b/.gitmodules @@ -13,6 +13,9 @@ [submodule "roms/openbios"] path = roms/openbios url = git://git.qemu-project.org/openbios.git +[submodule "roms/openhackware"] + path = roms/openhackware + url = git://git.qemu-project.org/openhackware.git [submodule "roms/qemu-palcode"] path = roms/qemu-palcode url = git://github.com/rth7680/qemu-palcode.git diff --git a/pc-bios/README b/pc-bios/README index 2bb6357ea6..42f7f565b0 100644 --- a/pc-bios/README +++ b/pc-bios/README @@ -5,7 +5,7 @@ project (http://www.nongnu.org/vgabios/). - The PowerPC Open Hack'Ware Open Firmware Compatible BIOS is - available at http://perso.magic.fr/l_indien/OpenHackWare/index.htm. + available at http://repo.or.cz/w/openhackware.git. - OpenBIOS (http://www.openbios.org/) is a free (GPL v2) portable firmware implementation. The goal is to implement a 100% IEEE diff --git a/pc-bios/ohw.diff b/pc-bios/ohw.diff deleted file mode 100644 index c6b6623f2f..0000000000 --- a/pc-bios/ohw.diff +++ /dev/null @@ -1,1843 +0,0 @@ -diff -wruN --exclude '*~' --exclude '*.o' --exclude '*.bin' --exclude '*.out' --exclude mkdiff OpenHackWare-release-0.4.org/src/bios.h OpenHackWare-release-0.4/src/bios.h ---- OpenHackWare-release-0.4.org/src/bios.h 2005-04-06 23:20:22.000000000 +0200 -+++ OpenHackWare-release-0.4/src/bios.h 2005-07-07 01:10:20.000000000 +0200 -@@ -64,6 +64,7 @@ - ARCH_CHRP, - ARCH_MAC99, - ARCH_POP, -+ ARCH_HEATHROW, - }; - - /* Hardware definition(s) */ -@@ -174,6 +175,7 @@ - int bd_ioctl (bloc_device_t *bd, int func, void *args); - uint32_t bd_seclen (bloc_device_t *bd); - void bd_close (bloc_device_t *bd); -+void bd_reset_all(void); - uint32_t bd_seclen (bloc_device_t *bd); - uint32_t bd_maxbloc (bloc_device_t *bd); - void bd_sect2CHS (bloc_device_t *bd, uint32_t secnum, -@@ -183,12 +185,12 @@ - part_t *bd_probe (int boot_device); - bloc_device_t *bd_get (int device); - void bd_put (bloc_device_t *bd); --void bd_set_boot_part (bloc_device_t *bd, part_t *partition); -+void bd_set_boot_part (bloc_device_t *bd, part_t *partition, int partnum); - part_t **_bd_parts (bloc_device_t *bd); - - void ide_pci_pc_register (uint32_t io_base0, uint32_t io_base1, - uint32_t io_base2, uint32_t io_base3, -- void *OF_private); -+ void *OF_private0, void *OF_private1); - void ide_pci_pmac_register (uint32_t io_base0, uint32_t io_base1, - void *OF_private); - -@@ -399,17 +401,23 @@ - uint16_t min_grant, uint16_t max_latency); - void OF_finalize_pci_host (void *dev, int first_bus, int nb_busses); - void OF_finalize_pci_device (void *dev, uint8_t bus, uint8_t devfn, -- uint32_t *regions, uint32_t *sizes); -+ uint32_t *regions, uint32_t *sizes, -+ int irq_line); - void OF_finalize_pci_macio (void *dev, uint32_t base_address, uint32_t size, - void *private_data); -+void OF_finalize_pci_ide (void *dev, -+ uint32_t io_base0, uint32_t io_base1, -+ uint32_t io_base2, uint32_t io_base3); - int OF_register_bus (const unsigned char *name, uint32_t address, - const unsigned char *type); - int OF_register_serial (const unsigned char *bus, const unsigned char *name, - uint32_t io_base, int irq); - int OF_register_stdio (const unsigned char *dev_in, - const unsigned char *dev_out); --void OF_vga_register (const unsigned char *name, uint32_t address, -- int width, int height, int depth); -+void OF_vga_register (const unsigned char *name, unused uint32_t address, -+ int width, int height, int depth, -+ unsigned long vga_bios_addr, -+ unsigned long vga_bios_size); - void *OF_blockdev_register (void *parent, void *private, - const unsigned char *type, - const unsigned char *name, int devnum, -diff -wruN --exclude '*~' --exclude '*.o' --exclude '*.bin' --exclude '*.out' --exclude mkdiff OpenHackWare-release-0.4.org/src/bloc.c OpenHackWare-release-0.4/src/bloc.c ---- OpenHackWare-release-0.4.org/src/bloc.c 2005-04-06 23:21:00.000000000 +0200 -+++ OpenHackWare-release-0.4/src/bloc.c 2005-07-08 00:28:26.000000000 +0200 -@@ -55,6 +55,7 @@ - /* Partitions */ - part_t *parts, *bparts; - part_t *boot_part; -+ int bpartnum; - /* Chain */ - bloc_device_t *next; - }; -@@ -66,6 +67,7 @@ - - static int ide_initialize (bloc_device_t *bd, int device); - static int ide_read_sector (bloc_device_t *bd, void *buffer, int secnum); -+static int ide_reset (bloc_device_t *bd); - - static int mem_initialize (bloc_device_t *bd, int device); - static int mem_read_sector (bloc_device_t *bd, void *buffer, int secnum); -@@ -212,6 +214,17 @@ - { - } - -+void bd_reset_all(void) -+{ -+ bloc_device_t *bd; -+ for (bd = bd_list; bd != NULL; bd = bd->next) { -+ if (bd->init == &ide_initialize) { -+ /* reset IDE drive because Darwin wants all IDE devices to be reset */ -+ ide_reset(bd); -+ } -+ } -+} -+ - uint32_t bd_seclen (bloc_device_t *bd) - { - return bd->seclen; -@@ -223,10 +236,12 @@ - } - - /* XXX: to be suppressed */ --void bd_set_boot_part (bloc_device_t *bd, part_t *partition) -+void bd_set_boot_part (bloc_device_t *bd, part_t *partition, int partnum) - { -+ dprintf("%s: part %p (%p) %d\n", __func__, partition, bd->boot_part, partnum); - if (bd->boot_part == NULL) { - bd->boot_part = partition; -+ bd->bpartnum = partnum; - } - } - -@@ -240,6 +255,13 @@ - return &bd->bparts; - } - -+void bd_set_boot_device (bloc_device_t *bd) -+{ -+#if defined (USE_OPENFIRMWARE) -+ OF_blockdev_set_boot_device(bd->OF_private, bd->bpartnum, "\\\\ofwboot"); -+#endif -+} -+ - part_t *bd_probe (int boot_device) - { - char devices[] = { /*'a', 'b',*/ 'c', 'd', 'e', 'f', 'm', '\0', }; -@@ -272,9 +294,7 @@ - tmp = part_probe(bd, force_raw); - if (boot_device == bd->device) { - boot_part = tmp; --#if defined (USE_OPENFIRMWARE) -- OF_blockdev_set_boot_device(bd->OF_private, 2, "\\\\ofwboot"); --#endif -+ bd_set_boot_device(bd); - } - } - -@@ -717,34 +737,29 @@ - /* IDE PCI access for pc */ - static uint8_t ide_pci_port_read (bloc_device_t *bd, int port) - { -- eieio(); -- -- return *(uint8_t *)(bd->io_base + port); -+ uint8_t value; -+ value = inb(bd->io_base + port); -+ return value; - } - - static void ide_pci_port_write (bloc_device_t *bd, int port, uint8_t value) - { -- *(uint8_t *)(bd->io_base + port) = value; -- eieio(); -+ outb(bd->io_base + port, value); - } - - static uint32_t ide_pci_data_readl (bloc_device_t *bd) - { -- eieio(); -- -- return *((uint32_t *)bd->io_base); -+ return inl(bd->io_base); - } - - static void ide_pci_data_writel (bloc_device_t *bd, uint32_t val) - { -- *(uint32_t *)(bd->io_base) = val; -- eieio(); -+ outl(bd->io_base, val); - } - - static void ide_pci_control_write (bloc_device_t *bd, uint32_t val) - { -- *((uint8_t *)bd->tmp) = val; -- eieio(); -+ outb(bd->tmp + 2, val); - } - - static ide_ops_t ide_pci_pc_ops = { -@@ -761,7 +776,7 @@ - - void ide_pci_pc_register (uint32_t io_base0, uint32_t io_base1, - uint32_t io_base2, uint32_t io_base3, -- unused void *OF_private) -+ void *OF_private0, void *OF_private1) - { - if (ide_pci_ops == NULL) { - ide_pci_ops = malloc(sizeof(ide_ops_t)); -@@ -770,19 +785,19 @@ - memcpy(ide_pci_ops, &ide_pci_pc_ops, sizeof(ide_ops_t)); - } - if ((io_base0 != 0 || io_base1 != 0) && -- ide_pci_ops->base[0] == 0 && ide_pci_ops->base[1] == 0) { -+ ide_pci_ops->base[0] == 0 && ide_pci_ops->base[2] == 0) { - ide_pci_ops->base[0] = io_base0; -- ide_pci_ops->base[1] = io_base1; -+ ide_pci_ops->base[2] = io_base1; - #ifdef USE_OPENFIRMWARE -- ide_pci_ops->OF_private[0] = OF_private; -+ ide_pci_ops->OF_private[0] = OF_private0; - #endif - } - if ((io_base2 != 0 || io_base3 != 0) && -- ide_pci_ops->base[2] == 0 && ide_pci_ops->base[3] == 0) { -- ide_pci_ops->base[2] = io_base2; -+ ide_pci_ops->base[1] == 0 && ide_pci_ops->base[3] == 0) { -+ ide_pci_ops->base[1] = io_base2; - ide_pci_ops->base[3] = io_base3; - #ifdef USE_OPENFIRMWARE -- ide_pci_ops->OF_private[1] = OF_private; -+ ide_pci_ops->OF_private[1] = OF_private1; - #endif - } - } -@@ -935,6 +950,8 @@ - } - - static void atapi_pad_req (void *buffer, int len); -+static void atapi_make_req (bloc_device_t *bd, uint32_t *buffer, -+ int maxlen); - static int atapi_read_sector (bloc_device_t *bd, void *buffer, int secnum); - - static int ide_initialize (bloc_device_t *bd, int device) -@@ -1035,9 +1052,7 @@ - DPRINTF("INQUIRY\n"); - len = spc_inquiry_req(&atapi_buffer, 36); - atapi_pad_req(&atapi_buffer, len); -- ide_port_write(bd, 0x07, 0xA0); -- for (i = 0; i < 3; i++) -- ide_data_writel(bd, ldswap32(&atapi_buffer[i])); -+ atapi_make_req(bd, atapi_buffer, 36); - status = ide_port_read(bd, 0x07); - if (status != 0x48) { - ERROR("ATAPI INQUIRY : status %0x != 0x48\n", status); -@@ -1053,9 +1068,7 @@ - DPRINTF("READ_CAPACITY\n"); - len = mmc_read_capacity_req(&atapi_buffer); - atapi_pad_req(&atapi_buffer, len); -- ide_port_write(bd, 0x07, 0xA0); -- for (i = 0; i < 3; i++) -- ide_data_writel(bd, ldswap32(&atapi_buffer[i])); -+ atapi_make_req(bd, atapi_buffer, 8); - status = ide_port_read(bd, 0x07); - if (status != 0x48) { - ERROR("ATAPI READ_CAPACITY : status %0x != 0x48\n", status); -@@ -1105,6 +1118,22 @@ - memset(p + len, 0, 12 - len); - } - -+static void atapi_make_req (bloc_device_t *bd, uint32_t *buffer, -+ int maxlen) -+{ -+ int i; -+ /* select drive */ -+ if (bd->drv == 0) -+ ide_port_write(bd, 0x06, 0x40); -+ else -+ ide_port_write(bd, 0x06, 0x50); -+ ide_port_write(bd, 0x04, maxlen & 0xff); -+ ide_port_write(bd, 0x05, (maxlen >> 8) & 0xff); -+ ide_port_write(bd, 0x07, 0xA0); -+ for (i = 0; i < 3; i++) -+ ide_data_writel(bd, ldswap32(&buffer[i])); -+} -+ - static int atapi_read_sector (bloc_device_t *bd, void *buffer, int secnum) - { - uint32_t atapi_buffer[4]; -@@ -1112,16 +1141,9 @@ - uint32_t status, value; - int i, len; - -- /* select drive */ -- if (bd->drv == 0) -- ide_port_write(bd, 0x06, 0x40); -- else -- ide_port_write(bd, 0x06, 0x50); - len = mmc_read12_req(atapi_buffer, secnum, 1); - atapi_pad_req(&atapi_buffer, len); -- ide_port_write(bd, 0x07, 0xA0); -- for (i = 0; i < 3; i++) -- ide_data_writel(bd, ldswap32(&atapi_buffer[i])); -+ atapi_make_req(bd, atapi_buffer, bd->seclen); - status = ide_port_read(bd, 0x07); - if (status != 0x48) { - ERROR("ATAPI READ12 : status %0x != 0x48\n", status); -diff -wruN --exclude '*~' --exclude '*.o' --exclude '*.bin' --exclude '*.out' --exclude mkdiff OpenHackWare-release-0.4.org/src/libpart/apple.c OpenHackWare-release-0.4/src/libpart/apple.c ---- OpenHackWare-release-0.4.org/src/libpart/apple.c 2005-03-31 09:23:33.000000000 +0200 -+++ OpenHackWare-release-0.4/src/libpart/apple.c 2005-07-03 16:17:41.000000000 +0200 -@@ -199,14 +199,18 @@ - if (len == 0) { - /* Place holder. Skip it */ - DPRINTF("%s placeholder part\t%d\n", __func__, i); -+ part->flags = PART_TYPE_APPLE | PART_FLAG_DUMMY; -+ part_register(bd, part, name, i); - } else if (strncmp("Apple_Void", type, 32) == 0) { - /* Void partition. Skip it */ - DPRINTF("%s Void part\t%d [%s]\n", __func__, i, type); -+ part->flags = PART_TYPE_APPLE | PART_FLAG_DUMMY; -+ part_register(bd, part, name, i); - } else if (strncmp("Apple_Free", type, 32) == 0) { - /* Free space. Skip it */ - DPRINTF("%s Free part (%d)\n", __func__, i); - part->flags = PART_TYPE_APPLE | PART_FLAG_DUMMY; -- part_register(bd, part, name); -+ part_register(bd, part, name, i); - } else if (strncmp("Apple_partition_map", type, 32) == 0 || - strncmp("Apple_Partition_Map", type, 32) == 0 - #if 0 // Is this really used or is it just a mistake ? -@@ -226,7 +230,7 @@ - */ - } - part->flags = PART_TYPE_APPLE | PART_FLAG_DUMMY; -- part_register(bd, part, name); -+ part_register(bd, part, name, i); - } else if (strncmp("Apple_Driver", type, 32) == 0 || - strncmp("Apple_Driver43", type, 32) == 0 || - strncmp("Apple_Driver43_CD", type, 32) == 0 || -@@ -236,8 +240,12 @@ - strncmp("Apple_Driver_IOKit", type, 32) == 0) { - /* Drivers. don't care for now */ - DPRINTF("%s Drivers part\t%d [%s]\n", __func__, i, type); -+ part->flags = PART_TYPE_APPLE | PART_FLAG_DRIVER; -+ part_register(bd, part, name, i); - } else if (strncmp("Apple_Patches", type, 32) == 0) { - /* Patches: don't care for now */ -+ part->flags = PART_TYPE_APPLE | PART_FLAG_PATCH; -+ part_register(bd, part, name, i); - DPRINTF("%s Patches part\t%d [%s]\n", __func__, i, type); - } else if (strncmp("Apple_HFS", type, 32) == 0 || - strncmp("Apple_MFS", type, 32) == 0 || -@@ -256,9 +264,8 @@ - count = partmap->bloc_cnt * HFS_BLOCSIZE; - if (partmap->boot_size == 0 || partmap->boot_load == 0) { - printf("Not a bootable partition %d %d (%p %p)\n", -- partmap->boot_size, partmap->boot_load,boot_part, part); -- if (boot_part == NULL) -- boot_part = part; -+ partmap->boot_size, partmap->boot_load, -+ boot_part, part); - part->flags = PART_TYPE_APPLE | PART_FLAG_FS; - } else { - part->boot_start.bloc = partmap->boot_start; -@@ -278,8 +285,8 @@ - boot_part = part; - part->flags = PART_TYPE_APPLE | PART_FLAG_FS | PART_FLAG_BOOT; - } -- printf("Partition: %d %s st %0x size %0x", -- i, name, partmap->start_bloc, partmap->bloc_cnt); -+ printf("Partition: %d '%s' '%s' st %0x size %0x", -+ i, name, type, partmap->start_bloc, partmap->bloc_cnt); - #ifndef DEBUG - printf("\n"); - #endif -@@ -290,11 +297,13 @@ - part->boot_load, part->boot_entry); - DPRINTF(" load %0x entry %0x %0x\n", - partmap->boot_load2, partmap->boot_entry2, HFS_BLOCSIZE); -- part_register(bd, part, name); -+ part_register(bd, part, name, i); - } else { - memcpy(tmp, type, 32); - tmp[32] = '\0'; - ERROR("Unknown partition type [%s]\n", tmp); -+ part->flags = PART_TYPE_APPLE | PART_FLAG_DUMMY; -+ part_register(bd, part, name, i); - } - } - error: -diff -wruN --exclude '*~' --exclude '*.o' --exclude '*.bin' --exclude '*.out' --exclude mkdiff OpenHackWare-release-0.4.org/src/libpart/core.c OpenHackWare-release-0.4/src/libpart/core.c ---- OpenHackWare-release-0.4.org/src/libpart/core.c 2005-03-31 09:23:33.000000000 +0200 -+++ OpenHackWare-release-0.4/src/libpart/core.c 2005-07-03 16:17:41.000000000 +0200 -@@ -126,7 +126,7 @@ - } - - int part_register (bloc_device_t *bd, part_t *partition, -- const unsigned char *name) -+ const unsigned char *name, int partnum) - { - part_t **cur; - -@@ -134,6 +134,7 @@ - partition->bd = bd; - partition->next = NULL; - partition->name = strdup(name); -+ partition->partnum = partnum; - for (cur = _bd_parts(bd); *cur != NULL; cur = &(*cur)->next) - continue; - *cur = partition; -@@ -141,29 +142,15 @@ - return 0; - } - --static inline int set_boot_part (bloc_device_t *bd, int partnum) --{ -- part_t *cur; -- -- cur = part_get(bd, partnum); -- if (cur == NULL) -- return -1; -- bd_set_boot_part(bd, cur); -- -- return 0; --} -- - part_t *part_get (bloc_device_t *bd, int partnum) - { - part_t **listp, *cur; -- int i; - - listp = _bd_parts(bd); -- cur = *listp; -- for (i = 0; i != partnum; i++) { -- if (cur == NULL) -+ -+ for (cur = *listp; cur != NULL; cur = cur->next) { -+ if (cur->partnum == partnum) - break; -- cur = cur->next; - } - - return cur; -@@ -192,17 +179,20 @@ - part_set_blocsize(bd, part, 512); - part->bd = bd; - part->flags = PART_TYPE_RAW | PART_FLAG_BOOT; -- part_register(bd, part, "Raw"); -+ part_register(bd, part, "Raw", 0); - - return part; - } - -+bloc_device_t *part_get_bd (part_t *part) -+{ -+ return part->bd; -+} -+ - part_t *part_probe (bloc_device_t *bd, int set_raw) - { -- part_t *part0, *boot_part, **cur; -+ part_t *part0 = NULL, *boot_part, **cur; - -- /* Register the 0 partition: raw partition containing the whole disk */ -- part0 = part_get_raw(bd); - /* Try to find a valid boot partition */ - boot_part = Apple_probe_partitions(bd); - if (boot_part == NULL) { -@@ -210,10 +200,13 @@ - if (boot_part == NULL && arch == ARCH_PREP) - boot_part = PREP_find_partition(bd); - if (boot_part == NULL && set_raw != 0) { -- boot_part = part0; -- set_boot_part(bd, 0); -+ dprintf("Use bloc device as raw partition\n"); - } - } -+ if (_bd_parts(bd) == NULL) { -+ /* Register the 0 partition: raw partition containing the whole disk */ -+ part0 = part_get_raw(bd); -+ } - /* Probe filesystem on each found partition */ - for (cur = _bd_parts(bd); *cur != NULL; cur = &(*cur)->next) { - const unsigned char *map, *type; -@@ -248,23 +241,28 @@ - type = "unknown"; - break; - } -- DPRINTF("Probe filesystem on %s %s partition '%s' %s\n", -+ dprintf("Probe filesystem on %s %s partition '%s' %s %p\n", - type, map, (*cur)->name, -- ((*cur)->flags) & PART_FLAG_BOOT ? "(bootable)" : ""); -+ ((*cur)->flags) & PART_FLAG_BOOT ? "(bootable)" : "", *cur); - if (((*cur)->flags) & PART_FLAG_FS) { - if (((*cur)->flags) & PART_FLAG_BOOT) - (*cur)->fs = fs_probe(*cur, 1); - else - (*cur)->fs = fs_probe(*cur, 0); -+ } else if (((*cur)->flags) & PART_TYPE_RAW) { -+ (*cur)->fs = fs_probe(*cur, 2); - } else { - (*cur)->fs = fs_probe(*cur, 2); - } -- if (((*cur)->flags) & PART_FLAG_BOOT) { -- bd_set_boot_part(bd, *cur); - fs_get_bootfile((*cur)->fs); -+ if (((*cur)->flags) & PART_FLAG_BOOT) { -+ dprintf("Partition is bootable (%d)\n", (*cur)->partnum); -+ bd_set_boot_part(bd, *cur, (*cur)->partnum); -+ if (boot_part == NULL) -+ boot_part = *cur; - } - } -- DPRINTF("Boot partition: %p %p %p %p\n", boot_part, boot_part->fs, -+ dprintf("Boot partition: %p %p %p %p\n", boot_part, boot_part->fs, - part_fs(boot_part), part0); - - return boot_part; -@@ -279,6 +277,7 @@ - part->boot_size.offset = 0; - part->boot_load = 0; - part->boot_entry = 0; -+ part->flags |= PART_FLAG_BOOT; - - return 0; - } -diff -wruN --exclude '*~' --exclude '*.o' --exclude '*.bin' --exclude '*.out' --exclude mkdiff OpenHackWare-release-0.4.org/src/libpart/isofs.c OpenHackWare-release-0.4/src/libpart/isofs.c ---- OpenHackWare-release-0.4.org/src/libpart/isofs.c 2005-03-31 09:23:33.000000000 +0200 -+++ OpenHackWare-release-0.4/src/libpart/isofs.c 2005-07-03 16:17:41.000000000 +0200 -@@ -242,7 +242,7 @@ - part->boot_start.bloc, part->boot_size.bloc, - part->boot_load, part->boot_entry); - part->flags = PART_TYPE_ISO9660 | PART_FLAG_BOOT; -- part_register(bd, part, name); -+ part_register(bd, part, name, i + 1); - fs_raw_set_bootfile(part, part->boot_start.bloc, - part->boot_start.offset, - part->boot_size.bloc, -diff -wruN --exclude '*~' --exclude '*.o' --exclude '*.bin' --exclude '*.out' --exclude mkdiff OpenHackWare-release-0.4.org/src/libpart/libpart.h OpenHackWare-release-0.4/src/libpart/libpart.h ---- OpenHackWare-release-0.4.org/src/libpart/libpart.h 2005-03-31 09:23:33.000000000 +0200 -+++ OpenHackWare-release-0.4/src/libpart/libpart.h 2005-07-03 16:17:41.000000000 +0200 -@@ -30,6 +30,7 @@ - - struct part_t { - bloc_device_t *bd; -+ int partnum; - uint32_t start; /* Partition first bloc */ - uint32_t size; /* Partition size, in blocs */ - uint32_t spb; -@@ -54,7 +55,7 @@ - }; - - int part_register (bloc_device_t *bd, part_t *partition, -- const unsigned char *name); -+ const unsigned char *name, int partnum); - void part_set_blocsize (bloc_device_t *bd, part_t *part, uint32_t blocsize); - void part_private_set (part_t *part, void *private); - void *part_private_get (part_t *part); -diff -wruN --exclude '*~' --exclude '*.o' --exclude '*.bin' --exclude '*.out' --exclude mkdiff OpenHackWare-release-0.4.org/src/libpart/prep.c OpenHackWare-release-0.4/src/libpart/prep.c ---- OpenHackWare-release-0.4.org/src/libpart/prep.c 2005-03-31 09:23:33.000000000 +0200 -+++ OpenHackWare-release-0.4/src/libpart/prep.c 2005-07-03 16:17:41.000000000 +0200 -@@ -164,7 +164,7 @@ - part->boot_load = 0; - part->boot_entry = boot_offset - part->bloc_size; - part->flags = PART_TYPE_PREP | PART_FLAG_BOOT; -- part_register(bd, part, "PREP boot"); -+ part_register(bd, part, "PREP boot", i); - fs_raw_set_bootfile(part, part->boot_start.bloc, - part->boot_start.offset, - part->boot_size.bloc, -diff -wruN --exclude '*~' --exclude '*.o' --exclude '*.bin' --exclude '*.out' --exclude mkdiff OpenHackWare-release-0.4.org/src/main.c OpenHackWare-release-0.4/src/main.c ---- OpenHackWare-release-0.4.org/src/main.c 2005-03-31 09:23:33.000000000 +0200 -+++ OpenHackWare-release-0.4/src/main.c 2005-06-07 23:48:39.000000000 +0200 -@@ -364,20 +364,24 @@ - void *load_base, *load_entry, *last_alloc, *load_end; - uint32_t memsize, boot_image_size, cmdline_size, ramdisk_size; - uint32_t boot_base, boot_nb; -- int boot_device; -+ int boot_device, i; -+ static const uint32_t isa_base_tab[3] = { -+ 0x80000000, /* PREP */ -+ 0xFE000000, /* Grackle (Heathrow) */ -+ 0xF2000000, /* UniNorth (Mac99) */ -+ }; - - /* Retrieve NVRAM configuration */ -- nvram_retry: -+ for(i = 0; i < 3; i++) { -+ isa_io_base = isa_base_tab[i]; - nvram = NVRAM_get_config(&memsize, &boot_device, - &boot_image, &boot_image_size, - &cmdline, &cmdline_size, - &ramdisk, &ramdisk_size); -- if (nvram == NULL) { -- /* Retry with another isa_io_base */ -- if (isa_io_base == 0x80000000) { -- isa_io_base = 0xF2000000; -- goto nvram_retry; -+ if (nvram) -+ break; - } -+ if (i == 3) { - ERROR("Unable to load configuration from NVRAM. Aborting...\n"); - return -1; - } -@@ -402,7 +406,7 @@ - cpu_name = CPU_get_name(pvr); - OF_register_cpu(cpu_name, 0, pvr, - 200 * 1000 * 1000, 200 * 1000 * 1000, -- 100 * 1000 * 1000, 10 * 1000 * 1000, -+ 100 * 1000 * 1000, 100 * 1000 * 1000, - 0x0092); - } - OF_register_memory(memsize, 512 * 1024 /* TOFIX */); -@@ -433,9 +437,12 @@ - vga_puts(copyright); - vga_puts("\n"); - -+#if 0 - /* QEMU is quite incoherent: d is cdrom, not second drive */ -+ /* XXX: should probe CD-ROM position */ - if (boot_device == 'd') - boot_device = 'e'; -+#endif - /* Open boot device */ - boot_part = bd_probe(boot_device); - if (boot_device == 'm') { -diff -wruN --exclude '*~' --exclude '*.o' --exclude '*.bin' --exclude '*.out' --exclude mkdiff OpenHackWare-release-0.4.org/src/nvram.c OpenHackWare-release-0.4/src/nvram.c ---- OpenHackWare-release-0.4.org/src/nvram.c 2005-03-31 09:23:33.000000000 +0200 -+++ OpenHackWare-release-0.4/src/nvram.c 2005-06-04 23:44:03.000000000 +0200 -@@ -334,6 +334,7 @@ - ret = NVRAM_chrp_format(nvram); - break; - case ARCH_MAC99: -+ case ARCH_HEATHROW: /* XXX: may be incorrect */ - ret = NVRAM_mac99_format(nvram); - break; - case ARCH_POP: -@@ -409,13 +410,12 @@ - arch = ARCH_MAC99; - } else if (strcmp(sign, "POP") == 0) { - arch = ARCH_POP; -+ } else if (strcmp(sign, "HEATHROW") == 0) { -+ arch = ARCH_HEATHROW; - } else { - ERROR("Unknown PPC architecture: '%s'\n", sign); - return NULL; - } -- /* HACK */ -- if (arch == ARCH_CHRP) -- arch = ARCH_MAC99; - lword = NVRAM_get_lword(nvram, 0x30); - *RAM_size = lword; - byte = NVRAM_get_byte(nvram, 0x34); -diff -wruN --exclude '*~' --exclude '*.o' --exclude '*.bin' --exclude '*.out' --exclude mkdiff OpenHackWare-release-0.4.org/src/of.c OpenHackWare-release-0.4/src/of.c ---- OpenHackWare-release-0.4.org/src/of.c 2005-04-06 23:17:26.000000000 +0200 -+++ OpenHackWare-release-0.4/src/of.c 2005-07-07 23:30:08.000000000 +0200 -@@ -489,7 +489,7 @@ - ERROR("%s can't alloc new node '%s' name\n", __func__, name); - return NULL; - } -- new->prop_address = OF_prop_int_new(env, new, "address", address); -+ new->prop_address = OF_prop_int_new(env, new, "unit-address", address); - if (new->prop_address == NULL) { - free(new->prop_name->value); - free(new->prop_name); -@@ -1017,6 +1017,33 @@ - string, strlen(string) + 1); - } - -+/* convert '\1' char to '\0' */ -+static OF_prop_t *OF_prop_string_new1 (OF_env_t *env, OF_node_t *node, -+ const unsigned char *name, -+ const unsigned char *string) -+{ -+ int len, i; -+ OF_prop_t *ret; -+ unsigned char *str; -+ -+ if (strchr(string, '\1') == NULL) { -+ return OF_prop_string_new(env, node, name, string); -+ } else { -+ len = strlen(string) + 1; -+ str = malloc(len); -+ if (!str) -+ return NULL; -+ memcpy(str, string, len); -+ for(i = 0; i < len; i++) -+ if (str[i] == '\1') -+ str[i] = '\0'; -+ ret = OF_property_new(env, node, name, -+ str, len); -+ free(str); -+ return ret; -+ } -+} -+ - __attribute__ (( section (".OpenFirmware") )) - static OF_prop_t *OF_prop_int_new (OF_env_t *env, OF_node_t *node, - const unsigned char *name, uint32_t value) -@@ -1421,15 +1448,12 @@ - __attribute__ (( section (".OpenFirmware") )) - int OF_init (void) - { -- const unsigned char compat_str[] = - #if 0 - "PowerMac3,1\0MacRISC\0Power Macintosh\0"; - "PowerMac1,2\0MacRISC\0Power Macintosh\0"; - "AAPL,PowerMac G3\0PowerMac G3\0MacRISC\0Power Macintosh\0"; - "AAPL,PowerMac3,0\0MacRISC\0Power Macintosh\0"; - "AAPL,Gossamer\0MacRISC\0Power Macintosh\0"; --#else -- "AAPL,PowerMac G3\0PowerMac G3\0MacRISC\0Power Macintosh\0"; - #endif - OF_env_t *OF_env; - OF_node_t *als, *opt, *chs, *pks; -@@ -1455,15 +1479,21 @@ - return -1; - } - OF_prop_string_new(OF_env, OF_node_root, "device_type", "bootrom"); --#if 0 -- OF_prop_string_new(OF_env, OF_node_root, -- "model", "PPC Open Hack'Ware " BIOS_VERSION); --#else -+ if (arch == ARCH_HEATHROW) { -+ const unsigned char compat_str[] = -+ "PowerMac1,1\0MacRISC\0Power Macintosh"; -+ OF_property_new(OF_env, OF_node_root, "compatible", -+ compat_str, sizeof(compat_str)); - OF_prop_string_new(OF_env, OF_node_root, -- "model", compat_str); --#endif -+ "model", "Power Macintosh"); -+ } else { -+ const unsigned char compat_str[] = -+ "PowerMac3,1\0MacRISC\0Power Macintosh"; - OF_property_new(OF_env, OF_node_root, "compatible", - compat_str, sizeof(compat_str)); -+ OF_prop_string_new(OF_env, OF_node_root, -+ "model", "PowerMac3,1"); -+ } - #if 0 - OF_prop_string_new(OF_env, OF_node_root, "copyright", copyright); - #else -@@ -1561,14 +1591,15 @@ - range.size = 0x00800000; - OF_property_new(OF_env, rom, "ranges", &range, sizeof(OF_range_t)); - OF_prop_int_new(OF_env, rom, "#address-cells", 1); -+ - /* "/rom/boot-rom@fff00000" node */ -- brom = OF_node_new(OF_env, OF_node_root, "boot-rom", 0xfff00000); -+ brom = OF_node_new(OF_env, rom, "boot-rom", 0xfff00000); - if (brom == NULL) { - ERROR("Cannot create 'boot-rom'\n"); - return -1; - } - regs.address = 0xFFF00000; -- regs.size = 0x00010000; -+ regs.size = 0x00100000; - OF_property_new(OF_env, brom, "reg", ®s, sizeof(OF_regprop_t)); - OF_prop_string_new(OF_env, brom, "write-characteristic", "flash"); - OF_prop_string_new(OF_env, brom, "BootROM-build-date", -@@ -1577,7 +1608,7 @@ - OF_prop_string_new(OF_env, brom, "copyright", copyright); - OF_prop_string_new(OF_env, brom, "model", BIOS_str); - OF_prop_int_new(OF_env, brom, "result", 0); --#if 0 -+#if 1 - { - /* Hack taken 'as-is' from PearPC */ - unsigned char info[] = { -@@ -1596,7 +1627,9 @@ - OF_node_put(OF_env, brom); - OF_node_put(OF_env, rom); - } -+#if 0 - /* From here, hardcoded hacks to get a Mac-like machine */ -+ /* XXX: Core99 does not seem to like this NVRAM tree */ - /* "/nvram@fff04000" node */ - { - OF_regprop_t regs; -@@ -1617,6 +1650,7 @@ - OF_prop_int_new(OF_env, chs, "nvram", OF_pack_handle(OF_env, nvr)); - OF_node_put(OF_env, nvr); - } -+#endif - /* "/pseudo-hid" : hid emulation as Apple does */ - { - OF_node_t *hid; -@@ -1663,7 +1697,27 @@ - } - OF_node_put(OF_env, hid); - } -+ if (arch == ARCH_MAC99) { -+ OF_node_t *unin; -+ OF_regprop_t regs; - -+ unin = OF_node_new(OF_env, OF_node_root, -+ "uni-n", 0xf8000000); -+ if (unin == NULL) { -+ ERROR("Cannot create 'uni-n'\n"); -+ return -1; -+ } -+ OF_prop_string_new(OF_env, unin, "device-type", "memory-controller"); -+ OF_prop_string_new(OF_env, unin, "model", "AAPL,UniNorth"); -+ OF_prop_string_new(OF_env, unin, "compatible", "uni-north"); -+ regs.address = 0xf8000000; -+ regs.size = 0x01000000; -+ OF_property_new(OF_env, unin, "reg", ®s, sizeof(regs)); -+ OF_prop_int_new(OF_env, unin, "#address-cells", 1); -+ OF_prop_int_new(OF_env, unin, "#size-cells", 1); -+ OF_prop_int_new(OF_env, unin, "device-rev", 3); -+ OF_node_put(OF_env, unin); -+ } - - #if 1 /* This is mandatory for claim to work - * but I don't know where it should really be (in cpu ?) -@@ -1693,7 +1747,9 @@ - - /* "/options/boot-args" node */ - { -- const unsigned char *args = "-v rootdev cdrom"; -+ // const unsigned char *args = "-v rootdev cdrom"; -+ //const unsigned char *args = "-v io=0xffffffff"; -+ const unsigned char *args = "-v"; - /* Ask MacOS X to print debug messages */ - // OF_prop_string_new(OF_env, chs, "machargs", args); - // OF_prop_string_new(OF_env, opt, "boot-command", args); -@@ -2013,17 +2069,17 @@ - OF_prop_int_new(OF_env, node, "min-grant", min_grant); - OF_prop_int_new(OF_env, node, "max-latency", max_latency); - if (dev->type != NULL) -- OF_prop_string_new(OF_env, node, "device_type", dev->type); -+ OF_prop_string_new1(OF_env, node, "device_type", dev->type); - if (dev->compat != NULL) -- OF_prop_string_new(OF_env, node, "compatible", dev->compat); -+ OF_prop_string_new1(OF_env, node, "compatible", dev->compat); - if (dev->model != NULL) -- OF_prop_string_new(OF_env, node, "model", dev->model); -+ OF_prop_string_new1(OF_env, node, "model", dev->model); - if (dev->acells != 0) - OF_prop_int_new(OF_env, node, "#address-cells", dev->acells); - if (dev->scells != 0) -- OF_prop_int_new(OF_env, node, "#interrupt-cells", dev->acells); -+ OF_prop_int_new(OF_env, node, "#size-cells", dev->scells); - if (dev->icells != 0) -- OF_prop_int_new(OF_env, node, "#size-cells", dev->acells); -+ OF_prop_int_new(OF_env, node, "#interrupt-cells", dev->icells); - dprintf("Done %p %p\n", parent, node); - - return node; -@@ -2040,8 +2096,9 @@ - OF_env_t *OF_env; - pci_range_t ranges[3]; - OF_regprop_t regs[1]; -- OF_node_t *pci_host; -+ OF_node_t *pci_host, *als; - int nranges; -+ unsigned char buffer[OF_NAMELEN_MAX]; - - OF_env = OF_env_main; - dprintf("register PCI host '%s' '%s' '%s' '%s'\n", -@@ -2052,6 +2109,17 @@ - ERROR("Cannot create pci host\n"); - return NULL; - } -+ -+ als = OF_node_get(OF_env, "aliases"); -+ if (als == NULL) { -+ ERROR("Cannot get 'aliases'\n"); -+ return NULL; -+ } -+ sprintf(buffer, "/%s", dev->name); -+ OF_prop_string_set(OF_env, als, "pci", buffer); -+ OF_node_put(OF_env, als); -+ -+ - regs[0].address = cfg_base; - regs[0].size = cfg_len; - OF_property_new(OF_env, pci_host, "reg", regs, sizeof(OF_regprop_t)); -@@ -2136,6 +2204,11 @@ - return pci_dev; - } - -+/* XXX: suppress that, used for interrupt map init */ -+OF_node_t *pci_host_node; -+uint32_t pci_host_interrupt_map[7 * 32]; -+int pci_host_interrupt_map_len = 0; -+ - void OF_finalize_pci_host (void *dev, int first_bus, int nb_busses) - { - OF_env_t *OF_env; -@@ -2145,10 +2218,12 @@ - regs[0].address = first_bus; - regs[0].size = nb_busses; - OF_property_new(OF_env, dev, "bus-range", regs, sizeof(OF_regprop_t)); -+ pci_host_node = dev; - } - - void OF_finalize_pci_device (void *dev, uint8_t bus, uint8_t devfn, -- uint32_t *regions, uint32_t *sizes) -+ uint32_t *regions, uint32_t *sizes, -+ int irq_line) - { - OF_env_t *OF_env; - pci_reg_prop_t pregs[6], rregs[6]; -@@ -2156,6 +2231,7 @@ - int i, j, k; - - OF_env = OF_env_main; -+ /* XXX: only useful for VGA card in fact */ - if (regions[0] != 0x00000000) - OF_prop_int_set(OF_env, dev, "address", regions[0] & ~0x0000000F); - for (i = 0, j = 0, k = 0; i < 6; i++) { -@@ -2222,7 +2298,22 @@ - } else { - OF_property_new(OF_env, dev, "assigned-addresses", NULL, 0); - } --#if 0 -+ if (irq_line >= 0) { -+ int i; -+ OF_prop_int_new(OF_env, dev, "interrupts", 1); -+ i = pci_host_interrupt_map_len; -+ pci_host_interrupt_map[i++] = (devfn << 8) & 0xf800; -+ pci_host_interrupt_map[i++] = 0; -+ pci_host_interrupt_map[i++] = 0; -+ pci_host_interrupt_map[i++] = 0; -+ pci_host_interrupt_map[i++] = 0; /* pic handle will be patched later */ -+ pci_host_interrupt_map[i++] = irq_line; -+ if (arch != ARCH_HEATHROW) { -+ pci_host_interrupt_map[i++] = 1; -+ } -+ pci_host_interrupt_map_len = i; -+ } -+#if 1 - { - OF_prop_t *prop_name = ((OF_node_t *)dev)->prop_name; - -@@ -2390,6 +2481,54 @@ - return 0; - } - -+static void keylargo_ata(OF_node_t *mio, uint32_t base_address, -+ uint32_t base, int irq1, int irq2, -+ uint16_t pic_phandle) -+{ -+ OF_env_t *OF_env = OF_env_main; -+ OF_node_t *ata; -+ OF_regprop_t regs[2]; -+ -+ ata = OF_node_new(OF_env, mio, "ata-4", base); -+ if (ata == NULL) { -+ ERROR("Cannot create 'ata-4'\n"); -+ return; -+ } -+ OF_prop_string_new(OF_env, ata, "device_type", "ata"); -+#if 1 -+ OF_prop_string_new(OF_env, ata, "compatible", "key2largo-ata"); -+ OF_prop_string_new(OF_env, ata, "model", "ata-4"); -+ OF_prop_string_new(OF_env, ata, "cable-type", "80-conductor"); -+#else -+ OF_prop_string_new(OF_env, ata, "compatible", "cmd646-ata"); -+ OF_prop_string_new(OF_env, ata, "model", "ata-4"); -+#endif -+ OF_prop_int_new(OF_env, ata, "#address-cells", 1); -+ OF_prop_int_new(OF_env, ata, "#size-cells", 0); -+ regs[0].address = base; -+ regs[0].size = 0x00001000; -+#if 0 // HACK: Don't set up DMA registers -+ regs[1].address = 0x00008A00; -+ regs[1].size = 0x00001000; -+ OF_property_new(OF_env, ata, "reg", -+ regs, 2 * sizeof(OF_regprop_t)); -+#else -+ OF_property_new(OF_env, ata, "reg", -+ regs, sizeof(OF_regprop_t)); -+#endif -+ OF_prop_int_new(OF_env, ata, "interrupt-parent", pic_phandle); -+ regs[0].address = irq1; -+ regs[0].size = 0x00000001; -+ regs[1].address = irq2; -+ regs[1].size = 0x00000000; -+ OF_property_new(OF_env, ata, "interrupts", -+ regs, 2 * sizeof(OF_regprop_t)); -+ if (base == 0x1f000) -+ ide_pci_pmac_register(base_address + base, 0x00000000, ata); -+ else -+ ide_pci_pmac_register(0x00000000, base_address + base, ata); -+} -+ - void OF_finalize_pci_macio (void *dev, uint32_t base_address, uint32_t size, - void *private_data) - { -@@ -2398,6 +2537,8 @@ - pci_reg_prop_t pregs[2]; - OF_node_t *mio, *chs, *als; - uint16_t pic_phandle; -+ int rec_len; -+ OF_prop_t *mio_reg; - - OF_DPRINTF("mac-io: %p\n", dev); - OF_env = OF_env_main; -@@ -2416,10 +2557,14 @@ - mio = dev; - mio->private_data = private_data; - pregs[0].addr.hi = 0x00000000; -- pregs[0].addr.mid = 0x82013810; -+ pregs[0].addr.mid = 0x00000000; - pregs[0].addr.lo = 0x00000000; - pregs[0].size_hi = base_address; - pregs[0].size_lo = size; -+ mio_reg = OF_property_get(OF_env, mio, "reg"); -+ if (mio_reg && mio_reg->vlen >= 5 * 4) { -+ pregs[0].addr.mid = ((pci_reg_prop_t *)mio_reg->value)->addr.hi; -+ } - OF_property_new(OF_env, mio, "ranges", - &pregs, sizeof(pci_reg_prop_t)); - #if 0 -@@ -2431,8 +2576,32 @@ - OF_property_new(OF_env, mio, "assigned-addresses", - &pregs, sizeof(pci_reg_prop_t)); - #endif -+ -+ if (arch == ARCH_HEATHROW) { -+ /* Heathrow PIC */ -+ OF_regprop_t regs; -+ OF_node_t *mpic; -+ const char compat_str[] = "heathrow\0mac-risc"; -+ -+ mpic = OF_node_new(OF_env, mio, "interrupt-controller", 0x10); -+ if (mpic == NULL) { -+ ERROR("Cannot create 'mpic'\n"); -+ goto out; -+ } -+ OF_prop_string_new(OF_env, mpic, "device_type", "interrupt-controller"); -+ OF_property_new(OF_env, mpic, "compatible", compat_str, sizeof(compat_str)); -+ OF_prop_int_new(OF_env, mpic, "#interrupt-cells", 1); -+ regs.address = 0x10; -+ regs.size = 0x20; -+ OF_property_new(OF_env, mpic, "reg", -+ ®s, sizeof(regs)); -+ OF_property_new(OF_env, mpic, "interrupt-controller", NULL, 0); -+ pic_phandle = OF_pack_handle(OF_env, mpic); -+ OF_prop_int_new(OF_env, chs, "interrupt-controller", pic_phandle); -+ OF_node_put(OF_env, mpic); -+ rec_len = 6; -+ } else { - /* OpenPIC */ -- { - OF_regprop_t regs[4]; - OF_node_t *mpic; - mpic = OF_node_new(OF_env, mio, "interrupt-controller", 0x40000); -@@ -2455,8 +2624,37 @@ - pic_phandle = OF_pack_handle(OF_env, mpic); - OF_prop_int_new(OF_env, chs, "interrupt-controller", pic_phandle); - OF_node_put(OF_env, mpic); -+ rec_len = 7; - } --#if 1 -+ -+ /* patch pci host table */ -+ /* XXX: do it after the PCI init */ -+ { -+ int i; -+ uint32_t tab[4]; -+ -+ for(i = 0; i < pci_host_interrupt_map_len; i += rec_len) -+ pci_host_interrupt_map[i + 4] = pic_phandle; -+#if 0 -+ dprintf("interrupt-map:\n"); -+ for(i = 0; i < pci_host_interrupt_map_len; i++) { -+ dprintf(" %08x", pci_host_interrupt_map[i]); -+ if ((i % rec_len) == (rec_len - 1)) -+ dprintf("\n"); -+ } -+ dprintf("\n"); -+#endif -+ OF_property_new(OF_env, pci_host_node, "interrupt-map", -+ pci_host_interrupt_map, -+ pci_host_interrupt_map_len * sizeof(uint32_t)); -+ tab[0] = 0xf800; -+ tab[1] = 0; -+ tab[2] = 0; -+ tab[3] = 0; -+ OF_property_new(OF_env, pci_host_node, "interrupt-map-mask", -+ tab, 4 * sizeof(uint32_t)); -+ } -+#if 0 - /* escc is useful to get MacOS X debug messages */ - { - OF_regprop_t regs[8]; -@@ -2645,85 +2843,12 @@ - OF_node_put(OF_env, scc); - } - #endif -- /* IDE controller */ -- { -- OF_node_t *ata; -- OF_regprop_t regs[2]; -- ata = OF_node_new(OF_env, mio, "ata-4", 0x1f000); -- if (ata == NULL) { -- ERROR("Cannot create 'ata-4'\n"); -- goto out; -- } -- OF_prop_string_new(OF_env, ata, "device_type", "ata"); --#if 1 -- OF_prop_string_new(OF_env, ata, "compatible", "keylargo-ata"); -- OF_prop_string_new(OF_env, ata, "model", "ata-4"); --#else -- OF_prop_string_new(OF_env, ata, "compatible", "cmd646-ata"); -- OF_prop_string_new(OF_env, ata, "model", "ata-4"); --#endif -- OF_prop_int_new(OF_env, ata, "#address-cells", 1); -- OF_prop_int_new(OF_env, ata, "#size-cells", 0); -- regs[0].address = 0x0001F000; -- regs[0].size = 0x00001000; --#if 0 // HACK: Don't set up DMA registers -- regs[1].address = 0x00008A00; -- regs[1].size = 0x00001000; -- OF_property_new(OF_env, ata, "reg", -- regs, 2 * sizeof(OF_regprop_t)); --#else -- OF_property_new(OF_env, ata, "reg", -- regs, sizeof(OF_regprop_t)); --#endif -- OF_prop_int_new(OF_env, ata, "interrupt-parent", pic_phandle); -- regs[0].address = 0x00000013; -- regs[0].size = 0x00000001; -- regs[1].address = 0x0000000B; -- regs[1].size = 0x00000000; -- OF_property_new(OF_env, ata, "interrupts", -- regs, 2 * sizeof(OF_regprop_t)); -- ide_pci_pmac_register(base_address + 0x1f000, 0x00000000, ata); -- -- } -- { -- OF_node_t *ata; -- OF_regprop_t regs[2]; -- ata = OF_node_new(OF_env, mio, "ata-4", 0x20000); -- if (ata == NULL) { -- ERROR("Cannot create 'ata-4'\n"); -- goto out; -- } -- OF_prop_string_new(OF_env, ata, "device_type", "ata"); --#if 1 -- OF_prop_string_new(OF_env, ata, "compatible", "keylargo-ata"); -- OF_prop_string_new(OF_env, ata, "model", "ata-4"); --#else -- OF_prop_string_new(OF_env, ata, "compatible", "cmd646-ata"); -- OF_prop_string_new(OF_env, ata, "model", "ata-4"); --#endif -- OF_prop_int_new(OF_env, ata, "#address-cells", 1); -- OF_prop_int_new(OF_env, ata, "#size-cells", 0); -- regs[0].address = 0x00020000; -- regs[0].size = 0x00001000; --#if 0 // HACK: Don't set up DMA registers -- regs[1].address = 0x00008A00; -- regs[1].size = 0x00001000; -- OF_property_new(OF_env, ata, "reg", -- regs, 2 * sizeof(OF_regprop_t)); --#else -- OF_property_new(OF_env, ata, "reg", -- regs, sizeof(OF_regprop_t)); --#endif -- OF_prop_int_new(OF_env, ata, "interrupt-parent", pic_phandle); -- regs[0].address = 0x00000014; -- regs[0].size = 0x00000001; -- regs[1].address = 0x0000000B; -- regs[1].size = 0x00000000; -- OF_property_new(OF_env, ata, "interrupts", -- regs, 2 * sizeof(OF_regprop_t)); -- ide_pci_pmac_register(0x00000000, base_address + 0x20000, ata); -- -+ /* Keylargo IDE controller: need some work (DMA problem ?) */ -+ if (arch == ARCH_MAC99) { -+ keylargo_ata(mio, base_address, 0x1f000, 0x13, 0xb, pic_phandle); -+ keylargo_ata(mio, base_address, 0x20000, 0x14, 0xb, pic_phandle); - } -+#if 0 - /* Timer */ - { - OF_node_t *tmr; -@@ -2746,10 +2871,11 @@ - regs, sizeof(OF_regprop_t)); - OF_node_put(OF_env, tmr); - } -+#endif - /* VIA-PMU */ - { - /* Controls adb, RTC and power-mgt (forget it !) */ -- OF_node_t *via, *adb, *rtc; -+ OF_node_t *via, *adb; - OF_regprop_t regs[1]; - #if 0 // THIS IS A HACK AND IS COMPLETELY ABSURD ! - // (but needed has Qemu doesn't emulate via-pmu). -@@ -2773,14 +2899,21 @@ - regs[0].size = 0x00002000; - OF_property_new(OF_env, via, "reg", regs, sizeof(OF_regprop_t)); - OF_prop_int_new(OF_env, via, "interrupt-parent", pic_phandle); -+ if (arch == ARCH_HEATHROW) { -+ OF_prop_int_new(OF_env, via, "interrupts", 0x12); -+ } else { - regs[0].address = 0x00000019; - regs[0].size = 0x00000001; - OF_property_new(OF_env, via, "interrupts", - regs, sizeof(OF_regprop_t)); -+ } -+ /* force usage of OF bus speeds */ -+ OF_prop_int_new(OF_env, via, "BusSpeedCorrect", 1); - #if 0 - OF_prop_int_new(OF_env, via, "pmu-version", 0x00D0740C); - #endif --#if 1 -+ { -+ OF_node_t *kbd, *mouse; - /* ADB pseudo-device */ - adb = OF_node_new(OF_env, via, "adb", OF_ADDRESS_NONE); - if (adb == NULL) { -@@ -2797,9 +2930,26 @@ - OF_prop_int_new(OF_env, adb, "#size-cells", 0); - OF_pack_get_path(OF_env, tmp, 512, adb); - OF_prop_string_new(OF_env, als, "adb", tmp); -- /* XXX: add "keyboard@2" and "mouse@3" */ -- OF_node_put(OF_env, adb); --#endif -+ -+ kbd = OF_node_new(OF_env, adb, "keyboard", 2); -+ if (kbd == NULL) { -+ ERROR("Cannot create 'kbd'\n"); -+ goto out; -+ } -+ OF_prop_string_new(OF_env, kbd, "device_type", "keyboard"); -+ OF_prop_int_new(OF_env, kbd, "reg", 2); -+ -+ mouse = OF_node_new(OF_env, adb, "mouse", 3); -+ if (mouse == NULL) { -+ ERROR("Cannot create 'mouse'\n"); -+ goto out; -+ } -+ OF_prop_string_new(OF_env, mouse, "device_type", "mouse"); -+ OF_prop_int_new(OF_env, mouse, "reg", 3); -+ OF_prop_int_new(OF_env, mouse, "#buttons", 3); -+ } -+ { -+ OF_node_t *rtc; - - rtc = OF_node_new(OF_env, via, "rtc", OF_ADDRESS_NONE); - if (rtc == NULL) { -@@ -2813,14 +2963,68 @@ - OF_prop_string_new(OF_env, rtc, "compatible", "rtc"); - #endif - OF_node_put(OF_env, rtc); -- OF_node_put(OF_env, via); - } -+ // OF_node_put(OF_env, via); -+ } -+ { -+ OF_node_t *pmgt; -+ pmgt = OF_node_new(OF_env, mio, "power-mgt", OF_ADDRESS_NONE); -+ OF_prop_string_new(OF_env, pmgt, "device_type", "power-mgt"); -+ OF_prop_string_new(OF_env, pmgt, "compatible", "cuda"); -+ OF_prop_string_new(OF_env, pmgt, "mgt-kind", "min-consumption-pwm-led"); -+ OF_node_put(OF_env, pmgt); -+ } -+ -+ if (arch == ARCH_HEATHROW) { -+ /* NVRAM */ -+ OF_node_t *nvr; -+ OF_regprop_t regs; -+ nvr = OF_node_new(OF_env, mio, "nvram", 0x60000); -+ OF_prop_string_new(OF_env, nvr, "device_type", "nvram"); -+ regs.address = 0x60000; -+ regs.size = 0x00020000; -+ OF_property_new(OF_env, nvr, "reg", ®s, sizeof(regs)); -+ OF_prop_int_new(OF_env, nvr, "#bytes", 0x2000); -+ OF_node_put(OF_env, nvr); -+ } -+ - out: - // OF_node_put(OF_env, mio); - OF_node_put(OF_env, chs); - OF_node_put(OF_env, als); - } - -+void OF_finalize_pci_ide (void *dev, -+ uint32_t io_base0, uint32_t io_base1, -+ uint32_t io_base2, uint32_t io_base3) -+{ -+ OF_env_t *OF_env = OF_env_main; -+ OF_node_t *pci_ata = dev; -+ OF_node_t *ata, *atas[2]; -+ int i; -+ -+ OF_prop_int_new(OF_env, pci_ata, "#address-cells", 1); -+ OF_prop_int_new(OF_env, pci_ata, "#size-cells", 0); -+ -+ /* XXX: Darwin handles only one device */ -+ for(i = 0; i < 1; i++) { -+ ata = OF_node_new(OF_env, pci_ata, "ata-4", i); -+ if (ata == NULL) { -+ ERROR("Cannot create 'ata-4'\n"); -+ return; -+ } -+ OF_prop_string_new(OF_env, ata, "device_type", "ata"); -+ OF_prop_string_new(OF_env, ata, "compatible", "cmd646-ata"); -+ OF_prop_string_new(OF_env, ata, "model", "ata-4"); -+ OF_prop_int_new(OF_env, ata, "#address-cells", 1); -+ OF_prop_int_new(OF_env, ata, "#size-cells", 0); -+ OF_prop_int_new(OF_env, ata, "reg", i); -+ atas[i] = ata; -+ } -+ ide_pci_pc_register(io_base0, io_base1, io_base2, io_base3, -+ atas[0], atas[1]); -+} -+ - /*****************************************************************************/ - /* Fake package */ - static void OF_method_fake (OF_env_t *OF_env) -@@ -2862,11 +3066,11 @@ - /* As we get a 1:1 mapping, do nothing */ - ihandle = popd(OF_env); - args = (void *)popd(OF_env); -- address = popd(OF_env); -- virt = popd(OF_env); -- size = popd(OF_env); - popd(OF_env); -- OF_DPRINTF("Translate address %0x %0x %0x %0x\n", ihandle, address, -+ size = popd(OF_env); -+ virt = popd(OF_env); -+ address = popd(OF_env); -+ OF_DPRINTF("Map %0x %0x %0x %0x\n", ihandle, address, - virt, size); - pushd(OF_env, 0); - } -@@ -3270,7 +3474,7 @@ - OF_prop_string_new(OF_env, dsk, "device_type", "block"); - OF_prop_string_new(OF_env, dsk, "category", type); - OF_prop_int_new(OF_env, dsk, "device_id", devnum); -- OF_prop_int_new(OF_env, dsk, "reg", 0); -+ OF_prop_int_new(OF_env, dsk, "reg", devnum); - OF_method_new(OF_env, dsk, "open", &OF_blockdev_open); - OF_method_new(OF_env, dsk, "seek", &OF_blockdev_seek); - OF_method_new(OF_env, dsk, "read", &OF_blockdev_read); -@@ -3432,7 +3636,8 @@ - } - - void OF_vga_register (const unsigned char *name, unused uint32_t address, -- int width, int height, int depth) -+ int width, int height, int depth, -+ unsigned long vga_bios_addr, unsigned long vga_bios_size) - { - OF_env_t *OF_env; - unsigned char tmp[OF_NAMELEN_MAX]; -@@ -3504,6 +3709,18 @@ - OF_prop_string_new(OF_env, als, "display", tmp); - OF_node_put(OF_env, als); - /* XXX: may also need read-rectangle */ -+ -+ if (vga_bios_size >= 8) { -+ const uint8_t *p; -+ int size; -+ /* check the QEMU VGA BIOS header */ -+ p = (const uint8_t *)vga_bios_addr; -+ if (p[0] == 'N' && p[1] == 'D' && p[2] == 'R' && p[3] == 'V') { -+ size = *(uint32_t *)(p + 4); -+ OF_property_new(OF_env, disp, "driver,AAPL,MacOS,PowerPC", -+ p + 8, size); -+ } -+ } - out: - OF_node_put(OF_env, disp); - } -@@ -4451,7 +4668,10 @@ - break; - case 0x233441d3: /* MacOS X 10.2 and OpenDarwin 1.41 */ - /* Create "memory-map" pseudo device */ -- popd(OF_env); -+ { -+ OF_node_t *map; -+ uint32_t phandle; -+ - /* Find "/packages" */ - chs = OF_pack_find_by_name(OF_env, OF_node_root, "/chosen"); - if (chs == NULL) { -@@ -4459,10 +4679,6 @@ - ERROR("Cannot get '/chosen'\n"); - break; - } -- { --#if 1 -- OF_node_t *map; -- uint32_t phandle; - map = OF_node_new(OF_env, chs, "memory-map", OF_ADDRESS_NONE); - if (map == NULL) { - pushd(OF_env, -1); -@@ -4473,11 +4689,8 @@ - OF_node_put(OF_env, map); - OF_node_put(OF_env, chs); - pushd(OF_env, phandle); -- } --#else -- pushd(OF_env, 0); --#endif - pushd(OF_env, 0); -+ } - break; - case 0x32a2d18e: /* MacOS X 10.2 and OpenDarwin 6.02 */ - /* Return screen ihandle */ -@@ -4540,9 +4753,10 @@ - case 0x4ad41f2d: - /* Yaboot: wait 10 ms: sure ! */ - break; -+ - default: - /* ERROR */ -- printf("Script:\n%s\n", FString); -+ printf("Script: len=%d\n%s\n", (int)strlen(FString), FString); - printf("Call %0x NOT IMPLEMENTED !\n", crc); - bug(); - break; -@@ -4581,6 +4795,7 @@ - { - OF_CHECK_NBARGS(OF_env, 0); - /* Should free all OF resources */ -+ bd_reset_all(); - #if defined (DEBUG_BIOS) - { - uint16_t loglevel = 0x02 | 0x10 | 0x80; -diff -wruN --exclude '*~' --exclude '*.o' --exclude '*.bin' --exclude '*.out' --exclude mkdiff OpenHackWare-release-0.4.org/src/pci.c OpenHackWare-release-0.4/src/pci.c ---- OpenHackWare-release-0.4.org/src/pci.c 2005-03-31 09:23:33.000000000 +0200 -+++ OpenHackWare-release-0.4/src/pci.c 2005-07-07 23:27:37.000000000 +0200 -@@ -99,8 +99,8 @@ - uint16_t min_grant; - uint16_t max_latency; - uint8_t irq_line; -- uint32_t regions[6]; -- uint32_t sizes[6]; -+ uint32_t regions[7]; /* the region 6 is the PCI ROM */ -+ uint32_t sizes[7]; - pci_device_t *next; - }; - -@@ -158,6 +158,7 @@ - - /* IRQ numbers assigned to PCI IRQs */ - static uint8_t prep_pci_irqs[4] = { 9, 11, 9, 11 }; -+static uint8_t heathrow_pci_irqs[4] = { 0x15, 0x16, 0x17, 0x18 }; - static uint8_t pmac_pci_irqs[4] = { 8, 9, 10, 11 }; - - /* PREP PCI host */ -@@ -399,6 +400,79 @@ - &uninorth_config_readl, &uninorth_config_writel, - }; - -+/* Grackle PCI host */ -+ -+static uint32_t grackle_cfg_address (pci_bridge_t *bridge, -+ uint8_t bus, uint8_t devfn, -+ uint8_t offset) -+{ -+ uint32_t addr; -+ addr = 0x80000000 | (bus << 16) | (devfn << 8) | (offset & 0xfc); -+ stswap32((uint32_t *)bridge->cfg_addr, addr); -+ return bridge->cfg_data + (offset & 3); -+} -+ -+static uint8_t grackle_config_readb (pci_bridge_t *bridge, -+ uint8_t bus, uint8_t devfn, -+ uint8_t offset) -+{ -+ uint32_t addr; -+ addr = grackle_cfg_address(bridge, bus, devfn, offset); -+ return *((uint8_t *)addr); -+} -+ -+static void grackle_config_writeb (pci_bridge_t *bridge, -+ uint8_t bus, uint8_t devfn, -+ uint8_t offset, uint8_t val) -+{ -+ uint32_t addr; -+ addr = grackle_cfg_address(bridge, bus, devfn, offset); -+ *((uint8_t *)addr) = val; -+} -+ -+static uint16_t grackle_config_readw (pci_bridge_t *bridge, -+ uint8_t bus, uint8_t devfn, -+ uint8_t offset) -+{ -+ uint32_t addr; -+ addr = grackle_cfg_address(bridge, bus, devfn, offset); -+ return ldswap16((uint16_t *)addr); -+} -+ -+static void grackle_config_writew (pci_bridge_t *bridge, -+ uint8_t bus, uint8_t devfn, -+ uint8_t offset, uint16_t val) -+{ -+ uint32_t addr; -+ addr = grackle_cfg_address(bridge, bus, devfn, offset); -+ stswap16((uint16_t *)addr, val); -+} -+ -+static uint32_t grackle_config_readl (pci_bridge_t *bridge, -+ uint8_t bus, uint8_t devfn, -+ uint8_t offset) -+{ -+ uint32_t addr; -+ addr = grackle_cfg_address(bridge, bus, devfn, offset); -+ return ldswap32((uint32_t *)addr); -+} -+ -+static void grackle_config_writel (pci_bridge_t *bridge, -+ uint8_t bus, uint8_t devfn, -+ uint8_t offset, uint32_t val) -+{ -+ uint32_t addr; -+ -+ addr = grackle_cfg_address(bridge, bus, devfn, offset); -+ stswap32((uint32_t *)addr, val); -+} -+ -+static pci_ops_t grackle_pci_ops = { -+ &grackle_config_readb, &grackle_config_writeb, -+ &grackle_config_readw, &grackle_config_writew, -+ &grackle_config_readl, &grackle_config_writel, -+}; -+ - static inline uint8_t pci_config_readb (pci_bridge_t *bridge, - uint8_t bus, uint8_t devfn, - uint8_t offset) -@@ -466,12 +540,22 @@ - }, - }; - -+static int ide_config_cb2 (pci_device_t *device) -+{ -+ OF_finalize_pci_ide(device->common.OF_private, -+ device->regions[0] & ~0x0000000F, -+ device->regions[1] & ~0x0000000F, -+ device->regions[2] & ~0x0000000F, -+ device->regions[3] & ~0x0000000F); -+ return 0; -+} -+ - static pci_dev_t ide_devices[] = { - { -- 0x8086, 0x0100, -- NULL, "Qemu IDE", "Qemu IDE", "ide", -+ 0x1095, 0x0646, /* CMD646 IDE controller */ -+ "pci-ide", "pci-ata", NULL, NULL, - 0, 0, 0, -- NULL, NULL, -+ ide_config_cb2, NULL, - }, - { - 0xFFFF, 0xFFFF, -@@ -481,7 +565,9 @@ - }, - }; - --static int ide_config_cb (pci_device_t *device) -+#if 0 -+/* should base it on PCI ID, not on arch */ -+static int ide_config_cb (unused pci_device_t *device) - { - printf("Register IDE controller\n"); - switch (arch) { -@@ -491,14 +577,8 @@ - device->common.OF_private); - break; - default: -- ide_pci_pc_register(device->regions[0] & ~0x0000000F, -- device->regions[1] & ~0x0000000F, -- device->regions[2] & ~0x0000000F, -- device->regions[3] & ~0x0000000F, -- device->common.OF_private); - break; - } -- - return 0; - } - -@@ -512,16 +592,12 @@ - device->common.OF_private); - break; - default: -- ide_pci_pc_register(device->regions[0] & ~0x0000000F, -- device->regions[1] & ~0x0000000F, -- device->regions[2] & ~0x0000000F, -- device->regions[3] & ~0x0000000F, -- device->common.OF_private); - break; - } - - return 0; - } -+#endif - - static pci_subclass_t mass_subclass[] = { - { -@@ -530,7 +606,7 @@ - }, - { - 0x01, "IDE controller", "ide", ide_devices, NULL, -- &ide_config_cb, NULL, -+ NULL, NULL, - }, - { - 0x02, "Floppy disk controller", NULL, NULL, NULL, -@@ -546,7 +622,7 @@ - }, - { - 0x05, "ATA controller", "ata", NULL, NULL, -- &ata_config_cb, NULL, -+ NULL, NULL, - }, - { - 0x80, "misc mass-storage controller", NULL, NULL, NULL, -@@ -646,7 +722,9 @@ - /* VGA 640x480x16 */ - OF_vga_register(device->common.device->name, - device->regions[0] & ~0x0000000F, -- vga_width, vga_height, vga_depth); -+ vga_width, vga_height, vga_depth, -+ device->regions[6] & ~0x0000000F, -+ device->sizes[6]); - } - vga_console_register(); - -@@ -750,6 +828,13 @@ - NULL, &PREP_pci_ops, - }; - -+pci_dev_t grackle_fake_bridge = { -+ 0xFFFF, 0xFFFF, -+ "pci", "pci-bridge", "DEC,21154", "DEC,21154.pci-bridge", -+ -1, -1, -1, -+ NULL, &grackle_pci_ops, -+}; -+ - static pci_dev_t hbrg_devices[] = { - { - 0x106B, 0x0020, NULL, -@@ -758,8 +843,8 @@ - NULL, &uninorth_agp_fake_bridge, - }, - { -- 0x106B, 0x001F, -- NULL, "pci", "AAPL,UniNorth", "uni-north", -+ 0x106B, 0x001F, NULL, -+ "pci", "AAPL,UniNorth", "uni-north", - 3, 2, 1, - NULL, &uninorth_fake_bridge, - }, -@@ -770,10 +855,10 @@ - NULL, &uninorth_fake_bridge, - }, - { -- 0x1011, 0x0026, NULL, -- "pci-bridge", NULL, NULL, -+ 0x1057, 0x0002, "pci", -+ "pci", "MOT,MPC106", "grackle", - 3, 2, 1, -- NULL, &PREP_pci_ops, -+ NULL, &grackle_fake_bridge, - }, - { - 0x1057, 0x4801, NULL, -@@ -1443,7 +1528,14 @@ - } - - static const pci_dev_t misc_pci[] = { -- /* Apple Mac-io controller */ -+ /* Paddington Mac I/O */ -+ { -+ 0x106B, 0x0017, -+ "mac-io", "mac-io", "AAPL,343S1211", "paddington\1heathrow", -+ 1, 1, 1, -+ &macio_config_cb, NULL, -+ }, -+ /* KeyLargo Mac I/O */ - { - 0x106B, 0x0022, - "mac-io", "mac-io", "AAPL,Keylargo", "Keylargo", -@@ -1599,7 +1691,7 @@ - uint8_t min_grant, uint8_t max_latency, - int irq_line) - { -- uint32_t cmd; -+ uint32_t cmd, addr; - int i; - - device->min_grant = min_grant; -@@ -1611,22 +1703,28 @@ - printf("MAP PCI device %d:%d to IRQ %d\n", - device->bus, device->devfn, irq_line); - } -- for (i = 0; i < 6; i++) { -+ for (i = 0; i < 7; i++) { - if ((device->regions[i] & ~0xF) != 0x00000000 && - (device->regions[i] & ~0xF) != 0xFFFFFFF0) { - printf("Map PCI device %d:%d %d to %0x %0x (%s)\n", - device->bus, device->devfn, i, - device->regions[i], device->sizes[i], -- device->regions[i] & 0x00000001 ? "I/O" : "memory"); -+ (device->regions[i] & 0x00000001) && i != 6 ? "I/O" : -+ "memory"); -+ if (i != 6) { - cmd = pci_config_readl(bridge, device->bus, device->devfn, 0x04); - if (device->regions[i] & 0x00000001) - cmd |= 0x00000001; - else - cmd |= 0x00000002; - pci_config_writel(bridge, device->bus, device->devfn, 0x04, cmd); -+ } -+ if (i == 6) -+ addr = 0x30; /* PCI ROM */ -+ else -+ addr = 0x10 + (i * sizeof(uint32_t)); - pci_config_writel(bridge, device->bus, device->devfn, -- 0x10 + (i * sizeof(uint32_t)), -- device->regions[i]); -+ addr, device->regions[i]); - } - } - } -@@ -1900,7 +1998,7 @@ - goto out; - } - ret = (pci_u_t *)newd; -- max_areas = 6; -+ max_areas = 7; - /* register PCI device in OF tree */ - if (bridge->dev.common.type == PCI_FAKE_BRIDGE) { - newd->common.OF_private = -@@ -1927,6 +2025,9 @@ - /* Handle 64 bits memory mapping */ - continue; - } -+ if (i == 6) -+ addr = 0x30; /* PCI ROM */ -+ else - addr = 0x10 + (i * sizeof(uint32_t)); - /* Get region size - * Note: we assume it's always a power of 2 -@@ -1935,7 +2036,7 @@ - smask = pci_config_readl(bridge, bus, devfn, addr); - if (smask == 0x00000000 || smask == 0xFFFFFFFF) - continue; -- if (smask & 0x00000001) { -+ if ((smask & 0x00000001) != 0 && i != 6) { - /* I/O space */ - base = io_base; - /* Align to a minimum of 256 bytes (arbitrary) */ -@@ -1947,6 +2048,8 @@ - /* Align to a minimum of 64 kB (arbitrary) */ - min_align = 1 << 16; - amask = 0x0000000F; -+ if (i == 6) -+ smask |= 1; /* PCI ROM enable */ - } - omask = smask & amask; - smask &= ~amask; -@@ -1980,7 +2083,10 @@ - if (irq_pin > 0) { - /* assign the IRQ */ - irq_pin = ((devfn >> 3) + irq_pin - 1) & 3; -- if (arch == ARCH_PREP) { -+ /* XXX: should base it on the PCI bridge type, not the arch */ -+ switch(arch) { -+ case ARCH_PREP: -+ { - int elcr_port, val; - irq_line = prep_pci_irqs[irq_pin]; - /* set the IRQ to level-sensitive */ -@@ -1988,14 +2094,22 @@ - val = inb(elcr_port); - val |= 1 << (irq_line & 7); - outb(elcr_port, val); -- } else { -+ } -+ break; -+ case ARCH_MAC99: - irq_line = pmac_pci_irqs[irq_pin]; -+ break; -+ case ARCH_HEATHROW: -+ irq_line = heathrow_pci_irqs[irq_pin]; -+ break; -+ default: -+ break; - } - } - update_device: - pci_update_device(bridge, newd, min_grant, max_latency, irq_line); - OF_finalize_pci_device(newd->common.OF_private, bus, devfn, -- newd->regions, newd->sizes); -+ newd->regions, newd->sizes, irq_line); - /* Call special inits if needed */ - if (dev->config_cb != NULL) - (*dev->config_cb)(newd); -@@ -2049,6 +2163,32 @@ - case ARCH_CHRP: - /* TODO */ - break; -+ case ARCH_HEATHROW: -+ dev = pci_find_device(0x06, 0x00, 0xFF, checkv, checkp); -+ if (dev == NULL) -+ return -1; -+ fake_host = pci_add_host(hostp, dev, -+ (0x06 << 24) | (0x00 << 16) | (0xFF << 8)); -+ if (fake_host == NULL) -+ return -1; -+ fake_host->dev.common.type = PCI_FAKE_HOST; -+ dev = &grackle_fake_bridge; -+ if (dev == NULL) -+ goto free_fake_host; -+ fake_bridge = pci_add_bridge(fake_host, 0, 0, dev, -+ (0x06 << 24) | (0x04 << 16) | (0xFF << 8), -+ cfg_base, cfg_len, -+ cfg_base + 0x7ec00000, -+ cfg_base + 0x7ee00000, -+ mem_base, mem_len, -+ io_base, io_len, -+ rbase, rlen, -+ 0, -+ &grackle_pci_ops); -+ if (fake_bridge == NULL) -+ goto free_fake_host; -+ fake_bridge->dev.common.type = PCI_FAKE_BRIDGE; -+ break; - case ARCH_MAC99: - dev = pci_find_device(0x06, 0x00, 0xFF, checkv, checkp); - if (dev == NULL) -@@ -2167,6 +2307,30 @@ - case ARCH_CHRP: - /* TODO */ - break; -+ case ARCH_HEATHROW: -+ cfg_base = 0x80000000; -+ cfg_len = 0x7f000000; -+ mem_base = 0x80000000; -+ mem_len = 0x01000000; -+ io_base = 0xfe000000; -+ io_len = 0x00800000; -+#if 1 -+ rbase = 0xfd000000; -+ rlen = 0x01000000; -+#else -+ rbase = 0x00000000; -+ rlen = 0x01000000; -+#endif -+ if (pci_check_host(&pci_main, cfg_base, cfg_len, -+ mem_base, mem_len, io_base, io_len, rbase, rlen, -+ 0x1057, 0x0002) == 0) { -+ isa_io_base = io_base; -+ busnum++; -+ } -+ for (curh = pci_main; curh->next != NULL; curh = curh->next) -+ continue; -+ pci_check_devices(curh); -+ break; - case ARCH_MAC99: - /* We are supposed to have 3 host bridges: - * - the uninorth AGP bridge at 0xF0000000 diff --git a/roms/openhackware b/roms/openhackware new file mode 160000 index 0000000000..4be9d6e468 --- /dev/null +++ b/roms/openhackware @@ -0,0 +1 @@ +Subproject commit 4be9d6e46808336623188417aa0f21d9d34b208a From 21143b615aaf6f1661a1a6e69f00a39e456cc168 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20F=C3=A4rber?= Date: Sun, 2 Mar 2014 22:27:14 +0100 Subject: [PATCH 2/2] prep: Update ppc_rom.bin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Functionally, this is a revert of Jocelyn's r3309 / 55aa45ddde3283cdd781326d001f7456bf02f684 (Quickly hack PowerPC BIOS able to boot on CDROM again.), for which we do not have the sources. Therefore the sources used are v0.4.1 plus pc-bios/ohw.diff plus a workaround turning IDE errors into warnings. Signed-off-by: Andreas Färber --- pc-bios/ppc_rom.bin | Bin 524288 -> 524288 bytes roms/openhackware | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/pc-bios/ppc_rom.bin b/pc-bios/ppc_rom.bin index 0ad028249976d1f21231dce2d205721e3630e60f..d378d9a95e63fe843b7a6234fb45ddf6179198d3 100644 GIT binary patch literal 524288 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 z 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 zFB%r?w0^tvovRJcgf+wXd+rbP*K7RUceVbU2|oDa7IFvyAs_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@FKnMr{As_^VfDjM@LO=)z0U;m+ zgn$qb0zyCt2mv7=1cZPP5CTF#2nYcoAOwVf5D)@F;Qwuh4sj5M!6=SDXwg_Ko&&52 zL!d|?I1bQ&Si%f$rb*2NVF?NY2GwAC6F3VNv8>eW1hvn9-#;%u3Q&Lo6rcbFC_n)U zP=Epypa2CZKmiI+AVnYpV2Ytr#}4X(nYjyREL{GC)c$)i*P=2H;Woe_w}5WO)|`dg zm6*&+AlomXn$X63XdhcI;gk<;{f4}KAeRWg*sc0*-`ZMCR~Xoo?fgv>Sch)(2jbXO A@Bjb+ literal 524288 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

F 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 d+v~!0VXcXI(<{8J*ndH!|JP)xDn1