patch-2.2.15 linux/arch/alpha/kernel/core_irongate.c
Next file: linux/arch/alpha/kernel/core_lca.c
Previous file: linux/arch/alpha/kernel/core_cia.c
Back to the patch index
Back to the overall index
- Lines: 47
- Date:
Fri Apr 21 12:45:44 2000
- Orig file:
v2.2.14/arch/alpha/kernel/core_irongate.c
- Orig date:
Tue Jan 4 21:18:38 2000
diff -u --new-file --recursive --exclude-from ../../exclude v2.2.14/arch/alpha/kernel/core_irongate.c linux/arch/alpha/kernel/core_irongate.c
@@ -301,35 +301,21 @@
void __init
irongate_init_arch(unsigned long *mem_start, unsigned long *mem_end)
{
- struct linux_hose_info *hose;
-
irongate_register_dump(__FUNCTION__);
- /* Align memory to cache line; we'll be allocating from it. */
-
- *mem_start = (*mem_start | 31) + 1;
-
- /*
- * Irongate only supports one PCI bus but do the hose thing anyway.
- * Anything to do for AGP???
- */
-
- hose = (struct linux_hose_info *) *mem_start;
- *mem_start = (unsigned long)(hose + 1);
- memset(hose, 0, sizeof(*hose));
- hose->pci_io_space = IRONGATE_IO;
- hose->pci_mem_space = IRONGATE_MEM;
- hose->pci_config_space = IRONGATE_CONF;
- hose->pci_sparse_space = 0;
- hose->pci_hose_index = 0;
-
- /* add it to the hose list for bios32.[ch] */
-
- *hose_tail = hose;
- hose_tail = &hose->next;
-
IRONGATE0->stat_cmd = IRONGATE0->stat_cmd & ~0x100;
irongate_pci_clr_err();
+
+ /* Tell userland where I/O space is located. For some reason,
+ the 40-bit PIO bias that we use in the kernel through KSEG
+ didn't work for the page table based user mappings. So make
+ sure we get the 43-bit PIO bias. */
+ default_hose.pci_sparse_io_space = 0;
+ default_hose.pci_sparse_mem_space = 0;
+ default_hose.pci_dense_io_space
+ = (IRONGATE_IO & 0xffffffffff) | 0x80000000000;
+ default_hose.pci_dense_mem_space
+ = (IRONGATE_MEM & 0xffffffffff) | 0x80000000000;
}
int
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)