From d2b0ec94ec6a5af3a494a3e213f9ab56d664992a Mon Sep 17 00:00:00 2001 From: bushing Date: Mon, 16 Feb 2009 04:49:11 -0800 Subject: [PATCH] forbid writing to boot1/boot2 --- nand.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/nand.c b/nand.c index 8b0c956..da63a00 100644 --- a/nand.c +++ b/nand.c @@ -145,6 +145,10 @@ void nand_read_page(u32 pageno, void *data, void *ecc) { #ifdef NAND_SUPPORT_WRITE void nand_write_page(u32 pageno, void *data, void *ecc) { NAND_debug("nand_write_page(%u, %p, %p)\n", pageno, data, ecc); + if (pageno < 0x200) { + printf("Error: nand_write to page %d forbidden\n", pageno); + return; + } dc_flushrange(data, 0x800); dc_flushrange(ecc, 0x40); __nand_set_address(0, pageno); @@ -158,6 +162,10 @@ void nand_write_page(u32 pageno, void *data, void *ecc) { #ifdef NAND_SUPPORT_ERASE void nand_erase_block(u32 pageno) { NAND_debug("nand_erase_block(%d)\n", pageno); + if (pageno < 0x200) { + printf("Error: nand_erase to page %d forbidden\n", pageno); + return; + } __nand_set_address(0, pageno); nand_send_command(NAND_ERASE_PRE, 0x1c, 0, 0); nand_send_command(NAND_ERASE_POST, 0, NAND_FLAGS_IRQ | 0x8000, 0x0);