1*bec4ebc2SBrad Bishop# N1SDP Development Platform Support in meta-arm-bsp
2*bec4ebc2SBrad Bishop
3*bec4ebc2SBrad Bishop## Overview
4*bec4ebc2SBrad BishopThe N1SDP provides access to the Arm Neoverse N1 SoC. The N1SDP enables software development for key enterprise technology
5*bec4ebc2SBrad Bishopand general Arm software development. The N1SDP consists of the N1 board containing the N1 SoC.
6*bec4ebc2SBrad BishopThe N1 SoC contains two dual-core Arm Neoverse N1 processor clusters.
7*bec4ebc2SBrad Bishop
8*bec4ebc2SBrad BishopThe system demonstrates Arm technology in the context of Cache-Coherent Interconnect for Accelerators (CCIX) protocol by:
9*bec4ebc2SBrad Bishop
10*bec4ebc2SBrad Bishop- Running coherent traffic between the N1 SoC and an accelerator card.
11*bec4ebc2SBrad Bishop- Coherent communication between two N1 SoCs.
12*bec4ebc2SBrad Bishop- Enabling development of CCIX-enabled FPGA accelerators.
13*bec4ebc2SBrad Bishop
14*bec4ebc2SBrad BishopFurther information on N1SDP can be found at
15*bec4ebc2SBrad Bishophttps://community.arm.com/developer/tools-software/oss-platforms/w/docs/458/neoverse-n1-sdp
16*bec4ebc2SBrad Bishop
17*bec4ebc2SBrad Bishop## Configuration:
18*bec4ebc2SBrad BishopIn the local.conf file, MACHINE should be set as follow:
19*bec4ebc2SBrad BishopMACHINE ?= "n1sdp"
20*bec4ebc2SBrad Bishop
21*bec4ebc2SBrad Bishop## Building
22*bec4ebc2SBrad Bishop```bash$ bitbake core-image-minimal```
23*bec4ebc2SBrad Bishop
24*bec4ebc2SBrad Bishop## Running
25*bec4ebc2SBrad Bishop
26*bec4ebc2SBrad Bishop# Update Firmware on SD card:
27*bec4ebc2SBrad Bishop
28*bec4ebc2SBrad Bishop(*) To use n1sdp board in single chip mode, flash:
29*bec4ebc2SBrad Bishop    n1sdp-board-firmware_primary.tar.gz firmware.
30*bec4ebc2SBrad Bishop
31*bec4ebc2SBrad Bishop(*) To use n1sdp board in multi chip mode, flash:
32*bec4ebc2SBrad Bishop    n1sdp-board-firmware_primary.tar.gz firmware to primary board,
33*bec4ebc2SBrad Bishop    n1sdp-board-firmware_secondary.tar.gz firmware to secondary board.
34*bec4ebc2SBrad Bishop
35*bec4ebc2SBrad BishopThe SD card content is generated during the build here:
36*bec4ebc2SBrad Bishop  tmp/deploy/images/n1sdp/n1sdp-board-firmware_primary.tar.gz
37*bec4ebc2SBrad Bishop  tmp/deploy/images/n1sdp/n1sdp-board-firmware_secondary.tar.gz
38*bec4ebc2SBrad Bishop
39*bec4ebc2SBrad Bishop
40*bec4ebc2SBrad BishopIts content must be written on the N1SDP firmware SD card.
41*bec4ebc2SBrad BishopTo do this:
42*bec4ebc2SBrad Bishop- insert the sdcard of the N1SDP in an SD card reader and mount it:
43*bec4ebc2SBrad Bishop```bash$ sudo mount /dev/sdx1 /mnt```
44*bec4ebc2SBrad Bishop(replace sdx by the device of the SD card)
45*bec4ebc2SBrad Bishop
46*bec4ebc2SBrad Bishop- erase its content and put the new one:
47*bec4ebc2SBrad Bishop```bash$ sudo rm -rf /mnt/*```
48*bec4ebc2SBrad Bishop```bash$ sudo tar --no-same-owner -xzf tmp/deploy/images/n1sdp/n1sdp-board-firmware_primary.tar.gz -C /mnt/```
49*bec4ebc2SBrad Bishop```bash$ sudo umount /mnt```
50*bec4ebc2SBrad Bishop
51*bec4ebc2SBrad Bishop- reinsert the SD card in the N1SDP board
52*bec4ebc2SBrad Bishop
53*bec4ebc2SBrad BishopFirmware tarball contains iofpga configuration files, scp and uefi binaries.
54*bec4ebc2SBrad Bishop
55*bec4ebc2SBrad Bishop**NOTE**:
56*bec4ebc2SBrad BishopIf the N1SDP board was manufactured after November 2019 (Serial Number greater
57*bec4ebc2SBrad Bishopthan 36253xxx), a different PMIC firmware image must be used to prevent
58*bec4ebc2SBrad Bishoppotential damage to the board. More details can be found in [1].
59*bec4ebc2SBrad BishopThe `MB/HBI0316A/io_v123f.txt` file located in the microSD needs to be updated.
60*bec4ebc2SBrad BishopTo update it, set the PMIC image (300k_8c2.bin) to be used in the newer models
61*bec4ebc2SBrad Bishopby running the following commands on your host PC:
62*bec4ebc2SBrad Bishop
63*bec4ebc2SBrad Bishop    $ sudo umount /dev/sdx1
64*bec4ebc2SBrad Bishop    $ sudo mount /dev/sdx1 /mnt
65*bec4ebc2SBrad Bishop    $ sudo sed -i '/^MBPMIC: pms_0V85.bin/s/^/;/g' /mnt/MB/HBI0316A/io_v123f.txt
66*bec4ebc2SBrad Bishop    $ sudo sed -i '/^;MBPMIC: 300k_8c2.bin/s/^;//g' /mnt/MB/HBI0316A/io_v123f.txt
67*bec4ebc2SBrad Bishop    $ sudo umount /mnt
68*bec4ebc2SBrad Bishop
69*bec4ebc2SBrad Bishop# Prepare an USB hard drive:
70*bec4ebc2SBrad Bishop
71*bec4ebc2SBrad BishopGrub boot partition is placed on first partition of the *.wic image,
72*bec4ebc2SBrad BishopLinux root file system is placed on the second partition of the *.wic image:
73*bec4ebc2SBrad Bishop  tmp/deploy/images/n1sdp/core-image-minimal-n1sdp.wic
74*bec4ebc2SBrad Bishop
75*bec4ebc2SBrad BishopThis *.wic image should be copied to USB stick with simple dd call.
76*bec4ebc2SBrad Bishop
77*bec4ebc2SBrad Bishop
78*bec4ebc2SBrad Bishop[1]: https://community.arm.com/developer/tools-software/oss-platforms/w/docs/604/notice-potential-damage-to-n1sdp-boards-if-using-latest-firmware-release
79