123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- Qualcomm Technologies HIDMA Management interface
- Qualcomm Technologies HIDMA is a high speed DMA device. It only supports
- memcpy and memset capabilities. It has been designed for virtualized
- environments.
- Each HIDMA HW instance consists of multiple DMA channels. These channels
- share the same bandwidth. The bandwidth utilization can be parititioned
- among channels based on the priority and weight assignments.
- There are only two priority levels and 15 weigh assignments possible.
- Other parameters here determine how much of the system bus this HIDMA
- instance can use like maximum read/write request and and number of bytes to
- read/write in a single burst.
- Main node required properties:
- - compatible: "qcom,hidma-mgmt-1.0";
- - reg: Address range for DMA device
- - dma-channels: Number of channels supported by this DMA controller.
- - max-write-burst-bytes: Maximum write burst in bytes that HIDMA can
- occupy the bus for in a single transaction. A memcpy requested is
- fragmented to multiples of this amount. This parameter is used while
- writing into destination memory. Setting this value incorrectly can
- starve other peripherals in the system.
- - max-read-burst-bytes: Maximum read burst in bytes that HIDMA can
- occupy the bus for in a single transaction. A memcpy request is
- fragmented to multiples of this amount. This parameter is used while
- reading the source memory. Setting this value incorrectly can starve
- other peripherals in the system.
- - max-write-transactions: This value is how many times a write burst is
- applied back to back while writing to the destination before yielding
- the bus.
- - max-read-transactions: This value is how many times a read burst is
- applied back to back while reading the source before yielding the bus.
- - channel-reset-timeout-cycles: Channel reset timeout in cycles for this SOC.
- Once a reset is applied to the HW, HW starts a timer for reset operation
- to confirm. If reset is not completed within this time, HW reports reset
- failure.
- Sub-nodes:
- HIDMA has one or more DMA channels that are used to move data from one
- memory location to another.
- When the OS is not in control of the management interface (i.e. it's a guest),
- the channel nodes appear on their own, not under a management node.
- Required properties:
- - compatible: must contain "qcom,hidma-1.0"
- - reg: Addresses for the transfer and event channel
- - interrupts: Should contain the event interrupt
- - desc-count: Number of asynchronous requests this channel can handle
- - iommus: required a iommu node
- Example:
- Hypervisor OS configuration:
- hidma-mgmt@f9984000 = {
- compatible = "qcom,hidma-mgmt-1.0";
- reg = <0xf9984000 0x15000>;
- dma-channels = <6>;
- max-write-burst-bytes = <1024>;
- max-read-burst-bytes = <1024>;
- max-write-transactions = <31>;
- max-read-transactions = <31>;
- channel-reset-timeout-cycles = <0x500>;
- hidma_24: dma-controller@0x5c050000 {
- compatible = "qcom,hidma-1.0";
- reg = <0 0x5c050000 0x0 0x1000>,
- <0 0x5c0b0000 0x0 0x1000>;
- interrupts = <0 389 0>;
- desc-count = <10>;
- iommus = <&system_mmu>;
- };
- };
- Guest OS configuration:
- hidma_24: dma-controller@0x5c050000 {
- compatible = "qcom,hidma-1.0";
- reg = <0 0x5c050000 0x0 0x1000>,
- <0 0x5c0b0000 0x0 0x1000>;
- interrupts = <0 389 0>;
- desc-count = <10>;
- iommus = <&system_mmu>;
- };
|