tech-x11 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Accessing ROMs from libpciaccess



On Thursday 18 November 2010 07:38:36 Michael wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Hello,
> 
> I just committed a fix for libpciaccess's ROM access method. It used
> to just open /dev/mem, mmap(ROM_BASE) and crossfingers hoping physical
> addresses are the same as bus addresses on the machine it's running.
> Obviously this assumption is false on many non-x86 machines ( sparc64
> for example ) but the fix is simple - use the same mechanism as
> pci_device_netbsd_map_range().
> This should work as before on x86, additionally it should work on all
> other ports as well - here's an example from sparc64:
> (II) RADEON(1): Attempting to read un-POSTed bios
> (WW) RADEON(1): Not an x86 BIOS ROM image, BIOS data will not be used
> no kidding, it's an xvr-100 with Sun firmware.
> I have a mach64 card with PC firmware in the same box but the driver
> is unable to cold start it and int10 isn't built by default - I'll
> look at that next.
> On macppc int10 crashed with a SIGBUS trying to muck with an R128's
> ROM, in LockVGA() - let's see how much work it takes to get the x86
> emulator running.

This definitely helps me on cats - I had a similar local changes to get cats 
working again.

int10 has problems on cats as follows. I'm still looking what this might be.

(II) S3VIRGE(0): initializing int10                                             
                                                                                
       
(II) S3VIRGE(0): Bad V_BIOS checksum                                            
                                                                                
       
(NI) S3VIRGE(0): Ignoring int 0x10 call                                         
                                                                                
       
(NI) S3VIRGE(0): Ignoring int 0x10 call                                         
                                                                                
       
(NI) S3VIRGE(0): Ignoring int 0x10 call                                         
                                                                                
       
0000:0075: 74 ILLEGAL EXTENDED X86 OPCODE!                                      
                                                                                
       
0000:0075: 74 ILLEGAL EXTENDED X86 OPCODE!                                      
                                                                                
       
(II) S3VIRGE(0): VESA BIOS not detected                                         
                                                                                
       

Nick


Home | Main Index | Thread Index | Old Index