* [PATCH v2 00/16] pxe: Allow extlinux booting without CMDLINE enabled
@ 2023-12-15 4:18 Simon Glass
2023-12-15 4:18 ` [PATCH v2 01/16] boot: Reorder FIT and BOOTSTD to be first Simon Glass
` (16 more replies)
0 siblings, 17 replies; 26+ messages in thread
From: Simon Glass @ 2023-12-15 4:18 UTC (permalink / raw)
To: U-Boot Mailing List
Cc: Tom Rini, Simon Glass, AKASHI Takahiro, Abdellatif El Khlifi,
Alex Kiernan, Alexey Brodkin, Alexey Brodkin, Angelo Dureghello,
Bin Meng, Dan Carpenter, Daniel Schwierzeck, Dario Binacchi,
Eddie James, Eric Nelson, Eugeniy Paltsev, Heinrich Schuchardt,
Huan Wang, Ilias Apalodimas, Leo, Marcel Ziswiler, Marek Vasut,
Mattijs Korpershoek, Max Filippov, Michal Simek, Miquel Raynal,
Neil Armstrong, Nobuhiro Iwamatsu, Patrice Chotard,
Patrick Delaunay, Peter Hoyes, Quentin Schulz, Ramon Fried,
Rick Chen, Sean Anderson, Sean Edmond, Shiji Yang, Soeren Moch,
Thomas Chou, Thomas Mittelstaedt, Tobias Waldekranz,
Yu Chien Peter Lin, uboot-snps-arc
This series is the culmanation of the current line of refactoring
series. It adjusts pxe to call the booting functionality directly
rather than going through the command-line interface.
With this is is possible to boot using the extlinux bootmeth without
the command line enabled.
It also updates fastboot to do a similar thing.
This is cmdf (part f of CMDLINE refactoring)
It depends on dm/cmde-working
which depends on dm/cmdd-working
which depends on dm/bootstda-working
which depends on dm/cmdc-working
Changes in v2:
- Use unmap_sysmem() too
- Drop check for NULL with env_set()
- Avoid changing the logic when a command is not set
- Split out the strlcpy() change into its own patch
- Update commit message to mention booti
- Use bootm_init() instead of memset()
Simon Glass (16):
boot: Reorder FIT and BOOTSTD to be first
bootm: Add a Kconfig option for bootm functionality
bootm: Make OS booting dependent on BOOTM
treewide: Make arch-specific bootm code depend on BOOTM
boot: Update SYS_BOOTM_LEN to depend on BOOTM
fastboot: Change fastboot_buf_addr to an address
bootm: Make cmdline optional with bootm_boot_start()
fastboot: Remove dependencies on CMDLINE
doc: Mention fastboot dependency on CMDLINE
pxe: Use strlcpy() instead of strcpy() in label_boot()
pxe: Refactor to reduce the size of label_boot()
pxe: Refactor to avoid over-using bootm_argv
pxe: Move calculation of FDT file into a function
pxe: Allow booting without CMDLINE for bootm methods
pxe: Allow booting without CMDLINE for the zboot method
x86: Drop message about features being missing with 64-bit
arch/arc/lib/Makefile | 2 +-
arch/arm/lib/Makefile | 2 +-
arch/m68k/lib/Makefile | 2 +-
arch/microblaze/lib/Makefile | 2 +-
arch/mips/lib/Makefile | 2 +-
arch/nios2/lib/Makefile | 2 +-
arch/powerpc/lib/Makefile | 2 +-
arch/riscv/lib/Makefile | 2 +-
arch/sandbox/lib/Makefile | 2 +-
arch/sh/lib/Makefile | 2 +-
arch/x86/lib/Makefile | 2 +-
arch/x86/lib/spl.c | 2 +-
arch/xtensa/lib/Makefile | 2 +-
boot/Kconfig | 99 ++++-
boot/Makefile | 2 +-
boot/pxe_utils.c | 360 ++++++++++--------
cmd/Kconfig | 50 +--
cmd/fastboot.c | 2 +-
configs/colibri_vf_defconfig | 2 +-
configs/iot_devkit_defconfig | 2 +-
configs/mx6memcal_defconfig | 2 +-
configs/tools-only_defconfig | 2 +-
configs/xilinx_versal_mini_defconfig | 2 +-
configs/xilinx_versal_mini_emmc0_defconfig | 2 +-
configs/xilinx_versal_mini_emmc1_defconfig | 2 +-
configs/xilinx_versal_mini_ospi_defconfig | 2 +-
configs/xilinx_versal_mini_qspi_defconfig | 2 +-
configs/xilinx_versal_net_mini_defconfig | 2 +-
configs/xilinx_versal_net_mini_emmc_defconfig | 2 +-
configs/xilinx_versal_net_mini_ospi_defconfig | 2 +-
configs/xilinx_versal_net_mini_qspi_defconfig | 2 +-
configs/xilinx_zynqmp_mini_defconfig | 2 +-
configs/xilinx_zynqmp_mini_emmc0_defconfig | 2 +-
configs/xilinx_zynqmp_mini_emmc1_defconfig | 2 +-
configs/xilinx_zynqmp_mini_nand_defconfig | 2 +-
.../xilinx_zynqmp_mini_nand_single_defconfig | 2 +-
configs/xilinx_zynqmp_mini_qspi_defconfig | 2 +-
configs/zynq_cse_nand_defconfig | 2 +-
configs/zynq_cse_nor_defconfig | 2 +-
configs/zynq_cse_qspi_defconfig | 2 +-
doc/android/fastboot.rst | 1 +
doc/board/emulation/qemu-x86.rst | 2 +-
drivers/fastboot/Kconfig | 1 -
drivers/fastboot/fb_command.c | 17 +-
drivers/fastboot/fb_common.c | 37 +-
include/bootm.h | 2 +-
include/fastboot-internal.h | 2 +-
include/fastboot.h | 6 +-
48 files changed, 350 insertions(+), 301 deletions(-)
--
2.43.0.472.g3155946c3a-goog
^ permalink raw reply [flat|nested] 26+ messages in thread
* [PATCH v2 01/16] boot: Reorder FIT and BOOTSTD to be first
2023-12-15 4:18 [PATCH v2 00/16] pxe: Allow extlinux booting without CMDLINE enabled Simon Glass
@ 2023-12-15 4:18 ` Simon Glass
2023-12-15 4:19 ` [PATCH v2 02/16] bootm: Add a Kconfig option for bootm functionality Simon Glass
` (15 subsequent siblings)
16 siblings, 0 replies; 26+ messages in thread
From: Simon Glass @ 2023-12-15 4:18 UTC (permalink / raw)
To: U-Boot Mailing List; +Cc: Tom Rini, Simon Glass, Eddie James
The boot menu shows Android first and then a timestamp option. Move
these later since they are less commonly used.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
(no changes since v1)
boot/Kconfig | 36 ++++++++++++++++++------------------
1 file changed, 18 insertions(+), 18 deletions(-)
diff --git a/boot/Kconfig b/boot/Kconfig
index b438002059c3..e0098b3f31d7 100644
--- a/boot/Kconfig
+++ b/boot/Kconfig
@@ -2,24 +2,6 @@ menu "Boot options"
menu "Boot images"
-config ANDROID_BOOT_IMAGE
- bool "Android Boot Images"
- default y if FASTBOOT
- help
- This enables support for booting images which use the Android
- image format header.
-
-config TIMESTAMP
- bool "Show image date and time when displaying image information"
- default y if CMD_DATE
- help
- When CONFIG_TIMESTAMP is selected, the timestamp (date and time) of
- an image is printed by image commands like bootm or iminfo. This
- is shown as 'Timestamp: xxx' and 'Created: xxx'. If this option is
- enabled, then U-Boot requires FITs to have a timestamp. If a FIT is
- loaded that does not, the message 'Wrong FIT format: no timestamp'
- is shown.
-
menuconfig FIT
bool "Flattened Image Tree (FIT)"
select HASH
@@ -695,6 +677,24 @@ config BOOTMETH_SCRIPT
endif # BOOTSTD
+config ANDROID_BOOT_IMAGE
+ bool "Android Boot Images"
+ default y if FASTBOOT
+ help
+ This enables support for booting images which use the Android
+ image format header.
+
+config TIMESTAMP
+ bool "Show image date and time when displaying image information"
+ default y if CMD_DATE
+ help
+ When CONFIG_TIMESTAMP is selected, the timestamp (date and time) of
+ an image is printed by image commands like bootm or iminfo. This
+ is shown as 'Timestamp: xxx' and 'Created: xxx'. If this option is
+ enabled, then U-Boot requires FITs to have a timestamp. If a FIT is
+ loaded that does not, the message 'Wrong FIT format: no timestamp'
+ is shown.
+
config LEGACY_IMAGE_FORMAT
bool "Enable support for the legacy image format"
default y if !FIT_SIGNATURE && !TI_SECURE_DEVICE
--
2.43.0.472.g3155946c3a-goog
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 02/16] bootm: Add a Kconfig option for bootm functionality
2023-12-15 4:18 [PATCH v2 00/16] pxe: Allow extlinux booting without CMDLINE enabled Simon Glass
2023-12-15 4:18 ` [PATCH v2 01/16] boot: Reorder FIT and BOOTSTD to be first Simon Glass
@ 2023-12-15 4:19 ` Simon Glass
2023-12-15 4:19 ` [PATCH v2 03/16] bootm: Make OS booting dependent on BOOTM Simon Glass
` (14 subsequent siblings)
16 siblings, 0 replies; 26+ messages in thread
From: Simon Glass @ 2023-12-15 4:19 UTC (permalink / raw)
To: U-Boot Mailing List
Cc: Tom Rini, Simon Glass, AKASHI Takahiro, Abdellatif El Khlifi,
Alexey Brodkin, Bin Meng, Eddie James, Eric Nelson,
Heinrich Schuchardt, Marcel Ziswiler, Mattijs Korpershoek,
Michal Simek, Miquel Raynal, Sean Edmond, Tobias Waldekranz
Create a separate Kconfig option which enables the bootm logic,
separate from the 'bootm' command. This will eventually allow booting
without CMDLINE enabled.
Update boards which disable CMD_BOOTM to disable BOOTM instead, since
CMD_BOOTM now depends on BOOTM
Signed-off-by: Simon Glass <sjg@chromium.org>
---
(no changes since v1)
boot/Kconfig | 12 ++++++++++++
boot/Makefile | 2 +-
cmd/Kconfig | 1 +
configs/colibri_vf_defconfig | 2 +-
configs/iot_devkit_defconfig | 2 +-
configs/mx6memcal_defconfig | 2 +-
configs/tools-only_defconfig | 2 +-
configs/xilinx_versal_mini_defconfig | 2 +-
configs/xilinx_versal_mini_emmc0_defconfig | 2 +-
configs/xilinx_versal_mini_emmc1_defconfig | 2 +-
configs/xilinx_versal_mini_ospi_defconfig | 2 +-
configs/xilinx_versal_mini_qspi_defconfig | 2 +-
configs/xilinx_versal_net_mini_defconfig | 2 +-
configs/xilinx_versal_net_mini_emmc_defconfig | 2 +-
configs/xilinx_versal_net_mini_ospi_defconfig | 2 +-
configs/xilinx_versal_net_mini_qspi_defconfig | 2 +-
configs/xilinx_zynqmp_mini_defconfig | 2 +-
configs/xilinx_zynqmp_mini_emmc0_defconfig | 2 +-
configs/xilinx_zynqmp_mini_emmc1_defconfig | 2 +-
configs/xilinx_zynqmp_mini_nand_defconfig | 2 +-
configs/xilinx_zynqmp_mini_nand_single_defconfig | 2 +-
configs/xilinx_zynqmp_mini_qspi_defconfig | 2 +-
configs/zynq_cse_nand_defconfig | 2 +-
configs/zynq_cse_nor_defconfig | 2 +-
configs/zynq_cse_qspi_defconfig | 2 +-
25 files changed, 36 insertions(+), 23 deletions(-)
diff --git a/boot/Kconfig b/boot/Kconfig
index e0098b3f31d7..8b32a51f7e7c 100644
--- a/boot/Kconfig
+++ b/boot/Kconfig
@@ -677,6 +677,18 @@ config BOOTMETH_SCRIPT
endif # BOOTSTD
+config BOOTM
+ bool "Support booting an application image from memory"
+ default y
+ help
+ This is the main boot implementation in U-Boot, supporting a wide
+ variety of features including FIT and legacy-image boot, kernel and
+ FDT selection, setting up of the command line for the OS and many
+ other features.
+
+ This option should normally be enabled. It is used to implement the
+ 'bootm' command.
+
config ANDROID_BOOT_IMAGE
bool "Android Boot Images"
default y if FASTBOOT
diff --git a/boot/Makefile b/boot/Makefile
index de0eafed14b1..a4ea2f9e062f 100644
--- a/boot/Makefile
+++ b/boot/Makefile
@@ -6,7 +6,7 @@
ifndef CONFIG_SPL_BUILD
obj-$(CONFIG_BOOT_RETRY) += bootretry.o
-obj-$(CONFIG_CMD_BOOTM) += bootm.o bootm_os.o
+obj-$(CONFIG_BOOTM) += bootm.o bootm_os.o
obj-$(CONFIG_CMD_BOOTZ) += bootm.o bootm_os.o
obj-$(CONFIG_CMD_BOOTI) += bootm.o bootm_os.o
diff --git a/cmd/Kconfig b/cmd/Kconfig
index 397e6472c036..2af66a66c1e1 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -219,6 +219,7 @@ config CMD_BOOTD
config CMD_BOOTM
bool "bootm"
+ depends on BOOTM
default y
help
Boot an application image from the memory.
diff --git a/configs/colibri_vf_defconfig b/configs/colibri_vf_defconfig
index 8b2324fd5648..48019f0fa0b8 100644
--- a/configs/colibri_vf_defconfig
+++ b/configs/colibri_vf_defconfig
@@ -17,6 +17,7 @@ CONFIG_SYS_MEMTEST_END=0x87c00000
CONFIG_ENV_VARS_UBOOT_CONFIG=y
CONFIG_HAS_BOARD_SIZE_LIMIT=y
CONFIG_BOARD_SIZE_LIMIT=520192
+# CONFIG_BOOTM is not set
CONFIG_BOOTDELAY=1
CONFIG_FDT_FIXUP_PARTITIONS=y
CONFIG_USE_BOOTCOMMAND=y
@@ -33,7 +34,6 @@ CONFIG_HUSH_PARSER=y
CONFIG_SYS_PROMPT="Colibri VFxx # "
CONFIG_SYS_PBSIZE=1056
# CONFIG_CMD_BOOTD is not set
-# CONFIG_CMD_BOOTM is not set
CONFIG_CMD_BOOTZ=y
# CONFIG_CMD_ELF is not set
# CONFIG_CMD_IMI is not set
diff --git a/configs/iot_devkit_defconfig b/configs/iot_devkit_defconfig
index 55ced6bc3c32..a09f3ed5f77b 100644
--- a/configs/iot_devkit_defconfig
+++ b/configs/iot_devkit_defconfig
@@ -14,12 +14,12 @@ CONFIG_DEFAULT_DEVICE_TREE="iot_devkit"
CONFIG_SYS_CLK_FREQ=16000000
CONFIG_SYS_LOAD_ADDR=0x30000000
CONFIG_LOCALVERSION="-iotdk-1.0"
+# CONFIG_BOOTM is not set
# CONFIG_ARCH_FIXUP_FDT_MEMORY is not set
CONFIG_SYS_PROMPT="IoTDK# "
CONFIG_SYS_CBSIZE=256
CONFIG_SYS_PBSIZE=280
# CONFIG_CMD_BOOTD is not set
-# CONFIG_CMD_BOOTM is not set
# CONFIG_CMD_ELF is not set
# CONFIG_CMD_XIMG is not set
# CONFIG_CMD_LOADB is not set
diff --git a/configs/mx6memcal_defconfig b/configs/mx6memcal_defconfig
index 6dd64b6da1ba..6da7a0eaf09c 100644
--- a/configs/mx6memcal_defconfig
+++ b/configs/mx6memcal_defconfig
@@ -14,6 +14,7 @@ CONFIG_SPL_SERIAL=y
CONFIG_SPL=y
CONFIG_SYS_MEMTEST_START=0x10000000
CONFIG_SYS_MEMTEST_END=0x20000000
+# CONFIG_BOOTM is not set
CONFIG_SUPPORT_RAW_INITRD=y
CONFIG_SPL_SYS_MALLOC=y
CONFIG_SPL_WATCHDOG=y
@@ -21,7 +22,6 @@ CONFIG_HUSH_PARSER=y
CONFIG_SYS_MAXARGS=32
CONFIG_SYS_PBSIZE=528
# CONFIG_CMD_BOOTD is not set
-# CONFIG_CMD_BOOTM is not set
# CONFIG_CMD_ELF is not set
# CONFIG_CMD_IMI is not set
# CONFIG_CMD_XIMG is not set
diff --git a/configs/tools-only_defconfig b/configs/tools-only_defconfig
index b54d2cefa100..5de482a0d84b 100644
--- a/configs/tools-only_defconfig
+++ b/configs/tools-only_defconfig
@@ -12,10 +12,10 @@ CONFIG_FIT_SIGNATURE=y
# CONFIG_BOOTSTD_FULL is not set
# CONFIG_BOOTMETH_CROS is not set
# CONFIG_BOOTMETH_VBE is not set
+# CONFIG_BOOTM is not set
CONFIG_USE_BOOTCOMMAND=y
CONFIG_BOOTCOMMAND="run distro_bootcmd"
# CONFIG_CMD_BOOTD is not set
-# CONFIG_CMD_BOOTM is not set
# CONFIG_CMD_BOOTI is not set
# CONFIG_CMD_ELF is not set
# CONFIG_CMD_EXTENSION is not set
diff --git a/configs/xilinx_versal_mini_defconfig b/configs/xilinx_versal_mini_defconfig
index 222da5aaa33b..4844dcef99c7 100644
--- a/configs/xilinx_versal_mini_defconfig
+++ b/configs/xilinx_versal_mini_defconfig
@@ -18,6 +18,7 @@ CONFIG_SYS_MEMTEST_START=0x00000000
CONFIG_SYS_MEMTEST_END=0x00001000
# CONFIG_EXPERT is not set
CONFIG_REMAKE_ELF=y
+# CONFIG_BOOTM is not set
# CONFIG_LEGACY_IMAGE_FORMAT is not set
# CONFIG_AUTOBOOT is not set
CONFIG_SYS_CONSOLE_INFO_QUIET=y
@@ -34,7 +35,6 @@ CONFIG_SYS_CBSIZE=1024
CONFIG_SYS_PBSIZE=1049
# CONFIG_CMD_CONSOLE is not set
# CONFIG_CMD_BOOTD is not set
-# CONFIG_CMD_BOOTM is not set
# CONFIG_CMD_BOOTI is not set
# CONFIG_CMD_ELF is not set
# CONFIG_CMD_FDT is not set
diff --git a/configs/xilinx_versal_mini_emmc0_defconfig b/configs/xilinx_versal_mini_emmc0_defconfig
index 1d73790c0e96..335ed4042721 100644
--- a/configs/xilinx_versal_mini_emmc0_defconfig
+++ b/configs/xilinx_versal_mini_emmc0_defconfig
@@ -15,6 +15,7 @@ CONFIG_DEFAULT_DEVICE_TREE="versal-mini-emmc0"
CONFIG_SYS_LOAD_ADDR=0x8000000
# CONFIG_EXPERT is not set
CONFIG_REMAKE_ELF=y
+# CONFIG_BOOTM is not set
# CONFIG_AUTOBOOT is not set
CONFIG_SYS_CONSOLE_INFO_QUIET=y
# CONFIG_DISPLAY_CPUINFO is not set
@@ -31,7 +32,6 @@ CONFIG_SYS_PBSIZE=1049
# CONFIG_CMD_BDI is not set
# CONFIG_CMD_CONSOLE is not set
# CONFIG_CMD_BOOTD is not set
-# CONFIG_CMD_BOOTM is not set
# CONFIG_CMD_BOOTI is not set
# CONFIG_CMD_ELF is not set
# CONFIG_CMD_FDT is not set
diff --git a/configs/xilinx_versal_mini_emmc1_defconfig b/configs/xilinx_versal_mini_emmc1_defconfig
index 747f20d319a9..f64920052a94 100644
--- a/configs/xilinx_versal_mini_emmc1_defconfig
+++ b/configs/xilinx_versal_mini_emmc1_defconfig
@@ -15,6 +15,7 @@ CONFIG_DEFAULT_DEVICE_TREE="versal-mini-emmc1"
CONFIG_SYS_LOAD_ADDR=0x8000000
# CONFIG_EXPERT is not set
CONFIG_REMAKE_ELF=y
+# CONFIG_BOOTM is not set
# CONFIG_AUTOBOOT is not set
CONFIG_SYS_CONSOLE_INFO_QUIET=y
# CONFIG_DISPLAY_CPUINFO is not set
@@ -31,7 +32,6 @@ CONFIG_SYS_PBSIZE=1049
# CONFIG_CMD_BDI is not set
# CONFIG_CMD_CONSOLE is not set
# CONFIG_CMD_BOOTD is not set
-# CONFIG_CMD_BOOTM is not set
# CONFIG_CMD_BOOTI is not set
# CONFIG_CMD_ELF is not set
# CONFIG_CMD_FDT is not set
diff --git a/configs/xilinx_versal_mini_ospi_defconfig b/configs/xilinx_versal_mini_ospi_defconfig
index 96be5b92b903..f91431e9b7bc 100644
--- a/configs/xilinx_versal_mini_ospi_defconfig
+++ b/configs/xilinx_versal_mini_ospi_defconfig
@@ -18,6 +18,7 @@ CONFIG_VERSAL_NO_DDR=y
CONFIG_SYS_LOAD_ADDR=0x8000000
# CONFIG_EXPERT is not set
CONFIG_REMAKE_ELF=y
+# CONFIG_BOOTM is not set
# CONFIG_AUTOBOOT is not set
CONFIG_SYS_CONSOLE_INFO_QUIET=y
# CONFIG_DISPLAY_CPUINFO is not set
@@ -30,7 +31,6 @@ CONFIG_SYS_PROMPT="Versal> "
# CONFIG_CMD_BDI is not set
# CONFIG_CMD_CONSOLE is not set
# CONFIG_CMD_BOOTD is not set
-# CONFIG_CMD_BOOTM is not set
# CONFIG_CMD_BOOTI is not set
# CONFIG_CMD_ELF is not set
# CONFIG_CMD_FDT is not set
diff --git a/configs/xilinx_versal_mini_qspi_defconfig b/configs/xilinx_versal_mini_qspi_defconfig
index 7181b89a6519..7faab7aad42c 100644
--- a/configs/xilinx_versal_mini_qspi_defconfig
+++ b/configs/xilinx_versal_mini_qspi_defconfig
@@ -16,6 +16,7 @@ CONFIG_VERSAL_NO_DDR=y
CONFIG_SYS_LOAD_ADDR=0x8000000
# CONFIG_EXPERT is not set
CONFIG_REMAKE_ELF=y
+# CONFIG_BOOTM is not set
# CONFIG_AUTOBOOT is not set
# CONFIG_ARCH_FIXUP_FDT_MEMORY is not set
CONFIG_LOGLEVEL=0
@@ -31,7 +32,6 @@ CONFIG_SYS_PROMPT="Versal> "
# CONFIG_CMD_BDI is not set
# CONFIG_CMD_CONSOLE is not set
# CONFIG_CMD_BOOTD is not set
-# CONFIG_CMD_BOOTM is not set
# CONFIG_CMD_BOOTI is not set
# CONFIG_CMD_ELF is not set
# CONFIG_CMD_FDT is not set
diff --git a/configs/xilinx_versal_net_mini_defconfig b/configs/xilinx_versal_net_mini_defconfig
index 7dac1ec54eb4..317fc8e2e152 100644
--- a/configs/xilinx_versal_net_mini_defconfig
+++ b/configs/xilinx_versal_net_mini_defconfig
@@ -20,6 +20,7 @@ CONFIG_SYS_MEMTEST_START=0x00000000
CONFIG_SYS_MEMTEST_END=0x00001000
# CONFIG_EXPERT is not set
CONFIG_REMAKE_ELF=y
+# CONFIG_BOOTM is not set
# CONFIG_LEGACY_IMAGE_FORMAT is not set
# CONFIG_AUTOBOOT is not set
# CONFIG_ARCH_FIXUP_FDT_MEMORY is not set
@@ -33,7 +34,6 @@ CONFIG_BOARD_EARLY_INIT_R=y
CONFIG_SYS_PROMPT="Versal NET> "
# CONFIG_CMD_CONSOLE is not set
# CONFIG_CMD_BOOTD is not set
-# CONFIG_CMD_BOOTM is not set
# CONFIG_CMD_BOOTI is not set
# CONFIG_CMD_ELF is not set
# CONFIG_CMD_FDT is not set
diff --git a/configs/xilinx_versal_net_mini_emmc_defconfig b/configs/xilinx_versal_net_mini_emmc_defconfig
index fc88eee10af4..31c443236667 100644
--- a/configs/xilinx_versal_net_mini_emmc_defconfig
+++ b/configs/xilinx_versal_net_mini_emmc_defconfig
@@ -25,7 +25,7 @@ CONFIG_SYS_PROMPT="Versal NET> "
# CONFIG_CMD_BDI is not set
# CONFIG_CMD_CONSOLE is not set
# CONFIG_CMD_BOOTD is not set
-# CONFIG_CMD_BOOTM is not set
+# CONFIG_BOOTM is not set
# CONFIG_CMD_BOOTI is not set
# CONFIG_CMD_ELF is not set
# CONFIG_CMD_FDT is not set
diff --git a/configs/xilinx_versal_net_mini_ospi_defconfig b/configs/xilinx_versal_net_mini_ospi_defconfig
index 1ba6e0871bf1..86c32e95ffda 100644
--- a/configs/xilinx_versal_net_mini_ospi_defconfig
+++ b/configs/xilinx_versal_net_mini_ospi_defconfig
@@ -29,7 +29,7 @@ CONFIG_SYS_PROMPT="Versal NET> "
# CONFIG_CMD_BDI is not set
# CONFIG_CMD_CONSOLE is not set
# CONFIG_CMD_BOOTD is not set
-# CONFIG_CMD_BOOTM is not set
+# CONFIG_BOOTM is not set
# CONFIG_CMD_BOOTI is not set
# CONFIG_CMD_ELF is not set
# CONFIG_CMD_FDT is not set
diff --git a/configs/xilinx_versal_net_mini_qspi_defconfig b/configs/xilinx_versal_net_mini_qspi_defconfig
index c9497bb6c2af..e0c5fcb32897 100644
--- a/configs/xilinx_versal_net_mini_qspi_defconfig
+++ b/configs/xilinx_versal_net_mini_qspi_defconfig
@@ -30,7 +30,7 @@ CONFIG_SYS_PROMPT="Versal NET> "
# CONFIG_CMD_BDI is not set
# CONFIG_CMD_CONSOLE is not set
# CONFIG_CMD_BOOTD is not set
-# CONFIG_CMD_BOOTM is not set
+# CONFIG_BOOTM is not set
# CONFIG_CMD_BOOTI is not set
# CONFIG_CMD_ELF is not set
# CONFIG_CMD_FDT is not set
diff --git a/configs/xilinx_zynqmp_mini_defconfig b/configs/xilinx_zynqmp_mini_defconfig
index 694fa1123e9d..c2977d4203e5 100644
--- a/configs/xilinx_zynqmp_mini_defconfig
+++ b/configs/xilinx_zynqmp_mini_defconfig
@@ -13,6 +13,7 @@ CONFIG_SYS_LOAD_ADDR=0x8000000
CONFIG_SYS_MEMTEST_START=0x00000000
CONFIG_SYS_MEMTEST_END=0x00001000
CONFIG_REMAKE_ELF=y
+# CONFIG_BOOTM is not set
# CONFIG_LEGACY_IMAGE_FORMAT is not set
# CONFIG_AUTOBOOT is not set
# CONFIG_DISPLAY_CPUINFO is not set
@@ -27,7 +28,6 @@ CONFIG_SYS_PBSIZE=1049
# CONFIG_CMD_BDI is not set
# CONFIG_CMD_CONSOLE is not set
# CONFIG_CMD_BOOTD is not set
-# CONFIG_CMD_BOOTM is not set
# CONFIG_CMD_BOOTI is not set
# CONFIG_CMD_ELF is not set
# CONFIG_CMD_FDT is not set
diff --git a/configs/xilinx_zynqmp_mini_emmc0_defconfig b/configs/xilinx_zynqmp_mini_emmc0_defconfig
index f81b772c4cb1..dc14088eef85 100644
--- a/configs/xilinx_zynqmp_mini_emmc0_defconfig
+++ b/configs/xilinx_zynqmp_mini_emmc0_defconfig
@@ -17,6 +17,7 @@ CONFIG_SYS_LOAD_ADDR=0x8000000
CONFIG_REMAKE_ELF=y
# CONFIG_MP is not set
CONFIG_FIT=y
+# CONFIG_BOOTM is not set
CONFIG_SUPPORT_RAW_INITRD=y
# CONFIG_AUTOBOOT is not set
# CONFIG_DISPLAY_CPUINFO is not set
@@ -38,7 +39,6 @@ CONFIG_SYS_PBSIZE=1049
# CONFIG_CMD_BDI is not set
# CONFIG_CMD_CONSOLE is not set
# CONFIG_CMD_BOOTD is not set
-# CONFIG_CMD_BOOTM is not set
# CONFIG_CMD_BOOTI is not set
# CONFIG_CMD_ELF is not set
# CONFIG_CMD_FDT is not set
diff --git a/configs/xilinx_zynqmp_mini_emmc1_defconfig b/configs/xilinx_zynqmp_mini_emmc1_defconfig
index 6501ec3a0600..1e9f4cbdb412 100644
--- a/configs/xilinx_zynqmp_mini_emmc1_defconfig
+++ b/configs/xilinx_zynqmp_mini_emmc1_defconfig
@@ -17,6 +17,7 @@ CONFIG_SYS_LOAD_ADDR=0x8000000
CONFIG_REMAKE_ELF=y
# CONFIG_MP is not set
CONFIG_FIT=y
+# CONFIG_BOOTM is not set
CONFIG_SUPPORT_RAW_INITRD=y
# CONFIG_AUTOBOOT is not set
# CONFIG_DISPLAY_CPUINFO is not set
@@ -38,7 +39,6 @@ CONFIG_SYS_PBSIZE=1049
# CONFIG_CMD_BDI is not set
# CONFIG_CMD_CONSOLE is not set
# CONFIG_CMD_BOOTD is not set
-# CONFIG_CMD_BOOTM is not set
# CONFIG_CMD_BOOTI is not set
# CONFIG_CMD_ELF is not set
# CONFIG_CMD_FDT is not set
diff --git a/configs/xilinx_zynqmp_mini_nand_defconfig b/configs/xilinx_zynqmp_mini_nand_defconfig
index bfe93dc965fe..024246349bde 100644
--- a/configs/xilinx_zynqmp_mini_nand_defconfig
+++ b/configs/xilinx_zynqmp_mini_nand_defconfig
@@ -13,6 +13,7 @@ CONFIG_SYS_LOAD_ADDR=0x8000000
CONFIG_REMAKE_ELF=y
# CONFIG_MP is not set
CONFIG_FIT=y
+# CONFIG_BOOTM is not set
CONFIG_SUPPORT_RAW_INITRD=y
# CONFIG_AUTOBOOT is not set
# CONFIG_DISPLAY_CPUINFO is not set
@@ -28,7 +29,6 @@ CONFIG_SYS_PBSIZE=1049
# CONFIG_CMD_BDI is not set
# CONFIG_CMD_CONSOLE is not set
# CONFIG_CMD_BOOTD is not set
-# CONFIG_CMD_BOOTM is not set
# CONFIG_CMD_BOOTI is not set
# CONFIG_CMD_GO is not set
# CONFIG_CMD_RUN is not set
diff --git a/configs/xilinx_zynqmp_mini_nand_single_defconfig b/configs/xilinx_zynqmp_mini_nand_single_defconfig
index 91f5aa24bd51..1dc3b1054f35 100644
--- a/configs/xilinx_zynqmp_mini_nand_single_defconfig
+++ b/configs/xilinx_zynqmp_mini_nand_single_defconfig
@@ -13,6 +13,7 @@ CONFIG_SYS_LOAD_ADDR=0x8000000
CONFIG_REMAKE_ELF=y
# CONFIG_MP is not set
CONFIG_FIT=y
+# CONFIG_BOOTM is not set
CONFIG_SUPPORT_RAW_INITRD=y
# CONFIG_AUTOBOOT is not set
# CONFIG_DISPLAY_CPUINFO is not set
@@ -28,7 +29,6 @@ CONFIG_SYS_PBSIZE=1049
# CONFIG_CMD_BDI is not set
# CONFIG_CMD_CONSOLE is not set
# CONFIG_CMD_BOOTD is not set
-# CONFIG_CMD_BOOTM is not set
# CONFIG_CMD_BOOTI is not set
# CONFIG_CMD_GO is not set
# CONFIG_CMD_RUN is not set
diff --git a/configs/xilinx_zynqmp_mini_qspi_defconfig b/configs/xilinx_zynqmp_mini_qspi_defconfig
index afbf6f6934d6..f568e51cd495 100644
--- a/configs/xilinx_zynqmp_mini_qspi_defconfig
+++ b/configs/xilinx_zynqmp_mini_qspi_defconfig
@@ -19,6 +19,7 @@ CONFIG_ZYNQMP_NO_DDR=y
CONFIG_SYS_LOAD_ADDR=0x8000000
# CONFIG_EXPERT is not set
CONFIG_REMAKE_ELF=y
+# CONFIG_BOOTM is not set
# CONFIG_LEGACY_IMAGE_FORMAT is not set
# CONFIG_AUTOBOOT is not set
# CONFIG_ARCH_FIXUP_FDT_MEMORY is not set
@@ -42,7 +43,6 @@ CONFIG_SYS_PBSIZE=1049
# CONFIG_CMD_BDI is not set
# CONFIG_CMD_CONSOLE is not set
# CONFIG_CMD_BOOTD is not set
-# CONFIG_CMD_BOOTM is not set
# CONFIG_CMD_BOOTI is not set
# CONFIG_CMD_ELF is not set
# CONFIG_CMD_FDT is not set
diff --git a/configs/zynq_cse_nand_defconfig b/configs/zynq_cse_nand_defconfig
index f7b75812b43f..521805cb5214 100644
--- a/configs/zynq_cse_nand_defconfig
+++ b/configs/zynq_cse_nand_defconfig
@@ -19,6 +19,7 @@ CONFIG_SYS_LOAD_ADDR=0x0
CONFIG_REMAKE_ELF=y
CONFIG_SYS_CUSTOM_LDSCRIPT=y
CONFIG_SYS_LDSCRIPT="arch/arm/mach-zynq/u-boot.lds"
+# CONFIG_BOOTM is not set
# CONFIG_AUTOBOOT is not set
CONFIG_USE_PREBOOT=y
# CONFIG_DISPLAY_CPUINFO is not set
@@ -43,7 +44,6 @@ CONFIG_SYS_PBSIZE=1047
# CONFIG_CMD_BDI is not set
# CONFIG_CMD_CONSOLE is not set
# CONFIG_CMD_BOOTD is not set
-# CONFIG_CMD_BOOTM is not set
# CONFIG_CMD_ELF is not set
# CONFIG_CMD_FDT is not set
# CONFIG_CMD_GO is not set
diff --git a/configs/zynq_cse_nor_defconfig b/configs/zynq_cse_nor_defconfig
index 2a50f38998b7..7401161a6108 100644
--- a/configs/zynq_cse_nor_defconfig
+++ b/configs/zynq_cse_nor_defconfig
@@ -19,6 +19,7 @@ CONFIG_SYS_LOAD_ADDR=0x0
CONFIG_REMAKE_ELF=y
CONFIG_SYS_CUSTOM_LDSCRIPT=y
CONFIG_SYS_LDSCRIPT="arch/arm/mach-zynq/u-boot.lds"
+# CONFIG_BOOTM is not set
# CONFIG_AUTOBOOT is not set
CONFIG_USE_PREBOOT=y
# CONFIG_DISPLAY_CPUINFO is not set
@@ -43,7 +44,6 @@ CONFIG_SYS_PBSIZE=1047
# CONFIG_CMD_BDI is not set
# CONFIG_CMD_CONSOLE is not set
# CONFIG_CMD_BOOTD is not set
-# CONFIG_CMD_BOOTM is not set
# CONFIG_CMD_ELF is not set
# CONFIG_CMD_FDT is not set
# CONFIG_CMD_GO is not set
diff --git a/configs/zynq_cse_qspi_defconfig b/configs/zynq_cse_qspi_defconfig
index db1fc532d153..e2a579db7291 100644
--- a/configs/zynq_cse_qspi_defconfig
+++ b/configs/zynq_cse_qspi_defconfig
@@ -25,6 +25,7 @@ CONFIG_DEBUG_UART=y
CONFIG_REMAKE_ELF=y
CONFIG_SYS_CUSTOM_LDSCRIPT=y
CONFIG_SYS_LDSCRIPT="arch/arm/mach-zynq/u-boot.lds"
+# CONFIG_BOOTM is not set
# CONFIG_AUTOBOOT is not set
# CONFIG_ARCH_FIXUP_FDT_MEMORY is not set
CONFIG_USE_PREBOOT=y
@@ -52,7 +53,6 @@ CONFIG_SYS_PBSIZE=1047
# CONFIG_CMD_BDI is not set
# CONFIG_CMD_CONSOLE is not set
# CONFIG_CMD_BOOTD is not set
-# CONFIG_CMD_BOOTM is not set
# CONFIG_CMD_ELF is not set
# CONFIG_CMD_FDT is not set
# CONFIG_CMD_GO is not set
--
2.43.0.472.g3155946c3a-goog
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 03/16] bootm: Make OS booting dependent on BOOTM
2023-12-15 4:18 [PATCH v2 00/16] pxe: Allow extlinux booting without CMDLINE enabled Simon Glass
2023-12-15 4:18 ` [PATCH v2 01/16] boot: Reorder FIT and BOOTSTD to be first Simon Glass
2023-12-15 4:19 ` [PATCH v2 02/16] bootm: Add a Kconfig option for bootm functionality Simon Glass
@ 2023-12-15 4:19 ` Simon Glass
2023-12-15 4:19 ` [PATCH v2 04/16] treewide: Make arch-specific bootm code depend " Simon Glass
` (13 subsequent siblings)
16 siblings, 0 replies; 26+ messages in thread
From: Simon Glass @ 2023-12-15 4:19 UTC (permalink / raw)
To: U-Boot Mailing List
Cc: Tom Rini, Simon Glass, AKASHI Takahiro, Abdellatif El Khlifi,
Bin Meng, Eddie James, Heinrich Schuchardt, Mattijs Korpershoek,
Miquel Raynal, Sean Edmond, Tobias Waldekranz
Booting an OS does not require the 'bootm' command, so change the
condition for these options.
Move them into boot/ so they don't depend on CMDLINE
Note that CMD_BOOTM_PRE_LOAD has been put directly into the bootm code
so will need some additional refactoring (and a test!) to allow it to
change over.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
---
(no changes since v1)
boot/Kconfig | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
cmd/Kconfig | 49 -------------------------------------------------
2 files changed, 49 insertions(+), 49 deletions(-)
diff --git a/boot/Kconfig b/boot/Kconfig
index 8b32a51f7e7c..9fa8789bc2b1 100644
--- a/boot/Kconfig
+++ b/boot/Kconfig
@@ -689,6 +689,55 @@ config BOOTM
This option should normally be enabled. It is used to implement the
'bootm' command.
+config BOOTM_LINUX
+ bool "Support booting Linux OS images"
+ depends on BOOTM || CMD_BOOTZ || CMD_BOOTI
+ default y
+ help
+ Support booting the Linux kernel directly via a command such as bootm
+ or booti or bootz.
+
+config BOOTM_NETBSD
+ bool "Support booting NetBSD (non-EFI) loader images"
+ depends on BOOTM
+ default y
+ help
+ Support booting NetBSD via the bootm command.
+
+config BOOTM_OPENRTOS
+ bool "Support booting OPENRTOS / FreeRTOS images"
+ depends on BOOTM
+ help
+ Support booting OPENRTOS / FreeRTOS via the bootm command.
+
+config BOOTM_OSE
+ bool "Support booting Enea OSE images"
+ depends on (ARM && (ARM64 || CPU_V7A || CPU_V7R) || SANDBOX || PPC || X86)
+ depends on BOOTM
+ help
+ Support booting Enea OSE images via the bootm command.
+
+config BOOTM_PLAN9
+ bool "Support booting Plan9 OS images"
+ depends on BOOTM
+ default y
+ help
+ Support booting Plan9 images via the bootm command.
+
+config BOOTM_RTEMS
+ bool "Support booting RTEMS OS images"
+ depends on BOOTM
+ default y
+ help
+ Support booting RTEMS images via the bootm command.
+
+config BOOTM_VXWORKS
+ bool "Support booting VxWorks OS images"
+ depends on BOOTM
+ default y
+ help
+ Support booting VxWorks images via the bootm command.
+
config ANDROID_BOOT_IMAGE
bool "Android Boot Images"
default y if FASTBOOT
diff --git a/cmd/Kconfig b/cmd/Kconfig
index 2af66a66c1e1..116e53f972d0 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -291,48 +291,6 @@ config CMD_BOOTI
help
Boot an AArch64 Linux Kernel image from memory.
-config BOOTM_LINUX
- bool "Support booting Linux OS images"
- depends on CMD_BOOTM || CMD_BOOTZ || CMD_BOOTI
- default y
- help
- Support booting the Linux kernel directly via a command such as bootm
- or booti or bootz.
-
-config BOOTM_NETBSD
- bool "Support booting NetBSD (non-EFI) loader images"
- depends on CMD_BOOTM
- default y
- help
- Support booting NetBSD via the bootm command.
-
-config BOOTM_OPENRTOS
- bool "Support booting OPENRTOS / FreeRTOS images"
- depends on CMD_BOOTM
- help
- Support booting OPENRTOS / FreeRTOS via the bootm command.
-
-config BOOTM_OSE
- bool "Support booting Enea OSE images"
- depends on (ARM && (ARM64 || CPU_V7A || CPU_V7R) || SANDBOX || PPC || X86)
- depends on CMD_BOOTM
- help
- Support booting Enea OSE images via the bootm command.
-
-config BOOTM_PLAN9
- bool "Support booting Plan9 OS images"
- depends on CMD_BOOTM
- default y
- help
- Support booting Plan9 images via the bootm command.
-
-config BOOTM_RTEMS
- bool "Support booting RTEMS OS images"
- depends on CMD_BOOTM
- default y
- help
- Support booting RTEMS images via the bootm command.
-
config CMD_SEAMA
bool "Support read SEAMA NAND images"
depends on MTD_RAW_NAND
@@ -349,13 +307,6 @@ config CMD_VBE
is used to boot. Updating the parameters is not currently
supported.
-config BOOTM_VXWORKS
- bool "Support booting VxWorks OS images"
- depends on CMD_BOOTM
- default y
- help
- Support booting VxWorks images via the bootm command.
-
config CMD_BOOTEFI
bool "bootefi"
depends on EFI_LOADER
--
2.43.0.472.g3155946c3a-goog
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 04/16] treewide: Make arch-specific bootm code depend on BOOTM
2023-12-15 4:18 [PATCH v2 00/16] pxe: Allow extlinux booting without CMDLINE enabled Simon Glass
` (2 preceding siblings ...)
2023-12-15 4:19 ` [PATCH v2 03/16] bootm: Make OS booting dependent on BOOTM Simon Glass
@ 2023-12-15 4:19 ` Simon Glass
2023-12-23 7:28 ` Angelo Dureghello
2023-12-15 4:19 ` [PATCH v2 05/16] boot: Update SYS_BOOTM_LEN to " Simon Glass
` (12 subsequent siblings)
16 siblings, 1 reply; 26+ messages in thread
From: Simon Glass @ 2023-12-15 4:19 UTC (permalink / raw)
To: U-Boot Mailing List
Cc: Tom Rini, Simon Glass, Alexey Brodkin, Angelo Dureghello,
Bin Meng, Daniel Schwierzeck, Eugeniy Paltsev, Huan Wang, Leo,
Marek Vasut, Max Filippov, Michal Simek, Nobuhiro Iwamatsu,
Rick Chen, Sean Anderson, Thomas Chou, Yu Chien Peter Lin,
uboot-snps-arc
Allow these functions to be compiled in when CONFIG_BOOTM is enabled,
even if CONFIG_CMD_BOOTM is not.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
(no changes since v1)
arch/arc/lib/Makefile | 2 +-
arch/arm/lib/Makefile | 2 +-
arch/m68k/lib/Makefile | 2 +-
arch/microblaze/lib/Makefile | 2 +-
arch/mips/lib/Makefile | 2 +-
arch/nios2/lib/Makefile | 2 +-
arch/powerpc/lib/Makefile | 2 +-
arch/riscv/lib/Makefile | 2 +-
arch/sandbox/lib/Makefile | 2 +-
arch/sh/lib/Makefile | 2 +-
arch/x86/lib/Makefile | 2 +-
arch/xtensa/lib/Makefile | 2 +-
12 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/arch/arc/lib/Makefile b/arch/arc/lib/Makefile
index 0eb44bcf33d0..bde1c3d8af3a 100644
--- a/arch/arc/lib/Makefile
+++ b/arch/arc/lib/Makefile
@@ -12,6 +12,6 @@ obj-y += reset.o
obj-y += ints_low.o
obj-y += init_helpers.o
-obj-$(CONFIG_CMD_BOOTM) += bootm.o
+obj-$(CONFIG_BOOTM) += bootm.o
lib-$(CONFIG_USE_PRIVATE_LIBGCC) += _millicodethunk.o libgcc2.o
diff --git a/arch/arm/lib/Makefile b/arch/arm/lib/Makefile
index b1bcd3746625..b20a467f684c 100644
--- a/arch/arm/lib/Makefile
+++ b/arch/arm/lib/Makefile
@@ -31,7 +31,7 @@ endif
obj-$(CONFIG_CPU_V7M) += cmd_boot.o
obj-$(CONFIG_OF_LIBFDT) += bootm-fdt.o
obj-$(CONFIG_CMD_BOOTI) += bootm.o image.o
-obj-$(CONFIG_CMD_BOOTM) += bootm.o
+obj-$(CONFIG_BOOTM) += bootm.o
obj-$(CONFIG_CMD_BOOTZ) += bootm.o zimage.o
else
obj-$(CONFIG_$(SPL_TPL_)FRAMEWORK) += spl.o
diff --git a/arch/m68k/lib/Makefile b/arch/m68k/lib/Makefile
index 6e1fd938f526..5ccd9545cb5c 100644
--- a/arch/m68k/lib/Makefile
+++ b/arch/m68k/lib/Makefile
@@ -8,7 +8,7 @@
lib-$(CONFIG_USE_PRIVATE_LIBGCC) += lshrdi3.o muldi3.o ashldi3.o ashrdi3.o
obj-y += bdinfo.o
-obj-$(CONFIG_CMD_BOOTM) += bootm.o
+obj-$(CONFIG_BOOTM) += bootm.o
obj-y += cache.o
obj-y += interrupts.o
obj-y += time.o
diff --git a/arch/microblaze/lib/Makefile b/arch/microblaze/lib/Makefile
index dfd8135f4f25..2f234825f804 100644
--- a/arch/microblaze/lib/Makefile
+++ b/arch/microblaze/lib/Makefile
@@ -3,6 +3,6 @@
# (C) Copyright 2003-2006
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
-obj-$(CONFIG_CMD_BOOTM) += bootm.o
+obj-$(CONFIG_BOOTM) += bootm.o
obj-$(CONFIG_CMD_BDI) += bdinfo.o
obj-y += muldi3.o
diff --git a/arch/mips/lib/Makefile b/arch/mips/lib/Makefile
index 9ee1fcb5c702..f8e162c53b58 100644
--- a/arch/mips/lib/Makefile
+++ b/arch/mips/lib/Makefile
@@ -10,7 +10,7 @@ obj-y += reloc.o
obj-y += stack.o
obj-y += traps.o
-obj-$(CONFIG_CMD_BOOTM) += bootm.o
+obj-$(CONFIG_BOOTM) += bootm.o
obj-$(CONFIG_CMD_GO) += boot.o
obj-$(CONFIG_SPL_BUILD) += spl.o
diff --git a/arch/nios2/lib/Makefile b/arch/nios2/lib/Makefile
index a9f3c7100e72..68a5ca007d55 100644
--- a/arch/nios2/lib/Makefile
+++ b/arch/nios2/lib/Makefile
@@ -4,5 +4,5 @@
# Wolfgang Denk, DENX Software Engineering, wd@denx.de.
obj-y += cache.o
-obj-$(CONFIG_CMD_BOOTM) += bootm.o
+obj-$(CONFIG_BOOTM) += bootm.o
obj-y += libgcc.o
diff --git a/arch/powerpc/lib/Makefile b/arch/powerpc/lib/Makefile
index bb819dcbb6cc..dcce9834927d 100644
--- a/arch/powerpc/lib/Makefile
+++ b/arch/powerpc/lib/Makefile
@@ -34,7 +34,7 @@ obj-y += ticks.o
endif
obj-y += reloc.o
-obj-$(CONFIG_CMD_BOOTM) += bootm.o
+obj-$(CONFIG_BOOTM) += bootm.o
obj-y += cache.o
obj-y += extable.o
obj-y += interrupts.o
diff --git a/arch/riscv/lib/Makefile b/arch/riscv/lib/Makefile
index 9a05b662fd63..0b2c88db6bad 100644
--- a/arch/riscv/lib/Makefile
+++ b/arch/riscv/lib/Makefile
@@ -6,7 +6,7 @@
# Copyright (C) 2017 Andes Technology Corporation
# Rick Chen, Andes Technology Corporation <rick@andestech.com>
-obj-$(CONFIG_CMD_BOOTM) += bootm.o
+obj-$(CONFIG_BOOTM) += bootm.o
obj-$(CONFIG_CMD_BOOTI) += bootm.o image.o
obj-$(CONFIG_CMD_GO) += boot.o
obj-y += cache.o
diff --git a/arch/sandbox/lib/Makefile b/arch/sandbox/lib/Makefile
index a2bc5a7ee60f..c4924b23c832 100644
--- a/arch/sandbox/lib/Makefile
+++ b/arch/sandbox/lib/Makefile
@@ -7,5 +7,5 @@
obj-y += fdt_fixup.o interrupts.o sections.o
obj-$(CONFIG_PCI) += pci_io.o
-obj-$(CONFIG_CMD_BOOTM) += bootm.o
+obj-$(CONFIG_BOOTM) += bootm.o
obj-$(CONFIG_CMD_BOOTZ) += bootm.o
diff --git a/arch/sh/lib/Makefile b/arch/sh/lib/Makefile
index e7520a328d54..8c3c30293a3c 100644
--- a/arch/sh/lib/Makefile
+++ b/arch/sh/lib/Makefile
@@ -6,7 +6,7 @@
extra-y += start.o
obj-y += board.o
-obj-$(CONFIG_CMD_BOOTM) += bootm.o
+obj-$(CONFIG_BOOTM) += bootm.o
obj-y += time.o
obj-$(CONFIG_CMD_SH_ZIMAGEBOOT) += zimageboot.o
diff --git a/arch/x86/lib/Makefile b/arch/x86/lib/Makefile
index 8fc35e1b51ea..94aa335ede4c 100644
--- a/arch/x86/lib/Makefile
+++ b/arch/x86/lib/Makefile
@@ -16,7 +16,7 @@ obj-$(CONFIG_X86_32BIT_INIT) += string.o
endif
ifndef CONFIG_SPL_BUILD
-obj-$(CONFIG_CMD_BOOTM) += bootm.o
+obj-$(CONFIG_BOOTM) += bootm.o
endif
obj-y += cmd_boot.o
obj-$(CONFIG_$(SPL_)COREBOOT_SYSINFO) += coreboot/
diff --git a/arch/xtensa/lib/Makefile b/arch/xtensa/lib/Makefile
index ad4fe32cb699..bb9157f30f0f 100644
--- a/arch/xtensa/lib/Makefile
+++ b/arch/xtensa/lib/Makefile
@@ -3,6 +3,6 @@
# (C) Copyright 2007 - 2013 Tensilica Inc.
# (C) Copyright 2014 - 2016 Cadence Design Systems Inc.
-obj-$(CONFIG_CMD_BOOTM) += bootm.o
+obj-$(CONFIG_BOOTM) += bootm.o
obj-y += cache.o misc.o relocate.o time.o
--
2.43.0.472.g3155946c3a-goog
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 05/16] boot: Update SYS_BOOTM_LEN to depend on BOOTM
2023-12-15 4:18 [PATCH v2 00/16] pxe: Allow extlinux booting without CMDLINE enabled Simon Glass
` (3 preceding siblings ...)
2023-12-15 4:19 ` [PATCH v2 04/16] treewide: Make arch-specific bootm code depend " Simon Glass
@ 2023-12-15 4:19 ` Simon Glass
2023-12-15 4:19 ` [PATCH v2 06/16] fastboot: Change fastboot_buf_addr to an address Simon Glass
` (11 subsequent siblings)
16 siblings, 0 replies; 26+ messages in thread
From: Simon Glass @ 2023-12-15 4:19 UTC (permalink / raw)
To: U-Boot Mailing List; +Cc: Tom Rini, Simon Glass, Eddie James
Use the new CONFIG_BOOTM symbol to determine whether SYS_BOOT_LEN is
visible or not, since we want to support decompression when CMDLINE is
disabled.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
(no changes since v1)
boot/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/boot/Kconfig b/boot/Kconfig
index 9fa8789bc2b1..d83047acbd0d 100644
--- a/boot/Kconfig
+++ b/boot/Kconfig
@@ -800,7 +800,7 @@ endif # MEASURED_BOOT
config SYS_BOOTM_LEN
hex "Maximum size of a decompresed OS image"
- depends on CMD_BOOTM || CMD_BOOTI || CMD_BOOTZ || \
+ depends on BOOTM || CMD_BOOTI || CMD_BOOTZ || \
LEGACY_IMAGE_FORMAT || SPL_LEGACY_IMAGE_FORMAT
default 0x4000000 if PPC || ARM64
default 0x1000000 if X86 || ARCH_MX6 || ARCH_MX7
--
2.43.0.472.g3155946c3a-goog
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 06/16] fastboot: Change fastboot_buf_addr to an address
2023-12-15 4:18 [PATCH v2 00/16] pxe: Allow extlinux booting without CMDLINE enabled Simon Glass
` (4 preceding siblings ...)
2023-12-15 4:19 ` [PATCH v2 05/16] boot: Update SYS_BOOTM_LEN to " Simon Glass
@ 2023-12-15 4:19 ` Simon Glass
2023-12-15 4:19 ` [PATCH v2 07/16] bootm: Make cmdline optional with bootm_boot_start() Simon Glass
` (10 subsequent siblings)
16 siblings, 0 replies; 26+ messages in thread
From: Simon Glass @ 2023-12-15 4:19 UTC (permalink / raw)
To: U-Boot Mailing List
Cc: Tom Rini, Simon Glass, Dmitrii Merkurev, Mattijs Korpershoek
Given the name of this variable, it should be an address, not a
pointer. Update this, to make it easier to use with sandbox.
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Dmitrii Merkurev <dimorinny@google.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
Tested-by: Mattijs Korpershoek <mkorpershoek@baylibre.com> # on vim3
---
Changes in v2:
- Use unmap_sysmem() too
cmd/fastboot.c | 2 +-
drivers/fastboot/fb_command.c | 17 ++++++++++++-----
drivers/fastboot/fb_common.c | 15 ++++-----------
include/fastboot-internal.h | 2 +-
include/fastboot.h | 6 +++---
5 files changed, 21 insertions(+), 21 deletions(-)
diff --git a/cmd/fastboot.c b/cmd/fastboot.c
index c3c19231c988..792e83d372c3 100644
--- a/cmd/fastboot.c
+++ b/cmd/fastboot.c
@@ -159,7 +159,7 @@ NXTARG:
return CMD_RET_USAGE;
}
- fastboot_init((void *)buf_addr, buf_size);
+ fastboot_init(buf_addr, buf_size);
if (!strcmp(argv[1], "udp"))
return do_fastboot_udp(argc, argv, buf_addr, buf_size);
diff --git a/drivers/fastboot/fb_command.c b/drivers/fastboot/fb_command.c
index 5fcadcdf503d..55ac1e96979f 100644
--- a/drivers/fastboot/fb_command.c
+++ b/drivers/fastboot/fb_command.c
@@ -10,6 +10,7 @@
#include <fastboot-internal.h>
#include <fb_mmc.h>
#include <fb_nand.h>
+#include <mapmem.h>
#include <part.h>
#include <stdlib.h>
#include <linux/printk.h>
@@ -243,6 +244,7 @@ void fastboot_data_download(const void *fastboot_data,
{
#define BYTES_PER_DOT 0x20000
u32 pre_dot_num, now_dot_num;
+ void *buf;
if (fastboot_data_len == 0 ||
(fastboot_bytes_received + fastboot_data_len) >
@@ -252,8 +254,10 @@ void fastboot_data_download(const void *fastboot_data,
return;
}
/* Download data to fastboot_buf_addr */
- memcpy(fastboot_buf_addr + fastboot_bytes_received,
+ buf = map_sysmem(fastboot_buf_addr, 0);
+ memcpy(buf + fastboot_bytes_received,
fastboot_data, fastboot_data_len);
+ unmap_sysmem(buf);
pre_dot_num = fastboot_bytes_received / BYTES_PER_DOT;
fastboot_bytes_received += fastboot_data_len;
@@ -296,13 +300,16 @@ void fastboot_data_complete(char *response)
*/
static void __maybe_unused flash(char *cmd_parameter, char *response)
{
+ void *buf = map_sysmem(fastboot_buf_addr, 0);
+
if (IS_ENABLED(CONFIG_FASTBOOT_FLASH_MMC))
- fastboot_mmc_flash_write(cmd_parameter, fastboot_buf_addr,
- image_size, response);
+ fastboot_mmc_flash_write(cmd_parameter, buf, image_size,
+ response);
if (IS_ENABLED(CONFIG_FASTBOOT_FLASH_NAND))
- fastboot_nand_flash_write(cmd_parameter, fastboot_buf_addr,
- image_size, response);
+ fastboot_nand_flash_write(cmd_parameter, buf, image_size,
+ response);
+ unmap_sysmem(buf);
}
/**
diff --git a/drivers/fastboot/fb_common.c b/drivers/fastboot/fb_common.c
index 3576b0677299..07f5946d9ed1 100644
--- a/drivers/fastboot/fb_common.c
+++ b/drivers/fastboot/fb_common.c
@@ -20,7 +20,7 @@
/**
* fastboot_buf_addr - base address of the fastboot download buffer
*/
-void *fastboot_buf_addr;
+ulong fastboot_buf_addr;
/**
* fastboot_buf_size - size of the fastboot download buffer
@@ -154,7 +154,7 @@ void fastboot_boot(void)
};
snprintf(boot_addr_start, sizeof(boot_addr_start) - 1,
- "0x%p", fastboot_buf_addr);
+ "%lx", fastboot_buf_addr);
printf("Booting kernel at %s...\n\n\n", boot_addr_start);
do_bootm(NULL, 0, 2, bootm_args);
@@ -214,16 +214,9 @@ void fastboot_set_progress_callback(void (*progress)(const char *msg))
fastboot_progress_callback = progress;
}
-/*
- * fastboot_init() - initialise new fastboot protocol session
- *
- * @buf_addr: Pointer to download buffer, or NULL for default
- * @buf_size: Size of download buffer, or zero for default
- */
-void fastboot_init(void *buf_addr, u32 buf_size)
+void fastboot_init(ulong buf_addr, u32 buf_size)
{
- fastboot_buf_addr = buf_addr ? buf_addr :
- (void *)CONFIG_FASTBOOT_BUF_ADDR;
+ fastboot_buf_addr = buf_addr ? buf_addr : CONFIG_FASTBOOT_BUF_ADDR;
fastboot_buf_size = buf_size ? buf_size : CONFIG_FASTBOOT_BUF_SIZE;
fastboot_set_progress_callback(NULL);
}
diff --git a/include/fastboot-internal.h b/include/fastboot-internal.h
index bf2f2b3c8914..d3e1c106e23f 100644
--- a/include/fastboot-internal.h
+++ b/include/fastboot-internal.h
@@ -6,7 +6,7 @@
/**
* fastboot_buf_addr - base address of the fastboot download buffer
*/
-extern void *fastboot_buf_addr;
+extern ulong fastboot_buf_addr;
/**
* fastboot_buf_size - size of the fastboot download buffer
diff --git a/include/fastboot.h b/include/fastboot.h
index 296451f89d44..744ab61cc18a 100644
--- a/include/fastboot.h
+++ b/include/fastboot.h
@@ -103,13 +103,13 @@ int fastboot_set_reboot_flag(enum fastboot_reboot_reason reason);
*/
void fastboot_set_progress_callback(void (*progress)(const char *msg));
-/*
+/**
* fastboot_init() - initialise new fastboot protocol session
*
- * @buf_addr: Pointer to download buffer, or NULL for default
+ * @buf_addr: Address of download buffer, or 0 for default
* @buf_size: Size of download buffer, or zero for default
*/
-void fastboot_init(void *buf_addr, u32 buf_size);
+void fastboot_init(ulong buf_addr, u32 buf_size);
/**
* fastboot_boot() - Execute fastboot boot command
--
2.43.0.472.g3155946c3a-goog
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 07/16] bootm: Make cmdline optional with bootm_boot_start()
2023-12-15 4:18 [PATCH v2 00/16] pxe: Allow extlinux booting without CMDLINE enabled Simon Glass
` (5 preceding siblings ...)
2023-12-15 4:19 ` [PATCH v2 06/16] fastboot: Change fastboot_buf_addr to an address Simon Glass
@ 2023-12-15 4:19 ` Simon Glass
2023-12-15 4:19 ` [PATCH v2 08/16] fastboot: Remove dependencies on CMDLINE Simon Glass
` (9 subsequent siblings)
16 siblings, 0 replies; 26+ messages in thread
From: Simon Glass @ 2023-12-15 4:19 UTC (permalink / raw)
To: U-Boot Mailing List; +Cc: Tom Rini, Simon Glass, Eddie James, Ilias Apalodimas
Allow the default command line to be used when booting the OS. This is
needed by fastboot.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
Changes in v2:
- Drop check for NULL with env_set()
include/bootm.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/bootm.h b/include/bootm.h
index fe3a2b38b1c5..51e77bde4014 100644
--- a/include/bootm.h
+++ b/include/bootm.h
@@ -299,7 +299,7 @@ void zimage_dump(struct boot_params *base_ptr, bool show_cmdline);
* bootm_boot_start() - Boot an image at the given address
*
* @addr: Image address
- * @cmdline: Command line to set
+ * @cmdline: Command line to set, NULL for default
*/
int bootm_boot_start(ulong addr, const char *cmdline);
--
2.43.0.472.g3155946c3a-goog
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 08/16] fastboot: Remove dependencies on CMDLINE
2023-12-15 4:18 [PATCH v2 00/16] pxe: Allow extlinux booting without CMDLINE enabled Simon Glass
` (6 preceding siblings ...)
2023-12-15 4:19 ` [PATCH v2 07/16] bootm: Make cmdline optional with bootm_boot_start() Simon Glass
@ 2023-12-15 4:19 ` Simon Glass
2023-12-15 12:06 ` Mattijs Korpershoek
2023-12-15 13:49 ` Tom Rini
2023-12-15 4:19 ` [PATCH v2 09/16] doc: Mention fastboot dependency " Simon Glass
` (8 subsequent siblings)
16 siblings, 2 replies; 26+ messages in thread
From: Simon Glass @ 2023-12-15 4:19 UTC (permalink / raw)
To: U-Boot Mailing List
Cc: Tom Rini, Simon Glass, Alex Kiernan, Mattijs Korpershoek
It is possible to boot a kernel without CMDLINE being enabled. Update
the implementation to handle this, and drop the condition from the
FASTBOOT config.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
Changes in v2:
- Avoid changing the logic when a command is not set
drivers/fastboot/Kconfig | 1 -
drivers/fastboot/fb_common.c | 30 ++++++++++++++----------------
2 files changed, 14 insertions(+), 17 deletions(-)
diff --git a/drivers/fastboot/Kconfig b/drivers/fastboot/Kconfig
index 11fc0fe1c800..837c6f1180da 100644
--- a/drivers/fastboot/Kconfig
+++ b/drivers/fastboot/Kconfig
@@ -1,5 +1,4 @@
menu "Fastboot support"
- depends on CMDLINE
config FASTBOOT
bool
diff --git a/drivers/fastboot/fb_common.c b/drivers/fastboot/fb_common.c
index 07f5946d9ed1..595954542a6e 100644
--- a/drivers/fastboot/fb_common.c
+++ b/drivers/fastboot/fb_common.c
@@ -11,6 +11,7 @@
*/
#include <bcb.h>
+#include <bootm.h>
#include <common.h>
#include <command.h>
#include <env.h>
@@ -142,22 +143,19 @@ void (*fastboot_get_progress_callback(void))(const char *)
*/
void fastboot_boot(void)
{
- char *s;
-
- s = env_get("fastboot_bootcmd");
- if (s) {
- run_command(s, CMD_FLAG_ENV);
- } else if (IS_ENABLED(CONFIG_CMD_BOOTM)) {
- static char boot_addr_start[20];
- static char *const bootm_args[] = {
- "bootm", boot_addr_start, NULL
- };
-
- snprintf(boot_addr_start, sizeof(boot_addr_start) - 1,
- "%lx", fastboot_buf_addr);
- printf("Booting kernel at %s...\n\n\n", boot_addr_start);
-
- do_bootm(NULL, 0, 2, bootm_args);
+ char *s = NULL;
+
+ if (IS_ENABLED(CONFIG_CMDLINE)) {
+ s = env_get("fastboot_bootcmd");
+ if (s)
+ run_command(s, CMD_FLAG_ENV);
+ }
+
+ if (!s && IS_ENABLED(CONFIG_BOOTM)) {
+ int ret;
+
+ printf("Booting kernel at %lx...\n\n\n", fastboot_buf_addr);
+ ret = bootm_boot_start(fastboot_buf_addr, NULL);
/*
* This only happens if image is somehow faulty so we start
--
2.43.0.472.g3155946c3a-goog
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 09/16] doc: Mention fastboot dependency on CMDLINE
2023-12-15 4:18 [PATCH v2 00/16] pxe: Allow extlinux booting without CMDLINE enabled Simon Glass
` (7 preceding siblings ...)
2023-12-15 4:19 ` [PATCH v2 08/16] fastboot: Remove dependencies on CMDLINE Simon Glass
@ 2023-12-15 4:19 ` Simon Glass
2023-12-15 12:07 ` Mattijs Korpershoek
2023-12-15 13:14 ` Sam Protsenko
2023-12-15 4:19 ` [PATCH v2 10/16] pxe: Use strlcpy() instead of strcpy() in label_boot() Simon Glass
` (7 subsequent siblings)
16 siblings, 2 replies; 26+ messages in thread
From: Simon Glass @ 2023-12-15 4:19 UTC (permalink / raw)
To: U-Boot Mailing List; +Cc: Tom Rini, Simon Glass, Mattijs Korpershoek
The fastboot 'boot' command only supports running a U-Boot command if
CONFIG_CMDLINE is enabled. Mention this in the documentation.
Signed-off-by: Simon Glass <sjg@chromium.org>
Suggested-by: Tom Rini <trini@konsulko.com>
---
(no changes since v1)
doc/android/fastboot.rst | 1 +
1 file changed, 1 insertion(+)
diff --git a/doc/android/fastboot.rst b/doc/android/fastboot.rst
index 1ad8a897c853..933a652538c7 100644
--- a/doc/android/fastboot.rst
+++ b/doc/android/fastboot.rst
@@ -127,6 +127,7 @@ Boot command
When executing the fastboot ``boot`` command, if ``fastboot_bootcmd`` is set
then that will be executed in place of ``bootm <CONFIG_FASTBOOT_BUF_ADDR>``.
+This is supported if CONFIG_CMDLINE is enabled, which it normally is.
Partition Names
---------------
--
2.43.0.472.g3155946c3a-goog
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 10/16] pxe: Use strlcpy() instead of strcpy() in label_boot()
2023-12-15 4:18 [PATCH v2 00/16] pxe: Allow extlinux booting without CMDLINE enabled Simon Glass
` (8 preceding siblings ...)
2023-12-15 4:19 ` [PATCH v2 09/16] doc: Mention fastboot dependency " Simon Glass
@ 2023-12-15 4:19 ` Simon Glass
2023-12-15 4:19 ` [PATCH v2 11/16] pxe: Refactor to reduce the size of label_boot() Simon Glass
` (6 subsequent siblings)
16 siblings, 0 replies; 26+ messages in thread
From: Simon Glass @ 2023-12-15 4:19 UTC (permalink / raw)
To: U-Boot Mailing List
Cc: Tom Rini, Simon Glass, Dan Carpenter, Marek Vasut, Neil Armstrong,
Patrick Delaunay, Quentin Schulz, Sean Edmond,
Thomas Mittelstaedt
The intention here is to nul-terminate the result string, so use the
correct function for that.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
Changes in v2:
- Split out the strlcpy() change into its own patch
boot/pxe_utils.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/boot/pxe_utils.c b/boot/pxe_utils.c
index a92bb896c63e..2c87aba7ed33 100644
--- a/boot/pxe_utils.c
+++ b/boot/pxe_utils.c
@@ -593,7 +593,7 @@ static int label_boot(struct pxe_context *ctx, struct pxe_label *label)
}
if (label->append)
- strncpy(bootargs, label->append, sizeof(bootargs));
+ strlcpy(bootargs, label->append, sizeof(bootargs));
strcat(bootargs, ip_str);
strcat(bootargs, mac_str);
--
2.43.0.472.g3155946c3a-goog
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 11/16] pxe: Refactor to reduce the size of label_boot()
2023-12-15 4:18 [PATCH v2 00/16] pxe: Allow extlinux booting without CMDLINE enabled Simon Glass
` (9 preceding siblings ...)
2023-12-15 4:19 ` [PATCH v2 10/16] pxe: Use strlcpy() instead of strcpy() in label_boot() Simon Glass
@ 2023-12-15 4:19 ` Simon Glass
2023-12-15 4:19 ` [PATCH v2 12/16] pxe: Refactor to avoid over-using bootm_argv Simon Glass
` (5 subsequent siblings)
16 siblings, 0 replies; 26+ messages in thread
From: Simon Glass @ 2023-12-15 4:19 UTC (permalink / raw)
To: U-Boot Mailing List
Cc: Tom Rini, Simon Glass, Dan Carpenter, Marek Vasut, Neil Armstrong,
Sean Edmond, Thomas Mittelstaedt
This function is far too long and complicated. Split out the part
which actually calls the boot commands into a separate function.
Change a strncpy() to strlcpy() to keep checkpatch happy.
No functional change is intended.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
(no changes since v1)
boot/pxe_utils.c | 301 +++++++++++++++++++++++++----------------------
1 file changed, 163 insertions(+), 138 deletions(-)
diff --git a/boot/pxe_utils.c b/boot/pxe_utils.c
index 2c87aba7ed33..6fbccadd99e6 100644
--- a/boot/pxe_utils.c
+++ b/boot/pxe_utils.c
@@ -470,159 +470,47 @@ skip_overlay:
#endif
/**
- * label_boot() - Boot according to the contents of a pxe_label
+ * label_run_boot() - Run the correct boot procedure
*
- * If we can't boot for any reason, we return. A successful boot never
- * returns.
+ * fdt usage is optional:
+ * It handles the following scenarios.
*
- * The kernel will be stored in the location given by the 'kernel_addr_r'
- * environment variable.
+ * Scenario 1: If fdt_addr_r specified and "fdt" or "fdtdir" label is
+ * defined in pxe file, retrieve fdt blob from server. Pass fdt_addr_r to
+ * bootm, and adjust argc appropriately.
*
- * If the label specifies an initrd file, it will be stored in the location
- * given by the 'ramdisk_addr_r' environment variable.
+ * If retrieve fails and no exact fdt blob is specified in pxe file with
+ * "fdt" label, try Scenario 2.
*
- * If the label specifies an 'append' line, its contents will overwrite that
- * of the 'bootargs' environment variable.
+ * Scenario 2: If there is an fdt_addr specified, pass it along to
+ * bootm, and adjust argc appropriately.
+ *
+ * Scenario 3: If there is an fdtcontroladdr specified, pass it along to
+ * bootm, and adjust argc appropriately, unless the image type is fitImage.
+ *
+ * Scenario 4: fdt blob is not available.
*
* @ctx: PXE context
* @label: Label to process
+ * @kernel_addr: string containing the kernel address / config
+ * @initrd_str: string containing the initrd address / size
+ * @initrd_addr_str: initrd address, or NULL if none
+ * @initrd_filesize: initrd size in bytes; only valid if initrd_addr_str is not
+ * NULL
* Returns does not return on success, otherwise returns 0 if a localboot
* label was processed, or 1 on error
*/
-static int label_boot(struct pxe_context *ctx, struct pxe_label *label)
+static int label_run_boot(struct pxe_context *ctx, struct pxe_label *label,
+ char *kernel_addr, char *initrd_str,
+ char *initrd_addr_str, char *initrd_filesize)
{
char *bootm_argv[] = { "bootm", NULL, NULL, NULL, NULL };
char *zboot_argv[] = { "zboot", NULL, "0", NULL, NULL };
- char *kernel_addr = NULL;
- char *initrd_addr_str = NULL;
- char initrd_filesize[10];
- char initrd_str[28];
- char mac_str[29] = "";
- char ip_str[68] = "";
- char *fit_addr = NULL;
+ ulong kernel_addr_r;
int bootm_argc = 2;
int zboot_argc = 3;
- int len = 0;
- ulong kernel_addr_r;
void *buf;
- label_print(label);
-
- label->attempted = 1;
-
- if (label->localboot) {
- if (label->localboot_val >= 0)
- label_localboot(label);
- return 0;
- }
-
- if (!label->kernel) {
- printf("No kernel given, skipping %s\n",
- label->name);
- return 1;
- }
-
- if (get_relfile_envaddr(ctx, label->kernel, "kernel_addr_r",
- NULL) < 0) {
- printf("Skipping %s for failure retrieving kernel\n",
- label->name);
- return 1;
- }
-
- kernel_addr = env_get("kernel_addr_r");
- /* for FIT, append the configuration identifier */
- if (label->config) {
- int len = strlen(kernel_addr) + strlen(label->config) + 1;
-
- fit_addr = malloc(len);
- if (!fit_addr) {
- printf("malloc fail (FIT address)\n");
- return 1;
- }
- snprintf(fit_addr, len, "%s%s", kernel_addr, label->config);
- kernel_addr = fit_addr;
- }
-
- /* For FIT, the label can be identical to kernel one */
- if (label->initrd && !strcmp(label->kernel_label, label->initrd)) {
- initrd_addr_str = kernel_addr;
- } else if (label->initrd) {
- ulong size;
- if (get_relfile_envaddr(ctx, label->initrd, "ramdisk_addr_r",
- &size) < 0) {
- printf("Skipping %s for failure retrieving initrd\n",
- label->name);
- goto cleanup;
- }
- strcpy(initrd_filesize, simple_xtoa(size));
- initrd_addr_str = env_get("ramdisk_addr_r");
- size = snprintf(initrd_str, sizeof(initrd_str), "%s:%lx",
- initrd_addr_str, size);
- if (size >= sizeof(initrd_str))
- goto cleanup;
- }
-
- if (label->ipappend & 0x1) {
- sprintf(ip_str, " ip=%s:%s:%s:%s",
- env_get("ipaddr"), env_get("serverip"),
- env_get("gatewayip"), env_get("netmask"));
- }
-
- if (IS_ENABLED(CONFIG_CMD_NET)) {
- if (label->ipappend & 0x2) {
- int err;
-
- strcpy(mac_str, " BOOTIF=");
- err = format_mac_pxe(mac_str + 8, sizeof(mac_str) - 8);
- if (err < 0)
- mac_str[0] = '\0';
- }
- }
-
- if ((label->ipappend & 0x3) || label->append) {
- char bootargs[CONFIG_SYS_CBSIZE] = "";
- char finalbootargs[CONFIG_SYS_CBSIZE];
-
- if (strlen(label->append ?: "") +
- strlen(ip_str) + strlen(mac_str) + 1 > sizeof(bootargs)) {
- printf("bootarg overflow %zd+%zd+%zd+1 > %zd\n",
- strlen(label->append ?: ""),
- strlen(ip_str), strlen(mac_str),
- sizeof(bootargs));
- goto cleanup;
- }
-
- if (label->append)
- strlcpy(bootargs, label->append, sizeof(bootargs));
-
- strcat(bootargs, ip_str);
- strcat(bootargs, mac_str);
-
- cli_simple_process_macros(bootargs, finalbootargs,
- sizeof(finalbootargs));
- env_set("bootargs", finalbootargs);
- printf("append: %s\n", finalbootargs);
- }
-
- /*
- * fdt usage is optional:
- * It handles the following scenarios.
- *
- * Scenario 1: If fdt_addr_r specified and "fdt" or "fdtdir" label is
- * defined in pxe file, retrieve fdt blob from server. Pass fdt_addr_r to
- * bootm, and adjust argc appropriately.
- *
- * If retrieve fails and no exact fdt blob is specified in pxe file with
- * "fdt" label, try Scenario 2.
- *
- * Scenario 2: If there is an fdt_addr specified, pass it along to
- * bootm, and adjust argc appropriately.
- *
- * Scenario 3: If there is an fdtcontroladdr specified, pass it along to
- * bootm, and adjust argc appropriately, unless the image type is fitImage.
- *
- * Scenario 4: fdt blob is not available.
- */
bootm_argv[3] = env_get("fdt_addr_r");
/* For FIT, the label can be identical to kernel one */
@@ -637,6 +525,7 @@ static int label_boot(struct pxe_context *ctx, struct pxe_label *label)
fdtfile = label->fdt;
} else if (label->fdtdir) {
char *f1, *f2, *f3, *f4, *slash;
+ int len;
f1 = env_get("fdtfile");
if (f1) {
@@ -679,7 +568,7 @@ static int label_boot(struct pxe_context *ctx, struct pxe_label *label)
fdtfilefree = malloc(len);
if (!fdtfilefree) {
printf("malloc fail (FDT filename)\n");
- goto cleanup;
+ return -ENOMEM;
}
snprintf(fdtfilefree, len, "%s%s%s%s%s%s",
@@ -698,7 +587,7 @@ static int label_boot(struct pxe_context *ctx, struct pxe_label *label)
if (label->fdt) {
printf("Skipping %s for failure retrieving FDT\n",
label->name);
- goto cleanup;
+ return -ENOENT;
}
}
@@ -757,6 +646,142 @@ static int label_boot(struct pxe_context *ctx, struct pxe_label *label)
unmap_sysmem(buf);
+ return 0;
+}
+
+/**
+ * label_boot() - Boot according to the contents of a pxe_label
+ *
+ * If we can't boot for any reason, we return. A successful boot never
+ * returns.
+ *
+ * The kernel will be stored in the location given by the 'kernel_addr_r'
+ * environment variable.
+ *
+ * If the label specifies an initrd file, it will be stored in the location
+ * given by the 'ramdisk_addr_r' environment variable.
+ *
+ * If the label specifies an 'append' line, its contents will overwrite that
+ * of the 'bootargs' environment variable.
+ *
+ * @ctx: PXE context
+ * @label: Label to process
+ * Returns does not return on success, otherwise returns 0 if a localboot
+ * label was processed, or 1 on error
+ */
+static int label_boot(struct pxe_context *ctx, struct pxe_label *label)
+{
+ char *kernel_addr = NULL;
+ char *initrd_addr_str = NULL;
+ char initrd_filesize[10];
+ char initrd_str[28];
+ char mac_str[29] = "";
+ char ip_str[68] = "";
+ char *fit_addr = NULL;
+ int ret;
+
+ label_print(label);
+
+ label->attempted = 1;
+
+ if (label->localboot) {
+ if (label->localboot_val >= 0)
+ label_localboot(label);
+ return 0;
+ }
+
+ if (!label->kernel) {
+ printf("No kernel given, skipping %s\n",
+ label->name);
+ return 1;
+ }
+
+ if (get_relfile_envaddr(ctx, label->kernel, "kernel_addr_r",
+ NULL) < 0) {
+ printf("Skipping %s for failure retrieving kernel\n",
+ label->name);
+ return 1;
+ }
+
+ kernel_addr = env_get("kernel_addr_r");
+ /* for FIT, append the configuration identifier */
+ if (label->config) {
+ int len = strlen(kernel_addr) + strlen(label->config) + 1;
+
+ fit_addr = malloc(len);
+ if (!fit_addr) {
+ printf("malloc fail (FIT address)\n");
+ return 1;
+ }
+ snprintf(fit_addr, len, "%s%s", kernel_addr, label->config);
+ kernel_addr = fit_addr;
+ }
+
+ /* For FIT, the label can be identical to kernel one */
+ if (label->initrd && !strcmp(label->kernel_label, label->initrd)) {
+ initrd_addr_str = kernel_addr;
+ } else if (label->initrd) {
+ ulong size;
+
+ if (get_relfile_envaddr(ctx, label->initrd, "ramdisk_addr_r",
+ &size) < 0) {
+ printf("Skipping %s for failure retrieving initrd\n",
+ label->name);
+ goto cleanup;
+ }
+ strcpy(initrd_filesize, simple_xtoa(size));
+ initrd_addr_str = env_get("ramdisk_addr_r");
+ size = snprintf(initrd_str, sizeof(initrd_str), "%s:%lx",
+ initrd_addr_str, size);
+ if (size >= sizeof(initrd_str))
+ goto cleanup;
+ }
+
+ if (label->ipappend & 0x1) {
+ sprintf(ip_str, " ip=%s:%s:%s:%s",
+ env_get("ipaddr"), env_get("serverip"),
+ env_get("gatewayip"), env_get("netmask"));
+ }
+
+ if (IS_ENABLED(CONFIG_CMD_NET)) {
+ if (label->ipappend & 0x2) {
+ int err;
+
+ strcpy(mac_str, " BOOTIF=");
+ err = format_mac_pxe(mac_str + 8, sizeof(mac_str) - 8);
+ if (err < 0)
+ mac_str[0] = '\0';
+ }
+ }
+
+ if ((label->ipappend & 0x3) || label->append) {
+ char bootargs[CONFIG_SYS_CBSIZE] = "";
+ char finalbootargs[CONFIG_SYS_CBSIZE];
+
+ if (strlen(label->append ?: "") +
+ strlen(ip_str) + strlen(mac_str) + 1 > sizeof(bootargs)) {
+ printf("bootarg overflow %zd+%zd+%zd+1 > %zd\n",
+ strlen(label->append ?: ""),
+ strlen(ip_str), strlen(mac_str),
+ sizeof(bootargs));
+ goto cleanup;
+ }
+
+ if (label->append)
+ strlcpy(bootargs, label->append, sizeof(bootargs));
+
+ strcat(bootargs, ip_str);
+ strcat(bootargs, mac_str);
+
+ cli_simple_process_macros(bootargs, finalbootargs,
+ sizeof(finalbootargs));
+ env_set("bootargs", finalbootargs);
+ printf("append: %s\n", finalbootargs);
+ }
+
+ ret = label_run_boot(ctx, label, kernel_addr, initrd_str,
+ initrd_addr_str, initrd_filesize);
+
cleanup:
free(fit_addr);
--
2.43.0.472.g3155946c3a-goog
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 12/16] pxe: Refactor to avoid over-using bootm_argv
2023-12-15 4:18 [PATCH v2 00/16] pxe: Allow extlinux booting without CMDLINE enabled Simon Glass
` (10 preceding siblings ...)
2023-12-15 4:19 ` [PATCH v2 11/16] pxe: Refactor to reduce the size of label_boot() Simon Glass
@ 2023-12-15 4:19 ` Simon Glass
2023-12-15 4:19 ` [PATCH v2 13/16] pxe: Move calculation of FDT file into a function Simon Glass
` (4 subsequent siblings)
16 siblings, 0 replies; 26+ messages in thread
From: Simon Glass @ 2023-12-15 4:19 UTC (permalink / raw)
To: U-Boot Mailing List
Cc: Tom Rini, Simon Glass, Dan Carpenter, Marek Vasut, Neil Armstrong,
Quentin Schulz, Sean Edmond, Thomas Mittelstaedt
The bootm_argv[3] expression is used in many places. It is the FDT
address, so use that name throughout.
Assign it to bootm_argv[3] only at the end, when all the conditions are
resolved.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
(no changes since v1)
boot/pxe_utils.c | 22 ++++++++++++----------
1 file changed, 12 insertions(+), 10 deletions(-)
diff --git a/boot/pxe_utils.c b/boot/pxe_utils.c
index 6fbccadd99e6..a6aee68bb797 100644
--- a/boot/pxe_utils.c
+++ b/boot/pxe_utils.c
@@ -506,18 +506,19 @@ static int label_run_boot(struct pxe_context *ctx, struct pxe_label *label,
{
char *bootm_argv[] = { "bootm", NULL, NULL, NULL, NULL };
char *zboot_argv[] = { "zboot", NULL, "0", NULL, NULL };
+ const char *fdt_addr;
ulong kernel_addr_r;
int bootm_argc = 2;
int zboot_argc = 3;
void *buf;
- bootm_argv[3] = env_get("fdt_addr_r");
+ fdt_addr = env_get("fdt_addr_r");
/* For FIT, the label can be identical to kernel one */
if (label->fdt && !strcmp(label->kernel_label, label->fdt)) {
- bootm_argv[3] = kernel_addr;
+ fdt_addr = kernel_addr;
/* if fdt label is defined then get fdt from server */
- } else if (bootm_argv[3]) {
+ } else if (fdt_addr) {
char *fdtfile = NULL;
char *fdtfilefree = NULL;
@@ -582,7 +583,7 @@ static int label_run_boot(struct pxe_context *ctx, struct pxe_label *label,
free(fdtfilefree);
if (err < 0) {
- bootm_argv[3] = NULL;
+ fdt_addr = NULL;
if (label->fdt) {
printf("Skipping %s for failure retrieving FDT\n",
@@ -599,7 +600,7 @@ static int label_run_boot(struct pxe_context *ctx, struct pxe_label *label,
label_boot_fdtoverlay(ctx, label);
#endif
} else {
- bootm_argv[3] = NULL;
+ fdt_addr = NULL;
}
}
@@ -615,20 +616,21 @@ static int label_run_boot(struct pxe_context *ctx, struct pxe_label *label,
zboot_argc = 5;
}
- if (!bootm_argv[3])
- bootm_argv[3] = env_get("fdt_addr");
+ if (!fdt_addr)
+ fdt_addr = env_get("fdt_addr");
kernel_addr_r = genimg_get_kernel_addr(kernel_addr);
buf = map_sysmem(kernel_addr_r, 0);
- if (!bootm_argv[3] && genimg_get_format(buf) != IMAGE_FORMAT_FIT)
- bootm_argv[3] = env_get("fdtcontroladdr");
+ if (!fdt_addr && genimg_get_format(buf) != IMAGE_FORMAT_FIT)
+ fdt_addr = env_get("fdtcontroladdr");
- if (bootm_argv[3]) {
+ if (fdt_addr) {
if (!bootm_argv[2])
bootm_argv[2] = "-";
bootm_argc = 4;
}
+ bootm_argv[3] = (char *)fdt_addr;
/* Try bootm for legacy and FIT format image */
if (genimg_get_format(buf) != IMAGE_FORMAT_INVALID &&
--
2.43.0.472.g3155946c3a-goog
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 13/16] pxe: Move calculation of FDT file into a function
2023-12-15 4:18 [PATCH v2 00/16] pxe: Allow extlinux booting without CMDLINE enabled Simon Glass
` (11 preceding siblings ...)
2023-12-15 4:19 ` [PATCH v2 12/16] pxe: Refactor to avoid over-using bootm_argv Simon Glass
@ 2023-12-15 4:19 ` Simon Glass
2023-12-15 4:19 ` [PATCH v2 14/16] pxe: Allow booting without CMDLINE for bootm methods Simon Glass
` (3 subsequent siblings)
16 siblings, 0 replies; 26+ messages in thread
From: Simon Glass @ 2023-12-15 4:19 UTC (permalink / raw)
To: U-Boot Mailing List
Cc: Tom Rini, Simon Glass, Dan Carpenter, Marek Vasut, Neil Armstrong,
Patrick Delaunay, Ramon Fried, Sean Edmond, Thomas Mittelstaedt
This code undertakes a separate task from the main logic of
label_run_boot() so move it into its own function.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
(no changes since v1)
boot/pxe_utils.c | 112 +++++++++++++++++++++++++++--------------------
1 file changed, 64 insertions(+), 48 deletions(-)
diff --git a/boot/pxe_utils.c b/boot/pxe_utils.c
index a6aee68bb797..a34f4410e07e 100644
--- a/boot/pxe_utils.c
+++ b/boot/pxe_utils.c
@@ -469,6 +469,68 @@ skip_overlay:
}
#endif
+/**
+ * calc_fdt_fname() - Figure out the filename to use for the FDT
+ *
+ * Determine the path to the FDT filename, based on the "fdtfile" environment
+ * variable. Use <soc>-<board>.dtb as a fallback
+ *
+ * @fdtdir: Directory to use for the FDT file
+ * Return: allocated filename (including directory), or NULL if out of memory
+ */
+static char *calc_fdt_fname(const char *fdtdir)
+{
+ char *fdtfile;
+ char *f1, *f2, *f3, *f4, *slash;
+ int len;
+
+ f1 = env_get("fdtfile");
+ if (f1) {
+ f2 = "";
+ f3 = "";
+ f4 = "";
+ } else {
+ /*
+ * For complex cases where this code doesn't generate the
+ * correct filename, the board code should set $fdtfile during
+ * early boot, or the boot scripts should set $fdtfile before
+ * invoking "pxe" or "sysboot".
+ */
+ f1 = env_get("soc");
+ f2 = "-";
+ f3 = env_get("board");
+ f4 = ".dtb";
+ if (!f1) {
+ f1 = "";
+ f2 = "";
+ }
+ if (!f3) {
+ f2 = "";
+ f3 = "";
+ }
+ }
+
+ len = strlen(fdtdir);
+ if (!len)
+ slash = "./";
+ else if (fdtdir[len - 1] != '/')
+ slash = "/";
+ else
+ slash = "";
+
+ len = strlen(fdtdir) + strlen(slash) + strlen(f1) + strlen(f2) +
+ strlen(f3) + strlen(f4) + 1;
+ fdtfile = malloc(len);
+ if (!fdtfile) {
+ printf("malloc fail (FDT filename)\n");
+ return NULL;
+ }
+
+ snprintf(fdtfile, len, "%s%s%s%s%s%s", fdtdir, slash, f1, f2, f3, f4);
+
+ return fdtfile;
+}
+
/**
* label_run_boot() - Run the correct boot procedure
*
@@ -525,55 +587,9 @@ static int label_run_boot(struct pxe_context *ctx, struct pxe_label *label,
if (label->fdt) {
fdtfile = label->fdt;
} else if (label->fdtdir) {
- char *f1, *f2, *f3, *f4, *slash;
- int len;
-
- f1 = env_get("fdtfile");
- if (f1) {
- f2 = "";
- f3 = "";
- f4 = "";
- } else {
- /*
- * For complex cases where this code doesn't
- * generate the correct filename, the board
- * code should set $fdtfile during early boot,
- * or the boot scripts should set $fdtfile
- * before invoking "pxe" or "sysboot".
- */
- f1 = env_get("soc");
- f2 = "-";
- f3 = env_get("board");
- f4 = ".dtb";
- if (!f1) {
- f1 = "";
- f2 = "";
- }
- if (!f3) {
- f2 = "";
- f3 = "";
- }
- }
-
- len = strlen(label->fdtdir);
- if (!len)
- slash = "./";
- else if (label->fdtdir[len - 1] != '/')
- slash = "/";
- else
- slash = "";
-
- len = strlen(label->fdtdir) + strlen(slash) +
- strlen(f1) + strlen(f2) + strlen(f3) +
- strlen(f4) + 1;
- fdtfilefree = malloc(len);
- if (!fdtfilefree) {
- printf("malloc fail (FDT filename)\n");
+ fdtfilefree = calc_fdt_fname(label->fdtdir);
+ if (!fdtfilefree)
return -ENOMEM;
- }
-
- snprintf(fdtfilefree, len, "%s%s%s%s%s%s",
- label->fdtdir, slash, f1, f2, f3, f4);
fdtfile = fdtfilefree;
}
--
2.43.0.472.g3155946c3a-goog
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 14/16] pxe: Allow booting without CMDLINE for bootm methods
2023-12-15 4:18 [PATCH v2 00/16] pxe: Allow extlinux booting without CMDLINE enabled Simon Glass
` (12 preceding siblings ...)
2023-12-15 4:19 ` [PATCH v2 13/16] pxe: Move calculation of FDT file into a function Simon Glass
@ 2023-12-15 4:19 ` Simon Glass
2023-12-15 4:19 ` [PATCH v2 15/16] pxe: Allow booting without CMDLINE for the zboot method Simon Glass
` (2 subsequent siblings)
16 siblings, 0 replies; 26+ messages in thread
From: Simon Glass @ 2023-12-15 4:19 UTC (permalink / raw)
To: U-Boot Mailing List
Cc: Tom Rini, Simon Glass, Dan Carpenter, Marek Vasut, Neil Armstrong,
Peter Hoyes, Sean Edmond, Thomas Mittelstaedt
Use bootm_run() and booti_run() to boot rather than the command line.
This allows extlinux to be used without CMDLINE being enabled.
Collect any error but do not return it, to match the existing code.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
Changes in v2:
- Update commit message to mention booti
- Use bootm_init() instead of memset()
boot/pxe_utils.c | 32 +++++++++++++++-----------------
1 file changed, 15 insertions(+), 17 deletions(-)
diff --git a/boot/pxe_utils.c b/boot/pxe_utils.c
index a34f4410e07e..c9da82b8e45f 100644
--- a/boot/pxe_utils.c
+++ b/boot/pxe_utils.c
@@ -5,6 +5,7 @@
*/
#include <common.h>
+#include <bootm.h>
#include <command.h>
#include <dm.h>
#include <env.h>
@@ -566,13 +567,16 @@ static int label_run_boot(struct pxe_context *ctx, struct pxe_label *label,
char *kernel_addr, char *initrd_str,
char *initrd_addr_str, char *initrd_filesize)
{
- char *bootm_argv[] = { "bootm", NULL, NULL, NULL, NULL };
+ struct bootm_info bmi;
char *zboot_argv[] = { "zboot", NULL, "0", NULL, NULL };
const char *fdt_addr;
ulong kernel_addr_r;
- int bootm_argc = 2;
int zboot_argc = 3;
void *buf;
+ int ret;
+
+ if (IS_ENABLED(CONFIG_BOOTM))
+ bootm_init(&bmi);
fdt_addr = env_get("fdt_addr_r");
@@ -620,12 +624,11 @@ static int label_run_boot(struct pxe_context *ctx, struct pxe_label *label,
}
}
- bootm_argv[1] = kernel_addr;
+ bmi.addr_fit = kernel_addr;
zboot_argv[1] = kernel_addr;
if (initrd_addr_str) {
- bootm_argv[2] = initrd_str;
- bootm_argc = 3;
+ bmi.conf_ramdisk = initrd_str;
zboot_argv[3] = initrd_addr_str;
zboot_argv[4] = initrd_filesize;
@@ -641,23 +644,18 @@ static int label_run_boot(struct pxe_context *ctx, struct pxe_label *label,
if (!fdt_addr && genimg_get_format(buf) != IMAGE_FORMAT_FIT)
fdt_addr = env_get("fdtcontroladdr");
- if (fdt_addr) {
- if (!bootm_argv[2])
- bootm_argv[2] = "-";
- bootm_argc = 4;
- }
- bootm_argv[3] = (char *)fdt_addr;
+ bmi.conf_fdt = fdt_addr;
/* Try bootm for legacy and FIT format image */
if (genimg_get_format(buf) != IMAGE_FORMAT_INVALID &&
- IS_ENABLED(CONFIG_CMD_BOOTM))
- do_bootm(ctx->cmdtp, 0, bootm_argc, bootm_argv);
+ IS_ENABLED(CONFIG_BOOTM))
+ ret = bootm_run(&bmi);
/* Try booting an AArch64 Linux kernel image */
- else if (IS_ENABLED(CONFIG_CMD_BOOTI))
- do_booti(ctx->cmdtp, 0, bootm_argc, bootm_argv);
+ else if (IS_ENABLED(CONFIG_BOOTM))
+ ret = booti_run(&bmi);
/* Try booting a Image */
- else if (IS_ENABLED(CONFIG_CMD_BOOTZ))
- do_bootz(ctx->cmdtp, 0, bootm_argc, bootm_argv);
+ else if (IS_ENABLED(CONFIG_BOOTM))
+ ret = bootz_run(&bmi);
/* Try booting an x86_64 Linux kernel image */
else if (IS_ENABLED(CONFIG_CMD_ZBOOT))
do_zboot_parent(ctx->cmdtp, 0, zboot_argc, zboot_argv, NULL);
--
2.43.0.472.g3155946c3a-goog
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 15/16] pxe: Allow booting without CMDLINE for the zboot method
2023-12-15 4:18 [PATCH v2 00/16] pxe: Allow extlinux booting without CMDLINE enabled Simon Glass
` (13 preceding siblings ...)
2023-12-15 4:19 ` [PATCH v2 14/16] pxe: Allow booting without CMDLINE for bootm methods Simon Glass
@ 2023-12-15 4:19 ` Simon Glass
2023-12-15 4:19 ` [PATCH v2 16/16] x86: Drop message about features being missing with 64-bit Simon Glass
2024-04-11 1:45 ` [PATCH v2 00/16] pxe: Allow extlinux booting without CMDLINE enabled Tom Rini
16 siblings, 0 replies; 26+ messages in thread
From: Simon Glass @ 2023-12-15 4:19 UTC (permalink / raw)
To: U-Boot Mailing List
Cc: Tom Rini, Simon Glass, Dan Carpenter, Marek Vasut, Neil Armstrong,
Quentin Schulz, Sean Edmond, Thomas Mittelstaedt
Use zboot_run() to boot rather than the command line. This allows
extlinux to be used (on x86) without CMDLINE being enabled.
Collect any error but do not return it, to match the existing code.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
(no changes since v1)
boot/pxe_utils.c | 19 ++++++++-----------
1 file changed, 8 insertions(+), 11 deletions(-)
diff --git a/boot/pxe_utils.c b/boot/pxe_utils.c
index c9da82b8e45f..5ceabfd04ee6 100644
--- a/boot/pxe_utils.c
+++ b/boot/pxe_utils.c
@@ -568,10 +568,8 @@ static int label_run_boot(struct pxe_context *ctx, struct pxe_label *label,
char *initrd_addr_str, char *initrd_filesize)
{
struct bootm_info bmi;
- char *zboot_argv[] = { "zboot", NULL, "0", NULL, NULL };
const char *fdt_addr;
ulong kernel_addr_r;
- int zboot_argc = 3;
void *buf;
int ret;
@@ -625,16 +623,10 @@ static int label_run_boot(struct pxe_context *ctx, struct pxe_label *label,
}
bmi.addr_fit = kernel_addr;
- zboot_argv[1] = kernel_addr;
- if (initrd_addr_str) {
+ if (initrd_addr_str)
bmi.conf_ramdisk = initrd_str;
- zboot_argv[3] = initrd_addr_str;
- zboot_argv[4] = initrd_filesize;
- zboot_argc = 5;
- }
-
if (!fdt_addr)
fdt_addr = env_get("fdt_addr");
@@ -657,8 +649,13 @@ static int label_run_boot(struct pxe_context *ctx, struct pxe_label *label,
else if (IS_ENABLED(CONFIG_BOOTM))
ret = bootz_run(&bmi);
/* Try booting an x86_64 Linux kernel image */
- else if (IS_ENABLED(CONFIG_CMD_ZBOOT))
- do_zboot_parent(ctx->cmdtp, 0, zboot_argc, zboot_argv, NULL);
+ else if (IS_ENABLED(CONFIG_ZBOOT))
+ ret = zboot_run(hextoul(kernel_addr, NULL), 0,
+ initrd_addr_str ?
+ hextoul(initrd_addr_str, NULL) : 0,
+ initrd_addr_str ?
+ hextoul(initrd_filesize, NULL) : 0,
+ 0, NULL);
unmap_sysmem(buf);
--
2.43.0.472.g3155946c3a-goog
^ permalink raw reply related [flat|nested] 26+ messages in thread
* [PATCH v2 16/16] x86: Drop message about features being missing with 64-bit
2023-12-15 4:18 [PATCH v2 00/16] pxe: Allow extlinux booting without CMDLINE enabled Simon Glass
` (14 preceding siblings ...)
2023-12-15 4:19 ` [PATCH v2 15/16] pxe: Allow booting without CMDLINE for the zboot method Simon Glass
@ 2023-12-15 4:19 ` Simon Glass
2024-04-11 1:45 ` [PATCH v2 00/16] pxe: Allow extlinux booting without CMDLINE enabled Tom Rini
16 siblings, 0 replies; 26+ messages in thread
From: Simon Glass @ 2023-12-15 4:19 UTC (permalink / raw)
To: U-Boot Mailing List
Cc: Tom Rini, Simon Glass, Bin Meng, Dario Binacchi, Patrice Chotard,
Shiji Yang, Soeren Moch
At this point most things work, including booting a distro, so drop
this message.
Signed-off-by: Simon Glass <sjg@chromium.org>
---
(no changes since v1)
arch/x86/lib/spl.c | 2 +-
doc/board/emulation/qemu-x86.rst | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/x86/lib/spl.c b/arch/x86/lib/spl.c
index c15f11f8cdf4..4e4cf18dec5c 100644
--- a/arch/x86/lib/spl.c
+++ b/arch/x86/lib/spl.c
@@ -283,7 +283,7 @@ void __noreturn jump_to_image_no_args(struct spl_image_info *spl_image)
{
int ret;
- printf("Jumping to 64-bit U-Boot: Note many features are missing\n");
+ printf("Jumping to 64-bit U-Boot\n");
ret = cpu_jump_to_64bit_uboot(spl_image->entry_point);
debug("ret=%d\n", ret);
hang();
diff --git a/doc/board/emulation/qemu-x86.rst b/doc/board/emulation/qemu-x86.rst
index c604e42990ed..4eeba46ba7a9 100644
--- a/doc/board/emulation/qemu-x86.rst
+++ b/doc/board/emulation/qemu-x86.rst
@@ -134,7 +134,7 @@ The output will be something like this::
U-Boot SPL 2023.07 (Jul 23 2023 - 08:00:12 -0600)
Trying to boot from SPI
- Jumping to 64-bit U-Boot: Note many features are missing
+ Jumping to 64-bit U-Boot
U-Boot 2023.07 (Jul 23 2023 - 08:00:12 -0600)
--
2.43.0.472.g3155946c3a-goog
^ permalink raw reply related [flat|nested] 26+ messages in thread
* Re: [PATCH v2 08/16] fastboot: Remove dependencies on CMDLINE
2023-12-15 4:19 ` [PATCH v2 08/16] fastboot: Remove dependencies on CMDLINE Simon Glass
@ 2023-12-15 12:06 ` Mattijs Korpershoek
2023-12-15 13:49 ` Tom Rini
1 sibling, 0 replies; 26+ messages in thread
From: Mattijs Korpershoek @ 2023-12-15 12:06 UTC (permalink / raw)
To: Simon Glass, U-Boot Mailing List; +Cc: Tom Rini, Simon Glass, Alex Kiernan
Hi Simon,
Thank you for the patch.
On jeu., déc. 14, 2023 at 21:19, Simon Glass <sjg@chromium.org> wrote:
> It is possible to boot a kernel without CMDLINE being enabled. Update
> the implementation to handle this, and drop the condition from the
> FASTBOOT config.
>
> Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
> ---
>
> Changes in v2:
> - Avoid changing the logic when a command is not set
>
> drivers/fastboot/Kconfig | 1 -
> drivers/fastboot/fb_common.c | 30 ++++++++++++++----------------
> 2 files changed, 14 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/fastboot/Kconfig b/drivers/fastboot/Kconfig
> index 11fc0fe1c800..837c6f1180da 100644
> --- a/drivers/fastboot/Kconfig
> +++ b/drivers/fastboot/Kconfig
> @@ -1,5 +1,4 @@
> menu "Fastboot support"
> - depends on CMDLINE
>
> config FASTBOOT
> bool
> diff --git a/drivers/fastboot/fb_common.c b/drivers/fastboot/fb_common.c
> index 07f5946d9ed1..595954542a6e 100644
> --- a/drivers/fastboot/fb_common.c
> +++ b/drivers/fastboot/fb_common.c
> @@ -11,6 +11,7 @@
> */
>
> #include <bcb.h>
> +#include <bootm.h>
> #include <common.h>
> #include <command.h>
> #include <env.h>
> @@ -142,22 +143,19 @@ void (*fastboot_get_progress_callback(void))(const char *)
> */
> void fastboot_boot(void)
> {
> - char *s;
> -
> - s = env_get("fastboot_bootcmd");
> - if (s) {
> - run_command(s, CMD_FLAG_ENV);
> - } else if (IS_ENABLED(CONFIG_CMD_BOOTM)) {
> - static char boot_addr_start[20];
> - static char *const bootm_args[] = {
> - "bootm", boot_addr_start, NULL
> - };
> -
> - snprintf(boot_addr_start, sizeof(boot_addr_start) - 1,
> - "%lx", fastboot_buf_addr);
> - printf("Booting kernel at %s...\n\n\n", boot_addr_start);
> -
> - do_bootm(NULL, 0, 2, bootm_args);
> + char *s = NULL;
> +
> + if (IS_ENABLED(CONFIG_CMDLINE)) {
> + s = env_get("fastboot_bootcmd");
> + if (s)
> + run_command(s, CMD_FLAG_ENV);
> + }
> +
> + if (!s && IS_ENABLED(CONFIG_BOOTM)) {
> + int ret;
> +
> + printf("Booting kernel at %lx...\n\n\n", fastboot_buf_addr);
> + ret = bootm_boot_start(fastboot_buf_addr, NULL);
>
> /*
> * This only happens if image is somehow faulty so we start
> --
> 2.43.0.472.g3155946c3a-goog
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2 09/16] doc: Mention fastboot dependency on CMDLINE
2023-12-15 4:19 ` [PATCH v2 09/16] doc: Mention fastboot dependency " Simon Glass
@ 2023-12-15 12:07 ` Mattijs Korpershoek
2023-12-15 13:14 ` Sam Protsenko
1 sibling, 0 replies; 26+ messages in thread
From: Mattijs Korpershoek @ 2023-12-15 12:07 UTC (permalink / raw)
To: Simon Glass, U-Boot Mailing List; +Cc: Tom Rini, Simon Glass
Hi Simon,
Thank you for the patch.
On jeu., déc. 14, 2023 at 21:19, Simon Glass <sjg@chromium.org> wrote:
> The fastboot 'boot' command only supports running a U-Boot command if
> CONFIG_CMDLINE is enabled. Mention this in the documentation.
>
> Signed-off-by: Simon Glass <sjg@chromium.org>
> Suggested-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Mattijs Korpershoek <mkorpershoek@baylibre.com>
> ---
>
> (no changes since v1)
>
> doc/android/fastboot.rst | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/doc/android/fastboot.rst b/doc/android/fastboot.rst
> index 1ad8a897c853..933a652538c7 100644
> --- a/doc/android/fastboot.rst
> +++ b/doc/android/fastboot.rst
> @@ -127,6 +127,7 @@ Boot command
>
> When executing the fastboot ``boot`` command, if ``fastboot_bootcmd`` is set
> then that will be executed in place of ``bootm <CONFIG_FASTBOOT_BUF_ADDR>``.
> +This is supported if CONFIG_CMDLINE is enabled, which it normally is.
>
> Partition Names
> ---------------
> --
> 2.43.0.472.g3155946c3a-goog
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2 09/16] doc: Mention fastboot dependency on CMDLINE
2023-12-15 4:19 ` [PATCH v2 09/16] doc: Mention fastboot dependency " Simon Glass
2023-12-15 12:07 ` Mattijs Korpershoek
@ 2023-12-15 13:14 ` Sam Protsenko
1 sibling, 0 replies; 26+ messages in thread
From: Sam Protsenko @ 2023-12-15 13:14 UTC (permalink / raw)
To: Simon Glass; +Cc: U-Boot Mailing List, Tom Rini, Mattijs Korpershoek
On Thu, Dec 14, 2023 at 10:20 PM Simon Glass <sjg@chromium.org> wrote:
>
> The fastboot 'boot' command only supports running a U-Boot command if
> CONFIG_CMDLINE is enabled. Mention this in the documentation.
>
> Signed-off-by: Simon Glass <sjg@chromium.org>
> Suggested-by: Tom Rini <trini@konsulko.com>
> ---
Reviewed-by: Sam Protsenko <semen.protsenko@linaro.org>
>
> (no changes since v1)
>
> doc/android/fastboot.rst | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/doc/android/fastboot.rst b/doc/android/fastboot.rst
> index 1ad8a897c853..933a652538c7 100644
> --- a/doc/android/fastboot.rst
> +++ b/doc/android/fastboot.rst
> @@ -127,6 +127,7 @@ Boot command
>
> When executing the fastboot ``boot`` command, if ``fastboot_bootcmd`` is set
> then that will be executed in place of ``bootm <CONFIG_FASTBOOT_BUF_ADDR>``.
> +This is supported if CONFIG_CMDLINE is enabled, which it normally is.
>
> Partition Names
> ---------------
> --
> 2.43.0.472.g3155946c3a-goog
>
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2 08/16] fastboot: Remove dependencies on CMDLINE
2023-12-15 4:19 ` [PATCH v2 08/16] fastboot: Remove dependencies on CMDLINE Simon Glass
2023-12-15 12:06 ` Mattijs Korpershoek
@ 2023-12-15 13:49 ` Tom Rini
1 sibling, 0 replies; 26+ messages in thread
From: Tom Rini @ 2023-12-15 13:49 UTC (permalink / raw)
To: Simon Glass; +Cc: U-Boot Mailing List, Alex Kiernan, Mattijs Korpershoek
[-- Attachment #1: Type: text/plain, Size: 1046 bytes --]
On Thu, Dec 14, 2023 at 09:19:06PM -0700, Simon Glass wrote:
> It is possible to boot a kernel without CMDLINE being enabled. Update
> the implementation to handle this, and drop the condition from the
> FASTBOOT config.
>
> Signed-off-by: Simon Glass <sjg@chromium.org>
> ---
>
> Changes in v2:
> - Avoid changing the logic when a command is not set
>
> drivers/fastboot/Kconfig | 1 -
> drivers/fastboot/fb_common.c | 30 ++++++++++++++----------------
> 2 files changed, 14 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/fastboot/Kconfig b/drivers/fastboot/Kconfig
> index 11fc0fe1c800..837c6f1180da 100644
> --- a/drivers/fastboot/Kconfig
> +++ b/drivers/fastboot/Kconfig
> @@ -1,5 +1,4 @@
> menu "Fastboot support"
> - depends on CMDLINE
>
> config FASTBOOT
> bool
Please expand the help to note that CMDLINE is recommended and that the
more complex use cases that require running additional commands rather
than simply booting the OS will not work without CMDLINE, thanks.
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2 04/16] treewide: Make arch-specific bootm code depend on BOOTM
2023-12-15 4:19 ` [PATCH v2 04/16] treewide: Make arch-specific bootm code depend " Simon Glass
@ 2023-12-23 7:28 ` Angelo Dureghello
0 siblings, 0 replies; 26+ messages in thread
From: Angelo Dureghello @ 2023-12-23 7:28 UTC (permalink / raw)
To: Simon Glass, U-Boot Mailing List; +Cc: Tom Rini
Hi Simon,
Acked-by: Angelo Dureghello <angelo@kernel-space.org>
On 15/12/23 5:19 AM, Simon Glass wrote:
> Allow these functions to be compiled in when CONFIG_BOOTM is enabled,
> even if CONFIG_CMD_BOOTM is not.
>
> Signed-off-by: Simon Glass <sjg@chromium.org>
> ---
>
> (no changes since v1)
>
> arch/arc/lib/Makefile | 2 +-
> arch/arm/lib/Makefile | 2 +-
> arch/m68k/lib/Makefile | 2 +-
> arch/microblaze/lib/Makefile | 2 +-
> arch/mips/lib/Makefile | 2 +-
> arch/nios2/lib/Makefile | 2 +-
> arch/powerpc/lib/Makefile | 2 +-
> arch/riscv/lib/Makefile | 2 +-
> arch/sandbox/lib/Makefile | 2 +-
> arch/sh/lib/Makefile | 2 +-
> arch/x86/lib/Makefile | 2 +-
> arch/xtensa/lib/Makefile | 2 +-
> 12 files changed, 12 insertions(+), 12 deletions(-)
>
> diff --git a/arch/arc/lib/Makefile b/arch/arc/lib/Makefile
> index 0eb44bcf33d0..bde1c3d8af3a 100644
> --- a/arch/arc/lib/Makefile
> +++ b/arch/arc/lib/Makefile
> @@ -12,6 +12,6 @@ obj-y += reset.o
> obj-y += ints_low.o
> obj-y += init_helpers.o
>
> -obj-$(CONFIG_CMD_BOOTM) += bootm.o
> +obj-$(CONFIG_BOOTM) += bootm.o
>
> lib-$(CONFIG_USE_PRIVATE_LIBGCC) += _millicodethunk.o libgcc2.o
> diff --git a/arch/arm/lib/Makefile b/arch/arm/lib/Makefile
> index b1bcd3746625..b20a467f684c 100644
> --- a/arch/arm/lib/Makefile
> +++ b/arch/arm/lib/Makefile
> @@ -31,7 +31,7 @@ endif
> obj-$(CONFIG_CPU_V7M) += cmd_boot.o
> obj-$(CONFIG_OF_LIBFDT) += bootm-fdt.o
> obj-$(CONFIG_CMD_BOOTI) += bootm.o image.o
> -obj-$(CONFIG_CMD_BOOTM) += bootm.o
> +obj-$(CONFIG_BOOTM) += bootm.o
> obj-$(CONFIG_CMD_BOOTZ) += bootm.o zimage.o
> else
> obj-$(CONFIG_$(SPL_TPL_)FRAMEWORK) += spl.o
> diff --git a/arch/m68k/lib/Makefile b/arch/m68k/lib/Makefile
> index 6e1fd938f526..5ccd9545cb5c 100644
> --- a/arch/m68k/lib/Makefile
> +++ b/arch/m68k/lib/Makefile
> @@ -8,7 +8,7 @@
> lib-$(CONFIG_USE_PRIVATE_LIBGCC) += lshrdi3.o muldi3.o ashldi3.o ashrdi3.o
>
> obj-y += bdinfo.o
> -obj-$(CONFIG_CMD_BOOTM) += bootm.o
> +obj-$(CONFIG_BOOTM) += bootm.o
> obj-y += cache.o
> obj-y += interrupts.o
> obj-y += time.o
> diff --git a/arch/microblaze/lib/Makefile b/arch/microblaze/lib/Makefile
> index dfd8135f4f25..2f234825f804 100644
> --- a/arch/microblaze/lib/Makefile
> +++ b/arch/microblaze/lib/Makefile
> @@ -3,6 +3,6 @@
> # (C) Copyright 2003-2006
> # Wolfgang Denk, DENX Software Engineering, wd@denx.de.
>
> -obj-$(CONFIG_CMD_BOOTM) += bootm.o
> +obj-$(CONFIG_BOOTM) += bootm.o
> obj-$(CONFIG_CMD_BDI) += bdinfo.o
> obj-y += muldi3.o
> diff --git a/arch/mips/lib/Makefile b/arch/mips/lib/Makefile
> index 9ee1fcb5c702..f8e162c53b58 100644
> --- a/arch/mips/lib/Makefile
> +++ b/arch/mips/lib/Makefile
> @@ -10,7 +10,7 @@ obj-y += reloc.o
> obj-y += stack.o
> obj-y += traps.o
>
> -obj-$(CONFIG_CMD_BOOTM) += bootm.o
> +obj-$(CONFIG_BOOTM) += bootm.o
> obj-$(CONFIG_CMD_GO) += boot.o
> obj-$(CONFIG_SPL_BUILD) += spl.o
>
> diff --git a/arch/nios2/lib/Makefile b/arch/nios2/lib/Makefile
> index a9f3c7100e72..68a5ca007d55 100644
> --- a/arch/nios2/lib/Makefile
> +++ b/arch/nios2/lib/Makefile
> @@ -4,5 +4,5 @@
> # Wolfgang Denk, DENX Software Engineering, wd@denx.de.
>
> obj-y += cache.o
> -obj-$(CONFIG_CMD_BOOTM) += bootm.o
> +obj-$(CONFIG_BOOTM) += bootm.o
> obj-y += libgcc.o
> diff --git a/arch/powerpc/lib/Makefile b/arch/powerpc/lib/Makefile
> index bb819dcbb6cc..dcce9834927d 100644
> --- a/arch/powerpc/lib/Makefile
> +++ b/arch/powerpc/lib/Makefile
> @@ -34,7 +34,7 @@ obj-y += ticks.o
> endif
> obj-y += reloc.o
>
> -obj-$(CONFIG_CMD_BOOTM) += bootm.o
> +obj-$(CONFIG_BOOTM) += bootm.o
> obj-y += cache.o
> obj-y += extable.o
> obj-y += interrupts.o
> diff --git a/arch/riscv/lib/Makefile b/arch/riscv/lib/Makefile
> index 9a05b662fd63..0b2c88db6bad 100644
> --- a/arch/riscv/lib/Makefile
> +++ b/arch/riscv/lib/Makefile
> @@ -6,7 +6,7 @@
> # Copyright (C) 2017 Andes Technology Corporation
> # Rick Chen, Andes Technology Corporation <rick@andestech.com>
>
> -obj-$(CONFIG_CMD_BOOTM) += bootm.o
> +obj-$(CONFIG_BOOTM) += bootm.o
> obj-$(CONFIG_CMD_BOOTI) += bootm.o image.o
> obj-$(CONFIG_CMD_GO) += boot.o
> obj-y += cache.o
> diff --git a/arch/sandbox/lib/Makefile b/arch/sandbox/lib/Makefile
> index a2bc5a7ee60f..c4924b23c832 100644
> --- a/arch/sandbox/lib/Makefile
> +++ b/arch/sandbox/lib/Makefile
> @@ -7,5 +7,5 @@
>
> obj-y += fdt_fixup.o interrupts.o sections.o
> obj-$(CONFIG_PCI) += pci_io.o
> -obj-$(CONFIG_CMD_BOOTM) += bootm.o
> +obj-$(CONFIG_BOOTM) += bootm.o
> obj-$(CONFIG_CMD_BOOTZ) += bootm.o
> diff --git a/arch/sh/lib/Makefile b/arch/sh/lib/Makefile
> index e7520a328d54..8c3c30293a3c 100644
> --- a/arch/sh/lib/Makefile
> +++ b/arch/sh/lib/Makefile
> @@ -6,7 +6,7 @@
> extra-y += start.o
>
> obj-y += board.o
> -obj-$(CONFIG_CMD_BOOTM) += bootm.o
> +obj-$(CONFIG_BOOTM) += bootm.o
> obj-y += time.o
> obj-$(CONFIG_CMD_SH_ZIMAGEBOOT) += zimageboot.o
>
> diff --git a/arch/x86/lib/Makefile b/arch/x86/lib/Makefile
> index 8fc35e1b51ea..94aa335ede4c 100644
> --- a/arch/x86/lib/Makefile
> +++ b/arch/x86/lib/Makefile
> @@ -16,7 +16,7 @@ obj-$(CONFIG_X86_32BIT_INIT) += string.o
> endif
>
> ifndef CONFIG_SPL_BUILD
> -obj-$(CONFIG_CMD_BOOTM) += bootm.o
> +obj-$(CONFIG_BOOTM) += bootm.o
> endif
> obj-y += cmd_boot.o
> obj-$(CONFIG_$(SPL_)COREBOOT_SYSINFO) += coreboot/
> diff --git a/arch/xtensa/lib/Makefile b/arch/xtensa/lib/Makefile
> index ad4fe32cb699..bb9157f30f0f 100644
> --- a/arch/xtensa/lib/Makefile
> +++ b/arch/xtensa/lib/Makefile
> @@ -3,6 +3,6 @@
> # (C) Copyright 2007 - 2013 Tensilica Inc.
> # (C) Copyright 2014 - 2016 Cadence Design Systems Inc.
>
> -obj-$(CONFIG_CMD_BOOTM) += bootm.o
> +obj-$(CONFIG_BOOTM) += bootm.o
>
> obj-y += cache.o misc.o relocate.o time.o
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2 00/16] pxe: Allow extlinux booting without CMDLINE enabled
2023-12-15 4:18 [PATCH v2 00/16] pxe: Allow extlinux booting without CMDLINE enabled Simon Glass
` (15 preceding siblings ...)
2023-12-15 4:19 ` [PATCH v2 16/16] x86: Drop message about features being missing with 64-bit Simon Glass
@ 2024-04-11 1:45 ` Tom Rini
2024-04-14 16:58 ` Jonas Karlman
16 siblings, 1 reply; 26+ messages in thread
From: Tom Rini @ 2024-04-11 1:45 UTC (permalink / raw)
To: U-Boot Mailing List, Simon Glass
Cc: AKASHI Takahiro, Abdellatif El Khlifi, Alex Kiernan,
Alexey Brodkin, Alexey Brodkin, Angelo Dureghello, Bin Meng,
Dan Carpenter, Daniel Schwierzeck, Dario Binacchi, Eddie James,
Eric Nelson, Eugeniy Paltsev, Heinrich Schuchardt, Huan Wang,
Ilias Apalodimas, Leo, Marcel Ziswiler, Marek Vasut,
Mattijs Korpershoek, Max Filippov, Michal Simek, Miquel Raynal,
Neil Armstrong, Nobuhiro Iwamatsu, Patrice Chotard,
Patrick Delaunay, Peter Hoyes, Quentin Schulz, Ramon Fried,
Rick Chen, Sean Anderson, Sean Edmond, Shiji Yang, Soeren Moch,
Thomas Chou, Thomas Mittelstaedt, Tobias Waldekranz,
Yu Chien Peter Lin, uboot-snps-arc
On Thu, 14 Dec 2023 21:18:58 -0700, Simon Glass wrote:
> This series is the culmanation of the current line of refactoring
> series. It adjusts pxe to call the booting functionality directly
> rather than going through the command-line interface.
>
> With this is is possible to boot using the extlinux bootmeth without
> the command line enabled.
>
> [...]
Applied to u-boot/master, thanks!
--
Tom
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2 00/16] pxe: Allow extlinux booting without CMDLINE enabled
2024-04-11 1:45 ` [PATCH v2 00/16] pxe: Allow extlinux booting without CMDLINE enabled Tom Rini
@ 2024-04-14 16:58 ` Jonas Karlman
2024-04-18 18:13 ` Tom Rini
0 siblings, 1 reply; 26+ messages in thread
From: Jonas Karlman @ 2024-04-14 16:58 UTC (permalink / raw)
To: Tom Rini, Simon Glass; +Cc: U-Boot Mailing List
Hi Tom and Simon,
On 2024-04-11 03:45, Tom Rini wrote:
> On Thu, 14 Dec 2023 21:18:58 -0700, Simon Glass wrote:
>
>> This series is the culmanation of the current line of refactoring
>> series. It adjusts pxe to call the booting functionality directly
>> rather than going through the command-line interface.
>>
>> With this is is possible to boot using the extlinux bootmeth without
>> the command line enabled.
>>
>> [...]
>
> Applied to u-boot/master, thanks!
>
This series is causing boot issues using extlinux in bootm_run_states():
ERROR: booting os 'Invalid OS' (0) is not supported
Following extlinux.conf was used:
label linux
kernel /Image.gz
initrd /initramfs.cpio.gz
Before this series booting works, bootm_run_states() is first called
with states=0x1 (BOOTM_STATE_START):
Scanning bootdev 'mmc@fe2b0000.bootdev':
1 extlinux ready mmc 1 mmc@fe2b0000.bootdev.part /extlinux/extlinux.conf
** Booting bootflow 'mmc@fe2b0000.bootdev.part_1' with extlinux
1: linux
Retrieving file: /Image.gz
Retrieving file: /initramfs.cpio.gz
bootm_run_states(): images->state: 0, states: 1
bootm_run_states(): images->os.os: 0
bootm_run_states(): images->os.arch: 0
bootm_run_states(): boot_fn: 0000000000000000, need_boot_fn: 0
Uncompressing Kernel Image to 0
## Flattened Device Tree blob at edef8410
Booting using the fdt blob at 0xedef8410
Working FDT set to edef8410
bootm_run_states(): images->state: 1, states: 1710
Loading Ramdisk to ecdfd000, end eceb274d ... OK
bootm_run_states(): images->os.os: 5
bootm_run_states(): images->os.arch: 16
boot_fn: 00000000eff2b83c, need_boot_fn: 0
Loading Device Tree to 00000000ecde8000, end 00000000ecdfc97f ... OK
Working FDT set to ecde8000
After this series booting fails, bootm_run_states() is first called
with states=0x1710.
Scanning bootdev 'mmc@fe2b0000.bootdev':
1 extlinux ready mmc 1 mmc@fe2b0000.bootdev.part /extlinux/extlinux.conf
** Booting bootflow 'mmc@fe2b0000.bootdev.part_1' with extlinux
1: linux
Retrieving file: /Image.gz
Retrieving file: /initramfs.cpio.gz
bootm_run_states(): images->state: 0, states: 1710
bootm_run_states(): images->os.os: 0
bootm_run_states(): images->os.arch: 0
bootm_run_states(): boot_fn: 0000000000000000, need_boot_fn: 0
ERROR: booting os 'Invalid OS' (0) is not supported
Boot failed (err=-14)
Looks like booti_start() -> bootm_run_states(bmi, BOOTM_STATE_START) is
no longer called due to changes in this series.
Regards,
Jonas
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2 00/16] pxe: Allow extlinux booting without CMDLINE enabled
2024-04-14 16:58 ` Jonas Karlman
@ 2024-04-18 18:13 ` Tom Rini
2024-04-20 8:11 ` Jonas Karlman
0 siblings, 1 reply; 26+ messages in thread
From: Tom Rini @ 2024-04-18 18:13 UTC (permalink / raw)
To: Jonas Karlman; +Cc: Simon Glass, U-Boot Mailing List
[-- Attachment #1: Type: text/plain, Size: 4898 bytes --]
On Sun, Apr 14, 2024 at 06:58:03PM +0200, Jonas Karlman wrote:
> Hi Tom and Simon,
>
> On 2024-04-11 03:45, Tom Rini wrote:
> > On Thu, 14 Dec 2023 21:18:58 -0700, Simon Glass wrote:
> >
> >> This series is the culmanation of the current line of refactoring
> >> series. It adjusts pxe to call the booting functionality directly
> >> rather than going through the command-line interface.
> >>
> >> With this is is possible to boot using the extlinux bootmeth without
> >> the command line enabled.
> >>
> >> [...]
> >
> > Applied to u-boot/master, thanks!
> >
>
> This series is causing boot issues using extlinux in bootm_run_states():
>
> ERROR: booting os 'Invalid OS' (0) is not supported
>
> Following extlinux.conf was used:
>
> label linux
> kernel /Image.gz
> initrd /initramfs.cpio.gz
>
> Before this series booting works, bootm_run_states() is first called
> with states=0x1 (BOOTM_STATE_START):
>
> Scanning bootdev 'mmc@fe2b0000.bootdev':
> 1 extlinux ready mmc 1 mmc@fe2b0000.bootdev.part /extlinux/extlinux.conf
> ** Booting bootflow 'mmc@fe2b0000.bootdev.part_1' with extlinux
> 1: linux
> Retrieving file: /Image.gz
> Retrieving file: /initramfs.cpio.gz
> bootm_run_states(): images->state: 0, states: 1
> bootm_run_states(): images->os.os: 0
> bootm_run_states(): images->os.arch: 0
> bootm_run_states(): boot_fn: 0000000000000000, need_boot_fn: 0
> Uncompressing Kernel Image to 0
> ## Flattened Device Tree blob at edef8410
> Booting using the fdt blob at 0xedef8410
> Working FDT set to edef8410
> bootm_run_states(): images->state: 1, states: 1710
> Loading Ramdisk to ecdfd000, end eceb274d ... OK
> bootm_run_states(): images->os.os: 5
> bootm_run_states(): images->os.arch: 16
> boot_fn: 00000000eff2b83c, need_boot_fn: 0
> Loading Device Tree to 00000000ecde8000, end 00000000ecdfc97f ... OK
> Working FDT set to ecde8000
>
> After this series booting fails, bootm_run_states() is first called
> with states=0x1710.
>
> Scanning bootdev 'mmc@fe2b0000.bootdev':
> 1 extlinux ready mmc 1 mmc@fe2b0000.bootdev.part /extlinux/extlinux.conf
> ** Booting bootflow 'mmc@fe2b0000.bootdev.part_1' with extlinux
> 1: linux
> Retrieving file: /Image.gz
> Retrieving file: /initramfs.cpio.gz
> bootm_run_states(): images->state: 0, states: 1710
> bootm_run_states(): images->os.os: 0
> bootm_run_states(): images->os.arch: 0
> bootm_run_states(): boot_fn: 0000000000000000, need_boot_fn: 0
> ERROR: booting os 'Invalid OS' (0) is not supported
> Boot failed (err=-14)
>
> Looks like booti_start() -> bootm_run_states(bmi, BOOTM_STATE_START) is
> no longer called due to changes in this series.
I think the problem is with:
commit 6d803ec9cc757bda0c48f2fd419cb6878eab92c4
Author: Simon Glass <sjg@chromium.org>
Date: Thu Dec 14 21:19:12 2023 -0700
pxe: Allow booting without CMDLINE for bootm methods
Use bootm_run() and booti_run() to boot rather than the command line.
This allows extlinux to be used without CMDLINE being enabled.
Collect any error but do not return it, to match the existing code.
Signed-off-by: Simon Glass <sjg@chromium.org>
diff --git a/boot/pxe_utils.c b/boot/pxe_utils.c
[snip]
@@ -641,23 +644,18 @@ static int label_run_boot(struct pxe_context *ctx, struct pxe_label *label,
if (!fdt_addr && genimg_get_format(buf) != IMAGE_FORMAT_FIT)
fdt_addr = env_get("fdtcontroladdr");
- if (fdt_addr) {
- if (!bootm_argv[2])
- bootm_argv[2] = "-";
- bootm_argc = 4;
- }
- bootm_argv[3] = (char *)fdt_addr;
+ bmi.conf_fdt = fdt_addr;
/* Try bootm for legacy and FIT format image */
if (genimg_get_format(buf) != IMAGE_FORMAT_INVALID &&
- IS_ENABLED(CONFIG_CMD_BOOTM))
- do_bootm(ctx->cmdtp, 0, bootm_argc, bootm_argv);
+ IS_ENABLED(CONFIG_BOOTM))
+ ret = bootm_run(&bmi);
/* Try booting an AArch64 Linux kernel image */
- else if (IS_ENABLED(CONFIG_CMD_BOOTI))
- do_booti(ctx->cmdtp, 0, bootm_argc, bootm_argv);
+ else if (IS_ENABLED(CONFIG_BOOTM))
+ ret = booti_run(&bmi);
/* Try booting a Image */
- else if (IS_ENABLED(CONFIG_CMD_BOOTZ))
- do_bootz(ctx->cmdtp, 0, bootm_argc, bootm_argv);
+ else if (IS_ENABLED(CONFIG_BOOTM))
+ ret = bootz_run(&bmi);
/* Try booting an x86_64 Linux kernel image */
else if (IS_ENABLED(CONFIG_CMD_ZBOOT))
do_zboot_parent(ctx->cmdtp, 0, zboot_argc, zboot_argv, NULL);
And this doesn't seem equivalent really. The logic used to be checking
if we had bootm/booti/bootz and now it's always checking for
CONFIG_BOOTM. Jonas, can you please share the defconfig you used here as
well? But I think for now reverting the series is the best path forward,
unfortunately.
--
Tom
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]
^ permalink raw reply [flat|nested] 26+ messages in thread
* Re: [PATCH v2 00/16] pxe: Allow extlinux booting without CMDLINE enabled
2024-04-18 18:13 ` Tom Rini
@ 2024-04-20 8:11 ` Jonas Karlman
0 siblings, 0 replies; 26+ messages in thread
From: Jonas Karlman @ 2024-04-20 8:11 UTC (permalink / raw)
To: Tom Rini, Simon Glass; +Cc: U-Boot Mailing List
Hi Tom and Simon,
On 2024-04-18 20:13, Tom Rini wrote:
> On Sun, Apr 14, 2024 at 06:58:03PM +0200, Jonas Karlman wrote:
>> Hi Tom and Simon,
>>
>> On 2024-04-11 03:45, Tom Rini wrote:
>>> On Thu, 14 Dec 2023 21:18:58 -0700, Simon Glass wrote:
>>>
>>>> This series is the culmanation of the current line of refactoring
>>>> series. It adjusts pxe to call the booting functionality directly
>>>> rather than going through the command-line interface.
>>>>
>>>> With this is is possible to boot using the extlinux bootmeth without
>>>> the command line enabled.
>>>>
>>>> [...]
>>>
>>> Applied to u-boot/master, thanks!
>>>
>>
>> This series is causing boot issues using extlinux in bootm_run_states():
>>
>> ERROR: booting os 'Invalid OS' (0) is not supported
>>
>> Following extlinux.conf was used:
>>
>> label linux
>> kernel /Image.gz
>> initrd /initramfs.cpio.gz
>>
>> Before this series booting works, bootm_run_states() is first called
>> with states=0x1 (BOOTM_STATE_START):
>>
>> Scanning bootdev 'mmc@fe2b0000.bootdev':
>> 1 extlinux ready mmc 1 mmc@fe2b0000.bootdev.part /extlinux/extlinux.conf
>> ** Booting bootflow 'mmc@fe2b0000.bootdev.part_1' with extlinux
>> 1: linux
>> Retrieving file: /Image.gz
>> Retrieving file: /initramfs.cpio.gz
>> bootm_run_states(): images->state: 0, states: 1
>> bootm_run_states(): images->os.os: 0
>> bootm_run_states(): images->os.arch: 0
>> bootm_run_states(): boot_fn: 0000000000000000, need_boot_fn: 0
>> Uncompressing Kernel Image to 0
>> ## Flattened Device Tree blob at edef8410
>> Booting using the fdt blob at 0xedef8410
>> Working FDT set to edef8410
>> bootm_run_states(): images->state: 1, states: 1710
>> Loading Ramdisk to ecdfd000, end eceb274d ... OK
>> bootm_run_states(): images->os.os: 5
>> bootm_run_states(): images->os.arch: 16
>> boot_fn: 00000000eff2b83c, need_boot_fn: 0
>> Loading Device Tree to 00000000ecde8000, end 00000000ecdfc97f ... OK
>> Working FDT set to ecde8000
>>
>> After this series booting fails, bootm_run_states() is first called
>> with states=0x1710.
>>
>> Scanning bootdev 'mmc@fe2b0000.bootdev':
>> 1 extlinux ready mmc 1 mmc@fe2b0000.bootdev.part /extlinux/extlinux.conf
>> ** Booting bootflow 'mmc@fe2b0000.bootdev.part_1' with extlinux
>> 1: linux
>> Retrieving file: /Image.gz
>> Retrieving file: /initramfs.cpio.gz
>> bootm_run_states(): images->state: 0, states: 1710
>> bootm_run_states(): images->os.os: 0
>> bootm_run_states(): images->os.arch: 0
>> bootm_run_states(): boot_fn: 0000000000000000, need_boot_fn: 0
>> ERROR: booting os 'Invalid OS' (0) is not supported
>> Boot failed (err=-14)
>>
>> Looks like booti_start() -> bootm_run_states(bmi, BOOTM_STATE_START) is
>> no longer called due to changes in this series.
>
> I think the problem is with:
> commit 6d803ec9cc757bda0c48f2fd419cb6878eab92c4
> Author: Simon Glass <sjg@chromium.org>
> Date: Thu Dec 14 21:19:12 2023 -0700
>
> pxe: Allow booting without CMDLINE for bootm methods
>
> Use bootm_run() and booti_run() to boot rather than the command line.
> This allows extlinux to be used without CMDLINE being enabled.
>
> Collect any error but do not return it, to match the existing code.
>
> Signed-off-by: Simon Glass <sjg@chromium.org>
>
> diff --git a/boot/pxe_utils.c b/boot/pxe_utils.c
> [snip]
> @@ -641,23 +644,18 @@ static int label_run_boot(struct pxe_context *ctx, struct pxe_label *label,
> if (!fdt_addr && genimg_get_format(buf) != IMAGE_FORMAT_FIT)
> fdt_addr = env_get("fdtcontroladdr");
>
> - if (fdt_addr) {
> - if (!bootm_argv[2])
> - bootm_argv[2] = "-";
> - bootm_argc = 4;
> - }
> - bootm_argv[3] = (char *)fdt_addr;
> + bmi.conf_fdt = fdt_addr;
>
> /* Try bootm for legacy and FIT format image */
> if (genimg_get_format(buf) != IMAGE_FORMAT_INVALID &&
> - IS_ENABLED(CONFIG_CMD_BOOTM))
> - do_bootm(ctx->cmdtp, 0, bootm_argc, bootm_argv);
> + IS_ENABLED(CONFIG_BOOTM))
> + ret = bootm_run(&bmi);
> /* Try booting an AArch64 Linux kernel image */
> - else if (IS_ENABLED(CONFIG_CMD_BOOTI))
> - do_booti(ctx->cmdtp, 0, bootm_argc, bootm_argv);
> + else if (IS_ENABLED(CONFIG_BOOTM))
> + ret = booti_run(&bmi);
> /* Try booting a Image */
> - else if (IS_ENABLED(CONFIG_CMD_BOOTZ))
> - do_bootz(ctx->cmdtp, 0, bootm_argc, bootm_argv);
> + else if (IS_ENABLED(CONFIG_BOOTM))
> + ret = bootz_run(&bmi);
> /* Try booting an x86_64 Linux kernel image */
> else if (IS_ENABLED(CONFIG_CMD_ZBOOT))
> do_zboot_parent(ctx->cmdtp, 0, zboot_argc, zboot_argv, NULL);
>
> And this doesn't seem equivalent really. The logic used to be checking
> if we had bootm/booti/bootz and now it's always checking for
> CONFIG_BOOTM. Jonas, can you please share the defconfig you used here as
> well? But I think for now reverting the series is the best path forward,
> unfortunately.
>
I have re-tested following on rockpro64-rk3399_defconfig using:
- Image.gz: plain Linux kernel v6.9-rc4, ARCH=arm64 defconfig
(without module support)
- initramfs.cpio.gz: minimal busybox system
- extlinux/extlinux.conf: minimal extlinux file
"""
label linux
kernel /Image.gz
initrd /initramfs.cpio.gz
"""
And following diff to add debug prints:
"""
diff --git a/boot/bootm.c b/boot/bootm.c
index 032f5a4a1605..e106cde7076b 100644
--- a/boot/bootm.c
+++ b/boot/bootm.c
@@ -998,6 +998,7 @@ int bootm_run_states(struct bootm_info *bmi, int states)
ulong iflag = 0;
int ret = 0, need_boot_fn;
+ printf("%s(): images->state: %x, states: %x\n", __func__, images->state, states);
images->state |= states;
/*
@@ -1060,10 +1061,13 @@ int bootm_run_states(struct bootm_info *bmi, int states)
/* From now on, we need the OS boot function */
if (ret)
return ret;
+ printf("%s(): images->os.os: %x\n", __func__, images->os.os);
+ printf("%s(): images->os.arch: %x\n", __func__, images->os.arch);
boot_fn = bootm_os_get_boot_func(images->os.os);
need_boot_fn = states & (BOOTM_STATE_OS_CMDLINE |
BOOTM_STATE_OS_BD_T | BOOTM_STATE_OS_PREP |
BOOTM_STATE_OS_FAKE_GO | BOOTM_STATE_OS_GO);
+ printf("%s(): boot_fn: %p, need_boot_fn: %x\n", __func__, boot_fn, need_boot_fn);
if (boot_fn == NULL && need_boot_fn) {
if (iflag)
enable_interrupts();
"""
Result for the U-Boot prior to you revert using commit 3434b88d2c2f
("Merge branch 'master-fdt' of https://source.denx.de/u-boot/custodians/u-boot-sh"):
Scanning bootdev 'mmc@fe320000.bootdev':
1 extlinux ready mmc 1 mmc@fe320000.bootdev.part /extlinux/extlinux.conf
** Booting bootflow 'mmc@fe320000.bootdev.part_1' with extlinux
1: linux
Retrieving file: /Image.gz
Retrieving file: /initramfs.cpio.gz
bootm_run_states(): images->state: 0, states: 1710
bootm_run_states(): images->os.os: 0
bootm_run_states(): images->os.arch: 0
bootm_run_states(): boot_fn: 0000000000000000, need_boot_fn: 700
ERROR: booting os 'Invalid OS' (0) is not supported
Boot failed (err=-14)
And using an uncompressed /Image does not make any difference.
Result for the U-Boot after to your revert using commit cdd20e3f66fe
("Revert "Merge patch series "pxe: Allow extlinux booting without CMDLINE enabled"""):
Scanning bootdev 'mmc@fe320000.bootdev':
1 extlinux ready mmc 1 mmc@fe320000.bootdev.part /extlinux/extlinux.conf
** Booting bootflow 'mmc@fe320000.bootdev.part_1' with extlinux
1: linux
Retrieving file: /Image.gz
Retrieving file: /initramfs.cpio.gz
bootm_run_states(): images->state: 0, states: 1
bootm_run_states(): images->os.os: 0
bootm_run_states(): images->os.arch: 0
bootm_run_states(): boot_fn: 0000000000000000, need_boot_fn: 0
Uncompressing Kernel Image to 0
Moving Image from 0x2080000 to 0x2200000, end=6df0000
ERROR: RD image overlaps OS image (OS=2200000..6df0000)
Boot failed (err=-14)
Changing the RD image addr fixes such overlap (a separate issue not
present on my initial testing board, generic-rk3568_defconfig):
=> env set ramdisk_addr_r 10000000
=> boot
Scanning bootdev 'mmc@fe320000.bootdev':
1 extlinux ready mmc 1 mmc@fe320000.bootdev.part /extlinux/extlinux.conf
** Booting bootflow 'mmc@fe320000.bootdev.part_1' with extlinux
1: linux
Retrieving file: /Image.gz
Retrieving file: /initramfs.cpio.gz
bootm_run_states(): images->state: 1, states: 1
bootm_run_states(): images->os.os: 0
bootm_run_states(): images->os.arch: 0
bootm_run_states(): boot_fn: 0000000000000000, need_boot_fn: 0
Uncompressing Kernel Image to 0
Moving Image from 0x2080000 to 0x2200000, end=6df0000
## Flattened Device Tree blob at f1ef7c70
Booting using the fdt blob at 0xf1ef7c70
Working FDT set to f1ef7c70
bootm_run_states(): images->state: 1, states: 1710
Loading Ramdisk to f0dfb000, end f0eb074d ... OK
bootm_run_states(): images->os.os: 5
bootm_run_states(): images->os.arch: 16
bootm_run_states(): boot_fn: 00000000f3f13828, need_boot_fn: 700
Loading Device Tree to 00000000f0de6000, end 00000000f0dfa0e7 ... OK
Working FDT set to f0de6000
Starting kernel ...
I hope this can give some more details on how to reproduce the issue.
Regards,
Jonas
^ permalink raw reply related [flat|nested] 26+ messages in thread
end of thread, other threads:[~2024-04-20 8:11 UTC | newest]
Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-15 4:18 [PATCH v2 00/16] pxe: Allow extlinux booting without CMDLINE enabled Simon Glass
2023-12-15 4:18 ` [PATCH v2 01/16] boot: Reorder FIT and BOOTSTD to be first Simon Glass
2023-12-15 4:19 ` [PATCH v2 02/16] bootm: Add a Kconfig option for bootm functionality Simon Glass
2023-12-15 4:19 ` [PATCH v2 03/16] bootm: Make OS booting dependent on BOOTM Simon Glass
2023-12-15 4:19 ` [PATCH v2 04/16] treewide: Make arch-specific bootm code depend " Simon Glass
2023-12-23 7:28 ` Angelo Dureghello
2023-12-15 4:19 ` [PATCH v2 05/16] boot: Update SYS_BOOTM_LEN to " Simon Glass
2023-12-15 4:19 ` [PATCH v2 06/16] fastboot: Change fastboot_buf_addr to an address Simon Glass
2023-12-15 4:19 ` [PATCH v2 07/16] bootm: Make cmdline optional with bootm_boot_start() Simon Glass
2023-12-15 4:19 ` [PATCH v2 08/16] fastboot: Remove dependencies on CMDLINE Simon Glass
2023-12-15 12:06 ` Mattijs Korpershoek
2023-12-15 13:49 ` Tom Rini
2023-12-15 4:19 ` [PATCH v2 09/16] doc: Mention fastboot dependency " Simon Glass
2023-12-15 12:07 ` Mattijs Korpershoek
2023-12-15 13:14 ` Sam Protsenko
2023-12-15 4:19 ` [PATCH v2 10/16] pxe: Use strlcpy() instead of strcpy() in label_boot() Simon Glass
2023-12-15 4:19 ` [PATCH v2 11/16] pxe: Refactor to reduce the size of label_boot() Simon Glass
2023-12-15 4:19 ` [PATCH v2 12/16] pxe: Refactor to avoid over-using bootm_argv Simon Glass
2023-12-15 4:19 ` [PATCH v2 13/16] pxe: Move calculation of FDT file into a function Simon Glass
2023-12-15 4:19 ` [PATCH v2 14/16] pxe: Allow booting without CMDLINE for bootm methods Simon Glass
2023-12-15 4:19 ` [PATCH v2 15/16] pxe: Allow booting without CMDLINE for the zboot method Simon Glass
2023-12-15 4:19 ` [PATCH v2 16/16] x86: Drop message about features being missing with 64-bit Simon Glass
2024-04-11 1:45 ` [PATCH v2 00/16] pxe: Allow extlinux booting without CMDLINE enabled Tom Rini
2024-04-14 16:58 ` Jonas Karlman
2024-04-18 18:13 ` Tom Rini
2024-04-20 8:11 ` Jonas Karlman
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.