Just want to note that I (gena2x) decided to provide and support U-Boot as far as I can. To find info on my latest U-Boot version with bug-fixes, description how to setup u-boot, list of known bugs please visit U-boot-gena2x

Outdated warning ! This article or section is significantly outdated, either by significant hardware or software changes. Procedures mentioned in this page may well not work for current hardware/software.

U-Boot binary

All versions of the GTA02 (Neo FreeRunner) that have been sold to the public are version 5 hardware, so look for a file with "gta02" and "v5" in the name, for example:

uboot-gta02v5-latest.bin

The file should be written to the NAND flash address 0x00000000 (size 0x30000) (the first partition).

U-Boot development

QT2410

If you want to do U-Boot development on the QT2410, it's easier to work with a U-Boot image that can be downloaded via USB into RAM instead of flashing.

To do so, you need to edit the u-boot/include/configs/qt2410.h file, and change the "if 0" in Line 32 into a "if 1", then recompile with "make".

The resulting "u-boot.bin" is _NOT SUITABLE_ for NAND flash, but only for direct execution from within ram, e.g. by using the s3c2410_boot_usb program.

Neo 1973

Doing U-Boot development on the Neo 1973 is a bit more tricky. First, we don't have any NOR flash. Second, there is no other way to boot _but_ from NAND. Therefore, we also don't have a USB downloader like the QT2410.

The main problem is: The S3C2410 Steppingstone unconditionally copies the first 4k of flash into its internal SRAM. That SRAM segment stays unconditionally mapped at physical address zero. How do we get around this

Boot menu

Accessing the boot menu

You can access the boot menu by pressing and holding the Neo1973 AUX Button together with the power button while switching the phone on.

Using the boot menu

By pressing the Neo1973 AUX Button you can cycle through the menu items. Use the POWER button to select one item.

U-Boot prompt

Accessing the U-Boot prompt

The U-Boot prompt is available either on the serial console (via Debug Board), or as virtual USB Serial device (USB CDC_ACM).
Whether the serial port or usb is used depends on the U-Boot environment variables stdin, stdout and stderr.

Whether or not you use usbtty, the first couple of messages will always be displayed on the serial console.

The U-Boot is currently configured to wait for three seconds. If a key press on the stdin is received within those three seconds, auto-boot is aborted.

Using usbtty from Linux

Just by connecting the phone in U-Boot mode to your Linux pc should make it detect a CDC ACM device, and you should get a new tty device called /dev/ttyACM0. If not, check that module cdc_acm is loaded or CONFIG_USB_ACM=y (Device Drivers -> USB support -> USB Modem (CDC ACM) support). (Instructions for MacOS users are here)

You can adapt the instructions for USB-serial from the Mac OS page.
If you don't have a favorite, try just "cu -l dev/ttyACM0". It is in the taylor-uucp package, use "apt-get install cu" if it is not yet installed

Enter Bootprompt with:

cu -l /dev/ttyACM0

You might need to

chown uucp.uucp /dev/ttyACM0

to get the necessary rights (even as root, must be done each time). For example, if cu prints "cu: /dev/ttyACM0: Line in use", then try chowning /dev/ttyACM0 to uucp.uucp; apparently cu can be pretty picky about permissions.

Now let devirginator generate a new u-boot_env partition for us, - that contains the partition table from our u-boot_env, - and all changes we wanted to make; Note that the -D GTA02 is needed for the neo FreeRunner only, and has to come before the other options.

./envedit.pl -D GTA02 -i env.in -f environment.in -o env.out

On my box the partition layout didn't seem to match the idea of envedit.pl, so it issued 2 warnings:

Just want to note that I (gena2x) decided to provide and support U-Boot as far as I can. To find info on my latest U-Boot version with bug-fixes, description how to setup u-boot, list of known bugs please visit U-boot-gena2x

Outdated warning ! This article or section is significantly outdated, either by significant hardware or software changes. Procedures mentioned in this page may well not work for current hardware/software.

U-Boot binary

All versions of the GTA02 (Neo FreeRunner) that have been sold to the public are version 5 hardware, so look for a file with "gta02" and "v5" in the name, for example:

uboot-gta02v5-latest.bin

The file should be written to the NAND flash address 0x00000000 (size 0x30000) (the first partition).

U-Boot development

QT2410

If you want to do U-Boot development on the QT2410, it's easier to work with a U-Boot image that can be downloaded via USB into RAM instead of flashing.

To do so, you need to edit the u-boot/include/configs/qt2410.h file, and change the "if 0" in Line 32 into a "if 1", then recompile with "make".

The resulting "u-boot.bin" is _NOT SUITABLE_ for NAND flash, but only for direct execution from within ram, e.g. by using the s3c2410_boot_usb program.

Neo 1973

Doing U-Boot development on the Neo 1973 is a bit more tricky. First, we don't have any NOR flash. Second, there is no other way to boot _but_ from NAND. Therefore, we also don't have a USB downloader like the QT2410.

The main problem is: The S3C2410 Steppingstone unconditionally copies the first 4k of flash into its internal SRAM. That SRAM segment stays unconditionally mapped at physical address zero. How do we get around this

Boot menu

Accessing the boot menu

You can access the boot menu by pressing and holding the Neo1973 AUX Button together with the power button while switching the phone on.

Using the boot menu

By pressing the Neo1973 AUX Button you can cycle through the menu items. Use the POWER button to select one item.

U-Boot prompt

Accessing the U-Boot prompt

The U-Boot prompt is available either on the serial console (via Debug Board), or as virtual USB Serial device (USB CDC_ACM).
Whether the serial port or usb is used depends on the U-Boot environment variables stdin, stdout and stderr.

Whether or not you use usbtty, the first couple of messages will always be displayed on the serial console.

The U-Boot is currently configured to wait for three seconds. If a key press on the stdin is received within those three seconds, auto-boot is aborted.

Using usbtty from Linux

Just by connecting the phone in U-Boot mode to your Linux pc should make it detect a CDC ACM device, and you should get a new tty device called /dev/ttyACM0. If not, check that module cdc_acm is loaded or CONFIG_USB_ACM=y (Device Drivers -> USB support -> USB Modem (CDC ACM) support). (Instructions for MacOS users are here)

You can adapt the instructions for USB-serial from the Mac OS page.
If you don't have a favorite, try just "cu -l dev/ttyACM0". It is in the taylor-uucp package, use "apt-get install cu" if it is not yet installed

Enter Bootprompt with:

cu -l /dev/ttyACM0

You might need to

chown uucp.uucp /dev/ttyACM0

to get the necessary rights (even as root, must be done each time). For example, if cu prints "cu: /dev/ttyACM0: Line in use", then try chowning /dev/ttyACM0 to uucp.uucp; apparently cu can be pretty picky about permissions.

Now let devirginator generate a new u-boot_env partition for us, - that contains the partition table from our u-boot_env, - and all changes we wanted to make; Note that the -D GTA02 is needed for the neo FreeRunner only, and has to come before the other options.

./envedit.pl -D GTA02 -i env.in -f environment.in -o env.out

On my box the partition layout didn't seem to match the idea of envedit.pl, so it issued 2 warnings: