1

Reference Manual Chapter 20 of this document describes GPU and basically uses 2 sentences about, it is just present, however it mentions that it supports OpenGL ES 2.1 API. The question is, ST provides drivers for their Linux distribution but im not planing to use one of their distros or any linux at all. Same story with NXP processors, it is present but has 0 documentation on it, and they provide driver for their linux distro.

Is there any MPU out there on a market with solid documentation on all of its parts, including GPU. Or is there any way to actually find an information about this GPUs so i can write a driver my self.

Big thanks in advance

Anton Stafeyev
  • 341
  • 3
  • 13

1 Answers1

1

uff, writing a GPU driver yourself? Are you sure?

I'd recommend asking yourself: How many device drivers for complex DMA devices with multiple high-rate transports have you written so far? I ask because you might be significantly underestimating the complexity of this.

In fact, writing GPUs and GPU drivers is so hard, ST bought the GPU core and the right to ship their drivers from Vivante.

Maybe you can figure out whether GPU drivers for other OSes than Linux exist from there (quite possible – QNX is pretty popular with people who use embedded processors to build e.g. car displays). But: almost all embedded GPU vendors (and most desktop CPU vendors, too) have but a small open-source kernel shim that does a bit of the low-level "data transfer" logic. The actual graphics card driver lives in closed-source binary objects that resist reverse engineering pretty well. The GPU vendors have interest in not sharing the way their GPUs can be used publicly, because that gives insight into their architectural choices. So, everyone uses the OpenGL/Vulcan/DirectX/... abstractions that the userland drivers offer.

Also: Essentially, the usage of a GPU like this suggests you need a general purpose operating system. The data you'll be sending to the GPU will be quite large, so it's likely you need a file system or at least a very capable networking subsystem; these things use memory in ways that can effectively only be leveraged if you have a system that allows your software to deal with virtual memory, and you need a complex system to queue data transfers and handle interrupts.

Really, not using Linux or a similarly capable OS is probably a non-starter if you want to use that GPU.

You might not want that GPU, though. Maybe you need something that is way less powerful, and it doesn't matter to you that it uses a lot more electrical power to do less? Then, there's quite a few simple devices like SPI-attached framebuffers, but honestly, all these have been superseeded by FPGAs implementing simpler GPUs.

So, I think there's a large amount of requirements engineering that you don't tell us about: you're asking about where to get GPUs from for which you can write drivers, but you don't tell us what they need to do.

Marcus Müller
  • 88,280
  • 5
  • 131
  • 237
  • 1
    The secrets argument is nonsense. The competitors against whom it would actually matter *can* figure things out by exercising the product. All these bad secrecy habits do is make things difficult for customers. Please don't parrot such obvious vendor lies here in an actual engineering context where truth matters. – Chris Stratton Jul 25 '20 at 11:32
  • @ChrisStratton hm what would be the economic argument for making the life of customers harder? Vendor lockin doesn't work if your customers are larger than you and have N other vendors to pick from. – Marcus Müller Jul 25 '20 at 11:35
  • 1
    It's *not* an economic practice but a stupid thinking habit. Some sub industries fall into it like an addiction but it provides no actual benefit since competitors have the sophistication to analyze each other's products. **Stop parroting vendor lies** – Chris Stratton Jul 25 '20 at 11:36
  • Thanks Markus for your answer, i did write a DMA driver bot for a much simpler system. Currently my project is based on STM32F746NG MCU, and the project way beyond planned so i was looking for a a system that can be scaled, smth like an MPU. I indeed wrote all drivers my self for it, and there is a little notion of OS to it. So i would love to keep it "self written" including all peripheral drivers. This is why i am looking for a GPU solution that is well documented, but as u said, everyone thinks that they are competing with nvidia :) – Anton Stafeyev Jul 25 '20 at 11:40
  • @ChrisStratton indeed everyone thinks they are a valid competition to nvidia, but i am afraid it is simpler, if public would see their implementation of a GPU core they would ask "How this thing even works, can u turn it on ?" – Anton Stafeyev Jul 25 '20 at 11:42