Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 02 May 2014 07:27:24 -0600
From:      Ian Lepore <ian@FreeBSD.org>
To:        "Sulev-Madis Silber (ketas)" <madis555@hot.ee>
Cc:        FreeBSD ARM <freebsd-arm@FreeBSD.org>
Subject:   Re: FreeBSD-10-STABLE hangs when booting from BeagleBone Black eMMC
Message-ID:  <1399037244.22079.167.camel@revolution.hippie.lan>
In-Reply-To: <53635ED5.6060508@hot.ee>
References:  <CADH-AwHvaVqycykONkzRsj7oD3xSi8hszvc_Wf4obC=Y_qPiaQ@mail.gmail.com> <1398618984.61646.165.camel@revolution.hippie.lan> <CADH-AwE%2B5=A4aiqbTYqor1Any1JGNhz4LHOJwfyykYU92UpirQ@mail.gmail.com> <1398624759.61646.174.camel@revolution.hippie.lan> <CADH-AwG%2BsaqXO4FYG65WMOuFyDzjbhF=a=-p3Y3En3zbcgyd6A@mail.gmail.com> <1398648505.61646.189.camel@revolution.hippie.lan> <CAD44qMX%2BhoeZ6yBD0v52xfoo5CXiUHgMz9qLa-=qhGYhhPUt1Q@mail.gmail.com> <CADH-AwEHRKSx11yjC5%2BkmYA4Q3Oh4VWpp-pr31eWwNc0bf0vUw@mail.gmail.com> <1398732508.61646.245.camel@revolution.hippie.lan> <CADH-AwHQjieXo-WgHkrc2wxwELwvrkg2spYucsZzRegvx9wWsA@mail.gmail.com> <1398784968.22079.13.camel@revolution.hippie.lan> <53635ED5.6060508@hot.ee>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 2014-05-02 at 12:01 +0300, Sulev-Madis Silber (ketas) wrote:
> On 2014-04-29 18:22, Ian Lepore wrote:
> > This may be the problem -- ubldr's behavior for finding and using dtb
> > files is more complex than it used to be.  It may be that it used to
> > claim to find and use the u-boot dtb, but it was really using a static
> > dtb compiled into the kernel.  Now if u-boot provides a valid dtb it'll
> > actually get used, even if kernel has a static dtb compiled in.
> > 
> > If you remove the u-boot env var 'fdtaddr' then it will fall back to
> > using a compiled-in dtb file instead of a loaded one.
> > 
> > What I've been doing these days is installing my dtb files
> > in /boot/modules or /boot/kernel and then setting the dtb file name in a
> > u-boot env var named fdtfile.  That makes ubldr find and load the named
> > file in the place it finds the kernel.
> > 
> > -- Ian
> 
> 
> Nice, good suggestion. Now I have this "hack" in bb-uenv.txt:
> 
> 
> ------------------------------------------------------
> uenvcmd=echo "[environment] delete fdtaddr"; env delete fdtaddr; setenv
> loadfdt ''; setenv fdtfile "/boot/kernel/${fdtfile}"; echo
> "[environment] loadfdt=${loadfdt}"; echo "[environment] fdtfile=${fdtfile}"
> ------------------------------------------------------
> 

Just use the plain filename, not /boot/kernel/filename.  ubldr knows
where to look for them.

> 
> Not sure where FDT file should go? First I though maybe /boot/fdt...
> then /boot/kernel seemed good place...
> 

Right now it searches for dtb files the same way as for modules, so it
will look in /boot/kernel and /boot/modules.  There's been some talk of
adding a /boot/dtb directory as the first place to search, and having
the build system never automatically install anything to there.  That
gives users somewhere to put a customized dtb file that won't get wiped
out every time a new kernel is installed.

> 
> Also, maybe we should use this way of loading FDT in every platform it's
> possible? No static FDT in kernel too. Ruins NFS boot, however...

Yeah, when I started down this path my vision was a single IMX6 image
that could boot on any imx6-based system because it comes with a
collection of dtb files.  The user just has to choose the right dtb file
on the first boot by setting an env var.  That would also require a
pretty flexible u-boot, which may or may not be possible.

-- Ian





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1399037244.22079.167.camel>