linux-2.5.69/arch/sparc/Kconfig: @@ -228,6 +228,14 @@: adding the Leon configuration option @@ -393,6 +401,10 @@: Leon configuration option linux-2.5.69/arch/sparc/Kconfig_leon: @@ -0,0 +1,62 @@: Not very much inside, actually even CONFIG_RAMKERNEL and CONFIG_ROMKERNEL are not used yet. linux-2.5.69/arch/sparc/kernel/auxio.c: @@ -29,6 +29,7 @@: do nothing linux-2.5.69/arch/sparc/kernel/cpu.c: @@ -29,6 +29,7 @@: There is no standardized psr_impl with Leon so I use a easy #ifdef @@ -151,11 +157,17 @@: Same with fpu linux-2.5.69/arch/sparc/kernel/head.S: @@ -788,6 +788,11 @@: For Leon the bootloader jumps to gokernel(KERNBASE), where at KERNBASE there is a struct leon_setup. @@ -839,6 +844,8 @@: cputypval is "leon@" @@ -861,8 +868,10 @@: cputypval is "leon@" @@ -1159,6 +1168,17 @@: initialize cputypval to "leon@" linux-2.5.69/arch/sparc/kernel/idprom.c: @@ -31,6 +31,8 @@: Dummy entry for idprom linux-2.5.69/arch/sparc/kernel/irq.c: @@ -653,6 +653,9 @@: initilize Leon irq. linux-2.5.69/arch/sparc/kernel/leon.c: @@ -0,0 +1,148 @@: dummy btfixup linux-2.5.69/arch/sparc/kernel/leon_irq.c: @@ -0,0 +1,148 @@: Leon specific timer irq linux-2.5.69/arch/sparc/kernel/Makefile: linux-2.5.69/arch/sparc/kernel/rtrap.S: @@ -134,7 +134,12 @@: Remove btfixup, because it's assembler there is no other way than ifdef linux-2.5.69/arch/sparc/kernel/setup.c: @@ -262,6 +262,7 @@ + @@ -269,6 +270,12 @@ + @@ -289,6 +296,9 @@: new sparc_leon type @@ -299,6 +309,10 @@: add console linux-2.5.69/arch/sparc/kernel/time.c: @@ -306,6 +306,9 @@ + @@ -391,6 +394,7 @@: nodo for Leon linux-2.5.69/arch/sparc/kernel/wof.S: @@ -166,7 +166,12 @@: Remove btfixup, because it's assembler there is no other way than ifdef linux-2.5.69/arch/sparc/kernel/wuf.S: @@ -137,7 +137,12 @@: Remove btfixup, because it's assembler there is no other way than ifdef linux-2.5.69/arch/sparc/leon_tmp/bootloader.h: @@ -0,0 +1,16 @@: The board parameters. These are created with bootloader.pl that is distributed seperately (to keep board dependency out.) linux-2.5.69/arch/sparc/lib/atomic.S: @@ -35,6 +35,10 @@: no btfixup, direct jump from /system.h:xchg_u32() linux-2.5.69/arch/sparc/mm/init.c: @@ -136,7 +136,7 @@ + @@ -195,7 +195,8 @@ + @@ -207,7 +208,7 @@ + @@ -284,8 +285,8 @@: nonzero physbase @@ -349,6 +350,7 @@: use srmmu_paging_init() @@ -359,6 +361,13 @@: do some additional Leon specific mappings @@ -493,7 +502,7 @@: nonzero physbase linux-2.5.69/arch/sparc/mm/leon.c @@ -0,0 +1,112 @@: I use cache_flushall and srmmu_flush_whole_tlb for all because I did still not tested the precise flushes in vhdl. I use srmmu_swprobe instead of isrmmu_hwprobe because the current MMU vhdl model in Leon does not support probe. Mapping ethermac registers at 0xb0000000 to virtual address range linux-2.5.69/arch/sparc/mm/leon_nobtfixup.c: @@ -0,0 +1,50 @@: by defining SPARC_FIXBTFIXUP_LEON_DODECLARE global function pointer and global variables are defined. btfixup mcaros that are not inside .h include files are redefined at the bottom. linux-2.5.69/arch/sparc/mm/loadmmu.c: @@ -36,6 +36,7 @@: Leon switch linux-2.5.69/arch/sparc/mm/Makefile: linux-2.5.69/arch/sparc/mm/srmmu.c: @@ -240,7 +240,7 @@: nonzero physbase @@ -401,7 +401,13 @@: 550 too much for Leon @@ -514,7 +520,7 @@ + @@ -529,7 +535,7 @@: nonzero physbase @@ -1120,6 +1126,11 @@: see linux-2.5.69/arch/sparc/mm/leon.c @@ -1354,8 +1365,8 @@: nonzero physbase @@ -1935,6 +1946,52 @@: Leon tlb/cache init @@ -2010,6 +2067,12 @@: Leon's psr is arbitrary, so a simple ifdef linux-2.5.69/arch/sparc/prom/init.c: @@ -41,6 +44,10 @@: For Leon the bootloader jumps to gokernel(KERNBASE), where at KERNBASE there is a struct leon_setup (pointer to it in %o0). linux-2.5.69/arch/sparc/prom/leonprom.c: @@ -0,0 +1,277 @@: Copy of the sun4 prom code linux-2.5.69/arch/sparc/prom/Makefile: linux-2.5.69/arch/sparc/prom/memory.c: @@ -192,6 +195,18 @@: sizes are taken out of struct leon_setup that is delivered by the bootloader. linux-2.5.69/drivers/net/Kconfig: linux-2.5.69/drivers/net/Makefile: linux-2.5.69/drivers/net/open_eth.c: linux-2.5.69/drivers/net/open_eth.h: Open Ethermac core driver linux-2.5.69/drivers/sbus/sbus.c: @@ -354,6 +354,8 @@: return on Leon linux-2.5.69/drivers/serial/leon.c: linux-2.5.69/drivers/serial/Makefile: Leon uart driver linux-2.5.69/include/asm-sparc/asi.h: @@ -108,4 +108,20 @@: Leon ASI's differ linux-2.5.69/include/asm-sparc/btfixup.h: @@ -11,6 +11,10 @@: switch to fixbtfixup_leon.h in case of Leon. No btfixup. linux-2.5.69/include/asm-sparc/fixbtfixup_leon.h: @@ -0,0 +1,78 @@: Use global variables and global function pointers instead of dynamic btfixup linking. linux-2.5.69/include/asm-sparc/leon.h: @@ -0,0 +1,204 @@: Various defines for Leon linux-2.5.69/include/asm-sparc/machines.h: @@ -32,6 +32,7 @@: Add Leon idprom dummy entry linux-2.5.69/include/asm-sparc/page.h: @@ -156,17 +156,22 @@: nonzero physbase linux-2.5.69/include/asm-sparc/system.h: @@ -29,6 +29,7 @@: new cpu linux-2.5.69/include/linux/serial_core.h: Leon uart id