Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 11 Feb 2017 11:08:28 -0800
From:      "Tony Hain" <tony@tndh.net>
To:        "'Oleksandr Tymoshenko'" <gonzo@bluezbox.com>
Cc:        <freebsd-arm@freebsd.org>
Subject:   RE: Questions about BBB/BBG dtb names vs. content
Message-ID:  <0f3901d2849a$3ac2ca40$b0485ec0$@tndh.net>
In-Reply-To: <20170211015231.GA56071@bluezbox.com>
References:  <0ee901d28406$052ed070$0f8c7150$@tndh.net> <20170211015231.GA56071@bluezbox.com>

next in thread | previous in thread | raw e-mail | index | archive | help
> -----Original Message-----
> From: Oleksandr Tymoshenko [mailto:gonzo@bluezbox.com]
> Sent: Friday, February 10, 2017 5:53 PM
> To: Tony Hain
> Cc: freebsd-arm@freebsd.org
> Subject: Re: Questions about BBB/BBG dtb names vs. content
> 
> Tony Hain (tony@tndh.net) wrote:
> > When I built 12 current the other day, I found some confusing dtb file
> > names.
> > First there were identical files :
> > am335x-bone.dtb                 beaglebone.dtb
> > am335x-boneblack.dtb       beaglebone-black.dtb
> >
> > But there was not a matching one for green. Is that intentional?
> > am335x-bonegreen.dtb
> >
> > Then the content didn't match the names:
> > am335x-boneblack.dtb       --
> > compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx";
> >
> > am335x-bonegreen.dtb        --
> > compatible = "ti,am335x-bone-green", "ti,am335x-bone-black",
> > "ti,am335x-bone", "ti,am33xx";
> >
> > Aren't the strings in the compatible line supposed to match the file
names?
> > Is there a reason there are identical files in the dtb path rather
> > than a link?
> > Is the fdt_file=""  line required in loader.conf if the am335x file
> > name exists?
> >
> > I have the BBB running with fdt_file="beaglebone-black.dtb", and the
> > changes to it for turning on uart1. Should I have made the changes to
> > the am335x file instead, or should I create the beaglebone-green.dtb
file
> for the BBG?
> 
> beaglebone*dtb is FreeBSD-specific DTB names, dts files for them were
> created in early days of FDT support. am335x-*dtb are upstream names,
> Linux and U-Boot use them as standard names.
> 
> U-Boot can detect type of board in run-time and set fdt_file env variable
> based on that type. Until recently we had sysutils/u-boot-beaglebone port
> with custom FreeBSD-specific patch where this autodetect logic used
> beaglebone*dtb names. Recently it was converted to being slave port to
> sysutils/u-boot-master as a part of U-Boot ports unification effort.
During this
> conversion aforementioned patch was deleted so now u-boot operates with
> am335x-*.dtb names. To be backward-compatible with previously built
> systems, that still  refer to old-style names, we now create links,
> beaglebone.dtb is a link to am335x-bone.dtb and beaglebone-black.dtb is a
> link to am335x-boneblack.dtb.  There was no FreeBSD-specific DTS for
> beaglebone green previously, so am335x-bonegreen.dtb does not have
> beaglebone* counterpart.

Thanks for the background. I had seen comments about a transition, but not
enough detail to figure out old vs. new.

> 
> At the moment any changes toboot/fdt/dts/arm/beagebone-*.dts are not
> going affect beagebone-*.dtb because these dtbs created as links, not
> generated. I have patch in review that fixes it and brings back old-style
DTBs
> along with some fixes that are in upstream but haven't been merged to
> FreeBSD tree yet: https://reviews.freebsd.org/D9432

That may be the intent, but as of FreeBSD 12.0-CURRENT #0 r313411: Wed Feb
8 00:04:14 PST 2017 they were separate files, not links:
root@tic:~ # ls -l /boot/dtb
total 248
-r--r--r--  2 root  wheel  33017 Feb  8 00:07 am335x-bone.dtb
-r--r--r--  2 root  wheel  33801 Feb  8 00:07 am335x-boneblack.dtb
-r--r--r--  1 root  wheel  33305 Feb  8 00:07 am335x-bonegreen.dtb
-r--r--r--  2 root  wheel  33801 Feb  8 00:07 beaglebone-black.dtb
-r--r--r--  2 root  wheel  33017 Feb  8 00:07 beaglebone.dtb
-r--r--r--  1 root  wheel  31483 Feb  8 00:07 ufw.dtb

Links are what I expected, and is why I asked for clarification.

> 
> With current tree you need to move your uart1-related change to
> sys/gnu/dts/arm/am335x-boneblack.dts, regenerate dtbs and that should do
> the trick.

Thanks for the pointer. I have been running dtc after the build to manually
patch the file.


There is still the open question about the "compatible" strings containing
"-" while the file names do not. If that is what is coming from upstream and
expected, fine. I just wanted to check to make sure something didn't get
crossed up during the name changes. Hopefully I will get a green build done
this weekend.

Tony

> 
> --
> gonzo




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?0f3901d2849a$3ac2ca40$b0485ec0$>