[U-Boot] [PATCH] rockchip: make_fit_atf: Use BL31 environ variable for file location

Other make_fit script (like imx or sunxi) use the BL31 environment variable to indicate the location of the file. Also do that for rockchip so we don't need to copy the file in the source directory.
Signed-off-by: Emmanuel Vadot manu@freebsd.org --- arch/arm/mach-rockchip/make_fit_atf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/mach-rockchip/make_fit_atf.py b/arch/arm/mach-rockchip/make_fit_atf.py index d1faff1957..7bf58e3dd1 100755 --- a/arch/arm/mach-rockchip/make_fit_atf.py +++ b/arch/arm/mach-rockchip/make_fit_atf.py @@ -194,7 +194,7 @@ def get_bl31_segments_info(bl31_file_name):
def main(): uboot_elf="./u-boot" - bl31_elf="./bl31.elf" + bl31_elf=os.getenv("BL31", "./bl31.elf") FIT_ITS=sys.stdout
opts, args = getopt.getopt(sys.argv[1:], "o:u:b:h")

On 05.02.2019, at 11:54, Emmanuel Vadot manu@freebsd.org wrote:
Other make_fit script (like imx or sunxi) use the BL31 environment variable to indicate the location of the file. Also do that for rockchip so we don't need to copy the file in the source directory.
Signed-off-by: Emmanuel Vadot manu@freebsd.org
arch/arm/mach-rockchip/make_fit_atf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/mach-rockchip/make_fit_atf.py b/arch/arm/mach-rockchip/make_fit_atf.py index d1faff1957..7bf58e3dd1 100755 --- a/arch/arm/mach-rockchip/make_fit_atf.py +++ b/arch/arm/mach-rockchip/make_fit_atf.py @@ -194,7 +194,7 @@ def get_bl31_segments_info(bl31_file_name):
def main(): uboot_elf="./u-boot"
- bl31_elf="./bl31.elf"
- bl31_elf=os.getenv("BL31", "./bl31.elf”)
Could we have something more specific than BL31 (e.g. UBOOT_BL31_PATH)? Or is this the same variable name that’s used for imx and sunxi?
FIT_ITS=sys.stdout opts, args = getopt.getopt(sys.argv[1:], "o:u:b:h")
-- 2.20.1

On Tue, 5 Feb 2019 12:05:57 +0100 Philipp Tomsich philipp.tomsich@theobroma-systems.com wrote:
On 05.02.2019, at 11:54, Emmanuel Vadot manu@freebsd.org wrote:
Other make_fit script (like imx or sunxi) use the BL31 environment variable to indicate the location of the file. Also do that for rockchip so we don't need to copy the file in the source directory.
Signed-off-by: Emmanuel Vadot manu@freebsd.org
arch/arm/mach-rockchip/make_fit_atf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/mach-rockchip/make_fit_atf.py b/arch/arm/mach-rockchip/make_fit_atf.py index d1faff1957..7bf58e3dd1 100755 --- a/arch/arm/mach-rockchip/make_fit_atf.py +++ b/arch/arm/mach-rockchip/make_fit_atf.py @@ -194,7 +194,7 @@ def get_bl31_segments_info(bl31_file_name):
def main(): uboot_elf="./u-boot"
- bl31_elf="./bl31.elf"
- bl31_elf=os.getenv("BL31", "./bl31.elf?)
Could we have something more specific than BL31 (e.g. UBOOT_BL31_PATH)? Or is this the same variable name that?s used for imx and sunxi?
The same variable name is used for imx and sunxi.
FIT_ITS=sys.stdout opts, args = getopt.getopt(sys.argv[1:], "o:u:b:h")
-- 2.20.1

On 05.02.2019, at 12:14, Emmanuel Vadot manu@bidouilliste.com wrote:
On Tue, 5 Feb 2019 12:05:57 +0100 Philipp Tomsich philipp.tomsich@theobroma-systems.com wrote:
On 05.02.2019, at 11:54, Emmanuel Vadot manu@freebsd.org wrote:
Other make_fit script (like imx or sunxi) use the BL31 environment variable to indicate the location of the file. Also do that for rockchip so we don't need to copy the file in the source directory.
Signed-off-by: Emmanuel Vadot manu@freebsd.org
Reviewed-by: Philipp Tomsich philipp.tomsich@theobroma-systems.com

Date: Tue, 5 Feb 2019 12:14:25 +0100 From: Emmanuel Vadot manu@bidouilliste.com
On Tue, 5 Feb 2019 12:05:57 +0100 Philipp Tomsich philipp.tomsich@theobroma-systems.com wrote:
On 05.02.2019, at 11:54, Emmanuel Vadot manu@freebsd.org wrote:
Other make_fit script (like imx or sunxi) use the BL31 environment variable to indicate the location of the file. Also do that for rockchip so we don't need to copy the file in the source directory.
Signed-off-by: Emmanuel Vadot manu@freebsd.org
arch/arm/mach-rockchip/make_fit_atf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/mach-rockchip/make_fit_atf.py b/arch/arm/mach-rockchip/make_fit_atf.py index d1faff1957..7bf58e3dd1 100755 --- a/arch/arm/mach-rockchip/make_fit_atf.py +++ b/arch/arm/mach-rockchip/make_fit_atf.py @@ -194,7 +194,7 @@ def get_bl31_segments_info(bl31_file_name):
def main(): uboot_elf="./u-boot"
- bl31_elf="./bl31.elf"
- bl31_elf=os.getenv("BL31", "./bl31.elf?)
Could we have something more specific than BL31 (e.g. UBOOT_BL31_PATH)? Or is this the same variable name that?s used for imx and sunxi?
The same variable name is used for imx and sunxi.
Right. This would make building RK3399 firmware in the OpenBSD ports tree much easier/cleaner.

Other make_fit script (like imx or sunxi) use the BL31 environment variable to indicate the location of the file. Also do that for rockchip so we don't need to copy the file in the source directory.
Signed-off-by: Emmanuel Vadot manu@freebsd.org Reviewed-by: Philipp Tomsich philipp.tomsich@theobroma-systems.com
arch/arm/mach-rockchip/make_fit_atf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
Reviewed-by: Philipp Tomsich philipp.tomsich@theobroma-systems.com

On Tue, Feb 5, 2019 at 4:24 PM Emmanuel Vadot manu@freebsd.org wrote:
Other make_fit script (like imx or sunxi) use the BL31 environment variable to indicate the location of the file. Also do that for rockchip so we don't need to copy the file in the source directory.
Signed-off-by: Emmanuel Vadot manu@freebsd.org
arch/arm/mach-rockchip/make_fit_atf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/mach-rockchip/make_fit_atf.py b/arch/arm/mach-rockchip/make_fit_atf.py index d1faff1957..7bf58e3dd1 100755 --- a/arch/arm/mach-rockchip/make_fit_atf.py +++ b/arch/arm/mach-rockchip/make_fit_atf.py @@ -194,7 +194,7 @@ def get_bl31_segments_info(bl31_file_name):
def main(): uboot_elf="./u-boot"
- bl31_elf="./bl31.elf"
- bl31_elf=os.getenv("BL31", "./bl31.elf")
Have similar change on my repo.
Better through warning for non BL31 like
if "BL31ELF" in os.environ: bl31_elf=os.getenv("BL31ELF"); else: sys.exit("ERROR: Please export BL31ELF file, check board/rockchip/evb_rk3399/README)
And BL31ELF would be proper env than BL31 since rockchip build would require elf and other one has bin, IMHO.

Hi Philipp, Emmanuel,
On Sun, Apr 21, 2019 at 10:43 PM Jagan Teki jagan@amarulasolutions.com wrote:
On Tue, Feb 5, 2019 at 4:24 PM Emmanuel Vadot manu@freebsd.org wrote:
Other make_fit script (like imx or sunxi) use the BL31 environment variable to indicate the location of the file. Also do that for rockchip so we don't need to copy the file in the source directory.
Signed-off-by: Emmanuel Vadot manu@freebsd.org
arch/arm/mach-rockchip/make_fit_atf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/mach-rockchip/make_fit_atf.py b/arch/arm/mach-rockchip/make_fit_atf.py index d1faff1957..7bf58e3dd1 100755 --- a/arch/arm/mach-rockchip/make_fit_atf.py +++ b/arch/arm/mach-rockchip/make_fit_atf.py @@ -194,7 +194,7 @@ def get_bl31_segments_info(bl31_file_name):
def main(): uboot_elf="./u-boot"
- bl31_elf="./bl31.elf"
- bl31_elf=os.getenv("BL31", "./bl31.elf")
Have similar change on my repo.
Better through warning for non BL31 like
if "BL31ELF" in os.environ: bl31_elf=os.getenv("BL31ELF"); else: sys.exit("ERROR: Please export BL31ELF file, check board/rockchip/evb_rk3399/README)
And BL31ELF would be proper env than BL31 since rockchip build would require elf and other one has bin, IMHO.
I think solution suggested by Jagan's is more generic and more useful. It doesn't hard code the path of bl31.elf file, instead it uses global BL31 environment variable. If the path is hard coded then buildroot build fails for atleast rk3399 soc based boards because in buildroot it is [2] BL31=$(BINARIES_DIR)/bl31.elf, so it looks for bl31.elf file in binary directory instead of uboot directory.
We encountered this build failure in recently while adding [1] RK3399 NanoPi M4 support in buildroot.
Could we consider solution suggested by Jagan while we can retain the variable name BL31 as is.
[1] Buildroot thread http://lists.busybox.net/pipermail/buildroot/2019-April/248219.html [2] BL31 buildroot variable https://git.buildroot.net/buildroot/tree/boot/uboot/uboot.mk#n140
Thanks a lot, Shyam

On Mon, Apr 22, 2019 at 8:29 AM Shyam Saini shyam@amarulasolutions.com wrote:
Hi Philipp, Emmanuel,
On Sun, Apr 21, 2019 at 10:43 PM Jagan Teki jagan@amarulasolutions.com wrote:
On Tue, Feb 5, 2019 at 4:24 PM Emmanuel Vadot manu@freebsd.org wrote:
Other make_fit script (like imx or sunxi) use the BL31 environment variable to indicate the location of the file. Also do that for rockchip so we don't need to copy the file in the source directory.
Signed-off-by: Emmanuel Vadot manu@freebsd.org
arch/arm/mach-rockchip/make_fit_atf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/mach-rockchip/make_fit_atf.py b/arch/arm/mach-rockchip/make_fit_atf.py index d1faff1957..7bf58e3dd1 100755 --- a/arch/arm/mach-rockchip/make_fit_atf.py +++ b/arch/arm/mach-rockchip/make_fit_atf.py @@ -194,7 +194,7 @@ def get_bl31_segments_info(bl31_file_name):
def main(): uboot_elf="./u-boot"
- bl31_elf="./bl31.elf"
- bl31_elf=os.getenv("BL31", "./bl31.elf")
Have similar change on my repo.
Better through warning for non BL31 like
if "BL31ELF" in os.environ: bl31_elf=os.getenv("BL31ELF"); else: sys.exit("ERROR: Please export BL31ELF file, check board/rockchip/evb_rk3399/README)
And BL31ELF would be proper env than BL31 since rockchip build would require elf and other one has bin, IMHO.
I think solution suggested by Jagan's is more generic and more useful. It doesn't hard code the path of bl31.elf file, instead it uses global BL31 environment variable.
In the AllWinner and current rk3399 devices where we use bl31 it looks either in the root source of the root of the build output if that's specified as part of the build process. That to me would be a minimum as distros often build for numerous devices at once.
If the path is hard coded then buildroot build fails for atleast rk3399 soc based boards because in buildroot it is [2] BL31=$(BINARIES_DIR)/bl31.elf, so it looks for bl31.elf file in binary directory instead of uboot directory.
We encountered this build failure in recently while adding [1] RK3399 NanoPi M4 support in buildroot.
Could we consider solution suggested by Jagan while we can retain the variable name BL31 as is.
[1] Buildroot thread http://lists.busybox.net/pipermail/buildroot/2019-April/248219.html [2] BL31 buildroot variable https://git.buildroot.net/buildroot/tree/boot/uboot/uboot.mk#n140
Thanks a lot, Shyam _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot

Hi Jagan,
On Sun, 21 Apr 2019 22:42:45 +0530 Jagan Teki jagan@amarulasolutions.com wrote:
On Tue, Feb 5, 2019 at 4:24 PM Emmanuel Vadot manu@freebsd.org wrote:
Other make_fit script (like imx or sunxi) use the BL31 environment variable to indicate the location of the file. Also do that for rockchip so we don't need to copy the file in the source directory.
Signed-off-by: Emmanuel Vadot manu@freebsd.org
arch/arm/mach-rockchip/make_fit_atf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/mach-rockchip/make_fit_atf.py b/arch/arm/mach-rockchip/make_fit_atf.py index d1faff1957..7bf58e3dd1 100755 --- a/arch/arm/mach-rockchip/make_fit_atf.py +++ b/arch/arm/mach-rockchip/make_fit_atf.py @@ -194,7 +194,7 @@ def get_bl31_segments_info(bl31_file_name):
def main(): uboot_elf="./u-boot"
- bl31_elf="./bl31.elf"
- bl31_elf=os.getenv("BL31", "./bl31.elf")
Have similar change on my repo.
Better through warning for non BL31 like
if "BL31ELF" in os.environ: bl31_elf=os.getenv("BL31ELF"); else: sys.exit("ERROR: Please export BL31ELF file, check board/rockchip/evb_rk3399/README)
I didn't error for the same reason we don't on Allwinner, CI don't copy this file as part of the test. Yes this does result in a non-working u-boot but the goal of thoses test is just to compile. mksunxi_fit_atf.sh prints a warning, maybe I should just do the same ? Phillipp, what's your view on this ?
And BL31ELF would be proper env than BL31 since rockchip build would require elf and other one has bin, IMHO.
This change is fine with me.

On Sat, Apr 27, 2019 at 6:17 PM Emmanuel Vadot manu@bidouilliste.com wrote:
Hi Jagan,
On Sun, 21 Apr 2019 22:42:45 +0530 Jagan Teki jagan@amarulasolutions.com wrote:
On Tue, Feb 5, 2019 at 4:24 PM Emmanuel Vadot manu@freebsd.org wrote:
Other make_fit script (like imx or sunxi) use the BL31 environment variable to indicate the location of the file. Also do that for rockchip so we don't need to copy the file in the source directory.
Signed-off-by: Emmanuel Vadot manu@freebsd.org
arch/arm/mach-rockchip/make_fit_atf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/mach-rockchip/make_fit_atf.py b/arch/arm/mach-rockchip/make_fit_atf.py index d1faff1957..7bf58e3dd1 100755 --- a/arch/arm/mach-rockchip/make_fit_atf.py +++ b/arch/arm/mach-rockchip/make_fit_atf.py @@ -194,7 +194,7 @@ def get_bl31_segments_info(bl31_file_name):
def main(): uboot_elf="./u-boot"
- bl31_elf="./bl31.elf"
- bl31_elf=os.getenv("BL31", "./bl31.elf")
Have similar change on my repo.
Better through warning for non BL31 like
if "BL31ELF" in os.environ: bl31_elf=os.getenv("BL31ELF"); else: sys.exit("ERROR: Please export BL31ELF file, check board/rockchip/evb_rk3399/README)
I didn't error for the same reason we don't on Allwinner, CI don't copy this file as part of the test. Yes this does result in a non-working u-boot but the goal of thoses test is just to compile. mksunxi_fit_atf.sh prints a warning, maybe I should just do the same ? Phillipp, what's your view on this ?
Yes, ie what I thought of. I have handle this in BINMAN series, please have look and comment.
And BL31ELF would be proper env than BL31 since rockchip build would require elf and other one has bin, IMHO.
This change is fine with me.
I think we can go with BL31 itself since we need to compatible with existing platforms.
Jagan.

From: Jagan Teki jagan@amarulasolutions.com Date: Sun, 28 Apr 2019 14:38:06 +0530
On Sat, Apr 27, 2019 at 6:17 PM Emmanuel Vadot manu@bidouilliste.com wrote:
Hi Jagan,
On Sun, 21 Apr 2019 22:42:45 +0530 Jagan Teki jagan@amarulasolutions.com wrote:
On Tue, Feb 5, 2019 at 4:24 PM Emmanuel Vadot manu@freebsd.org wrote:
Other make_fit script (like imx or sunxi) use the BL31 environment variable to indicate the location of the file. Also do that for rockchip so we don't need to copy the file in the source directory.
Signed-off-by: Emmanuel Vadot manu@freebsd.org
arch/arm/mach-rockchip/make_fit_atf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm/mach-rockchip/make_fit_atf.py b/arch/arm/mach-rockchip/make_fit_atf.py index d1faff1957..7bf58e3dd1 100755 --- a/arch/arm/mach-rockchip/make_fit_atf.py +++ b/arch/arm/mach-rockchip/make_fit_atf.py @@ -194,7 +194,7 @@ def get_bl31_segments_info(bl31_file_name):
def main(): uboot_elf="./u-boot"
- bl31_elf="./bl31.elf"
- bl31_elf=os.getenv("BL31", "./bl31.elf")
Have similar change on my repo.
Better through warning for non BL31 like
if "BL31ELF" in os.environ: bl31_elf=os.getenv("BL31ELF"); else: sys.exit("ERROR: Please export BL31ELF file, check board/rockchip/evb_rk3399/README)
I didn't error for the same reason we don't on Allwinner, CI don't copy this file as part of the test. Yes this does result in a non-working u-boot but the goal of thoses test is just to compile. mksunxi_fit_atf.sh prints a warning, maybe I should just do the same ? Phillipp, what's your view on this ?
Yes, ie what I thought of. I have handle this in BINMAN series, please have look and comment.
And BL31ELF would be proper env than BL31 since rockchip build would require elf and other one has bin, IMHO.
This change is fine with me.
I think we can go with BL31 itself since we need to compatible with existing platforms.
Right. Consistency is good.
participants (7)
-
Emmanuel Vadot
-
Emmanuel Vadot
-
Jagan Teki
-
Mark Kettenis
-
Peter Robinson
-
Philipp Tomsich
-
Shyam Saini