<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/poky.git/meta/classes-recipe/baremetal-image.bbclass, branch genericarm64</title>
<subtitle>Mirror of git.yoctoproject.org/poky</subtitle>
<id>https://git.enea.com/cgit/linux/poky.git/atom?h=genericarm64</id>
<link rel='self' href='https://git.enea.com/cgit/linux/poky.git/atom?h=genericarm64'/>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/'/>
<updated>2024-01-18T10:15:58+00:00</updated>
<entry>
<title>classes/recipes: Switch to use inherit_defer</title>
<updated>2024-01-18T10:15:58+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2023-12-31T13:27:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=c917323a39da6fc3e8d92b2fe907d0357149c9bb'/>
<id>urn:sha1:c917323a39da6fc3e8d92b2fe907d0357149c9bb</id>
<content type='text'>
Now that bitbake supports the use of inherit_defer, switch all conditional
(variable based) inherits to use this instead. This leads to more a more
deterministic user experience since there is no longer an immediate expansion
and later changes to the variables in question (e.g. a bbappend) are
accounted for.

This patch tries to ensure the behaviour before/after remains as unchanged
as it reasonably can, e.g. by always inherting populate_sdk_base. native
and nativesdk continue to need to be inherited last, hence being used
with inherit_defer in a handful of very specific cases.

(From OE-Core rev: 451363438d38bd4552d5bcec4a92332f5819a5d4)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>baremetal-helloworld: Enable x86 and x86-64 ports</title>
<updated>2023-01-12T23:08:58+00:00</updated>
<author>
<name>Alejandro Hernandez Samaniego</name>
<email>alejandro@enedino.org</email>
</author>
<published>2023-01-08T19:15:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=1149b4fbb6002aa5a4cfe90bd404834721593968'/>
<id>urn:sha1:1149b4fbb6002aa5a4cfe90bd404834721593968</id>
<content type='text'>
- The qemux86 port for helloworld-baremetal builds in the standard way, however,
  it uses NASM syntax for the startup code, hence we include a dependency to
  nasm-native, QEMU forces us to use an ELF file rather than a bin file to boot
  from this architecture using the -kernel parameter.

- QEMU refuses to boot using the -kernel parameter for files containing an ELF64
  header [1], instead, it requires a multiboot2 compatible image.

  We could create an image that contains a multiboot2 header by piggybacking
  into grub2-native, specifically grub-mkrescue, but it requires some extra
  runtime dependencies (xorriso which is currently part of meta-oe), and assumes
  a grub installation exists on the host.

  Due to host contamination and dependency complications, we dont rely on grub2,
  but rather do this process manually instead, the x86-64 port contains a stage1
  bootloader, stage2 bootloader and a 64 bit baremetal app (multiboot2
  compatible), booting into real (16 bit), protected (32 bit) and long (64 bit)
  modes, eventually running the helloworld-baremetal app. This is the reason why
  we need the code changes to use a separate Makefile, and create an image
  specifically for qemux86-64.

$ runqemu nographic
Booting from ROM..
Hello OpenEmbedded on x86!

$ runqemu nographic
Starting Stage 1 Bootloader
Loading Stage 2 Bootloader
Stage 2 Loaded.
Jumping to Stage2 Bootloader
In Stage 2
Done

Hello OpenEmbedded on x86-64!

[1] https://gitlab.com/qemu-project/qemu/-/blob/v7.2.0/hw/i386/multiboot.c#L199

(From OE-Core rev: 1dffd81b2991f90ab95cb36d8ff7626efd21434f)

Signed-off-by: Alejandro Enedino Hernandez Samaniego &lt;alejandro@enedino.org&gt;
Signed-off-by: Alexandre Belloni &lt;alexandre.belloni@bootlin.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>baremetal-image: Avoid overriding qemu variables from IMAGE_CLASSES</title>
<updated>2022-12-09T13:18:41+00:00</updated>
<author>
<name>Alejandro Hernandez Samaniego</name>
<email>alejandro@enedino.org</email>
</author>
<published>2022-12-08T18:43:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=0cde767afc95ed54d635fd9f149198937cfb65eb'/>
<id>urn:sha1:0cde767afc95ed54d635fd9f149198937cfb65eb</id>
<content type='text'>
Since qemuboot is part of IMAGE_CLASSES via qemu.inc it is being
inherited before we set the QB_FOO variables.
Since our variables have conditional definitions and at that point
they've already been defined by qemuboot, we can no longer define
them in our class.

Move the IMAGE_CLASSES inherit to execute it after we set the
QB_FOO variables to fix booting via runqemu.

(From OE-Core rev: 8ed78ec262b2502dc3b673b24a868a3eec616a20)

Signed-off-by: Alejandro Enedino Hernandez Samaniego &lt;alejandro@enedino.org&gt;
Signed-off-by: Alexandre Belloni &lt;alexandre.belloni@bootlin.com&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>baremetal-image.bbclass: Emulate image.bbclass to handle new classes scope</title>
<updated>2022-08-31T09:40:07+00:00</updated>
<author>
<name>Alejandro Hernandez Samaniego</name>
<email>alejandro@enedino.org</email>
</author>
<published>2022-08-23T21:31:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=4d756897a47f3f93393fccf3d937e499d1a0333d'/>
<id>urn:sha1:4d756897a47f3f93393fccf3d937e499d1a0333d</id>
<content type='text'>
The new classes scope implemented on commit 7bd328f9d
made testimage.bbclass (and perhaps others) stop working
for baremetal-images, the expected way to run testimage
is no longer to use INHERIT but to use IMAGE_CLASSES
instead, however this functionality was not implemented in the
baremetal-image class until now.

Emulate image.bbclass allowing the baremetal-image class to
use IMAGE_CLASSES to fix this issue.

Set defaults for IMAGE_FEATURES to allow bitbake checks to
pass properly.

(From OE-Core rev: bf083929ecd69a144fedeef5a8725775f632a16c)

Signed-off-by: Alejandro Enedino Hernandez Samaniego &lt;alejandro@enedino.org&gt;
Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>classes: Update classes to match new bitbake class scope functionality</title>
<updated>2022-08-12T14:27:17+00:00</updated>
<author>
<name>Richard Purdie</name>
<email>richard.purdie@linuxfoundation.org</email>
</author>
<published>2022-08-10T13:35:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.enea.com/cgit/linux/poky.git/commit/?id=fd1517e2b51a170f2427122c6b95396db251d827'/>
<id>urn:sha1:fd1517e2b51a170f2427122c6b95396db251d827</id>
<content type='text'>
Move classes to classes-global or classes-recipe as appropriate to take
advantage of new bitbake functionality to check class scope/usage.

(From OE-Core rev: f5c128008365e141082c129417eb72d2751e8045)

Signed-off-by: Richard Purdie &lt;richard.purdie@linuxfoundation.org&gt;
</content>
</entry>
</feed>
