diff mbox series

[U-Boot] board: ti: ks2_evm: Over ride spl_get_load_buffer function

Message ID 1543321361-15316-1-git-send-email-j-keerthy@ti.com
State Accepted
Commit 3b074fb22b8f09178200b969395fa9f3d97a67e6
Delegated to: Tom Rini
Headers show
Series [U-Boot] board: ti: ks2_evm: Over ride spl_get_load_buffer function | expand

Commit Message

Keerthy Nov. 27, 2018, 12:22 p.m. UTC
Currently k2 spi boot is broken as the image header
is getting copied to an invalid memory location

CONFIG_SYS_TEXT_BASE - sizeof (struct image_size)
which maps to 0xc000000 - 0x40 = 0xbffffc0 being a reserved
location.

We cannot change the CONFIG_SYS_TEXT_BASE address as the single
stage boots like UART boot will need the address to be 0xc000000
hence override the spl_get_load_buffer to have image_header
address as CONFIG_SYS_TEXT_BASE aka 0xc000000

Signed-off-by: Keerthy <j-keerthy@ti.com>
---

Boot tetsed on K2G and K2E evms for UART, MMC and SPI modes.

 board/ti/ks2_evm/board.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Keerthy Dec. 4, 2018, 8:10 a.m. UTC | #1
On Tuesday 27 November 2018 05:52 PM, Keerthy wrote:
> Currently k2 spi boot is broken as the image header
> is getting copied to an invalid memory location
> 
> CONFIG_SYS_TEXT_BASE - sizeof (struct image_size)
> which maps to 0xc000000 - 0x40 = 0xbffffc0 being a reserved
> location.
> 
> We cannot change the CONFIG_SYS_TEXT_BASE address as the single
> stage boots like UART boot will need the address to be 0xc000000
> hence override the spl_get_load_buffer to have image_header
> address as CONFIG_SYS_TEXT_BASE aka 0xc000000

Tom,

Can this be pulled if there are no comments? This fixes SPI boot on k2
platforms which is currently broken.

Thanks,
Keerthy
> 
> Signed-off-by: Keerthy <j-keerthy@ti.com>
> ---
> 
> Boot tetsed on K2G and K2E evms for UART, MMC and SPI modes.
> 
>  board/ti/ks2_evm/board.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/board/ti/ks2_evm/board.c b/board/ti/ks2_evm/board.c
> index 72709c0..3e06800 100644
> --- a/board/ti/ks2_evm/board.c
> +++ b/board/ti/ks2_evm/board.c
> @@ -59,6 +59,11 @@ int dram_init(void)
>  	return 0;
>  }
>  
> +struct image_header *spl_get_load_buffer(ssize_t offset, size_t size)
> +{
> +	return (struct image_header *)(CONFIG_SYS_TEXT_BASE);
> +}
> +
>  int board_init(void)
>  {
>  	gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100;
>
Tom Rini Dec. 7, 2018, 8:33 p.m. UTC | #2
On Tue, Nov 27, 2018 at 05:52:41PM +0530, Keerthy wrote:

> Currently k2 spi boot is broken as the image header
> is getting copied to an invalid memory location
> 
> CONFIG_SYS_TEXT_BASE - sizeof (struct image_size)
> which maps to 0xc000000 - 0x40 = 0xbffffc0 being a reserved
> location.
> 
> We cannot change the CONFIG_SYS_TEXT_BASE address as the single
> stage boots like UART boot will need the address to be 0xc000000
> hence override the spl_get_load_buffer to have image_header
> address as CONFIG_SYS_TEXT_BASE aka 0xc000000
> 
> Signed-off-by: Keerthy <j-keerthy@ti.com>

Applied to u-boot/master, thanks!
diff mbox series

Patch

diff --git a/board/ti/ks2_evm/board.c b/board/ti/ks2_evm/board.c
index 72709c0..3e06800 100644
--- a/board/ti/ks2_evm/board.c
+++ b/board/ti/ks2_evm/board.c
@@ -59,6 +59,11 @@  int dram_init(void)
 	return 0;
 }
 
+struct image_header *spl_get_load_buffer(ssize_t offset, size_t size)
+{
+	return (struct image_header *)(CONFIG_SYS_TEXT_BASE);
+}
+
 int board_init(void)
 {
 	gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE + 0x100;