commit | 8fac4a4d29a5e9792173d7f6db998115c809fde9 | [log] [tgz] |
---|---|---|
author | Per Åstrand <per.astrand@arm.com> | Mon Oct 12 13:37:16 2020 +0200 |
committer | Kristofer Jonsson <kristofer.jonsson@arm.com> | Mon Oct 19 08:22:59 2020 +0000 |
tree | 13c140775054b64cf0d7b2971514c5f1474722fe | |
parent | bb4089d4a0d14ff88c5ce637806f10686c2188de [diff] |
mhuv2: Verifiy ACCESS_REQUEST on send_data Change-Id: I8dc5cb43c8ea050c6881988e9dbd821e60f3c514
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"; }; };