Revision History
Version | Date | Description |
---|---|---|
1 | 2012/12/09 | Initial Release |
2 | 2013/07/03 | Mention tegra-uboot-flasher |
3 | 2014/09/26 | Updates for U-Boot’s recent USB device mode capabilities. |
Product Title nVidia Quadro 4000 2GB GDDR5 Video Product Title Dell Precision M6700 VMJY1 1KJ4N NVIDIA Quadro K5000 but we’ll be back in a flash. Nvidia Quadro K5000 for Mac Pro $349. NVIDIA Quadro K6000- 80. Also, before purchasing my GoPro I have. It seems now that when NOT using the NVIDIA webdriver but the Mac’s own driver (Sierra latest version) the Mac hangs on startup. Putting back in the original ATI Radeon card immediately solves the problem. So it must be an issue with the Quadro and the Mac driver (vs the NVIDIA webdriver).
Introduction
This document provides a brief overview of tools such as nvflash and tegrarcm,which are used to program flash devices attached to Tegra, and related tasks.
Boot ROM And Miniloader
All tools described here initially communicate with the Tegra boot ROM usingthe RCM protocol. This protocol primarily allows arbitrary code to bedownloaded into IRAM, and executed on the AVP. In practice, both nvflash andtegrarcm download a binary known as the miniloader.
The miniloader communicates over USB using another custom NVIDIA protocolknown as nv3p. The miniloader and nv3p protocol implement a few more commandsthan the RCM protocol. In particular, one command allows a BCT to bedownloaded, and the SDRAM controller to be configured and enabled using datafrom that BCT. A second command allows arbitrary code to be downloaded intoSDRAM and executed on the AVP. This is useful because SDRAM is much largerthan the AVP’s IRAM, and hence a much more complete application can fit intoit.
Downloaded application
The downloaded application may serve various purposes. For example:
- During bootloader development, the bootloader may be sent directly to SDRAM via the miniloader. This avoids the need to write the bootloader into flash. This can speed up the development and test process significantly.
- In order to write to flash devices, some form of flash-writing application may be downloaded.
tegrarcm
tegrarcm exists solely to perform the steps described above; to allow anarbitrary application to be downloaded into SDRAM and executed. Both use-casesdescribed above are applicable.
In the flash-writing use-case, the downloaded application would typically beU-Boot, which in turn allows interactive or scripted execution of commandsthat write to flash devices. U-Boot might acquire the image to be flashedfrom an SD-card or other storage device, over the network, or directly fromRAM downloaded along with U-Boot. The cbootimage tool exists to createthe flash image itself.
Recent versions of U-Boot support USB device mode operation. A couple ofprotocols are currently supported; Mass Storage and DFU (Device FirmwareUpdate). These allow the host machine to program flash interactively usingstandard protocols.
tegra-uboot-flasher
tegra-uboot-flasher is a set of scripts that build and use cbootimage,cbootimage-configs, tegrarcm, and U-Boot to flash Tegra devices in a simpleway. Operation requires just the RCM protocol. For more details, please seethe README at:
Nvflash
nvflash’s aim is to be a monolithic flashing tool for Tegra.
A few of nvflash’s commands communicate directly with the miniloader. Forexample, --getbct, which obtains a copy of the BCT currently programmed intoflash.
Like tegrarcm, nvflash downloads an application into SDRAM via the miniloader.The filename of that application (known as the bootloader) must be specifiedusing the --bl command-line option. This allows nvflash to download anarbitrary application into SDRAM. Hence, nvflash is capable of performing thebootloader development use-case mentioned in Downloaded Application above.
Generally though, nvflash expects to download NVIDIA’s 'fastboot' bootloader,and then communicate with it using an extended nv3p protocol. nvflash can bothwrite portions of the device’s flash, and/or read back parts of the device’sflash to the host machine.
When flashing a device from scratch, nvflash will read a configuration filedescribing the partition layout of the flash. The BCT, bootloader, andoptionally other partition content will all be packed together online bynvflash, and then sent to fastboot to be written to flash. This processincludes updating the BCT fields that specify the flashed bootloader locationand hash, and re-signing the BCT if required. As such, cbootimage is notneeded when using nvflash.
nvflash’s -r (resume) option expects that fastboot is already executing on thetarget, and hence communication can be initiated directly using nv3p, ratherthan having to download the miniloader and then fastboot first.
Tegra Partition Table
When flashing a device from scratch, nvflash reads a configuration filedescribing the layout of the target flash device. The flash layout is writtenas a list of partitions. Partions may have special types, such as:
- boot_config_table (typically named BCT) to which the BCT will be written.
- partition_table (typically named PT) to which a representation of the flash layout will be written. Note that this partition table format is custom to NVIDIA; it is not a standard format such as MBR or GPT.
- bootloader (typically named EBT) to which the bootloader will be written, and the BCT updated to point at.
- data (…) a general data partition, for example a kernel or root filesystem image.
- GPT (typically named GPT) to which a representation of the flash layout will be written, in standard GPT (GUID Partition Table) format. This particular should be last in the list, since it is intended to act as the secondary/backup GPT at the end of the device.
eMMC Partition Concatenation
eMMC devices (but not SD cards) often have their own HW-level partitioning,exposing perhaps 2 'boot sectors' of ~1-4 MB, and a general region coveringthe rest of the flash device. Software typically treats those regions asseparate devices or disks, and expects a standard partition table at thebeginning of the general region. This is certainly the case with recentversions of U-Boot and the Linux kernel.
However, nvflash and NVIDIA’s fastboot bootloader view the eMMC as a singlelinear device, which includes both boot-sectors and the general regionconcatenated together. The BCT, PT, and EBT partitions are often larger thanthe eMMC device’s physical bootsectors. This prevents a standard MBR or GPTpartition table from existing at the start of the general region.
- NVIDIA’s fastboot bootloader passes custom command-line arguments to the Linux kernel, derived from the PT partition table, indicating the partition layout of the device. Note that support for these custom command-line arguments only exists in NVIDIA’s downstream kernel; it does not exist in the upstream Linux kernel, and upstream U-Boot is not capable of creating these command-line arguments to pass to the kernel.
- Some software will find and use the secondary/backup GPT if present. You should not attempt to manipulate the partition layout using a standard GPT editing tool.
- If you intend to use or repurpose your device for use with upstream U-Boot and Linux kernel, you may ignore nvflash, create a flashable image using cbootimage, write that image to the eMMC’s boot sector(s), and then place a standard partition table at the beginning of the eMMC’s general region.
NVIDIA NVFlash 5.667.0
October 28th, 2020- 3.8 MBnvflash_5.667.0.zip
NVIDIA NVFlash 5.660.0
October 1st, 2020 - What's New- 7.0 MBnvflash_5.660.0.zip
NVIDIA NVFlash 5.620.0
June 8th, 2020- 6.4 MBnvflash_5.620.0.zip
NVIDIA NVFlash 5.590.0
December 16th, 2019 - What's New- 5.2 MBnvflash_5.590.0.zip
NVIDIA NVFlash 5.567.0
July 26th, 2019- 5.0 MBnvflash_5.567.0.zip
NVIDIA NVFlash 5.560.0
June 14th, 2019- 4.8 MBnvflash_5.560.0.zip
NVIDIA NVFlash 5.558.0
May 10th, 2019- 4.8 MBnvflash_5.558.0.zip
NVIDIA NVFlash 5.557.0
April 24th, 2019- 4.7 MBnvflash_5.557.0.zip
NVIDIA NVFlash 5.556.0
March 18th, 2019- 4.7 MBnvflash_5.556.0.zip
NVIDIA NVFlash 5.541.0
December 20th, 2018- 4.7 MBnvflash_5.541.0.zip
NVIDIA NVFlash 5.531.0
November 26th, 2018- 4.7 MBnvflash_5.531.0.zip
NVIDIA NVFlash 5.527.0
October 18th, 2018- 4.6 MBnvflash_5.527.0.zip
NVIDIA NVFlash 5.513.0
September 30th, 2018 - What's New- 4.5 MBnvflash_5.513.0.zip
NVIDIA NVFlash 5.469.0
June 18th, 2018 - What's New- 4.0 MBnvflash_5.469.0.zip
NVIDIA NVFlash 5.449.0
April 26th, 2018 - What's New- 4.0 MBnvflash_5.449.0.zip
NVIDIA NVFlash 5.427.0
January 10th, 2018 - What's New- 3.5 MBnvflash_5.427.0.zip
NVIDIA NVFlash 5.416.0
November 1st, 2017 - What's New- 3.4 MBnvflash_5.416.0.zip
NVIDIA NVFlash 5.414.0
November 1st, 2017- 1.7 MBnvflash_5.414.0_linux.zip
NVIDIA NVFlash 5.412.0
September 21st, 2017 - What's New- 3.1 MBnvflash_5.412.0.zip
NVIDIA NVFlash 5.398.0
July 25th, 2017 - What's New- 3.1 MB2FAAEB72742176A7598DEE50FBEB5DEE
NVIDIA NVFlash 5.370.0
April 20th, 2017 - What's New- 3.0 MBF5DE966EFED5E225ADE45D6B610A712D
NVIDIA NVFlash 5.353.0
February 22nd, 2017- 3.0 MB14DEC905485BC0DD050D25FC75758010
NVIDIA NVFlash 5.328.0
October 29th, 2016- 1.7 MB67C23BA2A6513CC64BDEE53E5A7D46B9
NVIDIA NVFlash 5.319.0
September 4th, 2016- 2.8 MB7D8C15D76E996A58B3CE11CAFF21FE69
NVIDIA NVFlash 5.292.0
June 6th, 2016- 1,004.8 KBF5DB5F7F303F57094441FD7E6EC94BFF
NVIDIA NVFlash 5.278.0
April 14th, 2016- 2.0 MBnvflash_5.278.0-win.zip
- 1.3 MBnvflash_5.278.0-linux.zip
NVIDIA NVFlash 5.265
March 1st, 2016- 2.0 MBnvflash_5.265-win.zip
- 2.2 MBnvflash_5.265-linux.zip
NVIDIA NVFlash 5.236
January 18th, 2016- 1.8 MB46AD69469F52AB4C49A576C91CB0C952
NVIDIA NVFlash 5.163 for DOS
October 15th, 2015- 483.3 KB1C0407ABA2AF365C668B76CA08F20A17
NVIDIA NVFlash 5.227.0.1 for Linux
October 14th, 2015- 2.0 MB1DFF50238076D832F11280426E302ECB
NVIDIA NVFlash 5.227.0.1
October 14th, 2015- 1.8 MBABDBB1D84E78CE8667A7C0280700DB72
NVIDIA NVFlash 5.218.0.1
June 12th, 2015- 1.7 MB673CA1747332BE884A82939AE5A86E68
NVIDIA NVFlash 5.206.0.1
February 7th, 2015- 732.8 KBD530BE7FA3806F0DF8F756E6FEC640DC
NVIDIA NVFlash 5.190.0.1
November 10th, 2014- 725.5 KB799F73255B063795CCE8B1079A8A29A5
NVIDIA NVFlash 5.165
July 25th, 2014- 713.3 KBDE02E064A909B6921E30B5536B856D77
Flash Nvidia For Mac Desktop
NVIDIA NVFlash 5.164
June 27th, 2014- 713.3 KB1A7530ABFEC33619B4B5EF3029094EA1
NVIDIA NVFlash 5.142
July 22nd, 2013- 361.4 KBFF32A2F2B8C10DFF6E50AECD16CC9A0F
NVIDIA NVFlash 5.136 for DOS
July 22nd, 2013- 445.6 KB1F5E2823DE6A3ECBD6C99A85BCAAC256
NVIDIA NVFlash 5.134.0.1
March 29th, 2013- 403.5 KBE83CAFEF225A924FEC8704D7E7233D7A
NVIDIA NVFlash 5.128.0.1
March 29th, 2013- 472.6 KB7B6792686CE971AF25597CAFC357508C
NVIDIA NVFlash 5.127
September 5th, 2012- 407.2 KBA41925E91DF8B255A601199D953E43DF
NVIDIA NVFlash 5.118
April 27th, 2012- 320.2 KBB078BA8FB44D79A982E0FD5ADDD62795
NVIDIA NVFlash 5.117.0.1
March 30th, 2012- 379.8 KB61A0BA96115D83DF626418CB1E059256
NVIDIA NVFlash 5.105
March 5th, 2012- 302.9 KB81FBF6EB8D4D2EF41EB15907D0C4F408
NVIDIA NVFlash 5.100.0.1
June 9th, 2011- 363.5 KBFC13F77797B0E55DFAEA9C0C8F9CC517
- nvflash_windows_5.100.0.1.zip
NVIDIA NVFlash 5.95.01
June 22nd, 2010- 356.0 KB738629F4235B76497613F221D9933215
NVIDIA NVFlash 5.95.0.1
June 22nd, 2010- 348.4 KBD6B7583572D4FDF7F50DF76A29B2241A
NVIDIA NVFlash 5.93.01
April 29th, 2010- 355.5 KBAEAD0ECB74FA9A510E33F7D78EBFF848
NVIDIA NVFlash 5.91.0.1
March 24th, 2010- 353.8 KBA1EEC3D472D8558CD8FD37814F1C4004
NVIDIA NVFlash 5.91.01
February 23rd, 2010- 350.0 KB588FCB17E06A1841E1A6ED59078287D9
NVIDIA NVFlash 5.88
October 15th, 2009- 338.0 KBE10CE00FFABFD452792021547CB78A80
NVIDIA NVFlash 5.85
September 11th, 2009- 337.3 KB6B7021CAC8C01B2FDF05C86EAC03BAA2
NVIDIA NVFlash 5.80
June 30th, 2009Flash Nvidia For Mac Drivers
- 340.2 KB87F0D551E606007C18AD4999A212E4A3
NVIDIA NVFlash 5.77
June 13th, 2009- 336.8 KB97AC5A144080EF205591FF75A459252D
NVIDIA NVFlash 5.72
October 31st, 2008- 286.6 KB3C791D506F9271DD6D717CE5FE927B3D
NVIDIA NVFlash 5.67
October 16th, 2008- 324.9 KB3D9DFA637213C4382FE3A35CD49DA020
NVIDIA NVFlash 5.67
July 3rd, 2008- 278.9 KBB1920EAB92BC4EC65243C1773340DE5A
NVIDIA NVFlash 5.57
November 2nd, 2007- 268.7 KBD07B43967CB61820F8557F0C69E2D6F2
NVIDIA NVFlash 5.33
September 9th, 2007- 252.9 KB94FFEB018A306A07F969CFC8804DA22A
NVIDIA NVFlash 5.18
September 9th, 2007- 191.1 KB9C6C6426197C4C2B20B477E1DFCC0896
NVIDIA NVFlash 5.13
October 17th, 2005- 192.0 KBCC9CC4B5A0156CD61D98E5B4D00E52D2
NVIDIA NVFlash is used to flash the graphics card BIOS on Turing, Pascal and all older NVIDIA cards.
NVFlash supports BIOS flashing on NVIDIA Graphics cards:
- GeForce RTX 2080 Ti, RTX 2080, RTX 2070, RTX 2060, GTX 1660, GTX 1650
- GeForce GTX 1080 Ti, GTX 1080, GTX 1070, GTX 1060, GTX 1050
- and many more, including BIOS flashing on older NVIDIA GPUs.
Before flashing, backup the current graphics card BIOS with: nvflash --save backup.rom
To update the graphics card GPU BIOS, use: nvflash bios.rom
If you want to flash a RTX Founders Edition board with a non-FE BIOS, use this modded version of NVFlash.