summaryrefslogtreecommitdiffstats
path: root/arch/mips/boot/Makefile
diff options
context:
space:
mode:
authorAntony Pavlov <antonynpavlov@gmail.com>2012-12-12 23:24:46 +0400
committerSascha Hauer <s.hauer@pengutronix.de>2012-12-14 08:34:33 +0100
commitf369f64ed1b29451c82c69c698da60ed8a8eb28f (patch)
tree3dfcdca076f6dbc817b00a65a7b2d695e4b134f6 /arch/mips/boot/Makefile
parent0ccb9aebcd98d99fdc22d938240c65c7466e8146 (diff)
downloadbarebox-f369f64ed1b29451c82c69c698da60ed8a8eb28f.tar.gz
barebox-f369f64ed1b29451c82c69c698da60ed8a8eb28f.tar.xz
MIPS: add pre-bootloader (pbl) image support
This patch is based on ARM pbl support and allows creating a pre-bootloader binary for compressed image. For different MIPS SoCs (or even for different boards based on the same SoC) the operations carried on in start-pbl.S can be very different. The additional constraints can be imposed on the size of the boot code or the special magic labels in the beginning of the boot code; In some cases it could be necessary to show CPU is alive as early as possible (transmit a char via UART or blink a LED). So the demands for pbl start operation can be very different. E.g. malta board store boot code at the NOR flash mapped to the MIPS power-on address (0xbfc00000); it is the most simple case: we need just copy pbl image from direct-mapped flash to RAM and jump there. The XBurst-powered boards store boot code in the beginning of a NAND flash or in the beginning of SD/MMC card. In this case we must use simple and short NAND or SD/MMC access routines to copy pbl image to RAM. To meet so different demands a simple technique is selected: * MIPS pbl entry point located in file arch/mips/boot/start-pbl.S. * MIPS pbl code (see start-pbl.S) assumes that every pbl-enabled board has a arch/mips/boards/<BOARD>/include/board/board_pbl_start.h header file. This file must contain definition of the board_pbl_start macro. This macro is used as start of pbl image; * the most popular asm routines (stack setup, relocation to link address, NS16550 initialization (WIP) and so on) are containt in the arch/mips/include/asm/pbl_macros.h header file. So board pbl macro can use it if necessary. It is possible to create similar headers with macros for each specific SoC; so even if we have many different boards based on the same SoC the board_pbl_start macro for every board can be short and clear. * after board-specific initialization the stack pointer is initialized and pbl C code is started. Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/mips/boot/Makefile')
-rw-r--r--arch/mips/boot/Makefile2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/mips/boot/Makefile b/arch/mips/boot/Makefile
index d6d28ce652..6b093f1e0e 100644
--- a/arch/mips/boot/Makefile
+++ b/arch/mips/boot/Makefile
@@ -1,2 +1,4 @@
obj-y += start.o
obj-y += main_entry.o
+
+pbl-y += start-pbl.o main_entry-pbl.o