From mboxrd@z Thu Jan 1 00:00:00 1970 From: Giulio Benetti Date: Mon, 9 Dec 2019 11:47:51 +0100 Subject: [PATCH 02/20] spl: fix entry_point equal to load_addr In-Reply-To: <20191208153735.06fca8c0@jawa> References: <20191204174439.69934-1-giulio.benetti@benettiengineering.com> <20191204174439.69934-3-giulio.benetti@benettiengineering.com> <20191208153735.06fca8c0@jawa> Message-ID: <44258506-3c43-9e00-39fd-b92794a4c399@benettiengineering.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Lukasz, First of all thank you for reviewing my patches and... On 12/8/19 3:37 PM, Lukasz Majewski wrote: > On Wed, 4 Dec 2019 18:44:21 +0100 > Giulio Benetti wrote: > >> At the moment entry_point is set to image_get_load(header) that sets >> it to "load address" instead of "entry point", assuming entry_point is >> equal to load_addr, but it's not true. Then load_addr is set to >> "entry_point - header_size", but this is wrong too since load_addr is >> not an entry point. >> >> So use image_get_ep() for entry_point assignment and image_get_load() >> for load_addr assignment. >> >> Signed-off-by: Giulio Benetti >> --- >> common/spl/spl.c | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/common/spl/spl.c b/common/spl/spl.c >> index d51dbe9942..24da164b43 100644 >> --- a/common/spl/spl.c >> +++ b/common/spl/spl.c >> @@ -264,9 +264,9 @@ int spl_parse_image_header(struct spl_image_info >> *spl_image, spl_image->entry_point = image_get_ep(header); >> spl_image->size = >> image_get_data_size(header); } else { >> - spl_image->entry_point = >> image_get_load(header); >> + spl_image->entry_point = >> image_get_ep(header); /* Load including the header */ >> - spl_image->load_addr = >> spl_image->entry_point - >> + spl_image->load_addr = >> image_get_load(header) - header_size; >> spl_image->size = >> image_get_data_size(header) + header_size; > > This may not be the case - but I do recall that there was a similar > issue between u-boot.bin and u-boot.imx being loaded. ...I erroneously sent this patch again in this series but it's been already committed and then reverted at the moment and will be committed on next version since it breaks a lot of boards that assume that "load address" and "entry point" are the same. Here is the discussion: https://lists.denx.de/pipermail/u-boot/2019-December/393010.html > What is the format of i.MXRT? i.MXRT is a cortex-M7, so it needs "load address" to be different from "entry point", since entry point is offset of 0x3FD from "load address". This is done in board defconfig with: CONFIG_SYS_UBOOT_START different from: CONFIG_SYS_TEXT_BASE > I'm also concerned about breaking already supported in-tree boards. Why > i.MXRT needs to make this change? And why other boards don't need that > fix? (do they all have load address equal to entry point ?) Indeed, all these boards assume load address and entry point to be the same. Best regards -- Giulio Benetti Benetti Engineering sas > > > Best regards, > > Lukasz Majewski > > -- > > DENX Software Engineering GmbH, Managing Director: Wolfgang Denk > HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany > Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de >