2002-07-25 13:21:56

by Reinhard Moosauer

[permalink] [raw]
Subject: Intel 845 Boards / 82801DB IDE Chipset / resource collisions

(Please answer to directly to my email too. Thanks!)

Hello List,

some people had problems with
Intel IDE Chips on 845E Boards. ( "resource collisions" )

Yesterday I had the same problem.

Alan Cox said:
> If you look with lspci -v you will find your BIOS has mismapped or
> forgotten to map some of the control register space for that device.
>
> Alan

IMHO there must be a bios bug (latest rev.), because the io resources are left
unassigned. But why does the kernel not fix it?
After reading many questions and no answers, I looked into the kernel source.

I found this block in arch/i386/kernel/pci-i386.c:

==================
/*
* Don't touch IDE controllers and I/O ports of video cards!
*/
if ((class == PCI_CLASS_STORAGE_IDE && idx < 4) ||
(class == PCI_CLASS_DISPLAY_VGA && (r->flags & IORESOURCE_IO)))
continue;
====================

lspci shows indeed the first 4 resources unassigned.

To work around the problem I inserted these lines:
(just before the above block)

========================
/* HACK
* Reinhard Moosauer, 2002-07-25
*/
if ((class == PCI_CLASS_STORAGE_IDE && idx < 4) &&
(!r->start && r->end)) {
printk(KERN_ERR "HACK: INTEL IDE Workaround for"
" %s Resource %d\n", dev->slot_name, idx);

/* I ACCEPT NO RESPOSIBILITY FOR ANY DAMAGE */
pci_assign_resource(dev, idx);
}
==========================


It really works.
As I saw on the list, many other people had the same problem
so I thought, the gurus should take a look at this.

Note1: Please do not use this before anybody gave an OK to it!
I am just playing sorcerer's apprentice.

Note2: You need a patch for kernels before 2.4.19 or so to use the new Intel
Chipsets (when he says "unknown device 0x24cb" or so) . I have one for
2.4.18.

I hope, this helps someone.

Kind regards,

Reinhard


2002-07-25 13:52:55

by Andre Hedrick

[permalink] [raw]
Subject: Re: Intel 845 Boards / 82801DB IDE Chipset / resource collisions


You opinion is wrong.

It is designed that way to conform to the requirements of WHQL and WinXP.
Doing a generic bitchslap of the resources is dangerous and foolish.
This kind of correction needs to be handled discretely at the device
driver and not at setup, well not as deranged as you have presented.

What you are missing is the following.

If you have more than one pci device in the system reporting with the
PCI_CLASS_STORAGE_IDE in the class, you end up blowing away the settings.
Cause the only resources it can now about are isa_legacy rules.



On Thu, 25 Jul 2002, Reinhard Moosauer wrote:

> (Please answer to directly to my email too. Thanks!)
>
> Hello List,
>
> some people had problems with
> Intel IDE Chips on 845E Boards. ( "resource collisions" )
>
> Yesterday I had the same problem.
>
> Alan Cox said:
> > If you look with lspci -v you will find your BIOS has mismapped or
> > forgotten to map some of the control register space for that device.
> >
> > Alan
>
> IMHO there must be a bios bug (latest rev.), because the io resources are left
> unassigned. But why does the kernel not fix it?
> After reading many questions and no answers, I looked into the kernel source.
>
> I found this block in arch/i386/kernel/pci-i386.c:
>
> ==================
> /*
> * Don't touch IDE controllers and I/O ports of video cards!
> */
> if ((class == PCI_CLASS_STORAGE_IDE && idx < 4) ||
> (class == PCI_CLASS_DISPLAY_VGA && (r->flags & IORESOURCE_IO)))
> continue;
> ====================
>
> lspci shows indeed the first 4 resources unassigned.
>
> To work around the problem I inserted these lines:
> (just before the above block)
>
> ========================
> /* HACK
> * Reinhard Moosauer, 2002-07-25
> */
> if ((class == PCI_CLASS_STORAGE_IDE && idx < 4) &&
> (!r->start && r->end)) {
> printk(KERN_ERR "HACK: INTEL IDE Workaround for"
> " %s Resource %d\n", dev->slot_name, idx);
>
> /* I ACCEPT NO RESPOSIBILITY FOR ANY DAMAGE */
> pci_assign_resource(dev, idx);
> }
> ==========================
>
>
> It really works.
> As I saw on the list, many other people had the same problem
> so I thought, the gurus should take a look at this.
>
> Note1: Please do not use this before anybody gave an OK to it!
> I am just playing sorcerer's apprentice.
>
> Note2: You need a patch for kernels before 2.4.19 or so to use the new Intel
> Chipsets (when he says "unknown device 0x24cb" or so) . I have one for
> 2.4.18.
>
> I hope, this helps someone.
>
> Kind regards,
>
> Reinhard
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>

Andre Hedrick
LAD Storage Consulting Group