Rockbox Development > New Ports

Sandisk C100 series

<< < (2/10) > >>

tarsius:
skaos: Thanks for the tip... I'll open it up soon.  btw: what is the attraction to experts-exchange?  I'm always frustrated to when google links me to their site and I'm not sure why it would be worth paying to use a forum or profitable to answer questions on a forum.

Bagder:  Thanks--I'm going to read more about the tcctool trick (http://forums.rockbox.org/index.php?topic=10164.msg100834)... I glanced through and saw there was some significance to the USB device ids, so for reference, my c140 has ids 140e:b021 (vendor:product) when attached in recovery mode (holding the middle "select" button while plugging in the USB cable), which appears to be a good thing.

Also, when attached in recovery mode, it is detected as "TCC77x_USB" and this website (http://forum.mp3store.pl/index.php?showtopic=14695&mode=threaded) indicates the CPU is a TCC770, so the TCC770 looks like a safe bet.

If the above website can be trusted, it also lists the following data:

--- Quote ---Telechips TCC 77x (ARM946 120 MHz +DSP) technologia 13 mikronowa

    * iAUDIO U3 >> Telechips TCC770 + codec Cirrus Logic CS42L51
    * Cowon iAUDIO F2 > Telechips TCC773 ((codec zintegrowany >codec Wolfson WM8731L )
    * Cowon iAUDIO 6 > Telechips TCC771L (codec zintegrowany >codec Wolfson WM8731L )
    * Cowon iAUDIO 7 > Telechips TCC771L (codec zintegrowany >codec Wolfson WM8731L )
    * Cowon iAUDIO T2 > Telechips TCC772S + Wolfson WM8731LS
    * LG-FM 20 > TCC771L ((codec zintegrowany >codec Wolfson WM8731L )
    * LG-FM 30 > TCC771L
    * LG-FM 33 > TCC771L
    * Logik DAX > Telechips TCC773 ((codec zintegrowany >codec Wolfson WM8731L )
    * Teclast T29 > TCC 770 + Wolfson WM8750 (player ten w Polsce sprzedawany jest pod markÄ… VTec PRO MP640)
    * Sandisk Sansa M-240-M 260 > TCC770 + codec Texas Instruments TI TLV320AIC23B
    * Sandisk Sansa C-140-C150 > TCC770 + codec Texas Instruments TI TLV320AIC23B (http://focus.ti.com/docs/prod/folders/print/tlv320aic23b.html)
    * Samsung YP-K5 > TCC770 + Wolfson WM8956
    * Samsung YP-K3 > TCC771L ( chip zintegrowany razem z codeciem Wolfson WM8731 L)
    * iBead 700 > TCC770 + Wolfson WM8750
    * VTec PRO MP640 > TCC770 + Wolfson WM8750 ( patrz Teclast T29 )
--- End quote ---

I've tried updating my c140 with the firmware updater (bottom of http://en.wikibooks.org/wiki/Sandisk_Sansa_MP3_players/c100), but the program's "Update" bottom remains inactive even though I connected the player in recovery mode according to the instructions.  I'm running Vista Home Premium, which may be causing the problem.  I also tried to run it from virtualized XP Professional (http://www.virtualbox.org/), but I could not get the VirtualBox's USB Controller to properly communicate with the "TCC77x_USB".  Can anyone else out there try the firmware update from Vista and/or XP?

Question: In general, do mp3 players (particularly SanDisk players) prevent you from updating to a previous firmware version or to the same version?

Next, I disassembled the "player.rom" firmware file using arm-eabi-objdump.exe from devKitARM (http://www.devkitpro.org/) executing
"arm-eabi-objdump -D --target binary -marm player.rom > disasm.txt" to produce the output "disasm.txt"
I browsed the code briefly and observed that it more or less matches the "Dual CRC" format (http://www.rockbox.org/twiki/bin/view/Main/TelechipsInfo)

--- Code: ---       0: e59ff390 ldr pc, [pc, #912] ; 0x398          <--Location of firmware begin address
       4: ffff0106 undefined instruction 0xffff0106
       8: 3a726556 bcc 0x1c99568                   ;  Data is ASCII "Ver:"
       c: 31373030 teqcc r7, r0, lsr r0               ;  Data is ASCII "0071"
      10: 2cbcbcb7 ldccs 12, cr11, [ip], #732      ;  CRC
      14: 00000000 andeq r0, r0, r0
      18: 8b803d18 blhi 0xfe00f480                 ; CRC
      1c: 0011d008 andeqs sp, r1, r8                 ; Length of firmware = 1167368
      ....
      60: eb000084 bl 0x278                  ;<-- Beginning of firmware ...
      64: eb00005c bl 0x1dc
      68: eb000042 bl 0x178
      ....
      398: 20000060 andcs r0, r0, r0, rrx    ;<-- Firmware begins at 0x20000060

--- End code ---
**Note that 0x4 - 0x1c and 0x398 is data, so the corresponding instructions are nonsense.

Steve

linuxstb:
tarsius,

Have you investigated the UAC (User Access Control) settings?  IIUC, that prevents applications talking directly to hardware, even when running them as Administrator.  You could either disable UAC completely, or try and configure it to give the FW updater the appropriate permissions.  google should help.

Based on your info, I've added initial support for the C100 to tcctool.  But I don't know what the value of "SDCFG" should be.   Ideally, I need someone who can successfully use the FW updater in Windows to use a USB sniffing tool to create a log of the USB traffic during such a firmware update.  I've used usbsnoop for this.

And yes, the C100 firmware definitely looks like a TCC77x device, so the work being done on other TCC77x devices will be a lot of help towards a C100 port.

tarsius:
For reference, I couldn't get the firmware updater to run even with UAC turned off, but I did update the c140 firmware on an XP box.  It looks like the SDCFG is 0x42E97010 as shown in the screenshot.  I'll send you the log too, if you need it.

To answer my question in the my previous port, you can use the updater more than once (i did it twice)... although the tcctool will keep that from being important.

I read about the tcctool in the Cowon D2 thread, browsed the tcctool (http://svn.rockbox.org/viewvc.cgi/trunk/tools/telechips.c?view=markup) and telechips CRC code (http://svn.rockbox.org/viewvc.cgi/trunk/tools/telechips.c?view=markup), and read some background RockBox info.  My next steps will be to get a linux partition set up and checkout the RockBox code, and take apart my c140 sometime soon.  I'll test out the tcctool and if it works, we start writing a bootloader/figuring out how to communicate with the electronics, right?

Steve

tarsius:
New Sansa c100 wiki page: http://www.rockbox.org/twiki/bin/view/Main/SansaC100Port

I opened up my c140 and took some pictures of the inside.  Warning to anyone thinking of opening a c100 series player:  you cannot do it gently and it left my player looking like a dog chewed on it.  If you do want to get inside, first find a flathead screwdriver or dull razor blade (something with a very fine, flat tip) and wedge it between the BLACK, TOP plastic cover and the MIDDLE SILVER "layer".  Be very careful to pry at SEVEN places where the tabs (extending from the silver layer to the black) are located.  If you shove your tool in too far and miss the tabs, it's very likely you'll break off a delicate surface-mount component... It's a miracle I didn't break anything.  There are SIX large tabs along the length of the player, three on each side, and a SEVENTH, very tiny tab just above the I/O connector.  After you pop the black plastic plate off of the top, you'll see four little screws at the corners of the circuit board... removing these allows you to remove the silvery-goldish plastic backing plate.  When you remove the backing plate, be careful with the battery spring... it's connected to the circuit board, but it protrudes through the black and you must gently push it out.

The following photos are posted on the wiki page:
1) Looking inside the player after removing the black cover.
2) A shot of the text on the display.
3) A view of the player with the silvery-goldish backing removed
4) Text on the three major chips inside
5) View of the smaller circuit board that I'm afraid to remove
6) Close-up of the smaller circuit board... **Note the pins from an additional chip on this board.

I've been trying to install Linux on my laptop (HP tx1000... known for Linux issues), but so far it's not working. I'm going to keep pursuing that because I'm also having trouble getting VirtualBox'd Ubuntu to recognize my Sansa in recovery mode.

Steve

ParallaX:

--- Quote from: linuxstb on October 27, 2007, 04:03:48 AM ---Ideally, I need someone who can successfully use the FW updater in Windows to use a USB sniffing tool to create a log of the USB traffic during such a firmware update.
--- End quote ---

maybe this info will help? :


--- Code: ---[ROM File]
File Name=player.rom
[NOR Vendor]
Target Address=1879048192
[Write Target]
Media=1
[FW_DN]
Version=1.0.5A
Harp Version=2.0.5A
Company=Telechips.Inc
[DUMP File]
NOR Dump File=mem.INI
NOR Dump Size=0
[Writer PGM]
File Name=
Default Use=1
[Option]
CheckSum=1
File Name=1
Format=0
Font Writing=1
Font File name=
Serial Number=0
Serial File Name=
Serial Count=1
Hidden Area Size=6083
Download Sample File=0
Sample File Path=
Font File Path=c:\windows\temp\sansa\firmware
Customer Number=0
PC Number=0
[SERIALNUM]
File Name=
[Auto Writing]
Enable=0
[SDRAM Information]
SDRAM Size=1
[Hidden Area Map]
Total Fragment=6
F0 Start=0
F0 Name=770Font_.TCC
F1 Start=5376
F1 Name=UNICP437.TBL
F2 Start=5380
F2 Name=UNICP932.TBL
F3 Start=5512
F3 Name=UNICP936.TBL
F4 Start=5709
F4 Name=UNICP949.TBL
F5 Start=5929
F5 Name=UNICP950.TBL
--- End code ---

this is configuration .ini file used by FW updater.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version