mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-18 02:24:18 +00:00

The Arm(R) Ethos(TM)-N NPU driver now supports configuring the SMMU streams that the NPU shall use and will therefore no longer delegate access to these registers to the non-secure world. In order for the driver to support this, the device tree parsing has been updated to support parsing the allocators used by the NPU and what SMMU stream that is associated with each allocator. To keep track of what NPU device each allocator is associated with, the resulting config from the device tree parsing will now group the NPU cores and allocators into their respective NPU device. The SMC API has been changed to allow the caller to specify what allocator the NPU shall be configured to use and the API version has been bumped to indicate this change. Signed-off-by: Mikael Olsson <mikael.olsson@arm.com> Change-Id: I6ac43819133138614e3f55a014e93466fe3d5277
76 lines
1.5 KiB
Text
76 lines
1.5 KiB
Text
/*
|
|
* Copyright (c) 2021-2022, Arm Limited. All rights reserved.
|
|
*
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
|
|
/*
|
|
* This device tree is only an example and some properties have been omitted.
|
|
*
|
|
* Refer to the Arm(R) Ethos(TM)-N driver stack for complete device tree examples.
|
|
* https://github.com/ARM-software/ethos-n-driver-stack
|
|
*/
|
|
|
|
/ {
|
|
#address-cells = <2>;
|
|
#size-cells = <2>;
|
|
|
|
smmu_ethosn0: iommu@6f400000 {
|
|
compatible = "arm,smmu-v3";
|
|
reg = <0 0x6f400000 0 0x80000>;
|
|
status = "okay";
|
|
/* msi-parent omitted */
|
|
#iommu-cells = <0x1>;
|
|
};
|
|
|
|
ethosn0: ethosn@6f300000 {
|
|
compatible = "ethosn";
|
|
reg = <0 0x6f300000 0 0x00100000>;
|
|
status = "okay";
|
|
|
|
core0 {
|
|
compatible = "ethosn-core";
|
|
status = "okay";
|
|
|
|
main_allocator {
|
|
compatible = "ethosn-main_allocator";
|
|
status = "okay";
|
|
|
|
firmware {
|
|
compatible = "ethosn-memory";
|
|
iommus = <&smmu_ethosn0 0>;
|
|
};
|
|
|
|
working_data {
|
|
compatible = "ethosn-memory";
|
|
iommus = <&smmu_ethosn0 1>;
|
|
};
|
|
};
|
|
};
|
|
|
|
asset_allocator {
|
|
compatible = "ethosn-asset_allocator";
|
|
status = "okay";
|
|
|
|
command_stream {
|
|
compatible = "ethosn-memory";
|
|
iommus = <&smmu_ethosn0 2>;
|
|
};
|
|
|
|
weight_data {
|
|
compatible = "ethosn-memory";
|
|
iommus = <&smmu_ethosn0 3>;
|
|
};
|
|
|
|
buffer_data {
|
|
compatible = "ethosn-memory";
|
|
iommus = <&smmu_ethosn0 4>;
|
|
};
|
|
|
|
intermediate_data {
|
|
compatible = "ethosn-memory";
|
|
iommus = <&smmu_ethosn0 5>;
|
|
};
|
|
};
|
|
};
|
|
};
|