1. 21 Feb, 2007 1 commit
    • Franck Bui-Huu's avatar
      [MIPS] Add basic SMARTMIPS ASE support · 9693a853
      Franck Bui-Huu authored
      
      
      This patch adds trivial support for SMARTMIPS extension. This extension
      is currently implemented by 4KS[CD] CPUs.
      
      Basically it saves/restores ACX register, which is part of the SMARTMIPS
      ASE, when needed. This patch does *not* add any support for Smartmips MMU
      features.
      
      Futhermore this patch does not add explicit support for 4KS[CD] CPUs since
      they are respectively mips32 and mips32r2 compliant.  So with the current
      processor configuration, a platform that has such CPUs needs to select
      both configs:
      
      	CPU_HAS_SMARTMIPS
      	SYS_HAS_CPU_MIPS32_R[12]
      
      This is due to the processor configuration which is mixing up all the
      architecture variants and the processor types.
      
      The drawback of this, is that we currently pass '-march=mips32' option to
      gcc when building a kernel instead of '-march=4ksc' for 4KSC case. This
      can lead to a kernel image a little bit bigger than required.
      Signed-off-by: default avatarFranck Bui-Huu <fbuihuu@gmail.com>
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      9693a853
  2. 24 Jan, 2007 1 commit
  3. 08 Dec, 2006 2 commits
  4. 29 Nov, 2006 1 commit
    • Atsushi Nemoto's avatar
      [MIPS] Load modules to CKSEG0 if CONFIG_BUILD_ELF64=n · 656be92f
      Atsushi Nemoto authored
      
      
      This is a patch to load 64-bit modules to CKSEG0 so that can be
      compiled with -msym32 option.  This makes each module ~10% smaller.
      
      * introduce MODULE_START and MODULE_END
      * custom module_alloc()
      * PGD for modules
      * change XTLB refill handler synthesizer
      * enable -msym32 for modules again
        (revert ca78b1a5c6a6e70e052d3ea253828e49b5d07c8a)
      
      New XTLB refill handler looks like this:
      
      80000080 dmfc0   k0,C0_BADVADDR
      80000084 bltz    k0,800000e4			# goto l_module_alloc
      80000088 lui     k1,0x8046			# %high(pgd_current)
      8000008c ld      k1,24600(k1)			# %low(pgd_current)
      80000090 dsrl    k0,k0,0x1b			# l_vmalloc_done:
      80000094 andi    k0,k0,0x1ff8
      80000098 daddu   k1,k1,k0
      8000009c dmfc0   k0,C0_BADVADDR
      800000a0 ld      k1,0(k1)
      800000a4 dsrl    k0,k0,0x12
      800000a8 andi    k0,k0,0xff8
      800000ac daddu   k1,k1,k0
      800000b0 dmfc0   k0,C0_XCONTEXT
      800000b4 ld      k1,0(k1)
      800000b8 andi    k0,k0,0xff0
      800000bc daddu   k1,k1,k0
      800000c0 ld      k0,0(k1)
      800000c4 ld      k1,8(k1)
      800000c8 dsrl    k0,k0,0x6
      800000cc mtc0    k0,C0_ENTRYLO0
      800000d0 dsrl    k1,k1,0x6
      800000d4 mtc0    k1,C0_ENTRYL01
      800000d8 nop
      800000dc tlbwr
      800000e0 eret
      800000e4 dsll    k1,k0,0x2			# l_module_alloc:
      800000e8 bgez    k1,80000008			# goto l_vmalloc
      800000ec lui     k1,0xc000
      800000f0 dsubu   k0,k0,k1
      800000f4 lui     k1,0x8046			# %high(module_pg_dir)
      800000f8 beq     zero,zero,80000000
      800000fc nop
      80000000 beq     zero,zero,80000090		# goto l_vmalloc_done
      80000004 daddiu  k1,k1,0x4000
      80000008 dsll32  k1,k1,0x0			# l_vmalloc:
      8000000c dsubu   k0,k0,k1
      80000010 beq     zero,zero,80000090		# goto l_vmalloc_done
      80000014 lui     k1,0x8046			# %high(swapper_pg_dir)
      Signed-off-by: default avatarAtsushi Nemoto <anemo@mba.ocn.ne.jp>
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      656be92f
  5. 02 Nov, 2006 1 commit
  6. 11 Oct, 2006 1 commit
  7. 03 Oct, 2006 1 commit
  8. 27 Sep, 2006 2 commits
  9. 13 Jul, 2006 1 commit
  10. 29 Jun, 2006 1 commit
  11. 19 Jun, 2006 6 commits
  12. 27 Apr, 2006 1 commit
  13. 18 Apr, 2006 2 commits
  14. 21 Mar, 2006 2 commits
  15. 18 Mar, 2006 1 commit
  16. 09 Mar, 2006 1 commit
  17. 14 Feb, 2006 1 commit
  18. 07 Feb, 2006 3 commits
  19. 10 Jan, 2006 1 commit
  20. 17 Nov, 2005 1 commit
  21. 29 Oct, 2005 9 commits