[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [linux-2.6.18-xen] x86: restrict keyboard io ports reservation to make ipmi driver work



# 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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.