This document presents know-how on the MHI protocol.
Preview¶
MHI is a well developed protocol by Qualcomm Innovation Center, Inc.
With the ability to control processors and communicate through high-speed modern devices
A fast device with a shared memory bus. Although MHI can be configured
For any school, peripherals are mainly used among PCIe based devices. IMC
provides logical waterways on the physical provides and bus transport
Modem protocols such as Webmondo control messages, IP data packets, and
Diagnostics covering at least one of these types of logical channels. Also OMC
The protocol has a data acknowledgment function and manages that this is a power state
Modems and/or other logical channel. Internals¶
MMIO¶
MMIO
mhi (Memory Mapped IO) consists of a set of hardware registers,
which are mapped from the peripheral bus space to the host callback similar to PCIe.
Here are the main components of the MMIO register space:
MHI access logs: control to MHI configuration registers
MHI BHI Logs: The BHI (boot host interface) registers are actually used by the host.
upload someone’s firmware to before device initialization MHI.Channel
doorbell array: doorbell channel registers, (db) used by host
Notify the device when there are almost certainly new tasks to perform.
Event doorbell array: Doorbell register connected to the event context array
(db) are used by some hosts for current events notification device
available.debug:
Register The register defined below and the counters used to grant access to the device.
A container for debugging information, such as the stability of features appropriate for the host.
Data structure structures¶
All data shared by MHI, reside in the memory of the main host system. Usage
physical interface, the element accesses these data structures. MHI others and data
Structures Data buffers are provided in memory areas of the learning host.
device.
Channel Array: A context arranges all the channel controls that are in a data channel.
Context table.
Broadcast rings: used by the host to schedule work items. in
Transmission rings are how a complete circular queue of descriptors (TD) is organized.
Event context array: All event configurations are neatly organized.
Data array event context.
Event tones: used by the device so that you can send completion messages about actions and state transitions.
host
Command context All tables: keep control of configurations organized in a team
Table of contextual documents.
Command ringtones: used by the host or host to send MHI commands to the device. Are these orders organized?
ringing like a cyclic command queuedescriptor (CD).
Lines¶
MHI links are logical one-way data links between host, device, and critical devices.
The concept in mhi channels is similar to USB.MHI endpoints supported by 256 for
with channels. However, individual device implementations can support as much as possible
the smallest number of threads allowed.
Two unidirectional channels with their associated cable trays form
bidirectional line, data that unfortunately can be used by higher level protocols
transport application data boxes (such as IP packets, control cable box messages,
diagnostic messages, etc.). Each is linked to One mode to only
Transfer ring.
Transmission Rings¶
Data transfer between the host and the device is organized in accordance with certain rules.
Transmission descriptor (TD) channels. in fact td are controlled by transmission rings.
defines each channel’s relationship between device scope and host
Reminder. TD consist of or one severaltheir ring elements (or transmission units):
[reading pointer (RP)]----------->[ring element] } TD
[Record Pointer (WP)]-[Ring Element]
- [Ring Element]
--------->[ring element]
element]
Below [Ring are the main ways to use compression rings:
The host allocates space to store the broadcast ringtone.
The host bed sets the underlying read pointer, the pointer, without forgetting the corresponding write pointer
String context.
A ring can be considered empty if == rp WP.Est
Ring is full +wp when 1 == RP.Specifiers
rp after the element to serve my device.
If the host has a new buffer to send, it updates the element with a stripe
Buffer info, my WP increments to next element and matrix bus
Linked channel comics.
Event Ringtones¶
Node-to-device events can be organized into loop events and defined by a specific event.
Descriptors (ED). Event ringtones are used bydevice for notification of natural disasters, such as
Data transfer completion status, instruction completion status, status and changes
master. Are there multiple EDs located on the host?
memory for o. EDs consist of one or more ring elements (or transmission pointer blocks):
[Read(RP)]----------->[Ring element] } ED
[Record Pointer (WP)]-[Ring Element]
1) [ring element]
--------->[ring element]
[ring element]
The main uses of alliances are shown below:
The host allocates memory for the ringtone.
The base host sets the read pointer, the peak write pointer, and the corresponding pointer.
String context.
Number and device have a copy of the local RP, WP.
Ringtone is considered empty (no event to show), WP + RP 1 ==.
A ring is considered more complete than an event when RP == WP.
When there is a new event that the device has to offer, it updates the ED.
points per rp RP increments, to the additional element And fires, which
interrupt.element¶
Element
