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

Matthew Gorski
2017-05-01T23:45:42Z

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@chromium.org
> >
> >> >> >> >> wrote:
> >> >> >> >>>
> >> >> >> >>> Hi Matthew,
> >> >> >> >>>
> >> >> >> >>> On 1 May 2017 at 08:43, Matthew Gorski <matt.gorski@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/chromium-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
> >> >> >> >>
> >> >> >> >>
> >> >> >> >
> >> >> >> >
> >> >> >> >
> >> >> >
> >> >> >
> >> >
> >> >
> >
> >
>