[U-Boot] U-boot running on DDR fails to detect the CFI compliant flash

Francisco francisco.missael at gmail.com
Wed Feb 15 09:14:36 CET 2012


Stefan Roese <sr <at> denx.de> writes:

> 
> Hi Prakash,
> 
> On Friday 15 January 2010 14:23:35 prakash bedge wrote:
> > In October 09 month, I had asked whether U-boot supports M29W128GH, a CFI
> > compilant chip and I got a yes reply. Please refer below URL for reference.
> > 
> > http://www.mail-archive.com/u-boot <at> lists.denx.de/msg24531.html.
> 
> Link not found. Please correct.
> 
> > So I have used Uboot for my PPC440 based board.
> > 
> > When I flashed U-boot on flash and then run the Uboot in DDR then U-boot
> > running on DDR fails to detect CFI chip M29W128GH (16M x 8 mode).
> > 
> > flash_detect_cfi function gives error that flash not found. I have added
> > debug statements for temporary debug purpose.
> >  Please see the below error I am getting.
> > 
> > The CFI query address looks different in below code and not as per ST make
> > M29W128GH specs. PCIMW.
> 
> What's the difference then? Please give an example.
> 
> I suggest you take a look at this prelimiary patch:
> 
> http://lists.denx.de/pipermail/u-boot/2009-December/065562.html
> 
> Please let me know if this helps or not.
> 
> Cheers,
> Stefan
> 
> --
> DENX Software Engineering GmbH,      MD: Wolfgang Denk & Detlev Zundel
> HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: (+49)-8142-66989-0 Fax: (+49)-8142-66989-80 Email: office <at> denx.de
> 

   Hello everyone,
   Im still facing this issue with i tried to detect the M29W256G . I applied
the patch above and the code keeps on hanging in the first reset commmad. 


void __flash_cmd_reset(flash_info_t *info)
{
        /*
         * We do not yet know what kind of commandset to use, so we issue
         * the reset command in both Intel and AMD variants, in the hope
         * that AMD flash roms ignore the Intel command.
         */
        flash_write_cmd(info, 0, 0, AMD_CMD_RESET);   <<<<<----HERE it stops

        if(info->cfi_fixup & CFI_NUMONYX_FIXUP)
                return;

        udelay(1);
        flash_write_cmd(info, 0, 0, FLASH_CMD_RESET);
}
void flash_cmd_reset(flash_info_t *info)
        __attribute__((weak,alias("__flash_cmd_reset")));

static int __flash_detect_cfi (flash_info_t * info, struct cfi_qry *qry)
{
        int cfi_offset;

#define reset() writew(0x00F0, CONFIG_SYS_FLASH_BASE)
#define unlock() writel(0x00AA, CONFIG_SYS_FLASH_BASE+(0x555<<1));
writel(0x0055, CONFIG_SYS_FLASH_BASE+(0x2AA<<1))
        /* Issue FLASH reset command */
        info->cfi_fixup = 0;

#ifdef  CONFIG_FLASH_NUMONYX_FIXUP
        info->cfi_fixup = CFI_NUMONYX_FIXUP;
#endif
        flash_cmd_reset(info); 



Boot Device: SD
I2C:   ready
DRAM:   2 GB
fwc addr 08000000 cmd f0 f0 8bit x 8 bit             

  if you please could provide any hint about who to overcome this issue, I would
apprecieate it so baddly.

Regards,
Francisco




   





More information about the U-Boot mailing list