feat(ethos-n)!: add protected NPU firmware setup

When the Arm(R) Ethos(TM)-N NPU driver is built with TZMP1 support, the
NPU should use the firmware that has been loaded into the protected
memory by BL2. The Linux Kernel NPU driver in the non-secure world is
not allowed to configure the NPU to do this in a TZMP1 build so the SiP
service will now configure the NPU to boot with the firmware in the
protected memory.

BREAKING CHANGE: The Linux Kernel NPU driver can no longer directly
configure and boot the NPU in a TZMP1 build. The API version has
therefore been given a major version bump with this change.

Signed-off-by: Mikael Olsson <mikael.olsson@arm.com>
Change-Id: I65d00f54b3ade3665d7941e270da7a3dec02281a
diff --git a/include/drivers/arm/ethosn.h b/include/drivers/arm/ethosn.h
index b43e8dd..993dd12 100644
--- a/include/drivers/arm/ethosn.h
+++ b/include/drivers/arm/ethosn.h
@@ -16,7 +16,8 @@
 #define ETHOSN_FNUM_SOFT_RESET		U(0x53)
 #define ETHOSN_FNUM_IS_SLEEPING		U(0x54)
 #define ETHOSN_FNUM_GET_FW_PROP		U(0x55)
-/* 0x56-0x5F reserved for future use */
+#define ETHOSN_FNUM_BOOT_FW		U(0x56)
+/* 0x57-0x5F reserved for future use */
 
 /* Properties for ETHOSN_FNUM_TZMP_GET_FW_PROP */
 #define ETHOSN_FW_PROP_VERSION		U(0xF00)
@@ -46,8 +47,8 @@
 #define is_ethosn_fid(_fid) (((_fid) & ETHOSN_FID_MASK) == ETHOSN_FID_VALUE)
 
 /* Service version  */
-#define ETHOSN_VERSION_MAJOR U(2)
-#define ETHOSN_VERSION_MINOR U(6)
+#define ETHOSN_VERSION_MAJOR U(3)
+#define ETHOSN_VERSION_MINOR U(0)
 
 /* Return codes for function calls */
 #define ETHOSN_SUCCESS			 0
@@ -58,6 +59,7 @@
 #define ETHOSN_UNKNOWN_CORE_ADDRESS	-5
 #define ETHOSN_UNKNOWN_ALLOCATOR_IDX	-6
 #define ETHOSN_INVALID_CONFIGURATION    -7
+#define ETHOSN_INVALID_STATE		-8
 
 /*
  * Argument types for soft and hard resets to indicate whether to reset