I should add that if just doing this for qemu is acceptable, I can take
over the task of creating the configuration fragments with what remains
for the week.

Are the MACHINE configs and everything else I need already in OE-core
or available somewhere that I can find ?

Bruce

On Wed, Feb 21, 2024 at 8:34 AM Bruce Ashfield via
lists.openembedded.org
<bruce.ashfield=gmail....@lists.openembedded.org> wrote:
>
> I'm quite simply a hard NACK on this.
>
> Everyone can feel free to overrule me here, but I won't be able to
> maintain this along with the other board that I test each -dev,
> variant and -stable bump with.
>
> There are tools, etc, that while gathering dust can help chop up a
> config, and that's where we can spend the time, along with making sure
> the fragments make sense and are usable.
>
> We all agreed to hold the reference boards to a higher standard, and
> now I see this. So as tired and frustrated as you say you are,
> multiply that by two with me.
>
> Cheers,
>
> Bruce
>
>
> On Wed, Feb 21, 2024 at 5:57 AM Ross Burton <ross.bur...@arm.com> wrote:
> >
> > From: Ross Burton <ross.bur...@arm.com>
> >
> > This is a new 64-bit "generic" Arm machine, that expects the hardware to
> > be SystemReady IR compatible. This is slightly forward-leaning as there's
> > not a _lot_ of SystemReady hardware in the wild, but most modern boards
> > are and the number will only grow.  Also, this is the only way to have a
> > 'generic' machine as without standardised bootloaders and firmware it
> > would be impossible.
> >
> > The base machine configuration isn't that exciting: it's a fully featured
> > machine that supports most things, booting via UEFI and an initramfs.
> >
> > However, the kernel is more interesting.  This RFC uses the upstream 
> > defconfig
> > because unlike some other platforms, the arm64 defconfig is actively
> > maintained with the goal of being a 'boots on most hardware' configuration.
> > My argument is: why would we duplicate that effort?
> >
> > The "linux-yocto way" is configuration fragments and after a week of
> > hair-pulling I do actually have fragments that boot on a BeaglePlay, but
> > to say this was a tiresome and frustrating exercise would be understating 
> > it.
> >
> > So, a request for comments: is it acceptable to use the upstream defconfig 
> > in
> > a reference BSP?  Personally I'm torn: the Yocto way is fragments not 
> > monolithic
> > configs, but repeating the effort to fragmentise the configuration and then
> > also have it sufficiently modular that it can be used in pieces - instead of
> > just being a large file split up into smaller files - is a lot of effort for
> > what might end up being minimal gain.  My fear is we end up with a 
> > fragmented
> > configuration that can't be easily modified without breaking some platforms,
> > and badly copies what the defconfig already does.
> >
> > Ross
> > ---
> >  meta-yocto-bsp/README.hardware.md             |  7 +++++
> >  meta-yocto-bsp/conf/machine/genericarm64.conf | 26 +++++++++++++++++++
> >  .../linux/linux-yocto_6.6.bbappend            |  9 +++++++
> >  meta-yocto-bsp/wic/genericarm64.wks.in        | 11 ++++++++
> >  4 files changed, 53 insertions(+)
> >  create mode 100644 meta-yocto-bsp/conf/machine/genericarm64.conf
> >  create mode 100644 meta-yocto-bsp/wic/genericarm64.wks.in
> >
> > diff --git a/meta-yocto-bsp/README.hardware.md 
> > b/meta-yocto-bsp/README.hardware.md
> > index a8f38cb21a6..58ebc328b56 100644
> > --- a/meta-yocto-bsp/README.hardware.md
> > +++ b/meta-yocto-bsp/README.hardware.md
> > @@ -29,6 +29,7 @@ The following boards are supported by the meta-yocto-bsp 
> > layer:
> >
> >    * Texas Instruments Beaglebone (beaglebone-yocto)
> >    * General IA platforms (genericx86 and genericx86-64)
> > +  * General 64-bit Arm SystemReady platforms (genericarm64)
> >
> >  For more information see the board's section below. The appropriate MACHINE
> >  variable value corresponding to the board is given in brackets.
> > @@ -126,6 +127,12 @@ USB Device:
> >         dd command to write the image to a USB stick.
> >
> >
> > +SystemReady Arm Platforms
> > +=========================
> > +
> > +TODO
> > +
> > +
> >  Texas Instruments Beaglebone (beaglebone-yocto)
> >  ===============================================
> >
> > diff --git a/meta-yocto-bsp/conf/machine/genericarm64.conf 
> > b/meta-yocto-bsp/conf/machine/genericarm64.conf
> > new file mode 100644
> > index 00000000000..2ea270d8b06
> > --- /dev/null
> > +++ b/meta-yocto-bsp/conf/machine/genericarm64.conf
> > @@ -0,0 +1,26 @@
> > +#@TYPE: Machine
> > +#@NAME: genericarm64
> > +#@DESCRIPTION: Generic Arm64 machine for typical SystemReady platforms, 
> > which
> > +#have working firmware and boot via EFI.
> > +
> > +require conf/machine/include/arm/arch-armv8a.inc
> > +
> > +# Arm Base System Architecture says v8.0+ is allowed, but FEAT_CRC32 is 
> > required
> > +DEFAULTTUNE = "armv8a-crc"
> > +
> > +MACHINE_FEATURES = "acpi alsa bluetooth efi keyboard pci qemu-usermode rtc 
> > screen usbhost vfat wifi"
> > +
> > +# Install all the kernel modules and all the firmware
> > +MACHINE_EXTRA_RRECOMMENDS += "kernel-modules linux-firmware"
> > +
> > +KERNEL_IMAGETYPE = "Image"
> > +PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
> > +INITRAMFS_IMAGE ?= "core-image-initramfs-boot"
> > +
> > +IMAGE_FSTYPES ?= "wic"
> > +WKS_FILE ?= "genericarm64.wks.in"
> > +
> > +EFI_PROVIDER ?= "${@bb.utils.contains("DISTRO_FEATURES", "systemd", 
> > "systemd-boot", "grub-efi", d)}"
> > +
> > +# Try to bring up one physical serial console, or a virtualized serial 
> > console
> > +SERIAL_CONSOLES ?= "115200;ttyAMA0 115200;hvc0"
> > diff --git a/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_6.6.bbappend 
> > b/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_6.6.bbappend
> > index 8e465c241e8..18f95de348f 100644
> > --- a/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_6.6.bbappend
> > +++ b/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_6.6.bbappend
> > @@ -1,19 +1,28 @@
> >  KBRANCH:genericx86  = "v6.6/standard/base"
> > +KBRANCH:genericarm64  = "v6.6/standard/base"
> >  KBRANCH:genericx86-64  = "v6.6/standard/base"
> >  KBRANCH:beaglebone-yocto = "v6.6/standard/beaglebone"
> >
> > +KMACHINE:genericarm64 ?= "genericarm64"
> >  KMACHINE:genericx86 ?= "common-pc"
> >  KMACHINE:genericx86-64 ?= "common-pc-64"
> >  KMACHINE:beaglebone-yocto ?= "beaglebone"
> >
> > +SRCREV_machine:genericarm64 ?= "332d4668fcc32826907d4f3c4938845206006089"
> >  SRCREV_machine:genericx86 ?= "332d4668fcc32826907d4f3c4938845206006089"
> >  SRCREV_machine:genericx86-64 ?= "332d4668fcc32826907d4f3c4938845206006089"
> >  SRCREV_machine:beaglebone-yocto ?= 
> > "332d4668fcc32826907d4f3c4938845206006089"
> >
> > +COMPATIBLE_MACHINE:genericarm64 = "genericarm64"
> >  COMPATIBLE_MACHINE:genericx86 = "genericx86"
> >  COMPATIBLE_MACHINE:genericx86-64 = "genericx86-64"
> >  COMPATIBLE_MACHINE:beaglebone-yocto = "beaglebone-yocto"
> >
> > +LINUX_VERSION:genericarm64 = "6.6.15"
> >  LINUX_VERSION:genericx86 = "6.6.15"
> >  LINUX_VERSION:genericx86-64 = "6.6.15"
> >  LINUX_VERSION:beaglebone-yocto = "6.6.15"
> > +
> > +# Use upstream defconfig for genericarm64
> > +KBUILD_DEFCONFIG:genericarm64 = "defconfig"
> > +KCONFIG_MODE:genericarm64 = "--alldefconfig"
> > diff --git a/meta-yocto-bsp/wic/genericarm64.wks.in 
> > b/meta-yocto-bsp/wic/genericarm64.wks.in
> > new file mode 100644
> > index 00000000000..417d4d88104
> > --- /dev/null
> > +++ b/meta-yocto-bsp/wic/genericarm64.wks.in
> > @@ -0,0 +1,11 @@
> > +# short-description: Create an EFI disk image
> > +# long-description: Creates a partitioned EFI disk image that the user
> > +# can directly dd to boot media.
> > +
> > +part /boot --source bootimg-efi 
> > --sourceparams="loader=${EFI_PROVIDER},initrd=${INITRAMFS_IMAGE}-${MACHINE}.${INITRAMFS_FSTYPES}"
> >  --label boot --active --align 1024 --use-uuid
> > +
> > +part / --source rootfs --fstype=ext4 --label root --align 1024 --use-uuid
> > +
> > +part swap --size 44 --label swap --fstype=swap --use-uuid
> > +
> > +bootloader --ptable gpt --timeout=5 --append="rootwait rootfstype=ext4"
> > --
> > 2.34.1
> >
> >
> >
> >
>
>
> --
> - Thou shalt not follow the NULL pointer, for chaos and madness await
> thee at its end
> - "Use the force Harry" - Gandalf, Star Trek II
>
> 
>


-- 
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#195973): 
https://lists.openembedded.org/g/openembedded-core/message/195973
Mute This Topic: https://lists.openembedded.org/mt/104488097/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to