MLECO-3247: Arm Corstone-310 deployment instructions update

Minor documentation updates for Corstone-310 target along with
version bump for the project and updates to release notes.

Change-Id: I8b33b66961ab0517864539d88501ad5d71219368
Signed-off-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1b60396..d4a4bd5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -85,7 +85,7 @@
 endif()
 
 project(arm_ml_embedded_evaluation_kit
-        VERSION     22.08.0
+        VERSION     22.11.0
         DESCRIPTION "ARM ML Embedded Evaluation Kit"
         LANGUAGES   C CXX ASM)
 
diff --git a/docs/sections/arm_virtual_hardware.md b/docs/sections/arm_virtual_hardware.md
index 7982b73..462b948 100644
--- a/docs/sections/arm_virtual_hardware.md
+++ b/docs/sections/arm_virtual_hardware.md
@@ -37,9 +37,11 @@
 Once you have access to the AWS instance, we recommend starting from the
 [quick start guide](../quick_start.md#Quick-start-example-ML-application) in order to get familiar
 with the ml-embedded-evaluation-kit. Note that on the AWS instance, the FVPs are available under:
+
  - `/opt/VHT/VHT_Corstone_SSE-300_Ethos-U55`
  - `/opt/VHT/VHT_Corstone_SSE-300_Ethos-U65`
  - `/opt/VHT/VHT_Corstone_SSE-310`
+ - `/opt/VHT/VHT_Corstone_SSE-310_Ethos-U65`
 
 In order to view the FVP window when launching on the AWS instance a VNC is required.
 See relevant section [here](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-linux-2-install-gui/).
diff --git a/docs/sections/deployment.md b/docs/sections/deployment.md
index ab3e82f..ccf46f2 100644
--- a/docs/sections/deployment.md
+++ b/docs/sections/deployment.md
@@ -9,13 +9,12 @@
     - [MPS3 board top-view](./deployment.md#mps3-board-top_view)
     - [Deployment on MPS3 board](./deployment.md#deployment-on-mps3-board)
 
-The sample application for Arm® *Ethos™-U55* can be deployed on two target platforms:
+The sample application for Arm® Ethos™-U55 can be deployed on two target platforms:
 
 - A physical Arm MPS3 FPGA prototyping board
-
 - An MPS3 FVP
 
-Both implement the Arm® *Corstone™-300* design. For further information, please refer to:
+Both implement the Arm® Corstone™-300 design. For further information, please refer to:
 [Arm Corstone-300](https://www.arm.com/products/iot/soc/corstone-300)
 
 ## Fixed Virtual Platform
@@ -23,21 +22,18 @@
 The FVP is available publicly from the following page:
 [Arm Ecosystem FVP downloads](https://developer.arm.com/tools-and-software/open-source-software/arm-platforms-software/arm-ecosystem-fvps).
 
-Please ensure that you download the correct archive from the list under Arm® *Corstone™-300*. You need the one which:
+Please ensure that you download the correct archive from the list under Arm® Corstone™-300. You need the one which:
 
 - Emulates MPS3 board and *not* for MPS2 FPGA board,
-- Contains support for Arm® *Ethos™-U55* and *Ethos-U65* processors.
+- Contains support for Arm® Ethos™-U55 and Ethos™-U65 processors.
 
 ### Setting up the MPS3 Arm Corstone-300 FVP
 
-For the *Ethos-U* evaluation, please download the MPS3 based version of the Arm® *Corstone™-300* model that contains *Cortex-M55*
-and offers a choice of the *Ethos-U55* and *Ethos-U65* processors.
-
 To install the FVP:
 
 - Unpack the archive.
 
-- Run the install script in the extracted package:
+- Run the installation script in the extracted package:
 
     `./FVP_Corstone_SSE-300.sh`
 
@@ -47,10 +43,15 @@
 
 This section assumes that the FVP has been installed (see
 [Setting up the MPS3 Arm Corstone-300 FVP](./deployment.md#setting-up-the-mps3-arm-corstone-300-fvp))
-to the home directory of the user: `~/FVP_Corstone_SSE-300`.
+to the home directory of the user: `~/FVP_Corstone_SSE-300`. The installation, typically, has the
+executable under `~/FVP_Corstone_SSE-300/model/<OS>_<compiler-version>/` directory. For the example
+below, we assume it is: `~/FVP_Corstone_SSE-300/models/Linux64_GCC-6.4`.
 
-The installation, typically, has the executable under `~/FVP_Corstone_SSE-300/model/<OS>_<compiler-version>/`
-directory. For the example below, we assume it is: `~/FVP_Corstone_SSE-300/models/Linux64_GCC-6.4`.
+For Arm Virtual Hardware, the installation paths are different (see Arm Virtual Hardware's
+[Useful Links](./arm_virtual_hardware.md#useful-links) section).
+
+> **NOTE**: The commandline arguments for the FVP mentioned below are valid for FVPs (and AVH) for
+> both Arm® Corstone™-300 and Corstone™-310.
 
 To run a use-case on the FVP, from the [Build directory](../sections/building.md#create-a-build-directory):
 
@@ -80,7 +81,7 @@
 ~/FVP_Corstone_SSE-300/models/Linux64_GCC-6.4/FVP_Corstone_SSE-300_Ethos-U55 -a ./bin/ethos-u-img_class.axf
 ```
 
-Meanwhile for *Ethos-U65*:
+Meanwhile, for *Ethos-U65*:
 
 ```commandline
 ~/FVP_Corstone_SSE-300/models/Linux64_GCC-6.4/FVP_Corstone_SSE-300_Ethos-U65 -a ./bin/ethos-u-img_class.axf
@@ -180,12 +181,12 @@
 
 ### Deployment on MPS3 board
 
-> **Note:**: These instructions are valid only if the evaluation is being done using the MPS3 FPGA platform using
-> an Arm® *Corstone™-300* implementation.
-
 To run the application on MPS3 platform, you must first ensure that the platform has been set up using the correct
 configuration.
 
+> **Note:**: These instructions are valid only if the evaluation is being done using the MPS3 FPGA platform using
+> an Arm® Corstone™-300 (AN552) or Corstone™-310 (AN555) implementations.
+
 For details on platform set-up, please see the relevant documentation. For the Arm® Corstone™-300 implementation
 `AN552`, the document is available here: [Arm Developer](https://developer.arm.com/documentation/dai0552/).
 
@@ -207,11 +208,11 @@
 USB Serial Number = 5000123456789
 ```
 
-If the `axf` or `elf` file is within the ITCM load size limit, it can be copied into the FPGA memory directly without
-having to break it down into separate load region-specific blobs. However, if the neural network models exceed this
-size, you must use the following approach:
+If the `axf` or `elf` file is within the ITCM/BRAM load size limit, it can be copied into the FPGA memory directly
+without having to break it down into separate load region-specific blobs. However, if the neural network models exceed
+this size, you must use the approach described below.
 
-1. For example, the image classification use-case produces:
+1. For example, the image classification use-case produces the following for Corstone™-300:
 
     ```tree
     ./bin/sectors/
@@ -219,27 +220,43 @@
             ├── ddr.bin
             └── itcm.bin
     ```
+    For Corstone™-310, the tree should have:
+    ```tree
+    ./bin/sectors/
+        └── img_class
+            ├── ddr.bin
+            └── bram.bin
+    ```
+    As reflected in the names above, the primary code memory for Arm® Corstone™-300 is the ITCM. For Arm® Corstone™-310
+    however, this is the FPGA SRAM (or BRAM) region instead. This is because the ITCM is only 32kB which cannot
+    accommodate the code footprint for our applications.
 
-    If the micro SD card is mounted at `/media/user/V2M-MPS3/`, then use:
-
+    Assuming that the micro SD card is mounted at `/media/user/V2M-MPS3/`, we can use:
     ```commandline
-    cp -av ./bin/sectors/img_class/* /media/user/V2M-MPS3/SOFTWARE/
+    cp -av ./bin/sectors/img_class/* /media/user/V2M-MPS3/SOFTWARE/ && sync
     ```
 
-    Note that the `itcm.bin` and `ddr.bin` files correspond to the part of the application residing in the first and
-    second load region respectively, as defined in the
-    [scatter file](../../scripts/cmake/platforms/mps3/sse-300/mps3-sse-300.sct).
+    Note that the `itcm.bin` (or `bram.bin`) and `ddr.bin` files correspond to the part of the application residing in
+    the first and second load region respectively, as defined in the
+    [scatter file for sse-300](../../scripts/cmake/platforms/mps3/sse-300/mps3-sse-300.sct)
+    and [scatter file for sse-310](../../scripts/cmake/platforms/mps3/sse-310/mps3-sse-310.sct)
+
 
 2. The `./bin/sectors/images.txt` file must be copied over to the MPS3. The exact location for the destination depends
    on the version of the MPS3 board and the application note for the bit file in use.
 
-   For example, the revision C of the MPS3 board hardware uses an application note directory named `AN552`, to replace the
-   `images.txt` file, like so:
+   For example, with revision `C` of the MPS3 board hardware, using an application note directory named `AN552`, we can
+   replace the `images.txt` file by:
 
     ```commandline
-    cp ./bin/sectors/images.txt /media/user/V2M-MPS3/MB/HBI0309C/AN552/images.txt
+    cp ./bin/sectors/images.txt /media/user/V2M-MPS3/MB/HBI0309C/AN552/images.txt && sync
     ```
 
+> **NOTE**: Make sure the SD card is unmounted correctly after all the files have been copied. For example:
+> ```commandline
+> umount /media/user/V2M-MPS3
+> ```
+
 3. Open the first serial port available from MPS3. For example, `/dev/ttyUSB0`. This can be typically done using
    `minicom`, `screen`, or `Putty` applications. Make sure the configuration is set to 115200 8/N/1 and that the
    flow control setting is switched off:
diff --git a/release_notes.txt b/release_notes.txt
index 59a9d65..9a8bbc0 100644
--- a/release_notes.txt
+++ b/release_notes.txt
@@ -1,3 +1,10 @@
+Changes in 22.11
+    * Updates for Arm® Corstone™-310 platform.
+    * Formal support for CMake presets.
+    * Support for the new Arm Compiler 6.19
+    * Published CMSIS-Pack under `resources` and related updates.
+    * Bug fix for building with NPU disabled.
+
 Changes in 22.08
     * Support for 22.08 Ethos-U component and dependencies (core-driver, core-platform, Vela 3.5.0, CMSIS, TensorFlow Lite Micro).
     * Formal support for Arm® Corstone-310 Arm Virtual Hardware and FPGA implementations.
diff --git a/scripts/cmake/cmsis-pack-gen/use-case-api.yml b/scripts/cmake/cmsis-pack-gen/use-case-api.yml
index 3d81433..549670e 100644
--- a/scripts/cmake/cmsis-pack-gen/use-case-api.yml
+++ b/scripts/cmake/cmsis-pack-gen/use-case-api.yml
@@ -32,7 +32,9 @@
 # The PDSC files are the ones extracted from the downloaded packs (and is optional).
 # packgen and packchk must be installed. See https://github.com/Open-CMSIS-Pack/devtools
 # on how to build these tools.
-
+#
+# yaml-language-server: $schema=https://github.com/Open-CMSIS-Pack/devtools/blob/tools/toolbox/1.0.0/tools/packgen/schema/manifest.schema.json
+#
 build:
   - name: "build-dir"
     options: "cmake -DCMSIS_PACK_GEN_FLOW=ON"
@@ -50,9 +52,13 @@
         - attributes: {vendor: "ARM", name: "CMSIS", version: "5.9.0"}
 
     releases:
+      - version: "22.11.0"
+        date: "2022-11-09"
+        description: "22.11.0 release package"
       - version: "22.8.0-Beta"
         date: "2022-09-29"
         description: "Beta release package"
+        url: "https://git.mlplatform.org/ml/ethos-u/ml-embedded-evaluation-kit.git/plain/resources/cmsis-packs/ARM.ml-embedded-eval-kit-uc-api.22.8.0-Beta.pack?h=refs/heads/main"
 
     taxonomy:
       - attributes: {Cclass: "ML Eval Kit", doc: "https://review.mlplatform.org/plugins/gitiles/ml/ethos-u/ml-embedded-evaluation-kit/+/refs/heads/main/Readme.md"}