Restore mx6ull-bcb on colibri-imx6ull

Hi,
After accidentally performed a “nand erase 0” command I (obviously) wiped out the “mx6ull-bcb” partition of my colibri-imx6ull module.

I tried to recover it in 2 ways:

Using u-boot:

  1. Using Colibri-iMX6ULL_ToradexEasyInstaller_1.8-20181019 tools

  2. Follow the recovery procedure: Short iris pins + power board (i see it enumerated on the usb)

  3. Launch “recovery-linux.sh”: I see u-boot starting on the serial console

  4. Once uboot is booting i stop it (ctrl+c)

  5. I try to use the command “cfgblock create”

  6. The command goes through the questions:

    Colibri iMX6ULL # nand erase.part 0

    NAND erase.part: device 0 whole chip

    Skipping bad block at 0x1ff80000
    Skipping bad block at 0x1ffa0000
    Skipping bad block at 0x1ffc0000
    Skipping bad block at 0x1ffe0000

    OK

    Colibri iMX6ULL # cfgblock create

    Is the module an IT version? [y/N] y

    Does the module have Wi-Fi / Bluetooth? [y/N] y

    Enter the module version (e.g. V1.1B): V1.1A

    Enter module serial number: 06399268

    Toradex config block successfully written

    Colibri iMX6ULL #

Then I write the bootloader also from u-boot, etc.

After reset, the bootloader doesn’t boot.

Using tezi: I go through all the install process using vnc, etc the assistant says is ok, but after reboot the board is stuck.

Any ideas on how to recover the BCB?

Just use nand erase.chip followed by Tezi 1.8 in recovery mode and nothing else. No cfgblock create or anything else. Ok?

Hi,

No, it didn’t recover.

nand erase.chip

Did a perfect job bricking the module :smiley:

This is the console output after trying to recover it:

U-Boot 2016.11-2.0.6+g5c2d46b325 (Nov 02 2020 - 10:46:48 +0000)

CPU:   Freescale i.MX6ULL rev1.0 792 MHz (running at 396 MHz)
CPU:   Industrial temperature grade (-40C to 105C) at 38C
Reset cause: POR
DRAM:  512 MiB
NAND:  512 MiB
MMC:   FSL_SDHC: 0
Using default environment

Video: 640x480x18
In:    serial
Out:   serial
Err:   serial
MISSING TORADEX CONFIG BLOCK
Model: Toradex Colibri iMX6ULL 
Serial Downloader recovery mode, using sdp command
Net:   FEC0
Hit any key to stop autoboot:  0 
SDP: initialize...
CTRL+C - Operation aborted.
SDP: handle requests...
CTRL+C - Operation aborted.
Colibri iMX6ULL # <INTERRUPT>
Colibri iMX6ULL # <INTERRUPT>
Colibri iMX6ULL # <INTERRUPT>
Colibri iMX6ULL # <INTERRUPT>
Colibri iMX6ULL # cfgblock create
Is the module an IT version? [y/N] y
Does the module have Wi-Fi / Bluetooth? [y/N] y
Enter the module version (e.g. V1.1B): V1.1A
Enter module serial number: 06399268
Toradex config block successfully written
Colibri iMX6ULL # reset
resetting ...

After this… power cycling the module causes no effect, u-boot doesn’t load anymore

Ok, this time it seems to work using the nand erase.chip command.
Just to let you know, in my previous attempts I was using easy installer 2.0b6, so might be this was the root cause of the issue.

Also I did some experiments from the easyinstaller shell and this command:

kobs-ng init -v -w --chip_0_device_path=/dev/mtd0 /media/u-boot-nand.imx

Seems to also recover the module, but im not 100% sure if the recovery is properly done this way. I’ve just copied u-boot to a SD card and mounted it at /media/.

So some questions:

  • Is there any clear description of this recovery procedure on your documents? I couldn’t find it.
  • Ideally I would like to automate the recovery process as much as possible so the plan would be to create some internal scripts based on your Tezi images to launch the “kobs-ng” tool from console so we can create a “please_recover_my_module.sh” script. Could you provide details on exact arguments required by kobs (or equivalent tool)?

Hi @rsanchez,

Before doing the “normal” process, could you try doing this command (in Bootloader after recovery mode):

nand erase.chip

And repeat your process starting at step 5 as you mentioned above.

Please tell me if it worked.

Best regards,
André Curvello

Thanks for the feedback @marcel.tx.

@rsanchez, the tutorial we have is this one here for Colibri iMX6ULL: https://developer.toradex.com/knowledge-base/imx-recovery-mode#Colibri_iMX6ULL

This will put the board in Recovery Mode, and then you should just use Tezi.

When you uncompress Tezi, there are two scripts for loading Tezi on the module (one for Windows, other for Linux).

You can find more details on how to “automatize” Tezi by using its configuration files:
https://developer.toradex.com/software/toradex-easy-installer#configuration-files

Use it with caution :wink:

Best regards,
André Curvello

Hi,

For a bunch of reasons, I do not want to use T.E.I for updating my custom bootloader.
One of the reasons is that my company already has the infrastructure and update scripts of other imx products, using the recovery mode on otg, and is happy with that.
So I would like to flash uboot from uboot, assuming this is possible simply using “nand write”.
I do no want to boot a linux for that.
Is there a detailed procedure ? What is the write offset for uboot.img ?
A related question is mx6ull-bcb. Is this mandatory ? Or can I live without it ?

Thanks !
Thierry

Dear @tbultel ,

Thanks for joining our community. Please feel free to explore the topics and reach us whenever you need.

As this topic was marked as solved, can you please initiate another topic? Then, we don’t mix the issues. In the meantime, we are already having a look on your questions and will reply you soon on the new topic.

Best regards,
Guilherme