Rockbox Development > New Ports

SanDisk Sansa m200 series (v1)

<< < (12/18) > >>

shotofadds:

--- Quote from: saratoga on May 29, 2008, 10:05:23 AM ---I thought the Telechips hardware was entirely documented? 

--- End quote ---

Indeed it is, and we have no problem communicating with the hardware. The problem is that the Telechips 'flash controller' is nothing more than a direct interface to the NAND chip, meaning we have to understand and deal with the logical<>physical block translation, bad blocks, ECC and wear-levelling mechasisms ourselves, in software. No small challenge, I'm sure you'll agree. :P

LambdaCalculus:
No arguments here about that. :)

rickbronson:
  I tried to find out what this SanDisk chip is but I really couldn't find much.  It does seem logical that it is some kind of bridge but then you wonder why they have so many pins on the daughter board.  If it was SD -> NAND then they would only need 10 or less pins.  Hmmm.

  I spent some time looking over a disassembly of their code at

http://www.efn.org/~rick/pub/SANSM200.rom.lis

  I wrote a perl script that tries to glean memory accesses (in the 080000XXX or 0x90000XXX range) from the listing.  It's output is here:

http://www.efn.org/~rick/pub/reg.access.txt

  While this technique is not perfect, it shows is that there are no accesses to the MMC/SD controller but quite a few to the NAND registers which makes me think they are using the NAND in it's raw form.

  So I guess I'll assume that it's directly connected and proceed with trying a port mentioned before.

shotofadds:

--- Quote from: rickbronson on May 29, 2008, 02:49:08 PM ---So I guess I'll assume that it's directly connected and proceed with trying a port mentioned before.

--- End quote ---
Sounds like a good way forward, although I'd check first whether linuxstb has already looked into this as part of his Logik DAX work.

After porting the hardware register addresses you'll need to add a section to nand_get_chip_info() containing the page size, number of blocks etc for the particular NAND chip in your player. Currently only a couple of Samsung 2GB/4GB chips used in the D2 are supported.

Assuming we get that far, you'll then need to hope that the Telechips block translation scheme didn't change between the 77x and 78x SDKs. Otherwise there might be some serious detective work to do...

(btw. I'm the author of the 78x code).

linuxstb:
I've looked a little at the NAND code, but haven't actually started work on it.  So it would be great if someone else did it... ;)

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version