* [U-Boot] Getting U-Boot running on Toradex Colibri T20 on Iris board
2013-11-25 10:00 ` Andrzej Telszewski
@ 2013-11-25 17:40 ` Stephen Warren
2013-11-25 21:14 ` Stefan Agner
1 sibling, 0 replies; 5+ messages in thread
From: Stephen Warren @ 2013-11-25 17:40 UTC (permalink / raw)
To: u-boot
On 11/25/2013 03:00 AM, Andrzej Telszewski wrote:
> 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:
...
> 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?
I would suggest flashing with an OSS flashing utility. See:
https://github.com/NVIDIA/tegra-uboot-flasher-scripts/blob/master/README-developer.txt
> 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?
See https://github.com/NVIDIA/tegra-uboot-scripts
> 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.
You're probably not passing a device tree to the kernel. A device tree
is now required on all Tegra boards in the upstream kernel.
You may get more information out if you enable DEBUG_LL and add
"earlyprintk" to the kernel command-line. When enabling DEBUG_LL, you'll
need to tell the kernel which UART to use for the DEBUG_LL output. You
can either hard-code this to the correct UART, or select an
"AUTO_ODMATA" option, which will obtain the UART ID at run-time from the
ODMDATA value, in which case you'll need to encode the correct UART ID
into ODMDATA, which I guess value 0x100c0000 must do, since that gets
you the early output you mentioned above.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [U-Boot] Getting U-Boot running on Toradex Colibri T20 on Iris board
2013-11-25 10:00 ` Andrzej Telszewski
2013-11-25 17:40 ` Stephen Warren
@ 2013-11-25 21:14 ` Stefan Agner
1 sibling, 0 replies; 5+ messages in thread
From: Stefan Agner @ 2013-11-25 21:14 UTC (permalink / raw)
To: u-boot
Hi Andrzej,
Am 2013-11-25 11:00, schrieb Andrzej Telszewski:
> 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?
Well, if it works, its not too bad :-).
However, the upstream BCT has the console set to UART too:
http://nv-tegra.nvidia.com/gitweb/?p=tools/tegra-cbootimage-configs.git;a=blob;f=tegra20/toradex/colibri-t20/colibri-t20_256_v12_nand.bct.cfg
> 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?
Yes there are not a lot defaults, you need to configure it by yourself.
Especially nvflash uses its own partition layout which is not support by
U-Boot directly. You need to set a matching partition layout using
mtdparts yourself too. The U-Boot environment is at 2 MB, which is in
the BCT configuration table downstream, you might want to alter that too
if you plan to use nvflash.
> 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:
This are the odmdata which are set upstream. It looks like the kernel
correctly uses them, since you get console output.
> 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.
The upstream kernel uses device tree, so you need to load the device
tree binary too. Use
$ make dtbs
to compile them, you can find the dtb in the folder
arch/arm/boot/dts/tegra20-iris-512.dtb. You need to load them too (from
the U-Boot command prompt):
usb start
setenv ipaddr 192.168.10.90
setenv serverip 192.168.10.3
setenv bootfile uImage
tftp ${kernel_addr_r}
setenv bootfile tegra20-iris-512.dtb
tftp ${fdt_addr_r}
setenv bootargs "console=ttyS0,115200n8 earlyprintk root=/dev/sda1 rw
rootdelay=5 ${mtdparts}"
bootm ${kernel_addr_r} - ${fdt_addr_r}
Just verified 3.12 on my setup, it works but I had to alter the sm2_reg
microvoltage to 3800000 in the device tree file.
--
Stefan
^ permalink raw reply [flat|nested] 5+ messages in thread