commit | f8ae5e1f5ca090b37a701f9dd75ee57106d30dc8 | [log] [tgz] |
---|---|---|
author | Per Åstrand <per.astrand@arm.com> | Tue Oct 20 10:26:17 2020 +0200 |
committer | Kristofer Jonsson <kristofer.jonsson@arm.com> | Tue Oct 20 13:41:59 2020 +0000 |
tree | d5181ca6cb84061a32d52e1d20ea24a9db9d1d01 | |
parent | b25695a00f3536d38c5ca24b406ec4d2e6d5b563 [diff] |
Update example mailbox.dtsi for MHUv2 Change-Id: I1cfc62ad9a2d24f9b354ca9b7b97b4e65a1f9d34
The Linux driver stack for Arm Ethos-U provides an example of how a rich operating system like Linux can dispatch inferences to an Arm Cortex-M subsystem, consisting of an Arm Cortex-M of choice and an Arm Ethos-U NPU.
The kernel drivers are provided under a GPL v2 license. All other software componantes are provided under an Apache 2.0 license.
The driver stack comes with a CMake based build system. Cross compile for an Arm CPU can for example be done with the provided toolchain file.
$ mkdir build $ cd build $ cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchain/aarch64-linux-gnu.cmake -DKDIR=<Kernel directory> $ make
The kernel driver uses the mailbox APIs as a doorbell mechanism.
/ { reserved-memory { #address-cells = <2>; #size-cells = <2>; ranges; ethosu_msg: ethosu_msg@80000000 { compatible = "shared-dma-pool"; reg = <0 0x80000000 0 0x00040000>; no-map; }; ethosu_reserved: ethosu_reserved@80040000 { compatible = "shared-dma-pool"; reg = <0 0x80040000 0 0x00040000>; no-map; }; }; ethosu_mailbox: mhu@6ca00000 { compatible = "arm,mhu", "arm,primecell"; reg = <0x0 0x6ca00000 0x0 0x1000>; interrupts = <0 168 4>; interrupt-names = "npu_rx"; #mbox-cells = <1>; clocks = <&soc_refclk100mhz>; clock-names = "apb_pclk"; }; ethosu { #address-cells = <2>; #size-cells = <2>; compatible = "arm,ethosu"; reg = <0 0x80000000 0 0x00010000>, <0 0x80010000 0 0x00010000>; reg-names = "in_queue", "out_queue"; memory-region = <ðosu_reserved>; dma-ranges = <0 0x60000000 0 0x80000000 0 0x20000000>; mboxes= <ðosu_mailbox 0>, <ðosu_mailbox 0>; mbox-names = "tx", "rx"; }; };