Blackfin: add init.elf helper code
This creates a standalone ELF that executes just the Blackfin initcode. This is useful for people who want to program the low level aspects of the CPU (memory/clocks/etc...) and can easily be used with JTAG for quick booting while developing. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
This commit is contained in:
parent
08a82a447b
commit
fb5166ce35
3
Makefile
3
Makefile
|
@ -1075,7 +1075,8 @@ clean:
|
||||||
$(obj)board/voiceblue/eeprom \
|
$(obj)board/voiceblue/eeprom \
|
||||||
$(obj)board/armltd/{integratorap,integratorcp}/u-boot.lds \
|
$(obj)board/armltd/{integratorap,integratorcp}/u-boot.lds \
|
||||||
$(obj)u-boot.lds \
|
$(obj)u-boot.lds \
|
||||||
$(obj)arch/blackfin/cpu/bootrom-asm-offsets.[chs]
|
$(obj)arch/blackfin/cpu/bootrom-asm-offsets.[chs] \
|
||||||
|
$(obj)arch/blackfin/cpu/init.{lds,elf}
|
||||||
@rm -f $(obj)include/bmp_logo.h
|
@rm -f $(obj)include/bmp_logo.h
|
||||||
@rm -f $(obj)lib/asm-offsets.s
|
@rm -f $(obj)lib/asm-offsets.s
|
||||||
@rm -f $(obj)nand_spl/{u-boot.lds,u-boot-nand_spl.lds,u-boot-spl,u-boot-spl.map,System.map}
|
@rm -f $(obj)nand_spl/{u-boot.lds,u-boot-nand_spl.lds,u-boot-spl,u-boot-spl.map,System.map}
|
||||||
|
|
|
@ -1 +1,4 @@
|
||||||
bootrom-asm-offsets.[chs]
|
bootrom-asm-offsets.[chs]
|
||||||
|
|
||||||
|
init.lds
|
||||||
|
init.elf
|
||||||
|
|
|
@ -13,7 +13,7 @@ include $(TOPDIR)/config.mk
|
||||||
|
|
||||||
LIB = $(obj)lib$(CPU).o
|
LIB = $(obj)lib$(CPU).o
|
||||||
|
|
||||||
EXTRA :=
|
EXTRA := init.elf
|
||||||
CEXTRA := initcode.o
|
CEXTRA := initcode.o
|
||||||
SEXTRA := start.o
|
SEXTRA := start.o
|
||||||
SOBJS := interrupt.o cache.o
|
SOBJS := interrupt.o cache.o
|
||||||
|
@ -61,6 +61,11 @@ ifneq ($(CONFIG_BFIN_BOOT_MODE),BFIN_BOOT_BYPASS)
|
||||||
fi
|
fi
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
$(obj)init.lds: init.lds.S
|
||||||
|
$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P $^ -o $@
|
||||||
|
$(obj)init.elf: $(obj)init.lds $(obj)init.o $(obj)initcode.o
|
||||||
|
$(LD) $(LDFLAGS) -T $^ -o $@
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
||||||
# defines $(obj).depend target
|
# defines $(obj).depend target
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
#include <asm/blackfin.h>
|
||||||
|
ENTRY(_start)
|
||||||
|
sp.l = LO(L1_SRAM_SCRATCH_END - 20);
|
||||||
|
sp.h = HI(L1_SRAM_SCRATCH_END - 20);
|
||||||
|
call _initcode;
|
||||||
|
1:
|
||||||
|
emuexcpt;
|
||||||
|
jump 1b;
|
||||||
|
END(_start)
|
|
@ -0,0 +1,25 @@
|
||||||
|
/*
|
||||||
|
* linker script for simple init.elf
|
||||||
|
*
|
||||||
|
* Copyright (c) 2005-2011 Analog Device Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the GPL-2 or later.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
#include <asm/blackfin.h>
|
||||||
|
#undef ALIGN
|
||||||
|
#undef ENTRY
|
||||||
|
|
||||||
|
OUTPUT_ARCH(bfin)
|
||||||
|
|
||||||
|
MEMORY
|
||||||
|
{
|
||||||
|
l1_code : ORIGIN = L1_INST_SRAM, LENGTH = L1_INST_SRAM_SIZE
|
||||||
|
}
|
||||||
|
|
||||||
|
ENTRY(_start)
|
||||||
|
SECTIONS
|
||||||
|
{
|
||||||
|
.text.l1 : { *(.text .text.*) } >l1_code
|
||||||
|
}
|
Loading…
Reference in New Issue