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



Search | Go
Wiki > Main > GigabeatSPort > GigabeatSInfo (r82)

Gigabeat S Info

PCB Scans

Flash bootloader

The flash bootloader is responsible for many of the restrictions described below. See GigabeatSOriginalLoader.

Disk Layout

The following was obtained by placing the HD into an ipod and using the ipod's emergency disk mode to gain an fdisk inspection of the drive's layout.

Disk /dev/sda: 60.0 GB, 60011642880 bytes
64 heads, 32 sectors/track, 57231 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes
This doesn't look like a partition table.
You have probably selected the wrong device.

Device Boot Start         End       Blocks   Id  System
/dev/sda1   ?           1         151      153600    b  W95 FAT32
Partition 1 doesn't end on a cylinder boundary.
/dev/sda2             151       57232    58451488    b  W95 FAT32
Partition 2 doesn't end on a cylinder boundary

See TfatDetails for additional information on the TFAT file system.

Loading code from Windows

Running code on the Gigabeat involves patching the original nk.bin file, inserting the custom binary executable, and using the patched Gigabeat V update utility to upload the new nk.bin file to the player.

What you need:
  • mknkboot (see below)
  • Windows Media Player 10 (required to detect the player)
  • Patched Gigabeat V updater (download below) OR sendfirm_win

Step 1

Compile (or use the precompiled binaries) and use the mknkboot tool (below) on a unmodified nk.bin file. A unmodified nk.bin file can be found in the patched Gigabeat V updater (nk_orig.bin). The mknkboot tool inserts the binary executable, and patches it to bypass the signature check. Usage :

mknkboot <firmware file> <boot file> <output file>

This will create a file in the current directory, which is what you need to upload to the player.

With the current build system for the Gigabeat S, the <firmware file> you should use is the nk_orig.bin file from the patched Gigabeat V updater. The <boot file> is bootloader/bootloader.bin after you've built the bootloader with the rockbox toolchain. This creates an original firmware image (i.e. with Windows Mobile) plus the Rockbox bootloader. Alternatively, you can skip the mknkboot step, and use the nk.bin file in the build directory. This doesn't include the original firmware however, and therefore dual-booting is not possible.

Step 2

For the gigabeat to accept the firmware update, it must either be in the recovery mode, or in the original firmware.
To enter recovery mode, HARD reset the player (turn off the battery switch and turn it back on), and hold left (on the cross, not '<--') and the windows button while booting to enter recovery mode. ALERT! This will format the hard drive.
Performing the update from the OF will not format your player.

Step 3

Download the install.bat script and put it together with the modified nk.bin file in the same directory as the patched Gigabeat V updater. Connect the gigabeat to the computer and to the charger, and then run the install.bat script. Remove the usb cable when the updater is done, and the gigabeat will flash the new firmware (be careful not to remove the power while it's flashing), then run it. Once this is done when the Gigabeat is powered up again, if you want the Official Firmware to be loaded, you need to switch the hold switch on the device to the "On" position.

Using the sendfirm.exe program:
  • Open a Commandline prompt (cmd.exe)
  • Change dir to your sendfirm.exe
  • Run "sendfirm [PATH_TO_YOUR_NK_BIN]"

Loading code from Linux

What you need:
  • mknkboot (in SVN)
  • sendfirm (in SVN)

Step 1

Compile (or use the precompiled binaries) and use the mknkboot tool (below) on a unmodified nk.bin file. A unmodified nk.bin file can be found in the patched Gigabeat V updater (nk_orig.bin). The mknkboot tool inserts the binary executable, and patches it to bypass the signature check. Usage :

mknkboot <firmware file> <boot file> <output file>

This will create a file in the current directory, which is what you need to upload to the player.

With the current build system for the Gigabeat S, the <firmware file> you should use is the nk_orig.bin file from the patched Gigabeat V updater. The <boot file> is bootloader/bootloader.bin after you've built the bootloader with the rockbox toolchain. This creates an original firmware image (i.e. with Windows Mobile) plus the Rockbox bootloader. Alternatively, you can skip the mknkboot step, and use the nk.bin file in the build directory. This doesn't include the original firmware however, and therefore dual-booting is not possible.

Step 2

For the gigabeat to accept the firmware update, it must either be in the recovery mode, or in the original firmware.
To enter recovery mode, HARD reset the player (turn off the battery switch and turn it back on), and hold left (on the cross, not '<--') and the windows button while booting to enter recovery mode. ALERT! This will format the hard drive.
Performing the update from the OF will not format your player.

Step 3

Compile the sendfirm tool (available in SVN in /utils/MTP), and use it to send the modified nk.bin file (produced by mknkboot) to your gigabeat. The sendfirm utility requires the libraries lib-mtp and lib-usb present to compile.

Usage:

sendfirm <file to send>

This will transfer the new firmware to the device (doesn't flash anything, much safer), and reset it, at which point it will then load the new firmware.

Note: The sendfirm tool is only meant to send either a patched nk.bin or a nk.bin compiled from the Gigabeat S bootloader. Anything else like a rockbox binary or tar will result in your device becoming non-functional. A format and restore is required.

Running Rockbox

see GigabeatSInstallation

Note: Before the bootloader could be used to install a complete rockbox build the single rockbox.gigabeat was transfered to the device. Since the first found 'rockbox.gigabeat' file will be used you have to delete rockbox.gigabeat first in order to update if you haven't used a complete build before.

Mknkboot Gigabeat S Code Injection Tool

This is a tool that bypasses the signature check, and will allow developers to insert their custom code into the Gigabeat S nk.bin firmware file.

Firmware Analyst

  • Small firmware Analyst and extracted romimages of nk.bin: GigabeatSRomfiles.rar
  • Extracted Eboot.bin (Bootloader): EbootBin.rar
  • Extracted Recovery.bin (Recovery Image in case of Firmware load malfunction, ex. booting of unsigned code): RecoveryBin.rar

Eboot.bin and Recovery.bin were extracted with guidance from Zunepet. The dumprom utility was used written by Willem who extracted the kernel/firmware image.

Original Firmware Graphics Setup Analysis

The Gigabeat S's processor, the i.mx31 uses a very complex yet powerful piece of hardware called the IPU(Image Processing Unit) to process graphics. A detailed description of this component is given in chapter 44 of the i.mx31 reference manual. Provided here is

  • Partial disassembly of the original firmware configuration of the IPU(full disassembly to be completed soon)
  • For the most part only initialization values of said registers are given. Please reference the manual to decode the meanings.(If possible this will be done in the future, this was a large undertaking without doing this)

Points of interest in the i.mx31 reference manual related to this subject :
  • The IPU Register Memory Map(page 1957 in Adobe Acrobat)
  • The IPU Internal Memory Access Address and Data Registers(page 2003)
  • IDMAC(Image DMA Controller) Channel Parameter Memory Map(page 2010)
  • IDMAC Description(page 2233)
  • IPU Internal Memories Mappings(page 2276)

Configuration of the IPU in the original firmware begins at 0x8805F3DC of eboot.bin->nk.exe.An important aspect of the configuration of the IPU that may concern developers at this time is the setup of the framebuffer. Rather than doing a memory remap of the fb, it may be very beneficial to totally reposition the fb within the memory space. Among the many internal memories of the IPU, there is the IDMAC Channel Parameter Memory.Repositioning the fb base address is done by setting values in IDMAC Channel Parameter Memory, more specifically at the values of EBA0 and EBA1(see page 2011,2014, and 2235 for more info). To access this one must set the IPU Internal Memory Access register to access the IDMAC Channel Parameter Memory, then read/write using the Internal Memory Data Register. Please read the IDMAC description for more detailed information. Also other internal memories can be accessed using the internal memory access and data registers, to provide greater configuration, other than what is needed on the macro level using the IPU main registers.

Original Firmware IPU Register Initialization Values (To be completed)
Register Name Value
IPU_CONF 0x40, bit clear 0x100*
IPU_BRK_CTRL_2 0x1
SDC_HOR_CONF 0x1D090000
SDC_VERT_CONF 0x54F0001
SDC_SHARP_CONF_1 0x0
SDC_SHARP_CONF_2 0x0
DI_DISP_IF_CONF 0x0
DI_DISP_SIG_POL 0x0
DI_HSP_CLK_PER 0x100010
DI_DISP3_TIME_CONF 0xC000180
DI_DISP3_B0_MAP 0x5000F
DI_DISP3_B1_MAP 0xB000F
DI_DISP3_B2_MAP 0x11000F
SDC_COM_CONF bit clear 0x20, orr 0x40 **
DI_DISP_ACC_CC bit clear 0x3000
SDC_BG_POS 0x10000A***
SDC_FG_POS 0x30008
*Display Interface Enable,pixel endian=little endian
**Graphics window set to background(which may explain why screen is changed only when you write to bg portion of fb), alpha mode=global alpha
***BGYP=10, BGXP=16

Gigabeat V Firmware Update 1.5

Unpatched version of the Gigabeat V firmware updater: gbv_update_1_5_jp.exe (RapidShare link)

Official Gigabeat S Updater version 1.2

The original platform version 1.0, this updater install platform version 1.2. The program version is 2.11 for the 2 platform version

http://www.tacp.toshiba.com/customersupport/

Select Mobile audio player then 2006
Select either mes30v or mes60v then firmware
Download the iso file : MESV12US.iso Direct link
Extract the iso with your favorite extractor (7zip for example).
You get 2 files : Autorun.inf and gbs_update_1_2_us.exe
Extract the exe file with 7zip for example and you get the following files : nk.bin , recovery.bin ,pmcboot_secure.bin plus a folder named 'us' containing License.txt and SUpdate.exe

If you just want to recover the original firmware, run the exe file and follow the instructions.

Firmware Recovery

Windows

If for whatever reason the Gigabeat S firmware is not booting due to some error, your fault or not, here is a tool that will help you recover the original firmware functionality. This uses the patched Gigabeat V updater from above which has been patched by Zunepet (this has been explained in the Gigabeat S forum post) to recognize and update the Gigabeat S firmware. I have written a small batch file called recover.bat that will do the recovery process. It is included in the archive.

Or you could put your Gigabeat S into recovery mode and use sendfirm.exe to copy the stock nk.bin to your device.

Linux

Simply put your Gigabeat S into recovery mode and use sendfirm to copy the stock nk.bin to your device.

Hardware

CPU

Freescale i.MX31L processor
  • ARM Core
  • Floating Point Unit
  • 532mhz Core
Info: http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=i.MX31&nodeId=01J4Fs2973ZrDR

Errata: http://www.freescale.com/files/32bit/doc/errata/MCIMX31CE.pdf

RAM

Samsung 4M x 32Bit x 4 Banks Mobile SDRAM
Info: http://www.samsung.com/products/semiconductor/MobileSDRAM/MobileSDRSDRAM/512Mbit/K4M51323PC/K4M51323PC.htm

Flash

Intel F160C3TD7
Info: http://download.intel.com/design/flcomp/datashts/29064523.pdf

Audio Codec

Wolfson WM8978G
Info: http://www.wolfsonmicro.com/products/WM8978/

Power management

Freescale MC13783
Info: http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MC13783&nodeId=01J4Fs4881
Datasheet : http://www.freescale.com/files/rf_if/doc/data_sheet/MC13783.pdf
Errata: http://www.freescale.com/files/rf_if/doc/errata/MC13783CE.pdf
Information for GPL drivers (which gives some programming info but isn't as the thorough and alas NDA-ed user manual but it does contain a better SPI bitmap): http://www.freescale.com/files/rf_if/doc/ref_manual/MC13783IGPLDRM.pdf

TV Out

Focus FS456
Info: http://www.focussemi.com/products/fs455.html
Datasheet: http://ingeninge.homelinux.net/ingmar/zenega/Datenbl%E4tter/FS453-4___FS455-6_SW_v31.pdf
http://ingeninge.homelinux.net/ingmar/zenega/Datenbl%E4tter/FS453-4___FS455-6_HW_v31.pdf

USB OTG

Philips ISP1504
Info: http://scn.semiconductors.philips.com/buses/usb/products/ulpi/isp1504/

FM Tuner

Silicon Labs Si4700 (Not on 30gb model in some markets)
http://www.silabs.com/tgwWebApp/public/web_content/products/Broadcast/Radio_Tuners/en/Si4700-01.htm

Octal FET Bus Switch

Texas Instruments SN74CBTLV3245A Info: http://focus.ti.com/docs/prod/folders/print/sn74cbtlv3245a.html

Bus Switch/Level Shifters

Toshiba TC7MP3245FTG - Low Voltage/Low Power 4-Bit 2 Dual Supply Bus Transceiver (marked P003/618A8)
Ganged bus switch/logic-level shifters for the disk drive's ATA interface.
Datasheet: http://www.semicon.toshiba.co.jp/docs/datasheet/en/LogicIC/TC7MP3245FTG_en_datasheet_071019.pdf

Battery

Li-poly 3.7V 700mAh (Model number 1UPF383450-TBF)

HDD

Toshiba MK3008GAL (30gb version)
Toshiba MK6008GAH (60gb version)

Port Pin Assignments

MC13783 Info

nk.bin format

See BIN format on http://www.xs4all.nl/~itsme/projects/xda/wince-flashfile-formats.html
Of note is the image length header. This rarely reflects the actual image length, and as far as I can tell is used by the bootloader to tell if the .bin file should be written to flash memory or loaded to ram. When loading a custom nk.bin file you should ensure that this length is greater than say 16mb to ensure that a bad image is not flashed.

Other Links

I Attachment Action Size Date Who Comment
MTP.zipzip MTP.zip manage 42.3 K 04 Jul 2008 - 12:48 MaurusCuelenaere sendfirm for Windows
Thermistor_readings.xlsxls Thermistor_readings.xls manage 43.5 K 25 May 2008 - 08:46 MichaelSevakis Spreadsheet used to collect temperature measurements and derive the battery thermistor coefficients. Everything done using household items (heating pad, cooling pack, towels, a digital meat thermometer and the Fluke multimeter everyone has lying around).
WpdMon_update_gigabeat_S.txttxt WpdMon_update_gigabeat_S.txt manage 672.9 K 15 Oct 2007 - 15:26 ChristopheNicolas monitoring of the usb during the update
boot_sequence.TXTTXT boot_sequence.TXT manage 3.1 K 19 Feb 2007 - 20:40 ChristopheNicolas Boot sequence of the S30
console_port_connection.JPGJPG console_port_connection.JPG manage 60.1 K 15 Jun 2007 - 06:47 ChristopheNicolas How to connect the console port
gigabeat_s60_logic_block_diagram.pngpng gigabeat_s60_logic_block_diagram.png manage 61.1 K 21 Nov 2006 - 21:07 MarcoenHirschberg logic block diagrams from the S60 service manual
gigabeat_s60_power_supply_block_diagram.pngpng gigabeat_s60_power_supply_block_diagram.png manage 30.3 K 21 Nov 2006 - 21:08 MarcoenHirschberg electrical block diagrams from the S60 service manual
hello-world-2-gigabeats.jpgjpg hello-world-2-gigabeats.jpg manage 81.9 K 12 Jul 2007 - 07:01 JamesEspinoza  
hello-world-gigabeats.jpgjpg hello-world-gigabeats.jpg manage 102.5 K 12 Jul 2007 - 07:00 JamesEspinoza  
install.batbat install.bat manage 0.4 K 19 Apr 2008 - 17:13 AlexanderPapst This script helps to install a modified nk.bin with the patched Gigabeat V updater.
Edit | Attach | Print version | History: r83 < r82 < r81 < r80 | Backlinks | View wiki text | More topic actions...
r82 - 02 Aug 2009 - 14:30:38 - TorneWuff

Parents: GigabeatSPort
Copyright by the contributing authors.