Slashdot Mirror


Open-Source Qualcomm GPU Driver Published

An anonymous reader writes "Not being content with the state of open source graphics drivers for Linux, a developer working for Texas Instruments has reverse-engineered his competitor's (Qualcomm) driver and written an open-source Snapdragon driver. With being tainted by legal documents at Texas Instruments, the developer, who is also involved with Linaro, had no other choice but to work on an open source graphics driver for his competitor in his free time. The open source Qualcomm Snapdragon/Adreno driver is called Freedreno."

79 comments

  1. a clarification by Anonymous Coward · · Score: 5, Informative

    fyi, this was done on my own time.. this is not sponsored/endorsed by TI.. please ready my blog post for my motivation:
    http://bloggingthemonkey.blogspot.com/2012/04/fighting-back-against-binary-blobs.html

    BR,
    -R

    1. Re:a clarification by kurthr · · Score: 5, Interesting

      Since Slashdot previously reported that Qualcom has promised to "Kill all proprietary drivers for good", this seems like the right start :)
      http://developers.slashdot.org/story/12/03/29/1650208/qualcomm-calls-to-kill-all-proprietary-drivers-for-good

    2. Re:a clarification by Anonymous Coward · · Score: 1

      Fascinating. Posts like that are why I read slashdot.

    3. Re:a clarification by Anonymous Coward · · Score: 4, Informative

      Alas, that was Qualcomm atheros. I suspect the main baseband and app processor group wouldn't be as enthusiastic about open sourcing their drivers. Which is unfortunate as their drivers are pretty bad compared to their competition in terms of ALU utilization and therefore, performance.

    4. Re:a clarification by shibashaba · · Score: 2

      The first useful first post!

      --
      ---------- Open Source is capitalism applied to IP.
    5. Re:a clarification by unixisc · · Score: 3, Insightful

      Now put it under GPL3, so that nobody would be able to incorporate it and withold any enhancements from others, particularly since it doesn't belong to the hardware owners. This is one of those rare cases where GPL3 is the right solution

    6. Re:a clarification by Anonymous Coward · · Score: 0

      Why did you need to reverse engineer their solution? The blog entry linked here reflected someone who seems to know and understand what they're doing. So why? Why didn't you take all that free time and just write your own from scratch? Then take that hard earned program and release IT as open source. That would have been respectable.

      Because Qualcomm didn't release documentation for the device. However with that said, this isn't exactly a clean room reverse engineering job here, the guys doing the reverse engineering should have been separate from the guys writing the code. You sound like a Qualcomm employee perhaps?

    7. Re:a clarification by Anonymous Coward · · Score: 0

      You sound like a Qualcomm employee perhaps?

      No need to jump to conclusions! There are plenty of antisocial jerkoffs on the internet just ready and waiting to crap on anything that anybody does for no reason whatsoever.

    8. Re:a clarification by unixisc · · Score: 4, Insightful

      I'm not an open source zealot, but I don't see anything unethical in what he did.

      Anyone (w/ the expertise) could have taken the documentation on Qualcomm's snapdragon from their datasheets, and written a driver based on that to simulate its functionality. How is that cheating? It would only be cheating if he had somehow gotten hold of Qualcomm's original code and splashed it all over the internet. But what he did was something that anybody could have done - it ain't cheating if you figure out how on your own. Qualcomm's only case against him is if they have patents that he (accidentally) violated while writing those drivers. Otherwise, what he did was an independent piece of work, which he can release under any license.

      Okay, he's written open source drivers for his competitor, but is TI's own driver open source, or would someone outside TI have to do the same thing to them?

    9. Re:a clarification by Anonymous Coward · · Score: 3, Insightful

      Is this the first time you have come across reverse engineering? It does not involve copying the work of others, like the Chinese are being accused of. Reverse engineering is not an illegal, or even immoral, practice.

    10. Re:a clarification by Anonymous Coward · · Score: 1

      His fucked what?

      Apart from that, you sound like you have no clue what you're talking about.

    11. Re:a clarification by TheRaven64 · · Score: 3, Informative

      This is more or less the same technique used by the open source nVidia drivers. The important thing is that he is treating the blob as a black box. He feeds it certain inputs and looks at what it outputs. This lets him work out roughly what the blob is doing, but not how it is doing it. His implementation should do roughly the same thing as the blob, but may do it in a very different way.

      --
      I am TheRaven on Soylent News
    12. Re:a clarification by loufoque · · Score: 1

      Reverse engineering is illegal in several countries. Law has little to do with morals.

    13. Re:a clarification by Anonymous Coward · · Score: 1

      Or he could be a nice guy and BSDL it so everyone can use it. Freedom is not freedom. Deal with it.

    14. Re:a clarification by Anonymous Coward · · Score: 1

      Screw you and the GPLv3 horse you rode in on; those of us on other operating systems or in use cases where GPL is verboten would like our BSD driver now thank you very much.

    15. Re:a clarification by unixisc · · Score: 1

      Thank you. Actually, I don't happen to be a GPL fanatic. I normally agree that other licenses are more suitable, and laud companies that use those.

      In this case, however, you have an employee of TI working to create an open source driver for a competitor's product - Qualcomm. In no way does that benefit TI, even though he's working on his own time. Now, in the event that Qualcomm takes that driver that he wrote and made it a part of their firmwhere - be it modified or not - they essentially would have got his work for free, while his employer - their competitor - has to pay him for pretty much the same thing.

      For this reason, I suggested that he put it under GPL3. That way, no company that needs to make it proprietary will want to touch it. I normally don't back such a course of action for software. But in this case, since it's something that he's doing for a competitor for free, he should put it under this license precisely b'cos most companies wouldn't want to touch it, but end users may have no problems using it, since they wouldn't be distributing the drivers.

    16. Re:a clarification by Anonymous Coward · · Score: 0

      Now put it under GPL3, so that nobody would be able to incorporate it and withold any enhancements from others, particularly since it doesn't belong to the hardware owners. This is one of those rare cases where GPL3 is the right solution

      Incorporating and withholding enhancements...

      Most sane people would call those freedoms, moreso than being required to share the particulars of any enhancements.

    17. Re:a clarification by unixisc · · Score: 1

      True. But as I pointed out above, in this case, it would be a competitor getting for free what his employer is paying him to do, so it makes more sense that he withold from the competitor the 'freedom' to use his stuff cheaper than his employer does.

    18. Re:a clarification by atisss · · Score: 1

      While in other countries it's specifically allowed to do for compatibility, even if your licence forbids to (basically the point in license is illegal and ineffective).

    19. Re:a clarification by SilentMobius · · Score: 2

      Digging in the _kernel_ I.E. in existing open-source code to figure out the interface, and using a shim to intercept system calls This is using the binary blob as a black box, in no way has the driver been decompiled nor abused in any way.

      This is the correct way to implement an open-source driver. I think you have a broken understanding of what's going on here.

      --
      Loop, twist and loop again.
    20. Re:a clarification by rdnetto · · Score: 1

      Your work is honestly quite inspiring; I would never have imagined that a single person could reverse engineer the graphics driver like that. Thank you so much for your contribution to the FOSS community. :)

      --
      Most human behaviour can be explained in terms of identity.
  2. Competition for the benefit of all of us! by Anonymous Coward · · Score: 0

    Next a Qualcomm releases TI graphics drivers for Linux!

  3. correction: by Anonymous Coward · · Score: 3, Funny

    former TI Developer.

    1. Re:correction: by Anonymous Coward · · Score: 3, Informative

      I think my company is going to hire if he is fired or decides to leave. He is exactly the kind of individual we are after being a very open company.

    2. Re:correction: by Anonymous Coward · · Score: 0

      hopefully he has cleared this with TI before he started, working on a competitors product is entering a gray zone own time or not

    3. Re:correction: by Anonymous Coward · · Score: 0

      Perhaps. However, would you want the sort of individual who would break NDA's and open your company up to possible lawsuits? Most will not touch that.

    4. Re:correction: by nurb432 · · Score: 1

      which will be unfortunate, but i also predict this. But im sure he will find a place to land, now that he is well known.

      --
      ---- Booth was a patriot ----
    5. Re:correction: by Anonymous Coward · · Score: 0

      HELL YES, that's exactly our kind of guy!

      We don't have NDAs, we're dedicated to completely open development as a service, and lawsuits?... We're based in Mexico, good luck with that! :-)

      (Note: I'm not the same AC as above)

    6. Re:correction: by Anonymous Coward · · Score: 5, Informative

      note: I did not break any NDA's.. or violate any licenses that I agreed to, etc. This is the reason that I cannot work on an open source driver for the IMG GPU in OMAP devices (which I'd love to do, but am prevented by NDA). Trust me, I'd love nothing more than to be working on an open source graphics driver for OMAP.. but if I did, *that* would be a story.

      BR,
      -R

    7. Re:correction: by wrook · · Score: 0

      I like to post as Anonymous Coward as much as the next guy (probably more so), but if you're going to post about your project and reply to questions in the thread, could you create an ID (if only for this discussion)? It would make it much, much easier to track what you are saying (and separate it from people who might try to impersonate you).

      Anyway, thanks for the work on the graphics driver. This is an area that sorely needs developers. Every little bit helps. I hope your employer understands the difference between advancing the state of open source software and helping your competitor. I suspect you might find that you have stepped on a few toes, though. Soulskill didn't do you any favours in writing the summary, unfortunately :-(

    8. Re:correction: by unixisc · · Score: 3, Insightful

      How would he have violated any NDA's?

      TI and Qualcomm are competitors here. He (probably) took a Qualcomm datasheet - freely available online on their website - and using that and his own knowledge of drivers (since he presumably wrote them for TI), he wrote drivers totally independently of Qualcomm. He then presumably released it under an FOSS license. All of which is not just perfectly legal (barring any patent violations) but also completely ethical. TI and Qualcomm don't need to have anything to do w/ each other. Only if he used proprietary QCOM information obtained by TI under an NDA to prepare this driver would he be opening TI up to lawsuits. But from the description of what's been done, it's not obvious that he did.

      If he did this on his own time and at home, not using any TI resources, I don't see how he's exposed TI to any lawsuits.

    9. Re:correction: by codemonkeyrob · · Score: 1

      note: I did not post that (if it wasn't clear) but now see your point about creating an account BR, -R

    10. Re:correction: by Anonymous Coward · · Score: 0

      We're based in Mexico

      Qualcomm is in Mexico too and they have lots more money to bribe officials with...

      They take their IP *very* seriously (it is core to how they got to where they are in the market). If you dont think so you are deluding yourself.

      Also if that dude doesnt think he isnt breaking some sort of NDA he is dreaming. I 100% guarantee that TI signed one and by extension he did as well by becoming an employee of that company. He probably signed something wishy washy when he first signed up as an employee. His direct management probably will not care. But the lawyers in his company will. As they just spent a long time negotiating with qualcomm over what can and can not be done...

      I am the same AC... Personally I dont care and would rather see an open source license on all of it. But that is not going to happen any time soon. After the patent fights they have been going thru they do not want any of the 'secret sauce' getting out. Their competitors would be all over that and trying to find anything else to sue them over (to get a slightly better rate).

      But however if you want to open yourself up to legal liability and end up in the courts over something stupid like this go for it... Not my business.

      The guy sounds like a sharp guy. But if you think the docs are hard to create a driver out of? HA! They are basically a bunch of structures wrapped in a giant case statement hanging off a com port. It is just a matter of decoding them properly. Its not hard work at all. Just tedious and better left up to a code generator. This 'hidden knowledge' is actually quite well known by the people who work on the chipsets.

    11. Re:correction: by Anonymous Coward · · Score: 0

      Qualcomm datasheet - freely available online on their website

      LOL.

    12. Re:correction: by wrook · · Score: 1

      I figured it out :-) What I find hilarious is that my original post was actually modded down, probably due to the strong reaction of the AC.

    13. Re:correction: by Trogre · · Score: 1

      Perhaps someone over at Qualcomm could be talked into reverse engineering it?

      But seriously, for your work on this GPU driver, thank you.

      --
      "Nine times out of ten, starting a fire is not the best way to solve the problem." - my wife
  4. Here we go! by Anonymous Coward · · Score: 0

    Looking forward to feedback on this one, then a GUI install . . . .

    JJ

  5. phoronix? by Anonymous Coward · · Score: 0

    who is this and why are they suddenly being linked to?
    I say suddenly because as a longtime anonymous coward of /. I have not ever seen this site
    until the last few weeks..
    wheres my tinfoil hat..

    hilarious my captcha = conspire :D

    1. Re:phoronix? by icebraining · · Score: 1

      Phoronix exists since 2004 and has been posted on /. dozens of times at least since 2008.

    2. Re:phoronix? by Anonymous Coward · · Score: 0

      >Phoronix >suddenly being linked to Congratulations, you've woken from your coma and the year is 2012!

  6. Raspberry Pi by Anonymous Coward · · Score: 0

    So if this went into the Raspberry Pi would that give it the RMS stamp of approval?

    1. Re:Raspberry Pi by Microlith · · Score: 2

      Maybe if the SoC on the Raspberry Pi was from Qualcomm and not Broadcom.

    2. Re:Raspberry Pi by Narishma · · Score: 3, Informative

      Raspberry Pi has a Broadcom GPU, not Qualcomm.

      --
      Mada mada dane.
    3. Re:Raspberry Pi by neokushan · · Score: 5, Funny

      I don't think it's possible to get RMS's stamp of approval on anything. You still have to buy a Raspberry Pi from someone, which means you have to use a web browser, probably with cookies enabled and enter in all sorts of personal information - like a shipping address.

      RMS wouldn't have it.

      --
      +1 IDisagreeSoHeMustBeATrollOrAnAstroturferOrAShill
    4. Re:Raspberry Pi by gQuigs · · Score: 4, Informative

      That's bull.

      RMS wouldn't approve the Rasperry Pi because it needs the binary blob to boot. (I think regardless of this particular reverse engineering). Yes, RMS pushs for the most free computer he can get.

      Here are what the FSF actually uses (they install coreboot themselves when needed, btw), and they do actually exist:
      https://www.fsf.org/resources/hw/systems

    5. Re:Raspberry Pi by ChipMonk · · Score: 1

      Whoosh....

      (joke flies over head, smashed into wall, leaves giant grease spot in paint)

    6. Re:Raspberry Pi by unixisc · · Score: 1

      Ok, it's different from the one RMS himself uses - a Lemote Yeedong notebook based on a Loongson (MIPS-based) CPU. Not a problem for him, since the only application he ever needs is Emacs.

  7. Quantum computing....unfortunately not by stillnotelf · · Score: 0

    I misread the headline as "Open-Source Quantum CPU Driver Published", and got very excited - quantum computing is here! - and then very confused as to how drivers could be written for hardware that doesn't exist yet.

    I guess if Ada Lovelace could write a program for Babbage's Difference Engine without the hardware, maybe the open-source hardware folks could write quantum drivers.

    1. Re:Quantum computing....unfortunately not by user32.ExitWindowsEx · · Score: 2

      ...maybe the open-source hardware folks could write quantum drivers.

      Is this a Schrodinger's cat type thing?

      --
      "Evil will always triumph because good is dumb." -- Dark Helmet
    2. Re:Quantum computing....unfortunately not by stillnotelf · · Score: 1

      Well, we certainly can't disprove that the putative drivers are or are not drivers until AFTER the quantum computer exists. Therefore, any old bag of bits _could_ be functional quantum computer drivers, and we won't know until we try to use said bits as drivers. I guess one interpretation of that is that all possible bit sequences simultaneously are and are not drivers for this hypothetical hardware, and they don't become definitely-drivers or definitely-not-drivers until we "open the box" and try to use them as drivers.

      I propose that the contents of this post, interpreted as ASCII text, are indeed maybe possibly quantum CPU drivers...in a Schrodinger's Cat sort of fashion. I've written plenty of code before, but this post qualifies as my first stab at a hardware driver!

    3. Re:Quantum computing....unfortunately not by Anonymous Coward · · Score: 0

      Shut the fuck up. All you computer science dumbasses who don't know anything of substance about quantum physics keep bringing up that dumb analogy that you all poorly understand. Go back to your sandboxes and pretend to be engineers.

    4. Re:Quantum computing....unfortunately not by Anne+Thwacks · · Score: 1

      Yep. You cant tell if the drivers work or not, till after you run them!

      --
      Sent from my ASR33 using ASCII
  8. Is still a proprietary firmware blob required? by Anonymous Coward · · Score: 0

    A new truly free GPU would be really nice.

    1. Re:Is still a proprietary firmware blob required? by Anonymous Coward · · Score: 0

      Apparently YES....

  9. Now if only by Anonymous Coward · · Score: 0

    someone at qualcomm or elsewhere would do the same thing for TI's embedded GPUs.

  10. TouchPad Ubuntu! by CalcProgrammer1 · · Score: 2

    Awesome! I really need to find time to work on TouchPad Ubuntu again! If this works, it will make Ubuntu a ton more useful!

    1. Re:TouchPad Ubuntu! by CalcProgrammer1 · · Score: 1

      Looks promising, I managed to compile the userspace driver and attempt loading it, it fails to load DRM though. Found out that DRM wasn't enabled in my kernel, so hopefully I can recompile my kernel to work correctly.

  11. Why don't you agree? by dutchwhizzman · · Score: 5, Interesting

    Why don't you agree with it? First of all, he did nothing illegal. This is how binary software gets reversed. There is a copyright on the code, but not on the ideas inside of it (you can't patent an idea). There is no copyright on the hardware he's violating in any way. He merely copied it's function, not the actual code itself. Second of all, Qualcomm will not sell a single piece of hardware less than what they were already selling. If anything, they'll be selling more because there's a better driver for it now. Third of all, Qualcomm will now have an opportunity to save money because they only have to help support the freeware driver and they can bin their own.

    The only spicy thing about this whole deal is that he is not just a guy that does this for a hobby, but he does the exact same thing for a Qualcomm competitor when he's on the clock. Maybe his employer will think he benefited a competitor in his free time, but firing him for it will mean that they are admitting that open source drivers are better and they will admit to their own failure by not providing their own. They are in a catch 22 on this. Fire him and admit they are doing business wrong, which the shareholders and investors won't like, or just leave him be and decide on their own if they want to put code for their GPU drivers in open source. I think he's safe, or will at least have a good career at some other company that is willing to hire him for his skills.

    --
    I was promised a flying car. Where is my flying car?
    1. Re:Why don't you agree? by olau · · Score: 2

      Plus he now has more experience doing this kind of stuff, and has shown he can be motivated without getting paid lots of money. Sounds like an employee you want to keep.

    2. Re:Why don't you agree? by codemonkeyrob · · Score: 2

      two quick notes:

      Since qualcomm doesn't really support anything other than android on their devices, this is mainly useful for the hobbiest linux community who wants to put debian / ubuntu / some other gnu/linux distro on their phone/tablet.

      TI is actually very good about releasing open source drivers and userspace for their devices. This is why I love TI and OMAP. In the area of GPU, it is actually IMGtech (who TI buys the GPU IP from) that blocks an open source driver.

      BR,
      -R

    3. Re:Why don't you agree? by gl4ss · · Score: 1

      well, the risk to qualcomm is that he might bump into something that's claimed to be done in hw but is faked in sw in the drivers..

      --
      world was created 5 seconds before this post as it is.
    4. Re:Why don't you agree? by Anonymous Coward · · Score: 0

      Actually, I'd argue that this is useful for Android as well. I've got a Dell Streak 5 and there aren't any supported drivers past Gingerbread.

      Qualcomm has released some unsupported drivers for a specific ICS build, but it would be handy to have something that's integrated into the kernel.

    5. Re:Why don't you agree? by sjames · · Score: 1

      If so, they richly deserve to be outed. It would be really hard to argue in court that someone should pay you because they exposed your fraud to the world.

      Fortunately, that doesn't seem to be the case here.

  12. Thank You by shiftless · · Score: 1

    Thank you for this bro. Now I am one step closer to having linux working on my HTC Sensation. Android is such garbage....

    1. Re:Thank You by Anonymous Coward · · Score: 0

      You realize that Android is linux right?

    2. Re:Thank You by shiftless · · Score: 1

      Don't start in with that bullshit. You know what I meant. Android is NOT a traditional UNIX-workalike Linux distro.

  13. ATI by ChunderDownunder · · Score: 1

    Just wondering, since the Adreno was originally developed by ATI might there be any architectural simularities to the Radeon?

    If so, any chance of sharing code with the Radeon driver?

    1. Re:ATI by Smask · · Score: 1

      It was originally developed by a bunch of former demo scene blokes from Finland. ATI renamed it Adreno when they bought Bitboys OY. There might be some Radeon parts incorporated in Adreno, and vice versa.

    2. Re:ATI by _DangerousDwarf · · Score: 2

      The GPU has very little (if anything) to do with the Bitboys tech (oh, to be in 1999 again).

      The 2D core, is somewhat related to the Bitboy tech if I remember correctly.

  14. 2D only? by _DangerousDwarf · · Score: 1

    Sounds like this is a 2D only driver. Is the driver actually hitting the 3D GPU, or is it just hitting the 2D core? The 2D core will be much simpler then te 3D core.

  15. Re:Raspberry Pi OpenCL support? by Anonymous Coward · · Score: 0

    Unfortunately this case is in no way related to Raspberry Pi. You probably just mixed up Qualcomm and Broadcom.

  16. buy ti by Anonymous Coward · · Score: 0

    conclusion : buy phones with TI processors