aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKhasim Syed Mohammed <khasim.mohammed@arm.com>2021-04-29 22:07:49 +0530
committerKhasim Syed Mohammed <khasim.mohammed@arm.com>2021-04-29 22:07:49 +0530
commita4c9f5147b357f1ef435ea5966e7b6be6aa9b792 (patch)
tree3acda1ed388de1e4191019e8c2e1c4dc27d40a78
parent0234f9e6299f9266944bbc5878269f860a6592e8 (diff)
n1sdp: update documentation for 2021.04.26 platform releaseN1SDP-2021.04.26
The documents are updated corresponding to the software changes made for the 2021.04.26 release. Signed-off-by: Khasim Syed Mohammed <khasim.mohammed@arm.com> Change-Id: I8efe82f258292757690d71d674e222e809fa1e9b
-rwxr-xr-xErrata-1315703.rst36
-rwxr-xr-xPrepare_distro_image_for_N1SDP.rst48
-rwxr-xr-xchange-log.rst35
-rw-r--r--cmn-performance-analysis.rst105
-rwxr-xr-xcoresight.rst7
-rwxr-xr-xmultichip.rst6
-rwxr-xr-xpcie-sr-iov.rst8
-rw-r--r--pcie-support.rst10
-rwxr-xr-xrelease-notes.rst47
-rw-r--r--user-guide.rst68
10 files changed, 239 insertions, 131 deletions
diff --git a/Errata-1315703.rst b/Errata-1315703.rst
index 6b964c4..0027c1c 100755
--- a/Errata-1315703.rst
+++ b/Errata-1315703.rst
@@ -1,29 +1,33 @@
Errata-1315703 WA disabled in Neoverse N1 SDP
=============================================
-The patch https://git.linaro.org/landing-teams/working/arm/n1sdp-pcie-quirk.git/tree/arm-tf/0001-n1sdp-arm-tf-disable-workaround-for-N1-Erratum-13157.patch
-is applied by default to the N1SDP stack to disable the workaround for Erratum 1315703 so that the N1 CPU
-performance in N1SDP better reflects that of released versions of the N1 for software that does not require mitigation for Spectre Variant 4.
+In Trusted Firmware-A, all erratum are disabled by default including the
+1315703. If we want any erratum to be enabled, then we have to explicitly
+enable them in the platform Makefile.
-N1DP uses N1 version r1p0, which is affected by Erratum 1315703, which
-is fixed in N1 r3p1. The workaround for r1p0 disables the CPU performance
-feature of bypassing of stores by younger loads. This can significantly
-affect performance. The Erratum is classified "Cat A (Rare)" and requires
+The N1SDP stack disables the workaround for Erratum 1315703 by default,
+so that the N1 CPU performance in N1SDP better reflects that of released
+versions of the N1 for software that does not require mitigation for
+Spectre Variant 4.
+
+N1SDP uses N1 version r1p0, which is affected by Erratum 1315703, which
+is fixed in N1 r3p1. The workaround for r1p0 disables the CPU performance
+feature of bypassing of stores by younger loads. This can significantly
+affect performance. The Erratum is classified "Cat A (Rare)" and requires
a specific sequence of events to occur.
Disabling this CPU performance feature is also the mitigation for Spectre
-Variant 4 (CVE-2018-3639). On CPUs that provide the PSTATE.SBSS feature,
+Variant 4 (CVE-2018-3639). On CPUs that provide the PSTATE.SBSS feature,
the OS selectively applies the mitigation only to programs that require it,
-leaving the performance of other programs unaffected. However, N1 r1p0
+leaving the performance of other programs unaffected. However, N1 r1p0
does not have the PSTATE.SBSS feature (which is introduced in N1 r3p1), and
-Arm-TF does not provide the interface to to dynamically disable the CPU
-performance feature. Therefore, applying the workaround penalizes ALL
-software running on N1 SDP, including those that do not require mitigation.
+TF-A does not provide the interface to dynamically disable the CPU
+performance feature. Therefore, applying the workaround penalizes ALL
+software running on N1SDP, including those that do not require the mitigation.
-This patch is meant for performance evaluation purposes ONLY and should not
-be used for software that requires a seccomp computing environment.
+Disabling Errata-1315703 is meant for performance evaluation purposes ONLY
+and should not be used for software that requires a seccomp computing environment.
--------------
-*Copyright (c) 2019-2020, Arm Limited. All rights reserved.*
-
+*Copyright (c) 2019-2021, Arm Limited. All rights reserved.*
diff --git a/Prepare_distro_image_for_N1SDP.rst b/Prepare_distro_image_for_N1SDP.rst
index f1bb3f6..41e32ba 100755
--- a/Prepare_distro_image_for_N1SDP.rst
+++ b/Prepare_distro_image_for_N1SDP.rst
@@ -19,7 +19,7 @@ All the steps mentioned below are implemented in build-scripts provided with N1S
Building Linux Images
---------------------
-Get Linux version 4.18 or above (5.4.0 used in this example).
+Get Linux version 5.10.12 or above (5.10.12 used in this example).
Two Linux images are required
@@ -27,10 +27,15 @@ Two Linux images are required
- Linux debian package: Installed by Ubuntu in first boot and used after second boot onwards.
**Building monolithic linux image**
- Apply n1sdp-pcie-quirk patches available inside <workspace/n1sdp-pcie-quirk/linux/>.
- Also available here https://git.linaro.org/landing-teams/working/arm/n1sdp-pcie-quirk.git/tree/linux/
- ::
+The Linux Kernel with n1sdp-pcie-quirk patches can be git cloned from `linux repository`_.
+To build the linux kernel image follow the commands given below:
+
+ ::
+
+ $ git clone https://git.linaro.org/landing-teams/working/arm/kernel-release.git
+ $ cd kernel-release
+ $ git checkout --track -b n1sdp-branch remotes/linaro/n1sdp
$ export ARCH=arm64
$ export CROSS_COMPILE=/usr/bin/aarch64-linux-gnu-
$ make defconfig
@@ -40,16 +45,21 @@ Generated Image name : Image
**Building linux deb package**
-Along with the N1SDP Quirk patches get the following 5 patches from https://kernel.ubuntu.com/~kernel-ppa/mainline provided by Ubuntu and required to build linux debian package.Patches version should match with linux kernel version e.g. for 5.4 use patches under https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.4/
+Pull and merge the debian patches from ubuntu repository.
+
+ ::
+
+ $ export ARCH=arm64
+ $ git remote add ubuntu-remote "git://git.launchpad.net/~ubuntu-kernel-test/ubuntu/+source/linux/+git/mainline-crack"
+ $ git fetch ubuntu-remote 4f7c72c7abbbb51e20b9909359dcfd672ec30f42
+ $ git checkout FETCH_HEAD -b ubuntu-branch
+ $ git checkout n1sdp-branch
+ $ git merge --no-ff --no-edit ubuntu-branch
-Ubuntu Patches:
- - 0001-base-packaging.patch
- - 0002-UBUNTU-SAUCE-add-vmlinux.strip-to-BOOT_TARGETS1-on-p.patch
- - 0003-UBUNTU-SAUCE-tools-hv-lsvmbus-add-manual-page.patch
- - 0004-debian-changelog.patch
- - 0005-configs-based-on-Ubuntu-5.4.0-7.8.patch
+NOTE: The UBUNTU COMMIT ID is found from the `ubuntu page`_ which is required to pull the linux debian patches. The commit id version should match with linux kernel version e.g. for 5.10.12 the commit id as mentioned on the page is "4f7c72c7abbbb51e20b9909359dcfd672ec30f42".
Build Commands:
+
::
$ export ARCH=arm64
@@ -59,13 +69,12 @@ Build Commands:
$ sed -ie 's/CONFIG_DEBUG_INFO=y/# CONFIG_DEBUG_INFO is not set/' .config
$ make bindeb-pkg
-Generated Image name: linux-image-5.4.0+_5.4.0+-1_arm64.deb rename it to "linux-image-n1sdp.deb"
+Generated Image name: linux-image-5.10.12+_5.10.12+-1_arm64.deb rename it to "linux-image-n1sdp.deb".
Creating Ubuntu Root FS
-----------------------------
-Download the Ubuntu minimal root file system image from
-"http://cdimage.ubuntu.com/ubuntu-base/bionic/daily/current/bionic-base-arm64.tar.gz".
+Download the Ubuntu minimal `root file system image`_.
This image will be extracted and modified to boot a fully fledged Ubuntu 18.04
distro.
@@ -85,6 +94,7 @@ The provided installation script preforms the following tasks:
Content of the provided installation script (assumes that network is up):
+
::
#!/bin/sh
@@ -162,6 +172,7 @@ Content of the provided installation script (assumes that network is up):
sync
Content of /etc/network/interfaces
+
::
#!/bin/sh
@@ -177,6 +188,7 @@ Creating Ubuntu disk Image
FAT partition of 20MB and second an EXT4 partiton of 4GB.
- FAT partition labeled as ESP which contains grub configuration for **first** boot.
+
::
set debug="loader,mm"
@@ -196,6 +208,7 @@ Creating Ubuntu disk Image
Mounting of disk Image on memory stick
--------------------------------------
+
::
$ lsblk
@@ -221,7 +234,10 @@ Booting Sequence
- Second boot onwards a minimal Ubuntu-18.04 will be booted which already has a grub entry created during first boot.
- It will also use linux debian image and initramfs installed during first boot.
---------------
+.. _linux repository: https://git.linaro.org/landing-teams/working/arm/kernel-release.git/log/?h=n1sdp
+.. _ubuntu page: https://kernel.ubuntu.com/~kernel-ppa/mainline/
+.. _root file system image: http://cdimage.ubuntu.com/ubuntu-base/bionic/daily/current/bionic-base-arm64.tar.gz
-*Copyright (c) 2020, Arm Limited. All rights reserved.*
+--------------
+*Copyright (c) 2020-2021, Arm Limited. All rights reserved.*
diff --git a/change-log.rst b/change-log.rst
index 9363b9c..18e7a13 100755
--- a/change-log.rst
+++ b/change-log.rst
@@ -9,6 +9,34 @@ Change Log
This document contains a summary of the incremental features, changes, fixes and known
issues in each release of N1SDP stack. It is listed in the order of latest to oldest
+Tagged Version - N1SDP-2021.04.26
+----------------------------------------
+New Features
+^^^^^^^^^^^^
+- Linux Kernel upgraded to version 5.10.
+- Updated System Control Processor (SCP) firmware to commit id (6c15afb1b37d0728482c598b063cd69bfc733e93) from master branch.
+- Updated trusted-firmware-a (TF-A) to commit id (332649da478147b3d03132deb3783dd62fd475d7) from master branch.
+- EDK2 upgraded to tagged version edk2-stable202102.
+- Updated Grub for Poky Distribution to release tag grub-2.06-rc1 to incorporate fixes for the vulnerabilities.
+ For details please refer to `GRUB2 vulnerabilities`_.
+- Supported enabling L3 cache from BOOTGPR1 register. For details please refer to `user guide`_.
+- Enabled non-secure AXI access to CoreSight devices on the secondary board of C2C setup.
+
+Known Issues and Limitations
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+- Patches providing proof of concept support for Xilinx CCIX accelerator endpoints are no longer included in this release.
+- PCIe root port is limited to GEN3 speed due to the on-board PCIe switch itself only supporting
+ upto GEN3 speed.
+- Page Request Interface (PRI) feature is not available in both SMMUs interfacing with the
+ PCIe root ports.
+- Currently only Micron 8GB single Rank DIMMs (part number: MTA9ASF1G72PZ-2G6D1) and
+ 16GB dual Rank DIMMs (part number:MTA18ASF2G72PDZ-2G6E1) are supported.
+- Stability issues have been observed on long stress tests of the system.
+- On-board HDMI connection is not supported for graphics output. A PCIe graphics card can be used
+ for graphics support.
+- If either of the two boards needs to boot-up in a single chip mode with a C2C setup,
+ then the other board should be powered off.
+
Tagged Version - N1SDP-2020.12.15
----------------------------------------
New Features
@@ -187,3 +215,10 @@ Known Issues and Limitation
- No support for PCIe SRIOV.
- CCIX RC not supported.
- Only Micron 8GB single Rank DIMM (part number: 9ASF1G72PZ-2G6D1) is supported.
+
+.. _user guide: user-guide.rst
+.. _GRUB2 vulnerabilities: https://lists.gnu.org/archive/html/grub-devel/2021-03/msg00007.html
+
+----------
+
+*Copyright (c) 2020-2021, Arm Limited. All rights reserved.*
diff --git a/cmn-performance-analysis.rst b/cmn-performance-analysis.rst
index 96c4740..568188f 100644
--- a/cmn-performance-analysis.rst
+++ b/cmn-performance-analysis.rst
@@ -132,14 +132,14 @@ counters in the XP.
-e arm_cmn/rnid_rxdat_flits,nodeid=8/ \
-e arm_cmn/rnid_rxdat_flits,nodeid=12/ \
-I 1000
- # time counts unit events
- 1.000089438 0 arm_cmn/rnid_txdat_flits,nodeid=8/ (50.00%)
- 1.000089438 0 arm_cmn/rnid_txdat_flits,nodeid=12/ (50.00%)
- 1.000089438 0 arm_cmn/rnid_rxdat_flits,nodeid=8/ (50.00%)
- 1.000089438 0 arm_cmn/rnid_rxdat_flits,nodeid=12/ (50.00%)
- 2.000231897 79 arm_cmn/rnid_txdat_flits,nodeid=8/ (50.01%)
- 2.000231897 0 arm_cmn/rnid_txdat_flits,nodeid=12/ (50.01%)
- 2.000231897 0 arm_cmn/rnid_rxdat_flits,nodeid=8/ (49.99%)
+ # time counts unit events
+ 1.000089438 0 arm_cmn/rnid_txdat_flits,nodeid=8/ (50.00%)
+ 1.000089438 0 arm_cmn/rnid_txdat_flits,nodeid=12/ (50.00%)
+ 1.000089438 0 arm_cmn/rnid_rxdat_flits,nodeid=8/ (50.00%)
+ 1.000089438 0 arm_cmn/rnid_rxdat_flits,nodeid=12/ (50.00%)
+ 2.000231897 79 arm_cmn/rnid_txdat_flits,nodeid=8/ (50.01%)
+ 2.000231897 0 arm_cmn/rnid_txdat_flits,nodeid=12/ (50.01%)
+ 2.000231897 0 arm_cmn/rnid_rxdat_flits,nodeid=8/ (49.99%)
PMU Events
**********
@@ -176,27 +176,29 @@ specified for each event using a nodeid= parameter.
Example:
::
- $ perf stat -a -I 1000 -e arm_cmn/hnf_mc_reqs,nodeid=0x24/
+ $ perf stat -a -I 1000 -e arm_cmn/hnf_mc_reqs,nodeid=0x24/
-
-Multiple nodes can be specified for an event using bash brace expansion.
-Note the comma after the -e.
+Multiple nodes can be specified for an event as shown below :
::
$ perf stat -a -I 1000 \
- -e,arm_cmn/hnf_mc_reqs,nodeid={0x24,0x28,0x44,0x48}/
-
+ -e arm_cmn/hnf_mc_reqs,nodeid=0x24/ \
+ -e arm_cmn/hnf_mc_reqs,nodeid=0x28/ \
+ -e arm_cmn/hnf_mc_reqs,nodeid=0x44/ \
+ -e arm_cmn/hnf_mc_reqs,nodeid=0x48/
-Separate events on the same nodes with brace expansion should be specified
-using separate -e.
+Separate events on the same nodes can be specified as shown below :
::
$ perf stat -a -I 1000 \
- -e,arm_cmn/hnf_mc_reqs,nodeid={0x24,0x28,0x44,0x48}/ \
- -e,arm_cmn/hnf_mc_retries,nodeid={0x24,0x28,0x44,0x48}/
-
-Note this form requires the trailing '/' at the end of the event name.
-
+ -e arm_cmn/hnf_mc_reqs,nodeid=0x24/ \
+ -e arm_cmn/hnf_mc_reqs,nodeid=0x28/ \
+ -e arm_cmn/hnf_mc_reqs,nodeid=0x44/ \
+ -e arm_cmn/hnf_mc_reqs,nodeid=0x48/ \
+ -e arm_cmn/hnf_mc_retries,nodeid=0x24/ \
+ -e arm_cmn/hnf_mc_retries,nodeid=0x28/ \
+ -e arm_cmn/hnf_mc_retries,nodeid=0x44/ \
+ -e arm_cmn/hnf_mc_retries,nodeid=0x48/
Driver verification
-------------------
@@ -244,7 +246,11 @@ Measure memory bandwidth using hnf_mc_reqs; assumes bandwidth comes from SLC
misses.
::
- $ perf stat -e,arm_cmn/hnf_mc_reqs,nodeid={0x24,0x28,0x44,0x48}/ -I 1000 -a
+ $ perf stat -a -I 1000 \
+ -e arm_cmn/hnf_mc_reqs,nodeid=0x24/ \
+ -e arm_cmn/hnf_mc_reqs,nodeid=0x28/ \
+ -e arm_cmn/hnf_mc_reqs,nodeid=0x44/ \
+ -e arm_cmn/hnf_mc_reqs,nodeid=0x48/
2.000394365 121,713,206 arm_cmn/hnf_mc_reqs,nodeid=0x24/
2.000394365 121,715,680 arm_cmn/hnf_mc_reqs,nodeid=0x28/
2.000394365 121,712,781 arm_cmn/hnf_mc_reqs,nodeid=0x44/
@@ -266,7 +272,6 @@ Subsitute with data from perf output:
(121713206 + 121715680 + 121712781 + 121715432) * 64 = 29715 MB/sec
-
PCI-E RX/TX bandwidth
#####################
The RN-I/RN-D events are defined from the perspective of the bridge to the
@@ -313,20 +318,26 @@ Measure with ``perf`` in an other terminal.
Measure rdata/wdata beats. Each beat is 32 bytes.
::
- $ perf stat -e,arm_cmn/rnid_s0_{r,w}data_beats,nodeid=0xc/ -I 1000 -a
- 3.000383383 248,145 arm_cmn/rnid_s0_rdata_beats,nodeid=0xc/
- 3.000383383 84,728,162 arm_cmn/rnid_s0_wdata_beats,nodeid=0xc/
- 4.000522271 248,199 arm_cmn/rnid_s0_rdata_beats,nodeid=0xc/
- 4.000522271 84,743,908 arm_cmn/rnid_s0_wdata_beats,nodeid=0xc/
- 5.000680779 248,209 arm_cmn/rnid_s0_rdata_beats,nodeid=0xc/
- 5.000680779 84,746,976 arm_cmn/rnid_s0_wdata_beats,nodeid=0xc/
- 6.000835927 247,899 arm_cmn/rnid_s0_rdata_beats,nodeid=0xc/
- 6.000835927 84,417,098 arm_cmn/rnid_s0_wdata_beats,nodeid=0xc/
+ $ perf stat -a -I 1000 -e arm_cmn/rnid_s0_rdata_beats,nodeid=0xc/
+ # time counts unit events
+ 1.001019030 0 arm_cmn/rnid_s0_rdata_beats,nodeid=0xc/ (49.92%)
+ 2.001297917 0 arm_cmn/rnid_s0_rdata_beats,nodeid=0xc/ (49.61%)
+ 3.002325835 0 arm_cmn/rnid_s0_rdata_beats,nodeid=0xc/ (50.35%)
+ 4.003352327 0 arm_cmn/rnid_s0_rdata_beats,nodeid=0xc/ (50.15%)
+ 5.004378592 0 arm_cmn/rnid_s0_rdata_beats,nodeid=0xc/ (49.65%)
+ 6.005297570 0 arm_cmn/rnid_s0_rdata_beats,nodeid=0xc/ (50.04%)
+ 7.006323364 0 arm_cmn/rnid_s0_rdata_beats,nodeid=0xc/ (50.35%)
+ 8.007349052 0 arm_cmn/rnid_s0_rdata_beats,nodeid=0xc/ (49.75%)
+ 9.008374834 0 arm_cmn/rnid_s0_rdata_beats,nodeid=0xc/ (49.74%)
+ 10.009297068 0 arm_cmn/rnid_s0_rdata_beats,nodeid=0xc/ (50.35%)
+ 11.010322898 0 arm_cmn/rnid_s0_rdata_beats,nodeid=0xc/ (50.05%)
+ 12.011349043 0 arm_cmn/rnid_s0_rdata_beats,nodeid=0xc/ (49.65%)
+
Calculate read bandwidth from perf measurement:
::
- 84.74e6 wdata beats * 32 bytes per beat = 2711 MB/sec
+ 84.74e6 rdata beats * 32 bytes per beat = 2711 MB/sec
Measure RND (PCI-E) bandwidth from Ethernet NIC
***********************************************
@@ -344,15 +355,23 @@ Measure RND (PCI-E) bandwidth from Ethernet NIC
...and ``perf`` in an other at the same time.
::
- $ perf stat -e,arm_cmn/rnid_s0_{r,w}data_beats,nodeid=0xc/ -I 1000 -a
- 12.001904404 308,803 arm_cmn/rnid_s0_rdata_beats,nodeid=0xc/
- 12.001904404 4,024,328 arm_cmn/rnid_s0_wdata_beats,nodeid=0xc/
- 13.002047284 308,994 arm_cmn/rnid_s0_rdata_beats,nodeid=0xc/
- 13.002047284 4,024,287 arm_cmn/rnid_s0_wdata_beats,nodeid=0xc/
- 14.002233364 309,035 arm_cmn/rnid_s0_rdata_beats,nodeid=0xc/
- 14.002233364 4,024,470 arm_cmn/rnid_s0_wdata_beats,nodeid=0xc/
- 15.002390125 309,162 arm_cmn/rnid_s0_rdata_beats,nodeid=0xc/
- 15.002390125 4,024,376 arm_cmn/rnid_s0_wdata_beats,nodeid=0xc/
+ $ perf stat -e arm_cmn/rnid_s0_wdata_beats,nodeid=0xc/ -I 1000
+
+ # time counts unit events
+ 1.001024520 0 arm_cmn/rnid_s0_wdata_beats,nodeid=0xc/
+ 2.002071830 9 arm_cmn/rnid_s0_wdata_beats,nodeid=0xc/
+ 3.003109931 0 arm_cmn/rnid_s0_wdata_beats,nodeid=0xc/
+ 4.004134740 9 arm_cmn/rnid_s0_wdata_beats,nodeid=0xc/
+ 5.005170700 0 arm_cmn/rnid_s0_wdata_beats,nodeid=0xc/
+ 6.006232432 0 arm_cmn/rnid_s0_wdata_beats,nodeid=0xc/
+ 7.007267874 9 arm_cmn/rnid_s0_wdata_beats,nodeid=0xc/
+ 8.008294424 0 arm_cmn/rnid_s0_wdata_beats,nodeid=0xc/
+ 9.009329587 9 arm_cmn/rnid_s0_wdata_beats,nodeid=0xc/
+ 10.010391542 0 arm_cmn/rnid_s0_wdata_beats,nodeid=0xc/
+ 11.011426046 9 arm_cmn/rnid_s0_wdata_beats,nodeid=0xc/
+ 12.012453000 0 arm_cmn/rnid_s0_wdata_beats,nodeid=0xc/
+ 13.013488283 9 arm_cmn/rnid_s0_wdata_beats,nodeid=0xc/
+ 14.014549938 0 arm_cmn/rnid_s0_wdata_beats,nodeid=0xc/
Calculate bandwidth from perf measurement:
::
@@ -360,4 +379,4 @@ Calculate bandwidth from perf measurement:
4.024e6 wdata beats/second * 32 bytes/beat * 8 bits/byte = 1030e6 bits/second
-*Copyright (c) 2019-2020, Arm Limited. All rights reserved.*
+*Copyright (c) 2019-2021, Arm Limited. All rights reserved.*
diff --git a/coresight.rst b/coresight.rst
index 8744c3b..edb777c 100755
--- a/coresight.rst
+++ b/coresight.rst
@@ -102,7 +102,7 @@ Here's an example showcasing trace capture and decode of a simple application:
*aarch64-linux-gnu-gcc -static -o test main.c*
-.. code-block::
+.. code-block:: language
#include <stdio.h>
@@ -117,7 +117,7 @@ Here's an example showcasing trace capture and decode of a simple application:
*aarch64-linux-gnu-objdump test.out*
-.. code-block::
+.. code-block:: language
0000000000400580 <main>:
400580: a9bf7bfd stp x29, x30, [sp,#-16]!
@@ -155,6 +155,5 @@ References
--------------
-
-*Copyright (c) 2019-2020, Arm Limited. All rights reserved.*
+*Copyright (c) 2019-2021, Arm Limited. All rights reserved.*
diff --git a/multichip.rst b/multichip.rst
index 369fd4c..a428114 100755
--- a/multichip.rst
+++ b/multichip.rst
@@ -110,8 +110,8 @@ References
- http://infocenter.arm.com/help/topic/com.arm.doc.101489_0000_01_en/arm_neoverse_n1_system_development_platform_technical_reference_manual_101489_0000_01_en.pdf
- https://www.ccixconsortium.com/ccix-library/
-----------
+.. _user-guide: user-guide.rst
-*Copyright (c) 2020, Arm Limited. All rights reserved.*
+----------
-.. _user-guide: user-guide.rst
+*Copyright (c) 2020-2021, Arm Limited. All rights reserved.*
diff --git a/pcie-sr-iov.rst b/pcie-sr-iov.rst
index ceeb48f..a27d361 100755
--- a/pcie-sr-iov.rst
+++ b/pcie-sr-iov.rst
@@ -45,9 +45,9 @@ References
----------
- http://infocenter.arm.com/help/topic/com.arm.doc.101489_0000_01_en/arm_neoverse_n1_system_development_platform_technical_reference_manual_101489_0000_01_en.pdf
-----------
-
-*Copyright (c) 2020, Arm Limited. All rights reserved.*
-
.. _user-guide: user-guide.rst
.. _pcie-support: pcie-support.rst
+
+----------
+
+*Copyright (c) 2020-2021, Arm Limited. All rights reserved.*
diff --git a/pcie-support.rst b/pcie-support.rst
index bffa7e5..36110c4 100644
--- a/pcie-support.rst
+++ b/pcie-support.rst
@@ -13,11 +13,8 @@ The supplied Neoverse software stack includes support for PCIe. However there ar
two issues (detailed below) with the PCIe root port hardware IP present on
Neoverse N1 SDP. These impact generic code in EDK II UEFI and Linux.
-Arm is maintaining patches and implementing workarounds in the following Linaro
-git repository: http://git.linaro.org/landing-teams/working/arm/n1sdp-pcie-quirk.git/
-The patches will be regularly rebased so that they apply cleanly to the relevant
-components (SCP-firmware, mainline Linux, and upstream EDK II UEFI).
-The git repository also provides a shell script, patch_apply.sh.
+Arm is implementing workarounds and maintaining these workaround patches to Linux Kernel
+in the `Linaro git repository`_. The patches will be rebased when the Linux kernel is migrated.
The patches are applied automatically as part of the Arm reference platform software
workspace sync process, providing a software stack with full PCIe support. However, note that
@@ -63,8 +60,9 @@ drivers may perform 8-bit and 16-bit read/write to this space which will end up
To avoid this, software workarounds has been added to convert the 8-bit/16-bit access to 32-bit access
using read-modify-write method.
+.. _Linaro git repository: https://git.linaro.org/landing-teams/working/arm/kernel-release.git/log/?h=n1sdp
--------------
-*Copyright (c) 2019-2020, Arm Limited. All rights reserved.*
+*Copyright (c) 2019-2021, Arm Limited. All rights reserved.*
diff --git a/release-notes.rst b/release-notes.rst
index 8ca8485..05f1448 100755
--- a/release-notes.rst
+++ b/release-notes.rst
@@ -9,12 +9,16 @@ Release Notes
Features and Fixes
------------------
-The following is a summary of the key software features of the tagged N1SDP-2020.12.15 release.
+The following is a summary of the key software features of the tagged N1SDP-2021.04.26 release.
-- Yocto based BSP build to generate Poky distribution image and board firmware binary package.
-- Restructuring the ubuntu build and packaging scripts to generate the custom ubuntu image.
-- Support for both single and multi-chip configurations.
-- Migrate to scp-v2.7 to fix the system shutdown on reaching temperature threshold.
+- Linux Kernel upgraded to version 5.10.
+- Updated System Control Processor (SCP) firmware to commit id (6c15afb1b37d0728482c598b063cd69bfc733e93) from master branch.
+- Updated trusted-firmware-a (TF-A) to commit id (332649da478147b3d03132deb3783dd62fd475d7) from master branch.
+- EDK2 upgraded to tagged version edk2-stable202102.
+- Updated Grub for Poky Distribution to release tag grub-2.06-rc1 to incorporate fixes for the vulnerabilities.
+ For details please refer to `GRUB2 vulnerabilities`_.
+- Supported enabling L3 cache from BOOTGPR1 register. For details please refer to `user guide`_.
+- Enabled non-secure AXI access to CoreSight devices on the secondary board of C2C setup.
This release is made to restructure the N1SDP profile majorly considering the single and multi-chip profiles, for CCIX accelerator profile please refer to `release link`_.
@@ -39,18 +43,20 @@ Precautions
- Note: The case front panel USB 3.0 ports and & audio jacks are NOT connected/usable.
They will be removed on later versions.
-Known Issues or limitations
----------------------------
-- If either of the two boards needs to boot-up in a single chip mode with a C2C setup,
- then the other board should be powered off.
-- To boot a standard distribution on N1SDP platform the kernel must be patched
- with the PCIe quirks. See the article `PCIE`_
-- PCIe root port is limited to GEN3 speed due to the on-board PCIe switch supporting maximum GEN3 speed.
-- Page Request Interface (PRI) feature is not available in both SMMUs interfaced with PCIe root ports.
-- Currently only Micron 8GB single Rank DIMM (part number: MTA9ASF1G72PZ-2G6D1) and
+Known Issues and Limitations
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+- Patches providing proof of concept support for Xilinx CCIX accelerator endpoints are no longer included in this release.
+- PCIe root port is limited to GEN3 speed due to the on-board PCIe switch itself only supporting
+ upto GEN3 speed.
+- Page Request Interface (PRI) feature is not available in both SMMUs interfacing with the
+ PCIe root ports.
+- Currently only Micron 8GB single Rank DIMMs (part number: MTA9ASF1G72PZ-2G6D1) and
16GB dual Rank DIMMs (part number:MTA18ASF2G72PDZ-2G6E1) are supported.
- Stability issues have been observed on long stress tests of the system.
-- On-board HDMI connection is not supported for graphics output. PCIe graphics card can be used for graphics support.
+- On-board HDMI connection is not supported for graphics output. A PCIe graphics card can be used
+ for graphics support.
+- If either of the two boards needs to boot-up in a single chip mode with a C2C setup,
+ then the other board should be powered off.
Disclaimer
------------
@@ -60,11 +66,12 @@ Support
-------
For support email: support-subsystem-enterprise@arm.com
---------------
-
-*Copyright (c) 2019-2020, Arm Limited. All rights reserved.*
-
-
.. _PCIE: pcie-support.rsti
.. _release link: https://git.linaro.org/landing-teams/working/arm/arm-reference-platforms.git/tree/?h=N1SDP-2020.07.27
.. _potential damage: https://community.arm.com/developer/tools-software/oss-platforms/w/docs/604/notice-potential-damage-to-n1sdp-boards-if-using-latest-firmware-release
+.. _user guide: user-guide.rst
+.. _GRUB2 vulnerabilities: https://lists.gnu.org/archive/html/grub-devel/2021-03/msg00007.html
+
+--------------
+
+*Copyright (c) 2019-2021, Arm Limited. All rights reserved.*
diff --git a/user-guide.rst b/user-guide.rst
index 57cba17..493ea7b 100644
--- a/user-guide.rst
+++ b/user-guide.rst
@@ -45,16 +45,30 @@ To ensure that all the required packages are installed, run:
::
sudo apt-get update
- sudo apt-get install chrpath gawk texinfo libssl-dev diffstat wget git-core unzip gcc-multilib \
+ sudo apt-get install chrpath gawk texinfo libssl-dev diffstat wget git unzip gcc-multilib \
build-essential socat cpio python python3 python3-pip python3-pexpect xz-utils debianutils \
iputils-ping python3-git python3-jinja2 libgl1-mesa-dev libsdl1.2-dev pylint3 xterm git-lfs \
- openssl curl libncurses-dev libz-dev python-pip
+ openssl curl libncurses5-dev zlib1g-dev python-pip fuseext2 autoconf autopoint
+
+Configure Git, run:
+
+::
+
+ git config --global user.email "you@example.com"
+ git config --global user.name "Your Name"
**Install repo tool**
Follow the instructions provided in the `repo README file`_ to install the ``repo tool``.
-NOTE: The repo tool which gets installed using apt-get command sometimes return errors, in such a case its recommended to install repo using the ``curl`` method.
+NOTE: The repo tool which gets installed using apt-get command sometimes return errors, in such a case it is recommended to install repo using the ``curl`` method:
+
+::
+
+ mkdir -p ~/.bin
+ PATH="${HOME}/.bin:${PATH}"
+ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/.bin/repo
+ chmod a+rx ~/.bin/repo
Syncing and building the source code
------------------------------------
@@ -72,7 +86,7 @@ First, create a new folder that will be your workspace and will henceforth be re
mkdir <n1sdp_workspace>
cd <n1sdp_workspace>
- export N1SDP_RELEASE=refs/tags/N1SDP-2020.12.15
+ export N1SDP_RELEASE=refs/tags/N1SDP-2021.04.26
NOTE: Sometimes new features and additional bug fixes will be made available in the git repositories
and will not yet have been tagged as part of a release. To pickup these latest changes you can drop
@@ -142,7 +156,7 @@ The Ubuntu Server distro image is built using the script provided in
::
cd <n1sdp_workspace>/ubuntu
- ./build-scripts/build-ubuntu.sh
+ ./build-scripts/build-ubuntu.sh <OPTIONS>
Options that can be passed to script are:
<path to build-ubuntu.sh> [OPTIONS]
@@ -177,13 +191,13 @@ with the modifications
MACHINE=n1sdp DISTRO=poky . ./conf/setup-environment
# create a workspace for a given recipe component
# recipe-component-name can be of:
- # trusted-firmware-a / scp-firmware / grub-efi / linux-linaro-arm
+ # trusted-firmware-a / scp-firmware / grub-efi / linux-yocto
devtool modify <recipe-component-name>
# This creates a new workspace for recipe-component-name and fetches source code
- # into "build-poky/workspace/sources/{trusted-firmware-a,scp-firmware,edk2-firmware,grub-efi,linux-linaro-arm}"
+ # into "build-poky/workspace/sources/{trusted-firmware-a,scp-firmware,edk2-firmware,grub-efi,linux-yocto}"
# edit the source code in the newly created workspace
# build images with changes on workspace
- # recipe-component-name can be of: scp-firmware / edk2-firmware / grub-efi / linux-linaro-arm
+ # recipe-component-name can be of: scp-firmware / edk2-firmware / grub-efi / linux-yocto
bitbake <recipe-component-name>
NOTE : edk2-firmware cannot be built using devtool, kindly refer to the bug report on `bugzilla`_ for more details.
@@ -233,10 +247,10 @@ Based on `UEFI edk2`_.
Linux
*****
-Based on `Linux 5.4 for N1SDP`_.
+Based on `Linux 5.10 for N1SDP`_.
+--------+-------------------------------------------------------------------------------------------------+
-| Recipe | <n1sdp_workspace>/bsp/layers/meta-arm/meta-arm-bsp/recipes-kernel/linux/linux-linaro-arm_5.4.bb |
+| Recipe | <n1sdp_workspace>/bsp/meta/recipes-kernel/linux/linux-yocto_5.10.bb |
+--------+-------------------------------------------------------------------------------------------------+
| Files | * <n1sdp_workspace>/bsp/build-poky/tmp-poky/deploy/images/n1sdp/Image |
+--------+-------------------------------------------------------------------------------------------------+
@@ -249,9 +263,9 @@ The layer is based on the `Poky`_ Linux distro, which is itself based on BusyBox
glibc.
+--------+---------------------------------------------------------------------------------------------------+
-| Recipe | <tc0_workspace>/bsp/layers/openembedded-core/meta/recipes-core/images/core-image-base.bb |
+| Recipe | <n1sdp_workspace>/bsp/layers/openembedded-core/meta/recipes-core/images/core-image-base.bb |
+--------+---------------------------------------------------------------------------------------------------+
-| Files | * <tc0_workspace>/bsp/build-poky/tmp-poky/deploy/images/n1sdp/core-image-base-n1sdp.wic |
+| Files | * <n1sdp_workspace>/bsp/build-poky/tmp-poky/deploy/images/n1sdp/core-image-base-n1sdp.wic |
+--------+---------------------------------------------------------------------------------------------------+
@@ -348,7 +362,7 @@ There are two methods for populating the microSD card:
$> sudo mount /dev/sdx1 /mnt
$> sudo rm -rf /mnt/*
$> sudo tar --no-same-owner -xzf n1sdp-board-firmware_primary.tar.gz -C /mnt/
- $> sudo umount /mnt```
+ $> sudo umount /mnt
NOTE: replace ``sdx1`` with the device and partition of the SD card.
@@ -364,7 +378,7 @@ If a PMIC binary mismatch is detected, a warning message is printed in the MCC c
the user to switch to appropriate PMIC image. On MCC recommendation *ONLY*, please update the
``MB/HBI0316A/io_v123f.txt`` file on the microSD using the below commands.
-Example command to switch to 300k_8c2.bin from the host PC::
+Example command to switch to 300k_8c2.bin from the host PC
::
@@ -464,6 +478,24 @@ Insert the bootable disk created earlier and connect the ethernet cable to a wor
connection. This is *REQUIRED* on first boot in order to successfully download and install necessary
Ubuntu packages. Installation will fail if an internet connection is not available.
+NOTE: It is also observed that the installation may fail if more than one storage device is
+present on N1SDP, the error log is as shown below:
+
+ ::
+
+ Booting `Install Ubuntu on N1SDP Platform'
+ error: disk `hd1,msdos2' not found.
+ error: you need to load the kernel first.
+
+ Press any key to continue...
+
+ Failed to boot both default and fallback entries.
+
+ Press any key to continue...
+
+Therefore, it is always recommended to have only one storage device on N1SDP on which
+you want to install the Ubuntu software.
+
Shutdown and reboot the board by issuing the following commands to the MCC console:
::
@@ -505,18 +537,16 @@ Boot the N1SDP board with Ubuntu filesystem and login as root.
apt-get install -y git build-essential bc bison flex libssl-dev
git clone -b n1sdp http://git.linaro.org/landing-teams/working/arm/kernel-release.git
- git clone http://git.linaro.org/landing-teams/working/arm/n1sdp-pcie-quirk.git
cd kernel-release/
- git am ../n1sdp-pcie-quirk/linux/\*.patch
mkdir out
- cp -v /boot/config-5.4.0+ out/.config
+ cp -v /boot/config-5.10.12+ out/.config
make O=out -j4
make O=out modules_install
make O=out install
update-grub
sync
-Reboot the board and when Grub menu appears, select the Advanced Boot Options -> 5.4.0 kernel for
+Reboot the board and when Grub menu appears, select the Advanced Boot Options -> 5.10.12 kernel for
booting.
.. _potential-damage: https://community.arm.com/developer/tools-software/oss-platforms/w/docs/604/notice-potential-damage-to-n1sdp-boards-if-using-latest-firmware-release
@@ -525,7 +555,7 @@ booting.
.. _Trusted Firmware-A: https://trustedfirmware-a.readthedocs.io/en/latest/
.. _SCP Firmware: https://github.com/ARM-software/SCP-firmware
.. _UEFI edk2: https://github.com/tianocore/edk2
-.. _Linux 5.4 for N1SDP: https://git.linaro.org/landing-teams/working/arm/kernel-release.git
+.. _Linux 5.10 for N1SDP: https://git.linaro.org/landing-teams/working/arm/kernel-release.git/log/?h=n1sdp
.. _Poky: https://www.yoctoproject.org/software-item/poky
.. _repo README file: https://gerrit.googlesource.com/git-repo/+/refs/heads/master/README.md
.. _bugzilla: https://bugzilla.yoctoproject.org/show_bug.cgi?id=14141