Quantcast

X-Loader hangs

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

X-Loader hangs

Francesco Marletta
Hello,
yesterday, one of the Overo Earth modules I'm using finished working, and I found the following message on the serial:

Texas Instruments X-Loader 1.4.4ss (Nov 15 2010 - 08:42:50)
Unknown chip: mfr was 0x24, id was 0x01
Unsupported Chip!
X-Loader hangs

What can I do?

Thanks
Francesco


--
Francesco Marletta
Development Manager

Mobile: +39.3317332107
Email: [hidden email]


------------------------------------------------------------------------------
10 Tips for Better Server Consolidation
Server virtualization is being driven by many needs.  
But none more important than the need to reduce IT complexity
while improving strategic productivity.  Learn More!
http://www.accelacomm.com/jaw/sdnl/114/51507609/
_______________________________________________
gumstix-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gumstix-users
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: X-Loader hangs

sturnfie
>> Texas Instruments X-Loader 1.4.4ss (Nov 15 2010 - 08:42:50)
>> Unknown chip: mfr was 0x24, id was 0x01
>> Unsupported Chip!
>> X-Loader hangs

Cannot tell you what changed.  I've detailed how to track the error below, but it looks like the NAND has been corrupted. It might be worth attempting to add a new mfr + id pair (matching the new values) to see what happens.

The error is generated after the function call to nand_chip() returns non-zero in x-loader source file /board/overo/overo.c

The overo seems to use the Samsung K9F1G08R0A driver. There are comments in the code that indicate this driver is useful for various Micron, Numonyx, and Hynix chips.

The driver file is found in x-load source /drivers/k9f1g08r0a.c

The expected ids are:

#define K9F1G08R0A_MFR          0xec  /* Samsung */
#define K9F1G08R0A_ID           0xa1  /* part # */

#define MT29F1G_MFR             0x2c  /* Micron */
#define MT29F1G_ID              0xa1  /* x8, 1GiB */

#define MT29F1G_MFR2            0x20  /* numonyx */
#define MT29F2G_ID              0xba  /* x16, 2GiB */

#define MT29F1G_MFR3            0xad  /* Hynix */
#define MT29F4G_ID              0xbc  /* x16, 4GiB */

The error code block checks the found IDs against those value sets:

(starting line 210 of drivers/k9f1g08r0a.c)
if (((mfr == MT29F1G_MFR || mfr == MT29F1G_MFR2 || mfr == MT29F1G_MFR3) &&
                (id == MT29F1G_ID || id == MT29F2G_ID || id == MT29F4G_ID)) ||
             (mfr == K9F1G08R0A_MFR && (id == K9F1G08R0A_ID))) {
                return 0;
        } else {
                if ((mfr == 0) && (id == 0)) {
                        printf("No NAND detected\n");
                        return 0;
                } else {
                        printf("Unknown chip: mfr was 0x%02x, id was 0x%02x\n", mfr, id);
                        return 1;
                }
        }

Lucas
--
Lucas Sturnfield
sturnfie@gmail.com
Loading...