On Sat, 2007-03-24 at 01:51 +0100, thomas schorpp wrote:
> > no. so the pci layer reports wrong start:
> 
> nonsense. it succeeds, confused function return with the error flag:
> 
> //      u_long  start;
> //      u_long  start = 0xFFEFF000;
>         u_long  start = 0x30000000;
>         int     error;
> 
>         struct resource* ret1;
>         error = 0;
> //      start = pci_resource_start(ahc->dev_softc, 1);
>         if (start != 0) {
>                 *bus_addr = start;
>                 if ((ret1 = request_mem_region(start, 0x1000, "aic7xxx")) == 
> 0)

You can't do this.  The pci_resource_start is getting the address of
something called a Bus Address Register (BAR) it says in physical
address space where the card is responding ... you can't simply set that
to a random value.

The problem you seem to have is that your system is reporting a BAR
beyond 32 bits (4GB) which the card physically can't use.  This could be
because of a BIOS misconfiguration or because there's a bug in the PCI
subsystem somewhere.

James


-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to