Boot error with linaro openembedded

me too, how to fix this issue? it is the bootloader issue?

any update on new bootloader?

Any update yet…still not working with bootloader

I am still waiting for the feedback from the liaro and thundercomm, but no any response, seems they don’t know how to fix it.
I used their latest bootloader released on 5th. May, after that, the issue is the same. also the recovery procedure cannont make RB5 back.

hey!

no, we know how to fix, and understand the problem… and we’ve tested the fix. But it requires a redistribution of a proprietary firmware blob (cdt) and we are waiting for a proper release to us, so that we can fix the builds.

Some RB5 devices are not “properly” flashed during production (it might be a batch, or an initial series…) and some devices are flashed with the right cdb blob already…

We are tracking this item carefully with QCOM and TCOM… and it will hopefully be resolved shortly.

Hi ndec,
I have recovered RB5 with the help of TCOM, now I have another question:
Do you know how to replace the current Debian Linux kernel image with my own complied v5.12 kernel image?

I used to just copy my kernel image to /boot folder, then modify the grub.conf, but for RB5, it uses Debian+UEFI, I have no idea, how to replace its kernel image with my own kernel.

do you have any ideas?

How did you install Debian on the RB5?
Since you mention grub, can you please share a bit more information about your setup as well? and how you boot the device so far?

How did you recovered bootloader??
Any specific method can do??

I following the Tcom instructions, re-flash the bootloader, but bootloader images are provide by TCOM.
after that, RB5 will directly go to fastboot mode, then I flash the boot and rootfs images.
the boot and rootfs are from here: Linaro Snapshots

Note: Bootloader provided by Linaro, still has the issue, means after recovering the RB5, I flash the bootloader from Linaro Snapshots. the original issue will come back again. So, I am now use the Tcom’s bootloader image.

I think it is better to contact Tcom. you need a special tool to erase the UFS and reflash.

Hi Ndec,
RB5 doesn’t use grub, right?
Do you have experience with how to replace the Debian kernel image with my own cross-compiled kernel image?

the Linaro rescue package also erases the UFS and reflash. The tool QDL is doing that. The concern we have is that 1 file that needs to be flashed was missed in the firmware release, and is not flashed. Once that file is released to us, the Linaro rescue package will work just fine.

thanks for the explanation, so you are using our custom debian images then. And you’re right grub is not used.

The boot process is the following:

  1. the SoC runs the initial bootloader (ROM code) called PBL, and it loads the secondary bootloader, called XBL. It loads this file from the ‘xbl’ partition in UFS.
  2. xbl initializes the platform and DDR (among other things) and loads the next stage bootloader, EDK2/UEFI or “ABL”
  3. ABL loads the boot image from the boot image, which is expected to contain the compressed kernel image, the DTB (and optionnally an initramfs). then ABL jumps to the kernel.
  4. the kernel boots, it uses (or not) an initramfs, and eventually mount the actual root file system on UFS, and modules are loaded from there.

If you build your own kernel then you notice that the new kernel modules need to be installed in the root fs, and the kernel image is in the boot image!

WE have some high level instructions to help use a locally built kernel in the RB3 release notes (we haven’t made a release for Debian for RB5 yet!), but the RB3 instructions will work on RB5 too. Search for “Building the Linux kernel from source” here http://releases.linaro.org/96boards/dragonboard845c/linaro/debian/latest/

@jackyard we are having this same issue. We have emailed TComm about getting our hands on the UFS erase tool & their bootloader, still waiting on a response. With the TComm bootloader are you able to get the linaro kernel booting, or is the kernel still limited to the one shipping with sdkmanager?

@dchote here is sequence to flash Linaro debian image:

  1. Recover your RB5 with the thundercomm UFS flash tool and thundercomm bootloader.
    after first step, your RB5 can go into fastboot mode.
  2. flash boot and rootfs image
1 Like

Thanks for the quick reply. TComm got back to us and everything is working as expected after flashing the new bootloader

@jackyard, @dchote
Did you use something other than the MULTI_DL tool from Thundercomm to recover? I have tried running MULTI_DL with the “Erase everything before download” option checked, and though the log shows that it was erased and the images downloaded, the board still gives me the same error on startup. I’ve also sent an inquiry to Thundercomm.

@anon91830841
I see that the updated rescue package was released on the 19th with the CDT file. However, the ‘flashall’ command in that package relies on the board being able to boot into fastboot, which I cannot yet do. I tried alternatively loading it through QFIL (with the ‘Erase all before download’ option checked) but that failed with error “sahara_rx_data:286 Command packet length 1702240364 too large to fit”. Is there a path using the Linaro toolset to erase the UFS and download the latest rescue package in EDL mode?

Thanks to all.

We received a ZIP with updated CDT (from TComm) and then proceeded to use qdl (working/qualcomm/qdl.git - Read only mirror of https://github.com/andersson/qdl) to apply.

That’s correct, we release a new rescue package (21.04.1) which now has the CDT, so it should solve the problem reported here. The rescue package is meant to restore the board in a good known state, and can be used to recover/reinstall the board using the USB flashing tool, as per Qualcomm RB5 Board Recovery - 96Boards.

Once you flash the rescue package over USB/QDL , then it will boot to fastboot, at that point you can use fastboot to flash your OS. QDL is an open source implementation equivalent to QFIL.

I was able to recover, but never could get QDL to detect my device. The call to udev_enumerate_get_list_entry always returns empty. Maybe this was because I was running a Live USB drive instead of a full Ubuntu install?

For anybody in a similar situation, I was able to recover by copying the ‘BTFM.bin’, ‘imagefv.elf’, and ‘logfs_ufs_8mb.bin’ files from the Thundercomm flat build into the latest Linaro rescue build (21.04.1) and then loading that using the QFIL tool from the official Qualcomm QPST download (the version from qfiltool.com did not work).