# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1216975349 -3600
# Node ID 6d9e4b02bba47b9bf4d62ac46a0d4f7827542b80
# Parent 57ccd252e855b3aa941efcd7c797bb38dccf50bf
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.
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Acked-by: H. Peter Anvin <hpa@xxxxxxxxx>
Signed-off-by: Ingo Molnar <mingo@xxxxxxx>
Signed-off-by: Markus Armbruster <armbru@xxxxxxxxxx>
---
arch/i386/kernel/setup-xen.c | 7 ++++++-
arch/i386/kernel/setup.c | 7 ++++++-
arch/x86_64/kernel/setup-xen.c | 4 +++-
arch/x86_64/kernel/setup.c | 4 +++-
4 files changed, 18 insertions(+), 4 deletions(-)
diff -r 57ccd252e855 -r 6d9e4b02bba4 arch/i386/kernel/setup-xen.c
--- a/arch/i386/kernel/setup-xen.c Thu Jul 24 14:16:04 2008 +0100
+++ b/arch/i386/kernel/setup-xen.c Fri Jul 25 09:42:29 2008 +0100
@@ -283,7 +283,12 @@ static struct resource standard_io_resou
}, {
.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 57ccd252e855 -r 6d9e4b02bba4 arch/i386/kernel/setup.c
--- a/arch/i386/kernel/setup.c Thu Jul 24 14:16:04 2008 +0100
+++ b/arch/i386/kernel/setup.c Fri Jul 25 09:42:29 2008 +0100
@@ -261,7 +261,12 @@ static struct resource standard_io_resou
}, {
.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 57ccd252e855 -r 6d9e4b02bba4 arch/x86_64/kernel/setup-xen.c
--- a/arch/x86_64/kernel/setup-xen.c Thu Jul 24 14:16:04 2008 +0100
+++ b/arch/x86_64/kernel/setup-xen.c Fri Jul 25 09:42:29 2008 +0100
@@ -169,7 +169,9 @@ struct resource standard_io_resources[]
.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 57ccd252e855 -r 6d9e4b02bba4 arch/x86_64/kernel/setup.c
--- a/arch/x86_64/kernel/setup.c Thu Jul 24 14:16:04 2008 +0100
+++ b/arch/x86_64/kernel/setup.c Fri Jul 25 09:42:29 2008 +0100
@@ -122,7 +122,9 @@ struct resource standard_io_resources[]
.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-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|