-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Somebody in the thread at some point said:
> I wrote:
>> When I first booted 2.6.24 o GTA02v3, I got bit rot in the GTA02
>> framebuffer ("noise" appearing in short lines, maybe some ~20-80
>> pixels long), but this disappeared on subsequent tries.
> 
> I spoke to early. It's back:
> http://people.openmoko.org/werner/bitrot.png
> 
> This device's battery is low. Maybe it's because of that. I looked
> at 3V3 and 1V8, and they look stable, though.

Werner I think this one is on me -- try the attached patch.

I threshed around for days trying to fix a problem with the Glamo MMC
corrupting packets internal to the chip by changing memory settings
amongst other things.  Afterwards it turned out that problem was a
physical issue on my PCB.  So this patch reverts those meddlings.

- -Andy
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org

iD8DBQFHmZlMOjLpvpq7dMoRAkEZAKCM93SDuopk4dUieX39L2FCN5q5AgCgjGSq
kJuonw24RlQZNLhYe8PbgBQ=
=GqaE
-----END PGP SIGNATURE-----
adjust-glamo-intl-timings-back.patch

From: warmcat <[EMAIL PROTECTED]>


---

 build                          |    1 -
 drivers/mfd/glamo/glamo-core.c |   29 +++++++++++++++--------------
 2 files changed, 15 insertions(+), 15 deletions(-)


diff --git a/build b/build
index 7e61ea2..a3af85e 100755
--- a/build
+++ b/build
@@ -11,4 +11,3 @@ if make -j5 ARCH=arm; then
 else
 	exit 1
 fi
-
diff --git a/drivers/mfd/glamo/glamo-core.c b/drivers/mfd/glamo/glamo-core.c
index 476f8df..80d9795 100644
--- a/drivers/mfd/glamo/glamo-core.c
+++ b/drivers/mfd/glamo/glamo-core.c
@@ -627,7 +627,7 @@ static struct glamo_script glamo_init_script[] = {
 	{ GLAMO_REG_CLOCK_RISC1,	0x1000 },
 	{ GLAMO_REG_CLOCK_MPEG,		0x3000 },
 	{ GLAMO_REG_CLOCK_MPEG,		0x3000 },
-	{ GLAMO_REG_CLOCK_MPROC,	0x1000 },
+	{ GLAMO_REG_CLOCK_MPROC,	0x100f },
 		{ 0xfffe, 1 },
 	{ GLAMO_REG_CLOCK_HOST,		0x0000 },
 	{ GLAMO_REG_CLOCK_MEMORY,	0x0000 },
@@ -645,12 +645,12 @@ static struct glamo_script glamo_init_script[] = {
 	{ GLAMO_REG_CLOCK_RISC1,	0x0000 },
 	{ GLAMO_REG_CLOCK_MPEG,		0x0000 },
 	{ GLAMO_REG_CLOCK_MPEG,		0x0000 },
-	{ GLAMO_REG_CLOCK_MPROC,	0x0000 },
-		{ 0xfffe, 1 },
 #endif
+	{ GLAMO_REG_CLOCK_MPROC,	0x000f },
+		{ 0xfffe, 1 },
 	{ GLAMO_REG_PLL_GEN1,		0x05db },	/* 48MHz */
 	{ GLAMO_REG_PLL_GEN3,		0x09c3 },	/* 80MHz */
-		{ 0xfffe, 30 },
+		{ 0xfffe, 50 },
 	/*
 	 * b9 of this register MUST be zero to get any interrupts on INT#
 	 * the other set bits enable all the engine interrupt sources
@@ -660,29 +660,29 @@ static struct glamo_script glamo_init_script[] = {
 	{ GLAMO_REG_CLOCK_GEN7,		0x0101 },
 	{ GLAMO_REG_CLOCK_GEN8,		0x0100 },
 	{ GLAMO_REG_CLOCK_HOST,		0x000d },
-	{ 0x200,	0x0cf0 /* 0x0ef0 */ },
-	{ 0x202, 	0x0298 /* 0x07ff */ },
+	{ 0x200,	0x0ef0 },
+	{ 0x202, 	0x07ff },
 	{ 0x212,	0x0000 },
 	{ 0x214,	0x4000 },
 	{ 0x216,	0xf00e },
 	{ GLAMO_REG_MEM_TYPE,		0x0874 }, /* 8MB, 16 word pg wr+rd */
-	{ GLAMO_REG_MEM_GEN,		0xbfbf }, /* 63 grants min + max */
+	{ GLAMO_REG_MEM_GEN,		0xafaf }, /* 63 grants min + max */
 	/*
 	 * the register below originally 0x0108 makes unreliable Glamo MMC
 	 * write operations.  Cranked to 0x05ad to add a wait state, the
 	 * unreliability is not seen after 4GB of write / read testing
 	 */
-	{ GLAMO_REG_MEM_TIMING1,	0x05ad },
-	{ GLAMO_REG_MEM_TIMING2,	0x0011 }, /* Taa = 3 MCLK */
+	{ GLAMO_REG_MEM_TIMING1,	0x0108 },
+	{ GLAMO_REG_MEM_TIMING2,	0x0010 }, /* Taa = 3 MCLK */
 	{ GLAMO_REG_MEM_TIMING3,	0x0000 },
 	{ GLAMO_REG_MEM_TIMING4,	0x0000 }, /* CE1# delay fall/rise */
 	{ GLAMO_REG_MEM_TIMING5,	0x0000 }, /* UB# LB# */
 	{ GLAMO_REG_MEM_TIMING6,	0x0000 }, /* OE# */
 	{ GLAMO_REG_MEM_TIMING7,	0x0000 }, /* WE# */
-	{ GLAMO_REG_MEM_TIMING8,	0x1008 }, /* MCLK delay, was 0x1000 */
-	{ GLAMO_REG_MEM_TIMING9,	0x6000 },
+	{ GLAMO_REG_MEM_TIMING8,	0x1002 }, /* MCLK delay, was 0x1000 */
+	{ GLAMO_REG_MEM_TIMING9,	0x6006 },
 	{ GLAMO_REG_MEM_TIMING10,	0x00ff },
-	{ GLAMO_REG_MEM_TIMING11,	0x0000 },
+	{ GLAMO_REG_MEM_TIMING11,	0x0001 },
 	{ GLAMO_REG_MEM_POWER1,		0x0020 },
 	{ GLAMO_REG_MEM_POWER2,		0x0000 },
 	{ GLAMO_REG_MEM_DRAM1,		0x0000 },
@@ -690,8 +690,8 @@ static struct glamo_script glamo_init_script[] = {
 	{ GLAMO_REG_MEM_DRAM1,		0xc100 },
 		{ 0xfffe, 1 },
 	{ GLAMO_REG_MEM_DRAM1,		0xe100 },
-	{ GLAMO_REG_MEM_DRAM2,		0x0155 },
-	{ GLAMO_REG_CLOCK_MEMORY,	0x000f },
+	{ GLAMO_REG_MEM_DRAM2,		0x01d6 },
+	{ GLAMO_REG_CLOCK_MEMORY,	0x000b },
 };
 
 
@@ -781,6 +781,7 @@ static void glamo_power(struct glamo_core *glamo,
 		/* spin until PLL1 lock */
 		while (!(__reg_read(glamo, GLAMO_REG_PLL_GEN5) & 1))
 			;
+		/* FIXME: reset pll's */
 		break;
 	case GLAMO_POWER_STANDBY:
 		/* enable memory self-refresh */

Reply via email to