I-Appliance BBS
The Official Source for Internet Appliance Upgrades and Mods
Amazon Honor System Click Here to Pay Learn More
BBS Main List | Sign In | Sign Up | Search | Help | Linux-Hacker.netReply to Thread | Printer |

Home / MISC Areas / Mattel JuiceBox
JB Access to NAND

New MessageJB Access to NAND (modified 0 times) DavidM348
Profile
When booting with a NAND cartridge installed, does the JB check to see if a sector is marked bad in the "spare" area (OOB) before loading, or will it just read in sector 0,1,2... regardless? I've been disassembling the JB ROM to see if it does, but haven't found anything yet. The first few sectors of my hacked SD cart are bad, but I want to still try and use it (and not have to solder up another one!)

On a side note, anyone interested in selling pre-made hacked SD/MMC carts?? I have lost all confidence in my electronics skills!

-David

01-15-2007 21:01:45

New MessageRE:JB Access to NAND (modified 1 times) jbfan
Profile
I think the consensuses here is that the spare bytes are ignored by the JB (but only the source code knows for sure.
This makes sense as the target is a OTP ROM (JuiceWare Cart.) that is programmed and tested separately. Assuming a high yield they just toss any parts that don't program correctly.

How are you determining that the xD is bad?
Are you getting an error status back from the part when you erase the block or try to program the sector?

-J

01-16-2007 06:15:01

New MessageRE:JB Access to NAND (modified 0 times) DavidM348
Profile
Thanks for the reply!

I am using unix_guy's nandwrite program. When I first ran it, it gave error messages on the fist few sectors. I posted the issue on the board, and unix_guy gave me some advice and things to try (I forgot to tie nWP high, so I soldered a wire between pins 1 and 11 on the xD card). After fixing my cart, I ran again and found all sectors through 0x015d would read back different values than what was written ("bad" sectors). The closer I got to sector 0x015d, the closer the values would be. From 0x015d on up, the values matched exactly, so I just assumed I screwed up the first 0x015d sectores by overheating the xD card while soldering or something like that (I am very weak on hardware mods!). So I modified nandwrite to print out the extra bytes and write zero's into the OOB area for any sectors that were bad, hoping the JB will read the OOB are and move to the first good sector (I know, I'm dreaming!) Of course, every time I run my modified nandwrite routine, I get more and more bad sectors. At this point, the first 1 MB of my 64 MB xD card is "bad."

I am wondering if there might not be something wrong (hardware-wise) with my hacked cart. It reads fine on the JB diag test, but my issue seems to be with the writing to the memory. I thought about giving up on the cart and making another with a new xD card, but how do I know the same thing won't happen again??

-David

01-16-2007 20:36:02

New MessageRE:JB Access to NAND (modified 0 times) jbfan
Profile

I am using unix_guy's nandwrite program.
Have not had a chance to try this yet, but looks like a good app. From a quick look at the source code it appears that the status byte is not checked after erase or program. You may want to add some code to read that and print it out, in most cases if the lsb is a one then the (erase|program) failed i.e. that block/sector is bad.

Unfortunately from what you posted in the other thread it looks like the bad bits are all stuck at zero failures which is consistent with the failure mode of NAND flash. So the erase should return a failed status on those blocks.


I am wondering if there might not be something wrong (hardware-wise) with my hacked cart. It reads fine on the JB diag test, but my issue seems to be with the writing to the memory.
If you are getting the same checksum every time (for a given content) then the wiring must be correct.


I thought about giving up on the cart and making another with a new xD card, but how do I know the same thing won't happen again??
You may want to consider using a socket.

-J

01-17-2007 05:37:13

New MessageRE:JB Access to NAND (modified 0 times) DavidM348
Profile
Thanks for the tips.

I've checked the status register after an erase and program, both return 0xC0 (11000000), which indicates success, as well as WP bit set to 1 (not write protected) and not busy. This, BTW, was on a "bad" sector. To make sure this was really indicating status, I plugged in a Juiceware cart and got 0X41 after a read and erase (not successful and write protected) so looks like status is working. So even though programing a sector with data does not change the bits, I still get a successful ERASE and PROGRAM from the NAND. As I continue playing with this, it looks like after I successfully erase, write and read an area of the nand once, all additional attempts fail - one erase/program cycle and I kill it :(.

Some things I've noticed (these may be obvious, but I wanted to mention for others trying this) - the "NAND Flash 101" tutorial is really good, but apparently some sections are specific for Micron memory. When using READ ID, my Olympus card ID's as manufactured by Matrix (I thought I read either Toshiba or Samsung made the NAND for these, but I guess not??). The READ ID command only returns 3 bytes of info like unix_guy's code shows, not 4 according to the tutorial. My page size is 512 bytes as in the source code, not 2048 as in the tutorial. And the status register bits 0, 6, and 7 are the only ones that relay any info, not like that shown in the tutorial. The essential commands, however, are the same (READ1, ERASE, READ ID, READ STATUS, PROGRAM) as the tutorial. This has really been fun learning how NAND flash works!

I guess I need to follow your advice and try again, this time using an xD socket. Any tips on where to pick up somne cheap sockets with good (read as BIG) pins to solder to??

Thanks!

-David

01-21-2007 18:51:50

New MessageRE:JB Access to NAND (modified 0 times) jbfan
Profile

...status register after an erase and program, both return 0xC0 (11000000)...
If the erase is successful you should be able to verify that the memory is all 0xFF in that block. This would indicate that the memory array is in good shape and maybe there is something wrong with the write. It's possible the part you are using is "slow" and needs a delay between bytes on the write, read or both.

...after I successfully erase, write and read an area of the nand once, all additional attempts fail...
This would imply that my speculation on the slow part is wrong but still might be worth a try.

...my Olympus card ID's as manufactured by Matrix (I thought I read either Toshiba or Samsung made the NAND for these...
Yes, my Kodak 32M part (stamped Toshiba on the back) also returns the Matrix ID. I have been assuming that the IDs are technology dependent; the Matrix part is an OTP while the Toshiba is FLASH even though there is no way to tell which is which electronically.

...Any tips on where to pick up somne cheap sockets with good (read as BIG) pins to solder to??
Someone posted a link to a socket from Mouser a while back. The socket is a little more difficult to solder to than an xD card;-(
For a kludgy solution you could solder to the SMC pads of an xD to SMC adapter. Unfortunately, looks like the sources for these adapters may have dried up.

Good luck.

-J

01-22-2007 04:41:55

New MessageRE:JB Access to NAND (modified 0 times) ForkBoy
Profile
Also for soldering small connector pins or the xD card, I suggest using solid core wire wrap wire -- You can get this at Radio Shack. If you get the wire wrap tool, inside the handle is a small wire stripper which makes life easier.

Then use the iron to melt a small amount of solder to the wire and seperately melt a small amount to the connector.
Then hold the wire to the connection and use the iron to solder the two together.

With a little pratice you will be able to solder the two together with a minimal amount of solder.
This also will keep from making solder bridges.

Using a small solid core wire will also keep small strands from creating shorts.

And if possible, always use a multimeter to check the connections for shorts or bad connections.

01-22-2007 11:17:19

New MessageRE:JB Access to NAND (modified 0 times) sweetlilmre
Profile
Hi,

See my post about the nandwrite fix. You are using a 64MB card if I recall,
which will exhibit this weird behaviour if the fix is not applied.

-(e)

02-04-2007 12:02:11

Reply to Thread | Printer |
All times are PSTPowered by UltraBoard v1.62



Copyright © 2000, Netmake Inc. All Rights Reserved.
See Terms and Conditions for more information.




i-opener opener laptop notebook computer help drivers dll free windows dos repair fix linux mac macintosh 2000 95 98 nt pc configure hardware software sound video netscape explorer network networking lan wan software cmos fat bios printer card mouse modem ide scsi cd rom controllers scanner tape hard drive cgi scripts source code mp3