Re: getting allwinner SoC support upstream (was Re: Uploading linux (3.9.4-1))

2013-06-05 Thread jonsm...@gmail.com
 a recursive diff in the drivers/usb/sun7i_usb and
 drivers/usb/sun4i_usb directories, the discrepancies are negligeable
 (and are in many cases a regression, reintroducing known or new
 bugs!), you can start to see that they simply have no idea how to work
 with the free software community (they're too busy) and that they're
 not really about to start, either.

 ... and yet they're unbelievably successful, despite making a dog's
 dinner of things as far as upstream integration is concerned,
 precisely because they really really do only need to get one single
 kernel compiled (for *all* their multi-million-dollar clients) and
 err... that's it.  everything else goes into a per-client (per
 product) customized script.fex.


Device tree on ARM's goal is to achieve a single kernel across
vendors, not just a single kernel for a single vendor.


 so, i don't have all the answers, but i can clearly see that there
 needs to be some discussion and dialog - we can't have the world's
 most successful SoC vendor *not* supported upstream: that's just a
 ridiculous situation that is not helping any of the linux distros to
 be an easy install option on some of the world's highest
 price-performance ratio hardware.

 thoughts and discussion appreciated.

 l.


 [*0] 
 http://hardware.slashdot.org/story/13/05/08/1636217/chinas-allwinner-outsold-intel-qualcomm-in-tablet-processors-in-2012
 [*1] - fex guide for SoCs up to but excluding the Allwinner A20
 http://linux-sunxi.org/Fex_Guide
 [*2] http://lists.phcomp.co.uk/pipermail/arm-netbook/2013-June/007619.html and
   http://lists.phcomp.co.uk/pipermail/arm-netbook/2013-June/007611.html
 --
 To unsubscribe from this list: send the line unsubscribe linux-kernel in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html
 Please read the FAQ at  http://www.tux.org/lkml/




--
Jon Smirl
jonsm...@gmail.com


-- 
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/cakon4oyyrf4z46ryjfdwuwo4l52z8bgsh0czdr2gderw4id...@mail.gmail.com



Re: getting allwinner SoC support upstream (was Re: Uploading linux (3.9.4-1))

2013-06-05 Thread jonsm...@gmail.com
 a recursive diff in the drivers/usb/sun7i_usb and
 drivers/usb/sun4i_usb directories, the discrepancies are negligeable
 (and are in many cases a regression, reintroducing known or new
 bugs!), you can start to see that they simply have no idea how to work
 with the free software community (they're too busy) and that they're
 not really about to start, either.

 ... and yet they're unbelievably successful, despite making a dog's
 dinner of things as far as upstream integration is concerned,
 precisely because they really really do only need to get one single
 kernel compiled (for *all* their multi-million-dollar clients) and
 err... that's it.  everything else goes into a per-client (per
 product) customized script.fex.


Device tree on ARM's goal is to achieve a single kernel across vendors, not
just a single kernel for a single vendor.


 so, i don't have all the answers, but i can clearly see that there
 needs to be some discussion and dialog - we can't have the world's
 most successful SoC vendor *not* supported upstream: that's just a
 ridiculous situation that is not helping any of the linux distros to
 be an easy install option on some of the world's highest
 price-performance ratio hardware.

 thoughts and discussion appreciated.

 l.


 [*0]
 http://hardware.slashdot.org/story/13/05/08/1636217/chinas-allwinner-outsold-intel-qualcomm-in-tablet-processors-in-2012
 [*1] - fex guide for SoCs up to but excluding the Allwinner A20
 http://linux-sunxi.org/Fex_Guide
 [*2] http://lists.phcomp.co.uk/pipermail/arm-netbook/2013-June/007619.htmland

 http://lists.phcomp.co.uk/pipermail/arm-netbook/2013-June/007611.html
 --
 To unsubscribe from this list: send the line unsubscribe linux-kernel in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html
 Please read the FAQ at  http://www.tux.org/lkml/




-- 
Jon Smirl
jonsm...@gmail.com


Re: [Arm-netbook] getting allwinner SoC support upstream (was Re: Uploading linux (3.9.4-1))

2013-06-05 Thread jonsm...@gmail.com
On Wed, Jun 5, 2013 at 6:47 PM, luke.leighton luke.leigh...@gmail.com wrote:
 On Wed, Jun 5, 2013 at 10:59 PM, Henrik Nordström
 hen...@henriknordstrom.net wrote:

   and then there's the boot0 and boot1 loaders, these *do* have

 no, these are not tiny. boot0 is 24KB to fit the initial embedded SRAM
 (not cache), but boot1 is on pair with u-boot in size and runs from
 DRAM.

  btw, please listen to henrik: he knows what he's talking about, as
 you can see :)   henrik, thank you for correcting my technical
 misunderstandings, i'll try to remember them and not propagate
 incorrect stuff.

This is not about the fex syntax or uboot. The root problem is needing
two sets of binding for every device driver in the kernel. Pick a
random driver like gpio-pca953x.c and look at the source. In that file
there are #ifdef CONFIG_OF_ sections. Those sections are directly
reading the FDT binary via calls like of_get_property(node,
linux,gpio-base, size);. If fex is added to the kernel every driver
driver will now need both a #ifdef CONFIG_OF_ section and also a
#ifdef CONFIG_FEX_ section. Doing that is just crazy. Is Allwinner
going to add fex support to every single device driver in the kernel?
Of course not, that task is far too large. What Allwinner needs to do
is come onto the common API that everyone else is using.

So consider what is going to happen if you try to use a pca953x chip
in an Allwinner system. You're going to have to rewrite part of the
device driver. You're going to have to do that for every chip you try
to use. Those forks won't be accepted back into the kernel, etc. And
you'll end up as yet another port and forget embedded developer.

As for uboot I hope you are using the SPL support and haven't
reimplemented it. If the full uboot has been modified to dynamically
read a script.bin then it shouldn't be much of a stretch to teach it
about FDT instead. That would be a useful feature to add to mainline
uboot.

As for fex2bin and bin2fex you already have the equivalent tool on
your machine. It is called dtc. Check out scripts/dtc.

So if you are in love with fex syntax write a script that converts it
into device tree syntax. Then compile the DTS using dtc into a DTB.
When the DTB is in memory it is a FDT (flattened device tree). It's
that FDT format in memory that has become fixed in stone.

--
Jon Smirl
jonsm...@gmail.com


--
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/cakon4oxwyv2f_iteb5rnp_azc7essxpdku_ty5wlwxn7usi...@mail.gmail.com



Re: [Arm-netbook] getting allwinner SoC support upstream (was Re: Uploading linux (3.9.4-1))

2013-06-05 Thread jonsm...@gmail.com
On Wed, Jun 5, 2013 at 7:26 PM, luke.leighton luke.leigh...@gmail.com wrote:
 On Thu, Jun 6, 2013 at 12:07 AM, jonsm...@gmail.com jonsm...@gmail.com 
 wrote:
 On Wed, Jun 5, 2013 at 6:47 PM, luke.leighton luke.leigh...@gmail.com 
 wrote:
 On Wed, Jun 5, 2013 at 10:59 PM, Henrik Nordström
 hen...@henriknordstrom.net wrote:

   and then there's the boot0 and boot1 loaders, these *do* have

 no, these are not tiny. boot0 is 24KB to fit the initial embedded SRAM
 (not cache), but boot1 is on pair with u-boot in size and runs from
 DRAM.

  btw, please listen to henrik: he knows what he's talking about, as
 you can see :)   henrik, thank you for correcting my technical
 misunderstandings, i'll try to remember them and not propagate
 incorrect stuff.

 This is not about the fex syntax or uboot. The root problem is needing
 two sets of binding for every device driver in the kernel. Pick a
 random driver like gpio-pca953x.c and look at the source. In that file
 there are #ifdef CONFIG_OF_ sections. Those sections are directly
 reading the FDT binary via calls like of_get_property(node,
 linux,gpio-base, size);. If fex is added to the kernel every driver
 driver will now need both a #ifdef CONFIG_OF_ section and also a
 #ifdef CONFIG_FEX_ section. Doing that is just crazy.

  yes.  which is why they haven't done it.

 Is Allwinner
 going to add fex support to every single device driver in the kernel?

  no john - they've only added it to the multiplexed sections of the
 drivers which they themselves have written.  such as
 drivers/usb/sun{N}i_usb/*.[ch], drivers/block/nand/sun{N}_i,
 arch/arm/mach-sun{N}i and so on.

 even the touchscreen driver that they wrote, that's got nothing to do
 with any other code in the touchscreen linux kernel source tree: it's
 more of a meta-driver which even has the name of the linux kernel
 module that needs to be loaded and what I2C address, GPIO options etc.
 to pass in [normally done as modprobe options in userspace].

  to be honest, there are better people to fully answer this question
 (alejandro and henrik are two that spring to mind) but you're
 definitely off-base, jon.  the script.fex system deals with the pinmux
 issue in a very neat way that:

   a) has very little impact on the rest of the kernel tree [citation
 needed!  i'm saying that: could someone please confirm if it's true]

   b) the linux kernel developers could, instead of criticising it,
 actually learn a great deal from.

 l.



-- 
Jon Smirl
jonsm...@gmail.com


--
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/CAKON4OyWaUod8m-7Fn5qdjnMs8o+ajqdOJ=XRmw_v“l00...@mail.gmail.com



Re: [Arm-netbook] getting allwinner SoC support upstream (was Re: Uploading linux (3.9.4-1))

2013-06-05 Thread jonsm...@gmail.com
On Wed, Jun 5, 2013 at 7:26 PM, luke.leighton luke.leigh...@gmail.com wrote:
 On Thu, Jun 6, 2013 at 12:07 AM, jonsm...@gmail.com jonsm...@gmail.com 
 wrote:
 On Wed, Jun 5, 2013 at 6:47 PM, luke.leighton luke.leigh...@gmail.com 
 wrote:
 On Wed, Jun 5, 2013 at 10:59 PM, Henrik Nordström
 hen...@henriknordstrom.net wrote:

   and then there's the boot0 and boot1 loaders, these *do* have

 no, these are not tiny. boot0 is 24KB to fit the initial embedded SRAM
 (not cache), but boot1 is on pair with u-boot in size and runs from
 DRAM.

  btw, please listen to henrik: he knows what he's talking about, as
 you can see :)   henrik, thank you for correcting my technical
 misunderstandings, i'll try to remember them and not propagate
 incorrect stuff.

 This is not about the fex syntax or uboot. The root problem is needing
 two sets of binding for every device driver in the kernel. Pick a
 random driver like gpio-pca953x.c and look at the source. In that file
 there are #ifdef CONFIG_OF_ sections. Those sections are directly
 reading the FDT binary via calls like of_get_property(node,
 linux,gpio-base, size);. If fex is added to the kernel every driver
 driver will now need both a #ifdef CONFIG_OF_ section and also a
 #ifdef CONFIG_FEX_ section. Doing that is just crazy.

  yes.  which is why they haven't done it.

 Is Allwinner
 going to add fex support to every single device driver in the kernel?

  no john - they've only added it to the multiplexed sections of the
 drivers which they themselves have written.  such as
 drivers/usb/sun{N}i_usb/*.[ch], drivers/block/nand/sun{N}_i,
 arch/arm/mach-sun{N}i and so on.

 even the touchscreen driver that they wrote, that's got nothing to do
 with any other code in the touchscreen linux kernel source tree: it's
 more of a meta-driver which even has the name of the linux kernel
 module that needs to be loaded and what I2C address, GPIO options etc.
 to pass in [normally done as modprobe options in userspace].

  to be honest, there are better people to fully answer this question
 (alejandro and henrik are two that spring to mind) but you're
 definitely off-base, jon.  the script.fex system deals with the pinmux
 issue in a very neat way that:

I have a Cubieboard and I have a pca9532 on my desk. Now I want to
attach this pca9532 to the Cubieboard so I wire them together on I2C.

How is the Allwinner kernel going to load the driver for the pca9532?
The mainline pca9532 driver does not understand fex so it can't read
the necessary initialization data.

Luke, you of all people should see what is going on. Take an EOMA
module based on an A10. Now plug it into ten different hosts with
widely varying hardware support - like each of the ten hosts has a
different lm-sensor type chip. Where are the fex drivers for those ten
different lm-sensor chips going to come from? We already have DT
support for them.

fex is only supported on the small number of peripheral chips
Allwinner has blessed. Use any chip outside of that set and it isn't
going to boot.


   a) has very little impact on the rest of the kernel tree [citation
 needed!  i'm saying that: could someone please confirm if it's true]

   b) the linux kernel developers could, instead of criticising it,
 actually learn a great deal from.

 l.



--
Jon Smirl
jonsm...@gmail.com


--
To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/CAKON4Oz79hUE_ReAqjeynwL6ZWntX2W1uw3YOg0G2AiY7Gjs=g...@mail.gmail.com