Originally posted by sinepgib
View Post
No. The UEFI doesn't play a role at all there. Linux have an AHCI driver that sends AHCI commands to the PCIe bus to the right device. UEFI is out of the picture.
But that's only useful for very simple, standardized devices. For a start it would add a lot of overhead to talk to UEFI for everything. But further, you get a complete inability to upgrade. OpenGL can't be implemented in UEFI for the simple reason each card uses a custom bytecode and you need a compiler for it. You don't feed OpenGL, you don't even feed SPIR-V or Vulkan. You need to implement all that in OS/userspace software, and that's the biggest part anyway.
I never understood the logic behind delegating hardware access to user space because "if it crashes....(insert excuses here)".
Here's a thought: make it BETTER so that it DOESN'T! <- this thought is apparently not on developers minds for some reason. It's all about "let's bring this hardware up as shoddily as we can and worry about bugs later" and we see the result of that where hardware takes years for OS support to become stable or mature, or potentially never because OS hardware drivers are broken by updates or some new software only works with a specific version of driver. How many jobs are there where you're allowed to do something wrong the first dozen or hundred times or so, even though you know it's wrong or know that it's eventually going to fail, and then have the ability to do it right later?
And yes, there is a high-level shader language.
That doesn't describe reality at all. For a start, even if it were possible, which it isn't because software is never perfect, it would require the mythical "sufficiently disciplined programmer" and also a "sufficiently funded provider", when their priority is always to cut costs and ship fast. The cards behave a certain way. The drivers contain bugs and updates, thus, bring bug fixes. Those fixes will stop coming downstream as soon as your OEM decides not to ship further UEFI updates. Everybody loses.
What happens when you freeze your ZFS driver? It goes out of sync with Linux, it doesn't get fixes, it doesn't get optimizations. Feature levels are irrelevant here. Sometimes features get standardized _after_ some card ships them, sometimes new features are technically implementable in older hardware. It's not about the theoretical interface, it's about the reality of hardware and software distribution.
When you write code _right now_ you can, in theory, forget about the particulars of drivers and cards too, but in reality you can't. And that's what happens in UEFI as well, as it is simply software stored in an EEPROM.
When you write code _right now_ you can, in theory, forget about the particulars of drivers and cards too, but in reality you can't. And that's what happens in UEFI as well, as it is simply software stored in an EEPROM.
Comment