Skip to content

ccgx booting and buttons

mpvader edited this page May 25, 2016 · 15 revisions

Normal boot order

MLO -> Linux

(yes, it skips u-boot. Also known as Falcon mode)

Buttons that modify the boot process

  • When pressing the two top buttons, the CCGX will be reset. This is a pure hardware function.
  • When holding the left button of the five-button-central-pad while booting, MLO on NAND will start u-boot (in NAND) instead of its normal action: start the linux kernel. U-boot then looks for a .src script on either the sdcard or an USB-stick. When found, it executes that script. This is the mechanism typically used for firmware updating and recovery, also by customers.
  • Holding both the left button of the five-button-central-pad, and the top left button, also start u-boot. And then causes u-boot to stop and stay available: it won't start a .scr script, or continue normal boot in case no .scr script is found.

So, to get into u-boot, hold the two left buttons, and then momentarily press the top right button.

U-boot and SPL/MLO source code is here. Note that we have added one special feature into u-boot: it is possible config env such that MLO will always start u-boot. Boot-mode then no longer depends on status of five-button-central-pad-left-button.

User instructions to update ccgx firmware using an SD-card or USB stick are here: http://www.victronenergy.com/live/ccgx:firmware_updating

In case you have bricked the device, by putting a broken u-boot on the NAND, there is still a way to force it to . Use a screwdriver to short some pin on the technexxion cpu-board.

Put differently: to work on boot loaders, it is better to use a standard technexxion cpu-board, since that will always check the sdcard. And once ready start testing your work on a CCGX.

Programming at the factory

We receive the boards with a completely empty NAND. The CPU will then look for MLO at a special sector on the sdcard, and start that. And that sdcard is what we provide to our factory.

Clone this wiki locally