[Nouveau] [Bug 75511] [NVE7] Unknown opcode in VBIOS on one of 2 cards, fails boot on 3.13+

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Tue Feb 25 15:33:14 PST 2014


https://bugs.freedesktop.org/show_bug.cgi?id=75511

--- Comment #7 from Ilia Mirkin <imirkin at alum.mit.edu> ---
Well, analyzing the vbios from the second (working) card, what I see is:

Init script 0 at 0x83e0:
0x83e0: 8c                                             UNK8C
0x83e1: 7a 00 02 00 00 20 20 00 00                     ZM_REG   R[0x000200] =
0x00002020
0x83ea: 33 14                                          REPEAT   0x14
0x83ec: 6e 00 00 00 00 ff ff ff ff 00 00 00 00         NV_REG   R[0x000000] &=
0xffffffff |= 0x00000000
0x83f9: 36                                             END_REPEAT
0x83fa: 7a 00 02 00 00 25 21 01 40                     ZM_REG   R[0x000200] =
0x40012125
0x8403: 7a c0 24 12 00 00 00 00 00                     ZM_REG   R[0x1224c0] =
0x00000000
0x840c: 7a 40 26 12 00 00 00 00 00                     ZM_REG   R[0x122640] =
0x00000000
0x8415: 6e 00 24 02 00 ff f7 ff ff 00 08 00 00         NV_REG   R[0x022400] &=
0xfffff7ff |= 0x00000800
and so on

Looking at the pci rom of the first (non-working) card, I see:

Init script 0 at 0x83e0:
0x83e0: 42                                             ???
0x83e1: 66                                             CONFIGURE_MEM
0x83e2: ad                                             ???
0x83e3: 66                                             CONFIGURE_MEM
0x83e4: c1                                             ???
0x83e5: c8                                             ???

As you can see the bytes are all different, I'm pretty sure this is 16-bit real
mode x86 code:

$ udcli -16 -x
42 66 ad 66 c1 c8 10 ee 66 c1 c0 08 ee 66 c1 c0 08 ee e2 ed 1f 66 61
0000000000000000 42               inc dx                  
0000000000000001 66ad             lodsd                   
0000000000000003 66c1c810         ror eax, 0x10           
0000000000000007 ee               out dx, al              
0000000000000008 66c1c008         rol eax, 0x8            
000000000000000c ee               out dx, al              
000000000000000d 66c1c008         rol eax, 0x8            
0000000000000011 ee               out dx, al              
0000000000000012 e2ed             loop 0x1                
0000000000000014 1f               pop ds                  
0000000000000015 6661             popad                   

Otherwise the bioses appear identical... at least the DCB and GPIO tables match
up. So I'd recommend simply grabbing that good vbios-1.rom, sticking it in
/lib/firmware (in the initrd if that's where nouveau is loaded from), and
adding nouveau.config=NvBios=vbios-1.rom which will use that as the vbios
instead of trying to read it from the card.

I'm not extremely happy with this solution, of course, but it's the fastest way
to get something that works.

Can you provide any relevant details about your system? These appear to both be
mobile chips, it's pretty uncommon to have that in a single system. Would you
also mind providing an acpidump? Perhaps the vbios for the first card is hiding
in ACPI somewhere unexpected.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/nouveau/attachments/20140225/5d74f377/attachment.html>


More information about the Nouveau mailing list