static void __init sandpoint_find_bridges(void) { struct pci_controller *hose; hose = pcibios_alloc_controller(); if (!hose) return; hose->first_busno = 0; hose->last_busno = 0xff; if (mpc10x_bridge_init(hose, MPC10X_MEM_MAP_B, MPC10X_MEM_MAP_B, MPC10X_MAPB_EUMB_BASE) == 0) { /* Do early winbond init, then scan PCI bus */ sandpoint_setup_winbond_83553(hose); hose->last_busno = pciauto_bus_scan(hose, hose->first_busno); ppc_md.pcibios_fixup = NULL; ppc_md.pcibios_fixup_bus = NULL; ppc_md.pci_swizzle = common_swizzle; if (sandpoint_is_x2) { ppc_md.pci_map_irq = x2_map_irq; ppc_md.pci_exclude_device = x2_exclude_device; } else ppc_md.pci_map_irq = x3_map_irq; } else { if (ppc_md.progress) ppc_md.progress("Bridge init failed", 0x100); printk("Host bridge init failed\n"); } return; }
static void __init lopec_find_bridges(void) { struct pci_controller *hose; hose = pcibios_alloc_controller(); if (!hose) return; hose->first_busno = 0; hose->last_busno = 0xff; if (mpc10x_bridge_init(hose, MPC10X_MEM_MAP_B, MPC10X_MEM_MAP_B, MPC10X_MAPB_EUMB_BASE) == 0) { hose->mem_resources[0].end = 0xffffffff; lopec_setup_winbond_83553(hose); hose->last_busno = pciauto_bus_scan(hose, hose->first_busno); ppc_md.pci_swizzle = common_swizzle; ppc_md.pci_map_irq = lopec_map_irq; } }
int __init pcore_find_bridges(void) { struct pci_controller* hose; int host_bridge, board_type; hose = pcibios_alloc_controller(); if (!hose) return 0; mpc10x_bridge_init(hose, MPC10X_MEM_MAP_B, MPC10X_MEM_MAP_B, MPC10X_MAPB_EUMB_BASE); /* Determine board type */ early_read_config_dword(hose, 0, PCI_DEVFN(0,0), PCI_VENDOR_ID, &host_bridge); if (host_bridge == MPC10X_BRIDGE_106) board_type = PCORE_TYPE_6750; else /* MPC10X_BRIDGE_107 */ board_type = PCORE_TYPE_680; hose->last_busno = pciauto_bus_scan(hose, hose->first_busno); ppc_md.pcibios_fixup = pcore_pcibios_fixup; ppc_md.pci_swizzle = common_swizzle; if (board_type == PCORE_TYPE_6750) ppc_md.pci_map_irq = pcore_6750_map_irq; else /* PCORE_TYPE_680 */ ppc_md.pci_map_irq = pcore_680_map_irq; return board_type; }