179 lines
5.2 KiB
Plaintext
179 lines
5.2 KiB
Plaintext
* Freescale QUICC Engine module (QE)
|
|
This represents qe module that is installed on PowerQUICC II Pro.
|
|
|
|
NOTE: This is an interim binding; it should be updated to fit
|
|
in with the CPM binding later in this document.
|
|
|
|
Basically, it is a bus of devices, that could act more or less
|
|
as a complete entity (UCC, USB etc ). All of them should be siblings on
|
|
the "root" qe node, using the common properties from there.
|
|
The description below applies to the qe of MPC8360 and
|
|
more nodes and properties would be extended in the future.
|
|
|
|
i) Root QE device
|
|
|
|
Required properties:
|
|
- compatible : should be "fsl,qe";
|
|
- model : precise model of the QE, Can be "QE", "CPM", or "CPM2"
|
|
- reg : offset and length of the device registers.
|
|
- bus-frequency : the clock frequency for QUICC Engine.
|
|
- fsl,qe-num-riscs: define how many RISC engines the QE has.
|
|
- fsl,qe-snums: This property has to be specified as '/bits/ 8' value,
|
|
defining the array of serial number (SNUM) values for the virtual
|
|
threads.
|
|
|
|
Optional properties:
|
|
- fsl,firmware-phandle:
|
|
Usage: required only if there is no fsl,qe-firmware child node
|
|
Value type: <phandle>
|
|
Definition: Points to a firmware node (see "QE Firmware Node" below)
|
|
that contains the firmware that should be uploaded for this QE.
|
|
The compatible property for the firmware node should say,
|
|
"fsl,qe-firmware".
|
|
|
|
Recommended properties
|
|
- brg-frequency : the internal clock source frequency for baud-rate
|
|
generators in Hz.
|
|
|
|
Deprecated properties
|
|
- fsl,qe-num-snums: define how many serial number(SNUM) the QE can use
|
|
for the threads. Use fsl,qe-snums instead to not only specify the
|
|
number of snums, but also their values.
|
|
|
|
Example:
|
|
qe@e0100000 {
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
#interrupt-cells = <2>;
|
|
compatible = "fsl,qe";
|
|
ranges = <0 e0100000 00100000>;
|
|
reg = <e0100000 480>;
|
|
brg-frequency = <0>;
|
|
bus-frequency = <179A7B00>;
|
|
fsl,qe-snums = /bits/ 8 <
|
|
0x04 0x05 0x0C 0x0D 0x14 0x15 0x1C 0x1D
|
|
0x24 0x25 0x2C 0x2D 0x34 0x35 0x88 0x89
|
|
0x98 0x99 0xA8 0xA9 0xB8 0xB9 0xC8 0xC9
|
|
0xD8 0xD9 0xE8 0xE9>;
|
|
}
|
|
|
|
* Multi-User RAM (MURAM)
|
|
|
|
Required properties:
|
|
- compatible : should be "fsl,qe-muram", "fsl,cpm-muram".
|
|
- mode : the could be "host" or "slave".
|
|
- ranges : Should be defined as specified in 1) to describe the
|
|
translation of MURAM addresses.
|
|
- data-only : sub-node which defines the address area under MURAM
|
|
bus that can be allocated as data/parameter
|
|
|
|
Example:
|
|
|
|
muram@10000 {
|
|
compatible = "fsl,qe-muram", "fsl,cpm-muram";
|
|
ranges = <0 00010000 0000c000>;
|
|
|
|
data-only@0{
|
|
compatible = "fsl,qe-muram-data",
|
|
"fsl,cpm-muram-data";
|
|
reg = <0 c000>;
|
|
};
|
|
};
|
|
|
|
* Interrupt Controller (IC)
|
|
|
|
Required properties:
|
|
- compatible : should be "fsl,qe-ic".
|
|
- reg : Address range of IC register set.
|
|
- interrupts : interrupts generated by the device.
|
|
- interrupt-controller : this device is a interrupt controller.
|
|
|
|
Example:
|
|
|
|
qeic: interrupt-controller@80 {
|
|
interrupt-controller;
|
|
compatible = "fsl,qe-ic";
|
|
#address-cells = <0>;
|
|
#interrupt-cells = <1>;
|
|
reg = <0x80 0x80>;
|
|
interrupts = <95 2 0 0 94 2 0 0>;
|
|
};
|
|
|
|
* Serial Interface Block (SI)
|
|
|
|
The SI manages the routing of eight TDM lines to the QE block serial drivers
|
|
, the MCC and the UCCs, for receive and transmit.
|
|
|
|
Required properties:
|
|
- compatible : must be "fsl,<chip>-qe-si". For t1040, must contain
|
|
"fsl,t1040-qe-si".
|
|
- reg : Address range of SI register set.
|
|
|
|
Example:
|
|
|
|
si1: si@700 {
|
|
compatible = "fsl,t1040-qe-si";
|
|
reg = <0x700 0x80>;
|
|
};
|
|
|
|
* Serial Interface Block RAM(SIRAM)
|
|
|
|
store the routing entries of SI
|
|
|
|
Required properties:
|
|
- compatible : should be "fsl,<chip>-qe-siram". For t1040, must contain
|
|
"fsl,t1040-qe-siram".
|
|
- reg : Address range of SI RAM.
|
|
|
|
Example:
|
|
|
|
siram1: siram@1000 {
|
|
compatible = "fsl,t1040-qe-siram";
|
|
reg = <0x1000 0x800>;
|
|
};
|
|
|
|
* QE Firmware Node
|
|
|
|
This node defines a firmware binary that is embedded in the device tree, for
|
|
the purpose of passing the firmware from bootloader to the kernel, or from
|
|
the hypervisor to the guest.
|
|
|
|
The firmware node itself contains the firmware binary contents, a compatible
|
|
property, and any firmware-specific properties. The node should be placed
|
|
inside a QE node that needs it. Doing so eliminates the need for a
|
|
fsl,firmware-phandle property. Other QE nodes that need the same firmware
|
|
should define an fsl,firmware-phandle property that points to the firmware node
|
|
in the first QE node.
|
|
|
|
The fsl,firmware property can be specified in the DTS (possibly using incbin)
|
|
or can be inserted by the boot loader at boot time.
|
|
|
|
Required properties:
|
|
- compatible
|
|
Usage: required
|
|
Value type: <string>
|
|
Definition: A standard property. Specify a string that indicates what
|
|
kind of firmware it is. For QE, this should be "fsl,qe-firmware".
|
|
|
|
- fsl,firmware
|
|
Usage: required
|
|
Value type: <prop-encoded-array>, encoded as an array of bytes
|
|
Definition: A standard property. This property contains the firmware
|
|
binary "blob".
|
|
|
|
Example:
|
|
qe1@e0080000 {
|
|
compatible = "fsl,qe";
|
|
qe_firmware:qe-firmware {
|
|
compatible = "fsl,qe-firmware";
|
|
fsl,firmware = [0x70 0xcd 0x00 0x00 0x01 0x46 0x45 ...];
|
|
};
|
|
...
|
|
};
|
|
|
|
qe2@e0090000 {
|
|
compatible = "fsl,qe";
|
|
fsl,firmware-phandle = <&qe_firmware>;
|
|
...
|
|
};
|