mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-26 10:55:09 +07:00
ac5f0f3f86
Armada 3700 SoC comprise a single XOR engine compliant with the ones used in older Marvell SoC's like Armada XP or 38x. The only thing that needs modification is the Mbus configuration, which has to be done on two levels: global and in device. The first one is inherited from the bootloader. The latter can be opened in a default way, leaving arbitration to the bus controller. Hence filled mbus_dram_target_info structure is not needed. Patch "dmaengine: mv_xor: optimize performance by using a subset of the XOR channels" introduced limitation for using XOR engines and channels vs number of available CPU's. Those constraints do not however fit Armada 3700 architecture with two possible CPU's and single, dual-channel engine. Hence in this commit an adjustment for setting maximum available channels is added. This patch enables XOR access to DRAM by opening default window to 4GB space with specific attribute. Signed-off-by: Marcin Wojtas <mw@semihalf.com> Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com> Acked-by: Rob Herring <robh@kernel.org> Signed-off-by: Vinod Koul <vinod.koul@intel.com>
42 lines
1.2 KiB
Plaintext
42 lines
1.2 KiB
Plaintext
* Marvell XOR engines
|
|
|
|
Required properties:
|
|
- compatible: Should be one of the following:
|
|
- "marvell,orion-xor"
|
|
- "marvell,armada-380-xor"
|
|
- "marvell,armada-3700-xor".
|
|
- reg: Should contain registers location and length (two sets)
|
|
the first set is the low registers, the second set the high
|
|
registers for the XOR engine.
|
|
- clocks: pointer to the reference clock
|
|
|
|
The DT node must also contains sub-nodes for each XOR channel that the
|
|
XOR engine has. Those sub-nodes have the following required
|
|
properties:
|
|
- interrupts: interrupt of the XOR channel
|
|
|
|
The sub-nodes used to contain one or several of the following
|
|
properties, but they are now deprecated:
|
|
- dmacap,memcpy to indicate that the XOR channel is capable of memcpy operations
|
|
- dmacap,memset to indicate that the XOR channel is capable of memset operations
|
|
- dmacap,xor to indicate that the XOR channel is capable of xor operations
|
|
- dmacap,interrupt to indicate that the XOR channel is capable of
|
|
generating interrupts
|
|
|
|
Example:
|
|
|
|
xor@d0060900 {
|
|
compatible = "marvell,orion-xor";
|
|
reg = <0xd0060900 0x100
|
|
0xd0060b00 0x100>;
|
|
clocks = <&coreclk 0>;
|
|
status = "okay";
|
|
|
|
xor00 {
|
|
interrupts = <51>;
|
|
};
|
|
xor01 {
|
|
interrupts = <52>;
|
|
};
|
|
};
|