Add SHA256 encrypted stop string for autobooting
Subsystems (3)
cover Add SHA256 encrypted stop string for autobooting
The main task for this patch series is to add the new feature to abort autobooting via a SHA256 encrypted password. For this, some of the old autobooting related config macros have been moved to Kconfig. This was a bit more complicated, since Kconfig currently apparently doesn't support using escape characters '\' as used in printf format strings like "foo %s bar\n". And this is needed for some of these new Kconfig options. So I needed to make some changes to the Kconfig sources as well. If nobody complains about these Kconfig stuff, I'll try to push this into the Linux Kconfig source as well.
There should be no functional change introduced. Please let me know if you find any problems.
Thanks,
Stefan
Stefan Roese (4):
Kconfig: Enable usage of escape char '\' in string values autoboot.c: Remove CONFIG_AUTOBOOT_STOP_STR2 and
CONFIG_AUTOBOOT_DELAY_STR2
autoboot.c: Move config options to Kconfig autoboot.c: Add feature to stop autobooting via SHA256 encrypted
password
README | 2 - common/Kconfig | 78 ++++++++++++++++++++++++++ common/autoboot.c | 94 ++++++++++++++++++++++++++------ configs/CPCI4052_defconfig | 3 + configs/O2DNT2_RAMBOOT_defconfig | 3 + configs/O2DNT2_defconfig | 3 + configs/PLU405_defconfig | 3 + configs/PMC405DE_defconfig | 3 + configs/PMC440_defconfig | 3 + configs/UCP1020_SPIFLASH_defconfig | 3 + configs/UCP1020_defconfig | 3 + configs/a4m072_defconfig | 3 + configs/atngw100_defconfig | 4 ++ configs/atngw100mkii_defconfig | 4 ++ configs/atstk1002_defconfig | 4 ++ configs/atstk1003_defconfig | 4 ++ configs/atstk1004_defconfig | 4 ++ configs/atstk1006_defconfig | 4 ++ configs/calimain_defconfig | 2 + configs/cpuat91_defconfig | 4 ++ configs/cpuat91_ram_defconfig | 3 + configs/digsy_mtc_RAMBOOT_defconfig | 3 + configs/digsy_mtc_defconfig | 3 + configs/digsy_mtc_rev5_RAMBOOT_defconfig | 3 + configs/digsy_mtc_rev5_defconfig | 3 + configs/dlvision-10g_defconfig | 2 + configs/draco_defconfig | 3 + configs/dxr2_defconfig | 3 + configs/favr-32-ezkit_defconfig | 4 ++ configs/gdppc440etx_defconfig | 2 + configs/grasshopper_defconfig | 4 ++ configs/hammerhead_defconfig | 4 ++ configs/highbank_defconfig | 3 + configs/hrcon_defconfig | 2 + configs/ids8313_defconfig | 3 + configs/intip_defconfig | 2 + configs/io64_defconfig | 2 + configs/io_defconfig | 2 + configs/iocon_defconfig | 2 + configs/ip04_defconfig | 1 + configs/motionpro_defconfig | 3 + configs/nokia_rx51_defconfig | 1 + configs/omap3_mvblx_defconfig | 2 + configs/ph1_ld4_defconfig | 4 ++ configs/ph1_pro4_defconfig | 4 ++ configs/ph1_sld8_defconfig | 4 ++ configs/pm9263_defconfig | 1 + configs/pxm2_defconfig | 3 + configs/rut_defconfig | 3 + configs/spear600_defconfig | 3 + configs/stv0991_defconfig | 3 + configs/x600_defconfig | 3 + configs/zmx25_defconfig | 4 ++ doc/README.autoboot | 10 ---- include/configs/CPCI4052.h | 6 -- include/configs/PLU405.h | 9 --- include/configs/PMC405DE.h | 6 -- include/configs/PMC440.h | 6 -- include/configs/UCP1020.h | 11 ---- include/configs/a4m072.h | 4 -- include/configs/atngw100.h | 10 ---- include/configs/atngw100mkii.h | 10 ---- include/configs/atstk1002.h | 10 ---- include/configs/atstk1003.h | 10 ---- include/configs/atstk1004.h | 10 ---- include/configs/atstk1006.h | 10 ---- include/configs/bf537-stamp.h | 4 -- include/configs/calimain.h | 2 - include/configs/cpuat91.h | 6 -- include/configs/digsy_mtc.h | 4 -- include/configs/dlvision-10g.h | 2 - include/configs/favr-32-ezkit.h | 10 ---- include/configs/gdppc440etx.h | 2 - include/configs/grasshopper.h | 10 ---- include/configs/hammerhead.h | 10 ---- include/configs/highbank.h | 4 +- include/configs/hrcon.h | 2 - include/configs/ids8313.h | 4 -- include/configs/intip.h | 2 - include/configs/io.h | 2 - include/configs/io64.h | 2 - include/configs/iocon.h | 2 - include/configs/ip04.h | 1 - include/configs/motionpro.h | 6 -- include/configs/nokia_rx51.h | 1 - include/configs/o2dnt-common.h | 12 ---- include/configs/omap3_mvblx.h | 2 - include/configs/pm9263.h | 1 - include/configs/siemens-am33x-common.h | 6 -- include/configs/spear-common.h | 4 -- include/configs/stv0991.h | 4 -- include/configs/uniphier.h | 5 -- include/configs/x600.h | 4 -- include/configs/zmx25.h | 4 -- scripts/kconfig/confdata.c | 20 +++---- scripts/kconfig/symbol.c | 43 --------------- 96 files changed, 315 insertions(+), 301 deletions(-)
Signature · 1 line
2.4.0
PATCH 1/4 Kconfig: Enable usage of escape char '\' in string values
I might have missed something, but I failed to use the escape char '\' in strings. To pass a printf format string like "foo %d bar\n" via Kconfig to the code.
Right now its not possible to use the escape character '\' in Kconfig string values correctly to e.g. set this string value "test output\n". The '\n' will be converted to 'n'.
The current implementation removes some of the '\' chars from the input string in conf_set_sym_val(). Examples:
'\' -> ''
'\\' -> '\'
'\\\' -> '\'
'\\\\' -> '\\'
...
And then doubles the backslash chars in the output string in sym_escape_string_value(). Example:
'\' -> '' -> ''
'\\' -> '\' -> '\\'
'\\\' -> '\' -> '\\'
'\\\\' -> '\\' -> '\\\\'
...
As you see in these examples, its impossible to generate a single '\' charater in the output string as its needed for something like '\n'.
This patch now changes this behavior to not drop some backslashes in conf_set_sym_val() and to not add new backslashes in the resulting output string. Removing the function sym_escape_string_value() completely as its not needed anymore.
---
scripts/kconfig/confdata.c | 20 +++++++++----------- scripts/kconfig/symbol.c | 43 ------------------------------------------- 2 files changed, 9 insertions(+), 54 deletions(-)
scripts/kconfig/confdata.c +9 -11
@@ -155,18 +155,14 @@ static int conf_set_sym_val(struct symbol *sym, int def, int def_flags, char *p)case S_STRING :if (*p++ !='"' )break ; -for (p2 = p; (p2 =strpbrk (p2,"\"\\" )); p2++) { -if (*p2 =='"' ) { - *p2 =0 ; -break ; - } -memmove (p2, p2 +1 ,strlen (p2)); - } -if (!p2) { +/* Last char has to be a '"' */ +if (p[strlen (p) -1 ] !='"' ) {if (def !=S_DEF_AUTO )conf_warning ("invalid string found" );return 1 ; } +/* Overwrite '"' with \0 for string termination */ + p[strlen (p) -1 ] =0 ;/* fall through */ case S_INT :case S_HEX :
@@ -624,6 +620,7 @@ static void conf_write_symbol(FILE *fp, struct symbol *sym, struct conf_printer *printer, void *printer_arg) { const char *str; +char *str2;switch (sym->type) {case S_OTHER :
@@ -631,9 +628,10 @@ static void conf_write_symbol(FILE *fp, struct symbol *sym,break ;case S_STRING : str =sym_get_string_value (sym); - str =sym_escape_string_value (str); - printer->print_symbol (fp, sym, str, printer_arg); -free ((void *)str); + str2 =xmalloc (strlen (str) +2 ); +sprintf (str2,"\"%s\"" , str); + printer->print_symbol (fp, sym, str2, printer_arg); +free ((void *)str2);break ;default : str =sym_get_string_value (sym);
scripts/kconfig/symbol.c +0 -43
49 lines not on this page · raw message
Signature · 1 line
2.4.0
PATCH 1/4 Kconfig: Enable usage of escape char '\' in string values
Hi Stefan,
2015-05-07 21:13 GMT+09:00 Stefan Roese <[email protected]>:
Quoted 26 lines
I might have missed something, but I failed to use the escape char '\' in strings. To pass a printf format string like "foo %d bar\n" via
Kconfigto the code.Right now its not possible to use the escape character '\' in
Kconfigstring values correctly to e.g. set this string value "test output\n". The '\n' will be converted to 'n'.The current implementation removes some of the '\' chars from the input string in
conf_set_sym_val(). Examples:'\' -> '' '\\' -> '\' '\\\' -> '\' '\\\\' -> '\\'...
And then doubles the backslash chars in the output string in
sym_escape_string_value(). Example:'\' -> '' -> '' '\\' -> '\' -> '\\' '\\\' -> '\' -> '\\' '\\\\' -> '\\' -> '\\\\'...
Quoted 7 lines
As you see in these examples, its impossible to generate a single '\' charater in the output string as its needed for something like '\n'.
This patch now changes this behavior to not drop some backslashes in
conf_set_sym_val()and to not add new backslashes in the resulting output string. Removing the functionsym_escape_string_value()completely as its not needed anymore.
Interesting.
I did not know this behavior of strings in Kconfig.
I want to see the reaction from linux-kconfig ML.
Signature · 2 lines
Best Regards Masahiro Yamada
PATCH 1/4 Kconfig: Enable usage of escape char '\' in string values
Hi Masahiro,
Quoted 30 lines · Masahiro Yamada
2015-05-07 21:13 GMT+09:00 Stefan Roese <[email protected]>:
Quoted 29 lines
I might have missed something, but I failed to use the escape char '\' in strings. To pass a printf format string like "foo %d bar\n" via
Kconfigto the code.Right now its not possible to use the escape character '\' in
Kconfigstring values correctly to e.g. set this string value "test output\n". The '\n' will be converted to 'n'.The current implementation removes some of the '\' chars from the input string in
conf_set_sym_val(). Examples:'\' -> '' '\\' -> '\' '\\\' -> '\' '\\\\' -> '\\'...
And then doubles the backslash chars in the output string in
sym_escape_string_value(). Example:'\' -> '' -> '' '\\' -> '\' -> '\\' '\\\' -> '\' -> '\\' '\\\\' -> '\\' -> '\\\\'...
As you see in these examples, its impossible to generate a single '\' charater in the output string as its needed for something like '\n'.
Quoted 8 lines
Quoted 4 lines
This patch now changes this behavior to not drop some backslashes in
conf_set_sym_val()and to not add new backslashes in the resulting output string. Removing the functionsym_escape_string_value()completely as its not needed anymore.Interesting.
I did not know this behavior of strings inKconfig.
Then I'm not the only one. ;)
Quoted 1 line
I want to see the reaction from linux-kconfig ML.
Okay. It makes sense then to send this patch to this list right away. A quick search didn't reveal any results though. Where is this list hosted?
Thanks,
Stefan
PATCH 1/4 Kconfig: Enable usage of escape char '\' in string values
Hi Stefan,
2015-05-07 21:46 GMT+09:00 Stefan Roese <[email protected]>:
Quoted 47 lines
Hi Masahiro,
Quoted 39 lines · Masahiro Yamada
2015-05-07 21:13 GMT+09:00 Stefan Roese <[email protected]>:
Quoted 27 lines
I might have missed something, but I failed to use the escape char '\' in strings. To pass a printf format string like "foo %d bar\n" via
Kconfigto the code.Right now its not possible to use the escape character '\' in
Kconfigstring values correctly to e.g. set this string value "test output\n". The '\n' will be converted to 'n'.The current implementation removes some of the '\' chars from the input string in
conf_set_sym_val(). Examples:'\' -> '' '\\' -> '\' '\\\' -> '\' '\\\\' -> '\\'...
And then doubles the backslash chars in the output string in
sym_escape_string_value(). Example:'\' -> '' -> '' '\\' -> '\' -> '\\' '\\\' -> '\' -> '\\' '\\\\' -> '\\' -> '\\\\'...
Quoted 7 lines
As you see in these examples, its impossible to generate a single '\' charater in the output string as its needed for something like '\n'.
This patch now changes this behavior to not drop some backslashes in
conf_set_sym_val()and to not add new backslashes in the resulting output string. Removing the functionsym_escape_string_value()completely as its not needed anymore.Quoted 2 lines
Interesting.
I did not know this behavior of strings inKconfig.
Quoted 7 lines
Then I'm not the only one. ;)
Quoted 1 line
I want to see the reaction from linux-kconfig ML.
Okay. It makes sense then to send this patch to this list right away. A quick search didn't reveal any results though. Where is this list hosted?
Sorry, there is no decicated ML for Kconfig.
Kconfig patches should go to linux-kbuild ML
(linux-kbuild at vger.kernel.org).
If you want to subscribe to the list, please visit
http://vger.kernel.org/vger-lists.html#linux-kbuild
Yann E. MORIN is not active these days, so I think Michal Marek is the maintainer.
Signature · 2 lines
Best Regards Masahiro Yamada
PATCH 1/4 Kconfig: Enable usage of escape char '\' in string values
In reply to Stefan RoeseHi Stefan,
Quoted 34 lines · Stefan Roese
I might have missed something, but I failed to use the escape char '\' in strings. To pass a printf format string like "foo %d bar\n" via
Kconfigto the code.Right now its not possible to use the escape character '\' in
Kconfigstring values correctly to e.g. set this string value "test output\n". The '\n' will be converted to 'n'.The current implementation removes some of the '\' chars from the input string in
conf_set_sym_val(). Examples:'\' -> '' '\\' -> '\' '\\\' -> '\' '\\\\' -> '\\'...
And then doubles the backslash chars in the output string in
sym_escape_string_value(). Example:'\' -> '' -> '' '\\' -> '\' -> '\\' '\\\' -> '\' -> '\\' '\\\\' -> '\\' -> '\\\\'...
As you see in these examples, its impossible to generate a single '\' charater in the output string as its needed for something like '\n'.
This patch now changes this behavior to not drop some backslashes in
conf_set_sym_val()and to not add new backslashes in the resulting output string. Removing the functionsym_escape_string_value()completely as its not needed anymore.
Quoted 8 lines
Signed-off-by Stefan Roese <[email protected]>Cc Masahiro Yamada <[email protected]>Cc Simon Glass <[email protected]>---
scripts/kconfig/confdata.c | 20 +++++++++----------- scripts/kconfig/symbol.c | 43 ------------------------------------------- 2 files changed, 9 insertions(+), 54 deletions(-)
This looks right to me. But I do see one problem - the default string for CONFIG_AUTOBOOT_PROMPT appears as:
"Autoboot in %d secondsn"
so something is still removing the \ in the Kconfig default;
[snip]
Regards,
Simon
PATCH 1/4 Kconfig: Enable usage of escape char '\' in string values
Hi Simon,
Quoted 44 lines · Simon Glass
Quoted 34 lines · Stefan Roese
I might have missed something, but I failed to use the escape char '\' in strings. To pass a printf format string like "foo %d bar\n" via
Kconfigto the code.Right now its not possible to use the escape character '\' in
Kconfigstring values correctly to e.g. set this string value "test output\n". The '\n' will be converted to 'n'.The current implementation removes some of the '\' chars from the input string in
conf_set_sym_val(). Examples:'\' -> '' '\\' -> '\' '\\\' -> '\' '\\\\' -> '\\'...
And then doubles the backslash chars in the output string in
sym_escape_string_value(). Example:'\' -> '' -> '' '\\' -> '\' -> '\\' '\\\' -> '\' -> '\\' '\\\\' -> '\\' -> '\\\\'...
As you see in these examples, its impossible to generate a single '\' charater in the output string as its needed for something like '\n'.
This patch now changes this behavior to not drop some backslashes in
conf_set_sym_val()and to not add new backslashes in the resulting output string. Removing the functionsym_escape_string_value()completely as its not needed anymore.Quoted 8 lines
Signed-off-by Stefan Roese <[email protected]>Cc Masahiro Yamada <[email protected]>Cc Simon Glass <[email protected]>---
scripts/kconfig/confdata.c | 20 +++++++++----------- scripts/kconfig/symbol.c | 43 ------------------------------------------- 2 files changed, 9 insertions(+), 54 deletions(-)
Quoted 6 lines
This looks right to me. But I do see one problem - the default string for
CONFIG_AUTOBOOT_PROMPTappears as:"Autoboot in %d secondsn"
so something is still removing the \ in the
Kconfigdefault;
Right. Thanks for spotting. I'll fix this in v3.
Thanks,
Stefan
PATCH 1/4 Kconfig: Enable usage of escape char '\' in string values
Hi Simon, Hi Masahiro,
Quoted 46 lines · Stefan Roese
Quoted 45 lines · Simon Glass
Quoted 43 lines · Stefan Roese
I might have missed something, but I failed to use the escape char '\' in strings. To pass a printf format string like "foo %d bar\n" via
Kconfigto the code.Right now its not possible to use the escape character '\' in
Kconfigstring values correctly to e.g. set this string value "test output\n". The '\n' will be converted to 'n'.The current implementation removes some of the '\' chars from the input string in
conf_set_sym_val(). Examples:'\' -> '' '\\' -> '\' '\\\' -> '\' '\\\\' -> '\\'...
And then doubles the backslash chars in the output string in
sym_escape_string_value(). Example:'\' -> '' -> '' '\\' -> '\' -> '\\' '\\\' -> '\' -> '\\' '\\\\' -> '\\' -> '\\\\'...
As you see in these examples, its impossible to generate a single '\' charater in the output string as its needed for something like '\n'.
This patch now changes this behavior to not drop some backslashes in
conf_set_sym_val()and to not add new backslashes in the resulting output string. Removing the functionsym_escape_string_value()completely as its not needed anymore.Signed-off-by Stefan Roese <[email protected]>Cc Masahiro Yamada <[email protected]>Cc Simon Glass <[email protected]>---
scripts/kconfig/confdata.c | 20 +++++++++----------- scripts/kconfig/symbol.c | 43 ------------------------------------------- 2 files changed, 9 insertions(+), 54 deletions(-)
Quoted 8 lines
Quoted 6 lines
This looks right to me. But I do see one problem - the default string for
CONFIG_AUTOBOOT_PROMPTappears as:"Autoboot in %d secondsn"
so something is still removing the \ in the
Kconfigdefault;Right. Thanks for spotting. I'll fix this in v3.
I could easily change the default string in the Kconfig file to "Autoboot in %d seconds\\n". This works. But its a different syntax regarding using the escape character backslash compared to editing the .config file or editing the string in "make menuconfig etc...". So I hesitate to "fix" it this way.
Unfortunately fixing this issue in the code is not that easy. At least not for me. As the default values of the "string values" are set in the conf_parse() function (in scripts/kconfig/zconf.y). And I really have absolutely no experience with yacc / bison. Perhaps one of you guys has a quick fix to make this default value of strings compatible again so that this additional '\' is not needed in the Kconfig file?
Thanks,
Stefan
PATCH 1/4 Kconfig: Enable usage of escape char '\' in string values
Hi Stefan,
Quoted 70 lines · Stefan Roese
Hi Simon, Hi Masahiro,
Quoted 53 lines · Stefan Roese
Quoted 51 lines · Simon Glass
Quoted 38 lines · Stefan Roese
I might have missed something, but I failed to use the escape char '\' in strings. To pass a printf format string like "foo %d bar\n" via
Kconfigto the code.Right now its not possible to use the escape character '\' in
Kconfigstring values correctly to e.g. set this string value "test output\n". The '\n' will be converted to 'n'.The current implementation removes some of the '\' chars from the input string in
conf_set_sym_val(). Examples:'\' -> '' '\\' -> '\' '\\\' -> '\' '\\\\' -> '\\'...
And then doubles the backslash chars in the output string in
sym_escape_string_value(). Example:'\' -> '' -> '' '\\' -> '\' -> '\\' '\\\' -> '\' -> '\\' '\\\\' -> '\\' -> '\\\\'...
As you see in these examples, its impossible to generate a single '\' charater in the output string as its needed for something like '\n'.
This patch now changes this behavior to not drop some backslashes in
conf_set_sym_val()and to not add new backslashes in the resulting output string. Removing the functionsym_escape_string_value()completely as its not needed anymore.Signed-off-by Stefan Roese <[email protected]>Cc Masahiro Yamada <[email protected]>Cc Simon Glass <[email protected]>Quoted 6 lines
---
scripts/kconfig/confdata.c | 20 +++++++++----------- scripts/kconfig/symbol.c | 43 ------------------------------------------- 2 files changed, 9 insertions(+), 54 deletions(-)This looks right to me. But I do see one problem - the default string for
CONFIG_AUTOBOOT_PROMPTappears as:Quoted 6 lines
Quoted 3 lines
"Autoboot in %d secondsn"
so something is still removing the \ in the
Kconfigdefault;Right. Thanks for spotting. I'll fix this in v3.
I could easily change the default string in the
Kconfigfile to "Autoboot in %d seconds\\n". This works. But its a different syntax regarding using the escape character backslash compared to editing the .config file or editing the string in "make menuconfig etc...". So I hesitate to "fix" it this way.
Quoted 6 lines
Unfortunately fixing this issue in the code is not that easy. At least not for me. As the default values of the "string values" are set in the
conf_parse()function (inscripts/kconfig/zconf.y). And I really have absolutely no experience with yacc / bison. Perhaps one of you guys has a quick fix to make this default value of strings compatible again so that this additional '\' is not needed in theKconfigfile?
Well I am familiar with those tools but I think Masahiro probably knows a lot more here.
Regards,
Simon
PATCH 1/4 Kconfig: Enable usage of escape char '\' in string values
Hi, Simon, Stefan,
2015-05-12 7:41 GMT+09:00 Simon Glass <[email protected]>:
Quoted 80 lines
Hi Stefan,
Quoted 70 lines · Stefan Roese
Hi Simon, Hi Masahiro,
Quoted 53 lines · Stefan Roese
Quoted 51 lines · Simon Glass
Quoted 38 lines · Stefan Roese
I might have missed something, but I failed to use the escape char '\' in strings. To pass a printf format string like "foo %d bar\n" via
Kconfigto the code.Right now its not possible to use the escape character '\' in
Kconfigstring values correctly to e.g. set this string value "test output\n". The '\n' will be converted to 'n'.The current implementation removes some of the '\' chars from the input string in
conf_set_sym_val(). Examples:'\' -> '' '\\' -> '\' '\\\' -> '\' '\\\\' -> '\\'...
And then doubles the backslash chars in the output string in
sym_escape_string_value(). Example:'\' -> '' -> '' '\\' -> '\' -> '\\' '\\\' -> '\' -> '\\' '\\\\' -> '\\' -> '\\\\'...
As you see in these examples, its impossible to generate a single '\' charater in the output string as its needed for something like '\n'.
This patch now changes this behavior to not drop some backslashes in
conf_set_sym_val()and to not add new backslashes in the resulting output string. Removing the functionsym_escape_string_value()completely as its not needed anymore.Signed-off-by Stefan Roese <[email protected]>Cc Masahiro Yamada <[email protected]>Cc Simon Glass <[email protected]>Quoted 6 lines
---
scripts/kconfig/confdata.c | 20 +++++++++----------- scripts/kconfig/symbol.c | 43 ------------------------------------------- 2 files changed, 9 insertions(+), 54 deletions(-)This looks right to me. But I do see one problem - the default string for
CONFIG_AUTOBOOT_PROMPTappears as:Quoted 6 lines
Quoted 3 lines
"Autoboot in %d secondsn"
so something is still removing the \ in the
Kconfigdefault;Right. Thanks for spotting. I'll fix this in v3.
I could easily change the default string in the
Kconfigfile to "Autoboot in %d seconds\\n". This works. But its a different syntax regarding using the escape character backslash compared to editing the .config file or editing the string in "make menuconfig etc...". So I hesitate to "fix" it this way.Quoted 6 lines
Unfortunately fixing this issue in the code is not that easy. At least not for me. As the default values of the "string values" are set in the
conf_parse()function (inscripts/kconfig/zconf.y). And I really have absolutely no experience with yacc / bison. Perhaps one of you guys has a quick fix to make this default value of strings compatible again so that this additional '\' is not needed in theKconfigfile?
Quoted 2 lines
Well I am familiar with those tools but I think Masahiro probably knows a lot more here.
I am not so familiar with Bison, and I am getting a bit busy these days. So, I cannot find time to take a close look. Sorry.
If Simon (or someone else) could follow it up, that'd be nice.
BTW, if you have already figured out that conf_parse() is the cause of the problem,
you do not have to invoke Bison.
Bison does not touch the C part.conf_parse() is just copied verbatim from zconf.y to zconf.tab.c_shipped.
You can modify conf_parse() exactly in the same way in both of them.
Signature · 2 lines
Best Regards Masahiro Yamada
PATCH 1/4 Kconfig: Enable usage of escape char '\' in string values
Hi Masahiro,
Quoted 93 lines · Masahiro Yamada
Hi, Simon, Stefan,
2015-05-12 7:41 GMT+09:00 Simon Glass <[email protected]>:
Quoted 80 lines
Hi Stefan,
Quoted 70 lines · Stefan Roese
Hi Simon, Hi Masahiro,
Quoted 53 lines · Stefan Roese
Quoted 51 lines · Simon Glass
Quoted 38 lines · Stefan Roese
I might have missed something, but I failed to use the escape char '\' in strings. To pass a printf format string like "foo %d bar\n" via
Kconfigto the code.Right now its not possible to use the escape character '\' in
Kconfigstring values correctly to e.g. set this string value "test output\n". The '\n' will be converted to 'n'.The current implementation removes some of the '\' chars from the input string in
conf_set_sym_val(). Examples:'\' -> '' '\\' -> '\' '\\\' -> '\' '\\\\' -> '\\'...
And then doubles the backslash chars in the output string in
sym_escape_string_value(). Example:'\' -> '' -> '' '\\' -> '\' -> '\\' '\\\' -> '\' -> '\\' '\\\\' -> '\\' -> '\\\\'...
As you see in these examples, its impossible to generate a single '\' charater in the output string as its needed for something like '\n'.
This patch now changes this behavior to not drop some backslashes in
conf_set_sym_val()and to not add new backslashes in the resulting output string. Removing the functionsym_escape_string_value()completely as its not needed anymore.Signed-off-by Stefan Roese <[email protected]>Cc Masahiro Yamada <[email protected]>Cc Simon Glass <[email protected]>Quoted 6 lines
---
scripts/kconfig/confdata.c | 20 +++++++++----------- scripts/kconfig/symbol.c | 43 ------------------------------------------- 2 files changed, 9 insertions(+), 54 deletions(-)This looks right to me. But I do see one problem - the default string for
CONFIG_AUTOBOOT_PROMPTappears as:Quoted 6 lines
Quoted 3 lines
"Autoboot in %d secondsn"
so something is still removing the \ in the
Kconfigdefault;Right. Thanks for spotting. I'll fix this in v3.
I could easily change the default string in the
Kconfigfile to "Autoboot in %d seconds\\n". This works. But its a different syntax regarding using the escape character backslash compared to editing the .config file or editing the string in "make menuconfig etc...". So I hesitate to "fix" it this way.Quoted 6 lines
Unfortunately fixing this issue in the code is not that easy. At least not for me. As the default values of the "string values" are set in the
conf_parse()function (inscripts/kconfig/zconf.y). And I really have absolutely no experience with yacc / bison. Perhaps one of you guys has a quick fix to make this default value of strings compatible again so that this additional '\' is not needed in theKconfigfile?Quoted 2 lines
Well I am familiar with those tools but I think Masahiro probably knows a lot more here.
I am not so familiar with Bison, and I am getting a bit busy these days. So, I cannot find time to take a close look. Sorry.
If Simon (or someone else) could follow it up, that'd be nice.
Quoted 8 lines
BTW, if you have already figured out that
conf_parse()is the cause of the problem,
you do not have to invoke Bison.Bison does not touch the C part.
conf_parse()is just copied verbatim from zconf.y to zconf.tab.c_shipped.You can modify
conf_parse()exactly in the same way in both of them.
Thanks. Did it and found that zconfparse() is responsible for this default value configuration / parsing. I must be missing something, but I fail to see where this function is really implemented:
$ git grep zconfparse scripts/kconfig/lkc.h:int zconfparse(void); scripts/kconfig/zconf.tab.c_shipped:#define yyparse zconfparse scripts/kconfig/zconf.tab.c_shipped: zconfparse(); scripts/kconfig/zconf.y: zconfparse();
I'm inclined to just add this additional backslash to the default value in Kconfig.
Thanks,
Stefan
PATCH 1/4 Kconfig: Enable usage of escape char '\' in string values
Hi Stefan,
2015-05-15 16:13 GMT+09:00 Stefan Roese <[email protected]>:
Quoted 131 lines
Hi Masahiro,
Quoted 113 lines · Masahiro Yamada
Hi, Simon, Stefan,
2015-05-12 7:41 GMT+09:00 Simon Glass <[email protected]>:
Quoted 98 lines
Hi Stefan,
Quoted 84 lines · Stefan Roese
Hi Simon, Hi Masahiro,
Quoted 60 lines · Stefan Roese
Quoted 57 lines · Simon Glass
Quoted 42 lines · Stefan Roese
I might have missed something, but I failed to use the escape char '\'
in strings. To pass a printf format string like "foo %d bar\n" viaKconfigto the code.Right now its not possible to use the escape character '\' in
Kconfigstring values correctly to e.g. set this string value "test output\n".
The '\n' will be converted to 'n'.The current implementation removes some of the '\' chars from the input
string inconf_set_sym_val(). Examples:'\' -> '' '\\' -> '\' '\\\' -> '\' '\\\\' -> '\\'...
And then doubles the backslash chars in the output string in
sym_escape_string_value(). Example:'\' -> '' -> '' '\\' -> '\' -> '\\' '\\\' -> '\' -> '\\' '\\\\' -> '\\' -> '\\\\'...
As you see in these examples, its impossible to generate a single '\' charater in the output string as its needed for something like '\n'.
This patch now changes this behavior to not drop some backslashes in
conf_set_sym_val()and to not add new backslashes in the resulting output string. Removing the functionsym_escape_string_value()completely as its not needed anymore.Signed-off-by Stefan Roese <[email protected]>Cc Masahiro Yamada <[email protected]>Cc Simon Glass <[email protected]>Quoted 6 lines
---
scripts/kconfig/confdata.c | 20 +++++++++----------- scripts/kconfig/symbol.c | 43 ------------------------------------------- 2 files changed, 9 insertions(+), 54 deletions(-)This looks right to me. But I do see one problem - the default string for
CONFIG_AUTOBOOT_PROMPTappears as:Quoted 7 lines
Quoted 3 lines
"Autoboot in %d secondsn"
so something is still removing the \ in the
Kconfigdefault;Right. Thanks for spotting. I'll fix this in v3.
I could easily change the default string in the
Kconfigfile to "Autoboot in
%d seconds\\n". This works. But its a different syntax regarding using the
escape character backslash compared to editing the .config file or editing
the string in "make menuconfig etc...". So I hesitate to "fix" it this way.Quoted 8 lines
Unfortunately fixing this issue in the code is not that easy. At least not
for me. As the default values of the "string values" are set in theconf_parse()function (inscripts/kconfig/zconf.y). And I really have absolutely no experience with yacc / bison. Perhaps one of you guys has a
quick fix to make this default value of strings compatible again so that this additional '\' is not needed in theKconfigfile?Quoted 2 lines
Well I am familiar with those tools but I think Masahiro probably knows a lot more here.
I am not so familiar with Bison, and I am getting a bit busy these days. So, I cannot find time to take a close look. Sorry.
If Simon (or someone else) could follow it up, that'd be nice.
Quoted 8 lines
BTW, if you have already figured out that
conf_parse()is the cause of the problem,
you do not have to invoke Bison.Bison does not touch the C part.
conf_parse()is just copied verbatim from zconf.y to zconf.tab.c_shipped.You can modify
conf_parse()exactly in the same way in both of them.Thanks. Did it and found that
zconfparse()is responsible for this default value configuration / parsing. I must be missing something, but I fail to see where this function is really implemented:
Quoted 5 lines
$ git grep zconfparse scripts/kconfig/lkc.h:int zconfparse(void); scripts/kconfig/zconf.tab.c_shipped:#define yyparse zconfparse scripts/kconfig/zconf.tab.c_shipped: zconfparse(); scripts/kconfig/zconf.y: zconfparse();
Bison converts zconf.y into zconf.tab.c_shipped
You will notice the following part.
/* Substitute the variable and function names. */
#define yyparse zconfparse
#define yylex zconflex
I think zconfparse was taken from the basename of zconf.y
And then, you will also notice the following part:
/*----------.
| yyparse. |
`----------*/
#ifdef YYPARSE_PARAM
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)int
yyparse (void *YYPARSE_PARAM)
#else
int
yyparse (YYPARSE_PARAM)
void *YYPARSE_PARAM;
#endif
#else /* ! YYPARSE_PARAM */
#if (defined __STDC__ || defined __C99__FUNC__ \
|| defined __cplusplus || defined _MSC_VER)int
yyparse (void)
#else
int
yyparse ()
#endif
#endif
{
int yystate;
/* Number of tokens to shift before error messages enabled. */"yyparse" is replaced with "zconfparse" by the prepreocessor, so this is the implementation of zconfparse(),
and it is the parser generated by Bison.
I think it is almost impossible to read the generated parser directly. Instead, you should read zconf.y, but you need to understand Bison grammer for that...
Signature · 2 lines
Best Regards Masahiro Yamada
PATCH 2/4 autoboot.c: Remove CONFIG_AUTOBOOT_STOP_STR2 and CONFIG_AUTOBOOT_DELAY_STR2
In reply to Stefan RoeseThese defines for a 2nd autoboot stop and delay string are nearly unused. Only sc3 defines CONFIG_AUTOBOOT_DELAY_STR2. And a patch to remove this most likely unmaintained board is also posted to the list.
By removing these defines the code will become cleaner and moving the remaining compile options to Kconfig will get easier.
---
README | 2 -- common/autoboot.c | 14 ++------------ doc/README.autoboot | 10 ---------- 3 files changed, 2 insertions(+), 24 deletions(-)
README +0 -2
@@ -974,8 +974,6 @@ The following options need to be configured: CONFIG_AUTOBOOT_PROMPT CONFIG_AUTOBOOT_DELAY_STR CONFIG_AUTOBOOT_STOP_STR - CONFIG_AUTOBOOT_DELAY_STR2 - CONFIG_AUTOBOOT_STOP_STR2 CONFIG_ZERO_BOOTDELAY_CHECK CONFIG_RESET_TO_RETRY
common/autoboot.c +2 -12
@@ -42,9 +42,7 @@ static int abortboot_keyed(int bootdelay) } delaykey[] = { { .str = getenv("bootdelaykey"), .retry = 1 }, - { .str = getenv("bootdelaykey2"), .retry = 1 }, { .str = getenv("bootstopkey"), .retry = 0 }, - { .str = getenv("bootstopkey2"), .retry = 0 }, }; char presskey[MAX_DELAY_STOP_STR];
@@ -65,17 +63,9 @@ static int abortboot_keyed(int bootdelay)if (delaykey[0 ].str ==NULL ) delaykey[0 ].str =CONFIG_AUTOBOOT_DELAY_STR ;# endif -# ifdef CONFIG_AUTOBOOT_DELAY_STR2 -if (delaykey[1 ].str ==NULL ) - delaykey[1 ].str =CONFIG_AUTOBOOT_DELAY_STR2 ; -# endif # ifdef CONFIG_AUTOBOOT_STOP_STR -if (delaykey[2 ].str ==NULL ) - delaykey[2 ].str =CONFIG_AUTOBOOT_STOP_STR ; -# endif -# ifdef CONFIG_AUTOBOOT_STOP_STR2 -if (delaykey[3 ].str ==NULL ) - delaykey[3 ].str =CONFIG_AUTOBOOT_STOP_STR2 ; +if (delaykey[1 ].str ==NULL ) + delaykey[1 ].str =CONFIG_AUTOBOOT_STOP_STR ;# endif for (i =0 ; i <sizeof (delaykey) /sizeof (delaykey[0 ]); i++) {
doc/README.autoboot +0 -10
@@ -78,13 +78,9 @@ What they do CONFIG_AUTOBOOT_PROMPT CONFIG_AUTOBOOT_DELAY_STR CONFIG_AUTOBOOT_STOP_STR - CONFIG_AUTOBOOT_DELAY_STR2 - CONFIG_AUTOBOOT_STOP_STR2 "bootdelaykey" environment variable "bootstopkey" environment variable - "bootdelaykey2" environment variable - "bootstopkey2" environment variable These options give more control over stopping autoboot. When they are used a specific character or string is required to
@@ -130,12 +126,6 @@ What they do character of a key string does not appear in the rest of the string. - Using the CONFIG_AUTOBOOT_DELAY_STR2 #define or the - "bootdelaykey2" environment variable and/or the - CONFIG_AUTOBOOT_STOP_STR2 #define or the "bootstopkey" - environment variable you can specify a second, alternate - string (which allows you to have two "password" strings). - The CONFIG_AUTOBOOT_KEYED_CTRLC #define allows for the boot sequence to be interrupted by ctrl-c, in addition to the "bootdelaykey" and "bootstopkey". Setting this variable
Signature · 1 line
2.4.0
PATCH 2/4 autoboot.c: Remove CONFIG_AUTOBOOT_STOP_STR2 and CONFIG_AUTOBOOT_DELAY_STR2
Quoted 12 lines · Stefan Roese
These defines for a 2nd autoboot stop and delay string are nearly unused. Only sc3 defines
CONFIG_AUTOBOOT_DELAY_STR2. And a patch to remove this most likely unmaintained board is also posted to the list.By removing these defines the code will become cleaner and moving the remaining compile options to
Kconfigwill get easier.Signed-off-by Stefan Roese <[email protected]>Cc Simon Glass <[email protected]>Cc Wolfgang Denk <[email protected]>Cc Heiko Schocher <[email protected]>
Quoted 6 lines
---
README | 2 -- common/autoboot.c | 14 ++------------ doc/README.autoboot | 10 ---------- 3 files changed, 2 insertions(+), 24 deletions(-)
PATCH 2/4 autoboot.c: Remove CONFIG_AUTOBOOT_STOP_STR2 and CONFIG_AUTOBOOT_DELAY_STR2
In reply to Stefan RoeseQuoted 11 lines · Stefan Roese
These defines for a 2nd autoboot stop and delay string are nearly unused. Only sc3 defines
CONFIG_AUTOBOOT_DELAY_STR2. And a patch to remove this most likely unmaintained board is also posted to the list.By removing these defines the code will become cleaner and moving the remaining compile options to
Kconfigwill get easier.Signed-off-by Stefan Roese <[email protected]>Cc Simon Glass <[email protected]>Cc Wolfgang Denk <[email protected]>Cc Heiko Schocher <[email protected]>
Signature · 8 lines
Tom -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150511/d3ac43d9/attachment.sig>
PATCH 3/4 autoboot.c: Move config options to Kconfig
In reply to Stefan RoeseThis patch moves the following config options to Kconfig:
CONFIG_AUTOBOOT_KEYEDCONFIG_AUTOBOOT_PROMPTCONFIG_AUTOBOOT_DELAY_STRCONFIG_AUTOBOOT_STOP_STRAUTOBOOT_KEYED_CTRLC
---
common/Kconfig | 64 ++++++++++++++++++++++++++++++++ common/autoboot.c | 6 ++- configs/CPCI4052_defconfig | 3 ++ configs/O2DNT2_RAMBOOT_defconfig | 3 ++ configs/O2DNT2_defconfig | 3 ++ configs/PLU405_defconfig | 3 ++ configs/PMC405DE_defconfig | 3 ++ configs/PMC440_defconfig | 3 ++ configs/UCP1020_SPIFLASH_defconfig | 3 ++ configs/UCP1020_defconfig | 3 ++ configs/a4m072_defconfig | 3 ++ configs/atngw100_defconfig | 4 ++ configs/atngw100mkii_defconfig | 4 ++ configs/atstk1002_defconfig | 4 ++ configs/atstk1003_defconfig | 4 ++ configs/atstk1004_defconfig | 4 ++ configs/atstk1006_defconfig | 4 ++ configs/calimain_defconfig | 2 + configs/cpuat91_defconfig | 4 ++ configs/cpuat91_ram_defconfig | 3 ++ configs/digsy_mtc_RAMBOOT_defconfig | 3 ++ configs/digsy_mtc_defconfig | 3 ++ configs/digsy_mtc_rev5_RAMBOOT_defconfig | 3 ++ configs/digsy_mtc_rev5_defconfig | 3 ++ configs/dlvision-10g_defconfig | 2 + configs/draco_defconfig | 3 ++ configs/dxr2_defconfig | 3 ++ configs/favr-32-ezkit_defconfig | 4 ++ configs/gdppc440etx_defconfig | 2 + configs/grasshopper_defconfig | 4 ++ configs/hammerhead_defconfig | 4 ++ configs/highbank_defconfig | 3 ++ configs/hrcon_defconfig | 2 + configs/ids8313_defconfig | 3 ++ configs/intip_defconfig | 2 + configs/io64_defconfig | 2 + configs/io_defconfig | 2 + configs/iocon_defconfig | 2 + configs/ip04_defconfig | 1 + configs/motionpro_defconfig | 3 ++ configs/nokia_rx51_defconfig | 1 + configs/omap3_mvblx_defconfig | 2 + configs/ph1_ld4_defconfig | 4 ++ configs/ph1_pro4_defconfig | 4 ++ configs/ph1_sld8_defconfig | 4 ++ configs/pm9263_defconfig | 1 + configs/pxm2_defconfig | 3 ++ configs/rut_defconfig | 3 ++ configs/spear600_defconfig | 3 ++ configs/stv0991_defconfig | 3 ++ configs/x600_defconfig | 3 ++ configs/zmx25_defconfig | 4 ++ include/configs/CPCI4052.h | 6 --- include/configs/PLU405.h | 9 ----- include/configs/PMC405DE.h | 6 --- include/configs/PMC440.h | 6 --- include/configs/UCP1020.h | 11 ------ include/configs/a4m072.h | 4 -- include/configs/atngw100.h | 10 ----- include/configs/atngw100mkii.h | 10 ----- include/configs/atstk1002.h | 10 ----- include/configs/atstk1003.h | 10 ----- include/configs/atstk1004.h | 10 ----- include/configs/atstk1006.h | 10 ----- include/configs/bf537-stamp.h | 4 -- include/configs/calimain.h | 2 - include/configs/cpuat91.h | 6 --- include/configs/digsy_mtc.h | 4 -- include/configs/dlvision-10g.h | 2 - include/configs/favr-32-ezkit.h | 10 ----- include/configs/gdppc440etx.h | 2 - include/configs/grasshopper.h | 10 ----- include/configs/hammerhead.h | 10 ----- include/configs/highbank.h | 4 +- include/configs/hrcon.h | 2 - include/configs/ids8313.h | 4 -- include/configs/intip.h | 2 - include/configs/io.h | 2 - include/configs/io64.h | 2 - include/configs/iocon.h | 2 - include/configs/ip04.h | 1 - include/configs/motionpro.h | 6 --- include/configs/nokia_rx51.h | 1 - include/configs/o2dnt-common.h | 12 ------ include/configs/omap3_mvblx.h | 2 - include/configs/pm9263.h | 1 - include/configs/siemens-am33x-common.h | 6 --- include/configs/spear-common.h | 4 -- include/configs/stv0991.h | 4 -- include/configs/uniphier.h | 5 --- include/configs/x600.h | 4 -- include/configs/zmx25.h | 4 -- 92 files changed, 219 insertions(+), 220 deletions(-)
common/Kconfig +64 -0
@@ -17,6 +17,70 @@ config SYS_HUSH_PARSER help Backward compatibility. +menu "Autoboot options" + +config AUTOBOOT_KEYED + bool "Stop autobooting via specific input key / string" + default n + help + This option enables stopping (aborting) of the automatic + boot feature only by issuing a specific input key or + string. If not enabled, any input key will abort the + U-Boot automatic booting process and bring the device + to the U-Boot prompt for user input. + +config AUTOBOOT_PROMPT + string "Autoboot stop prompt" + depends on AUTOBOOT_KEYED + default "Autoboot in %d seconds\n" + help + This string is displayed before the boot delay selected by + CONFIG_BOOTDELAY starts. If it is not defined there is no + output indicating that autoboot is in progress. + + Note that this define is used as the (only) argument to a + printf() call, so it may contain '%' format specifications, + provided that it also includes, sepearated by commas exactly + like in a printf statement, the required arguments. It is + the responsibility of the user to select only such arguments + that are valid in the given context. + +config AUTOBOOT_DELAY_STR + string "Delay autobooting via specific input key / string" + depends on AUTOBOOT_KEYED + help + This option delays the automatic boot feature by issuing + a specific input key or string. If CONFIG_AUTOBOOT_DELAY_STR + or the environment variable "bootdelaykey" is specified + and this string is received from console input before + autoboot starts booting, U-Boot gives a command prompt. The + U-Boot prompt will time out if CONFIG_BOOT_RETRY_TIME is + used, otherwise it never times out. + +config AUTOBOOT_STOP_STR + string "Stop autobooting via specific input key / string" + depends on AUTOBOOT_KEYED + help + This option enables stopping (aborting) of the automatic + boot feature only by issuing a specific input key or + string. If CONFIG_AUTOBOOT_STOP_STR or the environment + variable "bootstopkey" is specified and this string is + received from console input before autoboot starts booting, + U-Boot gives a command prompt. The U-Boot prompt never + times out, even if CONFIG_BOOT_RETRY_TIME is used. + +config AUTOBOOT_KEYED_CTRLC + bool "Enable Ctrl-C autoboot interruption" + depends on AUTOBOOT_KEYED + default n + help + This option allows for the boot sequence to be interrupted + by ctrl-c, in addition to the "bootdelaykey" and "bootstopkey". + Setting this variable provides an escape sequence from the + limited "password" strings. + +endmenu + comment "Commands" menu "Info commands"
common/autoboot.c +5 -1
@@ -56,7 +56,11 @@ static int abortboot_keyed(int bootdelay)#endif # ifdef CONFIG_AUTOBOOT_PROMPT -printf (CONFIG_AUTOBOOT_PROMPT ); +/* +* CONFIG_AUTOBOOT_PROMPT includes the %d for all boards. +* To print the bootdelay value upon bootup. +*/ +printf (CONFIG_AUTOBOOT_PROMPT , bootdelay);# endif # ifdef CONFIG_AUTOBOOT_DELAY_STR
configs/CPCI4052_defconfig +3 -0
@@ -1,3 +1,6 @@ CONFIG_PPC=y CONFIG_4xx=y CONFIG_TARGET_CPCI4052=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_STOP_STR=" " +CONFIG_AUTOBOOT_PROMPT="Press SPACE to abort autoboot in %d seconds\n"
configs/O2DNT2_RAMBOOT_defconfig +3 -0
@@ -2,3 +2,6 @@ CONFIG_SYS_EXTRA_OPTIONS="SYS_TEXT_BASE=0x00100000" CONFIG_PPC=y CONFIG_MPC5xxx=y CONFIG_TARGET_O2DNT2=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_STOP_STR="++++++++++" +CONFIG_AUTOBOOT_PROMPT="Autobooting in %d seconds, press password to stop\n"
configs/O2DNT2_defconfig +3 -0
@@ -1,3 +1,6 @@ CONFIG_PPC=y CONFIG_MPC5xxx=y CONFIG_TARGET_O2DNT2=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_STOP_STR="++++++++++" +CONFIG_AUTOBOOT_PROMPT="Autobooting in %d seconds, press password to stop\n"
configs/PLU405_defconfig +3 -0
@@ -1,3 +1,6 @@ CONFIG_PPC=y CONFIG_4xx=y CONFIG_TARGET_PLU405=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_STOP_STR=" " +CONFIG_AUTOBOOT_PROMPT="Press SPACE to abort autoboot in %d seconds\n"
configs/PMC405DE_defconfig +3 -0
@@ -1,3 +1,6 @@ CONFIG_PPC=y CONFIG_4xx=y CONFIG_TARGET_PMC405DE=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_STOP_STR=" " +CONFIG_AUTOBOOT_PROMPT="Press SPACE to abort autoboot in %d seconds\n"
configs/PMC440_defconfig +3 -0
@@ -1,3 +1,6 @@ CONFIG_PPC=y CONFIG_4xx=y CONFIG_TARGET_PMC440=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_STOP_STR=" " +CONFIG_AUTOBOOT_PROMPT="Press SPACE to abort autoboot in %d seconds\n"
configs/UCP1020_SPIFLASH_defconfig +3 -0
@@ -4,3 +4,6 @@ CONFIG_TARGET_UCP1020=y CONFIG_TARGET_UCP1020_SPIFLASH=y CONFIG_SPI_FLASH=y CONFIG_UCP1020=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_PROMPT="Autobooting in %d seconds, press \"<Esc>\" to stop\n" +CONFIG_AUTOBOOT_STOP_STR="\x1b"
configs/UCP1020_defconfig +3 -0
@@ -3,3 +3,6 @@ CONFIG_MPC85xx=y CONFIG_TARGET_UCP1020=y CONFIG_SPI_FLASH=y CONFIG_UCP1020=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_PROMPT="Autobooting in %d seconds, press \"<Esc>\" to stop\n" +CONFIG_AUTOBOOT_STOP_STR="\x1b"
configs/a4m072_defconfig +3 -0
@@ -1,3 +1,6 @@ CONFIG_PPC=y CONFIG_MPC5xxx=y CONFIG_TARGET_A4M072=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_DELAY_STR="asdfg" +CONFIG_AUTOBOOT_PROMPT="autoboot in %d seconds\n"
configs/atngw100_defconfig +4 -0
@@ -1,2 +1,6 @@ CONFIG_AVR32=y CONFIG_TARGET_ATNGW100=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_DELAY_STR="d" +CONFIG_AUTOBOOT_STOP_STR=" " +CONFIG_AUTOBOOT_PROMPT="Press SPACE to abort autoboot in %d seconds\n"
configs/atngw100mkii_defconfig +4 -0
@@ -1,2 +1,6 @@ CONFIG_AVR32=y CONFIG_TARGET_ATNGW100MKII=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_DELAY_STR="d" +CONFIG_AUTOBOOT_STOP_STR=" " +CONFIG_AUTOBOOT_PROMPT="Press SPACE to abort autoboot in %d seconds\n"
configs/atstk1002_defconfig +4 -0
@@ -1,2 +1,6 @@ CONFIG_AVR32=y CONFIG_TARGET_ATSTK1002=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_DELAY_STR="d" +CONFIG_AUTOBOOT_STOP_STR=" " +CONFIG_AUTOBOOT_PROMPT="Press SPACE to abort autoboot in %d seconds\n"
configs/atstk1003_defconfig +4 -0
@@ -1,2 +1,6 @@ CONFIG_AVR32=y CONFIG_TARGET_ATSTK1003=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_DELAY_STR="d" +CONFIG_AUTOBOOT_STOP_STR=" " +CONFIG_AUTOBOOT_PROMPT="Press SPACE to abort autoboot in %d seconds\n"
configs/atstk1004_defconfig +4 -0
@@ -1,2 +1,6 @@ CONFIG_AVR32=y CONFIG_TARGET_ATSTK1004=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_DELAY_STR="d" +CONFIG_AUTOBOOT_STOP_STR=" " +CONFIG_AUTOBOOT_PROMPT="Press SPACE to abort autoboot in %d seconds\n"
configs/atstk1006_defconfig +4 -0
@@ -1,2 +1,6 @@ CONFIG_AVR32=y CONFIG_TARGET_ATSTK1006=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_DELAY_STR="d" +CONFIG_AUTOBOOT_STOP_STR=" " +CONFIG_AUTOBOOT_PROMPT="Press SPACE to abort autoboot in %d seconds\n"
configs/calimain_defconfig +2 -0
@@ -1,3 +1,5 @@ CONFIG_ARM=y CONFIG_ARCH_DAVINCI=y CONFIG_TARGET_CALIMAIN=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_STOP_STR="\x0b"
configs/cpuat91_defconfig +4 -0
@@ -1,3 +1,7 @@ CONFIG_ARM=y CONFIG_ARCH_AT91=y CONFIG_TARGET_CPUAT91=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_DELAY_STR="d" +CONFIG_AUTOBOOT_STOP_STR=" " +CONFIG_AUTOBOOT_PROMPT="Press SPACE to abort autoboot in %d seconds\n"
configs/cpuat91_ram_defconfig +3 -0
@@ -2,3 +2,6 @@ CONFIG_SYS_EXTRA_OPTIONS="RAMBOOT" CONFIG_ARM=y CONFIG_ARCH_AT91=y CONFIG_TARGET_CPUAT91=y +CONFIG_AUTOBOOT_DELAY_STR="d" +CONFIG_AUTOBOOT_STOP_STR=" " +CONFIG_AUTOBOOT_PROMPT="Press SPACE to abort autoboot in %d seconds\n"
configs/digsy_mtc_RAMBOOT_defconfig +3 -0
@@ -2,3 +2,6 @@ CONFIG_SYS_EXTRA_OPTIONS="SYS_TEXT_BASE=0x00100000" CONFIG_PPC=y CONFIG_MPC5xxx=y CONFIG_TARGET_DIGSY_MTC=y +CONFIG_AUTOBOOT_DELAY_STR="d" +CONFIG_AUTOBOOT_STOP_STR=" " +CONFIG_AUTOBOOT_PROMPT="Press SPACE to abort autoboot\n"
configs/digsy_mtc_defconfig +3 -0
@@ -1,3 +1,6 @@ CONFIG_PPC=y CONFIG_MPC5xxx=y CONFIG_TARGET_DIGSY_MTC=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_DELAY_STR=" " +CONFIG_AUTOBOOT_PROMPT="autoboot in %d seconds\n"
configs/digsy_mtc_rev5_RAMBOOT_defconfig +3 -0
@@ -2,3 +2,6 @@ CONFIG_SYS_EXTRA_OPTIONS="SYS_TEXT_BASE=0x00100000,DIGSY_REV5" CONFIG_PPC=y CONFIG_MPC5xxx=y CONFIG_TARGET_DIGSY_MTC=y +CONFIG_AUTOBOOT_DELAY_STR="d" +CONFIG_AUTOBOOT_STOP_STR=" " +CONFIG_AUTOBOOT_PROMPT="Press SPACE to abort autoboot\n"
configs/digsy_mtc_rev5_defconfig +3 -0
@@ -2,3 +2,6 @@ CONFIG_SYS_EXTRA_OPTIONS="DIGSY_REV5" CONFIG_PPC=y CONFIG_MPC5xxx=y CONFIG_TARGET_DIGSY_MTC=y +CONFIG_AUTOBOOT_DELAY_STR="d" +CONFIG_AUTOBOOT_STOP_STR=" " +CONFIG_AUTOBOOT_PROMPT="Press SPACE to abort autoboot\n"
configs/dlvision-10g_defconfig +2 -0
@@ -1,3 +1,5 @@ CONFIG_PPC=y CONFIG_4xx=y CONFIG_TARGET_DLVISION_10G=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_STOP_STR=" "
configs/draco_defconfig +3 -0
@@ -1,3 +1,6 @@ CONFIG_SPL=y CONFIG_ARM=y CONFIG_TARGET_DRACO=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_STOP_STR="\x1b\x1b" +CONFIG_AUTOBOOT_PROMPT="Autobooting in %d seconds, press \"<Esc><Esc>\" to stop\n"
configs/dxr2_defconfig +3 -0
@@ -1,3 +1,6 @@ CONFIG_SPL=y CONFIG_ARM=y CONFIG_TARGET_DXR2=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_STOP_STR="\x1b\x1b" +CONFIG_AUTOBOOT_PROMPT="Autobooting in %d seconds, press \"<Esc><Esc>\" to stop\n"
configs/favr-32-ezkit_defconfig +4 -0
@@ -1,2 +1,6 @@ CONFIG_AVR32=y CONFIG_TARGET_FAVR_32_EZKIT=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_DELAY_STR="d" +CONFIG_AUTOBOOT_STOP_STR=" " +CONFIG_AUTOBOOT_PROMPT="Press SPACE to abort autoboot in %d seconds\n"
configs/gdppc440etx_defconfig +2 -0
@@ -1,3 +1,5 @@ CONFIG_PPC=y CONFIG_4xx=y CONFIG_TARGET_GDPPC440ETX=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_STOP_STR=" "
configs/grasshopper_defconfig +4 -0
@@ -1,2 +1,6 @@ CONFIG_AVR32=y CONFIG_TARGET_GRASSHOPPER=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_DELAY_STR="d" +CONFIG_AUTOBOOT_STOP_STR=" " +CONFIG_AUTOBOOT_PROMPT="Press SPACE to abort autoboot in %d seconds\n"
configs/hammerhead_defconfig +4 -0
@@ -1,2 +1,6 @@ CONFIG_AVR32=y CONFIG_TARGET_HAMMERHEAD=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_DELAY_STR="d" +CONFIG_AUTOBOOT_STOP_STR=" " +CONFIG_AUTOBOOT_PROMPT="Press SPACE to abort autoboot in %d seconds"
configs/highbank_defconfig +3 -0
@@ -1,2 +1,5 @@ CONFIG_ARM=y CONFIG_ARCH_HIGHBANK=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_KEYED_CTRLC=y +CONFIG_AUTOBOOT_PROMPT="Autobooting in %d seconds...\nPress <s> to stop or <d> to delay\n"
configs/hrcon_defconfig +2 -0
@@ -1,3 +1,5 @@ CONFIG_PPC=y CONFIG_MPC83xx=y CONFIG_TARGET_HRCON=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_STOP_STR=" "
configs/ids8313_defconfig +3 -0
@@ -4,3 +4,6 @@ CONFIG_MPC83xx=y CONFIG_FIT=y CONFIG_FIT_SIGNATURE=y CONFIG_TARGET_IDS8313=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_DELAY_STR="ids" +CONFIG_AUTOBOOT_PROMPT="Enter password - autoboot in %d seconds...\n"
configs/intip_defconfig +2 -0
@@ -2,3 +2,5 @@ CONFIG_SYS_EXTRA_OPTIONS="INTIB" CONFIG_PPC=y CONFIG_4xx=y CONFIG_TARGET_INTIP=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_STOP_STR=" "
configs/io64_defconfig +2 -0
@@ -1,3 +1,5 @@ CONFIG_PPC=y CONFIG_4xx=y CONFIG_TARGET_IO64=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_STOP_STR=" "
configs/io_defconfig +2 -0
@@ -1,3 +1,5 @@ CONFIG_PPC=y CONFIG_4xx=y CONFIG_TARGET_IO=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_STOP_STR=" "
configs/iocon_defconfig +2 -0
@@ -1,3 +1,5 @@ CONFIG_PPC=y CONFIG_4xx=y CONFIG_TARGET_IOCON=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_STOP_STR=" "
configs/ip04_defconfig +1 -0
@@ -1,3 +1,4 @@ CONFIG_BLACKFIN=y CONFIG_TARGET_IP04=y CONFIG_CC_OPTIMIZE_LIBS_FOR_SPEED=y +CONFIG_AUTOBOOT_PROMPT="autoboot in %d seconds\n"
configs/motionpro_defconfig +3 -0
@@ -1,3 +1,6 @@ CONFIG_PPC=y CONFIG_MPC5xxx=y CONFIG_TARGET_MOTIONPRO=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_STOP_STR="\x1b\x1b" +CONFIG_AUTOBOOT_PROMPT="Autobooting in %d seconds, press \"<Esc><Esc>\" to stop\n"
configs/nokia_rx51_defconfig +1 -0
@@ -1,3 +1,4 @@ CONFIG_ARM=y CONFIG_OMAP34XX=y CONFIG_TARGET_NOKIA_RX51=y +CONFIG_AUTOBOOT_KEYED=y
configs/omap3_mvblx_defconfig +2 -0
@@ -1,3 +1,5 @@ CONFIG_ARM=y CONFIG_OMAP34XX=y CONFIG_TARGET_OMAP3_MVBLX=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_STOP_STR="S"
configs/ph1_ld4_defconfig +4 -0
@@ -38,3 +38,7 @@ CONFIG_UNIPHIER_SERIAL=y CONFIG_USB=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_STORAGE=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_PROMPT="Press SPACE to abort autoboot in %d seconds\n" +CONFIG_AUTOBOOT_DELAY_STR="d" +CONFIG_AUTOBOOT_STOP_STR=" "
configs/ph1_pro4_defconfig +4 -0
@@ -38,3 +38,7 @@ CONFIG_UNIPHIER_SERIAL=y CONFIG_USB=y CONFIG_USB_XHCI_HCD=y CONFIG_USB_STORAGE=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_PROMPT="Press SPACE to abort autoboot in %d seconds\n" +CONFIG_AUTOBOOT_DELAY_STR="d" +CONFIG_AUTOBOOT_STOP_STR=" "
configs/ph1_sld8_defconfig +4 -0
@@ -38,3 +38,7 @@ CONFIG_UNIPHIER_SERIAL=y CONFIG_USB=y CONFIG_USB_EHCI_HCD=y CONFIG_USB_STORAGE=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_PROMPT="Press SPACE to abort autoboot in %d seconds\n" +CONFIG_AUTOBOOT_DELAY_STR="d" +CONFIG_AUTOBOOT_STOP_STR=" "
configs/pm9263_defconfig +1 -0
@@ -2,3 +2,4 @@ CONFIG_SYS_EXTRA_OPTIONS="AT91SAM9263" CONFIG_ARM=y CONFIG_ARCH_AT91=y CONFIG_TARGET_PM9263=y +CONFIG_AUTOBOOT_PROMPT="autoboot in %d seconds\n"
configs/pxm2_defconfig +3 -0
@@ -1,3 +1,6 @@ CONFIG_SPL=y CONFIG_ARM=y CONFIG_TARGET_PXM2=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_STOP_STR="\x1b\x1b" +CONFIG_AUTOBOOT_PROMPT="Autobooting in %d seconds, press \"<Esc><Esc>\" to stop\n"
configs/rut_defconfig +3 -0
@@ -1,3 +1,6 @@ CONFIG_SPL=y CONFIG_ARM=y CONFIG_TARGET_RUT=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_STOP_STR="\x1b\x1b" +CONFIG_AUTOBOOT_PROMPT="Autobooting in %d seconds, press \"<Esc><Esc>\" to stop\n"
configs/spear600_defconfig +3 -0
@@ -4,3 +4,6 @@ CONFIG_TARGET_SPEAR600=y CONFIG_ETH_DESIGNWARE=y CONFIG_NETDEVICES=y CONFIG_NET=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_PROMPT="Hit SPACE in %d seconds to stop autoboot.\n" +CONFIG_AUTOBOOT_STOP_STR=" "
configs/stv0991_defconfig +3 -0
@@ -5,3 +5,6 @@ CONFIG_SYS_MALLOC_F_LEN=0x2000 CONFIG_ETH_DESIGNWARE=y CONFIG_NETDEVICES=y CONFIG_NET=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_STOP_STR=" " +CONFIG_AUTOBOOT_PROMPT="Hit SPACE in %d seconds to stop autoboot.\n"
configs/x600_defconfig +3 -0
@@ -4,3 +4,6 @@ CONFIG_TARGET_X600=y CONFIG_ETH_DESIGNWARE=y CONFIG_NETDEVICES=y CONFIG_NET=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_PROMPT="Hit SPACE in %d seconds to stop autoboot.\n" +CONFIG_AUTOBOOT_STOP_STR=" "
configs/zmx25_defconfig +4 -0
@@ -1,2 +1,6 @@ CONFIG_ARM=y CONFIG_TARGET_ZMX25=y +CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_PROMPT="boot in %d s\n" +CONFIG_AUTOBOOT_DELAY_STR="delaygs" +CONFIG_AUTOBOOT_STOP_STR="stopgs"
include/configs/CPCI4052.h +0 -6
@@ -141,12 +141,6 @@#define CONFIG_VERSION_VARIABLE 1/* include version env variable */ -#define CONFIG_AUTOBOOT_KEYED 1 -#define CONFIG_AUTOBOOT_PROMPT \ - "Press SPACE to abort autoboot in %d seconds\n", bootdelay -#undef CONFIG_AUTOBOOT_DELAY_STR -#define CONFIG_AUTOBOOT_STOP_STR " " -#define CONFIG_SYS_RX_ETH_BUFFER 16/* use 16 rx buffer on 405 emac */ /*-----------------------------------------------------------------------
include/configs/PLU405.h +0 -9
@@ -138,15 +138,6 @@#define CONFIG_ZERO_BOOTDELAY_CHECK /* check for keypress on bootdelay==0 */ #define CONFIG_BOOTDELAY 3/* autoboot after 3 seconds */ -/* Only interrupt boot if space is pressed */ -/* If a long serial cable is connected but */ -/* other end is dead, garbage will be read */ -#define CONFIG_AUTOBOOT_KEYED 1 -#define CONFIG_AUTOBOOT_PROMPT \ - "Press SPACE to abort autoboot in %d seconds\n", bootdelay -#undef CONFIG_AUTOBOOT_DELAY_STR -#define CONFIG_AUTOBOOT_STOP_STR " " -#define CONFIG_VERSION_VARIABLE 1/* include version env variable */ #define CONFIG_SYS_RX_ETH_BUFFER 16/* use 16 rx buffer on 405 emac */
include/configs/PMC405DE.h +0 -6
@@ -110,12 +110,6 @@#define CONFIG_ZERO_BOOTDELAY_CHECK /* check for keypress on bootdelay==0 */ #define CONFIG_VERSION_VARIABLE 1/* include version env variable */ -#define CONFIG_AUTOBOOT_KEYED 1 -#define CONFIG_AUTOBOOT_PROMPT \ - "Press SPACE to abort autoboot in %d seconds\n", bootdelay -#undef CONFIG_AUTOBOOT_DELAY_STR -#define CONFIG_AUTOBOOT_STOP_STR " " -/* * PCI stuff */
include/configs/PMC440.h +0 -6
@@ -332,12 +332,6 @@#define CONFIG_ZERO_BOOTDELAY_CHECK /* check for keypress on bootdelay==0 */ #define CONFIG_VERSION_VARIABLE 1/* include version env variable */ -#define CONFIG_AUTOBOOT_KEYED 1 -#define CONFIG_AUTOBOOT_PROMPT \ - "Press SPACE to abort autoboot in %d seconds\n", bootdelay -#undef CONFIG_AUTOBOOT_DELAY_STR -#define CONFIG_AUTOBOOT_STOP_STR " " -/*----------------------------------------------------------------------- * PCI stuff *----------------------------------------------------------------------*/
include/configs/UCP1020.h +0 -11
@@ -628,17 +628,6 @@/* default location for tftp and bootm */ #define CONFIG_LOADADDR 1000000 -/* -* Autobooting -*/ -#define CONFIG_AUTOBOOT_KEYED -#define CONFIG_AUTOBOOT_STOP_STR "\x1b" -#define DEBUG_BOOTKEYS 0 -#undef CONFIG_AUTOBOOT_DELAY_STR -#undef CONFIG_BOOTARGS -#define CONFIG_AUTOBOOT_PROMPT "Autobooting in %d seconds, " \ - "press \"<Esc>\" to stop\n", bootdelay -#define CONFIG_BOOTARGS /* the boot command will set bootargs */ #define CONFIG_BAUDRATE 115200
include/configs/a4m072.h +0 -4
@@ -123,10 +123,6 @@#define CONFIG_SYS_AUTOLOAD "n" -#define CONFIG_AUTOBOOT_KEYED -#define CONFIG_AUTOBOOT_PROMPT "autoboot in %d seconds\n", bootdelay -#define CONFIG_AUTOBOOT_DELAY_STR "asdfg" -#undef CONFIG_BOOTARGS#define CONFIG_PREBOOT "run try_update"
include/configs/atngw100.h +0 -10
@@ -59,17 +59,7 @@#define CONFIG_BOOTCOMMAND \ "fsload; bootm" -/* -* Only interrupt autoboot if <space> is pressed. Otherwise, garbage -* data on the serial line may interrupt the boot sequence. -*/ #define CONFIG_BOOTDELAY 1 -#define CONFIG_AUTOBOOT -#define CONFIG_AUTOBOOT_KEYED -#define CONFIG_AUTOBOOT_PROMPT \ - "Press SPACE to abort autoboot in %d seconds\n", bootdelay -#define CONFIG_AUTOBOOT_DELAY_STR "d" -#define CONFIG_AUTOBOOT_STOP_STR " "/* * After booting the board for the first time, new ethernet addresses
include/configs/atngw100mkii.h +0 -10
@@ -82,17 +82,7 @@#define CONFIG_BOOTCOMMAND \ "fsload 0x10400000 /uImage; bootm" -/* -* Only interrupt autoboot if <space> is pressed. Otherwise, garbage -* data on the serial line may interrupt the boot sequence. -*/ #define CONFIG_BOOTDELAY 1 -#define CONFIG_AUTOBOOT -#define CONFIG_AUTOBOOT_KEYED -#define CONFIG_AUTOBOOT_PROMPT \ - "Press SPACE to abort autoboot in %d seconds\n", bootdelay -#define CONFIG_AUTOBOOT_DELAY_STR "d" -#define CONFIG_AUTOBOOT_STOP_STR " "/* * After booting the board for the first time, new ethernet addresses
include/configs/atstk1002.h +0 -10
@@ -79,17 +79,7 @@#define CONFIG_BOOTCOMMAND \ "fsload; bootm $(fileaddr)" -/* -* Only interrupt autoboot if <space> is pressed. Otherwise, garbage -* data on the serial line may interrupt the boot sequence. -*/ #define CONFIG_BOOTDELAY 1 -#define CONFIG_AUTOBOOT -#define CONFIG_AUTOBOOT_KEYED -#define CONFIG_AUTOBOOT_PROMPT \ - "Press SPACE to abort autoboot in %d seconds\n", bootdelay -#define CONFIG_AUTOBOOT_DELAY_STR "d" -#define CONFIG_AUTOBOOT_STOP_STR " "/* * After booting the board for the first time, new ethernet addresses
include/configs/atstk1003.h +0 -10
@@ -79,17 +79,7 @@#define CONFIG_BOOTCOMMAND \ "mmc rescan; ext2load mmc 0:1 0x10400000 /boot/uImage; bootm" -/* -* Only interrupt autoboot if <space> is pressed. Otherwise, garbage -* data on the serial line may interrupt the boot sequence. -*/ #define CONFIG_BOOTDELAY 1 -#define CONFIG_AUTOBOOT -#define CONFIG_AUTOBOOT_KEYED -#define CONFIG_AUTOBOOT_PROMPT \ - "Press SPACE to abort autoboot in %d seconds\n", bootdelay -#define CONFIG_AUTOBOOT_DELAY_STR "d" -#define CONFIG_AUTOBOOT_STOP_STR " "/* * Command line configuration.
include/configs/atstk1004.h +0 -10
@@ -79,17 +79,7 @@#define CONFIG_BOOTCOMMAND \ "mmc rescan; ext2load mmc 0:1 0x10200000 /boot/uImage; bootm" -/* -* Only interrupt autoboot if <space> is pressed. Otherwise, garbage -* data on the serial line may interrupt the boot sequence. -*/ #define CONFIG_BOOTDELAY 1 -#define CONFIG_AUTOBOOT -#define CONFIG_AUTOBOOT_KEYED -#define CONFIG_AUTOBOOT_PROMPT \ - "Press SPACE to abort autoboot in %d seconds\n", bootdelay -#define CONFIG_AUTOBOOT_DELAY_STR "d" -#define CONFIG_AUTOBOOT_STOP_STR " "/* * Command line configuration.
include/configs/atstk1006.h +0 -10
@@ -80,17 +80,7 @@#define CONFIG_BOOTCOMMAND \ "fsload; bootm $(fileaddr)" -/* -* Only interrupt autoboot if <space> is pressed. Otherwise, garbage -* data on the serial line may interrupt the boot sequence. -*/ #define CONFIG_BOOTDELAY 1 -#define CONFIG_AUTOBOOT -#define CONFIG_AUTOBOOT_KEYED -#define CONFIG_AUTOBOOT_PROMPT \ - "Press SPACE to abort autoboot in %d seconds\n", bootdelay -#define CONFIG_AUTOBOOT_DELAY_STR "d" -#define CONFIG_AUTOBOOT_STOP_STR " "/* * After booting the board for the first time, new ethernet addresses
include/configs/bf537-stamp.h +0 -4
@@ -272,10 +272,6 @@/* These are for board tests */ #if 0 #define CONFIG_BOOTCOMMAND "bootldr 0x203f0100" -#define CONFIG_AUTOBOOT_KEYED -#define CONFIG_AUTOBOOT_PROMPT \ - "autoboot in %d seconds: press space to stop\n", bootdelay -#define CONFIG_AUTOBOOT_STOP_STR " "#endif
include/configs/calimain.h +0 -2
@@ -221,8 +221,6 @@#define CONFIG_BOOTDELAY 0#define CONFIG_ZERO_BOOTDELAY_CHECK /* check for keypress on bootdelay==0 */ #define CONFIG_BOOT_RETRY_TIME 60/* continue boot after 60 s inactivity */ -#define CONFIG_AUTOBOOT_KEYED -#define CONFIG_AUTOBOOT_DELAY_STR "\x0d"/* press ENTER to interrupt BOOT */ #define CONFIG_RESET_TO_RETRY /*
include/configs/cpuat91.h +0 -6
@@ -195,12 +195,6 @@#define CONFIG_DEVICE_NULLDEV #define CONFIG_SILENT_CONSOLE -#define CONFIG_AUTOBOOT_KEYED -#define CONFIG_AUTOBOOT_PROMPT \ - "Press SPACE to abort autoboot\n" -#define CONFIG_AUTOBOOT_STOP_STR " " -#define CONFIG_AUTOBOOT_DELAY_STR "d" -#define CONFIG_VERSION_VARIABLE #define MTDIDS_DEFAULT "nor0=physmap-flash.0"
include/configs/digsy_mtc.h +0 -4
@@ -396,10 +396,6 @@#define CONFIG_CMDLINE_EDITING 1#define CONFIG_SYS_HUSH_PARSER -#define CONFIG_AUTOBOOT_KEYED -#define CONFIG_AUTOBOOT_PROMPT "autoboot in %d seconds\n", bootdelay -#define CONFIG_AUTOBOOT_DELAY_STR " " -#define CONFIG_LOOPW 1#define CONFIG_MX_CYCLIC 1#define CONFIG_ZERO_BOOTDELAY_CHECK
include/configs/dlvision-10g.h +0 -2
@@ -29,8 +29,6 @@#define CONFIG_SYS_CLK_FREQ 33333333/* external frequency to pll */ #undef CONFIG_ZERO_BOOTDELAY_CHECK/* ignore keypress on bootdelay==0 */ -#define CONFIG_AUTOBOOT_KEYED /* use key strings to stop autoboot */ -#define CONFIG_AUTOBOOT_STOP_STR " "/* * Configure PLL
include/configs/favr-32-ezkit.h +0 -10
@@ -80,17 +80,7 @@#define CONFIG_BOOTCOMMAND \ "fsload; bootm $(fileaddr)" -/* -* Only interrupt autoboot if <space> is pressed. Otherwise, garbage -* data on the serial line may interrupt the boot sequence. -*/ #define CONFIG_BOOTDELAY 1 -#define CONFIG_AUTOBOOT -#define CONFIG_AUTOBOOT_KEYED -#define CONFIG_AUTOBOOT_PROMPT \ - "Press SPACE to abort autoboot in %d seconds\n", bootdelay -#define CONFIG_AUTOBOOT_DELAY_STR "d" -#define CONFIG_AUTOBOOT_STOP_STR " "/* * After booting the board for the first time, new ethernet addresses
include/configs/gdppc440etx.h +0 -2
@@ -35,8 +35,6 @@#define CONFIG_SYS_GENERIC_BOARD #undef CONFIG_ZERO_BOOTDELAY_CHECK/* ignore keypress on bootdelay==0 */ -#define CONFIG_AUTOBOOT_KEYED /* use key strings to stop autoboot */ -#define CONFIG_AUTOBOOT_STOP_STR " "/* * Base addresses -- Note these are effective addresses where the
include/configs/grasshopper.h +0 -10
@@ -75,17 +75,7 @@#define CONFIG_BAUDRATE 115200 -/* -* Only interrupt autoboot if <space> is pressed. Otherwise, garbage -* data on the serial line may interrupt the boot sequence. -*/ #define CONFIG_BOOTDELAY 1 -#define CONFIG_AUTOBOOT -#define CONFIG_AUTOBOOT_KEYED -#define CONFIG_AUTOBOOT_PROMPT "Press SPACE to abort autoboot in %d" \ - " seconds\n", bootdelay -#define CONFIG_AUTOBOOT_DELAY_STR "d" -#define CONFIG_AUTOBOOT_STOP_STR " "/* * After booting the board for the first time, new ethernet addresses
include/configs/hammerhead.h +0 -10
@@ -60,17 +60,7 @@#define CONFIG_BOOTCOMMAND \ "fsload; bootm" -/* -* Only interrupt autoboot if <space> is pressed. Otherwise, garbage -* data on the serial line may interrupt the boot sequence. -*/ #define CONFIG_BOOTDELAY 1 -#define CONFIG_AUTOBOOT -#define CONFIG_AUTOBOOT_KEYED -#define CONFIG_AUTOBOOT_PROMPT \ - "Press SPACE to abort autoboot in %d seconds\n", bootdelay -#define CONFIG_AUTOBOOT_DELAY_STR "d" -#define CONFIG_AUTOBOOT_STOP_STR " "/* * After booting the board for the first time, new ethernet address
include/configs/highbank.h +1 -3
@@ -63,9 +63,7 @@#define CONFIG_BOOT_RETRY_TIME -1#define CONFIG_RESET_TO_RETRY -#define CONFIG_AUTOBOOT_KEYED -#define CONFIG_AUTOBOOT_PROMPT "Autobooting in %d seconds...\nPress <s> to stop or <d> to delay\n", bootdelay -#define CONFIG_AUTOBOOT_KEYED_CTRLC +/* * Miscellaneous configurable options */
include/configs/hrcon.h +0 -2
@@ -491,8 +491,6 @@ int fpga_gpio_get(unsigned int bus, int pin);#define CONFIG_SYS_HZ 1000/* decrementer freq: 1ms ticks */ #undef CONFIG_ZERO_BOOTDELAY_CHECK/* ignore keypress on bootdelay==0 */ -#define CONFIG_AUTOBOOT_KEYED /* use key strings to stop autoboot */ -#define CONFIG_AUTOBOOT_STOP_STR " "#define CONFIG_SYS_CBSIZE 1024/* Console I/O Buffer Size */
include/configs/ids8313.h +0 -4
@@ -25,10 +25,6 @@#define CONFIG_MISC_INIT_R -#define CONFIG_AUTOBOOT_KEYED -#define CONFIG_AUTOBOOT_PROMPT \ - "\nEnter password - autoboot in %d seconds...\n", CONFIG_BOOTDELAY -#define CONFIG_AUTOBOOT_DELAY_STR "ids"#define CONFIG_BOOT_RETRY_TIME 900#define CONFIG_BOOT_RETRY_MIN 30#define CONFIG_BOOTDELAY 1
include/configs/intip.h +0 -2
@@ -51,8 +51,6 @@#define CFG_ALT_MEMTEST #undef CONFIG_ZERO_BOOTDELAY_CHECK/* ignore keypress on bootdelay==0 */ -#define CONFIG_AUTOBOOT_KEYED /* use key strings to stop autoboot */ -#define CONFIG_AUTOBOOT_STOP_STR " "/* * Base addresses -- Note these are effective addresses where the
include/configs/io.h +0 -2
@@ -35,8 +35,6 @@#define PLLMR1_DEFAULT PLLMR1_266_133_66#undef CONFIG_ZERO_BOOTDELAY_CHECK/* ignore keypress on bootdelay==0 */ -#define CONFIG_AUTOBOOT_KEYED /* use key strings to stop autoboot */ -#define CONFIG_AUTOBOOT_STOP_STR " "/* new uImage format support */ #define CONFIG_FIT
include/configs/io64.h +0 -2
@@ -46,8 +46,6 @@#define CONFIG_SYS_GENERIC_BOARD #undef CONFIG_ZERO_BOOTDELAY_CHECK/* ignore keypress on bootdelay==0 */ -#define CONFIG_AUTOBOOT_KEYED /* use key strings to stop autoboot */ -#define CONFIG_AUTOBOOT_STOP_STR " "/* new uImage format support */ #define CONFIG_FIT
include/configs/iocon.h +0 -2
@@ -34,8 +34,6 @@#define PLLMR1_DEFAULT PLLMR1_266_133_66#undef CONFIG_ZERO_BOOTDELAY_CHECK/* ignore keypress on bootdelay==0 */ -#define CONFIG_AUTOBOOT_KEYED /* use key strings to stop autoboot */ -#define CONFIG_AUTOBOOT_STOP_STR " "/* new uImage format support */ #define CONFIG_FIT
include/configs/ip04.h +0 -1
@@ -138,7 +138,6 @@/* Enable this if bootretry required; currently it's disabled */ #define CONFIG_BOOT_RETRY_TIME -1#define CONFIG_BOOTCOMMAND "run nandboot" -#define CONFIG_AUTOBOOT_PROMPT "autoboot in %d seconds\n"/*
include/configs/motionpro.h +0 -6
@@ -73,13 +73,7 @@* Autobooting */ #define CONFIG_BOOTDELAY 2/* autoboot after 2 seconds */ -#define CONFIG_AUTOBOOT_KEYED -#define CONFIG_AUTOBOOT_STOP_STR "\x1b\x1b" -#define DEBUG_BOOTKEYS 0 -#undef CONFIG_AUTOBOOT_DELAY_STR#undef CONFIG_BOOTARGS -#define CONFIG_AUTOBOOT_PROMPT "Autobooting in %d seconds, " \ - "press \"<Esc><Esc>\" to stop\n", bootdelay#define CONFIG_CMDLINE_EDITING 1/* add command line history */ #define CONFIG_SYS_HUSH_PARSER 1/* use "hush" command parser */
include/configs/nokia_rx51.h +0 -1
@@ -397,7 +397,6 @@ int rx51_kp_getc(struct stdio_dev *sdev); "echo"#define CONFIG_BOOTDELAY 30 -#define CONFIG_AUTOBOOT_KEYED #define CONFIG_MENU #define CONFIG_MENU_SHOW
include/configs/o2dnt-common.h +0 -12
@@ -98,18 +98,6 @@#error "CONFIG_SYS_TEXT_BASE value is invalid"#endif -/* -* Autobooting -* Be selective on what keys can delay or stop the autoboot process -* To stop use: "++++++++++" -*/ -#define CONFIG_AUTOBOOT_KEYED -#define CONFIG_AUTOBOOT_PROMPT "Autobooting in %d seconds, " \ - "press password to stop\n", bootdelay -#define CONFIG_AUTOBOOT_STOP_STR "++++++++++" -#undef CONFIG_AUTOBOOT_DELAY_STR -#define DEBUG_BOOTKEYS 0 -#define CONFIG_BOOTDELAY 5/* autoboot after 5 seconds */ #define CONFIG_PREBOOT "run master"
include/configs/omap3_mvblx.h +0 -2
@@ -145,8 +145,6 @@#undef CONFIG_ENV_OVERWRITE/* disallow overwriting serial# and ethaddr */ #define CONFIG_BOOTDELAY 0#define CONFIG_ZERO_BOOTDELAY_CHECK -#define CONFIG_AUTOBOOT_KEYED -#define CONFIG_AUTOBOOT_STOP_STR "S"#define CONFIG_EXTRA_ENV_SETTINGS \ "silent=true\0" \
include/configs/pm9263.h +0 -1
@@ -339,7 +339,6 @@#define CONFIG_BOOTCOMMAND "run flashboot"#define CONFIG_ROOTPATH "/ronetix/rootfs" -#define CONFIG_AUTOBOOT_PROMPT "autoboot in %d seconds\n", bootdelay#define CONFIG_CON_ROT "fbcon=rotate:3 "#define CONFIG_BOOTARGS "root=/dev/mtdblock4 rootfstype=jffs2 "\
include/configs/siemens-am33x-common.h +0 -6
@@ -478,12 +478,6 @@/* Watchdog */ #define CONFIG_HW_WATCHDOG -/* Stop autoboot with ESC ESC key detected */ -#define CONFIG_AUTOBOOT_KEYED -#define CONFIG_AUTOBOOT_STOP_STR "\x1b\x1b" -#define CONFIG_AUTOBOOT_PROMPT "Autobooting in %d seconds, " \ - "press \"<Esc><Esc>\" to stop\n", bootdelay -/* Reboot after 60 sec if bootcmd fails */ #define CONFIG_RESET_TO_RETRY #define CONFIG_BOOT_RETRY_TIME 60
include/configs/spear-common.h +0 -4
@@ -202,10 +202,6 @@#define CONFIG_SETUP_MEMORY_TAGS #define CONFIG_MISC_INIT_R #define CONFIG_ZERO_BOOTDELAY_CHECK -#define CONFIG_AUTOBOOT_KEYED -#define CONFIG_AUTOBOOT_STOP_STR " " -#define CONFIG_AUTOBOOT_PROMPT \ - "Hit SPACE in %d seconds to stop autoboot.\n", bootdelay#define CONFIG_SYS_MEMTEST_START 0x00800000#define CONFIG_SYS_MEMTEST_END 0x04000000
include/configs/stv0991.h +0 -4
@@ -75,9 +75,5 @@#define CONFIG_BOOTDELAY 3#define CONFIG_BOOTCOMMAND "go 0x40040000" -#define CONFIG_AUTOBOOT_KEYED -#define CONFIG_AUTOBOOT_STOP_STR " " -#define CONFIG_AUTOBOOT_PROMPT \ - "Hit SPACE in %d seconds to stop autoboot.\n", bootdelay#endif /* __CONFIG_H */
include/configs/uniphier.h +0 -5
@@ -200,11 +200,6 @@#define CONFIG_BOOTDELAY 3#define CONFIG_ZERO_BOOTDELAY_CHECK /* check for keypress on bootdelay==0 */ -#define CONFIG_AUTOBOOT_KEYED 1 -#define CONFIG_AUTOBOOT_PROMPT \ - "Press SPACE to abort autoboot in %d seconds\n", bootdelay -#define CONFIG_AUTOBOOT_DELAY_STR "d" -#define CONFIG_AUTOBOOT_STOP_STR " "/* * Network Configuration
include/configs/x600.h +0 -4
@@ -153,10 +153,6 @@#define CONFIG_LOOPW /* enable loopw command */ #define CONFIG_MX_CYCLIC /* enable mdc/mwc commands */ #define CONFIG_ZERO_BOOTDELAY_CHECK -#define CONFIG_AUTOBOOT_KEYED -#define CONFIG_AUTOBOOT_STOP_STR " " -#define CONFIG_AUTOBOOT_PROMPT \ - "Hit SPACE in %d seconds to stop autoboot.\n", bootdelay#define CONFIG_SYS_MEMTEST_START 0x00800000#define CONFIG_SYS_MEMTEST_END 0x04000000
include/configs/zmx25.h +0 -4
@@ -151,10 +151,6 @@#define CONFIG_PREBOOT ""#define CONFIG_BOOTDELAY 5 -#define CONFIG_AUTOBOOT_KEYED -#define CONFIG_AUTOBOOT_PROMPT "boot in %d s\n", bootdelay -#define CONFIG_AUTOBOOT_DELAY_STR "delaygs" -#define CONFIG_AUTOBOOT_STOP_STR "stopgs"/* * Size of malloc() pool
Signature · 1 line
2.4.0
PATCH 3/4 autoboot.c: Move config options to Kconfig
Hi Stefan,
Quoted 121 lines · Stefan Roese
This patch moves the following config options to
Kconfig:
CONFIG_AUTOBOOT_KEYEDCONFIG_AUTOBOOT_PROMPTCONFIG_AUTOBOOT_DELAY_STRCONFIG_AUTOBOOT_STOP_STRAUTOBOOT_KEYED_CTRLCSigned-off-by Stefan Roese <[email protected]>Cc Masahiro Yamada <[email protected]>Cc Simon Glass <[email protected]>---
common/Kconfig | 64 ++++++++++++++++++++++++++++++++ common/autoboot.c | 6 ++- configs/CPCI4052_defconfig | 3 ++ configs/O2DNT2_RAMBOOT_defconfig | 3 ++ configs/O2DNT2_defconfig | 3 ++ configs/PLU405_defconfig | 3 ++ configs/PMC405DE_defconfig | 3 ++ configs/PMC440_defconfig | 3 ++ configs/UCP1020_SPIFLASH_defconfig | 3 ++ configs/UCP1020_defconfig | 3 ++ configs/a4m072_defconfig | 3 ++ configs/atngw100_defconfig | 4 ++ configs/atngw100mkii_defconfig | 4 ++ configs/atstk1002_defconfig | 4 ++ configs/atstk1003_defconfig | 4 ++ configs/atstk1004_defconfig | 4 ++ configs/atstk1006_defconfig | 4 ++ configs/calimain_defconfig | 2 + configs/cpuat91_defconfig | 4 ++ configs/cpuat91_ram_defconfig | 3 ++ configs/digsy_mtc_RAMBOOT_defconfig | 3 ++ configs/digsy_mtc_defconfig | 3 ++ configs/digsy_mtc_rev5_RAMBOOT_defconfig | 3 ++ configs/digsy_mtc_rev5_defconfig | 3 ++ configs/dlvision-10g_defconfig | 2 + configs/draco_defconfig | 3 ++ configs/dxr2_defconfig | 3 ++ configs/favr-32-ezkit_defconfig | 4 ++ configs/gdppc440etx_defconfig | 2 + configs/grasshopper_defconfig | 4 ++ configs/hammerhead_defconfig | 4 ++ configs/highbank_defconfig | 3 ++ configs/hrcon_defconfig | 2 + configs/ids8313_defconfig | 3 ++ configs/intip_defconfig | 2 + configs/io64_defconfig | 2 + configs/io_defconfig | 2 + configs/iocon_defconfig | 2 + configs/ip04_defconfig | 1 + configs/motionpro_defconfig | 3 ++ configs/nokia_rx51_defconfig | 1 + configs/omap3_mvblx_defconfig | 2 + configs/ph1_ld4_defconfig | 4 ++ configs/ph1_pro4_defconfig | 4 ++ configs/ph1_sld8_defconfig | 4 ++ configs/pm9263_defconfig | 1 + configs/pxm2_defconfig | 3 ++ configs/rut_defconfig | 3 ++ configs/spear600_defconfig | 3 ++ configs/stv0991_defconfig | 3 ++ configs/x600_defconfig | 3 ++ configs/zmx25_defconfig | 4 ++ include/configs/CPCI4052.h | 6 --- include/configs/PLU405.h | 9 ----- include/configs/PMC405DE.h | 6 --- include/configs/PMC440.h | 6 --- include/configs/UCP1020.h | 11 ------ include/configs/a4m072.h | 4 -- include/configs/atngw100.h | 10 ----- include/configs/atngw100mkii.h | 10 ----- include/configs/atstk1002.h | 10 ----- include/configs/atstk1003.h | 10 ----- include/configs/atstk1004.h | 10 ----- include/configs/atstk1006.h | 10 ----- include/configs/bf537-stamp.h | 4 -- include/configs/calimain.h | 2 - include/configs/cpuat91.h | 6 --- include/configs/digsy_mtc.h | 4 -- include/configs/dlvision-10g.h | 2 - include/configs/favr-32-ezkit.h | 10 ----- include/configs/gdppc440etx.h | 2 - include/configs/grasshopper.h | 10 ----- include/configs/hammerhead.h | 10 ----- include/configs/highbank.h | 4 +- include/configs/hrcon.h | 2 - include/configs/ids8313.h | 4 -- include/configs/intip.h | 2 - include/configs/io.h | 2 - include/configs/io64.h | 2 - include/configs/iocon.h | 2 - include/configs/ip04.h | 1 - include/configs/motionpro.h | 6 --- include/configs/nokia_rx51.h | 1 - include/configs/o2dnt-common.h | 12 ------ include/configs/omap3_mvblx.h | 2 - include/configs/pm9263.h | 1 - include/configs/siemens-am33x-common.h | 6 --- include/configs/spear-common.h | 4 -- include/configs/stv0991.h | 4 -- include/configs/uniphier.h | 5 --- include/configs/x600.h | 4 -- include/configs/zmx25.h | 4 -- 92 files changed, 219 insertions(+), 220 deletions(-)common/Kconfig +6
-0@@ -17,6 +17,70 @@ config SYS_HUSH_PARSER help Backward compatibility. +menu "Autoboot options" + +config AUTOBOOT_KEYED + bool "Stop autobooting via specific input key / string" + default n + help
common/Kconfig config SYS_HUSH_PARSER · line 35
Quoted 10 lines
common/Kconfig +10
-0+ This option enables stopping (aborting) of the automatic + boot feature only by issuing a specific input key or + string. If not enabled, any input key will abort the + U-Boot automatic booting process and bring the device + to the U-Boot prompt for user input. + +config AUTOBOOT_PROMPT + string "Autoboot stop prompt" + depends on AUTOBOOT_KEYED + default "Autoboot in %d seconds\n"
Doesn't this mean that the autoboot message will always be printed? I wonder if we need a separate 'AUTOBOOT' to enable the feature?
[snip]
Regards,
Simon
PATCH 3/4 autoboot.c: Move config options to Kconfig
Hi Stefan,
2015-05-08 8:51 GMT+09:00 Simon Glass <[email protected]>:
Quoted 14 lines
Hi Stefan,
Quoted 11 lines · Stefan Roese
This patch moves the following config options to
Kconfig:
CONFIG_AUTOBOOT_KEYEDCONFIG_AUTOBOOT_PROMPTCONFIG_AUTOBOOT_DELAY_STRCONFIG_AUTOBOOT_STOP_STRAUTOBOOT_KEYED_CTRLCSigned-off-by Stefan Roese <[email protected]>Cc Masahiro Yamada <[email protected]>Cc Simon Glass <[email protected]>
Thanks for working on a task requiring much effort.
I am just wondering if we need not move the prompt messages verbatim to Kconfig.
I know CONFIG_AUTOBOOT_PROMPT provides us the best flexibility, but the messages are most likely "autoboot in %d seconds" or "Press ...".
Can we put the message directly into common/autoboot.c like this?
#ifdef CONFIG_SHOW_AUTOBOOT_PROMPT
printf("Autoboot in %d seconds\n", CONFIG_BOOTDELAY);
printf("Press %c to abort in %d seconds\n", CONFIG_AUTOBOOT_STOP_STR);#endif
I think I am missing some things here:
- Those boards that require a password do not want to show it
- We need to convert " " to user-visible "<SPACE>" ifCONFIG_AUTOBOOT_STOP_STP == " "
Any ideas?
Signature · 2 lines
Best Regards Masahiro Yamada
PATCH 3/4 autoboot.c: Move config options to Kconfig
Hi Masahiro,
Quoted 12 lines · Masahiro Yamada
2015-05-08 8:51 GMT+09:00 Simon Glass <[email protected]>:
Quoted 11 lines
Hi Stefan,
Quoted 8 lines · Stefan Roese
This patch moves the following config options to
Kconfig:
CONFIG_AUTOBOOT_KEYEDCONFIG_AUTOBOOT_PROMPTCONFIG_AUTOBOOT_DELAY_STRCONFIG_AUTOBOOT_STOP_STRAUTOBOOT_KEYED_CTRLC
Quoted 6 lines
Quoted 3 lines
Quoted 3 lines
Signed-off-by Stefan Roese <[email protected]>Cc Masahiro Yamada <[email protected]>Cc Simon Glass <[email protected]>Thanks for working on a task requiring much effort.
Yes. I really admire you for all your hard work on this. Now that I've done a tiny bit here as well. ;)
Quoted 13 lines
I am just wondering if we need not move the prompt messages verbatim to
Kconfig.I know
CONFIG_AUTOBOOT_PROMPTprovides us the best flexibility, but the messages are most likely "autoboot in %d seconds" or "Press ...".Can we put the message directly into
common/autoboot.clike this?#ifdef CONFIG_SHOW_AUTOBOOT_PROMPT printf("Autoboot in %d seconds\n", CONFIG_BOOTDELAY); printf("Press %c to abort in %d seconds\n", CONFIG_AUTOBOOT_STOP_STR); #endif
Quoted 7 lines
I think I am missing some things here:
- Those boards that require a password do not want to show it
- We need to convert " " to user-visible "<SPACE>" ifCONFIG_AUTOBOOT_STOP_STP== " "Any ideas?
Unfortunately not all boards print such a message. There is quite a range of alternatives, I'm afraid. Some boards use CONFIG_AUTOBOOT_STOP_STR, some CONFIG_AUTOBOOT_DELAY_STR. Some print this string / char, some don't. So we can't really convert them all into such a generic implementation. Without breaking backward (user) compatibility. At least I don't see such a way.
Thanks,
Stefan
PATCH 3/4 autoboot.c: Move config options to Kconfig
In reply to Simon GlassHi Simon,
Quoted 14 lines · Simon Glass
Quoted 13 lines · Stefan Roese
This patch moves the following config options to
Kconfig:
CONFIG_AUTOBOOT_KEYEDCONFIG_AUTOBOOT_PROMPTCONFIG_AUTOBOOT_DELAY_STRCONFIG_AUTOBOOT_STOP_STRAUTOBOOT_KEYED_CTRLCSigned-off-by Stefan Roese <[email protected]>Cc Masahiro Yamada <[email protected]>Cc Simon Glass <[email protected]>---
<snip>
Quoted 19 lines
Quoted 19 lines
common/Kconfig +11
-0@@ -17,6 +17,70 @@ config SYS_HUSH_PARSER help Backward compatibility. +menu "Autoboot options" + +config AUTOBOOT_KEYED + bool "Stop autobooting via specific input key / string" + default n + help + This option enables stopping (aborting) of the automatic + boot feature only by issuing a specific input key or + string. If not enabled, any input key will abort the + U-Boot automatic booting process and bring the device + to the U-Boot prompt for user input.
Quoted 8 lines
common/Kconfig config SYS_HUSH_PARSER · line 35
Quoted 5 lines
common/Kconfig +5
-0+ +config AUTOBOOT_PROMPT + string "Autoboot stop prompt" + depends on AUTOBOOT_KEYED + default "Autoboot in %d seconds\n"Doesn't this mean that the autoboot message will always be printed? I wonder if we need a separate 'AUTOBOOT' to enable the feature?
AUTOBOOT_PROMPT is enabled now via AUTOBOOT_KEYED. Most boards don't enable this option, so nothing is changed for those boards.
Thanks,
Stefan
PATCH 3/4 autoboot.c: Move config options to Kconfig
Quoted 53 lines · Stefan Roese
Hi Simon,
Quoted 16 lines · Simon Glass
Quoted 14 lines · Stefan Roese
This patch moves the following config options to
Kconfig:
CONFIG_AUTOBOOT_KEYEDCONFIG_AUTOBOOT_PROMPTCONFIG_AUTOBOOT_DELAY_STRCONFIG_AUTOBOOT_STOP_STRAUTOBOOT_KEYED_CTRLCSigned-off-by Stefan Roese <[email protected]>Cc Masahiro Yamada <[email protected]>Cc Simon Glass <[email protected]>---
<snip>
Quoted 20 lines
Quoted 20 lines
common/Kconfig +12
-0@@ -17,6 +17,70 @@ config SYS_HUSH_PARSER help Backward compatibility. +menu "Autoboot options" + +config AUTOBOOT_KEYED + bool "Stop autobooting via specific input key / string" + default n + help + This option enables stopping (aborting) of the automatic + boot feature only by issuing a specific input key or + string. If not enabled, any input key will abort the + U-Boot automatic booting process and bring the device + to the U-Boot prompt for user input. +Quoted 8 lines
common/Kconfig config SYS_HUSH_PARSER · line 35
Quoted 4 lines
common/Kconfig +4
-0+config AUTOBOOT_PROMPT + string "Autoboot stop prompt" + depends on AUTOBOOT_KEYED + default "Autoboot in %d seconds\n"Doesn't this mean that the autoboot message will always be printed? I wonder if we need a separate 'AUTOBOOT' to enable the feature?
Quoted 2 lines
AUTOBOOT_PROMPTis enabled now viaAUTOBOOT_KEYED. Most boards don't enable this option, so nothing is changed for those boards.
Thanks.
PATCH 4/4 autoboot.c: Add feature to stop autobooting via SHA256 encrypted password
In reply to Stefan RoeseThis patch adds the feature to only stop the autobooting, and therefor boot into the U-Boot prompt, when the input string / password matches a values that is encypted via a SHA256 hash and saved in the environment.
This feature is enabled by defined these config options:
CONFIG_AUTOBOOT_KEYED CONFIG_AUTOBOOT_STOP_STR_SHA256
---
common/Kconfig | 20 ++++++++-- common/autoboot.c | 112 +++++++++++++++++++++++++++++++++++++++++++----------- 2 files changed, 107 insertions(+), 25 deletions(-)
common/Kconfig +17 -3
@@ -45,9 +45,14 @@ config AUTOBOOT_PROMPT the responsibility of the user to select only such arguments that are valid in the given context. +config AUTOBOOT_ENCRYPTION + bool "Enable encryption in autoboot stopping" + depends on AUTOBOOT_KEYED + default n + config AUTOBOOT_DELAY_STR string "Delay autobooting via specific input key / string" - depends on AUTOBOOT_KEYED + depends on AUTOBOOT_KEYED && !AUTOBOOT_ENCRYPTION help This option delays the automatic boot feature by issuing a specific input key or string. If CONFIG_AUTOBOOT_DELAY_STR
@@ -59,7 +64,7 @@ config AUTOBOOT_DELAY_STR config AUTOBOOT_STOP_STR string "Stop autobooting via specific input key / string" - depends on AUTOBOOT_KEYED + depends on AUTOBOOT_KEYED && !AUTOBOOT_ENCRYPTION help This option enables stopping (aborting) of the automatic boot feature only by issuing a specific input key or
@@ -71,7 +76,7 @@ config AUTOBOOT_STOP_STR config AUTOBOOT_KEYED_CTRLC bool "Enable Ctrl-C autoboot interruption" - depends on AUTOBOOT_KEYED + depends on AUTOBOOT_KEYED && !AUTOBOOT_ENCRYPTION default n help This option allows for the boot sequence to be interrupted
@@ -79,6 +84,15 @@ config AUTOBOOT_KEYED_CTRLC Setting this variable provides an escape sequence from the limited "password" strings. +config AUTOBOOT_STOP_STR_SHA256 + bool "Stop autobooting via SHA256 encrypted password" + depends on AUTOBOOT_KEYED && AUTOBOOT_ENCRYPTION + help + This option adds the feature to only stop the autobooting, + and therefore boot into the U-Boot prompt, when the input + string / password matches a values that is encypted via + a SHA256 hash and saved in the environment. + endmenu comment "Commands"
common/autoboot.c +90 -22
150 lines not on this page · raw message
Signature · 1 line
2.4.0
PATCH 4/4 autoboot.c: Add feature to stop autobooting via SHA256 encrypted password
Hi Stefan
Quoted 28 lines · Stefan Roese
This patch adds the feature to only stop the autobooting, and therefor boot into the U-Boot prompt, when the input string / password matches a values that is encypted via a SHA256 hash and saved in the environment.
This feature is enabled by defined these config options:
CONFIG_AUTOBOOT_KEYEDCONFIG_AUTOBOOT_STOP_STR_SHA256common/autoboot.c +20
-0+/* +* Generate the binary value from the environment hash value +* so that we can compare this value with the computed hash +* from the user input +*/ +for (i =0 ; i <SHA256_SUM_LEN ; i++) { +char chr[3 ]; + +strncpy (chr, &sha_env_str[i *2 ],2 ); + sha_env[i] =simple_strtoul (chr,NULL ,16 ); + } + +/* +* We don't know how long the stop-string is, so we need to +* generate the sha256 hash upon each input character and +* compare the value with the one saved in the environment +*/ + do { + if (tstc()) { + presskey[presskey_len++] = getc();
common/autoboot.c DECLARE_GLOBAL_DATA_PTR; · line 74
Quoted 10 lines
common/autoboot.c +10
-0+ +/* Calculate sha256 upon each new char */ +sha256_csum_wd ((unsigned char *)presskey, presskey_len, + sha,CHUNKSZ_SHA256 ); + +/* And check if sha matches saved value in env */ +if (memcmp (sha, sha_env,SHA256_SUM_LEN ) ==0 ) + abort =1 ; + } + }while (!abort &&get_ticks () <= etime);
I don't know what the security requirements are for this feature, i.e. what strength the mechanism should have but:
1. Simply hashing the password is not recommended, a long salt (generated by a good random number generator) should be pre-pended to the passphrase before hashing. See [1]
2. Using memcmp() is not recommended for the above comparison. See [1] (SlowEqual example).
3. I haven't looked closely@the code above but it looks to me that there is no check that the stop-string entered by the user/attacker fits the presskey buffer. I.e. a buffer overflow attack might be possible.
[1] https://crackstation.net/hashing-security.htm
Regards, Magnus
PATCH v2 4/4 autoboot.c: Add feature to stop autobooting via SHA256 encrypted password
In reply to Stefan RoeseThis patch adds the feature to only stop the autobooting, and therefor boot into the U-Boot prompt, when the input string / password matches a values that is encypted via a SHA256 hash and saved in the environment.
This feature is enabled by defined these config options:
CONFIG_AUTOBOOT_KEYED CONFIG_AUTOBOOT_STOP_STR_SHA256
---
v2:
- AUTOBOOT_STOP_STR_SHA256 is a string and not bool
- Add input key length check as suggested by Magnus
- Add "constant-length" time compare function as suggested by Magnus
common/Kconfig | 20 +++++++-- common/autoboot.c | 132 +++++++++++++++++++++++++++++++++++++++++++++--------- 2 files changed, 128 insertions(+), 24 deletions(-)
common/Kconfig +17 -3
@@ -45,9 +45,14 @@ config AUTOBOOT_PROMPT the responsibility of the user to select only such arguments that are valid in the given context. +config AUTOBOOT_ENCRYPTION + bool "Enable encryption in autoboot stopping" + depends on AUTOBOOT_KEYED + default n + config AUTOBOOT_DELAY_STR string "Delay autobooting via specific input key / string" - depends on AUTOBOOT_KEYED + depends on AUTOBOOT_KEYED && !AUTOBOOT_ENCRYPTION help This option delays the automatic boot feature by issuing a specific input key or string. If CONFIG_AUTOBOOT_DELAY_STR
@@ -59,7 +64,7 @@ config AUTOBOOT_DELAY_STR config AUTOBOOT_STOP_STR string "Stop autobooting via specific input key / string" - depends on AUTOBOOT_KEYED + depends on AUTOBOOT_KEYED && !AUTOBOOT_ENCRYPTION help This option enables stopping (aborting) of the automatic boot feature only by issuing a specific input key or
@@ -71,7 +76,7 @@ config AUTOBOOT_STOP_STR config AUTOBOOT_KEYED_CTRLC bool "Enable Ctrl-C autoboot interruption" - depends on AUTOBOOT_KEYED + depends on AUTOBOOT_KEYED && !AUTOBOOT_ENCRYPTION default n help This option allows for the boot sequence to be interrupted
@@ -79,6 +84,15 @@ config AUTOBOOT_KEYED_CTRLC Setting this variable provides an escape sequence from the limited "password" strings. +config AUTOBOOT_STOP_STR_SHA256 + string "Stop autobooting via SHA256 encrypted password" + depends on AUTOBOOT_KEYED && AUTOBOOT_ENCRYPTION + help + This option adds the feature to only stop the autobooting, + and therefore boot into the U-Boot prompt, when the input + string / password matches a values that is encypted via + a SHA256 hash and saved in the environment. + endmenu comment "Commands"
common/autoboot.c +111 -21
171 lines not on this page · raw message
Signature · 1 line
2.4.0
PATCH v2 4/4 autoboot.c: Add feature to stop autobooting via SHA256 encrypted password
Hi Stefan,
Quoted 18 lines · Stefan Roese
This patch adds the feature to only stop the autobooting, and therefor boot into the U-Boot prompt, when the input string / password matches a values that is encypted via a SHA256 hash and saved in the environment.
This feature is enabled by defined these config options:
CONFIG_AUTOBOOT_KEYEDCONFIG_AUTOBOOT_STOP_STR_SHA256Signed-off-by Stefan Roese <[email protected]>Cc Simon Glass <[email protected]>Cc Magnus Lilja <[email protected]>---
v2:
-AUTOBOOT_STOP_STR_SHA256is a string and not bool
- Add input key length check as suggested by Magnus
- Add "constant-length" time compare function as suggested by Magnus
Quoted 3 lines
common/Kconfig | 20 +++++++-- common/autoboot.c | 132 +++++++++++++++++++++++++++++++++++++++++++++--------- 2 files changed, 128 insertions(+), 24 deletions(-)
A few optional ideas below.
Quoted 111 lines
common/Kconfig +17
-3@@ -45,9 +45,14 @@ config AUTOBOOT_PROMPT the responsibility of the user to select only such arguments that are valid in the given context. +config AUTOBOOT_ENCRYPTION + bool "Enable encryption in autoboot stopping" + depends on AUTOBOOT_KEYED + default n + config AUTOBOOT_DELAY_STR string "Delay autobooting via specific input key / string" - depends on AUTOBOOT_KEYED + depends on AUTOBOOT_KEYED && !AUTOBOOT_ENCRYPTION help This option delays the automatic boot feature by issuing a specific input key or string. If CONFIG_AUTOBOOT_DELAY_STR@@ -59,7 +64,7 @@ config AUTOBOOT_DELAY_STR config AUTOBOOT_STOP_STR string "Stop autobooting via specific input key / string" - depends on AUTOBOOT_KEYED + depends on AUTOBOOT_KEYED && !AUTOBOOT_ENCRYPTION help This option enables stopping (aborting) of the automatic boot feature only by issuing a specific input key or@@ -71,7 +76,7 @@ config AUTOBOOT_STOP_STR config AUTOBOOT_KEYED_CTRLC bool "Enable Ctrl-C autoboot interruption" - depends on AUTOBOOT_KEYED + depends on AUTOBOOT_KEYED && !AUTOBOOT_ENCRYPTION default n help This option allows for the boot sequence to be interrupted@@ -79,6 +84,15 @@ config AUTOBOOT_KEYED_CTRLC Setting this variable provides an escape sequence from the limited "password" strings. +config AUTOBOOT_STOP_STR_SHA256 + string "Stop autobooting via SHA256 encrypted password" + depends on AUTOBOOT_KEYED && AUTOBOOT_ENCRYPTION + help + This option adds the feature to only stop the autobooting, + and therefore boot into the U-Boot prompt, when the input + string / password matches a values that is encypted via + a SHA256 hash and saved in the environment. + endmenu comment "Commands"common/autoboot.c +35
-5@@ -12,6 +12,7 @@#include <fdtdec.h> #include <menu.h> #include <post.h> +#include <u-boot/sha256.h> DECLARE_GLOBAL_DATA_PTR ;@@ -26,15 +27,80 @@ DECLARE_GLOBAL_DATA_PTR;/* Stored value of bootdelay, used by autoboot_command() */ static int stored_bootdelay; -/*************************************************************************** -* Watch for 'delay' seconds for autoboot stop or autoboot delay string. -* returns: 0 - no key string, allow autoboot 1 - got key string, abort +#if defined(CONFIG_AUTOBOOT_KEYED) +#if defined(CONFIG_AUTOBOOT_STOP_STR_SHA256) + +/* + * Use a "constant-length" time compare function for this + * hash compare: + * + * https://crackstation.net/hashing-security.htm */ -# if defined(CONFIG_AUTOBOOT_KEYED ) -static int abortboot_keyed (int bootdelay) +static int slow_equals(u8 *a, u8 *b, int len) +{ + int diff = 0; + int i; + + for (i = 0; i < len; i++) + diff |= a[i] ^ b[i]; + + return diff == 0; +} + +static int passwd_abort(uint64_t etime) +{ + const char *sha_env_str = getenv("bootstopkeysha256"); + u8 sha_env[SHA256_SUM_LEN]; + u8 sha[SHA256_SUM_LEN]; + char presskey[MAX_DELAY_STOP_STR]; + u_int presskey_len = 0; + int i; + int abort = 0; + + if (sha_env_str == NULL) + sha_env_str = CONFIG_AUTOBOOT_STOP_STR_SHA256; + + /* + * Generate the binary value from the environment hash value
common/autoboot.c DECLARE_GLOBAL_DATA_PTR; · line 74
Quoted 10 lines
common/autoboot.c +10
-0+* so that we can compare this value with the computed hash +* from the user input +*/ +for (i =0 ; i <SHA256_SUM_LEN ; i++) { +char chr[3 ]; + +strncpy (chr, &sha_env_str[i *2 ],2 ); + sha_env[i] =simple_strtoul (chr,NULL ,16 ); + } +
There is similar code in parse_verify_sum() in hash.c. Not sure if it is worth putting it in a function, like:
hash_parse_string(const char *algo_name, cost char *str, u8 *result)
It could support other algorithms for autoboot in the future if that became useful.
Quoted 6 lines
common/autoboot.c +6
-0+/* +* We don't know how long the stop-string is, so we need to +* generate the sha256 hash upon each input character and +* compare the value with the one saved in the environment +*/ + do {
common/autoboot.c DECLARE_GLOBAL_DATA_PTR; · line 90
Quoted 10 lines
common/autoboot.c +10
-0+if (tstc ()) { +/* Check for input string overflow */ +if (presskey_len >=MAX_DELAY_STOP_STR ) +return 0 ; + + presskey[presskey_len++] =getc (); + +/* Calculate sha256 upon each new char */ +sha256_csum_wd ((unsigned char *)presskey, presskey_len, + sha,CHUNKSZ_SHA256 );
Could use hash_block()
Quoted 99 lines
common/autoboot.c +50
-17+ +/* And check if sha matches saved value in env */ +if (slow_equals (sha, sha_env,SHA256_SUM_LEN )) + abort = 1; + } + }while (!abort &&get_ticks () <= etime); + +return abort; +} +#else +static int passwd_abort (uint64_t etime) {int abort =0 ; -uint64_t etime =endtick (bootdelay);struct {char *str; u_int len;@@ -42,7 +108,9 @@ static int abortboot_keyed(int bootdelay) } delaykey[] = { { .str = getenv("bootdelaykey"), .retry = 1 }, + { .str = getenv("bootdelaykey2"), .retry = 1 }, { .str = getenv("bootstopkey"), .retry = 0 }, + { .str = getenv("bootstopkey2"), .retry = 0 }, }; char presskey[MAX_DELAY_STOP_STR];@@ -50,26 +118,21 @@ static int abortboot_keyed(int bootdelay)u_int presskey_max =0 ;u_int i; -#ifndef CONFIG_ZERO_BOOTDELAY_CHECK -if (bootdelay ==0 ) -return 0 ; -#endif - -# ifdef CONFIG_AUTOBOOT_PROMPT -/* -* CONFIG_AUTOBOOT_PROMPT includes the %d for all boards. -* To print the bootdelay value upon bootup. -*/ -printf (CONFIG_AUTOBOOT_PROMPT , bootdelay); -# endif -# ifdef CONFIG_AUTOBOOT_DELAY_STR if (delaykey[0 ].str ==NULL ) delaykey[0 ].str =CONFIG_AUTOBOOT_DELAY_STR ;# endif -# ifdef CONFIG_AUTOBOOT_STOP_STR +# ifdef CONFIG_AUTOBOOT_DELAY_STR2 if (delaykey[1 ].str ==NULL ) - delaykey[1 ].str =CONFIG_AUTOBOOT_STOP_STR ; + delaykey[1 ].str =CONFIG_AUTOBOOT_DELAY_STR2 ; +# endif +# ifdef CONFIG_AUTOBOOT_STOP_STR +if (delaykey[2 ].str ==NULL ) + delaykey[2 ].str =CONFIG_AUTOBOOT_STOP_STR ; +# endif +# ifdef CONFIG_AUTOBOOT_STOP_STR2 +if (delaykey[3 ].str ==NULL ) + delaykey[3 ].str =CONFIG_AUTOBOOT_STOP_STR2 ;# endif for (i =0 ; i <sizeof (delaykey) /sizeof (delaykey[0 ]); i++) {@@ -119,6 +182,33 @@ static int abortboot_keyed(int bootdelay) } }while (!abort &&get_ticks () <= etime); +return abort; +} +#endif + +/*************************************************************************** +* Watch for 'delay' seconds for autoboot stop or autoboot delay string. +* returns: 0 - no key string, allow autoboot 1 - got key string, abort +*/ +static int abortboot_keyed (int bootdelay) +{ +int abort; +uint64_t etime =endtick (bootdelay); + +#ifndef CONFIG_ZERO_BOOTDELAY_CHECK +if (bootdelay ==0 ) +return 0 ; +#endif + +# ifdef CONFIG_AUTOBOOT_PROMPT +/* +* CONFIG_AUTOBOOT_PROMPT includes the %d for all boards. +* To print the bootdelay value upon bootup. +*/ +printf (CONFIG_AUTOBOOT_PROMPT , bootdelay); +# endif + + abort =passwd_abort (etime);if (!abort)debug_bootkeys ("key timeout\n" ); --
Quoted 2 lines
2.4.0
Regards,
Simon
PATCH v2 4/4 autoboot.c: Add feature to stop autobooting via SHA256 encrypted password
In reply to Stefan RoeseHi Stefan,
Quoted 21 lines · Stefan Roese
This patch adds the feature to only stop the autobooting, and therefor boot into the U-Boot prompt, when the input string / password matches a values that is encypted via a SHA256 hash and saved in the environment.
This feature is enabled by defined these config options:
CONFIG_AUTOBOOT_KEYEDCONFIG_AUTOBOOT_STOP_STR_SHA256Signed-off-by Stefan Roese <[email protected]>Cc Simon Glass <[email protected]>Cc Magnus Lilja <[email protected]>---
v2:
-AUTOBOOT_STOP_STR_SHA256is a string and not bool
- Add input key length check as suggested by Magnus
- Add "constant-length" time compare function as suggested by Magnuscommon/Kconfig | 20 +++++++-- common/autoboot.c | 132 +++++++++++++++++++++++++++++++++++++++++++++--------- 2 files changed, 128 insertions(+), 24 deletions(-)
[snip]
Quoted 37 lines
common/autoboot.c +5
-15@@ -42,7 +108,9 @@ static int abortboot_keyed(int bootdelay) } delaykey[] = { { .str = getenv("bootdelaykey"), .retry = 1 }, + { .str = getenv("bootdelaykey2"), .retry = 1 }, { .str = getenv("bootstopkey"), .retry = 0 }, + { .str = getenv("bootstopkey2"), .retry = 0 }, }; char presskey[MAX_DELAY_STOP_STR];@@ -50,26 +118,21 @@ static int abortboot_keyed(int bootdelay)u_int presskey_max =0 ;u_int i; -#ifndef CONFIG_ZERO_BOOTDELAY_CHECK -if (bootdelay ==0 ) -return 0 ; -#endif - -# ifdef CONFIG_AUTOBOOT_PROMPT -/* -* CONFIG_AUTOBOOT_PROMPT includes the %d for all boards. -* To print the bootdelay value upon bootup. -*/ -printf (CONFIG_AUTOBOOT_PROMPT , bootdelay); -# endif -# ifdef CONFIG_AUTOBOOT_DELAY_STR if (delaykey[0 ].str ==NULL ) delaykey[0 ].str =CONFIG_AUTOBOOT_DELAY_STR ;# endif -# ifdef CONFIG_AUTOBOOT_STOP_STR +# ifdef CONFIG_AUTOBOOT_DELAY_STR2 if (delaykey[1 ].str ==NULL ) - delaykey[1 ].str =CONFIG_AUTOBOOT_STOP_STR ; + delaykey[1 ].str =CONFIG_AUTOBOOT_DELAY_STR2 ; +# endif
common/autoboot.c static int abortboot_keyed(int bootdelay) · line 138
Quoted 10 lines
common/autoboot.c +7
-0+# ifdef CONFIG_AUTOBOOT_STOP_STR +if (delaykey[2 ].str ==NULL ) + delaykey[2 ].str =CONFIG_AUTOBOOT_STOP_STR ; +# endif +# ifdef CONFIG_AUTOBOOT_STOP_STR2 +if (delaykey[3 ].str ==NULL ) + delaykey[3 ].str =CONFIG_AUTOBOOT_STOP_STR2 ;# endif for (i =0 ; i <sizeof (delaykey) /sizeof (delaykey[0 ]); i++) {
isn't this part removed before in 2/4 'autoboot.c: Remove CONFIG_AUTOBOOT_STOP_STR2 and CONFIG_AUTOBOOT_DELAY_STR2'?
Andreas
PATCH v2 4/4 autoboot.c: Add feature to stop autobooting via SHA256 encrypted password
Hi Andreas,
Quoted 19 lines · Andreas Bie?mann
Quoted 19 lines
# ifdef CONFIG_AUTOBOOT_DELAY_STR if (delaykey[0].str == NULL) delaykey[0].str = CONFIG_AUTOBOOT_DELAY_STR; # endifcommon/autoboot.c +10
-2-# ifdef CONFIG_AUTOBOOT_STOP_STR +# ifdef CONFIG_AUTOBOOT_DELAY_STR2 if (delaykey[1 ].str ==NULL ) - delaykey[1 ].str =CONFIG_AUTOBOOT_STOP_STR ; + delaykey[1 ].str =CONFIG_AUTOBOOT_DELAY_STR2 ; +# endif +# ifdef CONFIG_AUTOBOOT_STOP_STR +if (delaykey[2 ].str ==NULL ) + delaykey[2 ].str =CONFIG_AUTOBOOT_STOP_STR ; +# endif +# ifdef CONFIG_AUTOBOOT_STOP_STR2 +if (delaykey[3 ].str ==NULL ) + delaykey[3 ].str =CONFIG_AUTOBOOT_STOP_STR2 ;# endif
Quoted 4 lines
Quoted 1 line
for (i = 0; i < sizeof(delaykey) / sizeof(delaykey[0]); i++) {isn't this part removed before in 2/4 '
autoboot.c: RemoveCONFIG_AUTOBOOT_STOP_STR2andCONFIG_AUTOBOOT_DELAY_STR2'?
Right. I messed up while rebasing. v3 will follow hopefully today.
Thanks,
Stefan
PATCH v2 4/4 autoboot.c: Add feature to stop autobooting via SHA256 encrypted password
In reply to Stefan RoeseHi Stefan,
Quoted 11 lines · Stefan Roese
This patch adds the feature to only stop the autobooting, and therefor boot into the U-Boot prompt, when the input string / password matches a values that is encypted via a SHA256 hash and saved in the environment.
This feature is enabled by defined these config options:
CONFIG_AUTOBOOT_KEYEDCONFIG_AUTOBOOT_STOP_STR_SHA256Signed-off-by Stefan Roese <[email protected]>Cc Simon Glass <[email protected]>Cc Magnus Lilja <[email protected]>
Quoted 6 lines
---
v2:
-AUTOBOOT_STOP_STR_SHA256is a string and not bool
- Add input key length check as suggested by Magnus
- Add "constant-length" time compare function as suggested by Magnus
May I ask why you don't go all the way and use the salt mechanism instead of just hashing the password?
Regards; Magnus
PATCH v2 4/4 autoboot.c: Add feature to stop autobooting via SHA256 encrypted password
Hi Magnus,
Quoted 19 lines · Magnus Lilja
Quoted 11 lines · Stefan Roese
This patch adds the feature to only stop the autobooting, and therefor boot into the U-Boot prompt, when the input string / password matches a values that is encypted via a SHA256 hash and saved in the environment.
This feature is enabled by defined these config options:
CONFIG_AUTOBOOT_KEYEDCONFIG_AUTOBOOT_STOP_STR_SHA256Signed-off-by Stefan Roese <[email protected]>Cc Simon Glass <[email protected]>Cc Magnus Lilja <[email protected]>Quoted 6 lines
---
v2:
-AUTOBOOT_STOP_STR_SHA256is a string and not bool
- Add input key length check as suggested by Magnus
- Add "constant-length" time compare function as suggested by Magnus
Quoted 2 lines
May I ask why you don't go all the way and use the salt mechanism instead of just hashing the password?
Because its a customer requirement to implement it in this "simple" way. Even though cracking will be easier than by using this salt mechanism. If someone needs this stronger encryption support at some time, I suggest to add it as an additional feature / option then.
Thanks,
Stefan