meta: introduce UBOOT_MKIMAGE_KERNEL_TYPE

Message ID 20220706111028.149100-1-liu.ming50@gmail.com
State New
Headers show
Series meta: introduce UBOOT_MKIMAGE_KERNEL_TYPE | expand

Commit Message

Ming Liu July 6, 2022, 11:10 a.m. UTC
From: Ming Liu <liu.ming50@gmail.com>

Sometimes an end user might want to choose another kernel type argument
for uboot-mkimage other than "kernel", for instance: "kernel_noload".

Let's introduce a variable UBOOT_MKIMAGE_KERNEL_TYPE to support that,
and it could be used by BSP layers as well.

Signed-off-by: Ming Liu <liu.ming50@gmail.com>
---
 meta/classes/kernel-fitimage.bbclass     | 2 +-
 meta/classes/kernel-uboot.bbclass        | 3 +++
 meta/classes/kernel-uimage.bbclass       | 2 +-
 meta/lib/oeqa/selftest/cases/fitimage.py | 3 ++-
 4 files changed, 7 insertions(+), 3 deletions(-)

Comments

Alexandre Belloni July 6, 2022, 2:06 p.m. UTC | #1
Hello,

On 06/07/2022 13:10:28+0200, Ming Liu wrote:
> From: Ming Liu <liu.ming50@gmail.com>
> 
> Sometimes an end user might want to choose another kernel type argument
> for uboot-mkimage other than "kernel", for instance: "kernel_noload".
> 
> Let's introduce a variable UBOOT_MKIMAGE_KERNEL_TYPE to support that,
> and it could be used by BSP layers as well.
> 
> Signed-off-by: Ming Liu <liu.ming50@gmail.com>
> ---
>  meta/classes/kernel-fitimage.bbclass     | 2 +-
>  meta/classes/kernel-uboot.bbclass        | 3 +++
>  meta/classes/kernel-uimage.bbclass       | 2 +-
>  meta/lib/oeqa/selftest/cases/fitimage.py | 3 ++-
>  4 files changed, 7 insertions(+), 3 deletions(-)
> 
> diff --git a/meta/classes/kernel-fitimage.bbclass b/meta/classes/kernel-fitimage.bbclass
> index 7e09b075ff..2112ae4cfa 100644
> --- a/meta/classes/kernel-fitimage.bbclass
> +++ b/meta/classes/kernel-fitimage.bbclass
> @@ -148,7 +148,7 @@ fitimage_emit_section_kernel() {
>                  kernel-$2 {
>                          description = "Linux kernel";
>                          data = /incbin/("$3");
> -                        type = "kernel";
> +                        type = "${UBOOT_MKIMAGE_KERNEL_TYPE}";
>                          arch = "${UBOOT_ARCH}";
>                          os = "linux";
>                          compression = "$4";
> diff --git a/meta/classes/kernel-uboot.bbclass b/meta/classes/kernel-uboot.bbclass
> index 2facade818..1bc98e042d 100644
> --- a/meta/classes/kernel-uboot.bbclass
> +++ b/meta/classes/kernel-uboot.bbclass
> @@ -2,6 +2,9 @@
>  FIT_KERNEL_COMP_ALG ?= "gzip"
>  FIT_KERNEL_COMP_ALG_EXTENSION ?= ".gz"
>  
> +# Kernel image type passed to mkimage (i.e. kernel kernel_noload...)
> +UBOOT_MKIMAGE_KERNEL_TYPE ?= "kernel"
> +
>  uboot_prep_kimage() {
>  	if [ -e arch/${ARCH}/boot/compressed/vmlinux ]; then
>  		vmlinux_path="arch/${ARCH}/boot/compressed/vmlinux"
> diff --git a/meta/classes/kernel-uimage.bbclass b/meta/classes/kernel-uimage.bbclass
> index cedb4fa070..e116bf0265 100644
> --- a/meta/classes/kernel-uimage.bbclass
> +++ b/meta/classes/kernel-uimage.bbclass
> @@ -30,6 +30,6 @@ do_uboot_mkimage() {
>  			awk '$3=="${UBOOT_ENTRYSYMBOL}" {print "0x"$1;exit}'`
>  	fi
>  
> -	uboot-mkimage -A ${UBOOT_ARCH} -O linux -T kernel -C "${linux_comp}" -a ${UBOOT_LOADADDRESS} -e $ENTRYPOINT -n "${DISTRO_NAME}/${PV}/${MACHINE}" -d linux.bin ${B}/arch/${ARCH}/boot/uImage
> +	uboot-mkimage -A ${UBOOT_ARCH} -O ${UBOOT_MKIMAGE_KERNEL_TYPE} -T kernel -C "${linux_comp}" -a ${UBOOT_LOADADDRESS} -e $ENTRYPOINT -n "${DISTRO_NAME}/${PV}/${MACHINE}" -d linux.bin ${B}/arch/${ARCH}/boot/uImage

I feel like you replace the wrong argument here.

>  	rm -f linux.bin
>  }
> diff --git a/meta/lib/oeqa/selftest/cases/fitimage.py b/meta/lib/oeqa/selftest/cases/fitimage.py
> index e6bfd1257e..7e6479c9ca 100644
> --- a/meta/lib/oeqa/selftest/cases/fitimage.py
> +++ b/meta/lib/oeqa/selftest/cases/fitimage.py
> @@ -763,6 +763,7 @@ FIT_HASH_ALG = "sha256"
>  
>          kernel_load = str(get_bb_var('UBOOT_LOADADDRESS'))
>          kernel_entry = str(get_bb_var('UBOOT_ENTRYPOINT'))
> +        kernel_type = str(get_bb_var('UBOOT_MKIMAGE_KERNEL_TYPE'))
>          kernel_compression = str(get_bb_var('FIT_KERNEL_COMP_ALG'))
>          uboot_arch = str(get_bb_var('UBOOT_ARCH'))
>          fit_hash_alg = str(get_bb_var('FIT_HASH_ALG'))
> @@ -775,7 +776,7 @@ FIT_HASH_ALG = "sha256"
>              'kernel-1 {',
>              'description = "Linux kernel";',
>              'data = /incbin/("linux.bin");',
> -            'type = "kernel";',
> +            'type = "' + kernel_type + '";',
>              'arch = "' + uboot_arch + '";',
>              'os = "linux";',
>              'compression = "' + kernel_compression + '";',
> -- 
> 2.25.1
> 

> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#167719): https://lists.openembedded.org/g/openembedded-core/message/167719
> Mute This Topic: https://lists.openembedded.org/mt/92204115/3617179
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Ming Liu July 7, 2022, 9:53 a.m. UTC | #2
Hi, Alexandre:

Thanks for the review, I did not quite follow you, you meant the 'type'
argument being replaced wrongly? I dont see how. Could you share some
details about your comment?

//Ming Liu

Alexandre Belloni <alexandre.belloni@bootlin.com> 於 2022年7月6日 週三 下午4:06寫道:

> Hello,
>
> On 06/07/2022 13:10:28+0200, Ming Liu wrote:
> > From: Ming Liu <liu.ming50@gmail.com>
> >
> > Sometimes an end user might want to choose another kernel type argument
> > for uboot-mkimage other than "kernel", for instance: "kernel_noload".
> >
> > Let's introduce a variable UBOOT_MKIMAGE_KERNEL_TYPE to support that,
> > and it could be used by BSP layers as well.
> >
> > Signed-off-by: Ming Liu <liu.ming50@gmail.com>
> > ---
> >  meta/classes/kernel-fitimage.bbclass     | 2 +-
> >  meta/classes/kernel-uboot.bbclass        | 3 +++
> >  meta/classes/kernel-uimage.bbclass       | 2 +-
> >  meta/lib/oeqa/selftest/cases/fitimage.py | 3 ++-
> >  4 files changed, 7 insertions(+), 3 deletions(-)
> >
> > diff --git a/meta/classes/kernel-fitimage.bbclass
> b/meta/classes/kernel-fitimage.bbclass
> > index 7e09b075ff..2112ae4cfa 100644
> > --- a/meta/classes/kernel-fitimage.bbclass
> > +++ b/meta/classes/kernel-fitimage.bbclass
> > @@ -148,7 +148,7 @@ fitimage_emit_section_kernel() {
> >                  kernel-$2 {
> >                          description = "Linux kernel";
> >                          data = /incbin/("$3");
> > -                        type = "kernel";
> > +                        type = "${UBOOT_MKIMAGE_KERNEL_TYPE}";
> >                          arch = "${UBOOT_ARCH}";
> >                          os = "linux";
> >                          compression = "$4";
> > diff --git a/meta/classes/kernel-uboot.bbclass
> b/meta/classes/kernel-uboot.bbclass
> > index 2facade818..1bc98e042d 100644
> > --- a/meta/classes/kernel-uboot.bbclass
> > +++ b/meta/classes/kernel-uboot.bbclass
> > @@ -2,6 +2,9 @@
> >  FIT_KERNEL_COMP_ALG ?= "gzip"
> >  FIT_KERNEL_COMP_ALG_EXTENSION ?= ".gz"
> >
> > +# Kernel image type passed to mkimage (i.e. kernel kernel_noload...)
> > +UBOOT_MKIMAGE_KERNEL_TYPE ?= "kernel"
> > +
> >  uboot_prep_kimage() {
> >       if [ -e arch/${ARCH}/boot/compressed/vmlinux ]; then
> >               vmlinux_path="arch/${ARCH}/boot/compressed/vmlinux"
> > diff --git a/meta/classes/kernel-uimage.bbclass
> b/meta/classes/kernel-uimage.bbclass
> > index cedb4fa070..e116bf0265 100644
> > --- a/meta/classes/kernel-uimage.bbclass
> > +++ b/meta/classes/kernel-uimage.bbclass
> > @@ -30,6 +30,6 @@ do_uboot_mkimage() {
> >                       awk '$3=="${UBOOT_ENTRYSYMBOL}" {print
> "0x"$1;exit}'`
> >       fi
> >
> > -     uboot-mkimage -A ${UBOOT_ARCH} -O linux -T kernel -C
> "${linux_comp}" -a ${UBOOT_LOADADDRESS} -e $ENTRYPOINT -n
> "${DISTRO_NAME}/${PV}/${MACHINE}" -d linux.bin ${B}/arch/${ARCH}/boot/uImage
> > +     uboot-mkimage -A ${UBOOT_ARCH} -O ${UBOOT_MKIMAGE_KERNEL_TYPE} -T
> kernel -C "${linux_comp}" -a ${UBOOT_LOADADDRESS} -e $ENTRYPOINT -n
> "${DISTRO_NAME}/${PV}/${MACHINE}" -d linux.bin ${B}/arch/${ARCH}/boot/uImage
>
> I feel like you replace the wrong argument here.
>
> >       rm -f linux.bin
> >  }
> > diff --git a/meta/lib/oeqa/selftest/cases/fitimage.py
> b/meta/lib/oeqa/selftest/cases/fitimage.py
> > index e6bfd1257e..7e6479c9ca 100644
> > --- a/meta/lib/oeqa/selftest/cases/fitimage.py
> > +++ b/meta/lib/oeqa/selftest/cases/fitimage.py
> > @@ -763,6 +763,7 @@ FIT_HASH_ALG = "sha256"
> >
> >          kernel_load = str(get_bb_var('UBOOT_LOADADDRESS'))
> >          kernel_entry = str(get_bb_var('UBOOT_ENTRYPOINT'))
> > +        kernel_type = str(get_bb_var('UBOOT_MKIMAGE_KERNEL_TYPE'))
> >          kernel_compression = str(get_bb_var('FIT_KERNEL_COMP_ALG'))
> >          uboot_arch = str(get_bb_var('UBOOT_ARCH'))
> >          fit_hash_alg = str(get_bb_var('FIT_HASH_ALG'))
> > @@ -775,7 +776,7 @@ FIT_HASH_ALG = "sha256"
> >              'kernel-1 {',
> >              'description = "Linux kernel";',
> >              'data = /incbin/("linux.bin");',
> > -            'type = "kernel";',
> > +            'type = "' + kernel_type + '";',
> >              'arch = "' + uboot_arch + '";',
> >              'os = "linux";',
> >              'compression = "' + kernel_compression + '";',
> > --
> > 2.25.1
> >
>
> >
> > -=-=-=-=-=-=-=-=-=-=-=-
> > Links: You receive all messages sent to this group.
> > View/Reply Online (#167719):
> https://lists.openembedded.org/g/openembedded-core/message/167719
> > Mute This Topic: https://lists.openembedded.org/mt/92204115/3617179
> > Group Owner: openembedded-core+owner@lists.openembedded.org
> > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [
> alexandre.belloni@bootlin.com]
> > -=-=-=-=-=-=-=-=-=-=-=-
> >
>
>
> --
> Alexandre Belloni, co-owner and COO, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
>
Alexandre Belloni July 7, 2022, 10:26 a.m. UTC | #3
On 07/07/2022 11:53:19+0200, Ming Liu wrote:
> Hi, Alexandre:
> 
> Thanks for the review, I did not quite follow you, you meant the 'type'
> argument being replaced wrongly? I dont see how. Could you share some
> details about your comment?
> 

See below...

> //Ming Liu
> 
> Alexandre Belloni <alexandre.belloni@bootlin.com> 於 2022年7月6日 週三 下午4:06寫道:
> 
> > Hello,
> >
> > On 06/07/2022 13:10:28+0200, Ming Liu wrote:
> > > From: Ming Liu <liu.ming50@gmail.com>
> > >
> > > Sometimes an end user might want to choose another kernel type argument
> > > for uboot-mkimage other than "kernel", for instance: "kernel_noload".
> > >
> > > Let's introduce a variable UBOOT_MKIMAGE_KERNEL_TYPE to support that,
> > > and it could be used by BSP layers as well.
> > >
> > > Signed-off-by: Ming Liu <liu.ming50@gmail.com>
> > > ---
> > >  meta/classes/kernel-fitimage.bbclass     | 2 +-
> > >  meta/classes/kernel-uboot.bbclass        | 3 +++
> > >  meta/classes/kernel-uimage.bbclass       | 2 +-
> > >  meta/lib/oeqa/selftest/cases/fitimage.py | 3 ++-
> > >  4 files changed, 7 insertions(+), 3 deletions(-)
> > >
> > > diff --git a/meta/classes/kernel-fitimage.bbclass
> > b/meta/classes/kernel-fitimage.bbclass
> > > index 7e09b075ff..2112ae4cfa 100644
> > > --- a/meta/classes/kernel-fitimage.bbclass
> > > +++ b/meta/classes/kernel-fitimage.bbclass
> > > @@ -148,7 +148,7 @@ fitimage_emit_section_kernel() {
> > >                  kernel-$2 {
> > >                          description = "Linux kernel";
> > >                          data = /incbin/("$3");
> > > -                        type = "kernel";
> > > +                        type = "${UBOOT_MKIMAGE_KERNEL_TYPE}";
> > >                          arch = "${UBOOT_ARCH}";
> > >                          os = "linux";
> > >                          compression = "$4";
> > > diff --git a/meta/classes/kernel-uboot.bbclass
> > b/meta/classes/kernel-uboot.bbclass
> > > index 2facade818..1bc98e042d 100644
> > > --- a/meta/classes/kernel-uboot.bbclass
> > > +++ b/meta/classes/kernel-uboot.bbclass
> > > @@ -2,6 +2,9 @@
> > >  FIT_KERNEL_COMP_ALG ?= "gzip"
> > >  FIT_KERNEL_COMP_ALG_EXTENSION ?= ".gz"
> > >
> > > +# Kernel image type passed to mkimage (i.e. kernel kernel_noload...)
> > > +UBOOT_MKIMAGE_KERNEL_TYPE ?= "kernel"
> > > +
> > >  uboot_prep_kimage() {
> > >       if [ -e arch/${ARCH}/boot/compressed/vmlinux ]; then
> > >               vmlinux_path="arch/${ARCH}/boot/compressed/vmlinux"
> > > diff --git a/meta/classes/kernel-uimage.bbclass
> > b/meta/classes/kernel-uimage.bbclass
> > > index cedb4fa070..e116bf0265 100644
> > > --- a/meta/classes/kernel-uimage.bbclass
> > > +++ b/meta/classes/kernel-uimage.bbclass
> > > @@ -30,6 +30,6 @@ do_uboot_mkimage() {
> > >                       awk '$3=="${UBOOT_ENTRYSYMBOL}" {print
> > "0x"$1;exit}'`
> > >       fi
> > >
> > > -     uboot-mkimage -A ${UBOOT_ARCH} -O linux -T kernel -C
> > "${linux_comp}" -a ${UBOOT_LOADADDRESS} -e $ENTRYPOINT -n
> > "${DISTRO_NAME}/${PV}/${MACHINE}" -d linux.bin ${B}/arch/${ARCH}/boot/uImage
> > > +     uboot-mkimage -A ${UBOOT_ARCH} -O ${UBOOT_MKIMAGE_KERNEL_TYPE} -T
> > kernel -C "${linux_comp}" -a ${UBOOT_LOADADDRESS} -e $ENTRYPOINT -n
> > "${DISTRO_NAME}/${PV}/${MACHINE}" -d linux.bin ${B}/arch/${ARCH}/boot/uImage
> >
> > I feel like you replace the wrong argument here.

You replace 6O linux by -O ${UBOOT_MKIMAGE_KERNEL_TYPE} while your
commit message suggests you want to replace -T kernel.


> >
> > >       rm -f linux.bin
> > >  }
> > > diff --git a/meta/lib/oeqa/selftest/cases/fitimage.py
> > b/meta/lib/oeqa/selftest/cases/fitimage.py
> > > index e6bfd1257e..7e6479c9ca 100644
> > > --- a/meta/lib/oeqa/selftest/cases/fitimage.py
> > > +++ b/meta/lib/oeqa/selftest/cases/fitimage.py
> > > @@ -763,6 +763,7 @@ FIT_HASH_ALG = "sha256"
> > >
> > >          kernel_load = str(get_bb_var('UBOOT_LOADADDRESS'))
> > >          kernel_entry = str(get_bb_var('UBOOT_ENTRYPOINT'))
> > > +        kernel_type = str(get_bb_var('UBOOT_MKIMAGE_KERNEL_TYPE'))
> > >          kernel_compression = str(get_bb_var('FIT_KERNEL_COMP_ALG'))
> > >          uboot_arch = str(get_bb_var('UBOOT_ARCH'))
> > >          fit_hash_alg = str(get_bb_var('FIT_HASH_ALG'))
> > > @@ -775,7 +776,7 @@ FIT_HASH_ALG = "sha256"
> > >              'kernel-1 {',
> > >              'description = "Linux kernel";',
> > >              'data = /incbin/("linux.bin");',
> > > -            'type = "kernel";',
> > > +            'type = "' + kernel_type + '";',
> > >              'arch = "' + uboot_arch + '";',
> > >              'os = "linux";',
> > >              'compression = "' + kernel_compression + '";',
> > > --
> > > 2.25.1
> > >
> >
> > >
> > > 
> > >
> >
> >
> > --
> > Alexandre Belloni, co-owner and COO, Bootlin
> > Embedded Linux and Kernel engineering
> > https://bootlin.com
> >

Patch

diff --git a/meta/classes/kernel-fitimage.bbclass b/meta/classes/kernel-fitimage.bbclass
index 7e09b075ff..2112ae4cfa 100644
--- a/meta/classes/kernel-fitimage.bbclass
+++ b/meta/classes/kernel-fitimage.bbclass
@@ -148,7 +148,7 @@  fitimage_emit_section_kernel() {
                 kernel-$2 {
                         description = "Linux kernel";
                         data = /incbin/("$3");
-                        type = "kernel";
+                        type = "${UBOOT_MKIMAGE_KERNEL_TYPE}";
                         arch = "${UBOOT_ARCH}";
                         os = "linux";
                         compression = "$4";
diff --git a/meta/classes/kernel-uboot.bbclass b/meta/classes/kernel-uboot.bbclass
index 2facade818..1bc98e042d 100644
--- a/meta/classes/kernel-uboot.bbclass
+++ b/meta/classes/kernel-uboot.bbclass
@@ -2,6 +2,9 @@ 
 FIT_KERNEL_COMP_ALG ?= "gzip"
 FIT_KERNEL_COMP_ALG_EXTENSION ?= ".gz"
 
+# Kernel image type passed to mkimage (i.e. kernel kernel_noload...)
+UBOOT_MKIMAGE_KERNEL_TYPE ?= "kernel"
+
 uboot_prep_kimage() {
 	if [ -e arch/${ARCH}/boot/compressed/vmlinux ]; then
 		vmlinux_path="arch/${ARCH}/boot/compressed/vmlinux"
diff --git a/meta/classes/kernel-uimage.bbclass b/meta/classes/kernel-uimage.bbclass
index cedb4fa070..e116bf0265 100644
--- a/meta/classes/kernel-uimage.bbclass
+++ b/meta/classes/kernel-uimage.bbclass
@@ -30,6 +30,6 @@  do_uboot_mkimage() {
 			awk '$3=="${UBOOT_ENTRYSYMBOL}" {print "0x"$1;exit}'`
 	fi
 
-	uboot-mkimage -A ${UBOOT_ARCH} -O linux -T kernel -C "${linux_comp}" -a ${UBOOT_LOADADDRESS} -e $ENTRYPOINT -n "${DISTRO_NAME}/${PV}/${MACHINE}" -d linux.bin ${B}/arch/${ARCH}/boot/uImage
+	uboot-mkimage -A ${UBOOT_ARCH} -O ${UBOOT_MKIMAGE_KERNEL_TYPE} -T kernel -C "${linux_comp}" -a ${UBOOT_LOADADDRESS} -e $ENTRYPOINT -n "${DISTRO_NAME}/${PV}/${MACHINE}" -d linux.bin ${B}/arch/${ARCH}/boot/uImage
 	rm -f linux.bin
 }
diff --git a/meta/lib/oeqa/selftest/cases/fitimage.py b/meta/lib/oeqa/selftest/cases/fitimage.py
index e6bfd1257e..7e6479c9ca 100644
--- a/meta/lib/oeqa/selftest/cases/fitimage.py
+++ b/meta/lib/oeqa/selftest/cases/fitimage.py
@@ -763,6 +763,7 @@  FIT_HASH_ALG = "sha256"
 
         kernel_load = str(get_bb_var('UBOOT_LOADADDRESS'))
         kernel_entry = str(get_bb_var('UBOOT_ENTRYPOINT'))
+        kernel_type = str(get_bb_var('UBOOT_MKIMAGE_KERNEL_TYPE'))
         kernel_compression = str(get_bb_var('FIT_KERNEL_COMP_ALG'))
         uboot_arch = str(get_bb_var('UBOOT_ARCH'))
         fit_hash_alg = str(get_bb_var('FIT_HASH_ALG'))
@@ -775,7 +776,7 @@  FIT_HASH_ALG = "sha256"
             'kernel-1 {',
             'description = "Linux kernel";',
             'data = /incbin/("linux.bin");',
-            'type = "kernel";',
+            'type = "' + kernel_type + '";',
             'arch = "' + uboot_arch + '";',
             'os = "linux";',
             'compression = "' + kernel_compression + '";',