tree e8eb63d612a5a6efeb3d4e16c9f0cd9b0c27fb99
parent 31fda96bb62445c0b190cc499184dc497f7f8fdd
author Simon Glass <sjg@chromium.org> 1702696458 -0700
committer Tom Rini <trini@konsulko.com> 1703192872 -0500

bootm: Drop arguments from do_bootm_states()

Use the bootm_info struct to hold the information required by bootm.

Now that none of the functions called from do_bootm_states() needs an
argv[] list, change the arguments of do_bootm_states() as well. Take
care to use the same value for boot_progress even though it is a little
inconsistent.

For booti make sure it only uses argv[] and argc at the top of the
function, so we can eventually refactor to remove these parameters.

With bootm, some OSes need access to the arguments provided to the
command, so set these up in the bootm_info struct, for bootm only.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Tom Rini <trini@konsulko.com>
