Re: [PATCH] riscv: Add a 64-bit image type

From: Simon Glass sjg@chromium.org Sent: Monday, April 03, 2023 4:28 AM To: U-Boot Mailing List u-boot@lists.denx.de Cc: Sean Anderson seanga2@gmail.com; Bin Meng bmeng.cn@gmail.com; Rick Jian-Zhi Chen(陳建志) rick@andestech.com; Leo Yu-Chi Liang(梁育齊) ycliang@andestech.com; Simon Glass sjg@chromium.org; Andre Przywara andre.przywara@arm.com; Marc Kleine-Budde mkl@pengutronix.de; SESA644425 giojahermann@gmail.com; Samuel Holland samuel@sholland.org; Steven Lawrance steven.lawrance@softathome.com Subject: [PATCH] riscv: Add a 64-bit image type
At present it is not possible to know whether an image can be booted by a 32- or 64-bit bootloader. This means that U-Boot may attempt to boot the wrong image. This may cause a crash which might be hard to debug.
Add a new property to make this explicit.
The existing 'RISC-V' is now taken to mean 32-bit.
Signed-off-by: Simon Glass sjg@chromium.org
boot/image.c | 3 ++- include/image.h | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-)
Reviewed-by: Rick Chen rick@andestech.com

On Mon, Apr 10, 2023 at 3:25 PM Rick Chen rickchen36@gmail.com wrote:
From: Simon Glass sjg@chromium.org Sent: Monday, April 03, 2023 4:28 AM To: U-Boot Mailing List u-boot@lists.denx.de Cc: Sean Anderson seanga2@gmail.com; Bin Meng bmeng.cn@gmail.com; Rick Jian-Zhi Chen(陳建志) rick@andestech.com; Leo Yu-Chi Liang(梁育齊) ycliang@andestech.com; Simon Glass sjg@chromium.org; Andre Przywara andre.przywara@arm.com; Marc Kleine-Budde mkl@pengutronix.de; SESA644425 giojahermann@gmail.com; Samuel Holland samuel@sholland.org; Steven Lawrance steven.lawrance@softathome.com Subject: [PATCH] riscv: Add a 64-bit image type
At present it is not possible to know whether an image can be booted by a 32- or 64-bit bootloader. This means that U-Boot may attempt to boot the wrong image. This may cause a crash which might be hard to debug.
Add a new property to make this explicit.
The existing 'RISC-V' is now taken to mean 32-bit.
Signed-off-by: Simon Glass sjg@chromium.org
boot/image.c | 3 ++- include/image.h | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-)
Reviewed-by: Rick Chen rick@andestech.com
This might create compatibility issues if the shipped host tool (mkimage) does not match U-Boot version. Any idea how to avoid that?
Regards, Bin

Hi Bin,
On Thu, Apr 13, 2023 at 06:06:29PM +0800, Bin Meng wrote:
On Mon, Apr 10, 2023 at 3:25 PM Rick Chen rickchen36@gmail.com wrote:
From: Simon Glass sjg@chromium.org Sent: Monday, April 03, 2023 4:28 AM To: U-Boot Mailing List u-boot@lists.denx.de Cc: Sean Anderson seanga2@gmail.com; Bin Meng bmeng.cn@gmail.com; Rick Jian-Zhi Chen(陳建志) rick@andestech.com; Leo Yu-Chi Liang(梁育齊) ycliang@andestech.com; Simon Glass sjg@chromium.org; Andre Przywara andre.przywara@arm.com; Marc Kleine-Budde mkl@pengutronix.de; SESA644425 giojahermann@gmail.com; Samuel Holland samuel@sholland.org; Steven Lawrance steven.lawrance@softathome.com Subject: [PATCH] riscv: Add a 64-bit image type
At present it is not possible to know whether an image can be booted by a 32- or 64-bit bootloader. This means that U-Boot may attempt to boot the wrong image. This may cause a crash which might be hard to debug.
Add a new property to make this explicit.
The existing 'RISC-V' is now taken to mean 32-bit.
Signed-off-by: Simon Glass sjg@chromium.org
boot/image.c | 3 ++- include/image.h | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-)
Reviewed-by: Rick Chen rick@andestech.com
This might create compatibility issues if the shipped host tool (mkimage) does not match U-Boot version. Any idea how to avoid that?
I am not sure if I understand you correctly. Do you mean that there could be compatibility issue if one uses 2023.04 release host tool (mkimage) to build images that are to be booted by 2023.07 release u-boot (if this patch is merged in 2023.07 u-boot)?
If that is the case, I guess there is no easy way to avoid that. We could probably have RISCV represent 64 bit riscv architecture and RISCV32 32 bit because most of the boards are 64 bit.
If that is not the case, could you elaborate more ?
And Rick has sent out a patch to fix booting issue based on Simon's patch as well.
Best regards, Leo
Regards, Bin

Hi Leo,
On Mon, Apr 17, 2023 at 1:22 PM Leo Liang ycliang@andestech.com wrote:
Hi Bin,
On Thu, Apr 13, 2023 at 06:06:29PM +0800, Bin Meng wrote:
On Mon, Apr 10, 2023 at 3:25 PM Rick Chen rickchen36@gmail.com wrote:
From: Simon Glass sjg@chromium.org Sent: Monday, April 03, 2023 4:28 AM To: U-Boot Mailing List u-boot@lists.denx.de Cc: Sean Anderson seanga2@gmail.com; Bin Meng bmeng.cn@gmail.com; Rick Jian-Zhi Chen(陳建志) rick@andestech.com; Leo Yu-Chi Liang(梁育齊) ycliang@andestech.com; Simon Glass sjg@chromium.org; Andre Przywara andre.przywara@arm.com; Marc Kleine-Budde mkl@pengutronix.de; SESA644425 giojahermann@gmail.com; Samuel Holland samuel@sholland.org; Steven Lawrance steven.lawrance@softathome.com Subject: [PATCH] riscv: Add a 64-bit image type
At present it is not possible to know whether an image can be booted by a 32- or 64-bit bootloader. This means that U-Boot may attempt to boot the wrong image. This may cause a crash which might be hard to debug.
Add a new property to make this explicit.
The existing 'RISC-V' is now taken to mean 32-bit.
Signed-off-by: Simon Glass sjg@chromium.org
boot/image.c | 3 ++- include/image.h | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-)
Reviewed-by: Rick Chen rick@andestech.com
This might create compatibility issues if the shipped host tool (mkimage) does not match U-Boot version. Any idea how to avoid that?
I am not sure if I understand you correctly. Do you mean that there could be compatibility issue if one uses 2023.04 release host tool (mkimage) to build images that are to be booted by 2023.07 release u-boot (if this patch is merged in 2023.07 u-boot)?
Yes.
If that is the case, I guess there is no easy way to avoid that. We could probably have RISCV represent 64 bit riscv architecture and RISCV32 32 bit because most of the boards are 64 bit.
If that is not the case, could you elaborate more ?
And Rick has sent out a patch to fix booting issue based on Simon's patch as well.
I believe we should be querying some wider audience other than U-Boot that if the RISC-V community intends to support 64-bit U-Boot booting a 32-bit kernel, before we introduce such incompatibility change.
Regards, Bin

Hi Bin,
On Thu, 13 Apr 2023 at 04:06, Bin Meng bmeng.cn@gmail.com wrote:
On Mon, Apr 10, 2023 at 3:25 PM Rick Chen rickchen36@gmail.com wrote:
From: Simon Glass sjg@chromium.org Sent: Monday, April 03, 2023 4:28 AM To: U-Boot Mailing List u-boot@lists.denx.de Cc: Sean Anderson seanga2@gmail.com; Bin Meng bmeng.cn@gmail.com; Rick Jian-Zhi Chen(陳建志) rick@andestech.com; Leo Yu-Chi Liang(梁育齊) ycliang@andestech.com; Simon Glass sjg@chromium.org; Andre Przywara andre.przywara@arm.com; Marc Kleine-Budde mkl@pengutronix.de; SESA644425 giojahermann@gmail.com; Samuel Holland samuel@sholland.org; Steven Lawrance steven.lawrance@softathome.com Subject: [PATCH] riscv: Add a 64-bit image type
At present it is not possible to know whether an image can be booted by a 32- or 64-bit bootloader. This means that U-Boot may attempt to boot the wrong image. This may cause a crash which might be hard to debug.
Add a new property to make this explicit.
The existing 'RISC-V' is now taken to mean 32-bit.
Signed-off-by: Simon Glass sjg@chromium.org
boot/image.c | 3 ++- include/image.h | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-)
Reviewed-by: Rick Chen rick@andestech.com
This might create compatibility issues if the shipped host tool (mkimage) does not match U-Boot version. Any idea how to avoid that?
If the images are created as 'riscv' then they will look like 32-bit images to U-Boot, so likely won't be allowed on a 64-bit machine. I don't think we can avoid that, but of course, the images could be updated to use the new type. Note that the type is a string in the image, so mkimage may in fact tolerate it. I haven't checked though.
Regards, Simon
participants (4)
-
Bin Meng
-
Leo Liang
-
Rick Chen
-
Simon Glass