[PATCH v2 00/16] pxe: Allow extlinux booting without CMDLINE enabled

Jonas Karlman jonas at kwiboo.se
Sun Apr 14 18:58:03 CEST 2024


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 at fe2b0000.bootdev':
    1  extlinux     ready   mmc          1  mmc at fe2b0000.bootdev.part /extlinux/extlinux.conf
  ** Booting bootflow 'mmc at 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 at fe2b0000.bootdev':
    1  extlinux     ready   mmc          1  mmc at fe2b0000.bootdev.part /extlinux/extlinux.conf
  ** Booting bootflow 'mmc at 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


More information about the U-Boot mailing list