Unable to find which dtb file is in use.

Forums Devices Unable to find which dtb file is in use.

Viewing 2 reply threads
  • Author
    Posts
    • #8509
      Ivan Ivanovivan.ivanov
      Participant

        Hello

        I have a BeagleBone Black, running the standard Debian image downloaded form the BBB’s site.

        $ uname -a

        Linux beaglebone 4.4.91-ti-r137 #1 SMP Tue Nov 7 01:13:03 UTC 2017 armv7l GNU/Linux

        $ cat /etc/os-release

        PRETTY_NAME=”Debian GNU/Linux 9 (stretch)”
        NAME=”Debian GNU/Linux”
        VERSION_ID=”9″
        VERSION=”9 (stretch)”
        ID=debian
        HOME_URL=”https://www.debian.org/”
        SUPPORT_URL=”https://www.debian.org/support”
        BUG_REPORT_URL=”https://bugs.debian.org/”

        I’m currently learning about the Device Tree and all the articles I’ve read do point that the active DTB file is determined by a line in /boot/uEnv.txt

        the line is:
        dtb=*****.dtb

        However in my case the line looks like this:
        #dtb=

        But a dtb file is being loaded!

        Uncommenting that line and assigning a DTB (one of the many in /boot/dtbs) leads to failure to boot. I think some sort of conflict occurs.

        Running:
        $cat /proc/device-tree/model

        Outputs:
        “TI AM335x BeagleBone Black”

        But that’s the model of all the DTB files present in /boot/dtbs so that string is useless to identify the one that’s actually loaded.

        So I’m at a loss.

        Is the cape manager responsible for loading the DTB file now?

        I’ve googled a lot but wasn’t able to find a way to see which DTB is being loaded.
        Any help will be appreciated, thanks in advance! 🙂

      • #8510
        Eshtaartha Basu
        Moderator

          Hello ivan.ivanov,

          The U-boot loads the appropriate linux device tree for the board based on the Board ID (also called as Magic Number) in the board’s EEPROM.

          You can observe the U-boot boot messages on UART0 serial console to see which device tree was loaded. Alternatively, you can also halt U-Boot boot sequence and get into U-Boot’s command line by pressing SPACE key on the keyboard within first 2 seconds of boot. Once you get into U-Boot’s command line, type in “printenv”. This will list all the environment variables of U-Boot. These variables will help you understand how exactly U-Boot chooses different device trees based on board name.

          Since OSD335x devices use the same AM335x processor that is used in BeagleBone Black, you can refer the following app notes to learn more about boot process and EEPROM:

          1. https://octavosystems.com/app_notes/osd335x-design-tutorial/osd335x-lesson-2-minimal-linux-boot/osd335x-lesson-2-linux-boot-process-with-the-osd335x/

          2. https://octavosystems.com/app_notes/osd335x-eeprom-during-boot/

          Please note that this forum mainly focusses on OSD335x family on devices. Hence, for all queries that are related to BeagleBone Black, we recommend using the official BeagleBoard forum: https://groups.google.com/d/categories/beagleboard/beaglebone-black

        • #10522
          Ivan Ivanovivan.ivanov
          Participant

            Hi Eshtaartha
            I know I write this way too late, but I just like to thank you and tell everyone who might read this thread, that your the information you provided was really helpful and did lead to the successful completion of my project. I actually had forgotten about this thread and found it no google just now. I was unpleasantly surprised of myself that I haven’t given any feedback. So there it is 🙂 Thanks!

            • This reply was modified 4 years, 3 months ago by Ivan Ivanovivan.ivanov.
        Viewing 2 reply threads
        • You must be logged in to reply to this topic.