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

Re: Matrox Mystique video card caused Kernel Panic on HP Visualize 785/B2000 with rebuilt 2.6.8 kernel



On Mon, May 30, 2005 at 11:09:31PM +0800, J. L. Lee wrote:
> Voila, the B2000 booted past the initial RAM disk for the first time, 
> discovered the built-in hardware, and the PCI Matrox Mystique card for the 
> first time, then disaster struck. Kernel panic after the discovery of 
> Matrox Mystique card. Can anyone advise me what went wrong?

Not exactly. Thanks for writing  a complete bug report!

There is some help on gfx cards here:
	http://www.parisc-linux.org/faq/graphics-howto.html

But I don't think it will answer your question.

...
> Linux version 2.6.8 (root@debianhppa) (gcc version 3.3.5 (Debian 
> 1:3.3.5-12)) #1 Mon May 30 20:35:23 SGT 2005
> FP[0] enabled: Rev 1 Model 16
> The 32-bit Kernel has started...
> Determining PDC firmware type: System Map.
> model 00005d00 00000481 00000000 00000002 775714fc 100000f0 00000008 
> 000000b2 000000b2
> vers  00000204
> CPUID vers 17 rev 8 (0x00000228)
> capabilities 0x3
> model 9000/785/B2000
> Total Memory: 256 Mb
> initrd: 1fb48000-1ffee000
> initrd: reserving 0fb48000-0ffee000 (mem_max 10000000)
> LCD display at f05d0008,f05d0000 registered
> Built 1 zonelists
> Kernel command line: root=/dev/sda4 HOME=/ console=ttyS0 TERM=vt102 
> palo_kernel=3/vmlinux
> PID hash table entries: 16 (order 4: 128 bytes)
> Console: colour dummy device 160x64
> Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
> Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
> Memory: 262144k available
> Calibrating delay loop... 799.53 BogoMIPS
> Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
> checking if image is initramfs...it isn't (ungzip failed); looks like an 
> initrd
> NET: Registered protocol family 16
> EISA bus registered
> Searching for devices...
> Found devices:
> 1. Astro BC Runway Port at 0xfed00000 [10] { 12, 0x0, 0x582, 0x0000b }
> 2. Elroy PCI Bridge at 0xfed30000 [10/0] { 13, 0x0, 0x782, 0x0000a }
> 3. Elroy PCI Bridge at 0xfed32000 [10/1] { 13, 0x0, 0x782, 0x0000a }
> 4. Kazoo W+ at 0xfffa0000 [32] { 0, 0x0, 0x5d0, 0x00004 }
> 5. Memory at 0xfed10200 [49] { 1, 0x0, 0x09d, 0x00009 }
> CPU(s): 1 x PA8600 (PCX-W+) at 400.000000 MHz
> SBA found Astro 2.1 at 0xfed00000
> lba version TR2.1 (0x2) found at 0xfed30000
> PCI: Enabled native mode for NS87415 (pif=0x8f)
> lba version TR2.1 (0x2) found at 0xfed32000
> SCSI subsystem initialized
> usbcore: registered new driver hub
> matroxfb: Matrox Mystique (PCI) detected
> Backtrace:
>  [<101f65d8>] pci_bus_write_config_dword+0x34/0x44

	(Ignore pci_bus_write_config_dword - willy reminded me
	 it's not a proper backtrace in this kernel)

>  [<1028f41c>] initMatrox2+0x3a0/0x9b0
>  [<1028ff08>] matroxfb_probe+0x1c4/0x254
>  [<101f8038>] pci_device_probe_static+0x60/0x78
>  [<101f8080>] __pci_device_probe+0x30/0x38
>  [<101f80b4>] pci_device_probe+0x2c/0x58
>  [<10228b38>] bus_match+0x48/0x80
>  [<10228c94>] driver_attach+0x70/0xa4
>  [<102291a0>] bus_add_driver+0x9c/0xb8
>  [<102296a4>] driver_register+0x48/0x54
>  [<101f1364>] kobject_add+0x54/0x100
>  [<101f8374>] pci_register_driver+0x4c/0x60
>  [<10102fe8>] init+0x38/0x108
>  [<1010ec5c>] ret_from_kernel_thread+0x1c/0x24
> 
> 
> Kernel Fault: Code=15 regs=106b05c0 (Addr=fd801fde)
> 
>      YZrvWESTHLNXBCVMcbcbcbcbOGFRQPDI
> PSW: 00000000000001001111111100001111 Not tainted
> r00-03  00000000 104a0810 1028f430 00800000
> r04-07  104a09c0 104a09c0 103bc03c fd800000
> r08-11  fffffff4 fd000000 104a0810 103bb810
> r12-15  103a6010 3b9aca00 103a7010 1048a010
> r16-19  f00008c4 f000017c f0000174 00000003
> r20-23  02000000 fd800000 104a09c0 104a0810
> r24-27  fd000000 104a120c 00800000 1038d010
> r28-31  00000000 104a09c0 106b05c0 1028f41c
> sr0-3   00000000 00000000 00000000 00000000
> sr4-7   00000000 00000000 00000000 00000000
> 
> IASQ: 00000000 00000000 IAOQ: 1028ee5c 1028ee60
>  IIR: 62b33fbc    ISR: 00000000  IOR: fd801fde

grundler <503>./disasm 62b33fbc
   0:   62 b3 3f bc     stb r19,1fde(,r21)


>  CPU:        0   CR30: 106b0000 CR31: 103f0000
>  ORIG_R28: 00000000
>  IAOQ[0]: matroxfb_getmemory+0x2c/0x168
>  IAOQ[1]: matroxfb_getmemory+0x30/0x168
>  RP(r2): initMatrox2+0x3b4/0x9b0
> Kernel panic: Kernel Fault

The data page fault occurs on the first mga_outb():
  matroxfb_base.h:#define M_EXTVGA_INDEX  0x1FDE

...
        mga_outb(M_EXTVGA_INDEX, 0x03);
        mga_outb(M_EXTVGA_DATA, mga_inb(M_EXTVGA_DATA) | 0x80);
...

in matroxfb_getmemory().

matroxfb_base.h:
#define mga_outb(addr,val) mga_writeb(ACCESS_FBINFO(mmio.vbase), (addr), (val))
...
static inline void mga_writeb(vaddr_t va, unsigned int offs, u_int8_t value) {
        writeb(value, va.vaddr + offs);
}

The symptom is consistent with derefencing an address that's not ioremapped.
But it looks like ioremapped is being called in initMatrox2().
You want to add printk's to make sure that's happening like
we expect.

grant



Reply to: