[U-Boot] Getting U-Boot running on Toradex Colibri T20 on Iris board

Andrzej Telszewski
2013-11-25T10:00:55Z

On 09/26/2013 10:42 PM, Stefan Agner wrote:
> Am 2013-08-07 10:15, schrieb Andrzej Telszewski:
>> Hi,
>>
>> I'm trying to get the U-Boot running on the Iris board with the
>> Toradex Colibri T20 module. I was able to flash the U-Boot and it
>> starts but then immediately stops with the only message being:
>>
>> U-Boot 2013.07 (Aug 06 2013 - 17:47:43)
>>
>> TEGRA20
>> Board: Toradex Colibri T20 on Iris
>> DRAM:
>>
>>
>> The Colibri T20 board used is:
>> 256MB RAM
>> V1.2A
>>
>> Could you please give me any idea what I might be doing wrong?
> Latest U-Boot worked on my Setup (Colibri T20 on the Evaluation Board).
> Although, I use the 512MiB variant:
>
> TEGRA20
> Board: Toradex Colibri T20 on Iris
> DRAM: 512 MiB
>
> So it must be DRAM related. RAM will be initialized according to ODM
> data, see query_sdram_size in ./arch/arm/cpu/tegra-common/board.c. How
> do you flash u-boot? Using tegrarcm or nvflash? Can you verify your ODM
> data?

Hi Stefan,

You are correct, the problem with the U-Boot not starting was the value
of the odmdata.

I was flashing the chip with the following:
# nvflash --bct colibri-t20-256-1.2-nand.bct --setbct --configfile
nand.cfg --odmdata 0x1 --create --bl loader.nb0 --go

and when I changed it to:
# nvflash --bct colibri-t20-256-1.2-nand.bct --setbct --configfile
nand.cfg --odmdata 0x10000000 --create --bl loader.nb0 --go

the U-Boot has started correctly.

BTW, can you confirm that the nvflash command line switches I'm using
are correct and also that the new odmdata value (0x10000000) is a
correct one?

My next issue is with booting the kernel, so I appreciate if you can
also help me with it. I noticed that the U-Boot (version 2013.10)
environment for the T20/Iris is quite bare and it looks for the boot
scripts (e.g. boot.scr.uimg or boot.scr), which I presume sets up the
whole environment before the actual booting. Do you know if I can find
the scripts somewhere or do I need to write them myself?

Nonetheless, I have tried to boot the kernel with the bare environment,
but had no bigger luck. I have compiled the kernel version 3.12.1 with
the "tegra_defconfig" and LOADADDR equal to 0x00008000. I used the tftp
to transfer the kernel image to the board and tried to boot it, but the
only thing I get is the "Starting kernel ...". I believe the kernel
might be booting, but does not give any feedback on the console and what
is more, immediately after the boot command, the ethernet seems to be
disabled, because the LEDs on the connector are switched off.

The reason I think the kernel boots to some stage is that, if I change
the odmdata to 0x100C0000, I got the message:
Error: unrecognized/unsupported machine ID (r1 = 0x00000000).

Available machine support:

ID (hex) NAME
ffffffff Generic DT based system
ffffffff NVIDIA Tegra SoC (Flattened Device Tree)

Please check your kernel config and/or bootloader.

So I guess the kernel is actually doing at least some initial tasks.

Any help appreciated!

--
Best regards,
Andrzej Telszewski
Embedded Systems Developer
Versa Design S.L.
phone: +34 633 535 308
e-mail: atelszewski at versades.com