[U-Boot] [PATCH 0/20] tegra: Expand Nyan-big support

Tomeu Vizoso
2017-05-02T06:40:17Z

On 2 May 2017 at 03:19, Matthew Gorski <matt.gorski@gmail.com> wrote:
> Seems if you change the FIT description from anything but
>
> "description = "Chrome OS kernel image with one or more FDT blobs";"
>
> the kernel wont load. So this issue has to be in the kernel-big.its
> <https://git.collabora.com/cgit/user/tomeu/u-boot.git/tree/kernel-big.its?h=nyan-big&id=35bcb399c0d78ba6a050cc775d467ee75ed06923>
>
> https://git.collabora.com/cgit/user/tomeu/u-boot.git/tree/kernel-big.its?h=nyan-big&id=35bcb399c0d78ba6a050cc775d467ee75ed06923
>
> We may just need a proper working .its for nyan

Hi Matthew,

it has been quite a while, but I remember that if we only tried
chainloading U-Boot was because the goal was to integrate these
machines in our LAVA lab, which to date doesn't support Depthcharge
(though I hope this will change once I get back some time).

I cannot remember how the correct position of the kernel within the
FIT image was calculated, but it definitely involved looking at the
depthcharge sources.

But I do think to remember that it was only an issue once U-Boot tried
to relocate itself.

I don't see any reason why my old branch wouldn't work today on your
machine, other than maybe your hw is a different revision with a
memory chip that wasn't supported back then? I also don't see why
mainline wouldn't work, provided you have that hack in the ITS.

I'm adding Sjoerd to CC in case he remembers.

Good luck,

Tomeu

> On Mon, May 1, 2017 at 7:45 PM, Matthew Gorski <matt.gorski@gmail.com>
> wrote:
>
>>
>>
>> On Mon, May 1, 2017 at 7:34 PM, Simon Glass <sjg@chromium.org> wrote:
>>
>>> Hi Matthew,
>>>
>>> On 1 May 2017 at 17:27, Matthew Gorski <matt.gorski@gmail.com> wrote:
>>> >
>>> >
>>> > On Mon, May 1, 2017 at 6:02 PM, Simon Glass <sjg@chromium.org> wrote:
>>> >>
>>> >> Hi Matthew,
>>> >>
>>> >> On 1 May 2017 at 14:30, Matthew Gorski <matt.gorski@gmail.com> wrote:
>>> >> >
>>> >> >
>>> >> > On Mon, May 1, 2017 at 2:36 PM, Simon Glass <sjg@chromium.org>
>>> wrote:
>>> >> >>
>>> >> >> Hi Matthew,
>>> >> >>
>>> >> >> On 1 May 2017 at 11:26, Matthew Gorski <matt.gorski@gmail.com>
>>> wrote:
>>> >> >> >
>>> >> >> >
>>> >> >> >
>>> >> >> > On Mon, May 1, 2017 at 1:03 PM, Simon Glass <sjg@chromium.org>
>>> wrote:
>>> >> >> >>
>>> >> >> >> Hi Matthew,
>>> >> >> >>
>>> >> >> >> On 1 May 2017 at 10:40, Matthew Gorski <matt.gorski@gmail.com>
>>> >> >> >> wrote:
>>> >> >> >> > Let me repost this to the bottom. New to the mailing list ;)
>>> >> >> >> >
>>> >> >> >> > I am using chained boot to test uboot as a FIT image so I I
>>> don't
>>> >> >> >> > have to
>>> >> >> >> > flash to spl flash. Does CONFIG_SPL_TEXT_BASE need to be
>>> adjusted
>>> >> >> >> > for
>>> >> >> >> > chained boot?
>>> >> >> >> >
>>> >> >> >> > I am using instructions to boot Linux for Tegra from
>>> sdcard/USB in
>>> >> >> >> > developer
>>> >> >> >> > mode. I can boot L4T fine with kernel v3.10.
>>> >> >> >> >
>>> >> >> >> > What mainline branch should I try?
>>> >> >> >>
>>> >> >> >> There's only one mainline, here:
>>> >> >> >> http://git.denx.de/?p=u-boot.git;a=summary
>>> >> >> >>
>>> >> >> >> There are various custodian branches but I don't believe the
>>> tegra
>>> >> >> >> one
>>> >> >> >> has anything different from mainline at present.
>>> >> >> >>
>>> >> >> >> - Simon
>>> >> >> >>
>>> >> >> > I will give mainline a try with:
>>> >> >> >
>>> >> >> > CONFIG_SYS_TEXT_BASE 0x8010E000
>>> >> >> > and
>>> >> >> >
>>> >> >> > CONFIG_SPL_TEXT_BASE 0x80108000
>>> >> >> >
>>> >> >> >
>>> >> >> > I know I will also need:
>>> >> >> >
>>> >> >> >
>>> >> >> > CONFIG_DISPLAY_PORT=y
>>> >> >>
>>> >> >> Do you mean CONFIG_DISPLAY? If so, it is already defined.
>>> >> >>
>>> >> >> > CONFIG_VIDEO_TEGRA124=y
>>> >> >>
>>> >> >> That is defined in mainline
>>> >> >>
>>> >> >> >
>>> >> >> >
>>> >> >> > for the console to display command prompt.
>>> >> >> >
>>> >> >> >
>>> >> >> > The FIT config I am using is from
>>> >> >> >
>>> >> >> > here:https://git.collabora.com/cgit/user/tomeu/u-boot.git/
>>> commit/?h=nyan-big
>>> >> >> >
>>> >> >> >
>>> >> >> > Do I need to adjust:
>>> >> >> >
>>> >> >> >
>>> >> >> > load = <0>;
>>> >> >> > entry = <0>;
>>> >> >> >
>>> >> >> >
>>> >> >> > /dts-v1/;
>>> >> >> >
>>> >> >> > / {
>>> >> >> > description = "U-Boot + FDT --------- THIS PADDING IS NEEDED
>>> SO
>>> >> >> > THE
>>> >> >> > IMAGE STARTS AT THE RIGHT OFFSET";
>>> >> >>
>>> >> >> Perhaps you need to adjust this? How was the length of it
>>> calcualted?
>>> >> >
>>> >> >
>>> >> > I am really not sure how the padding was calculated. I just assumed
>>> >> > this
>>> >> > kernel-big.its FIT config was correct for nyan_big. I will try
>>> using my
>>> >> > working linux kernel fit config.
>>> >> >>
>>> >> >>
>>> >> >> > #address-cells = <1>;
>>> >> >> > images {
>>> >> >> > kernel at 1{
>>> >> >> > description = "kernel";
>>> >> >> > data = /incbin/("u-boot-dtb.bin");
>>> >> >> > type = "kernel_noload";
>>> >> >> > arch = "arm";
>>> >> >> > os = "linux";
>>> >> >> > compression = "none";
>>> >> >> > load = <0>;
>>> >> >> > entry = <0>;
>>> >> >> > };
>>> >> >> > fdt at 1{
>>> >> >> > description = "tegra124-nyan-big.dtb";
>>> >> >> > data = /incbin/("dts/dt.dtb");
>>> >> >> > type = "flat_dt";
>>> >> >> > arch = "arm";
>>> >> >> > compression = "none";
>>> >> >> > hash at 1{
>>> >> >> > algo = "sha1";
>>> >> >> > };
>>> >> >> > };
>>> >> >> > };
>>> >> >> > configurations {
>>> >> >> > default = "conf at 1";
>>> >> >> > conf at 1{
>>> >> >> > kernel = "kernel at 1";
>>> >> >> > fdt = "fdt at 1";
>>> >> >> > };
>>> >> >> > };
>>> >> >> > };
>>> >> >> >
>>> >> >> >
>>> >> >> > please let me know if I should also adjust the SPL CONFIG even
>>> though
>>> >> >> > I
>>> >> >> > am chainbooting uboot:
>>> >> >> >
>>> >> >> >
>>> >> >> >
>>> >> >> > https://www.chromium.org/chromium-os/firmware-porting-guide/
>>> using-nv-u-boot-on-the-samsung-arm-chromebook#TOC-Installing
>>> -nv-U-Boot-chained-U-Boot-method-
>>> >> >>
>>> >> >> This is exynos, where we booted directly into U-Boot. Actually I'm
>>> >> >> wondering we should boot directly into U-Boot (instead of SPL) on
>>> nyan
>>> >> >> also. Perhaps someone at collabora would know? Did you search the
>>> >> >> mailing list?
>>> >> >>
>>> >> >> Regards,
>>> >> >> Simon
>>> >> >
>>> >> >
>>> >> > I have not searched the mailing list. What should I search for?
>>> >> > Booting
>>> >> > nyan to u-boot directly bypassing SPL?
>>> >>
>>> >> Here are two subjects to search for:
>>> >>
>>> >> Veyron-speedy u-boot
>>> >> [PATCH 0/20] tegra: Expand Nyan-big support
>>> >>
>>> >> Regards,
>>> >> Simon
>>> >
>>> >
>>> > Very odd if I do not use "#address-cells = <1>;" the display flashes and
>>> > reboots into recovery but if I do use #address-cells = <1>; in my FIT
>>> config
>>> > I get a blank screen
>>> > so something is working when not using the padding.
>>>
>>> If you figure out where u-boot-dtb.bin needs to start by looking at
>>> depthcharge or where the kernel starts, then you can figure out how
>>> long the padding needs to be at the start of the FIT. Rather than
>>> guessing...!
>>>
>>> - Simon
>>>
>>> Okay so depthcharge starts at 0x81000000 from here:
>> https://chromium.googlesource.com/chromiumos/platform/
>> depthcharge/+/master/board/nyan_big/defconfig#11
>>
>> In my System.map for u-boot after building says the start is:
>> 81000100 T __image_copy_start
>> 81000100 T _start
>>
>> Hence the define CONFIG_SYS_TEXT_BASE 0x81000100
>>
>> So you say use 0x81000000 as the CONFIG_SYS_TEXT_BASE and not 0x81000100
>> correct?
>>
>>> >
>>> > /dts-v1/;
>>> >
>>> > / {
>>> > description = "Chrome OS nyan u-boot chain boot method";
>>> > #address-cells = <1>;
>>> > images {
>>> > kernel at 1{
>>> >
>>> >>
>>> >> >>
>>> >> >>
>>> >> >> >>
>>> >> >> >> >
>>> >>
>>> >> >> >> > On May 1, 2017 12:11 PM, "Matthew Gorski" <
>>> matt.gorski at gmail.com>
>>> >> >> >> > wrote:
>>> >> >> >> >
>>> >> >> >> > On May 1, 2017 11:45 AM, "Simon Glass" <sjg@chromium.org>
>>> wrote:
>>> >> >> >> >
>>> >> >> >> > Hi Matthew,
>>> >> >> >> >
>>> >> >> >> > On 1 May 2017 at 09:37, Matthew Gorski <matt.gorski@gmail.com>
>>> >> >> >> > wrote:
>>> >> >> >> >> Thanks for the reply Simon.
>>> >> >> >> >>
>>> >> >> >> >> I have been trying to find the System.map for depthcharge to
>>> see
>>> >> >> >> >> the
>>> >> >> >> >> kernel
>>> >> >> >> >> load address but I am unable to find anything. I have tried
>>> >> >> >> >> multiple
>>> >> >> >> >> CONFIG_SYS_TEXT_BASE settings with no luck.
>>> >> >> >> >
>>> >> >> >> > How did you choose what to use? Also note that Tegra uses SPL
>>> to
>>> >> >> >> > start, so you may need to adjust CONFIG_SPL_TEXT_BASE instead.
>>> >> >> >> >
>>> >> >> >> >>
>>> >> >> >> >> I am creating my sdcard with a standard linux (Linux for
>>> Tegra)
>>> >> >> >> >> rootfs:
>>> >> >> >> >
>>> >> >> >> > Did these instructions come from a web site somewhere?
>>> >> >> >> >
>>> >> >> >> >>
>>> >> >> >> >> Partition an SD card
>>> >> >> >> >>
>>> >> >> >> >> sudo cgpt create <MMC BLOCK DEVICE>
>>> >> >> >> >> sudo cgpt add -b 34 -s 32768 -P 1 -S 1 -t kernel <MMC BLOCK
>>> >> >> >> >> DEVICE>
>>> >> >> >> >> # 16
>>> >> >> >> >> MB
>>> >> >> >> >> kernel image partition
>>> >> >> >> >> sudo cgpt add -b 32802 -s <ROOT PARTITION SIZE in 512B
>>> sectors>
>>> >> >> >> >> -t
>>> >> >> >> >> rootfs
>>> >> >> >> >> <MMC BLOCK DEVICE>
>>> >> >> >> >>
>>> >> >> >> >> cgpt doesn't seem to create a protective MBR. If one is not
>>> >> >> >> >> already
>>> >> >> >> >> in
>>> >> >> >> >> place, it can be created with:
>>> >> >> >> >>
>>> >> >> >> >> sudo gdisk <MMC BLOCK DEVICE> # and enter command w
>>> >> >> >> >>
>>> >> >> >> >> Copy data to the SD card
>>> >> >> >> >>
>>> >> >> >> >> sudo dd if=./kernelpart.bin of=<MMC BLOCK DEVICE>p1
>>> >> >> >> >> sudo mkfs.ext4 <MMC BLOCK DEVICE>p2
>>> >> >> >> >> sudo mount <MMC BLOCK DEVICE>p2 /mnt/
>>> >> >> >> >>
>>> >> >> >> >
>>> >> >> >> > How are you actually making it boot? Is this in dev mode with
>>> USB
>>> >> >> >> > boot
>>> >> >> >> > enabled and pressing Ctrl-U?
>>> >> >> >> >
>>> >> >> >> > Also, as this is a mailing list, please avoid top-posting.
>>> >> >> >> >
>>> >> >> >> > - Simon
>>> >> >> >> >
>>> >> >> >> > I am using chained boot to test uboot as a FIT image so I I
>>> don't
>>> >> >> >> > have to
>>> >> >> >> > flash to spl flash. Does CONFIG_SPL_TEXT_BASE need to be
>>> adjusted
>>> >> >> >> > for
>>> >> >> >> > chained boot?
>>> >> >> >> >
>>> >> >> >> > I am using instructions to boot Linux for Tegra from
>>> sdcard/USB in
>>> >> >> >> > developer
>>> >> >> >> > mode. I can boot L4T fine with kernel v3.10.
>>> >> >> >> >
>>> >> >> >> > What mainline branch should I try?
>>> >> >> >> >
>>> >> >> >> >
>>> >> >> >> >>
>>> >> >> >> >> On Mon, May 1, 2017 at 11:14 AM, Simon Glass <
>>> sjg at chromium.org>
>>> >> >> >> >> wrote:
>>> >> >> >> >>>
>>> >> >> >> >>> Hi Matthew,
>>> >> >> >> >>>
>>> >> >> >> >>> On 1 May 2017 at 08:43, Matthew Gorski <
>>> matt.gorski at gmail.com>
>>> >> >> >> >>> wrote:
>>> >> >> >> >>> > I am porting u-boot to nyan_big and need some input. I
>>> have
>>> >> >> >> >>> > been
>>> >> >> >> >>> > searching
>>> >> >> >> >>> > high and low and found this thread here: [U-Boot] [PATCH
>>> 0/20]
>>> >> >> >> >>> > tegra:
>>> >> >> >> >>> > Expand
>>> >> >> >> >>> > Nyan-big support
>>> >> >> >> >>> >
>>> >> >> >> >>> > https://lists.denx.de/pipermail/u-boot/2015-March/209530.
>>> html
>>> >> >> >> >>> >
>>> >> >> >> >>> > I have tried to build u-boot with the branch here:
>>> >> >> >> >>> >
>>> >> >> >> >>> >
>>> >> >> >> >>> >
>>> >> >> >> >>> > https://git.collabora.com/cgit
>>> /user/tomeu/u-boot.git/commit/?h=nyan-big
>>> >> >> >> >>> >
>>> >> >> >> >>> > and also the official chromium next branch
>>> >> >> >> >>>
>>> >> >> >> >>> Have you tried mainline U-Boot? It already supports nyan-big.
>>> >> >> >> >>> I'm
>>> >> >> >> >>> not
>>> >> >> >> >>> sure about the situation with the downstream trees.
>>> >> >> >> >>>
>>> >> >> >> >>> >
>>> >> >> >> >>> > I followed building instructions here:
>>> >> >> >> >>> >
>>> >> >> >> >>> >
>>> >> >> >> >>> >
>>> >> >> >> >>> >
>>> >> >> >> >>> > https://www.chromium.org/chrom
>>> ium-os/firmware-porting-guide/using-nv-u-boot-on-the-samsung
>>> -arm-chromebook
>>> >> >> >> >>> >
>>> >> >> >> >>> > I build with these commands:
>>> >> >> >> >>> >
>>> >> >> >> >>> > mkimage -e 0x81000100 -a 0x81000100 -f kernel-big.its
>>> >> >> >> >>> > kernel-u-boot
>>> >> >> >> >>> >
>>> >> >> >> >>> > (with and without the load address setting)
>>> >> >> >> >>> >
>>> >> >> >> >>> > vbutil_kernel --arch arm --pack kernel.bin --keyblock
>>> >> >> >> >>> > /usr/share/vboot/devkeys/kernel.keyblock --signprivate
>>> >> >> >> >>> > /usr/share/vboot/devkeys/kernel_data_key.vbprivk
>>> --version 1
>>> >> >> >> >>> > --config
>>> >> >> >> >>> > dummy.txt --vmlinuz kernel-u-boot --bootloader dummy.txt
>>> >> >> >> >>> >
>>> >> >> >> >>> > I have had numerous failed attempts to boot uboot from
>>> sdcard
>>> >> >> >> >>> > mmcblk1p1
>>> >> >> >> >>> >
>>> >> >> >> >>> > Any help is appreciated I have only gotten a blank screen
>>> >> >> >> >>> > after
>>> >> >> >> >>> > weeks
>>> >> >> >> >>> > of
>>> >> >> >> >>> > flashing. I can boot custom v3.10 kernels so I assume I am
>>> >> >> >> >>> > using
>>> >> >> >> >>> > the
>>> >> >> >> >>> > correct building procedure. Thanks in advance for help
>>> from
>>> >> >> >> >>> > the
>>> >> >> >> >>> > u-boot
>>> >> >> >> >>> > community.
>>> >> >> >> >>>
>>> >> >> >> >>> It is possible that it needs a particular address due to
>>> >> >> >> >>> limitations
>>> >> >> >> >>> in the FIT support on Nyan. I'm not sure what it is but
>>> might be
>>> >> >> >> >>> able
>>> >> >> >> >>> to take a look at some point.
>>> >> >> >> >>>
>>> >> >> >> >>> How are you building your SD card? Are you following some
>>> >> >> >> >>> instructions
>>> >> >> >> >>> from somewhere?
>>> >> >> >> >>>
>>> >> >> >> >>> Regards,
>>> >> >> >> >>> Simon
>>> >> >> >> >>
>>> >> >> >> >>
>>> >> >> >> >
>>> >> >> >> >
>>> >> >> >> >
>>> >> >> >
>>> >> >> >
>>> >> >
>>> >> >
>>> >
>>> >
>>>
>>
>>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot