19 Jun, 2019

1 commit

  • Based on 1 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license version 2 as
    published by the free software foundation this program is
    distributed in the hope that it will be useful but without any
    warranty without even the implied warranty of mergchantability or
    fitness for a particular purpose see the gnu general public license
    for more details

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-only

    has been chosen to replace the boilerplate/reference in 2 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Allison Randal
    Reviewed-by: Enrico Weigelt
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190604081202.997941624@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

12 Jun, 2018

1 commit

  • This driver provides an in-kernel and a user API for accessing
    the command FIFO of the SBE (Self Boot Engine) of the POWER9
    processor, via the FSI bus.

    It provides an in-kernel interface to submit command and receive
    responses, along with a helper to locate and analyse the response
    status block. It's a simple synchronous submit() type API.

    The user interface uses the write/read interface that an earlier
    version of this driver already provided, however it has some
    specific limitations in order to keep the driver simple and
    avoid using up a lot of kernel memory:

    - The user should perform a single write() with the command and
    a single read() to get the response (with a buffer big enough
    to hold the entire response).

    - On a write() the command is simply "stored" into a kernel buffer,
    it is submitted as one operation on the subsequent read(). This
    allows to have the code write directly from the FIFO into the user
    buffer and avoid hogging the SBE between the write() and read()
    syscall as it's critical that the SBE be freed asap to respond
    to the host. An extra write() will simply replace the previously
    written command.

    - A write of a single 4 bytes containing the value 0x52534554
    in big endian will trigger a reset request. No read is necessary,
    the write() call will return when the reset has been acknowledged
    or times out.

    - The command is limited to 4K bytes.

    Signed-off-by: Benjamin Herrenschmidt
    Tested-by: Joel Stanley
    ---

    Benjamin Herrenschmidt