[U-Boot] [PATCH 3/7] warp7: include: configs: Differentiate bootscript address from loadaddr

Bryan O'Donoghue bryan.odonoghue at linaro.org
Mon May 13 22:13:37 UTC 2019



On 09/05/2019 16:32, Bryan O'Donoghue wrote:
> 
> 
> On 08/05/2019 20:33, Pierre-Jean Texier wrote:
>> Hi Bryan,
>>
>> Le 08/05/2019 à 20:14, Bryan O'Donoghue a écrit :
>>> Reusing the loadaddr to load the boot script breaks some of the logic we
>>> want to have around the bootscript/FIT load addresses. Making a 
>>> dedicated
>>> bootscript address allows us to differentiate the bootscript load 
>>> address
>>> from the Linux Kernel or OPTEE load address, thus ensuring that no 
>>> matter
>>> what the load sequence the bootscript and Kernel/OPTEE binary load
>>> addresses do not conflict.
>>>
>>> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue at linaro.org>
>>> ---
>>>   include/configs/warp7.h | 7 ++++---
>>>   1 file changed, 4 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/include/configs/warp7.h b/include/configs/warp7.h
>>> index 95955fd626..0c63050833 100644
>>> --- a/include/configs/warp7.h
>>> +++ b/include/configs/warp7.h
>>> @@ -50,6 +50,7 @@
>>>       "script=boot.scr\0" \
>>>       "bootscr_fitimage_name=bootscr\0" \
>>>       "script_signed=boot.scr.imx-signed\0" \
>>> +    "bootscriptaddr=0x83200000\0" \
>>>       "image=zImage\0" \
>>>       "console=ttymxc0\0" \
>>>       "ethact=usb_ether\0" \
>>> @@ -70,16 +71,16 @@
>>>       "warp7_auth_or_fail=hab_auth_img_or_fail ${hab_ivt_addr} 
>>> ${filesize} 0;\0" \
>>>       "do_bootscript_hab=" \
>>>           "if test ${hab_enabled} -eq 1; then " \
>>> -            "setexpr hab_ivt_addr ${loadaddr} - ${ivt_offset}; " \
>>> +            "setexpr hab_ivt_addr ${bootscriptaddr} - ${ivt_offset}; 
>>> " \
>>>               "setenv script ${script_signed}; " \
>>>               "load mmc ${mmcdev}:${mmcpart} ${hab_ivt_addr} 
>>> ${script}; " \
>>>               "run warp7_auth_or_fail; " \
>>>               "run bootscript; "\
>>>           "fi;\0" \
>>>       "loadbootscript=" \
>>> -        "load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \
>>> +        "load mmc ${mmcdev}:${mmcpart} ${bootscriptaddr} 
>>> ${script};\0" \
>>>       "bootscript=echo Running bootscript from mmc ...; " \
>>> -        "source\0" \
>>> +        BOOT_SCR_STRING \
>>>       "loadimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \
>>>       "loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdt_addr} 
>>> ${fdt_file}\0" \
>>>       "mmcboot=echo Booting from mmc ...; " \
>>
>> Instead of implementing a new variable (bootscriptaddr), I think 
>> (IMHO) it's time to migrate
>>
>> to distroboot for the WaRP7 (like pico imx7 for instance >
>>
>> In fact, in this specific case, this allows to use the common 
>> scriptaddr[1] variable.
>> FYI, this is a task I am currently working on [2] (work in progress). 
>> Maybe we could integrate this migration into this series ?
> 
> Sure.
> 
> Let me give it a test later tonight/tomorrow

Hi Pierre,

I've applied your patch on-top of of a 3 day old master

* 60277e4bcc - (HEAD) warp7: add distroboot support (27 hours ago)
* 4ca7700d2c - imx: Use a convenient default value for SYS_MALLOC_F_LEN 
(27 hours ago)
* 48372a5af6 - Remove whitelist entry for CONFIG_CRC32 (3 days ago)
* 4ad2c8953d - Remove #define CONFIG_CRC32 (3 days ago)
* 661bbc50d3 - mtd: ubi: Remove select for non existent option (3 days ago)
* 2b841dba5c - cmd: ubifs: Remove select for non-existent option (3 days 
ago)
* b8de00c671 - Remove whitelist entry for CONFIG_GPIO (3 days ago)
* 26680b9f3a - sysreset: select DM_GPIO instead of GPIO (3 days ago)
*   927a37df9f - Merge branch '2019-05-09-master-imports' (3 days ago)

should this apply in isolation ?

I get a dead-loop on USB CDC ethernet...

=> reset
resetting ...


U-Boot 2019.07-rc1-00457-g60277e4bcc (May 13 2019 - 23:11:24 +0100)

CPU:   Freescale i.MX7S rev1.2 800 MHz (running at 792 MHz)
CPU:   Extended Commercial temperature grade (-20C to 105C) at 47C
Reset cause: POR
Model: Warp i.MX7 Board
Board: WARP7 in secure mode OPTEE DRAM 0x9d000000-0xa0000000
DRAM:  464 MiB
PMIC: PFUZE3000 DEV_ID=0x30 REV_ID=0x11
MMC:   FSL_SDHC: 1, FSL_SDHC: 0
Loading Environment from MMC... *** Warning - bad CRC, using default 
environment

In:    serial at 30860000
Out:   serial at 30860000
Err:   serial at 30860000
SEC0: RNG instantiated
Net:   usb_ether
Warning: usb_ether (eth0) using random MAC address - b6:5e:3c:03:d8:8e

Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc0(part 0) is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
11090492 bytes read in 146 ms (72.4 MiB/s)
## Executing script at 80800000
No FIT subimage unit name
SCRIPT FAILED: continuing...
28970 bytes read in 7 ms (3.9 MiB/s)
starting USB...
Bus usb at 30b10000: scanning bus usb at 30b10000 for devices... 1 USB 
Device(s) found
using ci_udc, OUT ep2out-bulk IN ep1in-bulk STATUS ep3in-int
MAC de:ad:be:af:00:01
HOST MAC de:ad:be:af:00:00
high speed config #1: 2 mA, Ethernet Gadget, using CDC Ethernet
The remote end did not respond in time.missing environment variable: pxeuuid
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/00000000
using ci_udc, OUT ep2out-bulk IN ep1in-bulk STATUS ep3in-int
MAC de:ad:be:af:00:01
HOST MAC de:ad:be:af:00:00
high speed config #1: 2 mA, Ethernet Gadget, using CDC Ethernet
The remote end did not respond in time.missing environment variable: 
bootfile
Retrieving file: pxelinux.cfg/0000000
using ci_udc, OUT ep2out-bulk IN ep1in-bulk STATUS ep3in-int
MAC de:ad:be:af:00:01
HOST MAC de:ad:be:af:00:00
high speed config #1: 2 mA, Ethernet Gadget, using CDC Ethernet
The remote end did not respond in time.missing environment variable: 
bootfile

---
bod


More information about the U-Boot mailing list