Index: cpu/mips/config.mk =================================================================== RCS file: /home/develop/cvs_private/uboot-mips-exadron/cpu/mips/config.mk,v retrieving revision 1.2 diff -u -r1.2 config.mk --- a/cpu/mips/config.mk 16 Sep 2005 15:07:21 -0000 1.2 +++ b/cpu/mips/config.mk 11 Oct 2005 14:09:42 -0000 @@ -26,17 +26,24 @@ if [ "$v" -lt "14" ]; then \ echo "-mcpu=4kc"; \ else \ - echo "-march=4kc -mtune=4kc -Wa,-allow_branch_to_undefined"; \ + echo "-march=4kc -mtune=4kc"; \ fi) -ifneq (,$(findstring 4KCle,$(CROSS_COMPILE))) -MIPSCFLAGS += -EL -endif -ifneq (,$(findstring mipsel,$(CROSS_COMPILE))) -MIPSLDFLAGS += -EL -endif - MIPSCFLAGS += -mabicalls +ifneq (,$(findstring 4KC,$(CROSS_COMPILE))) + ifneq (,$(findstring 4KCle,$(CROSS_COMPILE))) + MIPSCFLAGS += -EL + else + MIPSCFLAGS += -EB + endif +else # mips-linux- or mipsel-linux- + ifneq (,$(findstring mipsel,$(CROSS_COMPILE))) + MIPSLDFLAGS += -EL + else + MIPSLDFLAGS += -EB + endif +endif + PLATFORM_CPPFLAGS += $(MIPSCFLAGS) PLATFORM_LDFLAGS += $(MIPSLDFLAGS) Index: cpu/mips/start.S =================================================================== RCS file: /home/develop/cvs_private/uboot-mips-exadron/cpu/mips/start.S,v retrieving revision 1.1.1.1 diff -u -r1.1.1.1 start.S --- a/cpu/mips/start.S 16 Sep 2005 12:14:19 -0000 1.1.1.1 +++ b/cpu/mips/start.S 11 Oct 2005 14:09:42 -0000 @@ -234,21 +234,38 @@ li t0, CONF_CM_UNCACHED mtc0 t0, CP0_CONFIG + /* Initialize GOT pointer. + */ + bal 1f + nop + .extern _GLOBAL_OFFSET_TABLE_ + .word _GLOBAL_OFFSET_TABLE_ + .word . - 4 +1: + move gp, ra + lw t1, 0(ra) + lw t2, 4(ra) + sub t1, t2 + add gp, t1 # calculate current location of offset table + #ifdef CONFIG_INCA_IP /* Disable INCA-IP Watchdog. */ - bal disable_incaip_wdt + la t9, disable_incaip_wdt + jalr t9 nop #endif /* Initialize any external memory. */ - bal lowlevel_init + la t9, lowlevel_init + jalr t9 nop /* Initialize caches... */ - bal mips_cache_reset + la t9, mips_cache_reset + jalr t9 nop /* ... and enable them. @@ -260,21 +277,13 @@ /* Set up temporary stack. */ li a0, CFG_INIT_SP_OFFSET - bal mips_cache_lock + la t9, mips_cache_lock + jalr t9 nop li t0, CFG_SDRAM_BASE + CFG_INIT_SP_OFFSET la sp, 0(t0) - /* Initialize GOT pointer. - */ - bal 1f - nop - .word _GLOBAL_OFFSET_TABLE_ - 1f + 4 -1: - move gp, ra - lw t1, 0(ra) - add gp, t1 la t9, board_init_f j t9 nop Index: examples/mips.lds =================================================================== RCS file: /home/develop/cvs_private/uboot-mips-exadron/examples/mips.lds,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- a/examples/mips.lds 16 Sep 2005 12:14:21 -0000 1.1 +++ b/examples/mips.lds 16 Sep 2005 15:05:08 -0000 1.2 @@ -24,7 +24,7 @@ /* OUTPUT_FORMAT("elf32-bigmips", "elf32-bigmips", "elf32-bigmips") */ -OUTPUT_FORMAT("elf32-tradbigmips", "elf32-tradbigmips", "elf32-tradbigmips") +OUTPUT_FORMAT("elf32-tradbigmips", "elf32-tradbigmips", "elf32-tradlittlemips") OUTPUT_ARCH(mips) SECTIONS {