summaryrefslogtreecommitdiff
path: root/common/init
AgeCommit message (Collapse)Author
2017-01-20board_init.c: Always use memset()Tom Rini
We can make the code read more easily here by simply using memset() always as when we don't have an optimized version of the function we will still have a version of this function around anyhow. Cc: Simon Glass <[email protected]> Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2017-01-20ARM: Default to using optimized memset and memcpy routinesTom Rini
We have long had available optimized versions of the memset and memcpy functions that are borrowed from the Linux kernel. We should use these in normal conditions as the speed wins in many workflows outweigh the relatively minor size increase. However, we have a number of places where we're simply too close to size limits in SPL and must be able to make the size vs performance trade-off in those cases. Cc: Philippe Reynes <[email protected]> Cc: Eric Jarrige <[email protected]> Cc: Heiko Schocher <[email protected]> Cc: Magnus Lilja <[email protected]> Cc: Lokesh Vutla <[email protected]> Cc: Chander Kashyap <[email protected]> Cc: Akshay Saraswat <[email protected]> Cc: Simon Glass <[email protected]> Cc: Stefan Roese <[email protected]> Signed-off-by: Tom Rini <[email protected]> Acked-by: Stefan Roese <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2016-06-09bootstage: call show_boot_progress also in SPLHeiko Schocher
show_boot_progress() is now called from SPL also. Signed-off-by: Heiko Schocher <[email protected]>
2016-01-15x86: Fix board init breakageSimon Glass
Commit ecc30663 ("Fix board init code to respect the C runtime environment") breaks x86. This was mentioned on https://patchwork.ozlabs.org/patch/548644 but not addressed. Correct it so that x86 boards boot again. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2016-01-13arm: move gd handling outside of C codeAlbert ARIBAUD
As of gcc 5.2.1 for Thumb-1, it is not possible any more to assign gd from C code, as gd is mapped to r9, and r9 may now be saved in the prolog sequence, and restored in the epilog sequence, of any C functions. Therefore arch_setup_gd(), which is supposed to set r9, may actually have no effect, causing U-Boot to use a bad address to access GD. Fix this by never calling arch_setup_gd() for ARM, and instead setting r9 in arch/arm/lib/crt0.S, to the value returned by board_init_f_alloc_reserve(). Signed-off-by: Albert ARIBAUD <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2016-01-13Fix board init code to respect the C runtime environmentAlbert ARIBAUD
board_init_f_mem() alters the C runtime environment's stack it is actually already using. This is not a valid behaviour within a C runtime environment. Split board_init_f_mem into C functions which do not alter their own stack and always behave properly with respect to their C runtime environment. Signed-off-by: Albert ARIBAUD <[email protected]> Acked-by: Thomas Chou <[email protected]>
2015-11-12board_init: Change the logic to setup malloc_baseFabio Estevam
Prior to commit 5ba534d247d418 ("arm: Switch 32-bit ARM to using generic global_data setup") we used to have assembly code that configured the malloc_base address. Since this commit we use the board_init_f_mem() function in C to setup malloc_base address. In board_init_f_mem() there was a deliberate choice to support only early malloc() or full malloc() in SPL, but not both. Adapt this logic to allow both to be used, one after the other, in SPL. This issue has been observed in a Congatec board, where we need to retrieve the manufacturing information from the SPI NOR (the SPI API calls malloc) prior to configuring the DRAM. In this case as malloc_base was not configured we always see malloc to fail. With this change we are able to use malloc in SPL prior to DRAM gets initialized. Also update the CONFIG_SYS_SPL_MALLOC_START entry in the README file. Signed-off-by: Fabio Estevam <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2015-10-24board_init_f_mem(): Don't create an unused early malloc() areaSimon Glass
Change the #ifdef so that the early malloc() area is not set up in SPL if CONFIG_SYS_SPL_MALLOC_START is defined. In that case it would never actually be used, and just chews up stack space. Signed-off-by: Simon Glass <[email protected]> Tested-by: Masahiro Yamada <[email protected]>
2015-10-24board_init_f_mem(): Don't require memset()Simon Glass
Unfortunately memset() is not always available, so provide a substitute when needed. Signed-off-by: Simon Glass <[email protected]>
2015-10-24Move board_init_f_mem() into a common locationSimon Glass
This function will be used by both SPL and U-Boot proper. So move it into a common place. Also change the #ifdef so that the early malloc() area is not set up in SPL if CONFIG_SYS_SPL_MALLOC_START is defined. In that case it would never actually be used, and just chews up stack space. Signed-off-by: Simon Glass <[email protected]>