|
|
Wiki > Main > GigabeatSInfo (compare)
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Difference: GigabeatSInfo (r83 vs. r82)Gigabeat S InfoPCB ScansFlash bootloaderThe flash bootloader is responsible for many of the restrictions described below. See GigabeatSOriginalLoader. Disk LayoutThe 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 WindowsRunning 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:
Step 1Compile (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. Step 3Download 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:
Loading code from LinuxWhat you need:
Step 1Compile (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. Step 3Compile 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 RockboxNote: 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 ToolThis 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
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 AnalysisThe 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
Points of interest in the i.mx31 reference manual related to this subject :
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)
*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.2The 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 If you just want to recover the original firmware, run the exe file and follow the instructions. Firmware RecoveryWindowsIf 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. LinuxSimply put your Gigabeat S into recovery mode and use sendfirm to copy the stock nk.bin to your device. HardwareCPUFreescale i.MX31L processor
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 Flash Intel F160C3TD7 Audio Codec Wolfson WM8978G Power managementFreescale MC13783 TV Out Focus FS456 USB OTG Philips ISP1504 FM Tuner Silicon Labs Si4700 (Not on 30gb model in some markets) Octal FET Bus SwitchTexas 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) BatteryLi-poly 3.7V 700mAh (Model number 1UPF383450-TBF) HDD Toshiba MK3008GAL (30gb version) Port Pin AssignmentsMC13783 Infonk.bin format See BIN format on http://www.xs4all.nl/~itsme/projects/xda/wince-flashfile-formats.html Other Links
r83 - 15 Apr 2010 - 09:11:19 - MichaelSevakis
Revision r83 - 15 Apr 2010 - 09:11 - MichaelSevakisRevision r82 - 02 Aug 2009 - 14:30 - TorneWuff Copyright © by the contributing authors.
|