[U-Boot] [PATCH 1/2] x86: x86-common.h: Add CONFIG_BOOTDELAY

Without this CONFIG_BOOTDELAY, autobooting does not work at all. As autoboot_command() from common/* will not get called. So lets define CONFIG_BOOTDELAY, so that auto-booting works on x86.
Signed-off-by: Stefan Roese sr@denx.de Cc: Miao Yan yanmiaobest@gmail.com Cc: Bin Meng bmeng.cn@gmail.com Cc: Simon Glass sjg@chromium.org --- include/configs/x86-common.h | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/include/configs/x86-common.h b/include/configs/x86-common.h index 4182a3b..6e73656 100644 --- a/include/configs/x86-common.h +++ b/include/configs/x86-common.h @@ -235,4 +235,6 @@ "tftpboot $loadaddr $bootfile;" \ "zboot $loadaddr"
+#define CONFIG_BOOTDELAY 2 + #endif /* __CONFIG_H */

This patch adds the generic FS commands (ls, load) to all x86 boards.
Signed-off-by: Stefan Roese sr@denx.de Cc: Miao Yan yanmiaobest@gmail.com Cc: Bin Meng bmeng.cn@gmail.com Cc: Simon Glass sjg@chromium.org --- include/configs/x86-common.h | 1 + 1 file changed, 1 insertion(+)
diff --git a/include/configs/x86-common.h b/include/configs/x86-common.h index 6e73656..3ae4366 100644 --- a/include/configs/x86-common.h +++ b/include/configs/x86-common.h @@ -100,6 +100,7 @@ * Command line configuration. */ #define CONFIG_CMD_DATE +#define CONFIG_CMD_FS_GENERIC #define CONFIG_CMD_FPGA_LOADMK #define CONFIG_CMD_IO #define CONFIG_CMD_IRQ

On Mon, Jan 18, 2016 at 9:49 PM, Stefan Roese sr@denx.de wrote:
This patch adds the generic FS commands (ls, load) to all x86 boards.
Signed-off-by: Stefan Roese sr@denx.de Cc: Miao Yan yanmiaobest@gmail.com Cc: Bin Meng bmeng.cn@gmail.com Cc: Simon Glass sjg@chromium.org
include/configs/x86-common.h | 1 + 1 file changed, 1 insertion(+)
Acked-by: Bin Meng bmeng.cn@gmail.com

On Tue, Jan 19, 2016 at 2:19 PM, Bin Meng bmeng.cn@gmail.com wrote:
On Mon, Jan 18, 2016 at 9:49 PM, Stefan Roese sr@denx.de wrote:
This patch adds the generic FS commands (ls, load) to all x86 boards.
Signed-off-by: Stefan Roese sr@denx.de Cc: Miao Yan yanmiaobest@gmail.com Cc: Bin Meng bmeng.cn@gmail.com Cc: Simon Glass sjg@chromium.org
include/configs/x86-common.h | 1 + 1 file changed, 1 insertion(+)
Acked-by: Bin Meng bmeng.cn@gmail.com
applied to u-boot-x86/master, thanks!

2016-01-18 21:49 GMT+08:00 Stefan Roese sr@denx.de:
Without this CONFIG_BOOTDELAY, autobooting does not work at all. As autoboot_command() from common/* will not get called. So lets define CONFIG_BOOTDELAY, so that auto-booting works on x86.
Signed-off-by: Stefan Roese sr@denx.de Cc: Miao Yan yanmiaobest@gmail.com Cc: Bin Meng bmeng.cn@gmail.com Cc: Simon Glass sjg@chromium.org
include/configs/x86-common.h | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/include/configs/x86-common.h b/include/configs/x86-common.h index 4182a3b..6e73656 100644 --- a/include/configs/x86-common.h +++ b/include/configs/x86-common.h @@ -235,4 +235,6 @@ "tftpboot $loadaddr $bootfile;" \ "zboot $loadaddr"
+#define CONFIG_BOOTDELAY 2
#endif /* __CONFIG_H */
2.6.5
Tested-by: Miao Yan yanmiaobest@gmail.com

On Mon, Jan 18, 2016 at 9:49 PM, Stefan Roese sr@denx.de wrote:
Without this CONFIG_BOOTDELAY, autobooting does not work at all. As autoboot_command() from common/* will not get called. So lets define CONFIG_BOOTDELAY, so that auto-booting works on x86.
Signed-off-by: Stefan Roese sr@denx.de Cc: Miao Yan yanmiaobest@gmail.com Cc: Bin Meng bmeng.cn@gmail.com Cc: Simon Glass sjg@chromium.org
include/configs/x86-common.h | 2 ++ 1 file changed, 2 insertions(+)
Acked-by: Bin Meng bmeng.cn@gmail.com

Hi Stefan,
On Tue, Jan 19, 2016 at 2:19 PM, Bin Meng bmeng.cn@gmail.com wrote:
On Mon, Jan 18, 2016 at 9:49 PM, Stefan Roese sr@denx.de wrote:
Without this CONFIG_BOOTDELAY, autobooting does not work at all. As autoboot_command() from common/* will not get called. So lets define CONFIG_BOOTDELAY, so that auto-booting works on x86.
Signed-off-by: Stefan Roese sr@denx.de Cc: Miao Yan yanmiaobest@gmail.com Cc: Bin Meng bmeng.cn@gmail.com Cc: Simon Glass sjg@chromium.org
include/configs/x86-common.h | 2 ++ 1 file changed, 2 insertions(+)
Acked-by: Bin Meng bmeng.cn@gmail.com
Sorry, this patch does not build for efi-x86.
x86: + efi-x86 +../common/autoboot.c: In function 'process_fdt_options': +../common/autoboot.c:296:36: error: 'CONFIG_SYS_TEXT_BASE' undeclared (first use in this function) + setenv_addr("kernaddr", (void *)(CONFIG_SYS_TEXT_BASE + addr)); + ^ +../common/autoboot.c:296:36: note: each undeclared identifier is reported only once for each function it appears in +make[2]: *** [common/autoboot.o] Error 1 +make[1]: *** [common] Error 2 +make: *** [sub-make] Error 2
Could you please fix this? Sorry I did not run buildman earlier.
Regards, Bin

Hi Bin,
On 26.01.2016 07:48, Bin Meng wrote:
On Tue, Jan 19, 2016 at 2:19 PM, Bin Meng bmeng.cn@gmail.com wrote:
On Mon, Jan 18, 2016 at 9:49 PM, Stefan Roese sr@denx.de wrote:
Without this CONFIG_BOOTDELAY, autobooting does not work at all. As autoboot_command() from common/* will not get called. So lets define CONFIG_BOOTDELAY, so that auto-booting works on x86.
Signed-off-by: Stefan Roese sr@denx.de Cc: Miao Yan yanmiaobest@gmail.com Cc: Bin Meng bmeng.cn@gmail.com Cc: Simon Glass sjg@chromium.org
include/configs/x86-common.h | 2 ++ 1 file changed, 2 insertions(+)
Acked-by: Bin Meng bmeng.cn@gmail.com
Sorry, this patch does not build for efi-x86.
x86: + efi-x86
+../common/autoboot.c: In function 'process_fdt_options': +../common/autoboot.c:296:36: error: 'CONFIG_SYS_TEXT_BASE' undeclared (first use in this function)
- setenv_addr("kernaddr", (void *)(CONFIG_SYS_TEXT_BASE + addr));
^
+../common/autoboot.c:296:36: note: each undeclared identifier is reported only once for each function it appears in +make[2]: *** [common/autoboot.o] Error 1 +make[1]: *** [common] Error 2 +make: *** [sub-make] Error 2
Could you please fix this? Sorry I did not run buildman earlier.
No need to be sorry for you. I should have spotted this problem before submitting. I'll fix this soon and will resubmit.
Thanks, Stefan

Hi Bin,
(added Simon to Cc)
On 26.01.2016 07:48, Bin Meng wrote:
On Tue, Jan 19, 2016 at 2:19 PM, Bin Meng bmeng.cn@gmail.com wrote:
On Mon, Jan 18, 2016 at 9:49 PM, Stefan Roese sr@denx.de wrote:
Without this CONFIG_BOOTDELAY, autobooting does not work at all. As autoboot_command() from common/* will not get called. So lets define CONFIG_BOOTDELAY, so that auto-booting works on x86.
Signed-off-by: Stefan Roese sr@denx.de Cc: Miao Yan yanmiaobest@gmail.com Cc: Bin Meng bmeng.cn@gmail.com Cc: Simon Glass sjg@chromium.org
include/configs/x86-common.h | 2 ++ 1 file changed, 2 insertions(+)
Acked-by: Bin Meng bmeng.cn@gmail.com
Sorry, this patch does not build for efi-x86.
x86: + efi-x86
+../common/autoboot.c: In function 'process_fdt_options': +../common/autoboot.c:296:36: error: 'CONFIG_SYS_TEXT_BASE' undeclared (first use in this function)
- setenv_addr("kernaddr", (void *)(CONFIG_SYS_TEXT_BASE + addr));
^
+../common/autoboot.c:296:36: note: each undeclared identifier is reported only once for each function it appears in +make[2]: *** [common/autoboot.o] Error 1 +make[1]: *** [common] Error 2 +make: *** [sub-make] Error 2
Could you please fix this? Sorry I did not run buildman earlier.
I'm a bit hesitant on how to fix this. As I don't really know this "efi-x86" target in detail. Is this code in process_fdt_options() really needed for this target? To configure the env variables "kernaddr" and "rootaddr" dynamically from the DT properties "kernel-offset" and "rootdisk-offset". I can't find any references to these DT properties anywhere?
Simon, you introduced this env variable handling with the patch [fdt: Set kernaddr if fdt indicates a kernel is present] (git ID fcabc24f) in October 2012.
Perhaps its best to assign TEXT_BASE to 0 if its not defined at all? Or is this in general the correct value for the "efi-x86" target and should be set specifically for it?
Thanks, Stefan

Hi Stefan,
On 28 January 2016 at 09:13, Stefan Roese sr@denx.de wrote:
Hi Bin,
(added Simon to Cc)
On 26.01.2016 07:48, Bin Meng wrote:
On Tue, Jan 19, 2016 at 2:19 PM, Bin Meng bmeng.cn@gmail.com wrote:
On Mon, Jan 18, 2016 at 9:49 PM, Stefan Roese sr@denx.de wrote:
Without this CONFIG_BOOTDELAY, autobooting does not work at all. As autoboot_command() from common/* will not get called. So lets define CONFIG_BOOTDELAY, so that auto-booting works on x86.
Signed-off-by: Stefan Roese sr@denx.de Cc: Miao Yan yanmiaobest@gmail.com Cc: Bin Meng bmeng.cn@gmail.com Cc: Simon Glass sjg@chromium.org
include/configs/x86-common.h | 2 ++ 1 file changed, 2 insertions(+)
Acked-by: Bin Meng bmeng.cn@gmail.com
Sorry, this patch does not build for efi-x86.
x86: + efi-x86
+../common/autoboot.c: In function 'process_fdt_options': +../common/autoboot.c:296:36: error: 'CONFIG_SYS_TEXT_BASE' undeclared (first use in this function)
- setenv_addr("kernaddr", (void *)(CONFIG_SYS_TEXT_BASE + addr));
^
+../common/autoboot.c:296:36: note: each undeclared identifier is reported only once for each function it appears in +make[2]: *** [common/autoboot.o] Error 1 +make[1]: *** [common] Error 2 +make: *** [sub-make] Error 2
Could you please fix this? Sorry I did not run buildman earlier.
I'm a bit hesitant on how to fix this. As I don't really know this "efi-x86" target in detail. Is this code in process_fdt_options() really needed for this target? To configure the env variables "kernaddr" and "rootaddr" dynamically from the DT properties "kernel-offset" and "rootdisk-offset". I can't find any references to these DT properties anywhere?
Simon, you introduced this env variable handling with the patch [fdt: Set kernaddr if fdt indicates a kernel is present] (git ID fcabc24f) in October 2012.
Perhaps its best to assign TEXT_BASE to 0 if its not defined at all? Or is this in general the correct value for the "efi-x86" target and should be set specifically for it?
It is a funny target since we actually produce a relocatable ELF. I'd suggest putting #ifdef CONFIG_SYS_TEXT_BASE around it.
Regards, Simon

Hi Simon,
On 28.01.2016 17:16, Simon Glass wrote:
Hi Stefan,
On 28 January 2016 at 09:13, Stefan Roese sr@denx.de wrote:
Hi Bin,
(added Simon to Cc)
On 26.01.2016 07:48, Bin Meng wrote:
On Tue, Jan 19, 2016 at 2:19 PM, Bin Meng bmeng.cn@gmail.com wrote:
On Mon, Jan 18, 2016 at 9:49 PM, Stefan Roese sr@denx.de wrote:
Without this CONFIG_BOOTDELAY, autobooting does not work at all. As autoboot_command() from common/* will not get called. So lets define CONFIG_BOOTDELAY, so that auto-booting works on x86.
Signed-off-by: Stefan Roese sr@denx.de Cc: Miao Yan yanmiaobest@gmail.com Cc: Bin Meng bmeng.cn@gmail.com Cc: Simon Glass sjg@chromium.org
include/configs/x86-common.h | 2 ++ 1 file changed, 2 insertions(+)
Acked-by: Bin Meng bmeng.cn@gmail.com
Sorry, this patch does not build for efi-x86.
x86: + efi-x86
+../common/autoboot.c: In function 'process_fdt_options': +../common/autoboot.c:296:36: error: 'CONFIG_SYS_TEXT_BASE' undeclared (first use in this function)
- setenv_addr("kernaddr", (void *)(CONFIG_SYS_TEXT_BASE + addr));
^
+../common/autoboot.c:296:36: note: each undeclared identifier is reported only once for each function it appears in +make[2]: *** [common/autoboot.o] Error 1 +make[1]: *** [common] Error 2 +make: *** [sub-make] Error 2
Could you please fix this? Sorry I did not run buildman earlier.
I'm a bit hesitant on how to fix this. As I don't really know this "efi-x86" target in detail. Is this code in process_fdt_options() really needed for this target? To configure the env variables "kernaddr" and "rootaddr" dynamically from the DT properties "kernel-offset" and "rootdisk-offset". I can't find any references to these DT properties anywhere?
Simon, you introduced this env variable handling with the patch [fdt: Set kernaddr if fdt indicates a kernel is present] (git ID fcabc24f) in October 2012.
Perhaps its best to assign TEXT_BASE to 0 if its not defined at all? Or is this in general the correct value for the "efi-x86" target and should be set specifically for it?
It is a funny target since we actually produce a relocatable ELF. I'd suggest putting #ifdef CONFIG_SYS_TEXT_BASE around it.
Okay. I'll "solve" it this way.
Thanks, Stefan

On Tue, Jan 19, 2016 at 2:19 PM, Bin Meng bmeng.cn@gmail.com wrote:
On Mon, Jan 18, 2016 at 9:49 PM, Stefan Roese sr@denx.de wrote:
Without this CONFIG_BOOTDELAY, autobooting does not work at all. As autoboot_command() from common/* will not get called. So lets define CONFIG_BOOTDELAY, so that auto-booting works on x86.
Signed-off-by: Stefan Roese sr@denx.de Cc: Miao Yan yanmiaobest@gmail.com Cc: Bin Meng bmeng.cn@gmail.com Cc: Simon Glass sjg@chromium.org
include/configs/x86-common.h | 2 ++ 1 file changed, 2 insertions(+)
Acked-by: Bin Meng bmeng.cn@gmail.com
applied to u-boot-x86/master, thanks!

On Mon, Jan 18, 2016 at 02:49:56PM +0100, Stefan Roese wrote:
Without this CONFIG_BOOTDELAY, autobooting does not work at all. As autoboot_command() from common/* will not get called. So lets define CONFIG_BOOTDELAY, so that auto-booting works on x86.
Signed-off-by: Stefan Roese sr@denx.de Cc: Miao Yan yanmiaobest@gmail.com Cc: Bin Meng bmeng.cn@gmail.com Cc: Simon Glass sjg@chromium.org
I think the right direction (and I haven't had time myself) is to make x86 use the generic distro framework. Dennis Gilmore pointed out a while ago Fedora at least can be easily made to generate the extlinux file on x86 even so it'll just work there :)

Hi Tom,
On 19.01.2016 18:25, Tom Rini wrote:
On Mon, Jan 18, 2016 at 02:49:56PM +0100, Stefan Roese wrote:
Without this CONFIG_BOOTDELAY, autobooting does not work at all. As autoboot_command() from common/* will not get called. So lets define CONFIG_BOOTDELAY, so that auto-booting works on x86.
Signed-off-by: Stefan Roese sr@denx.de Cc: Miao Yan yanmiaobest@gmail.com Cc: Bin Meng bmeng.cn@gmail.com Cc: Simon Glass sjg@chromium.org
I think the right direction (and I haven't had time myself) is to make x86 use the generic distro framework. Dennis Gilmore pointed out a while ago Fedora at least can be easily made to generate the extlinux file on x86 even so it'll just work there :)
Yes, this is definitely the "right direction". Unfortunately I'm a bit limited with the time I could spend on this. And frankly, I have not much experience with the generic distro framework. So I would like to postpone this distro rework for a bit now. And since x86 does not support auto-booting at all without CONFIG_BOOTDELAY, I think it makes sense to apply this patch now. And add the distro stuff a bit later.
Thanks, Stefan
participants (5)
-
Bin Meng
-
Miao Yan
-
Simon Glass
-
Stefan Roese
-
Tom Rini