mirror of
https://github.com/Stichting-MINIX-Research-Foundation/u-boot.git
synced 2025-09-10 12:39:22 -04:00
nand: Clean up nand_util
This patch cleans up nand_util.c: - Fix tabs. - Fix typos. - Remove space character before opening parenthesis in function calls. - Fix comments. Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com> Cc: Scott Wood <scottwood@freescale.com>
This commit is contained in:
parent
c788ecfdc3
commit
bd74280d62
@ -50,8 +50,8 @@
|
|||||||
#include <nand.h>
|
#include <nand.h>
|
||||||
#include <jffs2/jffs2.h>
|
#include <jffs2/jffs2.h>
|
||||||
|
|
||||||
typedef struct erase_info erase_info_t;
|
typedef struct erase_info erase_info_t;
|
||||||
typedef struct mtd_info mtd_info_t;
|
typedef struct mtd_info mtd_info_t;
|
||||||
|
|
||||||
/* support only for native endian JFFS2 */
|
/* support only for native endian JFFS2 */
|
||||||
#define cpu_to_je16(x) (x)
|
#define cpu_to_je16(x) (x)
|
||||||
@ -59,7 +59,7 @@ typedef struct mtd_info mtd_info_t;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* nand_erase_opts: - erase NAND flash with support for various options
|
* nand_erase_opts: - erase NAND flash with support for various options
|
||||||
* (jffs2 formating)
|
* (jffs2 formatting)
|
||||||
*
|
*
|
||||||
* @param meminfo NAND device to erase
|
* @param meminfo NAND device to erase
|
||||||
* @param opts options, @see struct nand_erase_options
|
* @param opts options, @see struct nand_erase_options
|
||||||
@ -81,7 +81,7 @@ int nand_erase_opts(nand_info_t *meminfo, const nand_erase_options_t *opts)
|
|||||||
struct nand_chip *chip = meminfo->priv;
|
struct nand_chip *chip = meminfo->priv;
|
||||||
|
|
||||||
if ((opts->offset & (meminfo->writesize - 1)) != 0) {
|
if ((opts->offset & (meminfo->writesize - 1)) != 0) {
|
||||||
printf("Attempt to erase non page aligned data\n");
|
printf("Attempt to erase non page-aligned data\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -94,8 +94,8 @@ int nand_erase_opts(nand_info_t *meminfo, const nand_erase_options_t *opts)
|
|||||||
erase_length = lldiv(opts->length + meminfo->erasesize - 1,
|
erase_length = lldiv(opts->length + meminfo->erasesize - 1,
|
||||||
meminfo->erasesize);
|
meminfo->erasesize);
|
||||||
|
|
||||||
cleanmarker.magic = cpu_to_je16 (JFFS2_MAGIC_BITMASK);
|
cleanmarker.magic = cpu_to_je16(JFFS2_MAGIC_BITMASK);
|
||||||
cleanmarker.nodetype = cpu_to_je16 (JFFS2_NODETYPE_CLEANMARKER);
|
cleanmarker.nodetype = cpu_to_je16(JFFS2_NODETYPE_CLEANMARKER);
|
||||||
cleanmarker.totlen = cpu_to_je32(8);
|
cleanmarker.totlen = cpu_to_je32(8);
|
||||||
|
|
||||||
/* scrub option allows to erase badblock. To prevent internal
|
/* scrub option allows to erase badblock. To prevent internal
|
||||||
@ -118,7 +118,7 @@ int nand_erase_opts(nand_info_t *meminfo, const nand_erase_options_t *opts)
|
|||||||
erased_length < erase_length;
|
erased_length < erase_length;
|
||||||
erase.addr += meminfo->erasesize) {
|
erase.addr += meminfo->erasesize) {
|
||||||
|
|
||||||
WATCHDOG_RESET ();
|
WATCHDOG_RESET();
|
||||||
|
|
||||||
if (!opts->scrub && bbtest) {
|
if (!opts->scrub && bbtest) {
|
||||||
int ret = meminfo->block_isbad(meminfo, erase.addr);
|
int ret = meminfo->block_isbad(meminfo, erase.addr);
|
||||||
@ -259,7 +259,7 @@ int nand_lock(struct mtd_info *mtd, int tight)
|
|||||||
* flash
|
* flash
|
||||||
*
|
*
|
||||||
* @param mtd nand mtd instance
|
* @param mtd nand mtd instance
|
||||||
* @param offset page address to query (muss be page aligned!)
|
* @param offset page address to query (must be page-aligned!)
|
||||||
*
|
*
|
||||||
* @return -1 in case of error
|
* @return -1 in case of error
|
||||||
* >0 lock status:
|
* >0 lock status:
|
||||||
@ -281,7 +281,7 @@ int nand_get_lock_status(struct mtd_info *mtd, loff_t offset)
|
|||||||
|
|
||||||
|
|
||||||
if ((offset & (mtd->writesize - 1)) != 0) {
|
if ((offset & (mtd->writesize - 1)) != 0) {
|
||||||
printf ("nand_get_lock_status: "
|
printf("nand_get_lock_status: "
|
||||||
"Start address must be beginning of "
|
"Start address must be beginning of "
|
||||||
"nand page!\n");
|
"nand page!\n");
|
||||||
ret = -1;
|
ret = -1;
|
||||||
@ -332,20 +332,20 @@ int nand_unlock(struct mtd_info *mtd, loff_t start, size_t length,
|
|||||||
/* check the WP bit */
|
/* check the WP bit */
|
||||||
chip->cmdfunc(mtd, NAND_CMD_STATUS, -1, -1);
|
chip->cmdfunc(mtd, NAND_CMD_STATUS, -1, -1);
|
||||||
if (!(chip->read_byte(mtd) & NAND_STATUS_WP)) {
|
if (!(chip->read_byte(mtd) & NAND_STATUS_WP)) {
|
||||||
printf ("nand_unlock: Device is write protected!\n");
|
printf("nand_unlock: Device is write protected!\n");
|
||||||
ret = -1;
|
ret = -1;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((start & (mtd->erasesize - 1)) != 0) {
|
if ((start & (mtd->erasesize - 1)) != 0) {
|
||||||
printf ("nand_unlock: Start address must be beginning of "
|
printf("nand_unlock: Start address must be beginning of "
|
||||||
"nand block!\n");
|
"nand block!\n");
|
||||||
ret = -1;
|
ret = -1;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (length == 0 || (length & (mtd->erasesize - 1)) != 0) {
|
if (length == 0 || (length & (mtd->erasesize - 1)) != 0) {
|
||||||
printf ("nand_unlock: Length must be a multiple of nand block "
|
printf("nand_unlock: Length must be a multiple of nand block "
|
||||||
"size %08x!\n", mtd->erasesize);
|
"size %08x!\n", mtd->erasesize);
|
||||||
ret = -1;
|
ret = -1;
|
||||||
goto out;
|
goto out;
|
||||||
@ -485,7 +485,7 @@ int nand_write_skip_bad(nand_info_t *nand, loff_t offset, size_t *length,
|
|||||||
pages = nand->erasesize / nand->writesize;
|
pages = nand->erasesize / nand->writesize;
|
||||||
blocksize = (pages * nand->oobsize) + nand->erasesize;
|
blocksize = (pages * nand->oobsize) + nand->erasesize;
|
||||||
if (*length % (nand->writesize + nand->oobsize)) {
|
if (*length % (nand->writesize + nand->oobsize)) {
|
||||||
printf ("Attempt to write incomplete page"
|
printf("Attempt to write incomplete page"
|
||||||
" in yaffs mode\n");
|
" in yaffs mode\n");
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
@ -507,25 +507,25 @@ int nand_write_skip_bad(nand_info_t *nand, loff_t offset, size_t *length,
|
|||||||
* partition boundary). So don't try to handle that.
|
* partition boundary). So don't try to handle that.
|
||||||
*/
|
*/
|
||||||
if ((offset & (nand->writesize - 1)) != 0) {
|
if ((offset & (nand->writesize - 1)) != 0) {
|
||||||
printf ("Attempt to write non page aligned data\n");
|
printf("Attempt to write non page-aligned data\n");
|
||||||
*length = 0;
|
*length = 0;
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
need_skip = check_skip_len(nand, offset, *length);
|
need_skip = check_skip_len(nand, offset, *length);
|
||||||
if (need_skip < 0) {
|
if (need_skip < 0) {
|
||||||
printf ("Attempt to write outside the flash area\n");
|
printf("Attempt to write outside the flash area\n");
|
||||||
*length = 0;
|
*length = 0;
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!need_skip && !(flags & WITH_DROP_FFS)) {
|
if (!need_skip && !(flags & WITH_DROP_FFS)) {
|
||||||
rval = nand_write (nand, offset, length, buffer);
|
rval = nand_write(nand, offset, length, buffer);
|
||||||
if (rval == 0)
|
if (rval == 0)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
*length = 0;
|
*length = 0;
|
||||||
printf ("NAND write to offset %llx failed %d\n",
|
printf("NAND write to offset %llx failed %d\n",
|
||||||
offset, rval);
|
offset, rval);
|
||||||
return rval;
|
return rval;
|
||||||
}
|
}
|
||||||
@ -534,10 +534,10 @@ int nand_write_skip_bad(nand_info_t *nand, loff_t offset, size_t *length,
|
|||||||
size_t block_offset = offset & (nand->erasesize - 1);
|
size_t block_offset = offset & (nand->erasesize - 1);
|
||||||
size_t write_size, truncated_write_size;
|
size_t write_size, truncated_write_size;
|
||||||
|
|
||||||
WATCHDOG_RESET ();
|
WATCHDOG_RESET();
|
||||||
|
|
||||||
if (nand_block_isbad (nand, offset & ~(nand->erasesize - 1))) {
|
if (nand_block_isbad(nand, offset & ~(nand->erasesize - 1))) {
|
||||||
printf ("Skip bad block 0x%08llx\n",
|
printf("Skip bad block 0x%08llx\n",
|
||||||
offset & ~(nand->erasesize - 1));
|
offset & ~(nand->erasesize - 1));
|
||||||
offset += nand->erasesize - block_offset;
|
offset += nand->erasesize - block_offset;
|
||||||
continue;
|
continue;
|
||||||
@ -592,7 +592,7 @@ int nand_write_skip_bad(nand_info_t *nand, loff_t offset, size_t *length,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (rval != 0) {
|
if (rval != 0) {
|
||||||
printf ("NAND write to offset %llx failed %d\n",
|
printf("NAND write to offset %llx failed %d\n",
|
||||||
offset, rval);
|
offset, rval);
|
||||||
*length -= left_to_write;
|
*length -= left_to_write;
|
||||||
return rval;
|
return rval;
|
||||||
@ -608,13 +608,13 @@ int nand_write_skip_bad(nand_info_t *nand, loff_t offset, size_t *length,
|
|||||||
* nand_read_skip_bad:
|
* nand_read_skip_bad:
|
||||||
*
|
*
|
||||||
* Read image from NAND flash.
|
* Read image from NAND flash.
|
||||||
* Blocks that are marked bad are skipped and the next block is readen
|
* Blocks that are marked bad are skipped and the next block is read
|
||||||
* instead as long as the image is short enough to fit even after skipping the
|
* instead as long as the image is short enough to fit even after skipping the
|
||||||
* bad blocks.
|
* bad blocks.
|
||||||
*
|
*
|
||||||
* @param nand NAND device
|
* @param nand NAND device
|
||||||
* @param offset offset in flash
|
* @param offset offset in flash
|
||||||
* @param length buffer length, on return holds remaining bytes to read
|
* @param length buffer length, on return holds number of read bytes
|
||||||
* @param buffer buffer to write to
|
* @param buffer buffer to write to
|
||||||
* @return 0 in case of success
|
* @return 0 in case of success
|
||||||
*/
|
*/
|
||||||
@ -627,25 +627,25 @@ int nand_read_skip_bad(nand_info_t *nand, loff_t offset, size_t *length,
|
|||||||
int need_skip;
|
int need_skip;
|
||||||
|
|
||||||
if ((offset & (nand->writesize - 1)) != 0) {
|
if ((offset & (nand->writesize - 1)) != 0) {
|
||||||
printf ("Attempt to read non page aligned data\n");
|
printf("Attempt to read non page-aligned data\n");
|
||||||
*length = 0;
|
*length = 0;
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
need_skip = check_skip_len(nand, offset, *length);
|
need_skip = check_skip_len(nand, offset, *length);
|
||||||
if (need_skip < 0) {
|
if (need_skip < 0) {
|
||||||
printf ("Attempt to read outside the flash area\n");
|
printf("Attempt to read outside the flash area\n");
|
||||||
*length = 0;
|
*length = 0;
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!need_skip) {
|
if (!need_skip) {
|
||||||
rval = nand_read (nand, offset, length, buffer);
|
rval = nand_read(nand, offset, length, buffer);
|
||||||
if (!rval || rval == -EUCLEAN)
|
if (!rval || rval == -EUCLEAN)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
*length = 0;
|
*length = 0;
|
||||||
printf ("NAND read from offset %llx failed %d\n",
|
printf("NAND read from offset %llx failed %d\n",
|
||||||
offset, rval);
|
offset, rval);
|
||||||
return rval;
|
return rval;
|
||||||
}
|
}
|
||||||
@ -654,10 +654,10 @@ int nand_read_skip_bad(nand_info_t *nand, loff_t offset, size_t *length,
|
|||||||
size_t block_offset = offset & (nand->erasesize - 1);
|
size_t block_offset = offset & (nand->erasesize - 1);
|
||||||
size_t read_length;
|
size_t read_length;
|
||||||
|
|
||||||
WATCHDOG_RESET ();
|
WATCHDOG_RESET();
|
||||||
|
|
||||||
if (nand_block_isbad (nand, offset & ~(nand->erasesize - 1))) {
|
if (nand_block_isbad(nand, offset & ~(nand->erasesize - 1))) {
|
||||||
printf ("Skipping bad block 0x%08llx\n",
|
printf("Skipping bad block 0x%08llx\n",
|
||||||
offset & ~(nand->erasesize - 1));
|
offset & ~(nand->erasesize - 1));
|
||||||
offset += nand->erasesize - block_offset;
|
offset += nand->erasesize - block_offset;
|
||||||
continue;
|
continue;
|
||||||
@ -668,9 +668,9 @@ int nand_read_skip_bad(nand_info_t *nand, loff_t offset, size_t *length,
|
|||||||
else
|
else
|
||||||
read_length = nand->erasesize - block_offset;
|
read_length = nand->erasesize - block_offset;
|
||||||
|
|
||||||
rval = nand_read (nand, offset, &read_length, p_buffer);
|
rval = nand_read(nand, offset, &read_length, p_buffer);
|
||||||
if (rval && rval != -EUCLEAN) {
|
if (rval && rval != -EUCLEAN) {
|
||||||
printf ("NAND read from offset %llx failed %d\n",
|
printf("NAND read from offset %llx failed %d\n",
|
||||||
offset, rval);
|
offset, rval);
|
||||||
*length -= left_to_read;
|
*length -= left_to_read;
|
||||||
return rval;
|
return rval;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user