From: christopher.lee.bostic@gmail.com
To: openbmc@lists.ozlabs.org
Subject: [PATCH linux v5 0/7] Introducing the FSI device driver
Date: Wed, 24 Aug 2016 14:54:05 -0500 [thread overview]
Message-ID: <1472068452-32048-1-git-send-email-christopher.lee.bostic@gmail.com> (raw)
From: Chris Bostic <cbostic@us.ibm.com>
Introduction of the IBM 'Flexible Support Interface' (FSI) bus device
driver. FSI is a high fan out serial bus consisting of a clock and a serial
data line capable of running at speeds up to 166 MHz.
This set provides the core functionality of the FSI device driver. Core
function is defined as:
* FSI client registration and notification of bus state changes
* Device scanning and hotplug reporting to clients
* Interrupt detection and routing
* Bus error detection and cleanup
This patch set does not include extended FSI function such as:
* Hub master support
* Cascaded master support
* Application layer hot plug notification
* Application layer FSI bus status interface
* Host configuration allowing for various hardware / firmware
emulation implementations of the FSI master.
* Soft FSI support. Soft FSI is a device driver method of emulating
FSI master hardware by 'bit banging' standard I/O lines.
Common FSI terminology:
* Master
Controller of the FSI bus. Only the master is allowed to control the
clock line and is the initiator of all transactions on a bus.
* Slave
The receiver or target of a master initiated transaction. The slave
cannot initiate communications on a bus and must respond to any
master requests for data.
* CFAM
Stands for Common Field replaceable unit Access Macro. A CFAM is an
ASIC residing in any device requiring FSI communications. CFAMs
consist of an array of hardware 'engines' used for various purposes.
I2C masters, UARTs, General Purpose IO hardware are common types of
these engines.
* Configuration Space / Table
A table contained at the beginning of each CFAM address space.
This table lists information such as the CFAM's ID, which engine types
and versions it has available, as well as its addressing range.
* Link
The combination of a serial clock and data line constituting one
FSI communications element. For each link there is a master on one
end and a CFAM/slave on the other end.
* Engine
A self contained hardware function found within a CFAM. Examples
include I2C masters, UARTs, GPIOs, etc...
* Client
A device driver requiring access to its hardware via an FSI bus.
For example an I2C client would be a device driver requiring
access to an I2C master engine on a remote CFAM accessible via
an FSI link. Clients register with the FSI bus and will receive
notifications of bus state changes as well as hot plug events related
to engines of interest to them.
* Build Up
The process scanning a bus and creating a data structure representation
of all devices discovered in a tree. A tree in this context is a
series of links and devices connected to those links.
* Hub / Hub master
Provides extension to the existing primary FSI master. Allows for
several chained FSI links in series to a target device thus increasing
potential fan out.
* Cascaded master
A subset of functionality of the hub master. Cascaded masters can
access only a limited address range compared to hub masters. This was
the first generation implementation, essentially, of hub type function.
---
Chris Bostic (6):
drivers/fsi: Add FSI Master Functionality and Initialization
drivers/fsi: Add FSI master target device scanning function
drivers/fsi: Add initial FSI link buildup
drivers/fsi: Add FSI bus type and hook into LDM
drivers/fsi: Add FSI Bus Support for Clients
drivers/fsi: Add CFAM scanning function
Christopher Bostic (1):
drivers/fsi: Initial stubs for FSI device driver.
drivers/Kconfig | 2 +
drivers/Makefile | 1 +
drivers/fsi/Kconfig | 7 +
drivers/fsi/Makefile | 5 +
drivers/fsi/build.c | 876 ++++++++++++++++++++++++++++++++++++++++++++++
drivers/fsi/fsi.h | 134 +++++++
drivers/fsi/fsi_private.h | 123 +++++++
drivers/fsi/fsicfam.h | 161 +++++++++
drivers/fsi/fsiinit.c | 92 +++++
drivers/fsi/fsiinit.h | 43 +++
drivers/fsi/fsilink.h | 99 ++++++
drivers/fsi/fsimaster.c | 619 ++++++++++++++++++++++++++++++++
drivers/fsi/fsimaster.h | 682 ++++++++++++++++++++++++++++++++++++
drivers/fsi/fsislave.h | 415 ++++++++++++++++++++++
drivers/fsi/ldm.c | 347 ++++++++++++++++++
drivers/fsi/readwrite.c | 123 +++++++
16 files changed, 3729 insertions(+)
create mode 100644 drivers/fsi/Kconfig
create mode 100644 drivers/fsi/Makefile
create mode 100644 drivers/fsi/build.c
create mode 100644 drivers/fsi/fsi.h
create mode 100644 drivers/fsi/fsi_private.h
create mode 100644 drivers/fsi/fsicfam.h
create mode 100644 drivers/fsi/fsiinit.c
create mode 100644 drivers/fsi/fsiinit.h
create mode 100644 drivers/fsi/fsilink.h
create mode 100644 drivers/fsi/fsimaster.c
create mode 100644 drivers/fsi/fsimaster.h
create mode 100644 drivers/fsi/fsislave.h
create mode 100644 drivers/fsi/ldm.c
create mode 100644 drivers/fsi/readwrite.c
--
1.8.2.2
next reply other threads:[~2016-08-24 19:54 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-24 19:54 christopher.lee.bostic [this message]
2016-08-24 19:54 ` [PATCH linux v5 1/7] drivers/fsi: Initial stubs for FSI device driver christopher.lee.bostic
2016-08-24 19:54 ` [PATCH linux v5 2/7] drivers/fsi: Add FSI Master Functionality and Initialization christopher.lee.bostic
2016-09-08 0:09 ` Joel Stanley
2016-09-21 18:38 ` Christopher Bostic
2016-09-21 22:59 ` Brad Bishop
2016-09-21 21:15 ` Christopher Bostic
2016-08-24 19:54 ` [PATCH linux v5 3/7] drivers/fsi: Add FSI master target device scanning function christopher.lee.bostic
2016-08-24 19:54 ` [PATCH linux v5 4/7] drivers/fsi: Add initial FSI link buildup christopher.lee.bostic
[not found] ` <CACPK8XfE0LpLnU64bw-8JA70wvAwbfO7L-fb6foyOLv-nMfNeg@mail.gmail.com>
2016-09-21 18:44 ` Christopher Bostic
2016-08-24 19:54 ` [PATCH linux v5 5/7] drivers/fsi: Add FSI bus type and hook into LDM christopher.lee.bostic
[not found] ` <CACPK8XcKuNAdrCiDuXpj5QgM+_U_+7hGKZd0ueZEGPcuurL=1g@mail.gmail.com>
2016-09-21 18:16 ` Christopher Bostic
2016-08-24 19:54 ` [PATCH linux v5 6/7] drivers/fsi: Add FSI Bus Support for Clients christopher.lee.bostic
2016-08-24 19:54 ` [PATCH linux v5 7/7] drivers/fsi: Add CFAM scanning function christopher.lee.bostic
2016-09-02 5:05 ` [PATCH linux v5 0/7] Introducing the FSI device driver Joel Stanley
2016-09-08 0:10 ` Joel Stanley
2016-09-21 18:49 ` Christopher Bostic
2016-09-21 18:52 ` Christopher Bostic
2016-09-21 17:42 ` Christopher Bostic
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1472068452-32048-1-git-send-email-christopher.lee.bostic@gmail.com \
--to=christopher.lee.bostic@gmail.com \
--cc=openbmc@lists.ozlabs.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.