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