• Welcome to TechPowerUp Forums, Guest! Please check out our forum guidelines for info related to our community.

amdvbflash 4.104E for 64-bit linux with updated support for VBIOS Flash on Big Navi2x GPUs

Joined
Oct 22, 2020
Messages
36 (0.02/day)
Pure version from AMD, without any extra modding-related unlockings.
Earlier Feb 4 2022 build, so Navi3x not supported

Tested to work fine up to RX6650 cards:
Code:
[root@host]# ./amdvbflash4-104E -ai 0
AMDVBFLASH version 4.104 EXTERNAL, Copyright (c) 2022 Advanced Micro Devices, Inc.

Adapter 0 SEG=0000, BN=03, DN=00, PCIID=73EF1002, SSID=52341849)
Asic Family : Navi23
Flash Type : W25Q80 (1024 KB)
Product Name : NAVI23 KXT A0 8GB 500e/97m 0.9V/1.35V
Bios Config File :
Bios P/N : 113-EXT800333-L02
Bios Version : 020.003.000.030.800333
Bios Date : 02/25/22 05:41
ROM Image Type : Hybrid Images
ROM Image Details :
Image[0]: Size(45568 Bytes), Type(Legacy Image)
Image[1]: Size(38400 Bytes), Type(EFI Image)
Image[2]: Size(39936 Bytes), Type(EFI Image)

Code:
[root@host]# ./amdvbflash4-104E -h
AMDVBFLASH version 4.104 EXTERNAL, Copyright (c) 2022 Advanced Micro Devices, Inc.

--- amdvbflash v4.104 EXTERNAL ---
-h, -?, /h, /? Help (this screen)

Format: amdvbflash [command] [parameter1] [parameter2] [parameter3] <option/s>
[command]:
-i [Num] Display information of AMD adapters in the system.
Display information of adapter [Num] if specified.
-ai [Num] Display advanced information of AMD adapters on system.
Display advanced information of adapter [Num]
if specified.
-biosfileinfo <File> Displays the Bios info in file <file>
-p <Num> <File> Write BIOS image in file <File> to flash ROM in Adapter
<Num>.
-pa [-padevid=] <File> Write BIOS image <File> to all appropriate adapters.
Use with -padevid or -passid or -pasvid or -pavbpn or -fp.
Command example:
command = -pa -padevid=0xXXXX a123.bin
-s <Num> <File> [Size] Save BIOS image from adapter <Num> to file <File>.
First [Size] kbytes (except for Theater in bytes) of ROM
content is saved if [Size] is specified.
-cf <File> [Sum] Calculate 16-bit checksum for file <File>.
Checksum for the file is compared to [Sum] which is
the expected checksum
-cb <Num> [Sum] Calculate 16-bit BIOS image checksum for adapter <Num>.
Checksum for the BIOS image is compared to [Sum] which is
the expected checksum
-cr <Num> [Size] [Sum] Calculate 16-bit ROM checksum for adapter <Num> and
compare it to the [Sum] specified. This command is
the same as -cb if [Size] is specified.
-t <Num> Test ROM access of adapter <Num>
-v <Num> <File> Compare ROM content of adapter <Num> to <File>
-mi <Num> [ID] Modify SSID & SVID in BIOS image of adapter <Num> to
<ID>. SSID & SVID in BIOS image of adapter <Num> is
displayed if [ID] is not specified.
-mb <Num> <File> Modify SSID, SVID, BIOS Pin Number, & Boot Message in
BIOS image of adapter <Num> to values in <filename>.
Input file example:
ssid = 715B
svid = 1002
biospn = "113-xxxxxx-xx"
bootmsg = "AMD graphic board"
-pak <File> Package an executable for BIOS update according to
the commands in <File>.
Config file example:
outfile = update.exe
banner = "Update v1.0"
infile = a123.bin
command = -pa -padevid=715B infile
-isr <Num> <Build Number> <Board Number> Set ISR number based on the given
build and board number
if not specified, print out ISR Number
-prod <Num> <12 digit serial number> Set PROD number based
on the given serial number
if not specified, print out SN Number
-checkprodsn <Num> <12 Digit Serial Number> Comparing the Prod SN based on
existing prod sn saved in ROM

<option/s>:
-fp Force flashing bypassing BIOS P/N check.
-fa Force flashing bypassing already-programmed check.
-fv Force flashing bypassing newer BIOS version check.
-nw No user interaction on test failure.
-sst Use SST25VFxxx flashing algorithm regardless of ROMID straps.
-st Use ST M25Pxx flashing algorithm regardless of ROMID straps.
-atmel Use AT25Fxxx flashing algorithm regardless of ROMID straps.
-nopci Do not enumerate PCI adapters, i.e. enumerate only AGP and
PCIe adpaters
-pcionly Enumerate only PCI adapters, i.e. do not enumerate AGP and
PCIe adapters
-agp Enumerate only AGP adapters, i.e. do not enumerate PCI and
PCIe adapters unless used with -pcie or -pci
-noagp Do not enumerate AGP adapters, i.e. enumerate only PCI and
PCIe adpaters
-pcie Enumerate only PCIe adapters, i.e. do not enumerate AGP and
PCI adapters unless used with -agp or -pci
-nopcie Do not enumerate PCIe adapters, i.e. enumerate only AGP and
PCI adpaters

-pci Enumerate only PCI adapters, i.e. do not enumerate AGP and
PCIe adapters unless used with -agp or -pcie
-maxsegtoscan=# Limits PCI segment group number to be scanned for devices to the specified value.
-maxbustoscan=# Limits PCI bus number to be scanned for devices to the specified value.
-reboot Force a reboot of the system after successfully completing the
specified operation
-keepisrsn keep the ISR Number on the adapter when flashing a new VBIOS
-keepprodsn keep the Prod SN on the adapter when flashing a new VBIOS
-siireset Specifies the GPIO Pin to be used as the Reset when updating
SiI1930 microcontroller firmware
Input example:
-siireset=7 <No Spaces>
-siiuprog Specifies the GPIO Pin to be used as the uprog when updating
SiI1930 microcontroller firmware
Input example:
-siiuprog=14 <No Spaces>
-scansii Overrides normal adapter detection to enable detecting SSI
roms with/without TPI firmware
-log Logs output to amdvbflash.log, overrides existing file
-logappend Logs and appends output to amdvbflash.log
-ddc Enable DDC support
-padevid=<ID> Use with -pa command to update adapters of specific device ID.
-passid=<ID> Use with -pa command to update adapters of specific SSID.
-pasvid=<ID> Use with -pa command to update adapters of specific SVID.
-pavbpn=<VBPN> Use with -pa command to update adapters of specific VBIOS PN.
-excl_memtrain_dtable When flashing on new VBIOS, a pre-determined memory
training data table in the old VBIOS will not be
overwritten.
-isr <adapter num> [build num] [board num] If build number and board number
are specified, sets the ISR Number
value in specified adapter.
If only adapter is specified, the current
ISR Number is displayed
-checkpn <adapter num> <filename> Checks PN of the current product
and compares it to external file
-rsa <filename> Verify VBIOS immage file RSA signature
*<Num> = adapter number, <File> = filename
*[Size] = data block size in KBytes, except for Theater Pro in Bytes
*Use command -i to see the adapter numbers in the system.


As always, consider risks wile running untrusted binary as root and backup your VBIOS before any flashing, like
Code:
./amdvbflash4-104E -s 0 orig-backup.rom
 

Attachments

  • amdvbflash4-104E-linux.zip
    621.3 KB · Views: 1,804
Joined
Oct 22, 2020
Messages
36 (0.02/day)
Here is newer version 5.0.638 built on July 2023. I have no Navi3x to test, but I suppose It should be compatible.

Compared to 4.x version it display much more info with -ai:
Code:
sudo ./amdvbflash5.0.638 -ai

AMD IFWI Flasher Tool Version 5.0.0.638-External. Copyright© 2020-2023 Advanced Micro Devices, Inc. All rights reserved.

Detecting AMD GPU/APU. Please wait...

Adapter 0 (0x0000:03:00.0)
    ASIC Family                   Navi23
    Flash Type                    W25Q80
    Product Name                  NAVI23 KXT A0 8GB 500e/97m 0.9V/1.35V                                       
    Bios Config File              665KXT8GPGD_
    Bios P/N                      113-EXT800333-L02
    Bios Version                  020.003.000.030.800333
    Bios Date                     02/25/22 05:41

Image 0 -- Offset 0x0000
__________________
  ROM header contents:
    Signature                     0xaa55
    PCIR Offset                   0x0370
  PCI Data Structure:
    Signature                     PCIR0x'))='0x14tring-af
    Vendor ID                     0x1002
    Device ID                     0x73ef
    PCI Revision                  0x0
    Image Size                    0xb200
    Code Revision                 0x1403
    Indicator                     0x0     (Not Last Image)
    Code Type                     0x0     (Intel IA-32, PC-AT compatible)
    Legacy BIOS File Name         665KXT8GPGD_
    Legacy BIOS Part Number       113-EXT800333-L02
    Legacy BIOS Build Number      603446 
    Legacy BIOS Change List       2387576
    Binary BIOS Identifier (IDTF) 0x4c600937

Image 1 -- Offset 0xb200
__________________
    Signature                     0xaa55
    PCIR Offset                   0x001c
  PCI Data Structure:
    Signature                     PCIR
    Vendor ID                     0x1002
    Device ID                     0x73ef
    PCI Revision                  0x0
    Image Size                    0x9600
    Code Revision                 0x0000
    Indicator                     0x0     (Not Last Image)
    Code Type                     0x0     (EFI)
    Image Size                    0x00000ef1
    Compression Type              0x0     (Compressed)
    MachineType                   0x8664   (X64 Machine Type)
    Subsystem                     0x0b     (EFI Boot Service Driver)
    EFI Image Offset              0x64     (abs: 0xb264)
  UEFI IDs from EFI_PCI_EXPANSION_ROM_HEADER
    UEFI Source Revision          GOP AMD REV: 000.000.000.020.003
    UEFI Source Change List       2387576
    UEFI BIOS Build Number        603446
  GOP Driver Info:
    Machine Type Code             0x8664   (AMD64 (K8))
    Authenticode Signed           true
    GOP Image Size                0xdd00   (55KB)
    Driver Name                   AMD GOP X64 Release Driver Rev.3.1.0.Mar 14 2021.23:17:45
    UEFI Major Revision           0x0
    UEFI Minor Revision           0x0
    UEFI Fix Revision             0x0
    Legacy Major Version          0x0
    Legacy Minor Version          0x0
    GOP AMD Build                 
    GOP AMD CL                   
    GOP BIOS Identifier (IDTF)    0xdeadbeef
    Driver Carries legacy tables  false

Image 2 -- Offset 0x14800
__________________
    Signature                     0xaa55
    PCIR Offset                   0x001c
  PCI Data Structure:
    Signature                     PCIR
    Vendor ID                     0x1002
    Device ID                     0x73ef
    PCI Revision                  0x0
    Image Size                    0x9c00
    Code Revision                 0x0000
    Indicator                     0x0�     (Last Image)
    Code Type                     0x0     (EFI)
    Image Size                    0x00000ef1
    Compression Type              0x0�     (Compressed)
    MachineType                   0xaa64   (X64 Machine Type)
    Subsystem                     0x0b     (EFI Boot Service Driver)
    EFI Image Offset              0x64     (abs: 0x14864)
  UEFI IDs from EFI_PCI_EXPANSION_ROM_HEADER
    UEFI Source Revision          GOP AMD REV: 000.000.000.020.003
    UEFI Source Change List       2387576
    UEFI BIOS Build Number        603446
  GOP Driver Info:
    Machine Type Code             0xaa64   (ARM64)
    Authenticode Signed           true
    GOP Image Size                0xf8e0   (62KB)
    Driver Name                   AMD GOP ARM64 Release Driver, Rev. 3.1.0.Mar 14 2021.23:19:12
    UEFI Major Revision           0x0
    UEFI Minor Revision           0x0
    UEFI Fix Revision             0x0
    Legacy Major Version          0x0
    Legacy Minor Version          0x0
    GOP AMD Build                 
    GOP AMD CL                   
    GOP BIOS Identifier (IDTF)    0x0000ff
    Driver Carries legacy tables  false

The GCN flashing support is removed, however the header parsing info for rom files saved by earlier versions can be seen via
--bios-file-info option, even for ancient GPUs:
Code:
sudo ./amdvbflash5.0.638 --bios-file-info ATI.X1950Pro.256.061224.rom

AMD IFWI Flasher Tool Version 5.0.0.638-External. Copyright© 2020-2023 Advanced Micro Devices, Inc. All rights reserved.

    Product Name                 
    Bios Config File              I9XAB1DA.H1L
    Bios P/N                      U�{�w
    Bios Version                  009.013.001.013.000000
    Bios Date                     12/24/06 23:03

Image 0 -- Offset 0x0000
__________________
  ROM header contents:
    Signature                     0xaa55
    PCIR Offset                   0x0238
  PCI Data Structure:
    Signature                     PCIR
    Vendor ID                     0x1002
    Device ID                     0x7280
    PCI Revision                  0x0
    Image Size                    0xf600
    Code Revision                 0x090d
    Indicator                     0x0�     (Last Image)
    Code Type                     0x0     (Intel IA-32, PC-AT compatible)
    Legacy BIOS File Name         I9XAB1DA.H1L
    Legacy BIOS Part Number       U�{�w
    Legacy BIOS Build Number      19067   
    Legacy BIOS Change List       294861 
    Binary BIOS Identifier (IDTF) 0xe3ef2d47
Code:
sudo  ./amdvbflash5.0.638 --bios-file-info Gigabyte.RX570.4096.170320.rom
AMD IFWI Flasher Tool Version 5.0.0.638-External. Copyright© 2020-2023 Advanced Micro Devices, Inc. All rights reserved.

    Product Name                  GV-RX570AORUS-4GD/F2/0552                                                   
    Bios Config File              RX570A4.F2 
    Bios P/N                      xxx-xxx-xxx
    Bios Version                  015.050.002.001.000000
    Bios Date                     03/20/17 02:13

Image 0 -- Offset 0x0000
__________________
  ROM header contents:
    Signature                     0xaa55
    PCIR Offset                   0x0248
  PCI Data Structure:
    Signature                     PCIR
    Vendor ID                     0x1002
    Device ID                     0x67df
    PCI Revision                  0x0
    Image Size                    0xea00
    Code Revision                 0x0f32
    Indicator                     0x0     (Not Last Image)
    Code Type                     0x0     (Intel IA-32, PC-AT compatible)
    Legacy BIOS File Name         RX570A4.F2 
    Legacy BIOS Part Number       xxx-xxx-xxx
    Legacy BIOS Build Number      377763 
    Legacy BIOS Change List       1387591
    Binary BIOS Identifier (IDTF) 0x517462ff

Image 1 -- Offset 0xea00
__________________
    Signature                     0xaa55
    PCIR Offset                   0x001c
  PCI Data Structure:
    Signature                     PCIR
    Vendor ID                     0x1002
    Device ID                     0x67df
    PCI Revision                  0x0
    Image Size                    0xe400
    Code Revision                 0x0000
    Indicator                     0x0�     (Last Image)
    Code Type                     0x0     (EFI)
    Image Size                    0x00000ef1
    Compression Type              0x0�     (Compressed)
    MachineType                   0x8664   (X64 Machine Type)
    Subsystem                     0x0b     (EFI Boot Service Driver)
    EFI Image Offset              0x58     (abs: 0xea58)
  UEFI IDs from EFI_PCI_EXPANSION_ROM_HEADER
    UEFI Source Revision          GOP AMD REV: x.x.x.x.x
    UEFI Source Change List       xxxx
    UEFI BIOS Build Number        xxxx
  GOP Driver Info:
    Machine Type Code             0x8664   (AMD64 (K8))
    Authenticode Signed           true
    GOP Image Size                0x17900   (94KB)
    Driver Name                   AMD GOP X64 Release Driver Rev.1.61.0.15.50.Jan 12 2017.11:16:18
    UEFI Major Revision           0x0
    UEFI Minor Revision           0x0
    UEFI Fix Revision             0x0
    Legacy Major Version          0x0
    Legacy Minor Version          0x0
    GOP AMD Build                 
    GOP AMD CL                   
    GOP BIOS Identifier (IDTF)    0xdeadbeef
    Driver Carries legacy tables  false

Here is the --help output:
Code:
 sudo ./amdvbflash5.0.638 --help
AMD IFWI Flasher Tool Version 5.0.0.638-External. Copyright© 2020-2023 Advanced Micro Devices, Inc. All rights reserved.


Debug logging related options:
  --debug-log-status arg        (Optional)This switch enables debug logging. By
                                default debug logging is enabled.
                                Usage:
                                    Enable Debug Logging:
                                        --debug-log-status=true
                                    Disable Debug Logging:
                                        --debug-log-status=false
                                        
  --debug-log-options           Lists the debug logging options for the tool.
                                Usage:
                                    --debug-log-options
                                        
  --debug-log-filename arg      (Optional) Specifies the name of the debug log 
                                file name. The tool shall use this name 
                                suffixed with a number, where the number 
                                indicates an incrementing number indicating 
                                each instance of the binary. Be default the 
                                help file name starts with the name of process.
                                Usage:
                                    --debug-log-filename=[Filename]
                                        
  --debug-log-filepath arg      (Optional) Specifies the location of the debug 
                                log file path. If this is empty or not 
                                specified then the following folders shall be 
                                used for generating debug log files:
                                       Windows: %APPDATA%\\AMD folder
                                       ESXi:    <datastore>/AMD/Logs/
                                       Linux:   /var/log/AMD
                                Usage:
                                    --debug-log-filepath=[Filepath]
                                        
  --debug-log-filesize arg      (Optional)Specify the size of the Log file in 
                                MegaBytes (MB). 1 to 50. Defaults to 40 MB.
                                Usage:
                                    --debug-log-filesize=[Size in MB]
                                        
  --debug-log-filepolicy arg    (Optional)Specify the policy to use when the 
                                log file size hits the size limit.
                                Valid values are NEWLOG and REUSE. Defaults to 
                                NEWLOG
                                    NEWLOG(1): Generates a new log file
                                    REUSE(2): Continues using the same file 
                                         (will start writing from the begining)
                                Usage:
                                    --debug-log-filepolicy=NEWLOG
                                    --debug-log-filepolicy=REUSE
                                        

Generic options:
  --version                     Show the version of the binary.
                                Usage:
                                    --version
                                        
  -h [ --help ] [=arg(=ALL)]    Displays this help text if no argument is 
                                specified. If an argument is specified then the
                                help for the specified command is shown.
                                Usage:
                                    --help/h/?
                                    --help/h/? <command>: --help 
                                debug-log-filepolicy
                                        
  --? [=arg(=ALL)]              Displays this help text if no argument is 
                                specified. If an argument is specified then the
                                help for the specified command is shown.
                                Usage:
                                    --help/h/?
                                    --help/h/? <command>: --help 
                                debug-log-filepolicy
                                        
  --show-progress               Shows progress for any long activity the tool 
                                does. Can be used along with any command.
                                Usage:
                                    --show-progress
                                        
  --accept-EULA                 Accept the EULA agreement. You can see the EULA
                                by --show-EULA.
                                Usage:
                                    --accept-EULA
                                        
  -e [ --show-EULA ]            Shows the EULA for the tool
                                Usage:
                                    --show-EULA
                                        

Options related to the console:
  --cls                         Clear the screen
                                Usage:
                                    cls
  --exe arg                     Load and execute macro file (db32 script)
                                Usage:
                                    exe [ScriptName]
  --open arg                    Open a file to log the session activities until
                                the close command. Additionally multiple open 
                                commands will redirect the console activity to 
                                the last opened file.
                                Usage:
                                    open [File]
                                        
  --close                       Closes the last opened session log file.
                                Usage:
                                    close
                                        
  --flush                       Flushes the text to the last opened session log
                                file.
                                Usage:
                                    flush
                                        

Common tool ptions:
  -i [ --device ] [=arg(=-1 )]  ASIC on which the operation has to be 
                                performed. This is a 0 based index.
                                Usage: 
                                    --device/-i=0
                                        : Specifies ASIC at index 0
                                    --device/-i=0,1
                                        : Specifies ASICs at index 0 and 1
                                    --device/-i=-1
                                        : Specifies to work on all ASICs 
                                detected
                                    --device/-i
                                        : Same as above i.e., specifies to work
                                all ASICs detected
                                        
  -a [ --advanced ]             When this flag is specified, it tells the tool 
                                to work in advanced mode. The work will depend 
                                on the tool. This has to be used along-with -i 
                                option
                                Usage:
                                    --advanced/-a
                                        : Work to show/perform advanced 
                                operations
                                    --advanced --device/-ai:
                                        : Work to show/perform advanced 
                                operations
  --show                        This flag instructs the tool to show 
                                information. What information is to be shown is
                                specified by the other switches.
                                Usage:
                                    --show --device
                                        : Show device inforamtion
                                    --show --device --advanced
                                        : Show advanced device inforamtion

Command line switches for the flash capability:
  -s [ --save ] arg             This flag instructs the tool to save the VBIOS 
                                image. This has to be used along-with the 
                                --device switch and the --vbios-info. If 
                                --vbios-file is not specified then the file 
                                name is constructed at run time with the 
                                following format [ASIC]_[BDF]_[Index].rom
  -p [ --flash ] arg            Write VBIOS image in file <file> to flash ROM 
                                in ASIC <Num>.
                                Usage:
                                    -p <Num> <File>, or
                                    --flash --device [Num] --vbios-file <File>
  --vbios-info                  This flag when used along with --show flag 
                                instructs the tool to show the VBIOS 
                                Information from the file specified by using 
                                the --vbios-file option
  --vbios-file arg              Specify the VBIOS file to work with. This 
                                option can be used to save the VBIOS image to 
                                this file as well as to read VBIOS image from 
                                this file
  --bios-file-info arg          Display the BIOS info in the given file
  --savefile-at-end             This flag instructs the tool to save the whole 
                                VBIOS content read from the ROM Controller at 
                                the end of read operation. This should always 
                                be used only with --save flag. If not used, by 
                                default the tool keeps writing ROM contents 
                                read in each iteration to the file.
  --save-flashed-bytes          This flag instructs the tool to save the bytes 
                                being flashed to the SPIROM to a file for 
                                debugging purpose. This will enable the user to
                                additionaly verify what and how many bytes have
                                been written to the SPIROM at the end of flash 
                                operation. This flag should always be used with --flash
                                command only. If not used, by default 
                                the bytes won't be additionally saved to a  file.
  --active                      This flag is used along with -ai command to 
                                show the ACTIVE partition details i.e. 
                                Partition where dGPU is booted from.
                                Usage:
                                    -ai [Num] --active, or
                                    --advanced --device [Num] --active
  --inactive                    This flag is used along with -ai command to 
                                show the INACTIVE partition details i.e. 
                                Partition which would be targeted to be 
                                flashed.
                                Usage:
                                    -ai [Num] --inactive, or
                                    --advanced --device [Num] --inactive
  --fa                          This flag enables force flashing the same IFWI 
                                version. Should be used with the --flash 
                                switch.
                                Usage:
                                    -p <Num> <File> -fa, or
                                    --flash --device [Num] --vbios-file <File> --fa
  --fp                          This flag instructs the tool to bypass BIOS 
                                part number check and perform a force flash. 
                                This flag should always be used with --flash 
                                command only.
                                Usage:
                                    -p <Num> <File> -fp, or
                                    --flash --device [Num] --vbios-file <File>  --fp

  --fv                          This flag enables downgrading the IFWI by 
                                performing a force flash. This bypasses 
                                checking the VBIOS/IFWI version. This flag 
                                should always be used with --flash command.
                                Usage:
                                    -p <Num> <File> -fv, or
                                    --flash --device [Num] --vbios-file <File> --fv
  --config arg                  This flag allows the config file parameter to 
                                be skipped for comparision if all the config 
                                params match with corresponding value in IFWI 
                                file. This flag should always be used with  --flash command.
                                Usage:
                                    -p <Num> <File> -config <ConfigFile>, or
                                    --flash --device [Num] --vbios-file <File>  --config=<ConfigFile>
                                        
  --checkpn arg                 Compare Part Number of the current IFWI in the 
                                device with the Part Number in the IFWI image 
                                specified.
                                Usage:
                                    --/-checkpn <Num> <File>, or
                                    --/-checkpn --device <DeviceIndex>  --vbios-file <IFWI Image>
                                        
  --cr arg                      Calculates the 16-bit ROM checksum for device 
                                <Index> of size if size is specified and 
                                compare with sum if expected sum is specified.
                                Usage:
                                    -cr <Num> <size> <sum>, or
                                    --cr --device [Num] <size> <sum>
                                        
  --complete                    This flag instructs the tool to calculate 
                                checksum of Complete IFWI.This flag should be 
                                used with --cr/--cf command only.
                                Usage:
                                    -cr <Num> <size> <sum> -complete, or
                                    --cr --device [Num] <size> <sum> --complete
                                        
  --biosimage                   This flag instructs the tool to calculate 
                                checksum of VBIOS image in IFWI.This flag 
                                should be used with --cr command only.
                                Usage:
                                    -cr <Num> <size> <sum> -biosimage, or
                                    --cr --device [Num] <size> <sum> 
                                --biosimage
                                        
  --cf arg                      Calculate 16-bit checksum for file <File> and 
                                if expected checksum has been specified then 
                                compare the calculated checksum with the 
                                specified checksum.
                                Usage:
                                    -cf <file> <sum>, or
                                    --cf --vbios-file <File> <sum>
                                        
  --pa arg                      Write the VBIOS image in the given image file 
                                to all applicable ASICs.>.
                                Usage:
                                    -pa <file> or
                                    --pa --vbios-file <File>
                                        
  --padevid arg                 Flash the VBIOS Image to ASIC which matches the
                                specific Device ID. This command should be used
                                along-with the -pa switch and also can be used 
                                along-with other -pa switches like (-pasvid, -pavbpn -passid).>
                                Usage:
                                    -pa <file> padevid <id>
                                    -pa <file> padevid <id> passid <id>
                                    --pa --vbios-file <File> padevid <id>
                                        
  --passid arg                  Flash the VBIOS Image to ASIC which matches the
                                specific Subsystem ID. This flag should be used
                                with --pa switch and also can be used 
                                along-with other -pa switches like (-padevid, -pasvid, -pavbpn).>
                                Usage:
                                    -pa <file> passid <id>
                                    -pa <file> passid <id> padevid <id>
                                    --pa --vbios-file <File> passid <id> padevid <id>
                                        
  --pasvid arg                  Flash the VBIOS Image to ASIC which matches the
                                specific  Subsystem Vendor ID. This flag should
                                be used with --pa switch and also can be used 
                                along-with other -pa switches like (-padevid, -passid, -pavbpn).>
                                Usage:
                                    -pa <file> pasvid <id>
                                    -pa <file> pasvid <id> padevid <id>
                                    --pa --vbios-file <File> pasvid <id> padevid <id>
                                        
  --pavbpn arg                  Flash the VBIOS Image to ASIC which matches the
                                specific PartNumber. This flag should be used 
                                with --pa switch and also can be used 
                                along-with other -pa switches like (-padevid, -pasvid, -passid).>
                                Usage:
                                    -pa <file> pavbpn <part number>
                                    -pa <file> pavbpn <part number> pasvid <id> padevid <id>
                                    --pa --vbios-file <File> pavbpn <part number>
 

Attachments

  • amdvbflash5.0.638-linux.zip
    3.4 MB · Views: 368
  • Like
Reactions: JLP

ZVNexus

New Member
Joined
Feb 27, 2024
Messages
2 (0.01/day)
Here is newer version 5.0.638 built on July 2023. I have no Navi3x to test, but I suppose It should be compatible.
I was able to confirm that this works for Navi3x with my 7900 XTX, found a newer version for my reference model and it flashed perfectly:

Code:
[nexus@prism amdvbflash5.0.638-linux]$ sudo ./amdvbflash5.0.638 --pa 263378.rom
AMD IFWI Flasher Tool Version 5.0.0.638-External. Copyright© 2020-2023 Advanced Micro Devices, Inc. All rights reserved.


Detecting AMD GPU/APU. Please wait...
Existing IFWI version          :   022.001.002.009.000001
IFWI version to be flashed     :   022.001.002.030.000001
-------------------------------
Existing IFWI PartNumber       :   113-D7020100-102
PartNumber of dGPU to be flashed:   113-D7020100-115
----------------------------
Existing IFWI SSID              :   0xE3B
SSID of dGPU to be flashed      :   0xE3B
----------------------------
Flashed 0x200000 Bytes Successfully on GPU at [0] @0000:03:00.0


1/1 adapters updated.


Please REBOOT the System to Complete VBIOS Update.

Rebooted and it successfully updated:
Code:
[nexus@prism amdvbflash5.0.638-linux]$ sudo ./amdvbflash5.0.638 -i
AMD IFWI Flasher Tool Version 5.0.0.638-External. Copyright© 2020-2023 Advanced Micro Devices, Inc. All rights reserved.

Detecting AMD GPU/APU. Please wait...
SNo BDF           DID ASIC      SPIROM          Size Test BIOS P/N         
___ ____________ ____ _________ ___________ ________ ____ _________________
  0 0000:03:00.0 744c Navi31    GD25LQ16E   0x200000 Pass 113-D7020100-115
 
Last edited:

JLP

Joined
Jun 19, 2024
Messages
11 (0.08/day)
Location
Slovenia
System Name Tsiolkovsky
Processor AMD Ryzen 5 7600
Motherboard ASUS ROG STRIX B650E-F GAMING WIFI
Cooling AMD Wraith Stealth
Memory 32 GB G.Skill Trident Z5 NEO DDR5-6000 CL30
Video Card(s) PowerColor Hellhound Radeon RX 7900 GRE OC
Storage Samsung 980 Pro 2TB SSD, WD Black 4TB SATA 128MB 7200RPM
Case Corsair Carbide 330R Blackout Edition
Power Supply Seasonic Prime 80 Plus Titanium 850W
Mouse Logitech MX Vertical Advanced Ergonomic
Keyboard Das Keyboard 6 Pro
Software openSUSE Tumbleweed GNU/Linux with KDE Plasma
Does not work for me :( I have PowerColor Hellhound RX 7900 GRE and if I run it with "-ai" option as root it only outputs version/copyright line and does not show any detected card or even the line that would indicate it is trying to detect something. This is on openSUSE Tumbleweed with Linux kernel 6.11.0.
 

ZVNexus

New Member
Joined
Feb 27, 2024
Messages
2 (0.01/day)
Does not work for me :( I have PowerColor Hellhound RX 7900 GRE and if I run it with "-ai" option as root it only outputs version/copyright line and does not show any detected card or even the line that would indicate it is trying to detect something. This is on openSUSE Tumbleweed with Linux kernel 6.11.0.
I found that to use AMD's official tool you have to be using the driver blobs they put out: https://www.amd.com/en/support/down...on-rx-7000-series/amd-radeon-rx-7900-xtx.html

You can also use fwupd and update from the local file if your fwupd is recent enough to have support added for AMD GPUs.
 
Joined
Oct 22, 2020
Messages
36 (0.02/day)
Does not work for me :( I have PowerColor Hellhound RX 7900 GRE and if I run it with "-ai" option as root it only outputs version/copyright line and does not show any detected card or even the line that would indicate it is trying to detect something. This is on openSUSE Tumbleweed with Linux kernel 6.11.0.
Its quite strange that there is no "Detecting AMD GPU/APU. Please wait..." line.

Here is the output output on the system without any AMD gpus, without any amd drivers loaded and with utility config file /etc/amdtools/config/AMDPlatToolsConfig.xml removed (to ensure 'clean start') and empty but created folder for logs /var/log/amd
Bash:
% sudo mkdir -p /var/log/amd
% sudo ./amdvbflash5.0.638 --debug-log-status=true -ai --accept-EULA
AMD IFWI Flasher Tool Version 5.0.0.638-External. Copyright© 2020-2023 Advanced Micro Devices, Inc. All rights reserved.

Detecting AMD GPU/APU. Please wait...

And the utility produce very detailed 5MB log is produced in /var/log/amd/amdvbflash5.0_0.log
By now its only sample for "no-gpu" case. Rerun your utility with --debug-log-status=true and compare/upload the log maybe there would be some useful information.
Maybe I'd be able to collect some log with plugged in GPU later.
 

Attachments

  • amdvbflash5.0_0.log.absent-gpu.zip
    208.8 KB · Views: 29

JLP

Joined
Jun 19, 2024
Messages
11 (0.08/day)
Location
Slovenia
System Name Tsiolkovsky
Processor AMD Ryzen 5 7600
Motherboard ASUS ROG STRIX B650E-F GAMING WIFI
Cooling AMD Wraith Stealth
Memory 32 GB G.Skill Trident Z5 NEO DDR5-6000 CL30
Video Card(s) PowerColor Hellhound Radeon RX 7900 GRE OC
Storage Samsung 980 Pro 2TB SSD, WD Black 4TB SATA 128MB 7200RPM
Case Corsair Carbide 330R Blackout Edition
Power Supply Seasonic Prime 80 Plus Titanium 850W
Mouse Logitech MX Vertical Advanced Ergonomic
Keyboard Das Keyboard 6 Pro
Software openSUSE Tumbleweed GNU/Linux with KDE Plasma
Attached is the log I get and yeah there appear to be some errors in it:
Code:
[10-05-2024T02:04:43]["ErrnoException.h"][29][0x7f23814a02c0]strerror_t returned: Error while calling linux API. Operation not permitted. errno: 1
[10-05-2024T02:04:43]["MMIO.cpp"][316][0x7f23814a02c0]Error while calling linux API. Operation not permitted. errno: 1
 

Attachments

  • amdvbflash5.0_0.zip
    4.9 KB · Views: 24
Top