diff options
| author | Bartlomiej Sieka <tur@semihalf.com> | 2006-03-05 18:57:33 +0100 | 
|---|---|---|
| committer | Bartlomiej Sieka <tur@semihalf.com> | 2006-03-05 18:57:33 +0100 | 
| commit | addb2e1650fdf872334478393f482dfdce965a61 (patch) | |
| tree | c16d3de22d1e1040d3f8e6ecfaed20bf2f2c5ea6 /board/esd/common/auto_update.c | |
| parent | 038ccac511214b062c56f22b9413f784b86bcd87 (diff) | |
| download | olio-uboot-2014.01-addb2e1650fdf872334478393f482dfdce965a61.tar.xz olio-uboot-2014.01-addb2e1650fdf872334478393f482dfdce965a61.zip | |
Re-factoring the legacy NAND code (legacy NAND now only in board-specific
code and in SoC code). Boards using the old way have CFG_NAND_LEGACY and
BOARDLIBS = drivers/nand_legacy/libnand_legacy.a added. Build breakage for
NETTA.ERR and NETTA_ISDN - will go away when the new NAND support is
implemented for these boards.
Diffstat (limited to 'board/esd/common/auto_update.c')
| -rw-r--r-- | board/esd/common/auto_update.c | 28 | 
1 files changed, 18 insertions, 10 deletions
| diff --git a/board/esd/common/auto_update.c b/board/esd/common/auto_update.c index 1decc0ec0..5a70176fa 100644 --- a/board/esd/common/auto_update.c +++ b/board/esd/common/auto_update.c @@ -23,10 +23,15 @@   */  #include <common.h> + +#ifndef CFG_NAND_LEGACY +#error CFG_NAND_LEGACY not defined in a file using the legacy NAND support! +#endif +  #include <command.h>  #include <image.h>  #include <asm/byteorder.h> -#include <linux/mtd/nand.h> +#include <linux/mtd/nand_legacy.h>  #include <fat.h>  #include "auto_update.h" @@ -37,6 +42,9 @@  #error "must define CFG_CMD_FAT"  #endif + + +  extern au_image_t au_image[];  extern int N_AU_IMAGES; @@ -76,9 +84,9 @@ extern block_dev_desc_t *get_dev (char*, int);  #define NANDRW_JFFS2	0x02  #define NANDRW_JFFS2_SKIP	0x04  extern struct nand_chip nand_dev_desc[]; -extern int nand_rw(struct nand_chip* nand, int cmd, size_t start, size_t len, +extern int nand_legacy_rw(struct nand_chip* nand, int cmd, size_t start, size_t len,  		   size_t * retlen, u_char * buf); -extern int nand_erase(struct nand_chip* nand, size_t ofs, size_t len, int clean); +extern int nand_legacy_erase(struct nand_chip* nand, size_t ofs, size_t len, int clean);  #endif /* (CONFIG_COMMANDS & CFG_CMD_NAND) */  extern block_dev_desc_t ide_dev_desc[CFG_IDE_MAXDEVICE]; @@ -259,9 +267,9 @@ int au_do_update(int i, long sz)  		} else {  #if (CONFIG_COMMANDS & CFG_CMD_NAND)  			printf("Updating NAND FLASH with image %s\n", au_image[i].name); -			debug ("nand_erase(%lx, %lx);\n", start, end); -			rc = nand_erase (nand_dev_desc, start, end - start + 1, 0); -			debug ("nand_erase returned %x\n", rc); +			debug ("nand_legacy_erase(%lx, %lx);\n", start, end); +			rc = nand_legacy_erase (nand_dev_desc, start, end - start + 1, 0); +			debug ("nand_legacy_erase returned %x\n", rc);  #endif  		} @@ -286,10 +294,10 @@ int au_do_update(int i, long sz)  			rc = flash_write((char *)addr, start, nbytes);  		} else {  #if (CONFIG_COMMANDS & CFG_CMD_NAND) -			debug ("nand_rw(%p, %lx %x)\n", addr, start, nbytes); -			rc = nand_rw(nand_dev_desc, NANDRW_WRITE | NANDRW_JFFS2, +			debug ("nand_legacy_rw(%p, %lx %x)\n", addr, start, nbytes); +			rc = nand_legacy_rw(nand_dev_desc, NANDRW_WRITE | NANDRW_JFFS2,  				     start, nbytes, (size_t *)&total, (uchar *)addr); -			debug ("nand_rw: ret=%x total=%d nbytes=%d\n", rc, total, nbytes); +			debug ("nand_legacy_rw: ret=%x total=%d nbytes=%d\n", rc, total, nbytes);  #endif  		}  		if (rc != 0) { @@ -304,7 +312,7 @@ int au_do_update(int i, long sz)  			rc = crc32 (0, (uchar *)(start + off), ntohl(hdr->ih_size));  		} else {  #if (CONFIG_COMMANDS & CFG_CMD_NAND) -			rc = nand_rw(nand_dev_desc, NANDRW_READ | NANDRW_JFFS2 | NANDRW_JFFS2_SKIP, +			rc = nand_legacy_rw(nand_dev_desc, NANDRW_READ | NANDRW_JFFS2 | NANDRW_JFFS2_SKIP,  				     start, nbytes, (size_t *)&total, (uchar *)addr);  			rc = crc32 (0, (uchar *)(addr + off), ntohl(hdr->ih_size));  #endif |