Hello Simon, Am 20.11.2014 um 20:15 schrieb Simon Glass: > Hi Markus, > > On 18 November 2014 12:52, Markus Niebel <[email protected]> wrote: >> From: Markus Niebel <[email protected]> >> >> fixup was lost during split between command code and logic. >> >> Signed-off-by: Markus Niebel <[email protected]> >> --- >> common/bootm.c | 2 +- >> common/cmd_bootm.c | 6 ++++++ >> include/bootm.h | 2 ++ >> 3 files changed, 9 insertions(+), 1 deletion(-) >> >> diff --git a/common/bootm.c b/common/bootm.c >> index 6b3ea8c..94b9503 100644 >> --- a/common/bootm.c >> +++ b/common/bootm.c >> @@ -467,7 +467,7 @@ ulong bootm_disable_interrupts(void) >> #define CONSOLE_ARG "console=" >> #define CONSOLE_ARG_LEN (sizeof(CONSOLE_ARG) - 1) >> >> -static void fixup_silent_linux(void) >> +void fixup_silent_linux(void) >> { >> char *buf; >> const char *env_val; >> diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c >> index 6723360..d3e410a 100644 >> --- a/common/cmd_bootm.c >> +++ b/common/cmd_bootm.c >> @@ -596,6 +596,12 @@ int do_bootz(cmd_tbl_t *cmdtp, int flag, int argc, char >> * const argv[]) >> * disable interrupts ourselves >> */ >> bootm_disable_interrupts(); >> +#if defined(CONFIG_SILENT_CONSOLE) && !defined(CONFIG_SILENT_U_BOOT_ONLY) >> + /* >> + * same goes for fixup_silent_linux >> + */ >> + fixup_silent_linux(); >> +#endif >> >> images.os.os = IH_OS_LINUX; >> ret = do_bootm_states(cmdtp, flag, argc, argv, >> diff --git a/include/bootm.h b/include/bootm.h >> index b3d1a62..8e094b3 100644 >> --- a/include/bootm.h >> +++ b/include/bootm.h >> @@ -50,6 +50,8 @@ ulong bootm_disable_interrupts(void); >> >> /* This is a special function used by booti/bootz */ >> int bootm_find_ramdisk_fdt(int flag, int argc, char * const argv[]); >> +/* This function is used also used by bootz */ >> +void fixup_silent_linux(void); >> >> int do_bootm_states(cmd_tbl_t *cmdtp, int flag, int argc, char * const >> argv[], >> int states, bootm_headers_t *images, int boot_progress); > > Quite a bit of effort was expended trying to join this code back > together rather than having two separate code paths for bootm and > bootz.
I Understand > > Since this is cmdline-related, I suggest something like this: > > - Enable BOOTM_STATE_OS_CMDLINE for all archs in do_bootm() > - Call fixup_silent_linux() in do_bootm_states() when processing > BOOTM_STATE_OS_CMDLINE > - Add BOOTM_STATE_OS_CMDLINE to the do_bootm_states() call in do_bootz() > I read through the code to find out, what the implications of your suggestions were. Since I'm not very familiar with this piece of code, please correct me, If i'm wrong: - rename the arch specific do_bootm_linux to arch_bootm_linux - implement a generic version of do_bootm_linux inside bootm_os.c - call arch_bootm_linux from generic do_bootm_linux - move the call to fixup_silent_linux to new do_bootm_linux for the BOOTM_STATE_OS_CMDLINE case - mask BOOTM_STATE_OS_CMDLINE before calling arch_bootm_linux for all but MIPS and PPC because this seems a bit intrusive I'm not sure. But if this is the wy to go, I will prepare a patch. > Or similar...that way we keep bootm and bootz in sync. The separate > call to bootm_disable_interrupts() is unfortunate but is a problem for > another day. > > Regards, > Simon > Regards, Markus _______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

