Patchwork [RFC] Add KERNEL_EXTRA_ARGS parameter

login
register
mail settings
Submitter Wolfgang Denk
Date April 29, 2012, 10:03 a.m.
Message ID <1335693807-17609-1-git-send-email-wd@denx.de>
Download mbox | patch
Permalink /patch/26571/
State New
Headers show

Comments

Wolfgang Denk - April 29, 2012, 10:03 a.m.
With recent kernel versions, some ARM configurations need may fail to
build with errors like this:

	multiple load addresses: 0x80008000 0x80008000
	This is incompatible with uImages
	Specify LOADADDR on the commandline to build an uImage

Add KERNEL_EXTRA_ARGS parameter so affected boards can add for example

	KERNEL_EXTRA_ARGS = "LOADADDR=0x80008000"

to their configuration.  We make this general enough so other needed
command line options can be passed as well when compiling the kernel.

Signed-off-by: Wolfgang Denk <wd@denx.de>
---
 meta/classes/kernel.bbclass |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)
Khem Raj - April 29, 2012, 3:41 p.m.
On Sun, Apr 29, 2012 at 3:03 AM, Wolfgang Denk <wd@denx.de> wrote:
> With recent kernel versions, some ARM configurations need may fail to
> build with errors like this:
>
>        multiple load addresses: 0x80008000 0x80008000
>        This is incompatible with uImages
>        Specify LOADADDR on the commandline to build an uImage
>
> Add KERNEL_EXTRA_ARGS parameter so affected boards can add for example
>
>        KERNEL_EXTRA_ARGS = "LOADADDR=0x80008000"
>
> to their configuration.  We make this general enough so other needed
> command line options can be passed as well when compiling the kernel.

will EXTRA_OEMAKE = "..." work ?
Wolfgang Denk - April 30, 2012, 9:03 p.m.
Dear Khem Raj,

In message <CAMKF1so3xwMOB30-yogUL9jCuHoTEsMgTDRxTLWKT_dYn-LkuQ@mail.gmail.com> you wrote:
>
> > Add KERNEL_EXTRA_ARGS parameter so affected boards can add for example
> >
> >        KERNEL_EXTRA_ARGS = "LOADADDR=0x80008000"
> >
> > to their configuration.  We make this general enough so other needed
> > command line options can be passed as well when compiling the kernel.
> 
> will EXTRA_OEMAKE = "..." work ?

No, it will not, as "meta/classes/kernel.bbclass" explicitly ignores
all EXTRA_OEMAKE settings:

...
# For the kernel, we don't want the '-e MAKEFLAGS=' in EXTRA_OEMAKE.
# We don't want to override kernel Makefile variables from the environment
EXTRA_OEMAKE = ""
...


Best regards,

Wolfgang Denk

Patch

diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
index 139bad9..7a554f0 100644
--- a/meta/classes/kernel.bbclass
+++ b/meta/classes/kernel.bbclass
@@ -71,6 +71,9 @@  PACKAGE_ARCH = "${MACHINE_ARCH}"
 UBOOT_ENTRYPOINT ?= "20008000"
 UBOOT_LOADADDRESS ?= "${UBOOT_ENTRYPOINT}"
 
+# Some Linux kenrel configurations need additional parameters on the command line
+KERNEL_EXTRA_ARGS ?= ""
+
 # For the kernel, we don't want the '-e MAKEFLAGS=' in EXTRA_OEMAKE.
 # We don't want to override kernel Makefile variables from the environment
 EXTRA_OEMAKE = ""
@@ -82,7 +85,7 @@  KERNEL_IMAGETYPE_FOR_MAKE = "${@(lambda s: s[:-3] if s[-3:] == ".gz" else s)(d.g
 kernel_do_compile() {
 	unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
 	oe_runmake include/linux/version.h CC="${KERNEL_CC}" LD="${KERNEL_LD}"
-	oe_runmake ${KERNEL_IMAGETYPE_FOR_MAKE} ${KERNEL_ALT_IMAGETYPE} CC="${KERNEL_CC}" LD="${KERNEL_LD}"
+	oe_runmake ${KERNEL_IMAGETYPE_FOR_MAKE} ${KERNEL_ALT_IMAGETYPE} CC="${KERNEL_CC}" LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS}
 	if test "${KERNEL_IMAGETYPE_FOR_MAKE}.gz" = "${KERNEL_IMAGETYPE}"; then
 		gzip -9c < "${KERNEL_IMAGETYPE_FOR_MAKE}" > "${KERNEL_OUTPUT}"
 	fi