patch-2.4.5 linux/arch/alpha/kernel/core_tsunami.c
Next file: linux/arch/alpha/kernel/entry.S
Previous file: linux/arch/alpha/kernel/core_cia.c
Back to the patch index
Back to the overall index
- Lines: 58
- Date:
Thu May 24 15:24:37 2001
- Orig file:
v2.4.4/linux/arch/alpha/kernel/core_tsunami.c
- Orig date:
Fri Mar 2 11:12:07 2001
diff -u --recursive --new-file v2.4.4/linux/arch/alpha/kernel/core_tsunami.c linux/arch/alpha/kernel/core_tsunami.c
@@ -11,6 +11,7 @@
#include <linux/pci.h>
#include <linux/sched.h>
#include <linux/init.h>
+#include <linux/bootmem.h>
#include <asm/ptrace.h>
#include <asm/system.h>
@@ -222,7 +223,6 @@
it's the shifted tag bits. */
value = (start & 0xffff0000) >> 12;
- wmb();
*csr = value;
mb();
*csr;
@@ -278,6 +278,16 @@
#define FN __FUNCTION__
static void __init
+tsunami_monster_window_enable(tsunami_pchip * pchip)
+{
+ volatile unsigned long * csr = &pchip->pctl.csr;
+
+ *csr |= pctl_m_mwin;
+ mb();
+ *csr;
+}
+
+static void __init
tsunami_init_one_pchip(tsunami_pchip *pchip, int index)
{
struct pci_controller *hose;
@@ -358,7 +368,13 @@
* address range.
*/
hose->sg_isa = iommu_arena_new(hose, 0x00800000, 0x00800000, 0);
- hose->sg_pci = iommu_arena_new(hose, 0xc0000000, 0x08000000, 0);
+ {
+ unsigned long size = 0x08000000;
+ if (max_low_pfn > (0x80000000 >> PAGE_SHIFT))
+ size = 0x40000000;
+ hose->sg_pci = iommu_arena_new(hose, 0xc0000000, size, 0);
+ }
+
__direct_map_base = 0x40000000;
__direct_map_size = 0x80000000;
@@ -379,6 +395,9 @@
pchip->tba[3].csr = virt_to_phys(hose->sg_pci->ptes);
tsunami_pci_tbi(hose, 0, -1);
+
+ /* Enable the Monster Window to make DAC pci64 possible. */
+ tsunami_monster_window_enable(pchip);
}
void __init
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)