void __init pplus_setup_hose(void) { struct pci_controller* hose; hose = pcibios_alloc_controller(); if (!hose) return; hose->first_busno = 0; hose->last_busno = 0xff; hose->pci_mem_offset = PREP_ISA_MEM_BASE; hose->io_base_virt = (void *)PREP_ISA_IO_BASE; pplus_init_resource(&hose->io_resource, 0x00000000, 0x0fffffff, IORESOURCE_IO); pplus_init_resource(&hose->mem_resources[0], 0xc0000000, 0xfdffffff, IORESOURCE_MEM); hose->io_space.start = 0x00000000; hose->io_space.end = 0x0fffffff; hose->mem_space.start = 0x00000000; hose->mem_space.end = 0x3cfbffff; /* MPIC at 0x3cfc0000-0x3dffffff */ setup_indirect_pci(hose, 0x80000cf8, 0x80000cfc); pplus_set_VIA_IDE_legacy(); hose->last_busno = pciauto_bus_scan(hose, hose->first_busno); ppc_md.pcibios_fixup = pplus_pcibios_fixup; ppc_md.pci_swizzle = common_swizzle; pplus_set_board_type(); }
static void __init pplus_setup_arch(void) { struct pci_controller *hose; if (ppc_md.progress) ppc_md.progress("pplus_setup_arch: enter", 0); /* init to some ~sane value until calibrate_delay() runs */ loops_per_jiffy = 50000000; if (ppc_md.progress) ppc_md.progress("pplus_setup_arch: find_bridges", 0); /* Setup PCI host bridge */ pplus_find_bridges(); hose = pci_bus_to_hose(0); isa_io_base = (ulong) hose->io_base_virt; if (ppc_md.progress) ppc_md.progress("pplus_setup_arch: set_board_type", 0); pplus_set_board_type(); /* Enable L2. Assume we don't need to flush -- Cort */ *(unsigned char *)(PPLUS_L2_CONTROL_REG) |= 3; #ifdef CONFIG_BLK_DEV_INITRD if (initrd_start) ROOT_DEV = Root_RAM0; else #endif #ifdef CONFIG_ROOT_NFS ROOT_DEV = Root_NFS; #else ROOT_DEV = Root_SDA2; #endif printk(KERN_INFO "Motorola PowerPlus Platform\n"); printk(KERN_INFO "Port by MontaVista Software, Inc. ([email protected])\n"); #ifdef CONFIG_VGA_CONSOLE /* remap the VGA memory */ vgacon_remap_base = (unsigned long)ioremap(PPLUS_ISA_MEM_BASE, 0x08000000); conswitchp = &vga_con; #endif #ifdef CONFIG_PPCBUG_NVRAM /* Read in NVRAM data */ init_prep_nvram(); /* if no bootargs, look in NVRAM */ if (cmd_line[0] == '\0') { char *bootargs; bootargs = prep_nvram_get_var("bootargs"); if (bootargs != NULL) { strcpy(cmd_line, bootargs); /* again.. */ strcpy(saved_command_line, cmd_line); } } #endif if (ppc_md.progress) ppc_md.progress("pplus_setup_arch: exit", 0); }