All of lore.kernel.org
 help / color / mirror / Atom feed
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.

      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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.