Hello,

This is perhaps naive, but it's a question that I've been thinking about for a while.

Pretty much all AMD GPUs (both integrated and otherwise, including PCIe cards) rely on vgabios blobs for init and to support the driver(s).

From what I've heard, the people writing open source drivers for these GPUs really don't want to deal with the init and modesetting, ect. Does this mean it's more practical to try to make open source versions than to try to eliminate their use outright?

If that's the case, it seems like there's insufficient tooling?

There's been some stuff about reading and writing of vgabios blobs with flashrom [1] but I haven't heard anything about a compiler or toolchain that can produce them. The closest is the available disassembler [2], which can provide some insight but probably wouldn't be useful for building vgabios blobs from source as part of a coreboot build. (I think there were also some modified radeon drivers for tracing vgabios calls, but I can't find them now)

Besides a compiler, what other infrastructure would be needed? Maybe tools for testing and debugging?

--------------------------------------------------
A side tangent:

One thing realized recently is some versions of the G505s contain slightly different versions of the same rom. It seems my G505s' for example has different LVDS timings that perfectly match the slightly different panel that mine shipped with. [4]

I haven't been able to try a "normal" rom with the panel yet, but one theory to be tested is that the proprietary bios is patching the rom with the values from the panel's EDID information. (I tried installing a different panel, but was only met with a temporarily nonfunctional laptop)

Assuming it's not the rom modifying itself (do vgabios' have access to EDID information?), would it be correct to supply values from the EDID information to the vgabios build? Or would it be better to have the coreboot's loader patch the tables by parsing the current panel's EDID info? (I've seen comments that coreboot's lack of EDID parsing support also makes native graphics init harder [5])

Does anyone else know of other tooling that's out there?

Sincerely,
    -Matt

--------------------------------------------------
[3] 
--------------------------------------------------