[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [XenPPC] [pushed] [ppc] rename iommu_u3.c to dart_u3.c
changeset: 9959:2f6619a3cc8e10718e71c3e99ab4423fbeabeb2e tag: tip user: jimix@xxxxxxxxxxxxxxxxxxxxx date: Fri Apr 28 17:47:06 2006 -0400 files: xen/arch/ppc/Makefile xen/arch/ppc/dart_u3.c xen/arch/ppc/iommu_u3.c description: [ppc] rename iommu_u3.c to dart_u3.c diff -r 786d4a84bdad6467f780967e7725581f44678d9a -r 2f6619a3cc8e10718e71c3e99ab4423fbeabeb2e xen/arch/ppc/Makefile --- a/xen/arch/ppc/Makefile Fri Apr 28 17:44:52 2006 -0400 +++ b/xen/arch/ppc/Makefile Fri Apr 28 17:47:06 2006 -0400 @@ -9,6 +9,7 @@ obj-y += bitops.o obj-y += bitops.o obj-y += boot_of.o obj-y += dart.o +obj-y += dart_u3.o obj-y += dart_u4.o obj-y += delay.o obj-y += dom0_ops.o @@ -21,7 +22,6 @@ obj-y += htab.o obj-y += htab.o obj-y += io.o obj-y += iommu.o -obj-y += iommu_u3.o obj-y += irq.o obj-y += mambo.o obj-y += mm.o diff -r 786d4a84bdad6467f780967e7725581f44678d9a -r 2f6619a3cc8e10718e71c3e99ab4423fbeabeb2e xen/arch/ppc/dart_u3.c --- /dev/null Thu Jan 1 00:00:00 1970 +0000 +++ b/xen/arch/ppc/dart_u3.c Fri Apr 28 17:47:06 2006 -0400 @@ -0,0 +1,106 @@ +/* + * Copyright (C) 2005 Jimi Xenidis <jimix@xxxxxxxxxxxxxx>, IBM Corporation + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#undef DEBUG + +#include <xen/config.h> +#include <xen/types.h> +#include <xen/sched.h> +#include <xen/mm.h> +#include <public/xen.h> +#include <asm/io.h> +#include <asm/current.h> +#include "tce.h" +#include "iommu.h" +#include "dart.h" + +union dart_ctl { + u32 dc_word; + struct { + u32 dc_base:20; + u32 dc_stop_access:1; + u32 dc_invtlb:1; + u32 dc_enable:1; + u32 dc_size:9; + } reg; +}; + +static u32 volatile *dart_ctl_reg; + +static void u3_inv_all(void) +{ + union dart_ctl dc; + ulong r = 0; + int l = 0; + + for (;;) { + dc.dc_word = in_32(dart_ctl_reg); + dc.reg.dc_invtlb = 1; + out_32(dart_ctl_reg, dc.dc_word); + + do { + dc.dc_word = in_32(dart_ctl_reg); + r++; + } while ((dc.reg.dc_invtlb == 1) && (r < (1 << l))); + + if (r == (1 << l)) { + if (l < 4) { + l++; + dc.dc_word = in_32(dart_ctl_reg); + dc.reg.dc_invtlb = 0; + out_32(dart_ctl_reg, dc.dc_word); + continue; + } else { + panic(" broken U3???\n"); + } + } + return; + } +} + +static void u3_inv_entry(ulong pg) +{ + /* sadly single entry invalidation has been reported not to work */ + u3_inv_all(); +} + +static struct dart_ops u3_ops = { + .do_inv_all = u3_inv_all, + .do_inv_entry = u3_inv_entry, +}; + +struct dart_ops *u3_init(ulong base, ulong table, ulong tpgs) +{ + union dart_ctl dc; + + dart_ctl_reg = (u32 *)base; + + dc.dc_word = 0; + + dc.reg.dc_base = table >> PAGE_SHIFT; + dc.reg.dc_size = 1 << tpgs; + dc.reg.dc_enable = 1; + + + printk("Initializing DART Model U3: reg: %p word: %x\n", + dart_ctl_reg, dc.dc_word); + + out_32(dart_ctl_reg, dc.dc_word); + + return &u3_ops; +} diff -r 786d4a84bdad6467f780967e7725581f44678d9a -r 2f6619a3cc8e10718e71c3e99ab4423fbeabeb2e xen/arch/ppc/iommu_u3.c --- a/xen/arch/ppc/iommu_u3.c Fri Apr 28 17:44:52 2006 -0400 +++ /dev/null Thu Jan 1 00:00:00 1970 +0000 @@ -1,106 +0,0 @@ -/* - * Copyright (C) 2005 Jimi Xenidis <jimix@xxxxxxxxxxxxxx>, IBM Corporation - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#undef DEBUG - -#include <xen/config.h> -#include <xen/types.h> -#include <xen/sched.h> -#include <xen/mm.h> -#include <public/xen.h> -#include <asm/io.h> -#include <asm/current.h> -#include "tce.h" -#include "iommu.h" -#include "dart.h" - -union dart_ctl { - u32 dc_word; - struct { - u32 dc_base:20; - u32 dc_stop_access:1; - u32 dc_invtlb:1; - u32 dc_enable:1; - u32 dc_size:9; - } reg; -}; - -static u32 volatile *dart_ctl_reg; - -static void u3_inv_all(void) -{ - union dart_ctl dc; - ulong r = 0; - int l = 0; - - for (;;) { - dc.dc_word = in_32(dart_ctl_reg); - dc.reg.dc_invtlb = 1; - out_32(dart_ctl_reg, dc.dc_word); - - do { - dc.dc_word = in_32(dart_ctl_reg); - r++; - } while ((dc.reg.dc_invtlb == 1) && (r < (1 << l))); - - if (r == (1 << l)) { - if (l < 4) { - l++; - dc.dc_word = in_32(dart_ctl_reg); - dc.reg.dc_invtlb = 0; - out_32(dart_ctl_reg, dc.dc_word); - continue; - } else { - panic(" broken U3???\n"); - } - } - return; - } -} - -static void u3_inv_entry(ulong pg) -{ - /* sadly single entry invalidation has been reported not to work */ - u3_inv_all(); -} - -static struct dart_ops u3_ops = { - .do_inv_all = u3_inv_all, - .do_inv_entry = u3_inv_entry, -}; - -struct dart_ops *u3_init(ulong base, ulong table, ulong tpgs) -{ - union dart_ctl dc; - - dart_ctl_reg = (u32 *)base; - - dc.dc_word = 0; - - dc.reg.dc_base = table >> PAGE_SHIFT; - dc.reg.dc_size = 1 << tpgs; - dc.reg.dc_enable = 1; - - - printk("Initializing DART Model U3: reg: %p word: %x\n", - dart_ctl_reg, dc.dc_word); - - out_32(dart_ctl_reg, dc.dc_word); - - return &u3_ops; -} _______________________________________________ Xen-ppc-devel mailing list Xen-ppc-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-ppc-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |