[PATCH 0/7] binman: Add support for generating more complex FITs
Heinrich Schuchardt
xypron.glpk at gmx.de
Tue Aug 25 19:36:52 CEST 2020
On 8/25/20 6:57 PM, Simon Glass wrote:
> Hi Heinrich,
>
> On Tue, 25 Aug 2020 at 04:12, Heinrich Schuchardt <xypron.glpk at gmx.de> wrote:
>>
>> On 25.08.20 06:07, Heinrich Schuchardt wrote:
>>> On 8/22/20 4:36 AM, Simon Glass wrote:
>>>> This series allows binman to generate FITs that include multiple DTB
>>>> images and the configuration to use them.
>>>>
>>>> It is then possible to remove the sunxi FIT generator script, so this
>>>> series handles that also.
>>>>
>>>> With this, sunxi is fully converted to use binman.
>>>
>>> I have applied this patch series and it does not work on my
>>> pine64-lts_defconfig.
>>>
>>> Environment variable BL31 points to my bl31.bin:
>>>
>>> $ echo $BL31
>>> ../trusted-firmware-a/build/sun50i_a64/debug/bl31.bin
>>>
>>> U-Boot SPL 2020.10-rc2-00147-g72293dc579 (Aug 25 2020 - 03:29:28 +0000)
>>> DRAM: 2048 MiB
>>> Trying to boot from MMC1
>>> No matching DT out of these options:
>>> Configuration to load ATF before U-Boot
>>> No matching DT out of these options:
>>> Configuration to load ATF before U-Boot
>>> mmc_load_image_raw_sector: mmc block read error
>>> SPL: failed to boot from all boot devices
>>> ### ERROR ### Please RESET the board ###
>>>
>>> Without your patches U-Boot works. But CONFIG_SYS_MALLOC_F_LEN=0x400 is
>>> too small. This results in a warning "alloc space exhausted". Cf.
>>> https://patchwork.ozlabs.org/project/uboot/patch/20200725181851.4339-1-xypron.glpk@gmx.de/
>>>
>>> U-Boot SPL 2020.10-rc2-00140-g1aa3966173 (Aug 25 2020 - 03:46:36 +0000)
>>> DRAM: 2048 MiB
>>> Trying to boot from MMC1
>>> NOTICE: BL31: v2.2():v2.2-1138-g78460ced4
>>> NOTICE: BL31: Built : 05:50:47, Apr 7 2020
>>> NOTICE: BL31: Detected Allwinner A64/H64/R18 SoC (1689)
>>> NOTICE: BL31: Found U-Boot DTB at 0x4092cc8, model: Pine64 LTS
>>> INFO: ARM GICv2 driver initialized
>>> INFO: Configuring SPC Controller
>>> INFO: PMIC: Probing AXP803 on RSB
>>> INFO: PMIC: dcdc1 voltage: 3.300V
>>> INFO: PMIC: dcdc5 voltage: 1.200V
>>> INFO: PMIC: dcdc6 voltage: 1.100V
>>> INFO: PMIC: dldo1 voltage: 3.300V
>>> INFO: PMIC: dldo2 voltage: 3.300V
>>> INFO: PMIC: dldo4 voltage: 3.300V
>>> INFO: PMIC: fldo1 voltage: 1.200V
>>> INFO: PMIC: Enabling DC SW
>>> INFO: BL31: Platform setup done
>>> INFO: BL31: Initializing runtime services
>>> INFO: BL31: cortex_a53: CPU workaround for 843419 was applied
>>> INFO: BL31: cortex_a53: CPU workaround for 855873 was applied
>>> NOTICE: PSCI: System suspend is unavailable
>>> INFO: BL31: Preparing for EL3 exit to normal world
>>> INFO: Entry point address = 0x4a000000
>>> INFO: SPSR = 0x3c9
>>> alloc space exhausted
>>>
>>>
>>> U-Boot 2020.10-rc2-00140-g1aa3966173 (Aug 25 2020 - 03:46:36 +0000)
>>> Allwinner Technology
>>>
>>> CPU: Allwinner A64 (SUN50I)
>>> Model: Pine64 LTS
>>> DRAM: 2 GiB
>>> MMC: mmc at 1c0f000: 0, mmc at 1c11000: 1
>>> Loading Environment from FAT... Card did not respond to voltage select!
>>> In: serial
>>> Out: serial
>>> Err: serial
>>> Net: phy interface7
>>> eth0: ethernet at 1c30000
>>> Hit any key to stop autoboot: 0
>>>
>>> Best regards
>>>
>>> Heinrich
>>
>> This is u-boot.its created without your patches:
>>
>> /dts-v1/;
>>
>> / {
>> description = "Configuration to load ATF before U-Boot";
>> #address-cells = <1>;
>>
>> images {
>> uboot {
>> description = "U-Boot (64-bit)";
>> data = /incbin/("u-boot-nodtb.bin");
>> type = "standalone";
>> arch = "arm64";
>> compression = "none";
>> load = <0x4a000000>;
>> };
>> atf {
>> description = "ARM Trusted Firmware";
>> data =
>> /incbin/("../trusted-firmware-a/build/sun50i_a64/debug/bl31.bin");
>> type = "firmware";
>> arch = "arm64";
>> compression = "none";
>> load = <0x44000>;
>> entry = <0x44000>;
>> };
>> fdt_1 {
>> description = "sun50i-a64-pine64-lts";
>> data =
>> /incbin/("arch/arm/dts/sun50i-a64-pine64-lts.dtb");
>> type = "flat_dt";
>> compression = "none";
>> };
>> };
>> configurations {
>> default = "config_1";
>>
>> config_1 {
>> description = "sun50i-a64-pine64-lts";
>> firmware = "uboot";
>> loadables = "atf";
>> fdt = "fdt_1";
>> };
>> };
>> };
>>
>> This is the itb that is created with your patches:
>>
>> /dts-v1/;
>>
>> / {
>> description = "Configuration to load ATF before U-Boot";
>> #address-cells = < 0x01 >;
>>
>> images {
>>
>> uboot {
>> data = < 0x1f000 ...
>> description = "U-Boot (64-bit)";
>> type = "standalone";
>> arch = "arm64";
>> compression = "none";
>> load = < 0x4a000000 >;
>> };
>>
>> atf {
>> data = [ f4 ...
>> description = "ARM Trusted Firmware";
>> type = "firmware";
>> arch = "arm64";
>> compression = "none";
>> load = < 0x44000 >;
>> entry = < 0x44000 >;
>> };
>> };
>>
>> configurations {
>> default = "config-1";
>> };
>> };
>>
>>
>> The device tree is missing and the default configuration is empty.
>
> There was a thread on this, I thought.
Do you have a link?
> Can you check u-boot-dm/binman-working ?
Bad luck. The problem is reproducible with your branch
commit c6723231a80ad6c2a842778fea7d4857ba81d7c3 (HEAD -> binman-working,
dm/binman-working)
Author: Simon Glass <sjg at chromium.org>
Date: Fri Aug 21 20:25:56 2020 -0600
sunxi: Drop the FIT-generator script
U-Boot SPL 2020.10-rc2-00107-gc6723231a8 (Aug 25 2020 - 17:29:26 +0000)
DRAM: 2048 MiB
Trying to boot from MMC1
No matching DT out of these options:
Configuration to load ATF before U-Boot
No matching DT out of these options:
Configuration to load ATF before U-Boot
mmc_load_image_raw_sector: mmc block read error
SPL: failed to boot from all boot devices
### ERROR ### Please RESET the board ###
Best regards
Heinrich
>
> I can send v2 I suppose.
>
> Regards,
> Simon
>
More information about the U-Boot
mailing list