Re: BeagleBone uboot: BeagleBone Green Gateway not defined in uboot?
- In reply to: Johan Henselmans : "Re: BeagleBone uboot: BeagleBone Green Gateway not defined in uboot?"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 25 Oct 2022 18:00:45 UTC
On 2022-Oct-25, at 00:25, Johan Henselmans <johan@netsense.nl> wrote: > I made some comments in between on both mails. > >>> >>> . . . >>> >>> # more /usr/ports/sysutils/u-boot-beaglebone/pkg-descr >>> U-Boot loader for BeagleBone and BeagleBone Black. >>> >>> To install this bootloader, copy the files MLO and bb-uboot.img to the FAT >>> partition on an SD card or the eMMC. Normally this is partition 1, but >>> different partitions can be set with U-Boot environment variables. >>> >>> This version is patched so that: >>> * API features are enabled. >>> * A boot.scr (U-Boot scripts ) that loads ubldr.bin and execute it is included >>> >>> For information about running FreeBSD on BeagleBone or BeagleBone Black, see >>> https://wiki.freebsd.org/FreeBSD/arm/BeagleBone Looks like that should be(?): https://wiki.freebsd.org/arm/BeagleBoneBlack >>> You were not explicit. Did you do as described with MLO >>> and bb-uboot.img ? >>> > > > Yes I did. Only thing I did not know how to do was where to put the boot.scr that the READMe mentions. > > That is why I reran the script on a Beaglebone, hoping that would install the script. Mind you, I am not a > pkg specialist. I do not know how to find out how this script is created and where it is supposed to put. > I looked in /usr/port/sysutils/u-boot-master and /usr/port/sysutils/u-boot-beaglebone, but could not understand > where this boot.scr was supposed to go I'll note that FreeBSD 12 still has images for a beaglebone. For example: http://ftp3.freebsd.org/pub/FreeBSD/snapshots/ISO-IMAGES/12.4/FreeBSD-12.4-PRERELEASE-arm-armv7-BEAGLEBONE-20221014-r372617.img.xz From that you can see some of what goes where in the msdosfs on the boot media, for example: # mdconfig -u md0 -f ~/FreeBSD-12.4-PRERELEASE-arm-armv7-BEAGLEBONE-20221014-r372617.img # mount -onoatime -tmsdosfs /dev/md0s1 /mnt # ls -Tld /mnt/* drwxr-xr-x 1 root wheel 4096 Oct 13 23:56:24 2022 /mnt/EFI -rwxr-xr-x 1 root wheel 103876 Oct 13 20:17:38 2022 /mnt/MLO drwxr-xr-x 1 root wheel 8192 Oct 13 23:56:24 2022 /mnt/dtb -rwxr-xr-x 1 root wheel 1163404 Oct 13 20:17:38 2022 /mnt/u-boot.img -r-xr-xr-x 1 root wheel 386104 Oct 13 23:47:42 2022 /mnt/ubldr.bin This makes it look like bb-uboot.img is renamed during the copy into the msdosfs, if it is ever named bb-uboot.img anyway. (Again, I'm not familiar with any beaglebone specifics.) The lack of boot.scr is interesting. My expectation is that boot.src goes in same directory with u-boot.img and ubldr.bin : u-boot.img reads boot.scr and follows the instructions that are there in order to load ubldr.bin . Looking elsewhere for boot.scr would seem odd. (But, I'll note that I know nothing of MLO or its implications.) I'll note that there is: # find /mnt/ -print | grep am335x /mnt/dtb/am335x-bone.dtb /mnt/dtb/am335x-boneblack.dtb /mnt/dtb/am335x-boneblack-wireless.dtb /mnt/dtb/am335x-bonegreen.dtb /mnt/dtb/am335x-bonegreen-wireless.dtb /mnt/dtb/am335x-boneblue.dtb /mnt/dtb/am335x-pocketbeagle.dtb That suggests one place were the .dtb might need to go. I've no clue if that is the only place vs. needing a copy someplace in UFS/ZFS space for FreeBSD to directly access. >>>> That resulted in the message that there was no device tree: >>>> ===== >>>> Loading Environment from EXT4... >>>> ** Unable to use mmc 0:1 for loading the env ** >>>> Board: BeagleBone Black >>>> <ethaddr> not set. Validating first E-fuse MAC >>>> BeagleBone Black: >>>> Model: SeeedStudio BeagleBone Green Gateway: >>>> BeagleBone: cape eeprom: i2c_probe: 0x54: >>>> BeagleBone: cape eeprom: i2c_probe: 0x55: >>>> BeagleBone: cape eeprom: i2c_probe: 0x56: >>>> BeagleBone: cape eeprom: i2c_probe: 0x57: >>>> Net: eth0: MII MODE >>>> cpsw, usb_ether >>>> Press SPACE to abort autoboot in 0 seconds >>>> board_name=[A335BNLT] ... >>>> board_rev=[GG1A] ... >>>> switch to partitions #0, OK >>>> mmc0 is current device >>>> SD/MMC found on device 0 >>>> switch to partitions #0, OK >>>> mmc0 is current device >>>> Scanning mmc 0:1... >>>> Found EFI removable media binary efi/boot/bootarm.efi >>>> libfdt fdt_check_header(): FDT_ERR_BADMAGIC >>>> >>>> <snip> >>>> No valid device tree blob found! >>>> WARNING! Trying to fire up the kernel, but no device tree blob found! >>>> ===== >>>> >>>> >>>> How can I add a device tree blob for the BeagleBone Green Gateway? >>>> >>> >>> Note: I've no experience with any BeagleBone variant. >>> My comments are rather generic. >>> >> >> Hmm, I do not see am335x-bonegreen-gateway.dts in any >> of the source code trees I've got for releng/13.0 , >> releng/13.1 , stable/13 , or main [so: 14] : >> >> /usr/13_0R-src/sys/contrib/device-tree/src/arm/am335x-bone.dts >> /usr/13_0R-src/sys/contrib/device-tree/src/arm/am335x-boneblack-wireless.dts >> /usr/13_0R-src/sys/contrib/device-tree/src/arm/am335x-boneblack.dts >> /usr/13_0R-src/sys/contrib/device-tree/src/arm/am335x-boneblue.dts >> /usr/13_0R-src/sys/contrib/device-tree/src/arm/am335x-bonegreen-wireless.dts >> /usr/13_0R-src/sys/contrib/device-tree/src/arm/am335x-bonegreen.dts >> >> /usr/13_1R-src/sys/contrib/device-tree/src/arm/am335x-bone.dts >> /usr/13_1R-src/sys/contrib/device-tree/src/arm/am335x-boneblack-wireless.dts >> /usr/13_1R-src/sys/contrib/device-tree/src/arm/am335x-boneblack.dts >> /usr/13_1R-src/sys/contrib/device-tree/src/arm/am335x-boneblue.dts >> /usr/13_1R-src/sys/contrib/device-tree/src/arm/am335x-bonegreen-wireless.dts >> /usr/13_1R-src/sys/contrib/device-tree/src/arm/am335x-bonegreen.dts >> >> /usr/13S-src/sys/contrib/device-tree/src/arm/am335x-bone.dts >> /usr/13S-src/sys/contrib/device-tree/src/arm/am335x-boneblack-wireless.dts >> /usr/13S-src/sys/contrib/device-tree/src/arm/am335x-boneblack.dts >> /usr/13S-src/sys/contrib/device-tree/src/arm/am335x-boneblue.dts >> /usr/13S-src/sys/contrib/device-tree/src/arm/am335x-bonegreen-wireless.dts >> /usr/13S-src/sys/contrib/device-tree/src/arm/am335x-bonegreen.dts >> >> /usr/main-src/sys/contrib/device-tree/src/arm/am335x-bone.dts >> /usr/main-src/sys/contrib/device-tree/src/arm/am335x-boneblack-wireless.dts >> /usr/main-src/sys/contrib/device-tree/src/arm/am335x-boneblack.dts >> /usr/main-src/sys/contrib/device-tree/src/arm/am335x-boneblue.dts >> /usr/main-src/sys/contrib/device-tree/src/arm/am335x-bonegreen-wireless.dts >> /usr/main-src/sys/contrib/device-tree/src/arm/am335x-bonegreen.dts >> >> Looks like you would have to establish am335x-bonegreen-gateway.dtb >> another way as things are. >> >> I also did not find am335x-bonegreen-gateway.dtb in: >> >> https://github.com/torvalds/linux/tree/master/arch/arm/boot/dts/ >> >> so it would likely be some time before it shows up there for FreeBSD >> to later import. >> >> === >> Mark Millard >> marklmi at yahoo.com >> >> > > It seems the Beaglebne stuf is located at https://github.com/beagleboard/BeagleBoard-DeviceTrees/ > > There is a am335x-bonegreen-gateway.dts available over there. I don’t know why that stuff is not in torvalds tree. > I know that the debian version is created from https://github.com/RobertCNelson/omap-image-builder > > So my question would be then revolve around: how can I add that version to FreeBSD arm? Is there some procedure > documented somehwere how I should do this? I've no clue if anyone supporting code for armv7 on FreeBSD would be willing to add and support .dts files that do not come from importing from the mainline linux tree (and any related files). They might require a port instead, sort of like how RPi* firmware is dealt with (including the .dtb files, that happen to be used directly, not via dts compiles). The .dts history visible via: https://github.com/beagleboard/BeagleBoard-DeviceTrees/commits/v4.19.x-ti-overlays/src/arm/am335x-bonegreen-gateway.dts and shows that the .dts was last updated on 2021-Dec-23. === Mark Millard marklmi at yahoo.com