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



Search | Go
Wiki > Main > SigmaTelSTMP3xxx > CreativeZENXFi2 > CreativeZENXFi2Port

Warning, it appears that there could two types of Zen X-Fi2: one NAND based and the other SD based. See below on how to determine the kind.

Warning, the internal storage is only supported on models DVP-FL0015. On other models, the internal storage is not working so you must install Rockbox on a microsd card !!

Port Status

driver status comments
LCD 95% LCD is working. Still lacking lcd sleep, and inversion.
Keys 100% Physical keys are handled. Touchscreen driver has been implemented.
Music playback 100% Everything works.
FM Radio   See SigmatelSTFM1000
Recording 0% Not implemented.
Power Management 100% Everything works.
NAND 0% NAND driver and FTL are not implemented so no internal storage.
SD 100% External SD works.
USB 100% Everything is implemented and should work.
Manual 00% TBD.
Rockbox Utility 50% Most of the code has been written but we need to put pieces together. Upgrade the bootloader is a bit tricky.

Daily builts

You can download a prebuilt version of Rockbox for the Zen X-Fi2 for the build bots here: zenxfi2.zip. Unpack it to the micro-sd card you will put in the X-Fi2. It should create a .rockbox directory at the root of the sd-card. You still need to installer bootloader the first time to be able to boot rockbox.

Bootloader features

The bootloader comes with a number of features which allow to recover from potential problematic situations.

Booting to the OF

The bootloader can either boot rockbox or the OF. By default it will boot rockbox. Booting to the OF can be achieved by several combination, depending on the context:
  • usb unplugged
    • hold menu for a small time: boot to the OF
    • hold menu for a long time (until logo): boot to the OF in recovery mode
  • usb plugged
    • hold power for a small time: boot to the OF
    • hold power for a small time then menu for a long time (until logo): boot to the OF in recovery mode
Note that when usb plugged, you need to press the reset button to reboot and perform this combination.

Install the bootloader

At the moment Rockbox Utility is not supported.

I prebuilt two complete images because producing them is a bit tricky currently, they will disappear when RbUtil? is ready for the Zen X-Fi2. First download one of those two image, pick the right type (see section at the end to determine the type)

To build the bootloader from source:
  • proceed as in HowToCompile but select (B)ootloader instead of (N)ormal in configure, stop after step 5 (Building)
  • you should now have a file bootloader-zenxfi2.creative
  • you still need to create a firmware if you want to install it on your device, see instructions below

To build the firmware from the bootloader:
  • build the bootloader from source or download a prebuilt bootloader
  • compile mkimxboot: make -C ../rbutil/mknwzboot
  • download Creative's installer, usually called ZEN_X-Fi2_PCFW_L22_1_23_01.exe, put it in the same folder as the bootloader you built
  • create sd firmware: ../rbutil/mkimxboot/mkimxboot -i ZEN_X-Fi2_PCFW_L22_1_23_01.exe -b bootloader-zenxfi2.creative -o firmware.sb -v 'zenxfi2-nand' -p 1234.5678.9012
  • create nand firmware: ../rbutil/mkimxboot/mkimxboot -i ZEN_X-Fi2_PCFW_L22_1_23_01.exe -b bootloader-zenxfi2.creative -o firmware_sd.sb -v 'zenxfi2-sd' -p 9876.5432.1098

Windows

If you are unsure about your device type, download both: the installer will pick the right one provided that they are correctly named. Then get a copy of the latest firmware installer for the Creative Zen X-Fi2, usually called ZEN_X-Fi2_PCFW_L22_1_23_01.exe. Put the downloaded images in the same directory as the installer make sure they are correctly named (firmware.sb for NAND and firmware_sd.sb for SD). Plug your device, the OF will boot, now launch the installer: it should give you the opportunity to upgrade. Check that the proposed version is not 1.23.03, it should be 1234.5678.9012 for the NAND and 9876.5432.1098 for the SD. If you don't see those number, it will not work.

Linux

Get the firmware for you device (firmware.sb for NAND, firmware-nand.sb for SD). Get or compile scsitool:
  • Linux(64-bit): scsitool_64-imx-v2
  • Build it: get the code (see UsingGit) then compile it using make -C /path/to/repository/utils/imxtools/scsitools/
Plug your device, if you already installed the rockbox bootloader, make sure you boot in the original firmware USB mode (see the section on Bootloader feature to find out how). Then run the following command: /path/to/scsitool --yes-i-want-a-brick -w /path/to/firmware-variant.sb /dev/sdX where you replace firmware-variant.sb with the path to the correct firmware (SD or NAND version) and /dev/sdX by the path to the device. DO NOT interrupt the transfer at any point, either by disconncting the device or killing the program.

Recovery procedure

If for any reason your device doesn't work anymore (doesn't boot, stuck in the bootloader and even the OF doesn't work or if a firmware upgrade failed). You might need to recover your device. You should not attempt this without an advice from someone knowledgeable. The point of the recovery procedure is too reinstall the OF and will remove any trace of the rockbox bootloader.

Linux

You will to download the Rockbox source code and build a utility program. You do NOT need to have a working cross compiler, not to build rockbox executable. See HowToCompile to download the source code. Then go into utils/imxtools/sbtools/ and run make. You will need the development version of the libusb-1.0 library. when done, you should have (among others) a tool called utils/imxtools/sbtools/sbloader. You will also need to build the mkimxboot tool by going into rbutil/mkimxboot and running make, producing an executable called rbutil/mkimxboot/mkimxboot.

Next you will need to download latest firmware installer for the Creative Zen X-Fi2 (see above sections). You need to determine your device type (NAND vs SD) using section below. Next run this one of these command to extract the firmware from the updater (replace the updater name by the path to your downloaded updater):

mkimxboot -i ZEN_X-Fi2_PCFW_L22_1_23_01e.exe -o firmware_sd.sb -w -v zenxfi2-sd (for SD)

mkimxboot -i ZEN_X-Fi2_PCFW_L22_1_23_01e.exe -o firmware_sd.sb -w -v zenxfi2-nand (for NAND)

The utility should end with result 0 and produce the firmware_sb.sb or firmware_nand.sb file. Finally upload this file to the device using sbloader (replace firmware.sb by the correct file depending on the type):

sbloader 0 firmware.sb

The Creative OF is now running but the firmware itself has not been written yet. To complete the recovery, you need to do a complete firmware upgrade. You have two solutions, depending on your setup:

With Windows in a virtual machine

You will need to have a virtual machine running Windows. Don't unplug your device (which is still running Creative OF) and give it to the virtualised Windows. Next run the Creative updater in the guest Windows to do a complete upgrade.

With Linux tools

You will need to build some more tools: go into utils/imxtools/scsitools/ and run make.

Those tools are not finished yet

Windows

Unfortunately, there is no native Windows "only" solution. You will need to proceed as for the Linux version to extract the firmware_sd.sb or firmware_nand.sb file. You can build them using MinGW? or Cygwin (see DevelopmentGuide). Alternatively, you can download the prebuilt rockbox bootloader files from the above section, in which case you will have to hold power when running sb_loader to boot the OF and not rockbox.

You cannot use sbloader in our trunk because it is Linux-only. Fortunately, Freescale has a Windows version of this utility called IMX_SB_LOADER. Go to freescale website, search for IMX233, go to Software/Tools tab, you will find it in the Programmers section. Alternatively search for "IMX_SB_LOADER" on Google. Next upload the firmware to the device this way (replace firmware.sb by the proper name)

sb_loader -f firmware.sb

You device you now boot Creative OF and you can do a complete firmware upgrade using Creative updater.

NAND vs SD: how to determine type ?

You can determine the type by looking at the model number, written on the back of the device
  • DVP-FL0012: NAND based
  • DVP-FL0015: SD based
  • PF2494: unknown, if you have one, please contact me (AmauryPouly)

TODO

-- AmauryPouly - 15 Jan 2013
r14 - 07 Nov 2017 - 22:00:52 - AmauryPouly

Copyright by the contributing authors.