Ian Campbell
2011-May-31 13:55 UTC
[Xen-devel] [PATCH] rombios: correct $PIR table router device ID
# HG changeset patch # User Ian Campbell <ian.campbell@citrix.com> # Date 1306850100 -3600 # Node ID 0d66c300e9f759f2829230941eb93a4d957a2fe2 # Parent ae85ab56e17d0bad84dabfe65b5d730a6ba1d431 rombios: correct $PIR table router device ID. Currently the $PIR table embedded in ROMBIOS refers to a "compatible PCI Interrupt Router" with Vendor/Device ID 8086:122e (Intel 82371FB, Original PIIX, I think), despite the fact that the Xen ioemu appears AFAICT to have never provided this particular device. Both the current qemu-xen and upstream qemu trees provide a device with ID 8086:1237 (Intel 82441, i440FX chipset) so switch to using this. Prior to 18931:0a393ba0ec0a the $PIR refered to an 8086:7000 (Intel 82371SB, PIIX3), which again AFAICT nothing ever provided... I''ve no idea which OSes actually pay attention to $PIR (Windows 98 perhaps?) and I certainly don''t know what behaviour either the old/wrong or the new/"correct" value for this field will provoke. There''s a strong arugment to be made for leaving well enough alone... Signed-off-by: Ian Campbell <ian.campbell@citrix.com> diff -r ae85ab56e17d -r 0d66c300e9f7 tools/firmware/rombios/rombios.c --- a/tools/firmware/rombios/rombios.c Tue May 31 12:11:34 2011 +0100 +++ b/tools/firmware/rombios/rombios.c Tue May 31 14:55:00 2011 +0100 @@ -9936,7 +9936,7 @@ pci_routing_table_structure: db 0x08 ;; PCI interrupt router DevFunc dw 0x0000 ;; PCI exclusive IRQs dw 0x8086 ;; compatible PCI interrupt router vendor ID - dw 0x122e ;; compatible PCI interrupt router device ID + dw 0x1237 ;; compatible PCI interrupt router device ID dw 0,0 ;; Miniport data db 0,0,0,0,0,0,0,0,0,0,0 ;; reserved db 0x37 ;; checksum _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Keir Fraser
2011-May-31 14:59 UTC
Re: [Xen-devel] [PATCH] rombios: correct $PIR table router device ID
On 31/05/2011 14:55, "Ian Campbell" <ian.campbell@citrix.com> wrote:> Currently the $PIR table embedded in ROMBIOS refers to a "compatible PCI > Interrupt Router" with Vendor/Device ID 8086:122e (Intel 82371FB, Original > PIIX, I think), despite the fact that the Xen ioemu appears AFAICT to have > never provided this particular device. > > Both the current qemu-xen and upstream qemu trees provide a device with ID > 8086:1237 (Intel 82441, i440FX chipset) so switch to using this. > > Prior to 18931:0a393ba0ec0a the $PIR refered to an 8086:7000 (Intel 82371SB, > PIIX3), which again AFAICT nothing ever provided... > > I''ve no idea which OSes actually pay attention to $PIR (Windows 98 perhaps?) > and I certainly don''t know what behaviour either the old/wrong or the > new/"correct" value for this field will provoke. There''s a strong arugment to > be made for leaving well enough alone...It doesn''t have to be the *correct* device-id, just one that supports the same method for programming with PCI-ISA links. See http://www.microsoft.com/taiwan/whdc/archive/pciirq.mspx. If we change this we risk referring to a too-modern chipset for which old OSes cannot find a matching driver. I suspect even the change to this in c/s 18931 (from upstream rombios) wasn''t a tremendous idea. Bear this in mind for seabios too. ;-) -- Keir _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Ian Campbell
2011-May-31 15:06 UTC
Re: [Xen-devel] [PATCH] rombios: correct $PIR table router device ID
On Tue, 2011-05-31 at 15:59 +0100, Keir Fraser wrote:> On 31/05/2011 14:55, "Ian Campbell" <ian.campbell@citrix.com> wrote: > > > Currently the $PIR table embedded in ROMBIOS refers to a "compatible PCI > > Interrupt Router" with Vendor/Device ID 8086:122e (Intel 82371FB, Original > > PIIX, I think), despite the fact that the Xen ioemu appears AFAICT to have > > never provided this particular device. > > > > Both the current qemu-xen and upstream qemu trees provide a device with ID > > 8086:1237 (Intel 82441, i440FX chipset) so switch to using this. > > > > Prior to 18931:0a393ba0ec0a the $PIR refered to an 8086:7000 (Intel 82371SB, > > PIIX3), which again AFAICT nothing ever provided... > > > > I''ve no idea which OSes actually pay attention to $PIR (Windows 98 perhaps?) > > and I certainly don''t know what behaviour either the old/wrong or the > > new/"correct" value for this field will provoke. There''s a strong arugment to > > be made for leaving well enough alone... > > It doesn''t have to be the *correct* device-id, just one that supports the > same method for programming with PCI-ISA links. See > http://www.microsoft.com/taiwan/whdc/archive/pciirq.mspx.Ah so an OSes won''t (or isn''t supposed to) go looking for an actual device with that specific ID but rather uses it as a key into its table of ways of dealing with PCI-ISA links to find an alternative driver. I should have read the document closer (in fairness the reality of these semantics seem pretty unimaginable!).> If we change this we risk referring to a too-modern chipset for which old > OSes cannot find a matching driver. I suspect even the change to this in c/s > 18931 (from upstream rombios) wasn''t a tremendous idea. > > Bear this in mind for seabios too. ;-)That was really why I posted this patch ;-) I''ll stick with the old ID throughout. Ian. _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel