• Corey Minyard's avatar
    IPMI: reserve memio regions separately · 57a38f13
    Corey Minyard authored
    Commit d61a3ead ("[PATCH] IPMI: reserve I/O ports separately")
    changed the way I/O ports were reserved and includes this comment in
    log:
    
     Some BIOSes reserve disjoint I/O regions in their ACPI tables for the IPMI
     controller.  This causes problems when trying to register the entire I/O
     region.  Therefore we must register each I/O port separately.
    
    There is a similar problem with memio regions on an arm64 platform
    (AMD Seattle). Where I see:
    
     ipmi message handler version 39.2
     ipmi_si AMDI0300:00: probing via device tree
     ipmi_si AMDI0300:00: ipmi_si: probing via ACPI
     ipmi_si AMDI0300:00: [mem 0xe0010000] regsize 1 spacing 4 irq 23
     ipmi_si: Adding ACPI-specified kcs state machine
     IPMI System Interface driver.
     ipmi_si: Trying ACPI-specified kcs state machine at mem \
              address 0xe0010000, slave address 0x0, irq 23
     ipmi_si: Could not set up I/O space
    
    The problem is that the ACPI core registers disjoint regions for the
    platform device:
    
    e0010000-e0010000 : AMDI0300:00
    e0010004-e0010004 : AMDI0300:00
    
    and the ipmi_si driver tries to register one region e0010000-e0010004.
    
    Based on a patch from Mark Salter <msalter@redhat.com>, who also wrote
    all the above text.
    Signed-off-by: default avatarCorey Minyard <cminyard@mvista.com>
    Tested-by: default avatarMark Salter <msalter@redhat.com>
    57a38f13
ipmi_si_intf.c 98.7 KB