Install SONiC on DPU modules

This section provides instructions for installing the SONiC software on DPU modules. There are eight modules in total, and each requires an individual SONiC software image installation.

Before you begin

Complete these prerequisites before installing the SONiC image on a DPU module:

  • You must have installed the SONiC software image on the NPU. For instructions, see see Install SONiC on NPU using ONIE.

  • You must obtain root privileges using the sudo su command.

admin@sonic:~$sudo su
  • Verify the platform using the show platform summary command.
root@sonic:~$ show platform summary
Platform: x86_64-8102_28fh_dpu_o-r0
HwSKU: Cisco-8102-28FH-DPU-O-T1
ASIC: cisco-8000
ASIC Count: 1
Serial Number: FLM28320338
Model Number: 8102-28FH-DPU-O
Hardware Revision: 0.30
  • Verify the status of the DPU modules:

Log in to the router's NPU console and run the show chassis modules status command to verify the status of the DPU modules.

Initially, the DPU modules will show an offline status.

root@sonic:~$ show chassis modules status

  Name       Description    Physical-Slot    Oper-Status    Admin-Status         Serial
------  ----------------  ---------------  -------------  --------------  -------------
  DPU0  AMD Pensando DSC              N/A         Offline              up  FLM281107LM-0
  DPU1  AMD Pensando DSC              N/A         Offline              up  FLM281107LM-1
  DPU2  AMD Pensando DSC              N/A         Offline              up  FLM281107MT-0
  DPU3  AMD Pensando DSC              N/A         Offline              up  FLM281107MT-1
  DPU4  AMD Pensando DSC              N/A         Offline              up  FLM281107MM-0
  DPU5  AMD Pensando DSC              N/A         Offline              up  FLM281107MM-1
  DPU6  AMD Pensando DSC              N/A         Offline              up  FLM281107MN-0
  DPU7  AMD Pensando DSC              N/A         Offline              up  FLM281107MN-1
  • Power on the DPU modules using the config chassis module startup DPU command. You need to power on all eight modules individually.
root@sonic:~$ config chassis module startup DPU0
Starting up chassis module DPU0

Repeat this step for all the DPU modules:
root@sonic:~$ config chassis module startup DPU1
Starting up chassis module DPU1

root@sonic:~$ config chassis module startup DPU2
Starting up chassis module DPU2

root@sonic:~$ config chassis module startup DPU3
Starting up chassis module DPU3

root@sonic:~$ config chassis module startup DPU4
Starting up chassis module DPU4

root@sonic:~$ config chassis module startup DPU5
Starting up chassis module DPU5

root@sonic:~$ config chassis module startup DPU6
Starting up chassis module DPU6

root@sonic:~$ config chassis module startup DPU7
Starting up chassis module DPU7

root@sonic:~$ config chassis module startup DPU8
Starting up chassis module DPU8
  • Verify the status of the DPU modules by using the show chassis modules status command. Ensure the status is Online for all the DPU modules. Note: It may take approximately 120 - 180 seconds for the DPU modules to become online.
root@sonic:~$ show chassis modules status
  Name       Description    Physical-Slot    Oper-Status    Admin-Status         Serial
------  ----------------  ---------------  -------------  --------------  -------------
  DPU0  AMD Pensando DSC              N/A         Online              up  FLM281107LM-0
  DPU1  AMD Pensando DSC              N/A         Online              up  FLM281107LM-1
  DPU2  AMD Pensando DSC              N/A         Online              up  FLM281107MT-0
  DPU3  AMD Pensando DSC              N/A         Online              up  FLM281107MT-1
  DPU4  AMD Pensando DSC              N/A         Online              up  FLM281107MM-0
  DPU5  AMD Pensando DSC              N/A         Online              up  FLM281107MM-1
  DPU6  AMD Pensando DSC              N/A         Online              up  FLM281107MN-0
  DPU7  AMD Pensando DSC              N/A         Online              up  FLM281107MN-1
  • Verify the reachability status of the DPU modules using the show chassis module midplane-status command. Ensure that the reachability is True for all DPU modules.
root@sonic:~$ show chassis module midplane-status 
  Name     IP-Address    Reachability
------  -------------  --------------
  DPU0  169.254.200.1            True
  DPU1  169.254.200.2            True
  DPU2  169.254.200.3            True
  DPU3  169.254.200.4            True
  DPU4  169.254.200.5            True
  DPU5  169.254.200.6            True
  DPU6  169.254.200.7            True
  DPU7  169.254.200.8            True
  • Verify the reachability of the DPUs by using the ping command from NPU.
root@sonic:~$ ping 169.254.200.1 -c 2
PING 169.254.200.1 (169.254.200.1) 56(84) bytes of data.
64 bytes from 169.254.200.1: icmp_seq=1 ttl=64 time=0.124 ms
64 bytes from 169.254.200.1: icmp_seq=2 ttl=64 time=0.124 ms

--- 169.254.200.1 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1021ms
rtt min/avg/max/mdev = 0.124/0.124/0.124/0.000 ms

Steps to install SONiC on DPU modules

Follow these steps to install software on the DPU modules:

  1. Download the SONiC software image sonic-cisco-8000.dpu.version.tar from the Cisco Software Download Center.

  2. Copy the downloaded SONiC software image to the Smart Switch. Use the router's default credentials when prompted.

root@sonic:scp admin@<ip-address>:/<image_path>/sonic-pensando-jan30-1.87.0-SS-13.1.bin /tmp
  1. Execute the show chassis module midplane-status command on the NPU to view the dpu-midplane IP address. Note down the DPU mid-plane IP address of all the eight DPU modules.
root@sonic:~$show chassis module midplane-status 
  Name     IP-Address    Reachability
------  -------------  --------------
  DPU0  169.254.200.1            True
  DPU1  169.254.200.2            True
  DPU2  169.254.200.3            True
  DPU3  169.254.200.4            True
  DPU4  169.254.200.5            True
  DPU5  169.254.200.6            True
  DPU6  169.254.200.7            True
  DPU7  169.254.200.8            True
  1. Before transferring the image, ensure there is sufficient disk space on the DPU. Repeat these steps on all eight DPUs.

    a. Log in to the DPU console using the ssh admin@<dpu-midplane-ip> command.

root@sonic:~$ssh admin@169.254.200.1 
Debian GNU/Linux 12 \n \l

admin@169.254.200.1's password: 
Linux sonic 6.1.0-22-2-arm64 #1 SMP Debian 6.1.94-1 (2024-06-21) aarch64
You are on
 ____   ___  _   _ _  ____
/ ___| / _ \| \ | (_)/ ___|
\___ \| | | |  \| | | |
 ___) | |_| | |\  | | |___
|____/ \___/|_| \_|_|\____|

-- Software for Open Networking in the Cloud --

Unauthorized access and/or use are prohibited.
All access and/or use are subject to monitoring.

Help:    https://sonic-net.github.io/SONiC/

Last login: Wed Dec 18 13:02:17 2024 from 169.254.200.254

b. Execute the sudo su command to obtain root privileges.

admin@sonic:~$sudo su

c. Execute the command to clean up the disk space.

root@sonic:~$sonic-installer cleanup -y
  1. Copy the downloaded software image to all eight DPU modules from the NPU.
root@sonic:scp /tmp/sonic-pensando-jan30-1.87.0-SS-13.1.bin admin@\<dpu-midplane-ip\>:/home/admin

Note: During the upgrade process, the existing DPU image may be outdated, and the default credentials might not work. Therefore, try using the default credentials first. If that doesn’t succeed, use the SONiC default credentials.

  1. Install the downloaded software image on all eight DPU modules. Repeat these steps on all eight DPUs.

    a. Log in to the DPU console using the ssh admin@<dpu-midplane-ip> command.

root@sonic:~$ssh admin@169.254.200.1 
Debian GNU/Linux 12 \n \l

admin@169.254.200.1's password: 
Linux sonic 6.1.0-22-2-arm64 #1 SMP Debian 6.1.94-1 (2024-06-21) aarch64
You are on
 ____   ___  _   _ _  ____
/ ___| / _ \| \ | (_)/ ___|
\___ \| | | |  \| | | |
 ___) | |_| | |\  | | |___
|____/ \___/|_| \_|_|\____|

-- Software for Open Networking in the Cloud --

Unauthorized access and/or use are prohibited.
All access and/or use are subject to monitoring.

Help:    https://sonic-net.github.io/SONiC/

Last login: Wed Dec 18 13:02:17 2024 from 169.254.200.254

b. Execute the sudo su command to obtain root privileges.

admin@sonic:~$sudo su

c. Execute the command to install the SONiC image.

root@sonic:~$sonic-installer install /home/admin/sonic-pensando-jan30-1.87.0-SS-13.1.bin -y

d. Execute the reboot command to restart the DPU module.

root@sonic:~$reboot

e. Verify the software version on the DPU module using the show version command.


root@sonic:~$show version

SONiC Software Version: SONiC.mtfuji-sonicbuildimage.0-dirty-20241119.204642
SONiC OS Version: 12
Distribution: Debian 12.8
Kernel: 6.1.0-22-2-arm64
Build commit: dcf8ff131
Build date: Tue Nov 19 20:50:39 UTC 2024
Built by: sonic@msft-2

Platform: arm64-elba-asic-flash128-r0
HwSKU: Pensando-elba
ASIC: pensando
ASIC Count: 1
Serial Number: FLM2822055U
Model Number: DSS-MTFUJI
Hardware Revision: N/A
Uptime: 07:40:40 up 2 min,  1 user,  load average: 13.82, 5.08, 1.84
Date: Wed 22 Jan 2025 07:40:40

Docker images:
REPOSITORY                TAG                                              IMAGE ID       SIZE
docker-syncd-pensando     latest                                           2d2088b064ee   609MB
docker-syncd-pensando     mtfuji-sonicbuildimage.0-dirty-20241119.204642   2d2088b064ee   609MB
docker-orchagent          latest                                           24ee2d66bbdc   548MB
docker-orchagent          mtfuji-sonicbuildimage.0-dirty-20241119.204642   24ee2d66bbdc   548MB
docker-macsec             latest                                           c5e6a6e56d52   537MB
docker-dhcp-relay         latest                                           f62e9305aaa6   515MB
docker-snmp               latest                                           fa5b42e7cdc5   551MB
docker-snmp               mtfuji-sonicbuildimage.0-dirty-20241119.204642   fa5b42e7cdc5   551MB
docker-platform-monitor   latest                                           6f828124d455   872MB
docker-platform-monitor   mtfuji-sonicbuildimage.0-dirty-20241119.204642   6f828124d455   872MB
docker-lldp               latest                                           6ab9043a5efe   513MB
docker-lldp               mtfuji-sonicbuildimage.0-dirty-20241119.204642   6ab9043a5efe   513MB
docker-fpm-frr            latest                                           f09c2a18f577   567MB
docker-fpm-frr            mtfuji-sonicbuildimage.0-dirty-20241119.204642   f09c2a18f577   567MB
docker-database           latest                                           794648ccfb2b   514MB
docker-database           mtfuji-sonicbuildimage.0-dirty-20241119.204642   794648ccfb2b   514MB
docker-dpu                latest                                           ef4091475576   831MB
docker-dpu                mtfuji-sonicbuildimage.0-dirty-20241119.204642   ef4091475576   831MB

f. Execute the command on the NPU to power cycle the DPU modules.

root@sonic~$config chassis modules shutdown DPU<id>; sleep 90; config chassis modules startup DPU<id>

g. Verify the status of the DPU modules by using the show chassis modules status command. Ensure the status is Online for all the DPU modules.

Note: It may take approximately 120 - 180 seconds for the DPU modules to become online.

root@sonic:~$show chassis modules status
  Name       Description    Physical-Slot    Oper-Status    Admin-Status         Serial
------  ----------------  ---------------  -------------  --------------  -------------
  DPU0  AMD Pensando DSC              N/A         Online              up  FLM281107LM-0
  DPU1  AMD Pensando DSC              N/A         Online              up  FLM281107LM-1
  DPU2  AMD Pensando DSC              N/A         Online              up  FLM281107MT-0
  DPU3  AMD Pensando DSC              N/A         Online              up  FLM281107MT-1
  DPU4  AMD Pensando DSC              N/A         Online              up  FLM281107MM-0
  DPU5  AMD Pensando DSC              N/A         Online              up  FLM281107MM-1
  DPU6  AMD Pensando DSC              N/A         Online              up  FLM281107MN-0
  DPU7  AMD Pensando DSC              N/A         Online              up  FLM281107MN-1

h. Log in to the DPU console using the ssh admin@dpu-midplane-ip command.

root@sonic:~$ssh admin@169.254.200.1 
Debian GNU/Linux 12 \n \l

admin@169.254.200.1's password: 
Linux sonic 6.1.0-22-2-arm64 #1 SMP Debian 6.1.94-1 (2024-06-21) aarch64
You are on
 ____   ___  _   _ _  ____
/ ___| / _ \| \ | (_)/ ___|
\___ \| | | |  \| | | |
 ___) | |_| | |\  | | |___
|____/ \___/|_| \_|_|\____|

-- Software for Open Networking in the Cloud --

Unauthorized access and/or use are prohibited.
All access and/or use are subject to monitoring.

Help:    https://sonic-net.github.io/SONiC/

Last login: Wed Dec 18 13:02:17 2024 from 169.254.200.254

i. Execute the sudo su command to obtain root privileges.

admin@sonic:~$sudo su

j. Execute the fwutil show status command on the DPU console to verify the new version of the DPU..

 
root@sonic:~$fwutil show status
| Chassis                    | Module | Component              | Version         | Description               |
|----------------------------|--------|------------------------|-----------------|---------------------------|
| Pensando-elba DSS-MTFUJI   | N/A    | DPUFW-0                | 20250130.162524 | DPU-0 SONiC Image         |
|                            |        | DPUQSPI_GOLDFW-0       | 1.68-G-16       | DPU-0 GOLDFW              |
|                            |        | DPUQSPI_GOLDUBOOT-0    | 1.5.0-EXP       | DPU-0 GOLDUBOOT           |
|                            |        | DPUQSPI_UBOOTA-0       | 1.5.0-EXP       | DPU-0 UBOOTA              |
|                            |        | eMMC                   | 26030120        | Internal storage device   |

Note: The fwutil show status command on the NPU will no longer display the DPU FW status. Ensure to execute the command on the DPU modules.