Reference Documentation

To run dfu-util, you need to have /proc/bus/usb mounted and working. The terminal command "ls /proc/bus/usb" should return something similar to, "001 002 003 004 005 devices", it shouldn't be empty. If it is empty, use this command:

sudo mount -t usbfs usbfs /proc/bus/usb

You can permanently add it in your fstab so that it automatically mounts. You can use emacs to edit you fstab using the command "sudo emacs /etc/fstab -nw" in your terminal window. Add the below line to your fstab:

usbfs /proc/bus/usb usbfs defaults

Before using dfu-util

Read the other sections of this page first, because you will have 30 seconds to enter the flashing commands, come back here when ready.

Do not connect the USB cable from the PC to your Neo yet (disconnect it).

This shows you six interfaces, all in configuration 0 and interface 0, with altsetting 0...5, for RAM and each partition.

--device

You can specify the USB Vendor and Product ID of the device you want to program:

dfu-util --device 0x1457:0x5119

If you only have one standards-compliant DFU device attached to your PC, this is optional. However, as soon as you have multiple DFU devices, dfu-util will detect this and abort, asking you to specify which device it shall use.

--transfer-size

Specifies the size of each individual USB transfer. If you don't use it, the maximum possible size for your combination of host operating system and USB device is chosen (for optimal performance).

Flashing the splash image

Copying a kernel into RAM

Once this has finished, the kernel will be available at the default load address of 0x32000000 in Neo1973 RAM.

NOTE: You cannot transfer more than 2MB of data into RAM using this method

Success message

If flashing was successfull the following will be shown:

status(0) = No error condition is present
Done!

Troubleshooting notes

If during flashing of an image using dfu-util you're consistently getting an error -110 message, check that the size of the destination NAND partition is big enough to hold the image. For example the kernel partition is only 2 MB big by default and a kernel with debugging info compiled-in can often exceed this. It's possible to change the partition layout to enlarge a given partition and shrink other partitions but you have to remember to reflash all partitions whose start offset has changed afterwards. To adjust partitions layout use the mtdpartsu-boot command.

If in turn you're facing errors in seemingly random places during the flashing of images, most likely the USB hub or cable through which your Neo1973 is connected, is of too poor quality. It is recommended that you always connect the phone directly to the host when using dfu-util.

If dfu-util reports a message like the following, before it starts flashing:

Resetting USB...
not at least 2 device changes found ?!?
Lost device after RESET?

retry the command - it should work on a second run.

If dfu-util complains about not being able to program the device while in runtime mode, do the following: while in the boot menu, remove the usb cable and insert it again. Depending on the version of uBoot it should display somewhere in the menu that it is now in DFU mode. Now dfu-util should be able to continue.

If dfu-util is too slow on Windows, that's a known bug. A suggestion is to run Linux on a virtual box. An full root image 97MB that is 776Mbit, the USB 1.1 on the Neo FreeRunner is capable of either 1.5 Mbit/s (Low-Speed) and 12 Mbit/s (Full-Speed). So flashing it should take less than 9 minutes with low speed and a bit more than a minute with full-speed. Plus transfer overhead, plus decompression on the Neo side.

Views

Personal tools

Reference Documentation

To run dfu-util, you need to have /proc/bus/usb mounted and working. The terminal command "ls /proc/bus/usb" should return something similar to, "001 002 003 004 005 devices", it shouldn't be empty. If it is empty, use this command:

sudo mount -t usbfs usbfs /proc/bus/usb

You can permanently add it in your fstab so that it automatically mounts. You can use emacs to edit you fstab using the command "sudo emacs /etc/fstab -nw" in your terminal window. Add the below line to your fstab:

usbfs /proc/bus/usb usbfs defaults

Before using dfu-util

Read the other sections of this page first, because you will have 30 seconds to enter the flashing commands, come back here when ready.

Do not connect the USB cable from the PC to your Neo yet (disconnect it).

This shows you six interfaces, all in configuration 0 and interface 0, with altsetting 0...5, for RAM and each partition.

--device

You can specify the USB Vendor and Product ID of the device you want to program:

dfu-util --device 0x1457:0x5119

If you only have one standards-compliant DFU device attached to your PC, this is optional. However, as soon as you have multiple DFU devices, dfu-util will detect this and abort, asking you to specify which device it shall use.

--transfer-size

Specifies the size of each individual USB transfer. If you don't use it, the maximum possible size for your combination of host operating system and USB device is chosen (for optimal performance).

Flashing the splash image

Copying a kernel into RAM

Once this has finished, the kernel will be available at the default load address of 0x32000000 in Neo1973 RAM.

NOTE: You cannot transfer more than 2MB of data into RAM using this method

Success message

If flashing was successfull the following will be shown:

status(0) = No error condition is present
Done!

Troubleshooting notes

If during flashing of an image using dfu-util you're consistently getting an error -110 message, check that the size of the destination NAND partition is big enough to hold the image. For example the kernel partition is only 2 MB big by default and a kernel with debugging info compiled-in can often exceed this. It's possible to change the partition layout to enlarge a given partition and shrink other partitions but you have to remember to reflash all partitions whose start offset has changed afterwards. To adjust partitions layout use the mtdpartsu-boot command.

If in turn you're facing errors in seemingly random places during the flashing of images, most likely the USB hub or cable through which your Neo1973 is connected, is of too poor quality. It is recommended that you always connect the phone directly to the host when using dfu-util.

If dfu-util reports a message like the following, before it starts flashing:

Resetting USB...
not at least 2 device changes found ?!?
Lost device after RESET?

retry the command - it should work on a second run.

If dfu-util complains about not being able to program the device while in runtime mode, do the following: while in the boot menu, remove the usb cable and insert it again. Depending on the version of uBoot it should display somewhere in the menu that it is now in DFU mode. Now dfu-util should be able to continue.

If dfu-util is too slow on Windows, that's a known bug. A suggestion is to run Linux on a virtual box. An full root image 97MB that is 776Mbit, the USB 1.1 on the Neo FreeRunner is capable of either 1.5 Mbit/s (Low-Speed) and 12 Mbit/s (Full-Speed). So flashing it should take less than 9 minutes with low speed and a bit more than a minute with full-speed. Plus transfer overhead, plus decompression on the Neo side.