Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 10 Feb 2017 17:52:31 -0800
From:      Oleksandr Tymoshenko <gonzo@bluezbox.com>
To:        Tony Hain <tony@tndh.net>
Cc:        freebsd-arm@freebsd.org
Subject:   Re: Questions about BBB/BBG dtb names vs. content
Message-ID:  <20170211015231.GA56071@bluezbox.com>
In-Reply-To: <0ee901d28406$052ed070$0f8c7150$@tndh.net>
References:  <0ee901d28406$052ed070$0f8c7150$@tndh.net>

next in thread | previous in thread | raw e-mail | index | archive | help
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.

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

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.

-- 
gonzo



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