From owner-svn-src-head@FreeBSD.ORG Mon Mar 12 08:13:04 2012 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C6766106564A; Mon, 12 Mar 2012 08:13:04 +0000 (UTC) (envelope-from jmallett@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B42C48FC0C; Mon, 12 Mar 2012 08:13:04 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q2C8D4Xp049988; Mon, 12 Mar 2012 08:13:04 GMT (envelope-from jmallett@svn.freebsd.org) Received: (from jmallett@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q2C8D42L049978; Mon, 12 Mar 2012 08:13:04 GMT (envelope-from jmallett@svn.freebsd.org) Message-Id: <201203120813.q2C8D42L049978@svn.freebsd.org> From: Juli Mallett Date: Mon, 12 Mar 2012 08:13:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r232855 - in head/sys/mips: include mips X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Mar 2012 08:13:04 -0000 Author: jmallett Date: Mon Mar 12 08:13:04 2012 New Revision: 232855 URL: http://svn.freebsd.org/changeset/base/232855 Log: Remove more unused code and declarations, and add dire warnings to the 64-bit atomic ops used by 32-bit kernels. Modified: head/sys/mips/include/cache.h head/sys/mips/include/cpufunc.h head/sys/mips/include/frame.h head/sys/mips/include/md_var.h head/sys/mips/include/pmap.h head/sys/mips/include/proc.h head/sys/mips/mips/machdep.c head/sys/mips/mips/support.S head/sys/mips/mips/vm_machdep.c Modified: head/sys/mips/include/cache.h ============================================================================== --- head/sys/mips/include/cache.h Mon Mar 12 08:03:51 2012 (r232854) +++ head/sys/mips/include/cache.h Mon Mar 12 08:13:04 2012 (r232855) @@ -217,7 +217,6 @@ do { \ struct mips_cpuinfo; void mips_config_cache(struct mips_cpuinfo *); -void mips_dcache_compute_align(void); #include #endif /* _MACHINE_CACHE_H_ */ Modified: head/sys/mips/include/cpufunc.h ============================================================================== --- head/sys/mips/include/cpufunc.h Mon Mar 12 08:03:51 2012 (r232854) +++ head/sys/mips/include/cpufunc.h Mon Mar 12 08:13:04 2012 (r232855) @@ -468,6 +468,5 @@ void insl(uint32_t *, uint32_t *,int); void outsb(uint8_t *, const uint8_t *,int); void outsw(uint16_t *, const uint16_t *,int); void outsl(uint32_t *, const uint32_t *,int); -u_int loadandclear(volatile u_int *addr); #endif /* !_MACHINE_CPUFUNC_H_ */ Modified: head/sys/mips/include/frame.h ============================================================================== --- head/sys/mips/include/frame.h Mon Mar 12 08:03:51 2012 (r232854) +++ head/sys/mips/include/frame.h Mon Mar 12 08:13:04 2012 (r232855) @@ -124,10 +124,4 @@ struct trapframe { register_t fdummy; }; -/* REVISIT */ -struct frame *get_current_fp(void); -#define get_next_fp(fp) (0) -#define get_return_ptr(fp) (0) -void get_stack_trace(u_int32_t depth, u_int32_t *trace); - #endif /* !_MACHINE_FRAME_H_ */ Modified: head/sys/mips/include/md_var.h ============================================================================== --- head/sys/mips/include/md_var.h Mon Mar 12 08:03:51 2012 (r232854) +++ head/sys/mips/include/md_var.h Mon Mar 12 08:13:04 2012 (r232855) @@ -54,12 +54,9 @@ extern vm_offset_t kernel_kseg0_end; void MipsSaveCurFPState(struct thread *); void fork_trampoline(void); -void cpu_swapin(struct proc *); uintptr_t MipsEmulateBranch(struct trapframe *, uintptr_t, int, uintptr_t); void MipsSwitchFPState(struct thread *, struct trapframe *); -u_long kvtop(void *addr); int is_cacheable_mem(vm_paddr_t addr); -void mips_generic_reset(void); void mips_wait(void); #define MIPS_DEBUG 0 Modified: head/sys/mips/include/pmap.h ============================================================================== --- head/sys/mips/include/pmap.h Mon Mar 12 08:03:51 2012 (r232854) +++ head/sys/mips/include/pmap.h Mon Mar 12 08:13:04 2012 (r232855) @@ -163,7 +163,6 @@ void pmap_kenter_attr(vm_offset_t va, vm void pmap_kremove(vm_offset_t va); void *pmap_kenter_temporary(vm_paddr_t pa, int i); void pmap_kenter_temporary_free(vm_paddr_t pa); -int pmap_compute_pages_to_dump(void); void pmap_flush_pvcache(vm_page_t m); int pmap_emulate_modified(pmap_t pmap, vm_offset_t va); void pmap_grow_direct_page_cache(void); Modified: head/sys/mips/include/proc.h ============================================================================== --- head/sys/mips/include/proc.h Mon Mar 12 08:03:51 2012 (r232854) +++ head/sys/mips/include/proc.h Mon Mar 12 08:13:04 2012 (r232855) @@ -80,11 +80,6 @@ struct mdproc { }; #ifdef _KERNEL -struct thread; - -void mips_cpu_switch(struct thread *, struct thread *, struct mtx *); -void mips_cpu_throw(struct thread *, struct thread *); - struct syscall_args { u_int code; struct sysent *callp; Modified: head/sys/mips/mips/machdep.c ============================================================================== --- head/sys/mips/mips/machdep.c Mon Mar 12 08:03:51 2012 (r232854) +++ head/sys/mips/mips/machdep.c Mon Mar 12 08:13:04 2012 (r232855) @@ -397,17 +397,6 @@ mips_postboot_fixup(void) #endif } -/* - * Many SoCs have a means to reset the core itself. Others do not, or - * the method is unknown to us. For those cases, we jump to the mips - * reset vector and hope for the best. This works well in practice. - */ -void -mips_generic_reset() -{ - ((void(*)(void))MIPS_RESET_EXC_VEC)(); -} - #ifdef SMP void mips_pcpu_tlb_init(struct pcpu *pcpu) Modified: head/sys/mips/mips/support.S ============================================================================== --- head/sys/mips/mips/support.S Mon Mar 12 08:03:51 2012 (r232854) +++ head/sys/mips/mips/support.S Mon Mar 12 08:13:04 2012 (r232855) @@ -940,154 +940,6 @@ LEAF(ffs) nop END(ffs) -LEAF(get_current_fp) - j ra - move v0, s8 -END(get_current_fp) - -LEAF(loadandclear) - .set noreorder -1: - ll v0, 0(a0) - move t0, zero - sc t0, 0(a0) - beq t0, zero, 1b - nop - j ra - nop -END(loadandclear) - -#if 0 -/* - * u_int32_t atomic_cmpset_32(u_int32_t *p, u_int32_t cmpval, u_int32_t newval) - * Atomically compare the value stored at p with cmpval - * and if the two values are equal, update value *p with - * newval. Return zero if compare failed, non-zero otherwise - * - */ - -LEAF(atomic_cmpset_32) - .set noreorder -1: - ll t0, 0(a0) - move v0, zero - bne t0, a1, 2f - move t1, a2 - sc t1, 0(a0) - beq t1, zero, 1b - or v0, v0, 1 -2: - j ra - nop -END(atomic_cmpset_32) - -/** - * u_int32_t - * atomic_readandclear_32(u_int32_t *a) - * { - * u_int32_t retval; - * retval = *a; - * *a = 0; - * } - */ -LEAF(atomic_readandclear_32) - .set noreorder -1: - ll t0, 0(a0) - move t1, zero - move v0, t0 - sc t1, 0(a0) - beq t1, zero, 1b - nop - j ra - nop -END(atomic_readandclear_32) - -/** - * void - * atomic_set_32(u_int32_t *a, u_int32_t b) - * { - * *a |= b; - * } - */ -LEAF(atomic_set_32) - .set noreorder -1: - ll t0, 0(a0) - or t0, t0, a1 - sc t0, 0(a0) - beq t0, zero, 1b - nop - j ra - nop -END(atomic_set_32) - -/** - * void - * atomic_add_32(uint32_t *a, uint32_t b) - * { - * *a += b; - * } - */ -LEAF(atomic_add_32) - .set noreorder - srl a0, a0, 2 # round down address to be 32-bit aligned - sll a0, a0, 2 -1: - ll t0, 0(a0) - addu t0, t0, a1 - sc t0, 0(a0) - beq t0, zero, 1b - nop - j ra - nop -END(atomic_add_32) - -/** - * void - * atomic_clear_32(u_int32_t *a, u_int32_t b) - * { - * *a &= ~b; - * } - */ -LEAF(atomic_clear_32) - .set noreorder - srl a0, a0, 2 # round down address to be 32-bit aligned - sll a0, a0, 2 - nor a1, zero, a1 -1: - ll t0, 0(a0) - and t0, t0, a1 # t1 has the new lower 16 bits - sc t0, 0(a0) - beq t0, zero, 1b - nop - j ra - nop -END(atomic_clear_32) - -/** - * void - * atomic_subtract_32(uint16_t *a, uint16_t b) - * { - * *a -= b; - * } - */ -LEAF(atomic_subtract_32) - .set noreorder - srl a0, a0, 2 # round down address to be 32-bit aligned - sll a0, a0, 2 -1: - ll t0, 0(a0) - subu t0, t0, a1 - sc t0, 0(a0) - beq t0, zero, 1b - nop - j ra - nop -END(atomic_subtract_32) - -#endif - /** * void * atomic_set_16(u_int16_t *a, u_int16_t b) @@ -1259,6 +1111,15 @@ END(atomic_subtract_8) * NOPs in it for all processors. XXX * * Maybe it would be better to just leave this undefined in that case. + * + * XXX These routines are not safe in the case of a TLB miss on a1 or + * a0 unless the trapframe is 64-bit, which it just isn't with O32. + * If we take any exception, not just an interrupt, the upper + * 32-bits will be clobbered. Use only N32 and N64 kernels if you + * want to use 64-bit registers while interrupts are enabled or + * with memory operations. Since this isn't even using load-linked + * and store-conditional, perhaps it should just use two registers + * instead, as is right and good with the O32 ABI. */ LEAF(atomic_store_64) mfc0 t1, MIPS_COP_0_STATUS @@ -1455,58 +1316,6 @@ LEAF(casuptr) j ra END(casuptr) - -#ifdef CPU_CNMIPS -/* - * void octeon_enable_shadow(void) - * turns on access to CC and CCRes - */ -LEAF(octeon_enable_shadow) - li t1, 0x0000000f - mtc0 t1, MIPS_COP_0_INFO - jr ra - nop -END(octeon_enable_shadow) - - -LEAF(octeon_get_shadow) - mfc0 v0, MIPS_COP_0_INFO - jr ra - nop -END(octeon_get_shadow) - -/* - * octeon_set_control(addr, uint32_t val) - */ -LEAF(octeon_set_control) - .set push - or t1, a1, zero -/* dmfc0 a1, 9, 7*/ - .word 0x40254807 - sd a1, 0(a0) - or a1, t1, zero -/* dmtc0 a1, 9, 7*/ - .word 0x40a54807 - jr ra - nop - .set pop -END(octeon_set_control) - -/* - * octeon_get_control(addr) - */ -LEAF(octeon_get_control) - .set push - .set mips64r2 -/* dmfc0 a1, 9, 7 */ - .word 0x40254807 - sd a1, 0(a0) - jr ra - nop - .set pop -END(octeon_get_control) -#endif - LEAF(mips3_ld) .set push .set noreorder Modified: head/sys/mips/mips/vm_machdep.c ============================================================================== --- head/sys/mips/mips/vm_machdep.c Mon Mar 12 08:03:51 2012 (r232854) +++ head/sys/mips/mips/vm_machdep.c Mon Mar 12 08:13:04 2012 (r232855) @@ -478,19 +478,6 @@ cpu_set_upcall_kse(struct thread *td, vo * that are needed. */ } -/* - * Convert kernel VA to physical address - */ -u_long -kvtop(void *addr) -{ - vm_offset_t va; - - va = pmap_kextract((vm_offset_t)addr); - if (va == 0) - panic("kvtop: zero page frame"); - return((intptr_t)va); -} /* * Implement the pre-zeroed page mechanism.