Skip to content

[202205][nvidia] Place FW binaries under platform directory instead of squashfs#91

Closed
stepanblyschak wants to merge 3 commits into202205from
2205-new-fw-loc
Closed

[202205][nvidia] Place FW binaries under platform directory instead of squashfs#91
stepanblyschak wants to merge 3 commits into202205from
2205-new-fw-loc

Conversation

@stepanblyschak
Copy link
Copy Markdown
Owner

Upgrade from old image always requires squashfs mount to get the next image FW binary. This can be avoided if we put FW binary under platform directory which is easily accessible after installation:

admin@r-spider-05:~$ ls /host/image-fw-new-loc.0-dirty-20230208.193534/platform/fw-SPC.mfa
/host/image-fw-new-loc.0-dirty-20230208.193534/platform/fw-SPC.mfa
admin@r-spider-05:~$ ls -al /tmp/image-fw-new-loc.0-dirty-20230208.193534-fs/etc/mlnx/fw-SPC.mfa
lrwxrwxrwx 1 root root 66 Feb  8 17:57 /tmp/image-fw-new-loc.0-dirty-20230208.193534-fs/etc/mlnx/fw-SPC.mfa -> /host/image-fw-new-loc.0-dirty-20230208.193534/platform/fw-SPC.mfa

Signed-off-by: Stepan Blyschak [email protected]

Why I did it

202211 and above uses different squashfs compression type that 201911 kernel can not handle. Therefore, we avoid mounting squashfs altogather with this change.

How I did it

  • Place FW binary under /host/image-/platform/mlnx/, soft links in /etc/mlnx are created to avoid breaking existing scripts/automation.
  • /etc/mlnx/fw-SPCX.mfa is a soft link always pointing to the FW that should be used in current image
  • mlnx-fw-upgrade.sh is updated to prefer /host/image-/platform/mlnx location and fallback to /etc/mlnx in squashfs in case new location does not exist. This is neccessary to do image downgrade.

How to verify it

  • Upgrade from 201911 to master
  • master to 201911 downgrade
  • master -> master reboot
  • ONIE -> master boot (First FW burn)

Which release branch to backport (provide reason below if selected)

  • 201811
  • 201911
  • 202006
  • 202012
  • 202106
  • 202111
  • 202205
  • 202211

Description for the changelog

Ensure to add label/tag for the feature raised. example - PR#2174 under sonic-utilities repo. where, Generic Config and Update feature has been labelled as GCU.

Link to config_db schema for YANG module changes

A picture of a cute animal (not mandatory but encouraged)

Upgrade from old image always requires squashfs mount to get the next
image FW binary. This can be avoided if we put FW binary under platform
directory which is easily accessible after installation:

```
admin@r-spider-05:~$ ls /host/image-fw-new-loc.0-dirty-20230208.193534/platform/fw-SPC.mfa
/host/image-fw-new-loc.0-dirty-20230208.193534/platform/fw-SPC.mfa
admin@r-spider-05:~$ ls -al /tmp/image-fw-new-loc.0-dirty-20230208.193534-fs/etc/mlnx/fw-SPC.mfa
lrwxrwxrwx 1 root root 66 Feb  8 17:57 /tmp/image-fw-new-loc.0-dirty-20230208.193534-fs/etc/mlnx/fw-SPC.mfa -> /host/image-fw-new-loc.0-dirty-20230208.193534/platform/fw-SPC.mfa
```

Signed-off-by: Stepan Blyschak <[email protected]>

# /host/image-<version>/platform/fw/asic is now the new location for FW binaries.
# Prefere this path and if it does not exist use squashfs as a fallback.
local -r _NEXT_IMAGE_FW_BIN_PATH="/host/image-${_NEXT_SONIC_IMAGE#SONiC-OS-}/platform/fw/asic/"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@stepanblyschak please move this under if condition and rename: _NEXT_IMAGE_FW_BIN_PATH -> _FW_BIN_PATH

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The _NEXT_IMAGE_FW_BIN_PATH is used in the if statement. _NEXT_IMAGE is to distinguish between current and next image locations

else
local -r _FS_PATH="/host/image-${_NEXT_SONIC_IMAGE#SONiC-OS-}/fs.squashfs"
local -r _FS_MOUNTPOINT="/tmp/image-${_NEXT_SONIC_IMAGE#SONiC-OS-}-fs"
local -r _FW_BIN_PATH="${_FS_MOUNTPOINT}/etc/mlnx/"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@stepanblyschak do we really need a trailing slash here? The same for above ...

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I prefer trailing slash to indicate it is a directory

stepanblyschak and others added 2 commits February 16, 2023 16:05
Signed-off-by: Stepan Blyschak <[email protected]>
stepanblyschak pushed a commit that referenced this pull request Sep 24, 2025
…e latest HEAD automatically (sonic-net#23949)

#### Why I did it
src/wpasupplicant/sonic-wpa-supplicant
```
* fff91558d - (HEAD -> master, origin/master, origin/HEAD) HOSTPAD driver changes for PAC (#91) (18 hours ago) [Vijaya Kumar Abbaraju]
```
#### How I did it
#### How to verify it
#### Description for the changelog
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants