diff mbox series

[1/1] vexpress_ca9x4: Enable use of correct DTB file and restore EFI loader.

Message ID 20200225172216.28472-1-kristian.amlie@northern.tech
State Accepted
Commit d4babee087f24a60d910659cb4367a077bad87a0
Headers show
Series [1/1] vexpress_ca9x4: Enable use of correct DTB file and restore EFI loader. | expand

Commit Message

Kristian Amlie Feb. 25, 2020, 5:22 p.m. UTC
EFI was disabled in f95b8a4b5f64f because of the missing DTB file,
and indeed, the DTB file is required to load recent versions of GRUB
(2.04) correctly.

Signed-off-by: Kristian Amlie <kristian.amlie at northern.tech>
---
 configs/vexpress_ca9x4_defconfig  | 2 +-
 include/configs/vexpress_common.h | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

Comments

Tom Rini Feb. 28, 2020, 3:32 p.m. UTC | #1
On Tue, Feb 25, 2020 at 06:22:16PM +0100, Kristian Amlie wrote:

> EFI was disabled in f95b8a4b5f64f because of the missing DTB file,
> and indeed, the DTB file is required to load recent versions of GRUB
> (2.04) correctly.
> 
> Signed-off-by: Kristian Amlie <kristian.amlie at northern.tech>
> ---
>  configs/vexpress_ca9x4_defconfig  | 2 +-
>  include/configs/vexpress_common.h | 3 ++-
>  2 files changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/configs/vexpress_ca9x4_defconfig b/configs/vexpress_ca9x4_defconfig
> index 2119df6b10..6bd1f253b6 100644
> --- a/configs/vexpress_ca9x4_defconfig
> +++ b/configs/vexpress_ca9x4_defconfig
> @@ -34,4 +34,4 @@ CONFIG_SMC911X_32_BIT=y
>  CONFIG_BAUDRATE=38400
>  CONFIG_CONS_INDEX=0
>  CONFIG_OF_LIBFDT=y
> -# CONFIG_EFI_LOADER is not set
> +CONFIG_DEFAULT_FDT_FILE="vexpress-v2p-ca9.dtb"
> diff --git a/include/configs/vexpress_common.h b/include/configs/vexpress_common.h
> index 7f215a6707..e73658a9e6 100644
> --- a/include/configs/vexpress_common.h
> +++ b/include/configs/vexpress_common.h
> @@ -207,7 +207,8 @@
>  			"devtmpfs.mount=0  vmalloc=256M\0" \
>  		"bootflash=run flashargs; " \
>  			"cp ${ramdisk_addr} ${ramdisk_addr_r} ${maxramdisk}; " \
> -			"bootm ${kernel_addr} ${ramdisk_addr_r}\0"
> +			"bootm ${kernel_addr} ${ramdisk_addr_r}\0" \
> +		"fdtfile=" CONFIG_DEFAULT_FDT_FILE "\0"
>  
>  /* FLASH and environment organization */
>  #define PHYS_FLASH_SIZE			0x04000000	/* 64MB */

Did you test build all of the vexpress platforms?  There's a common file
for the 5 different ones.  Thanks!
Kristian Amlie March 2, 2020, 10:22 a.m. UTC | #2
On 28/02/2020 16:32, Tom Rini wrote:
> On Tue, Feb 25, 2020 at 06:22:16PM +0100, Kristian Amlie wrote:
> 
>> EFI was disabled in f95b8a4b5f64f because of the missing DTB file,
>> and indeed, the DTB file is required to load recent versions of GRUB
>> (2.04) correctly.
>>
>> Signed-off-by: Kristian Amlie <kristian.amlie at northern.tech>
>> ---
>>  configs/vexpress_ca9x4_defconfig  | 2 +-
>>  include/configs/vexpress_common.h | 3 ++-
>>  2 files changed, 3 insertions(+), 2 deletions(-)
>>
>> diff --git a/configs/vexpress_ca9x4_defconfig b/configs/vexpress_ca9x4_defconfig
>> index 2119df6b10..6bd1f253b6 100644
>> --- a/configs/vexpress_ca9x4_defconfig
>> +++ b/configs/vexpress_ca9x4_defconfig
>> @@ -34,4 +34,4 @@ CONFIG_SMC911X_32_BIT=y
>>  CONFIG_BAUDRATE=38400
>>  CONFIG_CONS_INDEX=0
>>  CONFIG_OF_LIBFDT=y
>> -# CONFIG_EFI_LOADER is not set
>> +CONFIG_DEFAULT_FDT_FILE="vexpress-v2p-ca9.dtb"
>> diff --git a/include/configs/vexpress_common.h b/include/configs/vexpress_common.h
>> index 7f215a6707..e73658a9e6 100644
>> --- a/include/configs/vexpress_common.h
>> +++ b/include/configs/vexpress_common.h
>> @@ -207,7 +207,8 @@
>>  			"devtmpfs.mount=0  vmalloc=256M\0" \
>>  		"bootflash=run flashargs; " \
>>  			"cp ${ramdisk_addr} ${ramdisk_addr_r} ${maxramdisk}; " \
>> -			"bootm ${kernel_addr} ${ramdisk_addr_r}\0"
>> +			"bootm ${kernel_addr} ${ramdisk_addr_r}\0" \
>> +		"fdtfile=" CONFIG_DEFAULT_FDT_FILE "\0"
>>  
>>  /* FLASH and environment organization */
>>  #define PHYS_FLASH_SIZE			0x04000000	/* 64MB */
> 
> Did you test build all of the vexpress platforms?  There's a common file
> for the 5 different ones.  Thanks!

The two boards vexpress_aemv8a_juno_defconfig and
vexpress_aemv8a_semi_defconfig don't compile at all, even without the
patch. The other three compile just fine both with and without the patch.
Tom Rini March 2, 2020, 1:01 p.m. UTC | #3
On Mon, Mar 02, 2020 at 11:22:27AM +0100, Kristian Amlie wrote:
> On 28/02/2020 16:32, Tom Rini wrote:
> > On Tue, Feb 25, 2020 at 06:22:16PM +0100, Kristian Amlie wrote:
> > 
> >> EFI was disabled in f95b8a4b5f64f because of the missing DTB file,
> >> and indeed, the DTB file is required to load recent versions of GRUB
> >> (2.04) correctly.
> >>
> >> Signed-off-by: Kristian Amlie <kristian.amlie at northern.tech>
> >> ---
> >>  configs/vexpress_ca9x4_defconfig  | 2 +-
> >>  include/configs/vexpress_common.h | 3 ++-
> >>  2 files changed, 3 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/configs/vexpress_ca9x4_defconfig b/configs/vexpress_ca9x4_defconfig
> >> index 2119df6b10..6bd1f253b6 100644
> >> --- a/configs/vexpress_ca9x4_defconfig
> >> +++ b/configs/vexpress_ca9x4_defconfig
> >> @@ -34,4 +34,4 @@ CONFIG_SMC911X_32_BIT=y
> >>  CONFIG_BAUDRATE=38400
> >>  CONFIG_CONS_INDEX=0
> >>  CONFIG_OF_LIBFDT=y
> >> -# CONFIG_EFI_LOADER is not set
> >> +CONFIG_DEFAULT_FDT_FILE="vexpress-v2p-ca9.dtb"
> >> diff --git a/include/configs/vexpress_common.h b/include/configs/vexpress_common.h
> >> index 7f215a6707..e73658a9e6 100644
> >> --- a/include/configs/vexpress_common.h
> >> +++ b/include/configs/vexpress_common.h
> >> @@ -207,7 +207,8 @@
> >>  			"devtmpfs.mount=0  vmalloc=256M\0" \
> >>  		"bootflash=run flashargs; " \
> >>  			"cp ${ramdisk_addr} ${ramdisk_addr_r} ${maxramdisk}; " \
> >> -			"bootm ${kernel_addr} ${ramdisk_addr_r}\0"
> >> +			"bootm ${kernel_addr} ${ramdisk_addr_r}\0" \
> >> +		"fdtfile=" CONFIG_DEFAULT_FDT_FILE "\0"
> >>  
> >>  /* FLASH and environment organization */
> >>  #define PHYS_FLASH_SIZE			0x04000000	/* 64MB */
> > 
> > Did you test build all of the vexpress platforms?  There's a common file
> > for the 5 different ones.  Thanks!
> 
> The two boards vexpress_aemv8a_juno_defconfig and
> vexpress_aemv8a_semi_defconfig don't compile at all, even without the
> patch. The other three compile just fine both with and without the patch.

Don't compile where / how?  All 5 compile with their defconfigs today.
Thanks!
Kristian Amlie March 2, 2020, 1:15 p.m. UTC | #4
On 02/03/2020 14:01, Tom Rini wrote:
> On Mon, Mar 02, 2020 at 11:22:27AM +0100, Kristian Amlie wrote:
>> On 28/02/2020 16:32, Tom Rini wrote:
>>> On Tue, Feb 25, 2020 at 06:22:16PM +0100, Kristian Amlie wrote:
>>>
>>>> EFI was disabled in f95b8a4b5f64f because of the missing DTB file,
>>>> and indeed, the DTB file is required to load recent versions of GRUB
>>>> (2.04) correctly.
>>>>
>>>> Signed-off-by: Kristian Amlie <kristian.amlie at northern.tech>
>>>> ---
>>>>  configs/vexpress_ca9x4_defconfig  | 2 +-
>>>>  include/configs/vexpress_common.h | 3 ++-
>>>>  2 files changed, 3 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/configs/vexpress_ca9x4_defconfig b/configs/vexpress_ca9x4_defconfig
>>>> index 2119df6b10..6bd1f253b6 100644
>>>> --- a/configs/vexpress_ca9x4_defconfig
>>>> +++ b/configs/vexpress_ca9x4_defconfig
>>>> @@ -34,4 +34,4 @@ CONFIG_SMC911X_32_BIT=y
>>>>  CONFIG_BAUDRATE=38400
>>>>  CONFIG_CONS_INDEX=0
>>>>  CONFIG_OF_LIBFDT=y
>>>> -# CONFIG_EFI_LOADER is not set
>>>> +CONFIG_DEFAULT_FDT_FILE="vexpress-v2p-ca9.dtb"
>>>> diff --git a/include/configs/vexpress_common.h b/include/configs/vexpress_common.h
>>>> index 7f215a6707..e73658a9e6 100644
>>>> --- a/include/configs/vexpress_common.h
>>>> +++ b/include/configs/vexpress_common.h
>>>> @@ -207,7 +207,8 @@
>>>>  			"devtmpfs.mount=0  vmalloc=256M\0" \
>>>>  		"bootflash=run flashargs; " \
>>>>  			"cp ${ramdisk_addr} ${ramdisk_addr_r} ${maxramdisk}; " \
>>>> -			"bootm ${kernel_addr} ${ramdisk_addr_r}\0"
>>>> +			"bootm ${kernel_addr} ${ramdisk_addr_r}\0" \
>>>> +		"fdtfile=" CONFIG_DEFAULT_FDT_FILE "\0"
>>>>  
>>>>  /* FLASH and environment organization */
>>>>  #define PHYS_FLASH_SIZE			0x04000000	/* 64MB */
>>>
>>> Did you test build all of the vexpress platforms?  There's a common file
>>> for the 5 different ones.  Thanks!
>>
>> The two boards vexpress_aemv8a_juno_defconfig and
>> vexpress_aemv8a_semi_defconfig don't compile at all, even without the
>> patch. The other three compile just fine both with and without the patch.
> 
> Don't compile where / how?  All 5 compile with their defconfigs today.
> Thanks!

Oh, those are 64-bit boards, sorry I missed that part. All five are
compiling fine then, both with and without the patch!
Kristian Amlie March 20, 2020, 8:07 a.m. UTC | #5
On 02/03/2020 14:15, Kristian Amlie wrote:
> On 02/03/2020 14:01, Tom Rini wrote:
>> On Mon, Mar 02, 2020 at 11:22:27AM +0100, Kristian Amlie wrote:
>>> On 28/02/2020 16:32, Tom Rini wrote:
>>>> On Tue, Feb 25, 2020 at 06:22:16PM +0100, Kristian Amlie wrote:
>>>>
>>>>> EFI was disabled in f95b8a4b5f64f because of the missing DTB file,
>>>>> and indeed, the DTB file is required to load recent versions of GRUB
>>>>> (2.04) correctly.
>>>>>
>>>>> Signed-off-by: Kristian Amlie <kristian.amlie at northern.tech>
>>>>> ---
>>>>>   configs/vexpress_ca9x4_defconfig  | 2 +-
>>>>>   include/configs/vexpress_common.h | 3 ++-
>>>>>   2 files changed, 3 insertions(+), 2 deletions(-)
>>>>>
>>>>> diff --git a/configs/vexpress_ca9x4_defconfig b/configs/vexpress_ca9x4_defconfig
>>>>> index 2119df6b10..6bd1f253b6 100644
>>>>> --- a/configs/vexpress_ca9x4_defconfig
>>>>> +++ b/configs/vexpress_ca9x4_defconfig
>>>>> @@ -34,4 +34,4 @@ CONFIG_SMC911X_32_BIT=y
>>>>>   CONFIG_BAUDRATE=38400
>>>>>   CONFIG_CONS_INDEX=0
>>>>>   CONFIG_OF_LIBFDT=y
>>>>> -# CONFIG_EFI_LOADER is not set
>>>>> +CONFIG_DEFAULT_FDT_FILE="vexpress-v2p-ca9.dtb"
>>>>> diff --git a/include/configs/vexpress_common.h b/include/configs/vexpress_common.h
>>>>> index 7f215a6707..e73658a9e6 100644
>>>>> --- a/include/configs/vexpress_common.h
>>>>> +++ b/include/configs/vexpress_common.h
>>>>> @@ -207,7 +207,8 @@
>>>>>   			"devtmpfs.mount=0  vmalloc=256M\0" \
>>>>>   		"bootflash=run flashargs; " \
>>>>>   			"cp ${ramdisk_addr} ${ramdisk_addr_r} ${maxramdisk}; " \
>>>>> -			"bootm ${kernel_addr} ${ramdisk_addr_r}\0"
>>>>> +			"bootm ${kernel_addr} ${ramdisk_addr_r}\0" \
>>>>> +		"fdtfile=" CONFIG_DEFAULT_FDT_FILE "\0"
>>>>>   
>>>>>   /* FLASH and environment organization */
>>>>>   #define PHYS_FLASH_SIZE			0x04000000	/* 64MB */
>>>>
>>>> Did you test build all of the vexpress platforms?  There's a common file
>>>> for the 5 different ones.  Thanks!
>>>
>>> The two boards vexpress_aemv8a_juno_defconfig and
>>> vexpress_aemv8a_semi_defconfig don't compile at all, even without the
>>> patch. The other three compile just fine both with and without the patch.
>>
>> Don't compile where / how?  All 5 compile with their defconfigs today.
>> Thanks!
> 
> Oh, those are 64-bit boards, sorry I missed that part. All five are
> compiling fine then, both with and without the patch!

Anything I can do to help this along?
Tom Rini March 27, 2020, 1:39 a.m. UTC | #6
On Tue, Feb 25, 2020 at 06:22:16PM +0100, Kristian Amlie wrote:

> EFI was disabled in f95b8a4b5f64f because of the missing DTB file,
> and indeed, the DTB file is required to load recent versions of GRUB
> (2.04) correctly.
> 
> Signed-off-by: Kristian Amlie <kristian.amlie at northern.tech>

Applied to u-boot/master, thanks!
Heinrich Schuchardt March 27, 2020, 5:44 a.m. UTC | #7
On 3/27/20 2:39 AM, Tom Rini wrote:
> On Tue, Feb 25, 2020 at 06:22:16PM +0100, Kristian Amlie wrote:
>
>> EFI was disabled in f95b8a4b5f64f because of the missing DTB file,
>> and indeed, the DTB file is required to load recent versions of GRUB
>> (2.04) correctly.
>>
>> Signed-off-by: Kristian Amlie <kristian.amlie at northern.tech>
>
> Applied to u-boot/master, thanks!
>

Since this patch is merged I get errors on Gitlab for vexpress_ca9x4:

https://gitlab.denx.de/u-boot/custodians/u-boot-efi/-/jobs/69269

Filename 'lib/efi_loader/helloworld.efi'.
Load address: 0x60000000
Loading: *#
	 1.8 MiB/s
done
Bytes transferred = 1840 (730 hex)
smc911x: MAC 52:54:00:12:34:56
=> => crc32 60000000 $filesize
CRC32 for 60000000 ... 6000072f ==> f5c77855
=> => bootefi 60000000
78Scanning disks on mmc...
Card did not respond to voltage select!
MMC Device 1 not found
MMC Device 2 not found
MMC Device 3 not found
Found 0 disks
ERROR: need device tree

Best regards

Heinrich
Kristian Amlie March 27, 2020, 7:18 a.m. UTC | #8
On 27/03/2020 06:44, Heinrich Schuchardt wrote:
> On 3/27/20 2:39 AM, Tom Rini wrote:
>> On Tue, Feb 25, 2020 at 06:22:16PM +0100, Kristian Amlie wrote:
>>
>>> EFI was disabled in f95b8a4b5f64f because of the missing DTB file,
>>> and indeed, the DTB file is required to load recent versions of GRUB
>>> (2.04) correctly.
>>>
>>> Signed-off-by: Kristian Amlie <kristian.amlie at northern.tech>
>>
>> Applied to u-boot/master, thanks!
>>
> 
> Since this patch is merged I get errors on Gitlab for vexpress_ca9x4:
> 
> https://gitlab.denx.de/u-boot/custodians/u-boot-efi/-/jobs/69269
> 
> Filename 'lib/efi_loader/helloworld.efi'.
> Load address: 0x60000000
> Loading: *#
>  ???? 1.8 MiB/s
> done
> Bytes transferred = 1840 (730 hex)
> smc911x: MAC 52:54:00:12:34:56
> => => crc32 60000000 $filesize
> CRC32 for 60000000 ... 6000072f ==> f5c77855
> => => bootefi 60000000
> 78Scanning disks on mmc...
> Card did not respond to voltage select!
> MMC Device 1 not found
> MMC Device 2 not found
> MMC Device 3 not found
> Found 0 disks
> ERROR: need device tree

Is the "bootefi 60000000" command correct? Doesn't "bootefi" need to be 
called with both an EFI binary address and a device tree address?
Tom Rini March 27, 2020, 3:45 p.m. UTC | #9
On Fri, Mar 27, 2020 at 08:18:32AM +0100, Kristian Amlie wrote:
> On 27/03/2020 06:44, Heinrich Schuchardt wrote:
> > On 3/27/20 2:39 AM, Tom Rini wrote:
> > > On Tue, Feb 25, 2020 at 06:22:16PM +0100, Kristian Amlie wrote:
> > > 
> > > > EFI was disabled in f95b8a4b5f64f because of the missing DTB file,
> > > > and indeed, the DTB file is required to load recent versions of GRUB
> > > > (2.04) correctly.
> > > > 
> > > > Signed-off-by: Kristian Amlie <kristian.amlie at northern.tech>
> > > 
> > > Applied to u-boot/master, thanks!
> > > 
> > 
> > Since this patch is merged I get errors on Gitlab for vexpress_ca9x4:
> > 
> > https://gitlab.denx.de/u-boot/custodians/u-boot-efi/-/jobs/69269
> > 
> > Filename 'lib/efi_loader/helloworld.efi'.
> > Load address: 0x60000000
> > Loading: *#
> >  ???? 1.8 MiB/s
> > done
> > Bytes transferred = 1840 (730 hex)
> > smc911x: MAC 52:54:00:12:34:56
> > => => crc32 60000000 $filesize
> > CRC32 for 60000000 ... 6000072f ==> f5c77855
> > => => bootefi 60000000
> > 78Scanning disks on mmc...
> > Card did not respond to voltage select!
> > MMC Device 1 not found
> > MMC Device 2 not found
> > MMC Device 3 not found
> > Found 0 disks
> > ERROR: need device tree
> 
> Is the "bootefi 60000000" command correct? Doesn't "bootefi" need to be
> called with both an EFI binary address and a device tree address?

It is I believe what we do elsewhere.  I'm going to revert this for now
until it can be sorted out, sorry.
Heinrich Schuchardt March 28, 2020, 9:36 a.m. UTC | #10
On 3/27/20 8:18 AM, Kristian Amlie wrote:
> On 27/03/2020 06:44, Heinrich Schuchardt wrote:
>> On 3/27/20 2:39 AM, Tom Rini wrote:
>>> On Tue, Feb 25, 2020 at 06:22:16PM +0100, Kristian Amlie wrote:
>>>
>>>> EFI was disabled in f95b8a4b5f64f because of the missing DTB file,
>>>> and indeed, the DTB file is required to load recent versions of GRUB
>>>> (2.04) correctly.
>>>>
>>>> Signed-off-by: Kristian Amlie <kristian.amlie at northern.tech>
>>>
>>> Applied to u-boot/master, thanks!
>>>
>>
>> Since this patch is merged I get errors on Gitlab for vexpress_ca9x4:
>>
>> https://gitlab.denx.de/u-boot/custodians/u-boot-efi/-/jobs/69269
>>
>> Filename 'lib/efi_loader/helloworld.efi'.
>> Load address: 0x60000000
>> Loading: *#
>> ????? 1.8 MiB/s
>> done
>> Bytes transferred = 1840 (730 hex)
>> smc911x: MAC 52:54:00:12:34:56
>> => => crc32 60000000 $filesize
>> CRC32 for 60000000 ... 6000072f ==> f5c77855
>> => => bootefi 60000000
>> 78Scanning disks on mmc...
>> Card did not respond to voltage select!
>> MMC Device 1 not found
>> MMC Device 2 not found
>> MMC Device 3 not found
>> Found 0 disks
>> ERROR: need device tree
>
> Is the "bootefi 60000000" command correct? Doesn't "bootefi" need to be
> called with both an EFI binary address and a device tree address?
>

bootefi uses $fdtcontroladdr as fallback for the device tree. But this
variable is only available if CONFIG_OF_CONTROL is set. We should adjust
the python test to check this.

CONFIG_DEFAULT_FDT_FILE="vexpress-v2p-ca9.dtb"
This line is incorrect. We never use a .dtb extension here.

Best regards

Heinrich
Heinrich Schuchardt March 28, 2020, 10:12 a.m. UTC | #11
On 3/28/20 10:36 AM, Heinrich Schuchardt wrote:
> On 3/27/20 8:18 AM, Kristian Amlie wrote:
>> On 27/03/2020 06:44, Heinrich Schuchardt wrote:
>>> On 3/27/20 2:39 AM, Tom Rini wrote:
>>>> On Tue, Feb 25, 2020 at 06:22:16PM +0100, Kristian Amlie wrote:
>>>>
>>>>> EFI was disabled in f95b8a4b5f64f because of the missing DTB file,
>>>>> and indeed, the DTB file is required to load recent versions of GRUB
>>>>> (2.04) correctly.
>>>>>
>>>>> Signed-off-by: Kristian Amlie <kristian.amlie at northern.tech>
>>>>
>>>> Applied to u-boot/master, thanks!
>>>>
>>>
>>> Since this patch is merged I get errors on Gitlab for vexpress_ca9x4:
>>>
>>> https://gitlab.denx.de/u-boot/custodians/u-boot-efi/-/jobs/69269
>>>
>>> Filename 'lib/efi_loader/helloworld.efi'.
>>> Load address: 0x60000000
>>> Loading: *#
>>> ????? 1.8 MiB/s
>>> done
>>> Bytes transferred = 1840 (730 hex)
>>> smc911x: MAC 52:54:00:12:34:56
>>> => => crc32 60000000 $filesize
>>> CRC32 for 60000000 ... 6000072f ==> f5c77855
>>> => => bootefi 60000000
>>> 78Scanning disks on mmc...
>>> Card did not respond to voltage select!
>>> MMC Device 1 not found
>>> MMC Device 2 not found
>>> MMC Device 3 not found
>>> Found 0 disks
>>> ERROR: need device tree
>>
>> Is the "bootefi 60000000" command correct? Doesn't "bootefi" need to be
>> called with both an EFI binary address and a device tree address?
>>
>
> bootefi uses $fdtcontroladdr as fallback for the device tree. But this
> variable is only available if CONFIG_OF_CONTROL is set. We should adjust
> the python test to check this.
>
> CONFIG_DEFAULT_FDT_FILE="vexpress-v2p-ca9.dtb"
> This line is incorrect. We never use a .dtb extension here.

I got that wrong. There are two variables which are somewhat related:

CONFIG_DEFAULT_DEVICE_TREE="meson-gxbb-odroidc2"
CONFIG_DEFAULT_FDT_FILE="vexpress-v2p-ca9.dtb"

One uses the extension, the other doesn't.

So your patch seems to be correct. The error is in the Python test that
does not check if OF_CONTROL is set.

Best regards

Heinrich
Kristian Amlie March 30, 2020, 9:20 a.m. UTC | #12
On 28/03/2020 11:12, Heinrich Schuchardt wrote:
> On 3/28/20 10:36 AM, Heinrich Schuchardt wrote:
>> On 3/27/20 8:18 AM, Kristian Amlie wrote:
>>> On 27/03/2020 06:44, Heinrich Schuchardt wrote:
>>>> On 3/27/20 2:39 AM, Tom Rini wrote:
>>>>> On Tue, Feb 25, 2020 at 06:22:16PM +0100, Kristian Amlie wrote:
>>>>>
>>>>>> EFI was disabled in f95b8a4b5f64f because of the missing DTB file,
>>>>>> and indeed, the DTB file is required to load recent versions of GRUB
>>>>>> (2.04) correctly.
>>>>>>
>>>>>> Signed-off-by: Kristian Amlie <kristian.amlie at northern.tech>
>>>>>
>>>>> Applied to u-boot/master, thanks!
>>>>>
>>>>
>>>> Since this patch is merged I get errors on Gitlab for vexpress_ca9x4:
>>>>
>>>> https://gitlab.denx.de/u-boot/custodians/u-boot-efi/-/jobs/69269
>>>>
>>>> Filename 'lib/efi_loader/helloworld.efi'.
>>>> Load address: 0x60000000
>>>> Loading: *#
>>>> ????? 1.8 MiB/s
>>>> done
>>>> Bytes transferred = 1840 (730 hex)
>>>> smc911x: MAC 52:54:00:12:34:56
>>>> => => crc32 60000000 $filesize
>>>> CRC32 for 60000000 ... 6000072f ==> f5c77855
>>>> => => bootefi 60000000
>>>> 78Scanning disks on mmc...
>>>> Card did not respond to voltage select!
>>>> MMC Device 1 not found
>>>> MMC Device 2 not found
>>>> MMC Device 3 not found
>>>> Found 0 disks
>>>> ERROR: need device tree
>>>
>>> Is the "bootefi 60000000" command correct? Doesn't "bootefi" need to be
>>> called with both an EFI binary address and a device tree address?
>>>
>>
>> bootefi uses $fdtcontroladdr as fallback for the device tree. But this
>> variable is only available if CONFIG_OF_CONTROL is set. We should adjust
>> the python test to check this.
>>
>> CONFIG_DEFAULT_FDT_FILE="vexpress-v2p-ca9.dtb"
>> This line is incorrect. We never use a .dtb extension here.
> 
> I got that wrong. There are two variables which are somewhat related:
> 
> CONFIG_DEFAULT_DEVICE_TREE="meson-gxbb-odroidc2"
> CONFIG_DEFAULT_FDT_FILE="vexpress-v2p-ca9.dtb"
> 
> One uses the extension, the other doesn't.
> 
> So your patch seems to be correct. The error is in the Python test that
> does not check if OF_CONTROL is set.

Thanks for figuring that out!
diff mbox series

Patch

diff --git a/configs/vexpress_ca9x4_defconfig b/configs/vexpress_ca9x4_defconfig
index 2119df6b10..6bd1f253b6 100644
--- a/configs/vexpress_ca9x4_defconfig
+++ b/configs/vexpress_ca9x4_defconfig
@@ -34,4 +34,4 @@  CONFIG_SMC911X_32_BIT=y
 CONFIG_BAUDRATE=38400
 CONFIG_CONS_INDEX=0
 CONFIG_OF_LIBFDT=y
-# CONFIG_EFI_LOADER is not set
+CONFIG_DEFAULT_FDT_FILE="vexpress-v2p-ca9.dtb"
diff --git a/include/configs/vexpress_common.h b/include/configs/vexpress_common.h
index 7f215a6707..e73658a9e6 100644
--- a/include/configs/vexpress_common.h
+++ b/include/configs/vexpress_common.h
@@ -207,7 +207,8 @@ 
 			"devtmpfs.mount=0  vmalloc=256M\0" \
 		"bootflash=run flashargs; " \
 			"cp ${ramdisk_addr} ${ramdisk_addr_r} ${maxramdisk}; " \
-			"bootm ${kernel_addr} ${ramdisk_addr_r}\0"
+			"bootm ${kernel_addr} ${ramdisk_addr_r}\0" \
+		"fdtfile=" CONFIG_DEFAULT_FDT_FILE "\0"
 
 /* FLASH and environment organization */
 #define PHYS_FLASH_SIZE			0x04000000	/* 64MB */