From: duckycool <duckycool@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] No NAND device found!!! Freescale MPC8544+SAMSUNG 1GB Nand Flash , please help!
Date: Wed, 16 Sep 2009 16:40:01 -0700 (PDT) [thread overview]
Message-ID: <25482840.post@talk.nabble.com> (raw)
In-Reply-To: <20090916170037.GA16208@oksana.dev.rtsoft.ru>
Hi Anton,
Thank you, I have done a lot trial and error but still in vain.
I'm using u-boot-2009.06-rc3.
This is my /board/freescale/mpc8544board/nand.c below, as to nand_base.c
and fsl_upm.c I didn't change change anything.
=========================== nand.c ====================================
/*
* Initialize UPM for NAND flash access.
*/
static void nand_upm_setup (volatile ccsr_lbc_t *lbc)
{
int i=0;
static uint UPMATable[] = {
0x0fffff00, 0x0ffcfc00, 0x0ffcfc00, 0xfffffc04,
0xfffffc01, 0xfffffc00, 0xfffffc00, 0xfffffc01,
0x0ffffc00, 0x0ffcfc80, 0x0ffdfc00, 0x0ffffc04,
0x0ffcfc00, 0x0ffdfc00, 0x0ffffc04, 0x0ffcfc00,
0x0ffdfc00, 0x0ffffc04, 0x0ffcfc00, 0x0ffdfc00,
0x0ffffc84, 0xfffffc00, 0xfffffc01, 0xfffffc01,
0xfffffc20, 0x0fe33c00, 0x0fa33c00, 0x0ff77c05,
0xfffffc00, 0xfffffc00, 0xfffffc00, 0xfffffc01,
0x0feffc80, 0x0faffc00, 0x0ffffc04, 0x0feffc00,
0x0faffc00, 0x0ffffc04, 0x0feffc00, 0x0faffc00,
0x0ffffc04, 0x0feffc00, 0x0faffc00, 0x0ffffc84,
0xfffffc01, 0xfffffc00, 0xfffffc00, 0xfffffc01,
0xfffffc00, 0xfffffc00, 0xfffffc00, 0xfffffc00,
0xfffffc00, 0xfffffc00, 0xfffffc00, 0xfffffc00,
0xfffffc00, 0xfffffc00, 0xfffffc00, 0xfffffc01,
0xfffffc00, 0xfffffc00, 0xfffffc00, 0xfffffc01
};
lbc->mamr = 0x10000000; //op=10
for(i=0;i<64;i++)
{
lbc->mdr = UPMATable[i];
printf("lbc->mdr is 0x%08x \n", lbc->mdr);
*(char *)(0xff000000) = 0x0; //dummy write
}
lbc->mamr = 0x00000000; //normal
while (lbc->mamr !=0x00000000); //wait MAMR finish writting
printf("ram array is done\n");
return;
}
static struct fsl_upm_nand fun = {
.width = 8,
.upm_cmd_offset = 0x08,
.upm_addr_offset = 0x10,
.upm_mar_chip_offset = CONFIG_SYS_NAND_CS_DIST,
.chip_offset = CONFIG_SYS_NAND_CS_DIST,
.chip_delay = NAND_BIG_DELAY_US, //per spec, 25 us
.wait_flags = FSL_UPM_WAIT_RUN_PATTERN | FSL_UPM_WAIT_WRITE_BUFFER,
};
int board_nand_init (struct nand_chip *nand)
{
volatile ccsr_lbc_t *lbc = (void *)(CONFIG_SYS_MPC85xx_LBC_ADDR);
debug("board_nand_init begin \n");
nand_upm_setup (lbc);
nand->options = NAND_SAMSUNG_LP_OPTIONS ;
fun.upm.io_addr = nand->IO_ADDR_R;
fun.upm.mxmr = (void __iomem *)&lbc->mamr;
fun.upm.mdr = (void __iomem *)&lbc->mdr;
fun.upm.mar = (void __iomem *)&lbc->mar;
debug("fun.upm.io_addr is 0x%08x \n", fun.upm.io_addr );
debug("fun.upm.mxmr is 0x%08x \n", fun.upm.mxmr );
debug("fun.upm.mdr is 0x%08x \n", fun.upm.mdr );
debug("fun.upm.mar is 0x%08x \n", fun.upm.mar );
return fsl_upm_nand_init (nand, &fun);
}
=======================================================================
Any hint ? Please help !
Thanks.
Anton Vorontsov-2 wrote:
>
> On Wed, Sep 16, 2009 at 11:55:12PM +0800, Bin Meng wrote:
>> On Wed, Sep 16, 2009 at 5:40 AM, duckycool <duckycool@gmail.com> wrote:
>> >
>> > ? Correction, the nand flash is K9F8G08U0M.
>> >
>>
>> K9F8G08U0M is a 4KB page size NAND flash.
>> Freescale eLBC NAND flash controller does not support 4KB page size.
>
> MPC8544 doesn't have eLBC, so its LBC can't speak NAND directly,
> only via UPM (user-programmable machine). And with UPM we can
> support any NAND flashes.
>
> As for the original problem, it could be anything: schematics (I assume
> it's custom 8544 board), timings setup (OR/BR), or UPM array problem.
>
> Unfortunately it's hard to debug these sort of things without logic
> analyzer, so if you don't have one, I'd suggest to play
> 'trial & error' game.
>
> Cc'ing Wolfgang Grandegger though, maybe he has better ideas.
>
> --
> Anton Vorontsov
> email: cbouatmailru at gmail.com
> irc://irc.freenode.net/bd2
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
>
>
--
View this message in context: http://www.nabble.com/No-NAND-device-found%21%21%21-Freescale-MPC8544%2BSAMSUNG-1GB-Nand-Flash-%2C-please-help%21-tp25455541p25482840.html
Sent from the Uboot - Users mailing list archive at Nabble.com.
prev parent reply other threads:[~2009-09-16 23:40 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-15 14:55 [U-Boot] No NAND device found!!! Freescale MPC8544+SAMSUNG 1GB Nand Flash , please help! duckycool
2009-09-15 21:40 ` duckycool
2009-09-16 15:55 ` Bin Meng
2009-09-16 16:40 ` duckycool
2009-09-16 17:00 ` Anton Vorontsov
2009-09-16 23:40 ` duckycool [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=25482840.post@talk.nabble.com \
--to=duckycool@gmail.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox