commit | b25695a00f3536d38c5ca24b406ec4d2e6d5b563 | [log] [tgz] |
---|---|---|
author | Kristofer Jonsson <kristofer.jonsson@arm.com> | Tue Oct 20 15:23:22 2020 +0200 |
committer | Kristofer Jonsson <kristofer.jonsson@arm.com> | Tue Oct 20 15:23:22 2020 +0200 |
tree | a31182b299b7314e8e74298adbc3b6e707543a06 | |
parent | 8fac4a4d29a5e9792173d7f6db998115c809fde9 [diff] |
Removing uapi/ethosu.h from ethosu.hpp Change-Id: I535e4c9297cf0890fa1cb4f2d8b7cad7e0b4ee39
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"; }; };