Note: Most of our customers either use a Linux VM or a native Linux host to flash the modules in production. Refer to Flashing Embedded Linux to Tegra Modules for more information about how to flash the Embedded Linux image to the target using a Linux host.
Warning: This is a legacy article and the information provided only works for legacy images. If you still want to use this legacy method, click the dropdown link below:
It is possible to flash Linux to a Colibri T20/T30 or Apalis T30 using a computer running Windows. This can be useful in a Production Environment where you already have Windows infrastructure.
C:\Tegra_Bootloader_Image_1.1_T20 │ Password.txt │ Tegra_Bootloader_Image_1.1_T20.zip │ Toradex Toradex Windows CE and Windows Embedded Compact EULA V1.2.pdf │ └───Tegra_Bootloader_Image_1.1_T20 │ nvflash.exe │ ├───T20_Linux │ ColibriT20_333_256_hsmmc.bct │ ColibriT20_333_256_V1_1_nand.bct │ ColibriT20_333_256_V1_2_nand.bct │ ColibriT20_333_512_hsmmc.bct │ ColibriT20_333_512_V1_1_nand.bct │ ColibriT20_333_512_V1_2_nand.bct │ configblock_256.bin │ configblock_512.bin │ fastboot.bin │ genext2fs │ genext3fs.sh │ i2c-dev-user.h │ lnx_hsmmc.cfg │ lnx_nand.cfg │ loader.nb0 │ mkbootimg │ u-boot-colibri-t20-r3+gitr16a9368a88a28252ea1daedc1df03ccc49ea5b22-r3.bin │ u-boot-hsmmc-colibri-t20-r3+gitr16a9368a88a28252ea1daedc1df03ccc49ea5b22-r3.bin │ u-boot-hsmmc.bin │ u-boot.bin │ uImage │ uImage-3.1.10+gitr01451bf9a6ac778b401173b341adb1e32688e73f-V2.0a2-colibri-t20-20121018205757.bin │ update.bat │ USR.yaffs2_256_V1_1 │ USR.yaffs2_512_V1_2 │ ├───Tegra_Bootloader&Image_1.2beta1_T20 │ Colibri240x240.bmz │ ColibriT20_333_nand.bct │ eboot.nb0 │ loader.nb0 │ nk_ce6.nb0 │ nk_ce7.nb0 │ readme.txt │ Splashscreen.bmz │ update.bat │ Update.exe │ wince_nand.cfg │ └───usbpcdriver_32_64 │ NvidiaUsb.inf │ ├───amd64 │ WdfCoInstaller01007.dll │ WinUSBCoInstaller.dll │ WUDFUpdate_01007.dll │ └───i386 WdfCoInstaller01007.dll WinUSBCoInstaller.dll WUDFUpdate_01007.dll
Start a cmd window and navigate into the T20_Linux folder.
Bring the module into recovery mode and execute update.bat with the parameters module type and ram size.
After the flashing the Colibri goes through reset and, if you do not keep it in recovery mode the module will boot Linux.
C:\Tegra_Bootloader&Image_1.1_T20\Tegra_Bootloader_Image_1.1_T20\T20_Linux>update.bat V1_2 512
Toradex NVFlash Update Script *********************************** 1 file(s) copied. Nvflash version 2.0 started rcm version 0X20001 System Information: chip name: t20 chip id: 0x20 major: 1 minor: 3 chip sku: 0x8 chip uid: 0x0428104041616557 macrovision: disabled hdcp: enabled sbk burned: false dk burned: false boot device: nand operating mode: 3 device config strap: 0 device config fuse: 4128 sdram config strap: 0 sending file: ColibriT20_333_512_V1_2_nand.bct - 4080/4080 bytes sent ColibriT20_333_512_V1_2_nand.bct sent successfully downloading bootloader -- load address: 0x8300000 entry point: 0x8300000 sending file: loader.nb0 | 454736/454736 bytes sent loader.nb0 sent successfully waiting for bootloader to initialize bootloader downloaded successfully setting device: 1 0 creating partition: BCT creating partition: PT creating partition: EBT creating partition: BMP creating partition: ENV creating partition: LNX creating partition: ARG creating partition: USR Formatting partition 2 BCT please wait.. done! Formatting partition 3 PT please wait.. done! Formatting partition 4 EBT please wait.. done! Formatting partition 5 BMP please wait.. done! Formatting partition 6 ENV please wait.. done! Formatting partition 7 LNX please wait.. done! Formatting partition 8 ARG please wait.. done! Formatting partition 13 USR please wait.. done! done! sending file: u-boot.bin - 559216/559216 bytes sent u-boot.bin sent successfully sending file: uImage / 4405068/4405068 bytes sent uImage sent successfully sending file: USR.yaffs2 - 260603904/260603904 bytes sent USR.yaffs2 sent successfully .
Alternatively don't pass parameters and interactively enter module type and ram size.
C:\Tegra_Bootloader&Image_1.1_T20\Tegra_Bootloader_Image_1.1_T20\T20_Linux>update.bat Toradex NVFlash Update Script *********************************** Do you like to program: 1) Moduletype V1.1 2) Moduletype V1.2 3) use SD Card (for V1.1 or V1.2) Please choose a number: 2 Modules RAM size is: 1) 256MB 2) 512MB Please choose a number: 1
...\Tegra_Bootloader&Image_1.2>nvflash.exe --bct ColibriT30_533_mmc.bct --setbct --bl uboot.bin --go Nvflash version 2.0 started rcm version 0X30001 System Information: chip name: unknown chip id: 0x30 major: 1 minor: 3 chip sku: 0xb1 chip uid: 0x015d4bdee7440c18 macrovision: disabled hdcp: enabled sbk burned: false dk burned: false boot device: emmc operating mode: 3 device config strap: 0 device config fuse: 0 sdram config strap: 0 sending file: ColibriT30_533_mmc.bct - 6128/6128 bytes sent ColibriT30_533_mmc.bct sent successfully downloading bootloader -- load address: 0x80108000 entry point: 0x80108000 sending file: uboot.bin | 410159/410159 bytes sent uboot.bin sent successfully waiting for bootloader to initialize bootloader failed NvError 0x0 command failure: bootloader download failed
U-Boot SPL 2014.10 (Nov 14 2014 - 19:05:20) U-Boot 2014.10 (Nov 14 2014 - 19:05:20) TEGRA30 Board: Toradex Apalis T30 I2C: ready DRAM: 2 GiB MMC: Tegra SD/MMC: 0, Tegra SD/MMC: 1, Tegra SD/MMC: 2 *** Warning - bad CRC, using default environment tegra-pcie: PCI regions: tegra-pcie: I/O: 0x2000000-0x2010000 tegra-pcie: non-prefetchable memory: 0x20000000-0x30000000 tegra-pcie: prefetchable memory: 0x30000000-0x40000000 tegra-pcie: 4x1, 1x2 configuration tegra-pcie: probing port 2, using 1 lanes In: serial Out: serial Err: serial Net: e1000: no NVM e1000#0 Hit any key to stop autoboot: 0 Apalis T30 #
Apalis T30 # run setupdate MMC: no card present ** Bad device mmc 1 ** reading flash_mmc.img 3514 bytes read in 14 ms (245.1 KiB/s) ## Executing script at 81000000 enter "run update" to update the entire module Apalis T30 # run update switch to partitions #1, OK mmc0(part 1) is current device MMC read: dev # 0, block # 8191, count 1 ... 1 blocks read: OK reading apalis_t30.img 427008 bytes read in 35 ms (11.6 MiB/s) switch to partitions #1, OK mmc0(part 1) is current device MMC write: dev # 0, block # 0, count 834 ... 834 blocks written: OK reading mbr.bin 512 bytes read in 10 ms (49.8 KiB/s) switch to partitions #0, OK mmc0(part 0) is current device MMC write: dev # 0, block # 0, count 1 ... 1 blocks written: OK reading boot.vfat 16777216 bytes read in 775 ms (20.6 MiB/s) switch to partitions #0, OK mmc0(part 0) is current device MMC write: dev # 0, block # 8192, count 32768 ... 32768 blocks written: OK reading root.ext3
Note: Instead of using the SD-card it is also possible to download the data over Ethernet by using TFTP (there was a Bug in the flash_eth.img scripts in the V2.3Beta3 release, use the update scripts from this Git repository)