Hi there Nico,
Thank you for your great summary of research, I'm going to CC it to a coreboot mailing list just in case someone wants to add more findings...
I'm not aware of any people currently working on the OpenAtom project, or of any advances since the last activity long ago. Perhaps it's because 1) AtomDis utility output already gives quite a good idea of what functions/data are inside the AtomBIOS blob to get enough confidence there are no backdoors, and 2) if I remember correctly OpenAtom didn't promise any improvements of user experience (extra features etc.), + the overclocking/underclocking is already achievable by modding the AtomBIOS binary (just need to be careful around the voltages). So, the people would be interested in OpenAtom mostly for software freedom reasons (aka "FSF guys"), but probably it's not enough as we see.
Would you still recommend RX590 as being the best graphics card suitable for open firmware development?
It'd be wonderful from the tech specs point of view - but the development won't be easiest, seeing that AtomDis utility gives a larger % of meaningful output for i.e. HD-8650G / HD-8570M / R5-M230 AtomBIOS blobs of coreboot-supported Lenovo G505S. Last commit to AtomDis was in 2011, it hasn't been updated since that and therefore starts having some trouble deciphering the newer AtomBIOSes (such as RX590).
Although having an open firmware for a prominent RX590 would be a nice end goal, it would be wiser to start with the G505S blobs, especially since it seems the OpenAtom project has already been digging for the HD-8650G of G505S. What is also good: while developing for G505S it would be easier to try the custom ROMs: using a cbfstool utility from a coreboot repository, simply remove the old AtomBIOS blob from your coreboot.rom and add a new one (may even make a custom script, looking at csb_patcher.sh - http://dangerousprototypes.com/docs/Lenovo_G505S_hacking#Introduction ), then flash the updated coreboot.rom into your G505S using a flashrom's internal mode. If you don't see any image on a screen (in case of a bad AtomBIOS), somehow boot to Linux (need to remember a SeaBIOS drive letter) and connect to G505S from another PC using SSH to try a coreboot.rom with another AtomBIOS blob.
One option I was considering is to extract the ROM and add it to cbfs so I wouldn't need SeaBIOS.
Without the AtomBIOS blob I think your GPU won't work at all, no matter what your payload selection is.
If you have any other questions, we will be happy to help you.
On Sun, Jul 17, 2022 at 4:25 PM Nico Rikken nico@nicorikken.eu wrote:
Hi Mike,
Sorry for circumventing the Coreboot mailinglist, but it seems you have posted most recently on this subject. Happy to go via the mailinglist, but I didn't know what to write in a general way.
I'm building a new computer based on the P8Z77-V. I'm considering adding a dedicated graphics card to drive larger display resolutions and have more GPU power for photo editing. I investgated what the current state of openness is. I also posted on Reddit: https://www.reddit.com/r/coreboot/comments/w080ng/requirements_for_adding_rx...
I read the history on this subject including your comments over the years:
- RX590 being the best before AMD PSP introduction
https://www.mail-archive.com/coreboot@coreboot.org/msg54703.html
- Lack of PSP is required to enable open source firmware like openAtom https://www.reddit.com/r/Amd/comments/ex04ld/do_the_latest_amd_cards_include...
- There is/was some effort to open up Radeon cards with OpenAtom, also mentioned in https://www.reddit.com/r/Amd/comments/ex04ld/do_the_latest_amd_cards_include...
- There was an interest to work on it for the GSoC 2015 https://www.mail-archive.com/coreboot@coreboot.org/msg44492.html
It seems all current efforts to further open AMD GPU firmware have stalled.
One option I was considering is to extract the ROM and add it to cbfs so I wouldn't need SeaBIOS. The again I saw your post about the trouble of dealing with extracting certain ROMs: https://www.mail-archive.com/coreboot@coreboot.org/msg49637.html But I think that won't be so much of an issue in this case.
So to summize my question: where do we stand with open GPU firmware on X86? Would you still recommend RX590 as being the best graphics card suitable for open firmware development? Are there still people working on this?
Best, Nico
Thank for the detailed answer and showing a way forward. I don't think however I'll have the time and skill to make any real progress.
Indeed my main interest is the freedom aspect. Coreboot has given me greater control over my technology and I am on the lookout to get better technology without giving up (much) of that freedom.
Can you elaborate on the PSP in recent AMD GPUs? I searched the internet and read AMD documentation but couldn't find anything on it. Some specific references would be great. Also, what would be the scope of such a PSP? If it can have direct memory access there could be security risks of the PSP doing malicious things, but with IOMMU the practical risk will be quite low. (I lack knowledge on this topic). So then the main issue with the PSP is that it prevents custom firmware through signatures.
I'm looking to drive larger display resolutions compared to the i7 3770 and have OpenCL compute power for Darktable editing. In the meantime I found out that the RX590 requires the AMD Pro(prietary) drivers for OpenCL support like most AMD GPUs do. OpenCL is pretty broken for AMD GPUs, which is well summarized in this post by Thomas Debesse https://rebatir.fr/post/2022-01-25-OpenCL_on_Linux_state_of_AMD_drivers_is_n...
It seems the GPU situation as a whole will soon improve with so many efforts underway: - Rusticl for better and universal OpenCL support in Mesa - Nvidia also going the open source driver route - continued development for ARM GPU support - Apple M1/M2 GPU support getting there, which might provide transferable knowledge - LibreSoC developing a SoC including GPU from the bottom up
I cleary can't have it all at the moment so I think I'll wait to see what comes of the efforts mentioned above. Most likely Rusticl will be released and will enable OpenCL without having to use proprietary drivers. But free firmware on GPUs doesn't seem realistic given the low interest from the community.
Best, Nico