Skip to content
  • Alistair Popple's avatar
    ipmi: add an Aspeed BT IPMI BMC driver · 54f9c4d0
    Alistair Popple authored
    
    
    This patch adds a simple device driver to expose the iBT interface on
    Aspeed SOCs (AST2400 and AST2500) as a character device. Such SOCs are
    commonly used as BMCs (BaseBoard Management Controllers) and this
    driver implements the BMC side of the BT interface.
    
    The BT (Block Transfer) interface is used to perform in-band IPMI
    communication between a host and its BMC. Entire messages are buffered
    before sending a notification to the other end, host or BMC, that
    there is data to be read. Usually, the host emits requests and the BMC
    responses but the specification provides a mean for the BMC to send
    SMS Attention (BMC-to-Host attention or System Management Software
    attention) messages.
    
    For this purpose, the driver introduces a specific ioctl on the
    device: 'BT_BMC_IOCTL_SMS_ATN' that can be used by the system running
    on the BMC to signal the host of such an event.
    
    The device name defaults to '/dev/ipmi-bt-host'
    
    Signed-off-by: default avatarAlistair Popple <alistair@popple.id.au>
    Signed-off-by: default avatarJeremy Kerr <jk@ozlabs.org>
    Signed-off-by: default avatarJoel Stanley <joel@jms.id.au>
    [clg: - checkpatch fixes
          - added a devicetree binding documentation
          - replace 'bt_host' by 'bt_bmc' to reflect that the driver is
            the BMC side of the IPMI BT interface
          - renamed the device to 'ipmi-bt-host'
          - introduced a temporary buffer to copy_{to,from}_user
          - used platform_get_irq()
          - moved the driver under drivers/char/ipmi/ but kept it as a misc
            device
          - changed the compatible cell to "aspeed,ast2400-bt-bmc"
    ]
    Signed-off-by: default avatarCédric Le Goater <clg@kaod.org>
    Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
    [clg: - checkpatch --strict fixes
          - removed the use of devm_iounmap, devm_kfree in cleanup paths
          - introduced an atomic-t to limit opens to 1
          - introduced a mutex to protect write/read operations]
    Acked-by: default avatarRob Herring <robh@kernel.org>
    Signed-off-by: default avatarCédric Le Goater <clg@kaod.org>
    Signed-off-by: default avatarCorey Minyard <cminyard@mvista.com>
    54f9c4d0