All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marek Vasut <marex@denx.de>
To: Paul Eggleton <paul.eggleton@linux.intel.com>
Cc: openembedded-core@lists.openembedded.org
Subject: Re: [PATCH 4/8] kernel: Pull uImage generation into separate class
Date: Tue, 12 May 2015 21:27:30 +0200	[thread overview]
Message-ID: <201505122127.30772.marex@denx.de> (raw)
In-Reply-To: <2038782.k0jOjIWbIe@peggleto-mobl.ger.corp.intel.com>

On Tuesday, May 12, 2015 at 06:18:15 PM, Paul Eggleton wrote:
> On Tuesday 12 May 2015 11:38:14 Bruce Ashfield wrote:
> > On 2015-05-12 10:15 AM, Paul Eggleton wrote:
> > > On Monday 04 May 2015 23:41:47 Marek Vasut wrote:
> > >> On Tuesday, April 28, 2015 at 11:16:17 PM, Marek Vasut wrote:
> > >>> On Tuesday, April 28, 2015 at 08:44:54 PM, Bruce Ashfield wrote:
> > >>>> On 2015-04-28 12:38 PM, Marek Vasut wrote:
> > >>>>> Pull the uImage image format generation from kernel.bbclass into
> > >>>>> a separate kernel-uimage.bbclass. The recipes which now need to
> > >>>>> generate an uImage will have to inherit kernel-uimage instead of
> > >>>>> kernel class.
> > >>>>> 
> > >>>>> Signed-off-by: Marek Vasut <marex@denx.de>
> > >>>>> Cc: Richard Purdie <richard.purdie@linuxfoundation.org>
> > >>>>> Cc: Koen Kooi <koen@dominion.thruhere.net>
> > >>>>> Cc: Paul Eggleton <paul.eggleton@linux.intel.com>
> > >>>>> Cc: Ross Burton <ross.burton@intel.com>
> > >>>>> Cc: Bruce Ashfield <bruce.ashfield@windriver.com>
> > >>>>> ---
> > >>>>> 
> > >>>>>    meta/classes/kernel-uimage.bbclass | 48
> > >>>>>    +++++++++++++++++++++++++++++++++ meta/classes/kernel.bbclass
> > >>>>>    
> > >>>>>    | 55 +++++++------------------------------- 2 files changed, 58
> > >>>>>    
> > >>>>>    insertions(+), 45 deletions(-)
> > >>>>>    create mode 100644 meta/classes/kernel-uimage.bbclass
> > >>>>> 
> > >>>>> NOTE: The "inherit kernel-uimage" in kernel.bbclass should be
> > >>>>> changed to
> > >>>>> 
> > >>>>>         something like "inherit
> > >>>>>         kernel-${@d.getVar("KERNEL_IMAGETYPE", True).lower()}" but
> > >>>>>         the problem is that I only want to perform the inheritance
> > >>>>>         for uimage and fitimage, the other image types don't need
> > >>>>>         to inherit any additional special stuff. Paul suggested I
> > >>>>>         can do "inherit <empty here>". This would at least let me
> > >>>>>         implement a python function which returns either
> > >>>>>         "kernel-uimage", "kernel-fitimage" or "" and based on
> > >>>>>         that, I could inherit the particular image type specifics
> > >>>>>         into kernel.bbclass.
> > >>>>>         What I don't know how to implement well is this function
> > >>>>>         which returns those three strings based on the
> > >>>>>         KERNEL_IMAGETYPE. What
> > >>>>>         I would like to avoid is encoding those strings explicitly
> > >>>>>         into
> > >>>>>         the function, since that would force each new kernel image
> > >>>>>         format to also edit this function in kernel.bbclass .
> > >>>>>         Apparently, checking whether class exists and inheriting it
> > >>>>>         only if it does is also not a simple task.
> > >>>> 
> > >>>> Agreed that this would be better. It would remove a lot of the
> > >>>> checks in the other tasks for the image type.
> > >>> 
> > >>> Hi!
> > >>> 
> > >>> Yes, that's indeed true. All the image type checks would disappear
> > >>> from kernel-uimage and kernel-fitimage bbclasses.
> > >>> 
> > >>>> I'm not aware of the exact details on how to make this work, but
> > >>>> hopefully others have the foo.
> > >> 
> > >> Any ideas please ?
> > > 
> > > To me this is about how we wish to structure these classes. That's not
> > > my call, but to enumerate the options - unless I'm missing something
> > > we have to choose between:
> > > 
> > > 1) Hardcode uimage/fitimage. Hard to extend.
> > > 
> > > 2) inherit kernel-<type> and just insist that a class for every image
> > > type exists. Ugly and kernel-*.bbclass already exists.
> > > 
> > > 3) Try to search for a kernel-<type> class and inherit it if one is
> > > found. AFAIK we don't do this kind of thing anywhere else so this
> > > doesn't seem right to me.
> > > 
> > > 4) Establish some other mechanism for registering kernel image type
> > > classes
> > > (KERNEL_CLASSES ?). Not sure if we want to do this but it is at least a
> > > common mechanism elsewhere in the system.
> > 
> > I wasn't familiar with an option like this, but if we can do something
> > for the kernel classes that follows the existing patterns .. it makes
> > a lot of sense. I really don't want to invent something new here either.
> > 
> > So something along the lines of the way that image.bbclass works with
> > the IMAGE_CLASSES ?
> 
> Indeed, that's what I was referring to.

Doesn't that mean it would be possible for kernel.bbclass to inherit multiple
classes -- for example kernel-uimage.bbclass and kernel-fitimage.bbclass -- at
the same time ? Won't that make it impossible to remove the kernel type checks
in kernel-uimage.bbclass ? But maybe having those checks in place is the right
thing to do since there might be a target building both fitImage and uImage at
the same time?


  reply	other threads:[~2015-05-12 19:32 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-28 16:38 [PATCH 0/8] Add basic fitImage support Marek Vasut
2015-04-28 16:38 ` [PATCH 1/8] kernel: Clean up KERNEL_IMAGETYPE_FOR_MAKE Marek Vasut
2015-04-28 16:38 ` [PATCH 2/8] kernel: Rework do_uboot_mkimage Marek Vasut
2015-04-28 16:38 ` [PATCH 3/8] kernel: Pull out the linux.bin generation Marek Vasut
2015-04-28 16:38 ` [PATCH 4/8] kernel: Pull uImage generation into separate class Marek Vasut
2015-04-28 18:44   ` Bruce Ashfield
2015-04-28 21:16     ` Marek Vasut
2015-05-04 21:41       ` Marek Vasut
2015-05-12 14:15         ` Paul Eggleton
2015-05-12 15:38           ` Bruce Ashfield
2015-05-12 16:18             ` Paul Eggleton
2015-05-12 19:27               ` Marek Vasut [this message]
2015-05-12 20:57                 ` Paul Eggleton
2015-05-12 22:18                   ` Marek Vasut
2015-05-12 22:27                     ` Paul Eggleton
2015-05-13  7:17                       ` Marek Vasut
2015-04-28 16:38 ` [PATCH 5/8] kernel: Separate out uboot_prep_kimage Marek Vasut
2015-04-28 16:38 ` [PATCH 6/8] kernel: Build DTBs early Marek Vasut
2015-04-28 16:38 ` [PATCH 7/8] kernel: Add basic fitImage support Marek Vasut
2015-04-28 16:38 ` [PATCH 8/8] kernel: Build uImage only when really needed Marek Vasut
2015-04-28 18:43   ` Bruce Ashfield
2015-04-28 21:15     ` Marek Vasut
2015-04-28 18:45 ` [PATCH 0/8] Add basic fitImage support Bruce Ashfield
2015-04-28 20:06   ` Marek Vasut

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=201505122127.30772.marex@denx.de \
    --to=marex@denx.de \
    --cc=openembedded-core@lists.openembedded.org \
    --cc=paul.eggleton@linux.intel.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.