r2053 - trunk/src/target/u-boot/patches

werner at sita.openmoko.org werner at sita.openmoko.org
Tue May 22 09:40:22 CEST 2007


Author: werner
Date: 2007-05-22 09:40:06 +0200 (Tue, 22 May 2007)
New Revision: 2053

Added:
   trunk/src/target/u-boot/patches/bbt-scan-second.patch
Modified:
   trunk/src/target/u-boot/patches/unbusy-i2c.patch
Log:
unbusy-i2c.patch: updated for u-boot reorganization
bbt-scan-second.patch: updated for u-boot reorganization



Added: trunk/src/target/u-boot/patches/bbt-scan-second.patch
===================================================================
--- trunk/src/target/u-boot/patches/bbt-scan-second.patch	2007-05-21 23:47:12 UTC (rev 2052)
+++ trunk/src/target/u-boot/patches/bbt-scan-second.patch	2007-05-22 07:40:06 UTC (rev 2053)
@@ -0,0 +1,69 @@
+Scan also the second OOB page for bad block information.
+
+board/neo1973/gta01/nand.c (board_nand_init): added board-specific badblock
+  pattern which sets NAND_BBT_SCAN2NDPAGE
+drivers/nand/nand_base.c (nand_block_bad): also consider the second page in a
+  block if NAND_BBT_SCAN2NDPAGE is set
+
+- Werner Almesberger <werner at openmoko.org>
+
+Index: u-boot/board/neo1973/gta01/nand.c
+===================================================================
+--- u-boot.orig/board/neo1973/gta01/nand.c
++++ u-boot/board/neo1973/gta01/nand.c
+@@ -113,9 +113,23 @@
+ }
+ 
+ 
++/* Derived from drivers/nand/nand_bbt.c:smallpage_flashbased */
++
++static uint8_t scan_ff_pattern[] = { 0xff, 0xff };
++
++static struct nand_bbt_descr badblock_pattern = {
++	.options =
++	    NAND_BBT_SCANEMPTY | NAND_BBT_SCANALLPAGES | NAND_BBT_SCAN2NDPAGE,
++	.offs = 5,
++	.len = 1,
++	.pattern = scan_ff_pattern
++};
++
++
+ int board_nand_init(struct nand_chip *nand)
+ {
+ 	nand->read_otp = samsung_nand_read_otp;
+ 	nand->write_otp = samsung_nand_write_otp;
++	nand->badblock_pattern = &badblock_pattern;
+ 	return s3c24x0_nand_init(nand);
+ }
+Index: u-boot/drivers/nand/nand_base.c
+===================================================================
+--- u-boot.orig/drivers/nand/nand_base.c
++++ u-boot/drivers/nand/nand_base.c
+@@ -421,7 +421,7 @@
+  *
+  * Check, if the block is bad.
+  */
+-static int nand_block_bad(struct mtd_info *mtd, loff_t ofs, int getchip)
++static int nand_block_bad_page(struct mtd_info *mtd, loff_t ofs, int getchip)
+ {
+ 	int page, chipnr, res = 0;
+ 	struct nand_chip *this = mtd->priv;
+@@ -460,6 +460,18 @@
+ 	return res;
+ }
+ 
++static int nand_block_bad(struct mtd_info *mtd, loff_t ofs, int getchip)
++{
++	struct nand_chip *this = mtd->priv;
++
++	if (nand_block_bad_page(mtd, ofs, getchip))
++		return 1;
++	if (this->badblock_pattern->options & NAND_BBT_SCAN2NDPAGE &&
++	    nand_block_bad_page(mtd, ofs+(1 << this->page_shift), getchip))
++		return 1;
++	return 0;
++}
++
+ /**
+  * nand_default_block_markbad - [DEFAULT] mark a block bad
+  * @mtd:	MTD device structure

Modified: trunk/src/target/u-boot/patches/unbusy-i2c.patch
===================================================================
--- trunk/src/target/u-boot/patches/unbusy-i2c.patch	2007-05-21 23:47:12 UTC (rev 2052)
+++ trunk/src/target/u-boot/patches/unbusy-i2c.patch	2007-05-22 07:40:06 UTC (rev 2053)
@@ -1,16 +1,16 @@
-board/neo1973/neo1973.c: added logic to detect pending PMU interrupts
-board/neo1973/neo1973.c (neo1973_new_second, neo1973_on_key_pressed): only poll
-  PMU if there is a pending interrupt
-board/neo1973/pcf50606.c (pcf50606_initial_regs): cleared (unmasked) SECONDM in
-  INT1M
+board/neo1973/gta01/gta01.c: added logic to detect pending PMU interrupts
+board/neo1973/gta01/gta01.c (neo1973_new_second, neo1973_on_key_pressed): only
+  poll PMU if there is a pending interrupt
+board/neo1973/gta01/pcf50606.c (pcf50606_initial_regs): cleared (unmasked)
+  SECONDM in INT1M
 
 - Werner Almesberger <werner at openmoko.org>
 
-Index: u-boot/board/neo1973/neo1973.c
+Index: u-boot/board/neo1973/gta01/gta01.c
 ===================================================================
---- u-boot.orig/board/neo1973/neo1973.c
-+++ u-boot/board/neo1973/neo1973.c
-@@ -374,19 +374,64 @@ void neo1973_vibrator(int on)
+--- u-boot.orig/board/neo1973/gta01/gta01.c
++++ u-boot/board/neo1973/gta01/gta01.c
+@@ -375,19 +375,60 @@
  #endif
  }
  
@@ -19,10 +19,6 @@
 +	S3C24X0_GPIO * const gpio = S3C24X0_GetBase_GPIO();
 +
 +#if defined(CONFIG_ARCH_GTA01B_v4)
-+	/*
-+	 * @@@FIXME: Untested and probably doesn't work. We have to check for
-+	 * the presence of EINT9 instead.
-+	 */
 +	return !(gpio->GPGDAT & (1 << 1));	/* EINT9/GPG1 */
 +#else
 +	return !(gpio->GPGDAT & (1 << 8));	/* EINT16/GPG8 */
@@ -77,10 +73,10 @@
  	if (gpio->GPFDAT & (1 << 6))
  		return 0;
  	return 1;
-Index: u-boot/board/neo1973/pcf50606.c
+Index: u-boot/board/neo1973/gta01/pcf50606.c
 ===================================================================
---- u-boot.orig/board/neo1973/pcf50606.c
-+++ u-boot/board/neo1973/pcf50606.c
+--- u-boot.orig/board/neo1973/gta01/pcf50606.c
++++ u-boot/board/neo1973/gta01/pcf50606.c
 @@ -6,7 +6,7 @@
  const u_int8_t pcf50606_initial_regs[__NUM_PCF50606_REGS] = {
  	[PCF50606_REG_OOCS] 	= 0x00,





More information about the commitlog mailing list