[Nouveau] Is it necessary to parse the VBIOS init table when executable is false?

Ilia Mirkin imirkin at alum.mit.edu
Wed Nov 19 11:52:55 PST 2014


On Wed, Nov 19, 2014 at 2:42 PM, Ben Skeggs <skeggsb at gmail.com> wrote:
> On 20 Nov 2014 01:31, "李金华" <goodqt at outlook.com> wrote:
>>
>> Hello everyone,
>>
>> The code is at /core/subdev/bios/init.c.
>> When the executable is 0,these functions that parse the VBIOS init table
>> seems to do nothing except the parsing.
> Correct.  We do not handle every opcode, only the ones that have been
> observed so far.  The purpose is to be able to test whether we will be able
> to fully execute the table, to avoid failing in a critical path (such as
> resume from suspend) where we can't recover.

It also serves as a nice litmus test as to whether we have the right
VBIOS, since we also execute various bits during output configuration,
reclocking, and probably other things I'm not thinking of.

Most of the time, especially with older cards, the reason this would
be failing is because it's reading the VBIOS from the wrong place
(like PCIROM) and it contains the wrong data.

  -ilia


More information about the Nouveau mailing list