[PATCH v2] nouveau: fix OpenFirmware support

Ilia Mirkin imirkin at alum.mit.edu
Wed Oct 14 08:49:04 PDT 2015


On Wed, Oct 14, 2015 at 11:20 AM, Laurent Vivier <laurent at vivier.eu> wrote:
>
>
> Le 14/10/2015 16:52, Ilia Mirkin a écrit :
>> On Wed, Oct 14, 2015 at 10:20 AM, Olaf Hering <olaf at aepfle.de> wrote:
>>> On Sun, Oct 11, Laurent Vivier wrote:
>>>
>>>> On PowerMac G5 (and I think on all OpenFirmware platforms), nvbios_pcirTp()
>>>> returns NULL. But in fact the OpenFirmware has given us the size
>>>> we can store in image->size.
>>>
>>>> CC: imirkin at alum.mit.edu
>>>> Signed-off-by: Laurent Vivier <laurent at vivier.eu>
>>>
>>> Tested-by: Olaf Hering <olaf at aepfle.de>
>>>
>>> Broken since a while already...
>>> https://lists.ozlabs.org/pipermail/linuxppc-dev/2015-March/126737.html
>>
>> FTR, looks like my version is upstream now:
>> https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=25d295882a1adfcdaaad85369289677b87c7c8f0
>>
>> I agree that my of_size thing was a bit of a hack, if you want to redo
>> it by removing of_size/of_read from shadowof.c and copying it in at
>> init time (also a hack, IMHO), I certainly wouldn't object. As before,
>> it's Ben's call though.
>
> It's nice to have a fix upstream.
>
> I'll send a patch to remove the of_size.
>
> Rereading your patch and mine, I think we don't need no_pcir, we can do
> instead:
>
>         if (!nvbios_rd16(bios, base + 0x18)) {
>                 /* no PCIr */
>                 image.base = 0;
>                 image.type = 0;
>                 image.size = bios->size;
>                 image.last = 1;
>         } else {
>                 if (!shadow_fetch(bios, mthd, offset + 0x1000)) {
>
> ...
> What is you opinion ?

What if we hit on a real VBIOS without a PCIR? Like, say, some NV4, or
who-knows-what. Seems less safe. My way is very explicit and allows OF
some leeway that "regular" methods don't get.

  -ilia


More information about the dri-devel mailing list