summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
Diffstat (limited to 'meta')
-rw-r--r--meta/classes-recipe/uboot-config.bbclass15
-rw-r--r--meta/recipes-bsp/u-boot/u-boot-configure.inc18
-rw-r--r--meta/recipes-bsp/u-boot/u-boot.inc16
3 files changed, 42 insertions, 7 deletions
diff --git a/meta/classes-recipe/uboot-config.bbclass b/meta/classes-recipe/uboot-config.bbclass
index bc20913f73..eb82dd3583 100644
--- a/meta/classes-recipe/uboot-config.bbclass
+++ b/meta/classes-recipe/uboot-config.bbclass
@@ -35,6 +35,7 @@ UBOOT_BINARYNAME ?= "${@os.path.splitext(d.getVar("UBOOT_BINARY"))[0]}"
35UBOOT_IMAGE ?= "${UBOOT_BINARYNAME}-${MACHINE}-${UBOOT_VERSION}.${UBOOT_SUFFIX}" 35UBOOT_IMAGE ?= "${UBOOT_BINARYNAME}-${MACHINE}-${UBOOT_VERSION}.${UBOOT_SUFFIX}"
36UBOOT_SYMLINK ?= "${UBOOT_BINARYNAME}-${MACHINE}.${UBOOT_SUFFIX}" 36UBOOT_SYMLINK ?= "${UBOOT_BINARYNAME}-${MACHINE}.${UBOOT_SUFFIX}"
37UBOOT_MAKE_TARGET ?= "all" 37UBOOT_MAKE_TARGET ?= "all"
38UBOOT_MAKE_OPTS ?= ""
38 39
39# Output the ELF generated. Some platforms can use the ELF file and directly 40# Output the ELF generated. Some platforms can use the ELF file and directly
40# load it (JTAG booting, QEMU) additionally the ELF can be used for debugging 41# load it (JTAG booting, QEMU) additionally the ELF can be used for debugging
@@ -103,6 +104,7 @@ python () {
103 ubootconfigflags = d.getVarFlags('UBOOT_CONFIG') 104 ubootconfigflags = d.getVarFlags('UBOOT_CONFIG')
104 ubootbinary = d.getVar('UBOOT_BINARY') 105 ubootbinary = d.getVar('UBOOT_BINARY')
105 ubootbinaries = d.getVar('UBOOT_BINARIES') 106 ubootbinaries = d.getVar('UBOOT_BINARIES')
107 ubootconfigmakeopts = d.getVar('UBOOT_CONFIG_MAKE_OPTS')
106 # The "doc" varflag is special, we don't want to see it here 108 # The "doc" varflag is special, we don't want to see it here
107 ubootconfigflags.pop('doc', None) 109 ubootconfigflags.pop('doc', None)
108 ubootconfig = (d.getVar('UBOOT_CONFIG') or "").split() 110 ubootconfig = (d.getVar('UBOOT_CONFIG') or "").split()
@@ -120,6 +122,9 @@ python () {
120 if ubootconfigflags and ubootbinaries: 122 if ubootconfigflags and ubootbinaries:
121 raise bb.parse.SkipRecipe("You cannot use UBOOT_BINARIES as it is internal to uboot_config.bbclass.") 123 raise bb.parse.SkipRecipe("You cannot use UBOOT_BINARIES as it is internal to uboot_config.bbclass.")
122 124
125 if ubootconfigflags and ubootconfigmakeopts:
126 raise bb.parse.SkipRecipe("You cannot use UBOOT_CONFIG_MAKE_OPTS as it is internal to uboot_config.bbclass.")
127
123 if len(ubootconfig) > 0: 128 if len(ubootconfig) > 0:
124 for config in ubootconfig: 129 for config in ubootconfig:
125 found = False 130 found = False
@@ -127,8 +132,8 @@ python () {
127 if config == f: 132 if config == f:
128 found = True 133 found = True
129 items = v.split(',') 134 items = v.split(',')
130 if items[0] and len(items) > 3: 135 if items[0] and len(items) > 4:
131 raise bb.parse.SkipRecipe('Only config,images,binary can be specified!') 136 raise bb.parse.SkipRecipe('Only config,images,binary,make_opts can be specified!')
132 d.appendVar('UBOOT_MACHINE', ' ' + items[0]) 137 d.appendVar('UBOOT_MACHINE', ' ' + items[0])
133 # IMAGE_FSTYPES appending 138 # IMAGE_FSTYPES appending
134 if len(items) > 1 and items[1]: 139 if len(items) > 1 and items[1]:
@@ -140,6 +145,12 @@ python () {
140 else: 145 else:
141 bb.debug(1, "Appending '%s' to UBOOT_BINARIES." % ubootbinary) 146 bb.debug(1, "Appending '%s' to UBOOT_BINARIES." % ubootbinary)
142 d.appendVar('UBOOT_BINARIES', ' ' + ubootbinary) 147 d.appendVar('UBOOT_BINARIES', ' ' + ubootbinary)
148 if len(items) > 3 and items[3]:
149 bb.debug(1, "Appending '%s' to UBOOT_CONFIG_MAKE_OPTS." % items[3])
150 d.appendVar('UBOOT_CONFIG_MAKE_OPTS', items[3] + " ? ")
151 else:
152 bb.debug(1, "Appending '%s' to UBOOT_CONFIG_MAKE_OPTS." % "")
153 d.appendVar('UBOOT_CONFIG_MAKE_OPTS', " ? ")
143 break 154 break
144 155
145 if not found: 156 if not found:
diff --git a/meta/recipes-bsp/u-boot/u-boot-configure.inc b/meta/recipes-bsp/u-boot/u-boot-configure.inc
index a15511f8b2..bada506b66 100644
--- a/meta/recipes-bsp/u-boot/u-boot-configure.inc
+++ b/meta/recipes-bsp/u-boot/u-boot-configure.inc
@@ -33,7 +33,19 @@ uboot_configure_config () {
33 config=$1 33 config=$1
34 type=$2 34 type=$2
35 35
36 oe_runmake -C ${S} O=${B}/${config} ${config} 36 unset k
37 IFS="?"
38 uboot_config_make_opts="${UBOOT_CONFIG_MAKE_OPTS}"
39 for config_make_opts in $uboot_config_make_opts; do
40 k=$(expr $k + 1);
41 if [ $k -eq $i ]; then
42 break
43 fi
44 done
45 unset IFS
46 unset k
47
48 oe_runmake -C ${S} O=${B}/${config} ${config_make_opts} ${UBOOT_MAKE_OPTS} ${config}
37 if [ -n "${@' '.join(find_cfgs(d))}" ]; then 49 if [ -n "${@' '.join(find_cfgs(d))}" ]; then
38 merge_config.sh -m -O ${B}/${config} ${B}/${config}/.config ${@" ".join(find_cfgs(d))} 50 merge_config.sh -m -O ${B}/${config} ${B}/${config}/.config ${@" ".join(find_cfgs(d))}
39 oe_runmake -C ${S} O=${B}/${config} oldconfig 51 oe_runmake -C ${S} O=${B}/${config} oldconfig
@@ -42,9 +54,9 @@ uboot_configure_config () {
42 54
43uboot_configure () { 55uboot_configure () {
44 if [ -n "${UBOOT_MACHINE}" ]; then 56 if [ -n "${UBOOT_MACHINE}" ]; then
45 oe_runmake -C ${S} O=${B} ${UBOOT_MACHINE} 57 oe_runmake -C ${S} O=${B} ${UBOOT_MAKE_OPTS} ${UBOOT_MACHINE}
46 else 58 else
47 oe_runmake -C ${S} O=${B} oldconfig 59 oe_runmake -C ${S} O=${B} ${UBOOT_MAKE_OPTS} oldconfig
48 fi 60 fi
49 merge_config.sh -m .config ${@" ".join(find_cfgs(d))} 61 merge_config.sh -m .config ${@" ".join(find_cfgs(d))}
50 cml1_do_configure 62 cml1_do_configure
diff --git a/meta/recipes-bsp/u-boot/u-boot.inc b/meta/recipes-bsp/u-boot/u-boot.inc
index b7242de5de..e0a69e740e 100644
--- a/meta/recipes-bsp/u-boot/u-boot.inc
+++ b/meta/recipes-bsp/u-boot/u-boot.inc
@@ -75,7 +75,19 @@ uboot_compile_config () {
75 config=$2 75 config=$2
76 type=$3 76 type=$3
77 77
78 oe_runmake -C ${S} O=${B}/${config} ${UBOOT_MAKE_TARGET} 78 unset k
79 IFS="?"
80 uboot_config_make_opts="${UBOOT_CONFIG_MAKE_OPTS}"
81 for config_make_opts in $uboot_config_make_opts; do
82 k=$(expr $k + 1);
83 if [ $k -eq $i ]; then
84 break
85 fi
86 done
87 unset IFS
88 unset k
89
90 oe_runmake -C ${S} O=${B}/${config} ${config_make_opts} ${UBOOT_MAKE_OPTS} ${UBOOT_MAKE_TARGET}
79 91
80 unset k 92 unset k
81 for binary in ${UBOOT_BINARIES}; do 93 for binary in ${UBOOT_BINARIES}; do
@@ -102,7 +114,7 @@ uboot_compile_config_copy_binary () {
102} 114}
103 115
104uboot_compile () { 116uboot_compile () {
105 oe_runmake -C ${S} O=${B} ${UBOOT_MAKE_TARGET} 117 oe_runmake -C ${S} O=${B} ${UBOOT_MAKE_OPTS} ${UBOOT_MAKE_TARGET}
106 118
107 # Generate the uboot-initial-env 119 # Generate the uboot-initial-env
108 if [ -n "${UBOOT_INITIAL_ENV}" ]; then 120 if [ -n "${UBOOT_INITIAL_ENV}" ]; then