• Patrick Venture's avatar
    drivers/misc: Add Aspeed P2A control driver · 01c60dce
    Patrick Venture authored
    The ASPEED AST2400, and AST2500 in some configurations include a
    PCI-to-AHB MMIO bridge.  This bridge allows a server to read and write
    in the BMC's physical address space.  This feature is especially useful
    when using this bridge to send large files to the BMC.
    
    The host may use this to send down a firmware image by staging data at a
    specific memory address, and in a coordinated effort with the BMC's
    software stack and kernel, transmit the bytes.
    
    This driver enables the BMC to unlock the PCI bridge on demand, and
    configure it via ioctl to allow the host to write bytes to an agreed
    upon location.  In the primary use-case, the region to use is known
    apriori on the BMC, and the host requests this information.  Once this
    request is received, the BMC's software stack will enable the bridge and
    the region and then using some software flow control (possibly via IPMI
    packets), copy the bytes down.  Once the process is complete, the BMC
    will disable the bridge and unset any region involved.
    
    The default behavior of this bridge when present is: enabled and all
    regions marked read-write.  This driver will fix the regions to be
    read-only and then disable the bridge entirely.
    
    The memory regions protected are:
     * BMC flash MMIO window
     * System flash MMIO windows
     * SOC IO (peripheral MMIO)
     * DRAM
    
    The DRAM region itself is all of DRAM and cannot be further specified.
    Once the PCI bridge is enabled, the host can read all of DRAM, and if
    the DRAM section is write-enabled, then it can write to all of it.
    Signed-off-by: default avatarPatrick Venture <venture@google.com>
    Reviewed-by: default avatarAndrew Jeffery <andrew@aj.id.au>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    01c60dce
Makefile 2.35 KB