From: Alexandre Belloni <alexandre.belloni@bootlin.com>
To: "Tomás González" <tomasagustin.gonzalezorlando@arm.com>
Cc: openembedded-core@lists.openembedded.org
Subject: Re: [OE-core] [PATCH] bootimg-efi: Use the custom .dtb file's path as its final location
Date: Thu, 2 Mar 2023 12:28:21 +0100 [thread overview]
Message-ID: <ZACIVXsyg/JqFeP5@mail.local> (raw)
In-Reply-To: <20230301124551.159892-1-tomasagustin.gonzalezorlando@arm.com>
Hello,
This caused failures on the autobuilders:
https://autobuilder.yoctoproject.org/typhoon/#/builders/86/builds/4867/steps/14/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#/builders/80/builds/4820/steps/14/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#/builders/127/builds/1038/steps/14/logs/stdio
2023-03-01 23:29:40,420 - oe-selftest - INFO - wic.ModifyTests.test_dtb_efi (subunit.RemotedTestCase)
2023-03-01 23:29:40,421 - oe-selftest - INFO - ... FAIL
Stderr:
2023-03-01 21:39:12,759 - oe-selftest - INFO - Adding: "include selftest.inc" in /home/pokybuild/yocto-worker/oe-selftest-armhost/build/build-st-2963231/conf/local.conf
2023-03-01 21:39:12,760 - oe-selftest - INFO - Adding: "include bblayers.inc" in bblayers.conf
2023-03-01 23:29:40,421 - oe-selftest - INFO - 5: 28/34 407/524 (162.61s) (0 failed) (wic.ModifyTests.test_dtb_efi)
2023-03-01 23:29:40,422 - oe-selftest - INFO - testtools.testresult.real._StringException: Traceback (most recent call last):
File "/home/pokybuild/yocto-worker/oe-selftest-armhost/build/meta/lib/oeqa/selftest/cases/wic.py", line 1532, in test_dtb_efi
result = runCmd("wic ls %s:1/devicetree" % (image_path))
File "/home/pokybuild/yocto-worker/oe-selftest-armhost/build/meta/lib/oeqa/utils/commands.py", line 214, in runCmd
raise AssertionError("Command '%s' returned non-zero exit status %d:\n%s" % (command, result.status, exc_output))
AssertionError: Command 'wic ls /home/pokybuild/yocto-worker/oe-selftest-armhost/build/build-st-2963231/tmp/deploy/images/qemuarm64/core-image-minimal-qemuarm64.wic:1/devicetree' returned non-zero exit status 1:
ERROR: Can't find executable 'mdir'
This is a missing dependency on mtools-native.
On 01/03/2023 12:45:51+0000, Tom�s Gonz�lez wrote:
> From: tomasagustin.gonzalezorlando@arm.com
>
> When specifying a custom .dtb with the --sourceparams="dtb=<path>" parameter,
> the custom file is looked for in ${DEPLOY_DIR_IMAGE}/<path>, and the resulting
> grub config file is set to look for the .dtb under /<path> inside the boot
> partition. However, the file is not currently being copied there.
>
> Change the behaviour of the --sourceparams="dtb=<path>" parameter so that
> the custom .dtb file is copied under /<path> in the boot partition.
>
> Include oe-selftest to validate the functionality.
>
> Signed-off-by: Tom�s Gonz�lez <tomasagustin.gonzalezorlando@arm.com>
> ---
> .../recipes-test/dtb/devicetree-sample.bb | 8 +++
> .../dtb/files/sample-devicetree.dts | 69 +++++++++++++++++++
> meta-selftest/wic/test_dtb_efi.wks | 3 +
> meta/lib/oeqa/selftest/cases/wic.py | 16 +++++
> scripts/lib/wic/plugins/source/bootimg-efi.py | 2 +-
> 5 files changed, 97 insertions(+), 1 deletion(-)
> create mode 100644 meta-selftest/recipes-test/dtb/devicetree-sample.bb
> create mode 100644 meta-selftest/recipes-test/dtb/files/sample-devicetree.dts
> create mode 100644 meta-selftest/wic/test_dtb_efi.wks
>
> diff --git a/meta-selftest/recipes-test/dtb/devicetree-sample.bb b/meta-selftest/recipes-test/dtb/devicetree-sample.bb
> new file mode 100644
> index 0000000000..8be977a821
> --- /dev/null
> +++ b/meta-selftest/recipes-test/dtb/devicetree-sample.bb
> @@ -0,0 +1,8 @@
> +SUMMARY = "Device tree"
> +DESCRIPTION = "Contains a Device Tree recipe to be used to for testing."
> +
> +inherit devicetree
> +
> +SRC_URI += "file://sample-devicetree.dts"
> +
> +COMPATIBLE_MACHINE = ""
> diff --git a/meta-selftest/recipes-test/dtb/files/sample-devicetree.dts b/meta-selftest/recipes-test/dtb/files/sample-devicetree.dts
> new file mode 100644
> index 0000000000..71af0e117b
> --- /dev/null
> +++ b/meta-selftest/recipes-test/dtb/files/sample-devicetree.dts
> @@ -0,0 +1,69 @@
> +/dts-v1/;
> +/ {
> + compatible = "opencores,or1ksim";
> + #address-cells = <1>;
> + #size-cells = <1>;
> + interrupt-parent = <&pic>;
> +
> + aliases {
> + uart0 = &serial0;
> + };
> +
> + chosen {
> + bootargs = "earlycon";
> + stdout-path = "uart0:115200";
> + };
> +
> + memory@0 {
> + device_type = "memory";
> + reg = <0x00000000 0x02000000>;
> + };
> +
> + cpus {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + cpu@0 {
> + compatible = "opencores,or1200-rtlsvn481";
> + reg = <0>;
> + clock-frequency = <20000000>;
> + };
> + cpu@1 {
> + compatible = "opencores,or1200-rtlsvn481";
> + reg = <1>;
> + clock-frequency = <20000000>;
> + };
> + };
> +
> + ompic: ompic@98000000 {
> + compatible = "openrisc,ompic";
> + reg = <0x98000000 16>;
> + interrupt-controller;
> + #interrupt-cells = <0>;
> + interrupts = <1>;
> + };
> +
> + /*
> + * OR1K PIC is built into CPU and accessed via special purpose
> + * registers. It is not addressable and, hence, has no 'reg'
> + * property.
> + */
> + pic: pic {
> + compatible = "opencores,or1k-pic-level";
> + #interrupt-cells = <1>;
> + interrupt-controller;
> + };
> +
> + serial0: serial@90000000 {
> + compatible = "opencores,uart16550-rtlsvn105", "ns16550a";
> + reg = <0x90000000 0x100>;
> + interrupts = <2>;
> + clock-frequency = <20000000>;
> + };
> +
> + enet0: ethoc@92000000 {
> + compatible = "opencores,ethoc";
> + reg = <0x92000000 0x800>;
> + interrupts = <4>;
> + big-endian;
> + };
> +};
> diff --git a/meta-selftest/wic/test_dtb_efi.wks b/meta-selftest/wic/test_dtb_efi.wks
> new file mode 100644
> index 0000000000..61a7b1c9b4
> --- /dev/null
> +++ b/meta-selftest/wic/test_dtb_efi.wks
> @@ -0,0 +1,3 @@
> +part /boot --active --source bootimg-efi --sourceparams="loader=grub-efi,dtb=devicetree/sample-devicetree.dtb" --active --align 1024 --use-uuid --part-type EF00
> +part / --source rootfs --fstype=ext4 --align 1024 --use-uuid
> +bootloader --ptable gpt --timeout=1 --append="rootwait rootfstype=ext4 console=ttyS0,115200n8"
> diff --git a/meta/lib/oeqa/selftest/cases/wic.py b/meta/lib/oeqa/selftest/cases/wic.py
> index 0d664d7c39..d702c57679 100644
> --- a/meta/lib/oeqa/selftest/cases/wic.py
> +++ b/meta/lib/oeqa/selftest/cases/wic.py
> @@ -1512,3 +1512,19 @@ class ModifyTests(WicTestCase):
> # check if it's removed
> result = runCmd("wic ls %s:2/ -n %s" % (images[0], sysroot))
> self.assertTrue('etc' not in [line.split()[-1] for line in result.output.split('\n') if line])
> +
> + def test_dtb_efi(self):
> + """Test custom dtb"""
> + config = 'IMAGE_FSTYPES = "wic"\nWKS_FILE = "test_dtb_efi.wks"\nMACHINE_FEATURES:append = " efi"\n'
> + config += 'EXTRA_IMAGEDEPENDS = "devicetree-sample"\n'
> + self.append_config(config)
> + bitbake('core-image-minimal')
> +
> + deploy_dir = get_bb_var('DEPLOY_DIR_IMAGE')
> + machine = self.td['MACHINE']
> + image_path = os.path.join(deploy_dir, 'core-image-minimal-%s.wic' % machine)
> +
> + self.assertTrue(os.path.exists(image_path))
> +
> + result = runCmd("wic ls %s:1/devicetree" % (image_path))
> + self.assertTrue('sample-devicetree.dtb' in [line.split()[-1] for line in result.output.split('\n') if line])
> diff --git a/scripts/lib/wic/plugins/source/bootimg-efi.py b/scripts/lib/wic/plugins/source/bootimg-efi.py
> index 4b00913a70..69c427e01d 100644
> --- a/scripts/lib/wic/plugins/source/bootimg-efi.py
> +++ b/scripts/lib/wic/plugins/source/bootimg-efi.py
> @@ -51,7 +51,7 @@ class BootimgEFIPlugin(SourcePlugin):
> if dtb:
> if ';' in dtb:
> raise WicError("Only one DTB supported, exiting")
> - cp_cmd = "cp %s/%s %s" % (bootimg_dir, dtb, hdddir)
> + cp_cmd = "install -D %s/%s %s/%s" % (bootimg_dir, dtb, hdddir, dtb)
> exec_cmd(cp_cmd, True)
>
> @classmethod
> --
> 2.25.1
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#177885): https://lists.openembedded.org/g/openembedded-core/message/177885
> Mute This Topic: https://lists.openembedded.org/mt/97312887/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
prev parent reply other threads:[~2023-03-02 11:28 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-01 12:45 [PATCH] bootimg-efi: Use the custom .dtb file's path as its final location Tomás González
2023-03-02 11:28 ` Alexandre Belloni [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZACIVXsyg/JqFeP5@mail.local \
--to=alexandre.belloni@bootlin.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=tomasagustin.gonzalezorlando@arm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.