Booting T20 kernel 3.1.10_V2.6 with u-boot from BSP V2.1

I’m in the process of updating the BSP from V2.1 to V2.6 for the Colibri T20.
One requirement is to keep the old (V2.1) u-boot as it is.
In the V2.6 BSP I changed the generation of the zImage to a uImage as it was before, this has been done by modifying the machine.conf.

This seems to be working for most parts but fails to boot when trying to access the rfs, or at least that’s what I’m assuming from the moment the failure occurs.

u-boot and partition layout have been modified to support a dual-boot setup with a recovery os, that’s why there additional partitions. This works fine with the V2.1 kernel.

I suspect I missed something when changing from zImage to uImage but not sure what, any help would be appreciated.

Some relevant parts from the boot log:

[    0.000000] Kernel command line: vmalloc=128M usb_high_speed=1 ip=off root=/dev/mtdblock0 ro rootfstype=yaffs2 mtdparts=tegra_nand:229376K@180224K(MFS),3072K@0K(BCT),256K@4096K(PT),2048K@5376K(EBT),256K@8448K(BMP),2048K@9728K(ENV),8192K@12800K(LNX),256K@22272K(ARG),131072K@23808K(USR),256K@155904K(MSE),256K@157184K(MIP),256K@158464K(MCS),256K@159744K(MDF),256K@161024K(MDU),16384K@162304K(MLX),32768K@410624K(MAP),65536K@444416K(MWW) asix_mac=00:14:2d:49:69:18 no_console_suspend=1 console=tty1 console=ttyS0,115200n8 debug_uartport=lsport,0 mem=218M@0M fbmem=6M@218M nvmem=30M@226M video=tegrafb0:640x480-16@60


[    2.139869] 17 cmdlinepart partitions found on MTD device tegra_nand
[    2.156547] Creating 17 MTD partitions on "tegra_nand":
[    2.172187] 0x00000b000000-0x000019000000 : "MFS"
[    2.189364] 0x000000000000-0x000000300000 : "BCT"
[    2.205628] 0x000000400000-0x000000440000 : "PT"
[    2.221410] 0x000000540000-0x000000740000 : "EBT"
[    2.237471] 0x000000840000-0x000000880000 : "BMP"
[    2.253308] 0x000000980000-0x000000b80000 : "ENV"
[    2.268831] 0x000000c80000-0x000001480000 : "LNX"
[    2.284126] 0x0000015c0000-0x000001600000 : "ARG"
[    2.299216] 0x000001740000-0x000009740000 : "USR"
[    2.313946] 0x000009840000-0x000009880000 : "MSE"
[    2.328186] 0x000009980000-0x0000099c0000 : "MIP"
[    2.342179] 0x000009ac0000-0x000009b00000 : "MCS"
[    2.355779] 0x000009c00000-0x000009c40000 : "MDF"
[    2.369155] 0x000009d40000-0x000009d80000 : "MDU"
[    2.382218] 0x000009e80000-0x00000ae80000 : "MLX"
[    2.394926] 0x000019100000-0x00001b100000 : "MAP"
[    2.407456] 0x00001b200000-0x00001f200000 : "MWW"

7.125850] yaffs: dev is 32505856 name is "mtdblock0" ro
[    7.133395] yaffs: passed flags ""
[    7.672695] mmc1: host does not support reading read-only switch. assuming write-enable.
[    7.697533] mmc1: new high speed SDHC card at address 0001
[    7.710926] mmcblk0: mmc1:0001 N1BM1 7.53 GiB 
[    7.725530]  mmcblk0: p1 p2
[   11.138658] do_read_oob: dma completion timeout
[   11.150657] ------------[ cut here ]------------
[   11.162447] kernel BUG at /home/work/oe/build/out-glibc/work-shared/colibri-t20/kernel-source/drivers/mtd/devices/tegra_nand.c:371!
[   11.191688] Internal error: Oops - undefined instruction: 0 [#1] PREEMPT SMP
[   11.207227] Modules linked in:
[   11.218908] CPU: 0    Tainted: G        W    (3.1.10-V2.6b2+gbe10973 #1)
[   11.234721] PC is at tegra_nand_go+0x2c/0x7c
[   11.248200] LR is at tegra_nand_read_oob+0x520/0x714
[   11.262478] pc : [<c038b7a0>]    lr : [<c038ca38>]    psr: a0000013
[   11.262502] sp : cc07ba30  ip : cc07ba48  fp : cc07ba44
[   11.293238] r10: 00000000  r9 : fe308000  r8 : cc07bb40
[   11.307998] r7 : 00000000  r6 : c7662d40  r5 : 00000000  r4 : c74ec000
[   11.324088] r3 : e6850104  r2 : bc100002  r1 : a0000013  r0 : c74ec000
[   11.339956] Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
[   11.365332] Control: 10c5387d  Table: 0000404a  DAC: 00000015
[   11.380175] 
[   11.380185] PC: 0xc038b720:

Unfortunately as mentioned in the release notes older pre V2.4 BSPs differ significantly in various aspects of the raw NAND flash handling and I am afraid single parts (e.g. boot loader, kernel or root file system) are not compatible between pre/post V2.4 BSPs. If your intention is to just run the Linux kernel of our latest BSP you may use our latest sources and just revert the following commit.

Reverting the specified commit did the trick. I didn’t realize the changes in the nand code would break compatibility. Image deploy has been heavily modified so that part of the bsp isn’t used anyways. Thanks for your help, as always very quick.