[U-Boot] litesom.c: Board stuff in SOC ?

Tom Rini trini at konsulko.com
Mon May 22 22:00:50 UTC 2017


On Fri, May 19, 2017 at 04:13:29PM +0200, Stefano Babic wrote:
> Hi Tom,
> 
> On 19/05/2017 15:39, Tom Rini wrote:
> > On Fri, May 19, 2017 at 12:51:18PM +0200, Stefano Babic wrote:
> >> Hi Marcin,
> >>
> >> On 19/05/2017 12:41, Marcin Niestroj wrote:
> >>> Hi Stefano,
> >>>
> >>> I've added Tom to the discussion.
> >>
> >> Of course !
> >>
> >>> So if we make some changes to SOM
> >>> code position in u-boot tree, let's make sure we do it for all
> >>> architectures the same 
> >>
> >> We have already not done in this way. We have all boards / SOM code
> >> inside bords/, the only exceptions are yours. If there is a decision to
> >> add an abstraction for SOM, we have to put coherently all SOMs that are
> >> now stored in the boards directory.
> >>
> >> What you mention are just exception - that I would like to clean up.
> > 
> > So, we do have a problem with the layout today.
> 
> Indeed, true. There is not an abstraction for SOM today.
> 
> >  The point of SOMs is
> > that yes, you can drop them into a carrier from the same vendor (and
> > this is true for both "3rd party" ones like
> > litesom/chilisom/solidrun/etc and vendor ones like more recent NXP eval
> > boards) or company X buys the SOMs and puts them in their own custom
> > carrier (which hell, we have customers that do).
> 
> Right, this is the common case.
> 
> >  In the latter case, it
> > doesn't make sense for company X to put their board in
> > boards/SOM-vendor/.
> 
> The question is how they reference to the common / SOM code. I am quite
> sure that the object should be part of the board library, that is at the
> end part of board/<vendor>/<board name>/lib.a.

I am less concerned with "board" vs "arch" than I am with making it
clearly and easily re-usable, but also not adding further complex
Makefile logic to handle inclusion.

> > In my mind, arch/arm/mach-omap2/am33xx/chilisom.c is the right solution
> > and the big problem with i.MX right now is that arch/arm/imx-common and
> > arch/arm/cpu/armv7/mx* need to get some re-organization under
> > arch/arm/mach-imx/.
> 
> Sure the SOM code should be not under cpu/....mx6. This is wrong.

So we agree, good, yes, OK :)

> imx-common was created (as far as I can still remember) as solution to
> put code shared between all i.MX processors, from imx.2x up to i.MX6 or
> i.MX7. Code that does not belong to a single SOC.
> 
> As far as I see, there is not a single solution for SOM in u-boot. In
> some cases (what you mention) are in mach-*, in some other cases they
> are under board/<vendor>. Just check the number of "common" directories
> under boards. In most cases they are SOM, and I am sure I am still
> missing a lot of them.

Well, I think the answer is that arch/arm/imx-common/ needs to become
arch/arm/mach-imx (ala the kernel) and arch/arm/cpu/armv7/mx* needs to
move to this new directory, in whatever layout you feel is cleanest (the
kernel has this flat, except for include/mach).  I don't know if I was
clear enough in my first reply, so I'm following up here, now.

> >  And I'm not going to claim that arch/arm/mach-omap2
> > is best organized here, I largely moved the old omap-common to
> > mach-omap2 and everything else into subdirs of that.
> 
> Nevertheless, this is a much more sustainable solution. If imx-common is
> changed into mach-imx, and it contains subdirectories for the specific
> type, we could simplify imx-common/Makefile, that is become messy with
> two many filters in a way as in mach-omap2.
> And then, moving litesom.c in a place as arch/arm/mach-imx/som/mx6 seems
> much more appropriate.

Yeah, there's a little bit of clean-up I want to do to that Makefile at
some point and partly relies on adding more Kconfig symbols and merging
more of the common-IP-different-src things we still have.  But that's
another story...

> >  I can certainly
> > see an argument for arch/arm/mach-$X/som/ (or mach-$X/$soc/som/) instead
> > of just putting them in arch/arm/mach-$X/ (or again, mach-$X/$soc/).
> 
> mach-$X/$soc/som/ is  my preferred choice if we vote.. :-)

Make it so in mach-imx and we'll move from there :)  Thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20170522/4bd90e5a/attachment.sig>


More information about the U-Boot mailing list