cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

topology.rst (2198B)


      1.. SPDX-License-Identifier: GPL-2.0
      2
      3============
      4MHI Topology
      5============
      6
      7This document provides information about the MHI topology modeling and
      8representation in the kernel.
      9
     10MHI Controller
     11--------------
     12
     13MHI controller driver manages the interaction with the MHI client devices
     14such as the external modems and WiFi chipsets. It is also the MHI bus master
     15which is in charge of managing the physical link between the host and device.
     16It is however not involved in the actual data transfer as the data transfer
     17is taken care by the physical bus such as PCIe. Each controller driver exposes
     18channels and events based on the client device type.
     19
     20Below are the roles of the MHI controller driver:
     21
     22* Turns on the physical bus and establishes the link to the device
     23* Configures IRQs, IOMMU, and IOMEM
     24* Allocates struct mhi_controller and registers with the MHI bus framework
     25  with channel and event configurations using mhi_register_controller.
     26* Initiates power on and shutdown sequence
     27* Initiates suspend and resume power management operations of the device.
     28
     29MHI Device
     30----------
     31
     32MHI device is the logical device which binds to a maximum of two MHI channels
     33for bi-directional communication. Once MHI is in powered on state, the MHI
     34core will create MHI devices based on the channel configuration exposed
     35by the controller. There can be a single MHI device for each channel or for a
     36couple of channels.
     37
     38Each supported device is enumerated in::
     39
     40        /sys/bus/mhi/devices/
     41
     42MHI Driver
     43----------
     44
     45MHI driver is the client driver which binds to one or more MHI devices. The MHI
     46driver sends and receives the upper-layer protocol packets like IP packets,
     47modem control messages, and diagnostics messages over MHI. The MHI core will
     48bind the MHI devices to the MHI driver.
     49
     50Each supported driver is enumerated in::
     51
     52        /sys/bus/mhi/drivers/
     53
     54Below are the roles of the MHI driver:
     55
     56* Registers the driver with the MHI bus framework using mhi_driver_register.
     57* Prepares the device for transfer by calling mhi_prepare_for_transfer.
     58* Initiates data transfer by calling mhi_queue_transfer.
     59* Once the data transfer is finished, calls mhi_unprepare_from_transfer to
     60  end data transfer.