mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-11 07:24:46 +00:00
board: verdin-am62: fix missing memory fixup call
The commitbc07851897
("board: ti: Pull redundant DDR functions to a common location and Fixup DDR size when ECC is enabled") broke DRAM support for the Verdin AM62. This was partially fixed with commit3f866c47b5
("board: verdin-am62: add dram_init_banksize"). However, because fixup_memory_node was not called, the Linux kernel was started with the wrong memory size on modules with less memory available. This resulted in boot failures. Fix this issue by calling fixup_memory_node in the board file. spl_perform_fixups will be called in the SPL and now sets the correct memory size in the device tree of U-Boot by calling fixup_memory_node. U-Boot will then adjust the memory sizes of Linux during bootm/booti in fdt_fixup_memory_banks. This chain ensures that U-Boot and Linux only use RAM that is actually available. Fixes:3f866c47b5
("board: verdin-am62: add dram_init_banksize") Fixes:bc07851897
("board: ti: Pull redundant DDR functions to a common location and Fixup DDR size when ECC is enabled") Signed-off-by: Stefan Eichenberger <stefan.eichenberger@toradex.com> Acked-by: Francesco Dolcini <francesco.dolcini@toradex.com>
This commit is contained in:
parent
7e0370f37d
commit
4164289db8
1 changed files with 11 additions and 0 deletions
|
@ -15,6 +15,7 @@
|
|||
#include <init.h>
|
||||
#include <k3-ddrss.h>
|
||||
#include <spl.h>
|
||||
#include <asm/arch/k3-ddr.h>
|
||||
|
||||
#include "../common/tdx-cfg-block.h"
|
||||
|
||||
|
@ -43,6 +44,9 @@ int dram_init_banksize(void)
|
|||
if (ret)
|
||||
printf("Error setting up memory banksize. %d\n", ret);
|
||||
|
||||
/* Use the detected RAM size, we only support 1 bank right now. */
|
||||
gd->bd->bi_dram[0].size = gd->ram_size;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -108,6 +112,13 @@ int board_late_init(void)
|
|||
#define CORE_VOLTAGE 0x80000000
|
||||
#define MCU_CTRL_LFXOSC_32K_BYPASS_VAL BIT(4)
|
||||
|
||||
#if IS_ENABLED(CONFIG_XPL_BUILD)
|
||||
void spl_perform_fixups(struct spl_image_info *spl_image)
|
||||
{
|
||||
fixup_memory_node(spl_image);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_SPL_BOARD_INIT
|
||||
void spl_board_init(void)
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue