Skip to content
Snippets Groups Projects
Commit afe0414b authored by Wolfgang Denk's avatar Wolfgang Denk
Browse files

Merge branch 'master' of git://git.denx.de/u-boot-nand-flash

parents a9402833 e1f70381
No related branches found
No related tags found
No related merge requests found
...@@ -2461,20 +2461,24 @@ static int nand_flash_detect_onfi(struct mtd_info *mtd, ...@@ -2461,20 +2461,24 @@ static int nand_flash_detect_onfi(struct mtd_info *mtd,
/* check version */ /* check version */
val = le16_to_cpu(p->revision); val = le16_to_cpu(p->revision);
if (val == 1 || val > (1 << 4)) { if (val & (1 << 5))
printk(KERN_INFO "%s: unsupported ONFI " chip->onfi_version = 23;
"version: %d\n", __func__, val); else if (val & (1 << 4))
return 0;
}
if (val & (1 << 4))
chip->onfi_version = 22; chip->onfi_version = 22;
else if (val & (1 << 3)) else if (val & (1 << 3))
chip->onfi_version = 21; chip->onfi_version = 21;
else if (val & (1 << 2)) else if (val & (1 << 2))
chip->onfi_version = 20; chip->onfi_version = 20;
else else if (val & (1 << 1))
chip->onfi_version = 10; chip->onfi_version = 10;
else
chip->onfi_version = 0;
if (!chip->onfi_version) {
printk(KERN_INFO "%s: unsupported ONFI "
"version: %d\n", __func__, val);
return 0;
}
if (!mtd->name) if (!mtd->name)
mtd->name = p->model; mtd->name = p->model;
...@@ -2482,7 +2486,7 @@ static int nand_flash_detect_onfi(struct mtd_info *mtd, ...@@ -2482,7 +2486,7 @@ static int nand_flash_detect_onfi(struct mtd_info *mtd,
mtd->writesize = le32_to_cpu(p->byte_per_page); mtd->writesize = le32_to_cpu(p->byte_per_page);
mtd->erasesize = le32_to_cpu(p->pages_per_block) * mtd->writesize; mtd->erasesize = le32_to_cpu(p->pages_per_block) * mtd->writesize;
mtd->oobsize = le16_to_cpu(p->spare_bytes_per_page); mtd->oobsize = le16_to_cpu(p->spare_bytes_per_page);
chip->chipsize = le32_to_cpu(p->blocks_per_lun) * mtd->erasesize; chip->chipsize = (uint64_t)le32_to_cpu(p->blocks_per_lun) * mtd->erasesize;
*busw = 0; *busw = 0;
if (le16_to_cpu(p->features) & 1) if (le16_to_cpu(p->features) & 1)
*busw = NAND_BUSWIDTH_16; *busw = NAND_BUSWIDTH_16;
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
# (C) Copyright 2007 # (C) Copyright 2007
# Stefan Roese, DENX Software Engineering, sr@denx.de. # Stefan Roese, DENX Software Engineering, sr@denx.de.
# #
# Copyright 2009 Freescale Semiconductor, Inc. # Copyright 2009-2011 Freescale Semiconductor, Inc.
# #
# See file CREDITS for list of people who contributed to this # See file CREDITS for list of people who contributed to this
# project. # project.
...@@ -32,8 +32,8 @@ include $(TOPDIR)/config.mk ...@@ -32,8 +32,8 @@ include $(TOPDIR)/config.mk
nandobj := $(OBJTREE)/nand_spl/ nandobj := $(OBJTREE)/nand_spl/
LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
LDFLAGS := -T $(LDSCRIPT) -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) $(LDFLAGS) \ LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
$(LDFLAGS_FINAL) $(LDFLAGS) $(LDFLAGS_FINAL)
AFLAGS += -DCONFIG_NAND_SPL AFLAGS += -DCONFIG_NAND_SPL
CFLAGS += -DCONFIG_NAND_SPL CFLAGS += -DCONFIG_NAND_SPL
...@@ -56,11 +56,14 @@ $(nandobj)u-boot-spl-16k.bin: $(nandobj)u-boot-spl ...@@ -56,11 +56,14 @@ $(nandobj)u-boot-spl-16k.bin: $(nandobj)u-boot-spl
$(nandobj)u-boot-spl.bin: $(nandobj)u-boot-spl $(nandobj)u-boot-spl.bin: $(nandobj)u-boot-spl
$(OBJCOPY) ${OBJCFLAGS} -O binary $< $@ $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
$(nandobj)u-boot-spl: $(OBJS) $(nandobj)u-boot-spl: $(OBJS) $(nandobj)u-boot-nand_spl.lds
cd $(LNDIR) && $(LD) $(LDFLAGS) $(__OBJS) $(PLATFORM_LIBS) \ cd $(LNDIR) && $(LD) $(LDFLAGS) $(__OBJS) $(PLATFORM_LIBS) \
-Map $(nandobj)u-boot-spl.map \ -Map $(nandobj)u-boot-spl.map \
-o $(nandobj)u-boot-spl -o $(nandobj)u-boot-spl
$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
# create symbolic links for common files # create symbolic links for common files
$(obj)cache.c: $(obj)cache.c:
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
# (C) Copyright 2007 # (C) Copyright 2007
# Stefan Roese, DENX Software Engineering, sr@denx.de. # Stefan Roese, DENX Software Engineering, sr@denx.de.
# #
# Copyright 2009 Freescale Semiconductor, Inc. # Copyright 2009-2011 Freescale Semiconductor, Inc.
# #
# See file CREDITS for list of people who contributed to this # See file CREDITS for list of people who contributed to this
# project. # project.
...@@ -32,8 +32,8 @@ include $(TOPDIR)/config.mk ...@@ -32,8 +32,8 @@ include $(TOPDIR)/config.mk
nandobj := $(OBJTREE)/nand_spl/ nandobj := $(OBJTREE)/nand_spl/
LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
LDFLAGS := -T $(LDSCRIPT) -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) $(LDFLAGS) \ LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
$(LDFLAGS_FINAL) $(LDFLAGS) $(LDFLAGS_FINAL)
AFLAGS += -DCONFIG_NAND_SPL AFLAGS += -DCONFIG_NAND_SPL
CFLAGS += -DCONFIG_NAND_SPL CFLAGS += -DCONFIG_NAND_SPL
...@@ -56,11 +56,14 @@ $(nandobj)u-boot-spl-16k.bin: $(nandobj)u-boot-spl ...@@ -56,11 +56,14 @@ $(nandobj)u-boot-spl-16k.bin: $(nandobj)u-boot-spl
$(nandobj)u-boot-spl.bin: $(nandobj)u-boot-spl $(nandobj)u-boot-spl.bin: $(nandobj)u-boot-spl
$(OBJCOPY) ${OBJCFLAGS} -O binary $< $@ $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
$(nandobj)u-boot-spl: $(OBJS) $(nandobj)u-boot-spl: $(OBJS) $(nandobj)u-boot-nand_spl.lds
cd $(LNDIR) && $(LD) $(LDFLAGS) $(__OBJS) $(PLATFORM_LIBS) \ cd $(LNDIR) && $(LD) $(LDFLAGS) $(__OBJS) $(PLATFORM_LIBS) \
-Map $(nandobj)u-boot-spl.map \ -Map $(nandobj)u-boot-spl.map \
-o $(nandobj)u-boot-spl -o $(nandobj)u-boot-spl
$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
# create symbolic links for common files # create symbolic links for common files
$(obj)cache.c: $(obj)cache.c:
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
# (C) Copyright 2007 # (C) Copyright 2007
# Stefan Roese, DENX Software Engineering, sr@denx.de. # Stefan Roese, DENX Software Engineering, sr@denx.de.
# #
# Copyright 2009-2010 Freescale Semiconductor, Inc. # Copyright 2009-2011 Freescale Semiconductor, Inc.
# #
# See file CREDITS for list of people who contributed to this # See file CREDITS for list of people who contributed to this
# project. # project.
...@@ -32,8 +32,8 @@ include $(TOPDIR)/config.mk ...@@ -32,8 +32,8 @@ include $(TOPDIR)/config.mk
nandobj := $(OBJTREE)/nand_spl/ nandobj := $(OBJTREE)/nand_spl/
LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
LDFLAGS := -T $(LDSCRIPT) -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) $(LDFLAGS) \ LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
$(LDFLAGS_FINAL) $(LDFLAGS) $(LDFLAGS_FINAL)
AFLAGS += -DCONFIG_NAND_SPL AFLAGS += -DCONFIG_NAND_SPL
CFLAGS += -DCONFIG_NAND_SPL CFLAGS += -DCONFIG_NAND_SPL
...@@ -56,11 +56,14 @@ $(nandobj)u-boot-spl-16k.bin: $(nandobj)u-boot-spl ...@@ -56,11 +56,14 @@ $(nandobj)u-boot-spl-16k.bin: $(nandobj)u-boot-spl
$(nandobj)u-boot-spl.bin: $(nandobj)u-boot-spl $(nandobj)u-boot-spl.bin: $(nandobj)u-boot-spl
$(OBJCOPY) ${OBJCFLAGS} -O binary $< $@ $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
$(nandobj)u-boot-spl: $(OBJS) $(nandobj)u-boot-spl: $(OBJS) $(nandobj)u-boot-nand_spl.lds
cd $(LNDIR) && $(LD) $(LDFLAGS) $(__OBJS) $(PLATFORM_LIBS) \ cd $(LNDIR) && $(LD) $(LDFLAGS) $(__OBJS) $(PLATFORM_LIBS) \
-Map $(nandobj)u-boot-spl.map \ -Map $(nandobj)u-boot-spl.map \
-o $(nandobj)u-boot-spl -o $(nandobj)u-boot-spl
$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
# create symbolic links for common files # create symbolic links for common files
$(obj)cache.c: $(obj)cache.c:
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
# (C) Copyright 2007 # (C) Copyright 2007
# Stefan Roese, DENX Software Engineering, sr@denx.de. # Stefan Roese, DENX Software Engineering, sr@denx.de.
# #
# Copyright 2009 Freescale Semiconductor, Inc. # Copyright 2009-2011 Freescale Semiconductor, Inc.
# #
# See file CREDITS for list of people who contributed to this # See file CREDITS for list of people who contributed to this
# project. # project.
...@@ -32,8 +32,8 @@ include $(TOPDIR)/config.mk ...@@ -32,8 +32,8 @@ include $(TOPDIR)/config.mk
nandobj := $(OBJTREE)/nand_spl/ nandobj := $(OBJTREE)/nand_spl/
LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
LDFLAGS := -T $(LDSCRIPT) -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) $(LDFLAGS) \ LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
$(LDFLAGS_FINAL) $(LDFLAGS) $(LDFLAGS_FINAL)
AFLAGS += -DCONFIG_NAND_SPL AFLAGS += -DCONFIG_NAND_SPL
CFLAGS += -DCONFIG_NAND_SPL CFLAGS += -DCONFIG_NAND_SPL
...@@ -56,11 +56,14 @@ $(nandobj)u-boot-spl-16k.bin: $(nandobj)u-boot-spl ...@@ -56,11 +56,14 @@ $(nandobj)u-boot-spl-16k.bin: $(nandobj)u-boot-spl
$(nandobj)u-boot-spl.bin: $(nandobj)u-boot-spl $(nandobj)u-boot-spl.bin: $(nandobj)u-boot-spl
$(OBJCOPY) ${OBJCFLAGS} -O binary $< $@ $(OBJCOPY) ${OBJCFLAGS} -O binary $< $@
$(nandobj)u-boot-spl: $(OBJS) $(nandobj)u-boot-spl: $(OBJS) $(nandobj)u-boot-nand_spl.lds
cd $(LNDIR) && $(LD) $(LDFLAGS) $(__OBJS) $(PLATFORM_LIBS) \ cd $(LNDIR) && $(LD) $(LDFLAGS) $(__OBJS) $(PLATFORM_LIBS) \
-Map $(nandobj)u-boot-spl.map \ -Map $(nandobj)u-boot-spl.map \
-o $(nandobj)u-boot-spl -o $(nandobj)u-boot-spl
$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
# create symbolic links for common files # create symbolic links for common files
$(obj)cache.c: $(obj)cache.c:
......
...@@ -90,6 +90,10 @@ static int nand_command(struct mtd_info *mtd, int block, int page, int offs, u8 ...@@ -90,6 +90,10 @@ static int nand_command(struct mtd_info *mtd, int block, int page, int offs, u8
cmd = NAND_CMD_READ0; cmd = NAND_CMD_READ0;
} }
/* Shift the offset from byte addressing to word addressing. */
if (this->options & NAND_BUSWIDTH_16)
offs >>= 1;
/* Begin command latch cycle */ /* Begin command latch cycle */
this->cmd_ctrl(mtd, cmd, NAND_CTRL_CLE | NAND_CTRL_CHANGE); this->cmd_ctrl(mtd, cmd, NAND_CTRL_CLE | NAND_CTRL_CHANGE);
/* Set ALE and clear CLE to start address cycle */ /* Set ALE and clear CLE to start address cycle */
......
...@@ -51,11 +51,11 @@ static void nand_load(unsigned int offs, int uboot_size, uchar *dst) ...@@ -51,11 +51,11 @@ static void nand_load(unsigned int offs, int uboot_size, uchar *dst)
{ {
fsl_lbc_t *regs = LBC_BASE_ADDR; fsl_lbc_t *regs = LBC_BASE_ADDR;
uchar *buf = (uchar *)CONFIG_SYS_NAND_BASE; uchar *buf = (uchar *)CONFIG_SYS_NAND_BASE;
int large = in_be32(&regs->bank[0].or) & OR_FCM_PGS; const int large = CONFIG_SYS_NAND_OR_PRELIM & OR_FCM_PGS;
int block_shift = large ? 17 : 14; const int block_shift = large ? 17 : 14;
int block_size = 1 << block_shift; const int block_size = 1 << block_shift;
int page_size = large ? 2048 : 512; const int page_size = large ? 2048 : 512;
int bad_marker = large ? page_size + 0 : page_size + 5; const int bad_marker = large ? page_size + 0 : page_size + 5;
int fmr = (15 << FMR_CWTO_SHIFT) | (2 << FMR_AL_SHIFT) | 2; int fmr = (15 << FMR_CWTO_SHIFT) | (2 << FMR_AL_SHIFT) | 2;
int pos = 0; int pos = 0;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment