From owner-p4-projects@FreeBSD.ORG Sun Jul 29 18:31:34 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id ED50D16A41F; Sun, 29 Jul 2007 18:31:33 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BCB5A16A41A for ; Sun, 29 Jul 2007 18:31:33 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id A7E5813C458 for ; Sun, 29 Jul 2007 18:31:33 +0000 (UTC) (envelope-from rpaulo@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l6TIVX8G062401 for ; Sun, 29 Jul 2007 18:31:33 GMT (envelope-from rpaulo@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l6TIVV1M062397 for perforce@freebsd.org; Sun, 29 Jul 2007 18:31:31 GMT (envelope-from rpaulo@FreeBSD.org) Date: Sun, 29 Jul 2007 18:31:31 GMT Message-Id: <200707291831.l6TIVV1M062397@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to rpaulo@FreeBSD.org using -f From: Rui Paulo To: Perforce Change Reviews Cc: Subject: PERFORCE change 124321 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 29 Jul 2007 18:31:34 -0000 http://perforce.freebsd.org/chv.cgi?CH=124321 Change 124321 by rpaulo@rpaulo_epsilon on 2007/07/29 18:31:07 IFC Affected files ... .. //depot/projects/soc2007/rpaulo-macbook/amd64/amd64/trap.c#5 integrate .. //depot/projects/soc2007/rpaulo-macbook/arm/arm/busdma_machdep.c#5 integrate .. //depot/projects/soc2007/rpaulo-macbook/arm/arm/cpufunc.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/arm/arm/cpufunc_asm_xscale_c3.S#1 branch .. //depot/projects/soc2007/rpaulo-macbook/arm/arm/elf_trampoline.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/arm/arm/identcpu.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/arm/arm/intr.c#3 integrate .. //depot/projects/soc2007/rpaulo-macbook/arm/arm/pmap.c#5 integrate .. //depot/projects/soc2007/rpaulo-macbook/arm/arm/vm_machdep.c#4 integrate .. //depot/projects/soc2007/rpaulo-macbook/arm/conf/CRB#1 branch .. //depot/projects/soc2007/rpaulo-macbook/arm/include/armreg.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/arm/include/cpufunc.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/arm/include/pmap.h#4 integrate .. //depot/projects/soc2007/rpaulo-macbook/arm/include/pte.h#3 integrate .. //depot/projects/soc2007/rpaulo-macbook/arm/xscale/i80321/i80321_pci.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/arm/xscale/i80321/i80321_timer.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/arm/xscale/i80321/i80321_wdog.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/arm/xscale/i80321/i80321var.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/arm/xscale/i80321/obio.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/arm/xscale/i8134x/crb_machdep.c#1 branch .. //depot/projects/soc2007/rpaulo-macbook/arm/xscale/i8134x/files.crb#1 branch .. //depot/projects/soc2007/rpaulo-macbook/arm/xscale/i8134x/files.i81342#1 branch .. //depot/projects/soc2007/rpaulo-macbook/arm/xscale/i8134x/i81342.c#1 branch .. //depot/projects/soc2007/rpaulo-macbook/arm/xscale/i8134x/i81342_mcu.c#1 branch .. //depot/projects/soc2007/rpaulo-macbook/arm/xscale/i8134x/i81342_pci.c#1 branch .. //depot/projects/soc2007/rpaulo-macbook/arm/xscale/i8134x/i81342_space.c#1 branch .. //depot/projects/soc2007/rpaulo-macbook/arm/xscale/i8134x/i81342reg.h#1 branch .. //depot/projects/soc2007/rpaulo-macbook/arm/xscale/i8134x/i81342var.h#1 branch .. //depot/projects/soc2007/rpaulo-macbook/arm/xscale/i8134x/obio.c#1 branch .. //depot/projects/soc2007/rpaulo-macbook/arm/xscale/i8134x/obio_space.c#1 branch .. //depot/projects/soc2007/rpaulo-macbook/arm/xscale/i8134x/obiovar.h#1 branch .. //depot/projects/soc2007/rpaulo-macbook/arm/xscale/i8134x/std.crb#1 branch .. //depot/projects/soc2007/rpaulo-macbook/arm/xscale/i8134x/std.i81342#1 branch .. //depot/projects/soc2007/rpaulo-macbook/arm/xscale/i8134x/uart_bus_i81342.c#1 branch .. //depot/projects/soc2007/rpaulo-macbook/arm/xscale/i8134x/uart_cpu_i81342.c#1 branch .. //depot/projects/soc2007/rpaulo-macbook/conf/Makefile.arm#3 integrate .. //depot/projects/soc2007/rpaulo-macbook/conf/NOTES#15 integrate .. //depot/projects/soc2007/rpaulo-macbook/conf/files#21 integrate .. //depot/projects/soc2007/rpaulo-macbook/conf/options#12 integrate .. //depot/projects/soc2007/rpaulo-macbook/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c#7 integrate .. //depot/projects/soc2007/rpaulo-macbook/contrib/pf/net/if_pfsync.c#3 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/ath/ath_rate/amrr/amrr.c#3 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/ath/ath_rate/onoe/onoe.c#4 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/ce/if_ce.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/cp/if_cp.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/ctau/if_ct.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/cx/if_cx.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/em/if_em.c#8 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/if_ndis/if_ndis.c#5 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/iscsi/initiator/isc_cam.c#1 branch .. //depot/projects/soc2007/rpaulo-macbook/dev/iscsi/initiator/isc_sm.c#1 branch .. //depot/projects/soc2007/rpaulo-macbook/dev/iscsi/initiator/isc_soc.c#1 branch .. //depot/projects/soc2007/rpaulo-macbook/dev/iscsi/initiator/isc_subr.c#1 branch .. //depot/projects/soc2007/rpaulo-macbook/dev/iscsi/initiator/iscsi.c#1 branch .. //depot/projects/soc2007/rpaulo-macbook/dev/iscsi/initiator/iscsi.h#1 branch .. //depot/projects/soc2007/rpaulo-macbook/dev/iscsi/initiator/iscsi_subr.c#1 branch .. //depot/projects/soc2007/rpaulo-macbook/dev/iscsi/initiator/iscsivar.h#1 branch .. //depot/projects/soc2007/rpaulo-macbook/dev/pci/pci.c#6 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/re/if_re.c#5 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/usb/if_udav.c#5 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/usb/ufoma.c#5 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/usb/ukbd.c#11 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/usb/ums.c#14 integrate .. //depot/projects/soc2007/rpaulo-macbook/dev/usb/usbdevs#20 integrate .. //depot/projects/soc2007/rpaulo-macbook/fs/devfs/devfs_vnops.c#6 integrate .. //depot/projects/soc2007/rpaulo-macbook/fs/fifofs/fifo_vnops.c#3 integrate .. //depot/projects/soc2007/rpaulo-macbook/fs/tmpfs/tmpfs_vfsops.c#7 integrate .. //depot/projects/soc2007/rpaulo-macbook/i386/i386/trap.c#5 integrate .. //depot/projects/soc2007/rpaulo-macbook/i386/isa/clock.c#5 integrate .. //depot/projects/soc2007/rpaulo-macbook/kern/kern_kse.c#5 integrate .. //depot/projects/soc2007/rpaulo-macbook/kern/kern_thread.c#6 integrate .. //depot/projects/soc2007/rpaulo-macbook/kern/subr_bus.c#3 integrate .. //depot/projects/soc2007/rpaulo-macbook/kern/uipc_domain.c#3 integrate .. //depot/projects/soc2007/rpaulo-macbook/kern/uipc_usrreq.c#5 integrate .. //depot/projects/soc2007/rpaulo-macbook/kern/vfs_mount.c#5 integrate .. //depot/projects/soc2007/rpaulo-macbook/kern/vfs_vnops.c#4 integrate .. //depot/projects/soc2007/rpaulo-macbook/modules/Makefile#13 integrate .. //depot/projects/soc2007/rpaulo-macbook/modules/iscsi/Makefile#1 branch .. //depot/projects/soc2007/rpaulo-macbook/modules/iscsi/initiator/Makefile#1 branch .. //depot/projects/soc2007/rpaulo-macbook/net/bpf.c#4 integrate .. //depot/projects/soc2007/rpaulo-macbook/net/if.c#3 integrate .. //depot/projects/soc2007/rpaulo-macbook/net/if_bridge.c#4 integrate .. //depot/projects/soc2007/rpaulo-macbook/net/if_bridgevar.h#3 integrate .. //depot/projects/soc2007/rpaulo-macbook/net/if_ethersubr.c#5 integrate .. //depot/projects/soc2007/rpaulo-macbook/net/if_lagg.c#8 integrate .. //depot/projects/soc2007/rpaulo-macbook/net/netisr.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/netgraph/netgraph.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/netgraph/ng_bpf.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/netgraph/ng_eiface.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet/ip_carp.c#4 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet/ip_dummynet.c#4 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet/ip_fw2.c#6 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet/ip_mroute.c#3 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet/sctp_asconf.c#10 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet/sctp_asconf.h#4 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet/sctp_input.c#15 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet/sctp_output.c#15 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet/sctp_pcb.c#15 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet/sctp_pcb.h#11 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet/sctp_structs.h#9 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet/sctp_timer.c#10 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet/sctp_usrreq.c#14 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet/sctputil.c#15 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet/sctputil.h#10 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet/tcp_input.c#11 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet/tcp_subr.c#11 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet/tcp_syncache.c#8 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet/tcp_syncache.h#1 branch .. //depot/projects/soc2007/rpaulo-macbook/netinet/tcp_usrreq.c#7 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet/tcp_var.h#8 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet6/sctp6_usrreq.c#14 integrate .. //depot/projects/soc2007/rpaulo-macbook/netinet6/udp6_usrreq.c#8 integrate .. //depot/projects/soc2007/rpaulo-macbook/nfsserver/nfs_srvsubs.c#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/nfsserver/nfs_syscalls.c#3 integrate .. //depot/projects/soc2007/rpaulo-macbook/sys/kernel.h#2 integrate .. //depot/projects/soc2007/rpaulo-macbook/sys/mutex.h#4 integrate .. //depot/projects/soc2007/rpaulo-macbook/sys/proc.h#6 integrate .. //depot/projects/soc2007/rpaulo-macbook/sys/vmmeter.h#6 integrate .. //depot/projects/soc2007/rpaulo-macbook/vm/vm_meter.c#5 integrate .. //depot/projects/soc2007/rpaulo-macbook/vm/vm_page.c#9 integrate .. //depot/projects/soc2007/rpaulo-macbook/vm/vnode_pager.c#4 integrate Differences ... ==== //depot/projects/soc2007/rpaulo-macbook/amd64/amd64/trap.c#5 (text+ko) ==== @@ -38,7 +38,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.318 2007/06/10 21:59:12 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/amd64/trap.c,v 1.319 2007/07/26 15:32:54 jhb Exp $"); /* * AMD64 Trap and System call handling @@ -159,7 +159,8 @@ { struct thread *td = curthread; struct proc *p = td->td_proc; - int i = 0, ucode = 0, type, code; + int i = 0, ucode = 0, code; + u_int type; register_t addr = 0; ksiginfo_t ksi; @@ -622,7 +623,8 @@ struct trapframe *frame; vm_offset_t eva; { - int code, type, ss; + int code, ss; + u_int type; long esp; struct soft_segment_descriptor softseg; char *msg; ==== //depot/projects/soc2007/rpaulo-macbook/arm/arm/busdma_machdep.c#5 (text+ko) ==== @@ -29,7 +29,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/busdma_machdep.c,v 1.33 2007/06/10 12:33:01 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/busdma_machdep.c,v 1.34 2007/07/27 14:46:43 cognet Exp $"); /* * ARM bus dma support routines @@ -763,8 +763,12 @@ if (__predict_true(pmap == pmap_kernel())) { (void) pmap_get_pde_pte(pmap, vaddr, &pde, &ptep); if (__predict_false(pmap_pde_section(pde))) { - curaddr = (*pde & L1_S_FRAME) | - (vaddr & L1_S_OFFSET); + if (*pde & L1_S_SUPERSEC) + curaddr = (*pde & L1_SUP_FRAME) | + (vaddr & L1_SUP_OFFSET); + else + curaddr = (*pde & L1_S_FRAME) | + (vaddr & L1_S_OFFSET); if (*pde & L1_S_CACHE_MASK) { map->flags &= ~DMAMAP_COHERENT; @@ -1087,36 +1091,36 @@ { char _tmp_cl[arm_dcache_align], _tmp_clend[arm_dcache_align]; - if (op & BUS_DMASYNC_PREWRITE) + if (op & BUS_DMASYNC_PREWRITE) { cpu_dcache_wb_range((vm_offset_t)buf, len); + cpu_l2cache_wb_range((vm_offset_t)buf, len); + } + if (op & BUS_DMASYNC_PREREAD) { + cpu_idcache_wbinv_range((vm_offset_t)buf, len); + cpu_l2cache_wbinv_range((vm_offset_t)buf, len); + } if (op & BUS_DMASYNC_POSTREAD) { - if ((vm_offset_t)buf & arm_dcache_align_mask) + if ((vm_offset_t)buf & arm_dcache_align_mask) { memcpy(_tmp_cl, (void *)((vm_offset_t)buf & ~ arm_dcache_align_mask), - (vm_offset_t)buf - ((vm_offset_t)buf &~ - arm_dcache_align_mask)); - if (((vm_offset_t)buf + len) & arm_dcache_align_mask) - memcpy(_tmp_cl, (void *)((vm_offset_t)buf & ~ - arm_dcache_align_mask), - (vm_offset_t)buf - ((vm_offset_t)buf &~ - arm_dcache_align_mask)); - if (((vm_offset_t)buf + len) & arm_dcache_align_mask) - memcpy(_tmp_clend, (void *)(((vm_offset_t)buf + len) & ~ - arm_dcache_align_mask), - (vm_offset_t)buf +len - (((vm_offset_t)buf + len) &~ - arm_dcache_align_mask)); + (vm_offset_t)buf & arm_dcache_align_mask); + } + if (((vm_offset_t)buf + len) & arm_dcache_align_mask) { + memcpy(_tmp_clend, (void *)((vm_offset_t)buf + len), + arm_dcache_align - (((vm_offset_t)(buf) + len) & + arm_dcache_align_mask)); + } cpu_dcache_inv_range((vm_offset_t)buf, len); + cpu_l2cache_inv_range((vm_offset_t)buf, len); + if ((vm_offset_t)buf & arm_dcache_align_mask) memcpy((void *)((vm_offset_t)buf & - ~arm_dcache_align_mask), - _tmp_cl, - (vm_offset_t)buf - ((vm_offset_t)buf &~ - arm_dcache_align_mask)); + ~arm_dcache_align_mask), _tmp_cl, + (vm_offset_t)buf & arm_dcache_align_mask); if (((vm_offset_t)buf + len) & arm_dcache_align_mask) - memcpy((void *)(((vm_offset_t)buf + len) & ~ - arm_dcache_align_mask), _tmp_clend, - (vm_offset_t)buf +len - (((vm_offset_t)buf + len) &~ - arm_dcache_align_mask)); + memcpy((void *)((vm_offset_t)buf + len), _tmp_clend, + arm_dcache_align - (((vm_offset_t)(buf) + len) & + arm_dcache_align_mask)); } } @@ -1131,14 +1135,20 @@ (void *)(bpage->vaddr_nocache != 0 ? bpage->vaddr_nocache : bpage->vaddr), bpage->datacount); - if (bpage->vaddr_nocache == 0) + if (bpage->vaddr_nocache == 0) { cpu_dcache_wb_range(bpage->vaddr, bpage->datacount); + cpu_l2cache_wb_range(bpage->vaddr, + bpage->datacount); + } } if (op & BUS_DMASYNC_POSTREAD) { - if (bpage->vaddr_nocache == 0) + if (bpage->vaddr_nocache == 0) { cpu_dcache_inv_range(bpage->vaddr, bpage->datacount); + cpu_l2cache_inv_range(bpage->vaddr, + bpage->datacount); + } bcopy((void *)(bpage->vaddr_nocache != 0 ? bpage->vaddr_nocache : bpage->vaddr), (void *)bpage->datavaddr, bpage->datacount); @@ -1175,10 +1185,6 @@ _bus_dmamap_sync_bp(dmat, map, op); if (map->flags & DMAMAP_COHERENT) return; - if ((op && BUS_DMASYNC_POSTREAD) && (map->len >= 2 * PAGE_SIZE)) { - cpu_dcache_wbinv_all(); - return; - } CTR3(KTR_BUSDMA, "%s: op %x flags %x", __func__, op, map->flags); switch(map->flags & DMAMAP_TYPE_MASK) { case DMAMAP_LINEAR: ==== //depot/projects/soc2007/rpaulo-macbook/arm/arm/cpufunc.c#2 (text+ko) ==== @@ -45,7 +45,7 @@ * Created : 30/01/97 */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/cpufunc.c,v 1.16 2007/02/11 22:24:54 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/cpufunc.c,v 1.17 2007/07/27 14:39:41 cognet Exp $"); #include #include @@ -147,6 +147,10 @@ arm7tdmi_cache_flushID, /* idcache_wbinv_all */ (void *)arm7tdmi_cache_flushID, /* idcache_wbinv_range */ + cpufunc_nullop, /* l2cache_wbinv_all */ + cpufunc_nullop, /* l2cache_wbinv_range */ + cpufunc_nullop, /* l2cache_inv_range */ + cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -205,6 +209,10 @@ arm8_cache_purgeID, /* idcache_wbinv_all */ (void *)arm8_cache_purgeID, /* idcache_wbinv_range */ + cpufunc_nullop, /* l2cache_wbinv_all */ + cpufunc_nullop, /* l2cache_wbinv_range */ + cpufunc_nullop, /* l2cache_inv_range */ + cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -262,6 +270,10 @@ arm9_idcache_wbinv_all, /* idcache_wbinv_all */ arm9_idcache_wbinv_range, /* idcache_wbinv_range */ + cpufunc_nullop, /* l2cache_wbinv_all */ + cpufunc_nullop, /* l2cache_wbinv_range */ + cpufunc_nullop, /* l2cache_inv_range */ + cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -320,6 +332,10 @@ arm10_idcache_wbinv_all, /* idcache_wbinv_all */ arm10_idcache_wbinv_range, /* idcache_wbinv_range */ + cpufunc_nullop, /* l2cache_wbinv_all */ + cpufunc_nullop, /* l2cache_wbinv_range */ + cpufunc_nullop, /* l2cache_inv_range */ + cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -378,6 +394,10 @@ sa1_cache_purgeID, /* idcache_wbinv_all */ sa1_cache_purgeID_rng, /* idcache_wbinv_range */ + cpufunc_nullop, /* l2cache_wbinv_all */ + cpufunc_nullop, /* l2cache_wbinv_range */ + cpufunc_nullop, /* l2cache_inv_range */ + cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -435,6 +455,10 @@ sa1_cache_purgeID, /* idcache_wbinv_all */ sa1_cache_purgeID_rng, /* idcache_wbinv_range */ + cpufunc_nullop, /* l2cache_wbinv_all */ + cpufunc_nullop, /* l2cache_wbinv_range */ + cpufunc_nullop, /* l2cache_inv_range */ + cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -492,6 +516,10 @@ sa1_cache_purgeID, /* idcache_wbinv_all */ sa1_cache_purgeID_rng, /* idcache_wbinv_range */ + cpufunc_nullop, /* l2cache_wbinv_all */ + cpufunc_nullop, /* l2cache_wbinv_range */ + cpufunc_nullop, /* l2cache_inv_range */ + cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -552,6 +580,10 @@ xscale_cache_purgeID, /* idcache_wbinv_all */ xscale_cache_purgeID_rng, /* idcache_wbinv_range */ + cpufunc_nullop, /* l2cache_wbinv_all */ + cpufunc_nullop, /* l2cache_wbinv_range */ + cpufunc_nullop, /* l2cache_inv_range */ + cpufunc_nullop, /* l2cache_wb_range */ /* Other functions */ @@ -602,15 +634,19 @@ /* Cache operations */ xscalec3_cache_syncI, /* icache_sync_all */ - xscale_cache_syncI_rng, /* icache_sync_range */ + xscalec3_cache_syncI_rng, /* icache_sync_range */ xscalec3_cache_purgeD, /* dcache_wbinv_all */ xscalec3_cache_purgeD_rng, /* dcache_wbinv_range */ xscale_cache_flushD_rng, /* dcache_inv_range */ xscalec3_cache_cleanD_rng, /* dcache_wb_range */ - xscalec3_cache_purgeID, /* idcache_wbinv_all */ + xscalec3_cache_purgeID, /* idcache_wbinv_all */ xscalec3_cache_purgeID_rng, /* idcache_wbinv_range */ + xscalec3_l2cache_purge, /* l2cache_wbinv_all */ + xscalec3_l2cache_purge_rng, /* l2cache_wbinv_range */ + xscalec3_l2cache_flush_rng, /* l2cache_inv_range */ + xscalec3_l2cache_clean_rng, /* l2cache_wb_range */ /* Other functions */ @@ -1889,9 +1925,7 @@ xscale_setup(args) char *args; { -#ifndef CPU_XSCALE_CORE3 uint32_t auxctl; -#endif int cpuctrl, cpuctrlmask; /* @@ -1911,7 +1945,8 @@ | CPU_CONTROL_WBUF_ENABLE | CPU_CONTROL_ROM_ENABLE | CPU_CONTROL_BEND_ENABLE | CPU_CONTROL_AFLT_ENABLE | CPU_CONTROL_LABT_ENABLE | CPU_CONTROL_BPRD_ENABLE - | CPU_CONTROL_CPCLK | CPU_CONTROL_VECRELOC; + | CPU_CONTROL_CPCLK | CPU_CONTROL_VECRELOC | \ + CPU_CONTROL_L2_ENABLE; #ifndef ARM32_DISABLE_ALIGNMENT_FAULTS cpuctrl |= CPU_CONTROL_AFLT_ENABLE; @@ -1925,6 +1960,9 @@ if (vector_page == ARM_VECTORS_HIGH) cpuctrl |= CPU_CONTROL_VECRELOC; +#ifdef CPU_XSCALE_CORE3 + cpuctrl |= CPU_CONTROL_L2_ENABLE; +#endif /* Clear out the cache */ cpu_idcache_wbinv_all(); @@ -1937,7 +1975,6 @@ /* cpu_control(cpuctrlmask, cpuctrl);*/ cpu_control(0xffffffff, cpuctrl); -#ifndef CPU_XSCALE_CORE3 /* Make sure write coalescing is turned on */ __asm __volatile("mrc p15, 0, %0, c1, c0, 1" : "=r" (auxctl)); @@ -1946,9 +1983,12 @@ #else auxctl &= ~XSCALE_AUXCTL_K; #endif +#ifdef CPU_XSCALE_CORE3 + auxctl |= XSCALE_AUXCTL_LLR; + auxctl |= XSCALE_AUXCTL_MD_MASK; +#endif __asm __volatile("mcr p15, 0, %0, c1, c0, 1" : : "r" (auxctl)); -#endif } #endif /* CPU_XSCALE_80200 || CPU_XSCALE_80321 || CPU_XSCALE_PXA2X0 || CPU_XSCALE_IXP425 CPU_XSCALE_80219 */ ==== //depot/projects/soc2007/rpaulo-macbook/arm/arm/elf_trampoline.c#2 (text+ko) ==== @@ -23,7 +23,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/elf_trampoline.c,v 1.17 2007/02/19 00:57:27 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/elf_trampoline.c,v 1.18 2007/07/27 14:42:25 cognet Exp $"); #include #include #include @@ -48,6 +48,7 @@ extern void *_end; void __start(void); +void __startC(void); #define GZ_HEAD 0xa @@ -66,7 +67,14 @@ defined(CPU_XSCALE_PXA2X0) || defined(CPU_XSCALE_IXP425) || \ defined(CPU_XSCALE_80219) #define cpu_idcache_wbinv_all xscale_cache_purgeID +#elif defined(CPU_XSCALE_81342) +#define cpu_idcache_wbinv_all xscalec3_cache_purgeID #endif +#ifdef CPU_XSCALE_81342 +#define cpu_l2cache_wbinv_all xscalec3_l2cache_purge +#else +#define cpu_l2cache_wbinv_all() +#endif int arm_picache_size; @@ -138,7 +146,7 @@ static void arm9_setup(void); void -_start(void) +_startC(void) { int physaddr = KERNPHYSADDR; int tmp1; @@ -207,6 +215,7 @@ arm9_setup(); #endif cpu_idcache_wbinv_all(); + cpu_l2cache_wbinv_all(); #endif __start(); } @@ -520,7 +529,7 @@ extern char func_end[]; -#define PMAP_DOMAIN_KERNEL 15 /* +#define PMAP_DOMAIN_KERNEL 0 /* * Just define it instead of including the * whole VM headers set. */ @@ -595,10 +604,11 @@ kernel = (char *)&_end; altdst = 4 + load_kernel((unsigned int)kernel, (unsigned int)curaddr, - (unsigned int)&func_end , 0); + (unsigned int)&func_end + 800 , 0); if (altdst > dst) dst = altdst; cpu_idcache_wbinv_all(); + cpu_l2cache_wbinv_all(); __asm __volatile("mrc p15, 0, %0, c1, c0, 0\n" "bic %0, %0, #1\n" /* MMU_ENABLE */ "mcr p15, 0, %0, c1, c0, 0\n" @@ -616,7 +626,7 @@ sp = sp &~3; dst = (void *)(sp + 4); memcpy((void *)dst, (void *)&load_kernel, (unsigned int)&func_end - - (unsigned int)&load_kernel); + (unsigned int)&load_kernel + 800); do_call(dst, kernel, dst + (unsigned int)(&func_end) - - (unsigned int)(&load_kernel), sp); + (unsigned int)(&load_kernel) + 800, sp); } ==== //depot/projects/soc2007/rpaulo-macbook/arm/arm/identcpu.c#2 (text+ko) ==== @@ -42,7 +42,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/identcpu.c,v 1.10 2006/11/19 23:45:33 sam Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/identcpu.c,v 1.11 2007/07/27 14:49:11 cognet Exp $"); #include #include #include @@ -374,6 +374,12 @@ printf(" IC disabled"); else printf(" IC enabled"); +#ifdef CPU_XSCALE_81342 + if ((ctrl & CPU_CONTROL_L2_ENABLE) == 0) + printf(" L2 disabled"); + else + printf(" L2 enabled"); +#endif break; default: break; ==== //depot/projects/soc2007/rpaulo-macbook/arm/arm/intr.c#3 (text+ko) ==== @@ -37,7 +37,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/intr.c,v 1.16 2007/06/04 21:38:45 attilio Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/intr.c,v 1.17 2007/07/27 14:26:42 cognet Exp $"); #include #include #include @@ -57,6 +57,27 @@ void arm_handler_execute(struct trapframe *, int); +#ifdef INTR_FILTER +static void +intr_disab_eoi_src(void *arg) +{ + uintptr_t nb; + + nb = (uintptr_t)arg; + arm_mask_irq(nb); +} + +static void +intr_eoi_src(void *arg) +{ + uintptr_t nb; + + nb = (uintptr_t)arg; + arm_unmask_irq(nb); +} + +#endif + void arm_setup_irqhandler(const char *name, driver_filter_t *filt, void (*hand)(void*), void *arg, int irq, int flags, void **cookiep) @@ -68,8 +89,14 @@ return; event = intr_events[irq]; if (event == NULL) { +#ifdef INTR_FILTER error = intr_event_create(&event, (void *)irq, 0, + (void (*)(void *))arm_unmask_irq, intr_eoi_src, + intr_disab_eoi_src, "intr%d:", irq); +#else + error = intr_event_create(&event, (void *)irq, 0, (void (*)(void *))arm_unmask_irq, "intr%d:", irq); +#endif if (error) return; intr_events[irq] = event; @@ -102,19 +129,33 @@ arm_handler_execute(struct trapframe *frame, int irqnb) { struct intr_event *event; - struct intr_handler *ih; struct thread *td = curthread; +#ifdef INTR_FILTER + int i; +#else int i, thread, ret; + struct intr_handler *ih; +#endif PCPU_INC(cnt.v_intr); td->td_intr_nesting_level++; while ((i = arm_get_next_irq()) != -1) { +#ifndef INTR_FILTER arm_mask_irq(i); +#endif intrcnt[intrcnt_tab[i]]++; event = intr_events[i]; - if (!event || TAILQ_EMPTY(&event->ie_handlers)) + if (!event || TAILQ_EMPTY(&event->ie_handlers)) { +#ifdef INTR_FILTER + arm_mask_irq(i); +#endif continue; + } +#ifdef INTR_FILTER + intr_event_handle(event, frame); + /* XXX: Log stray IRQs */ +#else /* Execute fast handlers. */ ret = 0; thread = 0; @@ -139,6 +180,7 @@ intr_event_schedule_thread(event); else arm_unmask_irq(i); +#endif } td->td_intr_nesting_level--; } ==== //depot/projects/soc2007/rpaulo-macbook/arm/arm/pmap.c#5 (text+ko) ==== @@ -147,7 +147,7 @@ #include "opt_vm.h" #include -__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.83 2007/06/11 21:29:26 cognet Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/pmap.c,v 1.84 2007/07/27 14:45:04 cognet Exp $"); #include #include #include @@ -676,8 +676,14 @@ pmap_copy_page_func = pmap_copy_page_generic; pmap_zero_page_func = pmap_zero_page_generic; xscale_use_minidata = 0; - pte_l1_s_cache_mode_pt = pte_l2_l_cache_mode_pt = - pte_l2_s_cache_mode_pt = 0; + /* Make sure it is L2-cachable */ + pte_l1_s_cache_mode |= L1_S_XSCALE_TEX(TEX_XSCALE_T); + pte_l1_s_cache_mode_pt = pte_l1_s_cache_mode &~ L1_S_XSCALE_P; + pte_l2_l_cache_mode |= L2_XSCALE_L_TEX(TEX_XSCALE_T) ; + pte_l2_l_cache_mode_pt = pte_l1_s_cache_mode; + pte_l2_s_cache_mode |= L2_XSCALE_T_TEX(TEX_XSCALE_T); + pte_l2_s_cache_mode_pt = pte_l2_s_cache_mode; + #else pmap_copy_page_func = pmap_copy_page_xscale; pmap_zero_page_func = pmap_zero_page_xscale; @@ -2818,33 +2824,35 @@ * Low level mapping routines..... ***************************************************/ +#ifdef ARM_HAVE_SUPERSECTIONS /* Map a super section into the KVA. */ void pmap_kenter_supersection(vm_offset_t va, uint64_t pa, int flags) { - pd_entry_t pd = L1_S_PROTO | L1_S_SUPERSEC | (pa & L1_SUP_OFFSET) | - (((pa >> 32) & 0x8) << 20) | L1_S_PROT(PTE_KERNEL, + pd_entry_t pd = L1_S_PROTO | L1_S_SUPERSEC | (pa & L1_SUP_FRAME) | + (((pa >> 32) & 0xf) << 20) | L1_S_PROT(PTE_KERNEL, VM_PROT_READ|VM_PROT_WRITE) | L1_S_DOM(PMAP_DOMAIN_KERNEL); struct l1_ttable *l1; - vm_offset_t va_end; + vm_offset_t va0, va_end; KASSERT(((va | pa) & L1_SUP_OFFSET) == 0, - ("Not a valid section mapping")); + ("Not a valid super section mapping")); if (flags & SECTION_CACHE) pd |= pte_l1_s_cache_mode; else if (flags & SECTION_PT) pd |= pte_l1_s_cache_mode_pt; - va = va & L1_SUP_OFFSET; + va0 = va & L1_SUP_FRAME; va_end = va + L1_SUP_SIZE; SLIST_FOREACH(l1, &l1_list, l1_link) { + va = va0; for (; va < va_end; va += L1_S_SIZE) { l1->l1_kva[L1_IDX(va)] = pd; PTE_SYNC(&l1->l1_kva[L1_IDX(va)]); } } - } +#endif /* Map a section into the KVA. */ @@ -3681,7 +3689,11 @@ * These should only happen for pmap_kernel() */ KASSERT(pm == pmap_kernel(), ("huh")); - pa = (l1pd & L1_S_FRAME) | (va & L1_S_OFFSET); + /* XXX: what to do about the bits > 32 ? */ + if (l1pd & L1_S_SUPERSEC) + pa = (l1pd & L1_SUP_FRAME) | (va & L1_SUP_OFFSET); + else + pa = (l1pd & L1_S_FRAME) | (va & L1_S_OFFSET); } else { /* * Note that we can't rely on the validity of the L1 @@ -3744,7 +3756,11 @@ * These should only happen for pmap_kernel() */ KASSERT(pmap == pmap_kernel(), ("huh")); - pa = (l1pd & L1_S_FRAME) | (va & L1_S_OFFSET); + /* XXX: what to do about the bits > 32 ? */ + if (l1pd & L1_S_SUPERSEC) + pa = (l1pd & L1_SUP_FRAME) | (va & L1_SUP_OFFSET); + else + pa = (l1pd & L1_S_FRAME) | (va & L1_S_OFFSET); if (l1pd & L1_S_PROT_W || (prot & VM_PROT_WRITE) == 0) { m = PHYS_TO_VM_PAGE(pa); vm_page_hold(m); ==== //depot/projects/soc2007/rpaulo-macbook/arm/arm/vm_machdep.c#4 (text+ko) ==== @@ -41,7 +41,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/arm/arm/vm_machdep.c,v 1.32 2007/06/04 23:57:29 jeff Exp $"); +__FBSDID("$FreeBSD: src/sys/arm/arm/vm_machdep.c,v 1.33 2007/07/27 14:46:15 cognet Exp $"); #include #include @@ -118,11 +118,13 @@ pcb1 = td1->td_pcb; pcb2 = (struct pcb *)(td2->td_kstack + td2->td_kstack_pages * PAGE_SIZE) - 1; #ifdef __XSCALE__ +#ifndef CPU_XSCALE_CORE3 pmap_use_minicache(td2->td_kstack, td2->td_kstack_pages * PAGE_SIZE); if (td2->td_altkstack) pmap_use_minicache(td2->td_altkstack, td2->td_altkstack_pages * PAGE_SIZE); #endif +#endif td2->td_pcb = pcb2; bcopy(td1->td_pcb, pcb2, sizeof(*pcb2)); mdp2 = &p2->p_md; @@ -338,7 +340,9 @@ td->td_frame = (struct trapframe *) ((u_int)td->td_kstack + USPACE_SVC_STACK_TOP - sizeof(struct pcb)) - 1; #ifdef __XSCALE__ +#ifndef CPU_XSCALE_CORE3 pmap_use_minicache(td->td_kstack, td->td_kstack_pages * PAGE_SIZE); +#endif #endif } @@ -462,6 +466,14 @@ vm_offset_t alloc_firstaddr; +#ifdef ARM_HAVE_SUPERSECTIONS +#define S_FRAME L1_SUP_FRAME +#define S_SIZE L1_SUP_SIZE +#else +#define S_FRAME L1_S_FRAME +#define S_SIZE L1_S_SIZE +#endif + vm_offset_t arm_ptovirt(vm_paddr_t pa) { @@ -472,11 +484,11 @@ for (i = 0; dump_avail[i + 1]; i += 2) { if (pa >= dump_avail[i] && pa < dump_avail[i + 1]) break; - addr += (dump_avail[i + 1] & L1_S_FRAME) + L1_S_SIZE - - (dump_avail[i] & L1_S_FRAME); + addr += (dump_avail[i + 1] & S_FRAME) + S_SIZE - + (dump_avail[i] & S_FRAME); } KASSERT(dump_avail[i + 1] != 0, ("Trying to access invalid physical address")); - return (addr + (pa - (dump_avail[i] & L1_S_FRAME))); + return (addr + (pa - (dump_avail[i] & S_FRAME))); } void @@ -492,20 +504,26 @@ */ for (i = 0; dump_avail[i + 1]; i+= 2) { - to_map += (dump_avail[i + 1] & L1_S_FRAME) + L1_S_SIZE - - (dump_avail[i] & L1_S_FRAME); + to_map += (dump_avail[i + 1] & S_FRAME) + S_SIZE - + (dump_avail[i] & S_FRAME); } alloc_firstaddr = mapaddr = KERNBASE - to_map; for (i = 0; dump_avail[i + 1]; i+= 2) { - vm_offset_t size = (dump_avail[i + 1] & L1_S_FRAME) + - L1_S_SIZE - (dump_avail[i] & L1_S_FRAME); + vm_offset_t size = (dump_avail[i + 1] & S_FRAME) + + S_SIZE - (dump_avail[i] & S_FRAME); vm_offset_t did = 0; - while (size > 0 ) { + while (size > 0) { +#ifdef ARM_HAVE_SUPERSECTIONS + pmap_kenter_supersection(mapaddr, + (dump_avail[i] & L1_SUP_FRAME) + did, + SECTION_CACHE); +#else pmap_kenter_section(mapaddr, (dump_avail[i] & L1_S_FRAME) + did, SECTION_CACHE); - mapaddr += L1_S_SIZE; - did += L1_S_SIZE; - size -= L1_S_SIZE; +#endif + mapaddr += S_SIZE; + did += S_SIZE; + size -= S_SIZE; } } } ==== //depot/projects/soc2007/rpaulo-macbook/arm/include/armreg.h#2 (text+ko) ==== @@ -35,7 +35,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $FreeBSD: src/sys/arm/include/armreg.h,v 1.5 2006/11/07 22:36:56 cognet Exp $ + * $FreeBSD: src/sys/arm/include/armreg.h,v 1.6 2007/07/27 14:54:27 cognet Exp $ */ #ifndef MACHINE_ARMREG_H @@ -227,17 +227,22 @@ #define CPU_CONTROL_VECRELOC 0x00002000 /* V: Vector relocation */ #define CPU_CONTROL_ROUNDROBIN 0x00004000 /* RR: Predictable replacement */ #define CPU_CONTROL_V4COMPAT 0x00008000 /* L4: ARMv4 compat LDR R15 etc */ +#define CPU_CONTROL_L2_ENABLE 0x04000000 /* L2 Cache enabled */ #define CPU_CONTROL_IDC_ENABLE CPU_CONTROL_DC_ENABLE /* XScale Auxillary Control Register (CP15 register 1, opcode2 1) */ #define XSCALE_AUXCTL_K 0x00000001 /* dis. write buffer coalescing */ #define XSCALE_AUXCTL_P 0x00000002 /* ECC protect page table access */ +/* Note: XSCale core 3 uses those for LLR DCcahce attributes */ #define XSCALE_AUXCTL_MD_WB_RA 0x00000000 /* mini-D$ wb, read-allocate */ #define XSCALE_AUXCTL_MD_WB_RWA 0x00000010 /* mini-D$ wb, read/write-allocate */ #define XSCALE_AUXCTL_MD_WT 0x00000020 /* mini-D$ wt, read-allocate */ #define XSCALE_AUXCTL_MD_MASK 0x00000030 +/* Xscale Core 3 only */ +#define XSCALE_AUXCTL_LLR 0x00000400 /* Enable L2 for LLR Cache */ + /* Cache type register definitions */ #define CPU_CT_ISIZE(x) ((x) & 0xfff) /* I$ info */ #define CPU_CT_DSIZE(x) (((x) >> 12) & 0xfff) /* D$ info */ ==== //depot/projects/soc2007/rpaulo-macbook/arm/include/cpufunc.h#2 (text+ko) ==== @@ -38,7 +38,7 @@ * * Prototypes for cpu, mmu and tlb related functions. * - * $FreeBSD: src/sys/arm/include/cpufunc.h,v 1.11 2007/03/21 03:28:16 kevlo Exp $ + * $FreeBSD: src/sys/arm/include/cpufunc.h,v 1.12 2007/07/27 14:39:41 cognet Exp $ */ #ifndef _MACHINE_CPUFUNC_H_ @@ -140,6 +140,10 @@ void (*cf_idcache_wbinv_all) (void); void (*cf_idcache_wbinv_range) (vm_offset_t, vm_size_t); + void (*cf_l2cache_wbinv_all) (void); + void (*cf_l2cache_wbinv_range) (vm_offset_t, vm_size_t); + void (*cf_l2cache_inv_range) (vm_offset_t, vm_size_t); + void (*cf_l2cache_wb_range) (vm_offset_t, vm_size_t); /* Other functions */ @@ -189,6 +193,10 @@ #define cpu_idcache_wbinv_all() cpufuncs.cf_idcache_wbinv_all() #define cpu_idcache_wbinv_range(a, s) cpufuncs.cf_idcache_wbinv_range((a), (s)) +#define cpu_l2cache_wbinv_all() cpufuncs.cf_l2cache_wbinv_all() +#define cpu_l2cache_wb_range(a, s) cpufuncs.cf_l2cache_wb_range((a), (s)) +#define cpu_l2cache_inv_range(a, s) cpufuncs.cf_l2cache_inv_range((a), (s)) +#define cpu_l2cache_wbinv_range(a, s) cpufuncs.cf_l2cache_wbinv_range((a), (s)) #define cpu_flush_prefetchbuf() cpufuncs.cf_flush_prefetchbuf() #define cpu_drain_writebuf() cpufuncs.cf_drain_writebuf() @@ -435,19 +443,22 @@ #ifdef CPU_XSCALE_81342 +void xscalec3_l2cache_purge (void); +void xscalec3_cache_purgeID (void); +void xscalec3_cache_purgeD (void); void xscalec3_cache_cleanID (void); void xscalec3_cache_cleanD (void); +void xscalec3_cache_syncI (void); -void xscalec3_cache_purgeID (void); -void xscalec3_cache_purgeID_E (u_int entry); -void xscalec3_cache_purgeD (void); -void xscalec3_cache_purgeD_E (u_int entry); +void xscalec3_cache_purgeID_rng (vm_offset_t start, vm_size_t end); +void xscalec3_cache_purgeD_rng (vm_offset_t start, vm_size_t end); +void xscalec3_cache_cleanID_rng (vm_offset_t start, vm_size_t end); +void xscalec3_cache_cleanD_rng (vm_offset_t start, vm_size_t end); +void xscalec3_cache_syncI_rng (vm_offset_t start, vm_size_t end); -void xscalec3_cache_syncI (void); -void xscalec3_cache_cleanID_rng (vm_offset_t start, vm_size_t end); -void xscalec3_cache_cleanD_rng (vm_offset_t start, vm_size_t end); -void xscalec3_cache_purgeID_rng (vm_offset_t start, vm_size_t end); -void xscalec3_cache_purgeD_rng (vm_offset_t start, vm_size_t end); +void xscalec3_l2cache_flush_rng (vm_offset_t, vm_size_t); +void xscalec3_l2cache_clean_rng (vm_offset_t start, vm_size_t end); +void xscalec3_l2cache_purge_rng (vm_offset_t start, vm_size_t end); void xscalec3_setttb (u_int ttb); ==== //depot/projects/soc2007/rpaulo-macbook/arm/include/pmap.h#4 (text+ko) ==== @@ -44,7 +44,7 @@ * from: @(#)pmap.h 7.4 (Berkeley) 5/12/91 * from: FreeBSD: src/sys/i386/include/pmap.h,v 1.70 2000/11/30 * - * $FreeBSD: src/sys/arm/include/pmap.h,v 1.26 2007/06/11 21:29:26 cognet Exp $ + * $FreeBSD: src/sys/arm/include/pmap.h,v 1.27 2007/07/27 14:45:04 cognet Exp $ */ #ifndef _MACHINE_PMAP_H_ @@ -264,14 +264,16 @@ #define L1_S_PROT_MASK (L1_S_PROT_U|L1_S_PROT_W) #define L1_S_CACHE_MASK_generic (L1_S_B|L1_S_C) -#define L1_S_CACHE_MASK_xscale (L1_S_B|L1_S_C|L1_S_XSCALE_TEX(TEX_XSCALE_X)) +#define L1_S_CACHE_MASK_xscale (L1_S_B|L1_S_C|L1_S_XSCALE_TEX(TEX_XSCALE_X)|\ + L1_S_XSCALE_TEX(TEX_XSCALE_T)) #define L2_L_PROT_U (L2_AP(AP_U)) #define L2_L_PROT_W (L2_AP(AP_W)) #define L2_L_PROT_MASK (L2_L_PROT_U|L2_L_PROT_W) #define L2_L_CACHE_MASK_generic (L2_B|L2_C) -#define L2_L_CACHE_MASK_xscale (L2_B|L2_C|L2_XSCALE_L_TEX(TEX_XSCALE_X)) +#define L2_L_CACHE_MASK_xscale (L2_B|L2_C|L2_XSCALE_L_TEX(TEX_XSCALE_X) | \ + L2_XSCALE_L_TEX(TEX_XSCALE_T)) #define L2_S_PROT_U_generic (L2_AP(AP_U)) #define L2_S_PROT_W_generic (L2_AP(AP_W)) @@ -282,7 +284,8 @@ #define L2_S_PROT_MASK_xscale (L2_S_PROT_U|L2_S_PROT_W) #define L2_S_CACHE_MASK_generic (L2_B|L2_C) -#define L2_S_CACHE_MASK_xscale (L2_B|L2_C|L2_XSCALE_T_TEX(TEX_XSCALE_X)) +#define L2_S_CACHE_MASK_xscale (L2_B|L2_C|L2_XSCALE_T_TEX(TEX_XSCALE_X)| \ + L2_XSCALE_T_TEX(TEX_XSCALE_X)) >>> TRUNCATED FOR MAIL (1000 lines) <<<