arch/{i386,x86_64}/kernel/setup*.c reserve ports 0x60 to 0x6f for the i8042 keyboard controller. That critter actually uses just 0x60 and 0x64. Apparently, there''s hardware out there (IPMI controller on some single board computer) that uses other ports in the reserved range. Upstream narrowed the I/O port reservation to make that hardware work[*]. I figure simply aping upstream''s change in the two setup-xen.c should do for Xen. Right? Do we want that in linux-2.6.18-xen.hg? [*] http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9096bd7a66efbe406910365c5206a32eed3875af _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
On 24/7/08 00:01, "Markus Armbruster" <armbru@redhat.com> wrote:> arch/{i386,x86_64}/kernel/setup*.c reserve ports 0x60 to 0x6f for the > i8042 keyboard controller. That critter actually uses just 0x60 and > 0x64. Apparently, there''s hardware out there (IPMI controller on some > single board computer) that uses other ports in the reserved range. > Upstream narrowed the I/O port reservation to make that hardware > work[*]. > > I figure simply aping upstream''s change in the two setup-xen.c should > do for Xen. Right?Almost certainly.> Do we want that in linux-2.6.18-xen.hg?Happy to have it. Thanks, Keir> [*] > http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=90 > 96bd7a66efbe406910365c5206a32eed3875af > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Markus Armbruster
2008-Jul-24 19:41 UTC
[Xen-devel] [PATCH] x86: restrict keyboard io ports reservation to make ipmi driver work
Straightforward port of http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9096bd7a66efbe406910365c5206a32eed3875af Quoting its commit message: x86: restrict keyboard io ports reservation to make ipmi driver work On some of our (single board computer) boards (x86) we are using an IPMI controller that uses I/O ports 0x62 and 0x66 for a KCS (keyboard controller style) IPMI system interface. Trying to load the openipmi driver fails, because the ports (0x62/0x66) are reserved for keyboard. keyboard reserves the full range 0x60-0x6F while it doesn''t need to. Reserve only ports 0x60 and 0x64 for the legacy PS/2 i8042 keyboad controller instead of 0x60-0x6F to allow the openipmi driver to work. [ tglx: added 64bit fixup ] Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Markus Armbruster <armbru@redhat.com> diff -r d25b46565529 arch/i386/kernel/setup-xen.c --- a/arch/i386/kernel/setup-xen.c Wed Jul 23 14:21:58 2008 +0100 +++ b/arch/i386/kernel/setup-xen.c Thu Jul 24 10:43:04 2008 -0400 @@ -283,7 +283,12 @@ }, { .name = "keyboard", .start = 0x0060, - .end = 0x006f, + .end = 0x0060, + .flags = IORESOURCE_BUSY | IORESOURCE_IO +}, { + .name = "keyboard", + .start = 0x0064, + .end = 0x0064, .flags = IORESOURCE_BUSY | IORESOURCE_IO }, { .name = "dma page reg", diff -r d25b46565529 arch/i386/kernel/setup.c --- a/arch/i386/kernel/setup.c Wed Jul 23 14:21:58 2008 +0100 +++ b/arch/i386/kernel/setup.c Thu Jul 24 10:43:04 2008 -0400 @@ -261,7 +261,12 @@ }, { .name = "keyboard", .start = 0x0060, - .end = 0x006f, + .end = 0x0060, + .flags = IORESOURCE_BUSY | IORESOURCE_IO +}, { + .name = "keyboard", + .start = 0x0064, + .end = 0x0064, .flags = IORESOURCE_BUSY | IORESOURCE_IO }, { .name = "dma page reg", diff -r d25b46565529 arch/x86_64/kernel/setup-xen.c --- a/arch/x86_64/kernel/setup-xen.c Wed Jul 23 14:21:58 2008 +0100 +++ b/arch/x86_64/kernel/setup-xen.c Thu Jul 24 10:43:04 2008 -0400 @@ -169,7 +169,9 @@ .flags = IORESOURCE_BUSY | IORESOURCE_IO }, { .name = "timer1", .start = 0x50, .end = 0x53, .flags = IORESOURCE_BUSY | IORESOURCE_IO }, - { .name = "keyboard", .start = 0x60, .end = 0x6f, + { .name = "keyboard", .start = 0x60, .end = 0x60, + .flags = IORESOURCE_BUSY | IORESOURCE_IO }, + { .name = "keyboard", .start = 0x64, .end = 0x64, .flags = IORESOURCE_BUSY | IORESOURCE_IO }, { .name = "dma page reg", .start = 0x80, .end = 0x8f, .flags = IORESOURCE_BUSY | IORESOURCE_IO }, diff -r d25b46565529 arch/x86_64/kernel/setup.c --- a/arch/x86_64/kernel/setup.c Wed Jul 23 14:21:58 2008 +0100 +++ b/arch/x86_64/kernel/setup.c Thu Jul 24 10:43:04 2008 -0400 @@ -122,7 +122,9 @@ .flags = IORESOURCE_BUSY | IORESOURCE_IO }, { .name = "timer1", .start = 0x50, .end = 0x53, .flags = IORESOURCE_BUSY | IORESOURCE_IO }, - { .name = "keyboard", .start = 0x60, .end = 0x6f, + { .name = "keyboard", .start = 0x60, .end = 0x60, + .flags = IORESOURCE_BUSY | IORESOURCE_IO }, + { .name = "keyboard", .start = 0x64, .end = 0x64, .flags = IORESOURCE_BUSY | IORESOURCE_IO }, { .name = "dma page reg", .start = 0x80, .end = 0x8f, .flags = IORESOURCE_BUSY | IORESOURCE_IO }, _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel