diff --git a/.github/workflows/tflm.yml b/.github/workflows/tflm.yml index 2ac4dc2..9d3ee97 100644 --- a/.github/workflows/tflm.yml +++ b/.github/workflows/tflm.yml @@ -51,6 +51,16 @@ jobs: repository: tensorflow/tflite-micro ref: 8c458fc48ee972ea4fc56ddc08849823b9af7ea8 + - name: '⏳ Checkout Ethos' + run: | + git clone --depth 1 \ + https://review.mlplatform.org/ml/ethos-u/ethos-u-core-driver \ + tflite-micro/tensorflow/lite/micro/tools/make/downloads/ethos_u_core_driver/ + cd tflite-micro/tensorflow/lite/micro/tools/make/downloads/ethos_u_core_driver/ + git checkout 23.05 > /dev/null 2>&1 + git log -1 + git apply --verbose ${GITHUB_WORKSPACE}/patches/ethosu_driver.patch + - name: '♻ Caching dependencies' uses: actions/cache@v4.0.2 id: cache diff --git a/patches/ethosu_driver.patch b/patches/ethosu_driver.patch new file mode 100644 index 0000000..f6fd0e2 --- /dev/null +++ b/patches/ethosu_driver.patch @@ -0,0 +1,74 @@ +diff --git a/src/ethosu_config_u55.h b/src/ethosu_config_u55.h +index 9330bb1..c1ce4a1 100644 +--- a/src/ethosu_config_u55.h ++++ b/src/ethosu_config_u55.h +@@ -22,11 +22,11 @@ + /* Set default values if not manually overriden */ + + #ifndef NPU_QCONFIG +-#define NPU_QCONFIG 2 ++#define NPU_QCONFIG 0 + #endif + + #ifndef NPU_REGIONCFG_0 +-#define NPU_REGIONCFG_0 3 ++#define NPU_REGIONCFG_0 0 + #endif + + #ifndef NPU_REGIONCFG_1 +@@ -58,11 +58,11 @@ + #endif + + #ifndef AXI_LIMIT0_MAX_BEATS_BYTES +-#define AXI_LIMIT0_MAX_BEATS_BYTES 0x0 ++#define AXI_LIMIT0_MAX_BEATS_BYTES 0x1 + #endif + + #ifndef AXI_LIMIT0_MEM_TYPE +-#define AXI_LIMIT0_MEM_TYPE 0x0 ++#define AXI_LIMIT0_MEM_TYPE 0x2 + #endif + + #ifndef AXI_LIMIT0_MAX_OUTSTANDING_READS +@@ -74,11 +74,11 @@ + #endif + + #ifndef AXI_LIMIT1_MAX_BEATS_BYTES +-#define AXI_LIMIT1_MAX_BEATS_BYTES 0x0 ++#define AXI_LIMIT1_MAX_BEATS_BYTES 0x1 + #endif + + #ifndef AXI_LIMIT1_MEM_TYPE +-#define AXI_LIMIT1_MEM_TYPE 0x0 ++#define AXI_LIMIT1_MEM_TYPE 0x2 + #endif + + #ifndef AXI_LIMIT1_MAX_OUTSTANDING_READS +@@ -90,11 +90,11 @@ + #endif + + #ifndef AXI_LIMIT2_MAX_BEATS_BYTES +-#define AXI_LIMIT2_MAX_BEATS_BYTES 0x0 ++#define AXI_LIMIT2_MAX_BEATS_BYTES 0x1 + #endif + + #ifndef AXI_LIMIT2_MEM_TYPE +-#define AXI_LIMIT2_MEM_TYPE 0x0 ++#define AXI_LIMIT2_MEM_TYPE 0x2 + #endif + + #ifndef AXI_LIMIT2_MAX_OUTSTANDING_READS +@@ -106,11 +106,11 @@ + #endif + + #ifndef AXI_LIMIT3_MAX_BEATS_BYTES +-#define AXI_LIMIT3_MAX_BEATS_BYTES 0x0 ++#define AXI_LIMIT3_MAX_BEATS_BYTES 0x1 + #endif + + #ifndef AXI_LIMIT3_MEM_TYPE +-#define AXI_LIMIT3_MEM_TYPE 0x0 ++#define AXI_LIMIT3_MEM_TYPE 0x2 + #endif + + #ifndef AXI_LIMIT3_MAX_OUTSTANDING_READS