SoC: Back and forth!


As I mentioned before, Hybris just converts Bionic calls into glibc calls. That's not device-specific.
Exactly my point.
I would appreciate it if you would reword your response. Because what I got out of it was "libhybris is bad because it needs device-specific changes", and I refuted with "libhybris is not device-specific", and then somehow you said that I made your point.

-God Ginrai
 
I guess best would be to ask straight from Carsten Munk (Stskeeps @ freenode), the original developer of hybris. Or I might aswell ask myself:

22:36 < DeeGee> So how locked in is device using libhybris to certain driver/kernel version combination? Pandora's sucessor is probably going to be OMAP5 based, because all other chipset would require


                libhybris + android drivers.


22:36 < DeeGee> http://boards.openpandora.org/topic/15560-soc-back-and-forth/page-45


22:37 < Stskeeps> basically: if you have a working android hw adaptation for it, which is typically a driver+kernel combo, then libhybris practically just uses hwcomposer and EGL/GLESv2


22:38 < Stskeeps> because that's what a given ODM delivers with it and is stable


22:38 < Stskeeps> this may not necessarily apply to custom hw, though


22:39 < Stskeeps> remember that libhybris just is a way to leverage an android hardware adaptation


22:40 < Stskeeps> libhybris doesn't particularly care about kernel version :)


22:41 < Stskeeps> and X11 based BSPs with working GLESv2 is getting more and more rare

22:42 < Stskeeps> if i was to make a pandora device; i'd simply make a device that focuses on the good gaming experience, forget about the kernel version.. :p


22:43 < Stskeeps> because with sufficiently mobile like devices, you're simply stuck with a certain kernel and the manpower needed to really upgrade is obscene


22:43 < Stskeeps> which you could better use to make new product; or better experience on what you hav


22:43 < Stskeeps> e
Bold text:

Does he even know that Pyra will be a mini PC people want to port their custom OS for.

I would ask him about that.

How easy can a custom OS be made?

Also:

How well does it work if I want real PC feeling and use the standard ARM Debian Repo (and upgrade packages without the fear for a crash because of hybris not being compatible).
 
Last edited by a moderator:
I think most if not all GPU vendors have open sourced the kernel side of their driver (which does little more than providing hardware access for the user space binary), to prevent people from being locked into kernel versions. Even if Allwinner does nothing to facilitate this the source should be up somewhere, and if they're not loading kernel modules in Android it should be required.
Well, it's a bit different with Imagination, AFAIR.


They say they're driver is very specific from system to system, so they don't release any generic drivers but only send the vendors the code needed so they can create and offer drivers for their SoC.


Not sure if that applies to the open side as well, but it seems like an SGX544 driver for one system does not work with the SGX544 of a different system...
 
Because what I got out of it was "libhybris is bad because it needs device-specific changes"
Replace "needs" with "would need" and you've got what I said. We're in the context of what would be required if the kernel changes so as to be incompatible with the driver.
I'm pretty sure libhybris is just a 1:1 mapping, if the kernel changes but the driver doesn't then it is no longer a direct mapping. It might still be possible to implement whatever changes but it's no longer just a bridge, you're now adding device specific implementations that need to be maintained.
(emphasis for clarity)There's nothing device specific currently in libhybris, but if the kernel changes so as to be incompatible with the driver and we want to upgrade then something needs to do the translation: you start adding device specific code, a branch from the device non-specific version, and it'll be hard to get anyone to maintain that.

With the PowerVR solution it's in more than just our interest to keep the open source portion up to date with the kernel, we might find more people outside this forum that would be interested in helping maintain it.
 
Bold text:

Does he even know that Pyra will be a mini PC people want to port their custom OS for.

I would ask him about that.

How easy can a custom OS be made?
That's likely due to only having a passing knowledge of it. Most of my friends only know the Pandora as a gaming device, because that's the part that is most important to me, so that's the part that they hear about the most.

EDIT: WizardStan, this open-source PowerVR solution exists?

-God Ginrai
 
Last edited by a moderator:
How easy can a custom OS be made?
Considering we've got, what, 7? 8? running on the Pandora, all produced by individuals (or perhaps small groups? not sure on all of them), I would say it isn't obscenely difficult.
 
EDIT: WizardStan, this open-source PowerVR solution exists?
As far as I'm aware, unless something has changed. The kernel module is open source with a binary blob for the actual communication with the hardware: changes to the kernel and any calls made can therefore also be made in the open source module without needing to change the binary.
 
EDIT: WizardStan, this open-source PowerVR solution exists?
As far as I'm aware, unless something has changed. The kernel module is open source with a binary blob for the actual communication with the hardware: changes to the kernel and any calls made can therefore also be made in the open source module without needing to change the binary.
Well, if this is actually true, then we wouldn't even need libhybris to use the android driver... Because we could just modify the kernel module to work with our kernel, right?

-God Ginrai
 
Well, if this is actually true, then we wouldn't even need libhybris to use the android driver
I thought we were talking about the A80 and how it is to be used on the Cubieboard.
We were talking about how we could use the Android driver assuming that the provided Linux driver (assuming there is one) was old. At least as far as I was aware that was the point of conversation.

-God Ginrai
 
Well either way, the point still stands that regardless of who is maintaining libhybris we'd still be locked to whatever kernel version the Android driver was compiled for.
 
Well either way, the point still stands that regardless of who is maintaining libhybris we'd still be locked to whatever kernel version the Android driver was compiled for.
I'm still not seeing that. If the bionic code gets translated to glibc calls, there shouldn't be anything kernel specific that would break compatibility when you move to a new kernel.

-God Ginrai
 
I'll have to let someone with more intimate knowledge of the kernel and modules answer that one.
 
This is my current understanding, someone else can correct me if I'm wrong on something here:

- The kernel part of the driver lives in kernel space so it can talk to the hardware and deal with interrupts. It probably does little else than provide an abstract interface to user space.

- The meat of the driver functionality is in a user space binary blob that talks to the kernel driver, and this is true for Android or vanilla Linux.

For the kernel part the GPU or SoC makers have two choices: either they include it in some kernel distribution so it gets built into the kernel directly or they make a kernel module. Most don't make kernel modules anymore because it's a nightmare updating them so that they can work on newer kernels. If they include it in the kernel directly they must provide source code because the GPL requires it. If they do a kernel module the situation is a little less clear - the kernel will still get marked as tainted if you include a kernel module that isn't GPL compatible, which is undesirable (I have no idea if Android is configured to allow kernel tainting or not)

The user space part is what will link to a C runtime like glibc or bionic, and what you'd need libhybris for.

So if somewhere Android is used on A80 and it includes the kernel driver as part of the kernel they have no option to deny users the source code, and you can harass them to do so if they don't. The Cubieboard people would probably pressure them, at the very least.

We already know that for TI products the IMG kernel driver is part of the kernel, and TI has made the source available. Meaning we know that IMG hasn't tried to push a kernel module-only approach. I don't see why the situation would be any different with Allwinner, who has no reason to try to hide what's mostly IMG's code or burden themselves with maintaining separate modules. So when they say they won't provide Linux GPU drivers I think they're only referring to the user space part, and a libhybris solution won't be tied to any particular kernel.
 
Last edited by a moderator:
22:37 < Stskeeps> basically: if you have a working android hw adaptation for it, which is typically a driver+kernel combo, then libhybris practically just uses hwcomposer and EGL/GLESv2 22:38 < Stskeeps> because that's what a given ODM delivers with it and is stable
Basically libhybris doesn't give you hardware acceleration, driver does. And in android world, driver is typically  tied with specific kernel version. This means we're stuck to old kernels and no support from manufacturer in 2 to 3 years.

No long-term linux support is bad for Pyra so currently A80 is not an option
 
Last edited by a moderator:
Let's not jump to conclusions just yet. I tried looking into it more and it still seems clear to me that the only relevant question is still whether or not the kernel side GPU driver is available as source, which is something IMG hasn't shown resistance to allowing. The situation could be totally different for Jolla since it uses a Qualcomm SoC with a Qualcomm GPU. Note that ARM also made their kernel-side GPU drivers open.
 
Last edited by a moderator:
Am I the only person who would prefer the performance of the A80 over a frequently updated kernel on the omap5?

Of course, making another poll(oh noes) while certain questions are still left unanswered isn't the way to go yet. But I'm slightly annyoned by the people who claim that the A80 is absolutely no option like they'd be the ones deciding this alone.

What I probably missed: Apart from the driver stuff, is it certain ED would be able to get the A80 or did the response just stop with the "uh, no linux drivers"?
 
is it certain ED would be able to get the A80
No, it's the opposite, ED has no way of getting an A80 dev board in a reasonable time frame to consider it for Pyra production.The A80 may happen sometime in the distant future as an upgrade.
 
Am I the only person who would prefer the performance of the A80 over a frequently updated kernel on the omap5?
Probably not, but a lot of people would be against being locked to an old kernel for some pretty good reasons. It'd ultimately be ED's call but it really sounds like this is unacceptable to him.

Of course, making another poll(oh noes) while certain questions are still left unanswered isn't the way to go yet. But I'm slightly annyoned by the people who claim that the A80 is absolutely no option like they'd be the ones deciding this alone.

No, it's the opposite, ED has no way of getting an A80 dev board in a reasonable time frame to consider it for Pyra production.

The A80 may happen sometime in the distant future as an upgrade.
If Cubieboard really is coming out next month - and that's a huge if - it might be more realistic to buy it instead of the Optimus board. Has anyone tried asking them (Cubieboard) what their expectations are for Linux drivers when they ship?
 
Don't hold me to too much to what could be a misinterpretation, but I think that the kernel source Allwinner released for their previous A31 SoC includes the (PowerVR SGX544MP2) GPU kernel driver.

http://git.rhombus-tech.net/?p=linux.git;a=tree;f=modules/eurasia_km/services4/srvkm/devices/sgx;h=e0ea900b0460540715563ae727960a78cceea3f7;hb=1636bffddc2832b4574a80324e362742fb2ecd7d

Note that it is being built as a module and isn't actually included in the kernel source tree. But it still sets a positive precedent.
 
Last edited by a moderator:
Back
Top