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

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@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 */

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@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!

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@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.

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@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!

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@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!

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@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?

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@northern.tech
Applied to u-boot/master, thanks!

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@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 7[r[999;999H[6n8Scanning 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

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@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 7[r[999;999H[6n8Scanning 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?

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@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 7[r[999;999H[6n8Scanning 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.

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@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 7[r[999;999H[6n8Scanning 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

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@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 7[r[999;999H[6n8Scanning 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

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@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 7[r[999;999H[6n8Scanning 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!
participants (3)
-
Heinrich Schuchardt
-
Kristian Amlie
-
Tom Rini