|
|
|
@ -27,9 +27,6 @@ |
|
|
|
|
#include <command.h> |
|
|
|
|
#include <image.h> |
|
|
|
|
#include <asm/byteorder.h> |
|
|
|
|
#if defined(CONFIG_NAND_LEGACY) |
|
|
|
|
#include <linux/mtd/nand_legacy.h> |
|
|
|
|
#endif |
|
|
|
|
#include <fat.h> |
|
|
|
|
#include <part.h> |
|
|
|
|
|
|
|
|
@ -58,20 +55,6 @@ extern int flash_sect_erase(ulong, ulong); |
|
|
|
|
extern int flash_sect_protect (int, ulong, ulong); |
|
|
|
|
extern int flash_write (char *, ulong, ulong); |
|
|
|
|
|
|
|
|
|
#if defined(CONFIG_CMD_NAND) && defined(CONFIG_NAND_LEGACY) |
|
|
|
|
/* references to names in cmd_nand.c */ |
|
|
|
|
#define NANDRW_READ 0x01 |
|
|
|
|
#define NANDRW_WRITE 0x00 |
|
|
|
|
#define NANDRW_JFFS2 0x02 |
|
|
|
|
#define NANDRW_JFFS2_SKIP 0x04 |
|
|
|
|
extern struct nand_chip nand_dev_desc[]; |
|
|
|
|
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_legacy_erase(struct nand_chip* nand, size_t ofs, |
|
|
|
|
size_t len, int clean); |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
extern block_dev_desc_t ide_dev_desc[CONFIG_SYS_IDE_MAXDEVICE]; |
|
|
|
|
|
|
|
|
|
int au_check_cksum_valid(int i, long nbytes) |
|
|
|
@ -158,9 +141,6 @@ int au_do_update(int i, long sz) |
|
|
|
|
int off, rc; |
|
|
|
|
uint nbytes; |
|
|
|
|
int k; |
|
|
|
|
#if defined(CONFIG_CMD_NAND) && defined(CONFIG_NAND_LEGACY) |
|
|
|
|
int total; |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
hdr = (image_header_t *)LOAD_ADDR; |
|
|
|
|
#if defined(CONFIG_FIT) |
|
|
|
@ -240,15 +220,6 @@ int au_do_update(int i, long sz) |
|
|
|
|
au_image[i].name); |
|
|
|
|
debug ("flash_sect_erase(%lx, %lx);\n", start, end); |
|
|
|
|
flash_sect_erase (start, end); |
|
|
|
|
} else { |
|
|
|
|
#if defined(CONFIG_CMD_NAND) && defined(CONFIG_NAND_LEGACY) |
|
|
|
|
printf ("Updating NAND FLASH with image %s\n", |
|
|
|
|
au_image[i].name); |
|
|
|
|
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 |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
udelay(10000); |
|
|
|
@ -273,18 +244,7 @@ int au_do_update(int i, long sz) |
|
|
|
|
rc = flash_write ((char *)addr, start, |
|
|
|
|
(nbytes + 1) & ~1); |
|
|
|
|
} else { |
|
|
|
|
#if defined(CONFIG_CMD_NAND) && defined(CONFIG_NAND_LEGACY) |
|
|
|
|
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_legacy_rw: ret=%x total=%d nbytes=%d\n", |
|
|
|
|
rc, total, nbytes); |
|
|
|
|
#else |
|
|
|
|
rc = -1; |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
if (rc != 0) { |
|
|
|
|
printf ("Flashing failed due to error %d\n", rc); |
|
|
|
@ -297,16 +257,6 @@ int au_do_update(int i, long sz) |
|
|
|
|
if (au_image[i].type != AU_NAND) { |
|
|
|
|
rc = crc32 (0, (uchar *)(start + off), |
|
|
|
|
image_get_data_size (hdr)); |
|
|
|
|
} else { |
|
|
|
|
#if defined(CONFIG_CMD_NAND) && defined(CONFIG_NAND_LEGACY) |
|
|
|
|
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), |
|
|
|
|
image_get_data_size (hdr)); |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
if (rc != image_get_dcrc (hdr)) { |
|
|
|
|
printf ("Image %s Bad Data Checksum After COPY\n", |
|
|
|
|