aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Cherechesu2022-07-27 13:14:06 -0700
committerStefano Stabellini2022-07-27 13:14:06 -0700
commit9136d01782341841796e3bb2b335dea752dc1863 (patch)
tree062dd7f7d5739eefb239d84b6b891affb6310c77
parentf6199342722c64a283d006b473b43918e93b4119 (diff)
If the "BOOT_CMD" variable is set to "none" inside the config
file, the boot command (i.e. "booti") will not by added to the generated script, to allow the user to customize the u-boot env or the device-tree after executing the script commands and before actually booting. Added commands to store the addresses where the Xen image and device-tree file are loaded, in 'host_kernel_addr' and 'host_fdt_addr' variables, if BOOTCMD = "none". The `booti` command can then be executed as part of the 'bootcmd' variable in u-boot, which should contain: 1. fetching the generated u-boot script 2. executing the script 3. running `booti ${host_kernel_addr} - ${host_fdt_addr}` command Signed-off-by: Andrei Cherechesu <andrei.cherechesu@nxp.com> Signed-off-by: Stefano Stabellini <stefano.stabellini@amd.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
-rw-r--r--README.md5
-rwxr-xr-xscripts/uboot-script-gen11
2 files changed, 13 insertions, 3 deletions
diff --git a/README.md b/README.md
index 3566a6d..07ad432 100644
--- a/README.md
+++ b/README.md
@@ -81,7 +81,10 @@ Where:
- BOOT_CMD specifies the u-boot command used to boot the binaries.
By default, it is 'booti'. The acceptable values are 'booti', 'bootm'
- and 'bootefi'.
+ and 'bootefi' and 'none'. If the value is 'none', the BOOT_CMD is not
+ added to the boot script, and the addresses for the Xen binary and the
+ DTB are stored in 'host_kernel_addr' and 'host_fdt_addr' u-boot
+ env variables respectively, to be used manually when booting.
- DEVICE_TREE specifies the DTB file to load.
diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
index a4ddd1e..995798d 100755
--- a/scripts/uboot-script-gen
+++ b/scripts/uboot-script-gen
@@ -888,7 +888,7 @@ function check_depends()
function check_boot_cmd()
{
- if ! [[ " bootm booti bootefi " =~ " ${BOOT_CMD}" ]]
+ if ! [[ " bootm booti bootefi none " =~ " ${BOOT_CMD}" ]]
then
echo "\"BOOT_CMD=$BOOT_CMD\" is not valid"
exit 1
@@ -1167,7 +1167,14 @@ then
cat $APPEND_EXTRA_CMDS >> $UBOOT_SOURCE
fi
-echo "$BOOT_CMD $kernel_addr - $device_tree_addr" >> $UBOOT_SOURCE
+if [ "$BOOT_CMD" != "none" ]
+then
+ echo "$BOOT_CMD $kernel_addr - $device_tree_addr" >> $UBOOT_SOURCE
+else
+ # skip boot command but store load addresses to be used later
+ echo "setenv host_kernel_addr $kernel_addr" >> $UBOOT_SOURCE
+ echo "setenv host_fdt_addr $device_tree_addr" >> $UBOOT_SOURCE
+fi
if test "$FIT"
then