tools: mxsboot: Mark the FCB pages as valid

Without this marker, Linux will complain that the NAND pages with
FCB are invalid.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Fabio Estevam <fabio.estevam@freescale.com>
Cc: Stefano Babic <sbabic@denx.de>
master
Marek Vasut 11 years ago committed by Stefano Babic
parent d55e0dabd7
commit 93d520ff7d
  1. 10
      tools/mxsboot.c

@ -379,7 +379,7 @@ static uint8_t *mx28_nand_fcb_block(struct mx28_nand_fcb *fcb)
return block; return block;
} }
static int mx28_nand_write_fcb(struct mx28_nand_fcb *fcb, char *buf) static int mx28_nand_write_fcb(struct mx28_nand_fcb *fcb, uint8_t *buf)
{ {
uint32_t offset; uint32_t offset;
uint8_t *fcbblock; uint8_t *fcbblock;
@ -393,13 +393,15 @@ static int mx28_nand_write_fcb(struct mx28_nand_fcb *fcb, char *buf)
for (i = 0; i < STRIDE_PAGES * STRIDE_COUNT; i += STRIDE_PAGES) { for (i = 0; i < STRIDE_PAGES * STRIDE_COUNT; i += STRIDE_PAGES) {
offset = i * nand_writesize; offset = i * nand_writesize;
memcpy(buf + offset, fcbblock, nand_writesize + nand_oobsize); memcpy(buf + offset, fcbblock, nand_writesize + nand_oobsize);
/* Mark the NAND page is OK. */
buf[offset + nand_writesize] = 0xff;
} }
free(fcbblock); free(fcbblock);
return ret; return ret;
} }
static int mx28_nand_write_dbbt(struct mx28_nand_dbbt *dbbt, char *buf) static int mx28_nand_write_dbbt(struct mx28_nand_dbbt *dbbt, uint8_t *buf)
{ {
uint32_t offset; uint32_t offset;
int i = STRIDE_PAGES * STRIDE_COUNT; int i = STRIDE_PAGES * STRIDE_COUNT;
@ -413,7 +415,7 @@ static int mx28_nand_write_dbbt(struct mx28_nand_dbbt *dbbt, char *buf)
} }
static int mx28_nand_write_firmware(struct mx28_nand_fcb *fcb, int infd, static int mx28_nand_write_firmware(struct mx28_nand_fcb *fcb, int infd,
char *buf) uint8_t *buf)
{ {
int ret; int ret;
off_t size; off_t size;
@ -462,7 +464,7 @@ static int mx28_create_nand_image(int infd, int outfd)
struct mx28_nand_fcb *fcb; struct mx28_nand_fcb *fcb;
struct mx28_nand_dbbt *dbbt; struct mx28_nand_dbbt *dbbt;
int ret = -1; int ret = -1;
char *buf; uint8_t *buf;
int size; int size;
ssize_t wr_size; ssize_t wr_size;

Loading…
Cancel
Save