74 lines
2.9 KiB
Plaintext
74 lines
2.9 KiB
Plaintext
|
Qualcomm MSM On-Chip Memory Driver
|
||
|
|
||
|
msm-ocmem is a driver for managing On-Chip Memory (OCMEM) in MSM SoCs.
|
||
|
It is responsible for allowing various clients to allocate memory from
|
||
|
OCMEM based on performance, latency and power requirements.
|
||
|
|
||
|
Required Properties:
|
||
|
- compatible: Must be "qcom,msm-ocmem"
|
||
|
- reg: Four pairs of physical base addresses and region sizes
|
||
|
of memory mapped registers.
|
||
|
- reg-names : Register region name(s) referenced in reg above
|
||
|
"ocmem_ctrl_physical" corresponds to OCMEM control registers.
|
||
|
"dm_ctrl_physical" corresponds to DM control registers.
|
||
|
"br_ctrl_physical" corresponds to BR control registers.
|
||
|
"ocmem_physical" corresponds to address range of OCMEM memory.
|
||
|
- interrupts: OCMEM core interrupt(s).
|
||
|
- interrupt-names: OCMEM core interrupt name(s) reference in interrupts above
|
||
|
"ocmem_irq" corresponds to OCMEM Error Interrupt.
|
||
|
"dm_irq" corresponds to DM Interrupt.
|
||
|
- qcom,ocmem-num-regions: The number of OCMEM hardware memory regions.
|
||
|
- qcom,ocmem-num-macros: The number of OCMEM hardware memory macros.
|
||
|
- qcom,resource-type: The hardware resource type of the OCMEM core.
|
||
|
|
||
|
In addition to the information on the OCMEM core, the
|
||
|
device tree contains additional information describing partitions
|
||
|
of the OCMEM address space. This is used to establish regions
|
||
|
of OCMEM that are used for each potential client. The partitions
|
||
|
can overlap and the OCMEM driver ensures that there is no possibility
|
||
|
of concurrent access from more than one client to the same address range.
|
||
|
This allows the OCMEM driver to maximize the usage of OCMEM at all times.
|
||
|
|
||
|
Each partition is represented as a sub-node of the OCMEM device.
|
||
|
|
||
|
OCMEM partitions
|
||
|
|
||
|
Required Properties:
|
||
|
- reg : The partition's offset and size within OCMEM.
|
||
|
- qcom,ocmem-part-name : The name for this partition.
|
||
|
- qcom,ocmem-part-min: The minimum amount of memory reserved exclusively for
|
||
|
this client.
|
||
|
Optional Properties:
|
||
|
- qcom,ocmem-part-tail : This parameter, if present, indicates that successive
|
||
|
allocations from this partition must be allocated at
|
||
|
lower offsetis.
|
||
|
Example:
|
||
|
|
||
|
qcom,ocmem@fdd00000 {
|
||
|
reg = <0xfdd00000 0x2000>,
|
||
|
<0xfdd02000 0x2000>,
|
||
|
<0xfe039000 0x400>,
|
||
|
<0xfec00000 0x180000>;
|
||
|
reg-names = "ocmem_ctrl_physical", "dm_ctrl_physical", "br_ctrl_physical", "ocmem_physical";
|
||
|
interrupts = <0 76 0 0 77 0>;
|
||
|
interrupt-names = "ocmem_irq", "dm_irq";
|
||
|
qcom,ocmem-num-regions = <0x3>;
|
||
|
qcom,resource-type = <0x706d636f>
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <1>;
|
||
|
ranges = <0x0 0xfec00000 0x180000>;
|
||
|
|
||
|
partition@0 {
|
||
|
reg = <0x0 0x100000>;
|
||
|
qcom,ocmem-part-name = "graphics";
|
||
|
qcom,ocmem-part-min = <0x80000>;
|
||
|
};
|
||
|
|
||
|
partition@100000 {
|
||
|
reg = <0x100000 0x80000>;
|
||
|
qcom,ocmem-part-name = "video";
|
||
|
qcom,ocmem-part-min = <0x55000>;
|
||
|
};
|
||
|
|
||
|
};
|