release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide



Wiki > Main > SansaFuzePlusPort (compare)

Difference: SansaFuzePlusPort (r14 vs. r13)

Port Status

driverstatuscomments
LCD 80% One kind of LCD is working, the other one has been implemented solely by reverse engineering but remains untested. Still lacking partial updates, lcd sleep, inversion, ... Backlight does some strange things on fade.
Keys 90% Physical keys are handled (see (1)). Touch pad RMI driver has been implemented, some basic gesture analysis has been written but need to be enhanced.
Music playback 80% Works but needs more testing.
FM Radio 0% Not implemented.
Recording 0% Not implemented.
Power Management 30% No battery charging yet.
DMA 100% DMA works
SSP 100% SSP works
MMC 100% MMC works, I can switch the internal flash to 8-bit bit @48 MHz
SD 40% A few commands implementeds, only the general SD part is missing, detection works
Clock/voltage 70% The code works but we are still lacking code to handle voltage; also switch cpu speed is non-trivial and requires careful switching of clock and voltages
USB 100% Everything is implemented and should work
  • (1) The volume down key is wired to a GPIO but volume up and power button are wired to the PSWITCH pin for power up/down/recovery. The detection is made by the chip and is voltage based which means that one can detect when either one of those is down but it's impossible to distinguish between when volume up is down and when both are down. Is there another way to handle this ?

Building the bootloader

To write. The bootloader can be built using three different methods. The recommend one is the automatic method using RockboxUtility when available. The semi-automatic and manual methods require a working cross-compiler and a copy of the Rockbox source code.

Automatic method

Use RockboxUtility (not available yet).

Semi-Automatic method

This method requires the following things:

  • a working cross-compiler (arm-elf-eabi), see HowToCompile
  • a copy of the source code, see HowToCompile
  • a copy of the latest firmware for the Fuze+, you need to decompress it, it is be named firmware.sb

First you need to compile the bootloader, to do this follow the instructions from HowToCompile and when running the configure script, select the Fuze+ and bootloader build. After the build, you should get a bootloader-fuzeplus.sansa file (you don't need to go further than the 5. Build step in HowToCompile).

Then you need to build the mkimxboot tool in rbutil/mkimxboot. To do so, just cd into rbutil/mkimxboot and run make. It should produce a mkimxboot executable.

Finally, you need to run the tool with the correct parameters. Assuming you are in rbutil/mkimxboot, run:

./mkimxboot -i sandisk-firmware.sb -b bootloader-fuzeplus.sansa -o firmware.sb -t dualboot

You should replace sandisk-firmware.sb by the path to the firmware you downloaded from Sandisk and extracted from the archive, and replace bootloader-fuzeplus.sansa by the path to the bootloader-fuzeplus.sansa file produced by the compilation. Note that this command will produce a file called firmware.sb so if you put a copy of the firmware.sb file from Sandisk in this directory, rename it to something else like sandisk-firmware.sb before running the command.

Finally, plug your Fuze+ and put the firmware.sb file at the root of the file system, unmount and unplugged just like a regular firmware update.

Of course, to run rockbox, you will also need to do a normal build of rockbox and put rockbox on your device (see HowToCompile but this time to a normal Fuze+ build and go until the 6. Install step).

If you want to boot to the OF, press Volume Down on boot (hold it, press power, wait a few seconds and release it).

Manual method

TBD.

-- AmauryPouly - 01 May 2011

r77 - 02 Apr 2014 - 15:38:42 - AmauryPouly

Revision r14 - 06 Nov 2011 - 21:04 - AmauryPouly
Revision r13 - 18 Oct 2011 - 21:20 - AmauryPouly
Copyright by the contributing authors.