Flashing T20 with Toradex Linux 2.6

I am trying to flash T20 Linux 2.6 and I have run into some problems.


My hardware:

Colibri Evaluataion Board v3.1A

Colibri T20 512MB v1.2A

MMC SDHC 8GB card


These are the steps I followed as per http://developer.toradex.com/knowledge-base/flashing-linux-on-tegra-modules#V24_Beta_1_and_later_BSPs:


1) Format the SD card to VFAT:

adwait@lenovo:~$sudo umount /dev/mmcblk0p1
adwait@lenovo:~$sudo mkdosfs /dev/mmcblk0 -F 32 -I -n 8GBMMC
adwait@lenovo:~$sudo mount /dev/mmcblk0 /media/adwait


2) Get and extract the Colibri_T20_LinuxImageV2.6.1Beta1_20160929.tar.bz2

adwait@lenovo:~$sudo tar xfj Colibri_T20_LinuxImageV2.6.1Beta1_20160929.tar.bz2


3) Execute update.sh (write to memory card)

adwait@adwait-Lenovo-ideapad-100-15IBD:~$ cd Colibri_T20_LinuxImageV2.6.1/
adwait@adwait-Lenovo-ideapad-100-15IBD:~/Colibri_T20_LinuxImageV2.6.1$ sudo ./update.sh -m 3 -r 512 -v V1_2 -o /media/adwait/8GBMMC
Colibri T20 rootfs specified
Image file colibri_t20-256-v11-nand.img has been successfully generated!
Image file colibri_t20-256-v12-nand.img has been successfully generated!
Image file colibri_t20-512-v11-nand.img has been successfully generated!
Image file colibri_t20-512-v12-nand.img has been successfully generated!
mkfs.ubifs
	root:         rootfs/
	min_io_size:  4096
	leb_size:     253952
	max_leb_cnt:  4084
	output:       colibri-t20_bin/ubifs_248KiB.img
	jrn_size:     8388608
	reserved:     0
	compr:        lzo
	keyhash:      r5
	fanout:       8
	orph_lebs:    1
	space_fixup:  1
	super lebs:   1
	master lebs:  2
	log_lebs:     4
	lpt_lebs:     2
	orph_lebs:    1
	main_lebs:    627
	gc lebs:      1
	index lebs:   12
	leb_cnt:      637
	UUID:         7BCA68BB-60A1-4435-AB29-359FB1D6F99A
Success!
mkfs.ubifs
	root:         rootfs/
	min_io_size:  4096
	leb_size:     516096
	max_leb_cnt:  4084
	output:       colibri-t20_bin/ubifs_504KiB.img
	jrn_size:     8388608
	reserved:     0
	compr:        lzo
	keyhash:      r5
	fanout:       8
	orph_lebs:    1
	space_fixup:  1
	super lebs:   1
	master lebs:  2
	log_lebs:     4
	lpt_lebs:     2
	orph_lebs:    1
	main_lebs:    309
	gc lebs:      1
	index lebs:   6
	leb_cnt:      319
	UUID:         2595C06B-384D-47C4-BD27-6145C58FEA7C
Success!

UBI image of root file system generated, copying data to target folder...
Successfully copied data to target folder.

To flash the Apalis/Colibri T20/T30/TK1 module a running U-Boot is required. Boot
the module to the U-Boot prompt and

insert the SD card, USB flash drive or when using TFTP connect Ethernet only
and enter:
'run setupdate'

then to update all components enter:
'run update'

Alternatively, to update U-Boot enter:
'run update_uboot'
to update a component stored in UBI enter:
'run prepare_ubi' (for Colibri T20)
followed by one of:
'run update_kernel'
'run update_fdt' (for device tree enabled kernels)
'run update_rootfs'


If you don't have a working U-Boot anymore, connect your PC to the module's USB
client port, bring the module into the recovery mode and start the update.sh
script with the -d option. This will copy U-Boot into the module's RAM and
execute it.
adwait@lenovo:~/Colibri_T20_LinuxImageV2.6.1$ 
  1. Put the T20 in recovery mode, insert the SD card in Eval. Board, Connect the recovery USB to host and the debug USB to host also. This is my lsusb at this point:

    adwait@lenovo:~$ lsusb
    Bus 001 Device 002: ID 8087:8001 Intel Corp.
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 002 Device 005: ID 0bda:b728 Realtek Semiconductor Corp.
    Bus 002 Device 004: ID 05e3:0510 Genesys Logic, Inc.
    Bus 002 Device 003: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
    Bus 002 Device 023: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC
    Bus 002 Device 024: ID 0955:7820 NVidia Corp. Tegra 2 AC100 developer mode
    Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


5) Next I use the update.sh script to directly load U-Boot into the T20 memory and execute

$ sudo ./update.sh -m 3 -r 512 -v V1_2 -d
Colibri T20 rootfs specified

bct file: ../colibri-t20_bin/colibri_t20-512-v12-nand.bct
booloader file: ../colibri-t20_bin/u-boot-dtb-tegra.bin
load addr 0x80108000
entry addr 0x80108000
device id: 0x7820
uid:  0x0450714743015617
RCM version: 2.1
downloading miniloader to target at address 0x40008000 (132976 bytes)...
miniloader downloaded successfully
Chip UID:                0x00000000000000000450714743015617
Chip ID:                 0x20
Chip ID Major Version:   0x1
Chip ID Minor Version:   0x4
Chip SKU:                0x8 (t20)
Boot ROM Version:        0x1
Boot Device:             0x1 (NAND)
Operating Mode:          0x3 (developer mode)
Device Config Strap:     0x0
Device Config Fuse:      0x20
SDRAM Config Strap:      0x0
sending file: ../colibri-t20_bin/colibri_t20-512-v12-nand.bct
- 4080/4080 bytes sent
../colibri-t20_bin/colibri_t20-512-v12-nand.bct sent successfully
sending file: ../colibri-t20_bin/u-boot-dtb-tegra.bin
\ 636792/636792 bytes sent
../colibri-t20_bin/u-boot-dtb-tegra.bin sent successfully


6) At this point, my serial output is:

U-Boot SPL 2015.04 (Sep 29 2016 - 23:02:42)


U-Boot 2015.04 (Sep 29 2016 - 23:02:42)

TEGRA20
DRAM:  512 MiB
NAND:  1024 MiB
MMC:   Tegra SD/MMC: 0
*** Warning - bad CRC, using default environment

In:    serial
Out:   lcd
Err:   lcd
Missing Toradex config block
Model: Toradex Colibri T20 512MB V1.2A
USB recovery mode, disabled autoboot
Net:   Net Initialization Skipped
No ethernet found.
Colibri T20 #


7) Now when I try to ‘run setupdate’ it gives following message:

Colibri T20 # run setupdate
** Invalid partition 1 **
starting USB...
USB0:   USB EHCI 1.00
scanning bus 0 for devices... 1 USB Device(s) found
USB1:   USB EHCI 1.00
scanning bus 1 for devices... 1 USB Device(s) found
USB2:   USB EHCI 1.00
scanning bus 2 for devices... 2 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
       scanning usb for ethernet devices... 
Warning: asx0 using MAC address from net device
1 Ethernet Device(s) found
** Bad device usb 0 **
Waiting for Ethernet connection... unable to connect.
Colibri T20 # 




This process has rendered my setup unusable till I can fix it.
Can someone please go through this post and tell me what I might have done incorrectly?
I need to get this board up as soon as possible, so all help is greatly appreciated.

  1. Format the SD card to VFAT:

The issue actually stems from that very first step. You formatted your SD card without any partition table. Our U-Boot scripts so far expect a regularly partitioned SD card with the update files stored on the primary partition thereof. Please partition/re-format your SD card and try again.

That was never specified in any documentation that I have read.

So, I partitioned the SDHC card as you suggested (using gparted) and carried out the rest of the steps as before. It worked perfectly! Thank you very much, you saved my day.

I admit our documentation being rather lacking on this detail and while most SD cards I have seen shipping do usually come pre-partitioned this is definitely not the only way one may go about using SD cards.