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

Re: eata.c module and PCI setup problem (RAID SCSI card)



> > in the module source.  That doesn't output much though... 
> > 
> > Jun  5 09:23:22 brocoli kernel: >IN from bad port 338 at d006092c
> > Jun  5 09:23:22 brocoli kernel: IN from bad port 338 at d006092c
> > Jun  5 09:23:22 brocoli last message repeated 452 times
> > Jun  5 09:23:22 brocoli kernel: EATA0: detect, do_dma failed at
0x330.
> 
> Is there any particular reason why you have different IO ports now?

Yes, I've tried the card in another PCI port...  And, as you told, that
didn't helped.

> Antoine, why are you not getting any output from this code:
> 
> static void add_pci_ports(void) {
> #if defined(CONFIG_PCI)
>    unsigned int addr, k;
>    struct pci_dev *dev = NULL;
>    if (!pci_present()) return;
>    for (k = 0; k < MAX_PCI; k++) {
>       if (!(dev = pci_find_class(PCI_CLASS_STORAGE_SCSI << 8, dev)))
break;
>       if (pci_enable_device (dev)) {
> #if defined(DEBUG_PCI_DETECT)
>          printk("%s: detect, bus %d, devfn 0x%x, pci_enable_device
failed.\n",
>                 driver_name, dev->bus->number, dev->devfn);
> #endif
>          continue;
>          }
>       addr = pci_resource_start (dev, 0);
> #if defined(DEBUG_PCI_DETECT)
>       printk("%s: detect, seq. %d, bus %d, devfn 0x%x, addr 0x%x.\n",
>              driver_name, k, dev->bus->number, dev->devfn, addr);
> #endif
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> This here above should print something, shouldn't it? Are you sure you
> have nothing in your logs?
> 
>       /* Order addresses according to rev_scan value */
>       io_port[MAX_INT_PARAM + (rev_scan ? (MAX_PCI - k) : (1 + k))] =
>              addr + PCI_BASE_ADDRESS_0;
>       }
> #endif /* end CONFIG_PCI */
>    return;
> }
> 
> 
> Hm, also in eata2x_detect:
> 
> #if defined(MODULE)
>    /* io_port could have been modified when loading as a module */
>    if(io_port[0] != SKIP) {
>       setup_done = TRUE;
>       io_port[MAX_INT_PARAM] = 0;
>       }
> #endif
> .....
>    if (!setup_done) add_pci_ports();
> 
>     Which means that if you give it an io= option as a module, then
>     the PCI bus will not be probed, and the device will not be
>     enabled. So, make sure to remove any io= options when doing an
>     insmod.

(...)

> But it's easier to debug after seing the logs produced without io=
> options. You should definitely get some more debug output.

I've done it with io= option as well as without.  That didn't changed
much.  But maybe there's something else in the way preventing me from
seeing the logs.  Sometimes the logs seems to be truncated in some way. 
For example :

Jun  6 00:44:57 brocoli uptimed: moving up to position 36: 0 days,
02:29:22
Jun  6 00:50:39 brocoli kernel: 928
Jun  6 00:50:39 brocoli kernel: IN from bad port 338 at d0060928
Jun  6 00:50:39 brocoli last message repeated 454 times

The first error line is cropped.  Is syslogd (or klogd) not catching
everything ?

Something else that can be worthy, after I've tried to load the module,
the PCI card seems to be hanged.  There are some leds on it, that are
flashing in cycle after the card is initialized at bootup.  After an
insmod, the two most external ones light up and stays in this state.  If
I remember correctly, a few seconds after an insmod on the i386 box, all
the leds where again flashing in cycle.

Goodnight,

Antoine.


-- 
To UNSUBSCRIBE, email to debian-powerpc-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org



Reply to: