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



Search | Go
Wiki > Main > SansaFuzePlus > SansaFuzePlusFirmware (r5)

Sansa Fuze+


This page will summarize important things about the Sans Fuze+ firmware. See SansaFuzePlus for more information about the device and SbFileFormat for more information about the format of the firmware.

All the content of this page specifically applies to the 1.30.01 firmware, although the majority of the information should apply to any firmware revision. This page uses a hierarchical structure: it is first divide in boot sections as extracted by the sbinfo tools. Then his section is divide in several subsection which correspond to the different elf files generated by the sbinfo tool.

First boot section ("____")

This section seems to be a kind of bootloader, in the sense that it does lots of initialisation. In the code seems quite generic, having support for several kinds of drams, lcds, ...

First elf file

This first elf file mainly contains power initilisation routines, probably to find the best power source. It also setup things like battery monitoring, brownout paths, ...

Second elf file

This second elf file mainly contains dram intialisation routines. It probably detects the kind of dram attached, setup clocks, EMI, ...

Third elf file

This third elf file also does some dram initialisation, as well as enable various clocks for peripheral likes CPU, SSP, GPMI, ...

Fourth elf file

The content of this file has been partially examined.

Fifth elf file

The content of this file has been partially examined. It seems to deal with lcd, debug uart, perhaps some ssp and peripheral (clocks, dram, emi, ...).

Second boot section ("host")

First elf file

This part of the firmware seems to handle the connection to the host, in either USB MSC or MTP mode.

Third boot section ("play")

First elf file

The content of this file is still unknown.

Second elf file

The content of this file is still unknown.

Disassembly

The Fuze+ firmware is based on the ThreadX? RTOS. As such, it implements the ThreadX? API. As far as I have checked, this document perfect matches the code found in the firmware: ThreadX User Guide

-- AmauryPouly - 03 Dec 2010
Edit | Attach | Print version | History: r8 | r6 < r5 < r4 < r3 | Backlinks | View wiki text | More topic actions...
r5 - 28 Dec 2010 - 22:32:53 - AmauryPouly

Parents: SansaFuzePlus
Copyright by the contributing authors.