Re: Why do we probe option roms at 2K boundaries?

From: Jon Smirl
Date: Wed Jul 15 2009 - 19:13:29 EST


On Wed, Jul 15, 2009 at 7:10 PM, Alan Cox<alan@xxxxxxxxxxxxxxxxxxx> wrote:
>> interrogating a data structure stored in option-rom memory.  My initial
>> implementation involved blindly scanning from c0000 to f0000 in 512 byte
>> increments.  Neil and others pointed out that this may not be a safe
>
> It isn't safe. If you hit certain ISA devices your system will drop dead.
> OTOH I doubt anyone has an intel matrix raid controller and a WD80x3 on
> the same box ;)

Random link from google, slide 21
http://download.microsoft.com/download/9/8/f/98f3fe47-dfc3-4e74-92a3-088782200fe7/TWAR05005_WinHEC05.ppt

PCI 3.0+ allows 512b alignment, but you must first make sure you are
on a PCI 3.0+ system.

>
>> Recently Hans has been working to get Fedora up and running on a recent
>> Intel software RAID platform and noticed that the option-rom is no
>> longer visible with the 2K aligned scan.  I.e. he needed to make the
>> following changes to the mdadm probe_roms() routine:
>
> Option ROMs should be 2K aligned. Is your data structure part of a ROM or
> an actual ROM header ?
>
>> Is this safe?  Should the kernel be updated as well?  I am assuming that
>> you were the one that originally introduced the 2K aligned scan with
>> this commit from the historical git:
>
> Actually I don't think that was me, don't remember it anyway.
>
> The man to bug at the moment on ROM magic is probably H Peter Anvin
> however.
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
>



--
Jon Smirl
jonsmirl@xxxxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/