
14 Dec
2023
14 Dec
'23
6:51 p.m.
On Thu, Dec 14, 2023 at 09:50:26AM -0700, Simon Glass wrote:
In quite a few places, the bootm command is used to handle a boot. We want these to be done without needing CONFIG_CMDLINE, so add a new bootm_run() function to handle this.
Signed-off-by: Simon Glass sjg@chromium.org
[snip]
+int bootm_run(struct bootm_info *bmi) +{
- int states;
- bmi->cmd_name = "bootm";
- states = BOOTM_STATE_START | BOOTM_STATE_FINDOS | BOOTM_STATE_PRE_LOAD |
BOOTM_STATE_FINDOTHER | BOOTM_STATE_LOADOS |
BOOTM_STATE_OS_PREP | BOOTM_STATE_OS_FAKE_GO |
BOOTM_STATE_OS_GO;
- if (IS_ENABLED(CONFIG_SYS_BOOT_RAMDISK_HIGH))
states |= BOOTM_STATE_RAMDISK;
- if (IS_ENABLED(CONFIG_MEASURED_BOOT))
states |= BOOTM_STATE_MEASURE;
- if (IS_ENABLED(CONFIG_PPC) || IS_ENABLED(CONFIG_MIPS))
states |= BOOTM_STATE_OS_CMDLINE;
- return bootm_run_states(bmi, states);
+}
Looking at this, and then boot[zi]_run, I think we should either always set BOOTM_STATE_MEASURE (it's a nop without CONFIG_MEASURED_BOOT) or always IS_ENABLED check it before setting. I think we both would prefer the former? And I really do wonder how much it would hurt or not to just have boot_run() or something which takes the name as a param and handles the few "bootm"-only flags.
--
Tom