diff mbox series

[U-Boot,v2,1/1] x86: provide CONFIG_BUILD_ROM

Message ID 20170919174413.28893-1-xypron.glpk@gmx.de
State Superseded, archived
Delegated to: Bin Meng
Headers show
Series [U-Boot,v2,1/1] x86: provide CONFIG_BUILD_ROM | expand

Commit Message

Heinrich Schuchardt Sept. 19, 2017, 5:44 p.m. UTC
Up to now we depended on an exported variable to build u-boot.rom.
What we build should be specified by the configuration file.

With this patch the export variable is deprecated and replaced by the
Kconfig option CONFIG_BUILD_ROM. To make the change as smooth as
possible 'export BUILD_ROM' is still usable but removed from the
documentation.

This option depends on CONFIG_X86 and is selected in
qemu-x86_defconfig and qemu-x86_64_defconfig.

Cc: Bin Meng <bmeng.cn@gmail.com>
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
---
v2
	Enable CONFIG_BUILD_ROM for qemu-x86_64_defconfig
	as suggested by Bin.
	Fix typos.
	Remove 'default n'
---
 Kconfig                       | 10 ++++++++++
 Makefile                      |  2 +-
 configs/qemu-x86_64_defconfig |  1 +
 configs/qemu-x86_defconfig    |  1 +
 doc/README.x86                |  2 +-
 5 files changed, 14 insertions(+), 2 deletions(-)

Comments

Simon Glass Sept. 25, 2017, 2:13 a.m. UTC | #1
Hi Heinrich,

On 19 September 2017 at 11:44, Heinrich Schuchardt <xypron.glpk@gmx.de> wrote:
> Up to now we depended on an exported variable to build u-boot.rom.
> What we build should be specified by the configuration file.
>
> With this patch the export variable is deprecated and replaced by the
> Kconfig option CONFIG_BUILD_ROM. To make the change as smooth as
> possible 'export BUILD_ROM' is still usable but removed from the
> documentation.

I don' think you cancan deprecate that, since we need it for the build
system to control what is built. Most people won't have the binary
blobs available, and buildman needs to succeed for all boards.

So I think you are adding an option which can never be enabled in
mainline except for qemu. I think you should change the wording here.

>
> This option depends on CONFIG_X86 and is selected in
> qemu-x86_defconfig and qemu-x86_64_defconfig.
>
> Cc: Bin Meng <bmeng.cn@gmail.com>
> Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
> ---
> v2
>         Enable CONFIG_BUILD_ROM for qemu-x86_64_defconfig
>         as suggested by Bin.
>         Fix typos.
>         Remove 'default n'
> ---
>  Kconfig                       | 10 ++++++++++
>  Makefile                      |  2 +-
>  configs/qemu-x86_64_defconfig |  1 +
>  configs/qemu-x86_defconfig    |  1 +
>  doc/README.x86                |  2 +-
>  5 files changed, 14 insertions(+), 2 deletions(-)
>
> diff --git a/Kconfig b/Kconfig
> index 238fa3e1ed..989d81c04c 100644
> --- a/Kconfig
> +++ b/Kconfig
> @@ -158,6 +158,15 @@ config PHYS_64BIT
>           This can be used not only for 64bit SoCs, but also for
>           large physical address extention on 32bit SoCs.
>
> +config BUILD_ROM
> +       bool "Build U-Boot as BIOS replacement"
> +       depends on X86
> +       help
> +         This option allows to build a ROM version of U-Boot.
> +         The build process generally requires several binary blobs
> +         which are not shipped in the U-Boot source tree.
> +         Please, see doc/README.x86 for details.
> +
>  endmenu                # General setup
>
>  menu "Boot images"
> diff --git a/Makefile b/Makefile
> index 8250b3409a..50fe0003f5 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -796,7 +796,7 @@ ALL-$(CONFIG_REMAKE_ELF) += u-boot.elf
>  ALL-$(CONFIG_EFI_APP) += u-boot-app.efi
>  ALL-$(CONFIG_EFI_STUB) += u-boot-payload.efi
>
> -ifneq ($(BUILD_ROM),)
> +ifneq ($(BUILD_ROM)$(CONFIG_BUILD_ROM),)
>  ALL-$(CONFIG_X86_RESET_VECTOR) += u-boot.rom
>  endif
>
> diff --git a/configs/qemu-x86_64_defconfig b/configs/qemu-x86_64_defconfig
> index 67e9a45fbc..a6a14a8de9 100644
> --- a/configs/qemu-x86_64_defconfig
> +++ b/configs/qemu-x86_64_defconfig
> @@ -1,4 +1,5 @@
>  CONFIG_X86=y
> +CONFIG_BUILD_ROM=y
>  CONFIG_SPL_LIBCOMMON_SUPPORT=y
>  CONFIG_SPL_LIBGENERIC_SUPPORT=y
>  CONFIG_SYS_MALLOC_F_LEN=0x1000
> diff --git a/configs/qemu-x86_defconfig b/configs/qemu-x86_defconfig
> index 7ce97ff091..346abf621d 100644
> --- a/configs/qemu-x86_defconfig
> +++ b/configs/qemu-x86_defconfig
> @@ -1,4 +1,5 @@
>  CONFIG_X86=y
> +CONFIG_BUILD_ROM=y
>  CONFIG_MAX_CPUS=2
>  CONFIG_DEFAULT_DEVICE_TREE="qemu-x86_i440fx"
>  CONFIG_SMP=y
> diff --git a/doc/README.x86 b/doc/README.x86
> index c96a22cb08..226c9af281 100644
> --- a/doc/README.x86
> +++ b/doc/README.x86
> @@ -82,7 +82,7 @@ shipped in the U-Boot source tree. Due to this reason, the u-boot.rom build is
>  not turned on by default in the U-Boot source tree. Firstly, you need turn it
>  on by enabling the ROM build:
>
> -$ export BUILD_ROM=y
> +CONFIG_BUILD_ROM=y

I think we should keep this documentation and show both options.

>
>  This tells the Makefile to build u-boot.rom as a target.
>
> --
> 2.11.0
>

Regards,
Simon
Bin Meng Oct. 7, 2017, 3:53 a.m. UTC | #2
Hi Heinrich,

On Mon, Sep 25, 2017 at 10:13 AM, Simon Glass <sjg@chromium.org> wrote:
> Hi Heinrich,
>
> On 19 September 2017 at 11:44, Heinrich Schuchardt <xypron.glpk@gmx.de> wrote:
>> Up to now we depended on an exported variable to build u-boot.rom.
>> What we build should be specified by the configuration file.
>>
>> With this patch the export variable is deprecated and replaced by the
>> Kconfig option CONFIG_BUILD_ROM. To make the change as smooth as
>> possible 'export BUILD_ROM' is still usable but removed from the
>> documentation.
>
> I don' think you cancan deprecate that, since we need it for the build
> system to control what is built. Most people won't have the binary
> blobs available, and buildman needs to succeed for all boards.
>
> So I think you are adding an option which can never be enabled in
> mainline except for qemu. I think you should change the wording here.
>
>>
>> This option depends on CONFIG_X86 and is selected in
>> qemu-x86_defconfig and qemu-x86_64_defconfig.
>>
>> Cc: Bin Meng <bmeng.cn@gmail.com>
>> Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
>> ---
>> v2
>>         Enable CONFIG_BUILD_ROM for qemu-x86_64_defconfig
>>         as suggested by Bin.
>>         Fix typos.
>>         Remove 'default n'
>> ---
>>  Kconfig                       | 10 ++++++++++
>>  Makefile                      |  2 +-
>>  configs/qemu-x86_64_defconfig |  1 +
>>  configs/qemu-x86_defconfig    |  1 +
>>  doc/README.x86                |  2 +-
>>  5 files changed, 14 insertions(+), 2 deletions(-)
>>
>> diff --git a/Kconfig b/Kconfig
>> index 238fa3e1ed..989d81c04c 100644
>> --- a/Kconfig
>> +++ b/Kconfig
>> @@ -158,6 +158,15 @@ config PHYS_64BIT
>>           This can be used not only for 64bit SoCs, but also for
>>           large physical address extention on 32bit SoCs.
>>
>> +config BUILD_ROM
>> +       bool "Build U-Boot as BIOS replacement"
>> +       depends on X86
>> +       help
>> +         This option allows to build a ROM version of U-Boot.
>> +         The build process generally requires several binary blobs
>> +         which are not shipped in the U-Boot source tree.
>> +         Please, see doc/README.x86 for details.
>> +
>>  endmenu                # General setup
>>
>>  menu "Boot images"
>> diff --git a/Makefile b/Makefile
>> index 8250b3409a..50fe0003f5 100644
>> --- a/Makefile
>> +++ b/Makefile
>> @@ -796,7 +796,7 @@ ALL-$(CONFIG_REMAKE_ELF) += u-boot.elf
>>  ALL-$(CONFIG_EFI_APP) += u-boot-app.efi
>>  ALL-$(CONFIG_EFI_STUB) += u-boot-payload.efi
>>
>> -ifneq ($(BUILD_ROM),)
>> +ifneq ($(BUILD_ROM)$(CONFIG_BUILD_ROM),)
>>  ALL-$(CONFIG_X86_RESET_VECTOR) += u-boot.rom
>>  endif
>>
>> diff --git a/configs/qemu-x86_64_defconfig b/configs/qemu-x86_64_defconfig
>> index 67e9a45fbc..a6a14a8de9 100644
>> --- a/configs/qemu-x86_64_defconfig
>> +++ b/configs/qemu-x86_64_defconfig
>> @@ -1,4 +1,5 @@
>>  CONFIG_X86=y
>> +CONFIG_BUILD_ROM=y
>>  CONFIG_SPL_LIBCOMMON_SUPPORT=y
>>  CONFIG_SPL_LIBGENERIC_SUPPORT=y
>>  CONFIG_SYS_MALLOC_F_LEN=0x1000
>> diff --git a/configs/qemu-x86_defconfig b/configs/qemu-x86_defconfig
>> index 7ce97ff091..346abf621d 100644
>> --- a/configs/qemu-x86_defconfig
>> +++ b/configs/qemu-x86_defconfig
>> @@ -1,4 +1,5 @@
>>  CONFIG_X86=y
>> +CONFIG_BUILD_ROM=y
>>  CONFIG_MAX_CPUS=2
>>  CONFIG_DEFAULT_DEVICE_TREE="qemu-x86_i440fx"
>>  CONFIG_SMP=y
>> diff --git a/doc/README.x86 b/doc/README.x86
>> index c96a22cb08..226c9af281 100644
>> --- a/doc/README.x86
>> +++ b/doc/README.x86
>> @@ -82,7 +82,7 @@ shipped in the U-Boot source tree. Due to this reason, the u-boot.rom build is
>>  not turned on by default in the U-Boot source tree. Firstly, you need turn it
>>  on by enabling the ROM build:
>>
>> -$ export BUILD_ROM=y
>> +CONFIG_BUILD_ROM=y
>
> I think we should keep this documentation and show both options.
>

Can you please respin to address Simon's comments if you would like to
get this mainline?

Regards,
Bin
diff mbox series

Patch

diff --git a/Kconfig b/Kconfig
index 238fa3e1ed..989d81c04c 100644
--- a/Kconfig
+++ b/Kconfig
@@ -158,6 +158,15 @@  config PHYS_64BIT
 	  This can be used not only for 64bit SoCs, but also for
 	  large physical address extention on 32bit SoCs.
 
+config BUILD_ROM
+	bool "Build U-Boot as BIOS replacement"
+	depends on X86
+	help
+	  This option allows to build a ROM version of U-Boot.
+	  The build process generally requires several binary blobs
+	  which are not shipped in the U-Boot source tree.
+	  Please, see doc/README.x86 for details.
+
 endmenu		# General setup
 
 menu "Boot images"
diff --git a/Makefile b/Makefile
index 8250b3409a..50fe0003f5 100644
--- a/Makefile
+++ b/Makefile
@@ -796,7 +796,7 @@  ALL-$(CONFIG_REMAKE_ELF) += u-boot.elf
 ALL-$(CONFIG_EFI_APP) += u-boot-app.efi
 ALL-$(CONFIG_EFI_STUB) += u-boot-payload.efi
 
-ifneq ($(BUILD_ROM),)
+ifneq ($(BUILD_ROM)$(CONFIG_BUILD_ROM),)
 ALL-$(CONFIG_X86_RESET_VECTOR) += u-boot.rom
 endif
 
diff --git a/configs/qemu-x86_64_defconfig b/configs/qemu-x86_64_defconfig
index 67e9a45fbc..a6a14a8de9 100644
--- a/configs/qemu-x86_64_defconfig
+++ b/configs/qemu-x86_64_defconfig
@@ -1,4 +1,5 @@ 
 CONFIG_X86=y
+CONFIG_BUILD_ROM=y
 CONFIG_SPL_LIBCOMMON_SUPPORT=y
 CONFIG_SPL_LIBGENERIC_SUPPORT=y
 CONFIG_SYS_MALLOC_F_LEN=0x1000
diff --git a/configs/qemu-x86_defconfig b/configs/qemu-x86_defconfig
index 7ce97ff091..346abf621d 100644
--- a/configs/qemu-x86_defconfig
+++ b/configs/qemu-x86_defconfig
@@ -1,4 +1,5 @@ 
 CONFIG_X86=y
+CONFIG_BUILD_ROM=y
 CONFIG_MAX_CPUS=2
 CONFIG_DEFAULT_DEVICE_TREE="qemu-x86_i440fx"
 CONFIG_SMP=y
diff --git a/doc/README.x86 b/doc/README.x86
index c96a22cb08..226c9af281 100644
--- a/doc/README.x86
+++ b/doc/README.x86
@@ -82,7 +82,7 @@  shipped in the U-Boot source tree. Due to this reason, the u-boot.rom build is
 not turned on by default in the U-Boot source tree. Firstly, you need turn it
 on by enabling the ROM build:
 
-$ export BUILD_ROM=y
+CONFIG_BUILD_ROM=y
 
 This tells the Makefile to build u-boot.rom as a target.