Re: Run OFW heat spreader test

2012-01-24 Thread Sridhar Dhanapalan
On 24 January 2012 02:36, Martin Langhoff martin.langh...@gmail.com wrote:
 On Mon, Jan 23, 2012 at 7:54 AM, Richard A. Smith rich...@laptop.org wrote:
 Hmmm... Something else is the problem here.  You can't damage the processor
 via thermal overload because it has an automatic clock back off.  If you
 have motherboards that are failing its not due to a bad heat spreader.  At
 worst all you would get would be hangs.

 Agreed with Richard -- Sridhar, if you are seeing permanent mb
 failures, let's get SNs of those motherboards into Reuben's hands for
 more in-depth diagnostics.

I've addressed this matter off-list.

We are thinking of forcing a heat spreader test based on the XO's
manufacturing date:

  https://dev.laptop.org.au/issues/1026

Sridhar
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


Announcing Q4D02 for XO-1.75

2012-01-24 Thread James Cameron
http://wiki.laptop.org/go/OLPC_Firmware_q4d02

- new EC 4.0.02,
- write-protect firmware in secure mode,
- change the default TCP window size.

-- 
James Cameron
http://quozl.linux.org.au/
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel


[PATCH] OLPC XO-1.75 - an epitaph of kernel log buffer for CForth to read

2012-01-24 Thread James Cameron
Along with CForth commit 1a604a37e340da67419a1df5d840ee319090b619
provides a dump of the kernel log buffer on serial port after a
watchdog restart.  Intended for when the kernel serial driver is
disabled.

The kernel patch creates an aligned structure with pointers to the
kernel log buffer, and a pointer for calculating the offset from
virtual to physical addresses.

Harmless if used without the CForth change present.

Not intended for upstream.
---
 arch/arm/mach-mmp/olpc-xo-1-75.c |   19 +++
 include/linux/printk.h   |5 +
 kernel/printk.c  |7 +++
 3 files changed, 31 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-mmp/olpc-xo-1-75.c b/arch/arm/mach-mmp/olpc-xo-1-75.c
index e0db8a8..adb1f15 100644
--- a/arch/arm/mach-mmp/olpc-xo-1-75.c
+++ b/arch/arm/mach-mmp/olpc-xo-1-75.c
@@ -548,10 +548,29 @@ static void __init olpc_init_early(void)
 }
 extern struct olpc_platform_t olpc_platform_info;
 
+struct epitaph {
+   u32 magic_1;
+   u32 magic_2;
+   u32 myself;
+   u32 log_buf_len;
+   u32 log_buf;
+   u32 log_end;
+};
+
+static struct epitaph epitaph __attribute__((aligned(4096))) = {
+   .magic_1 = 0x2163666f,
+   .magic_2 = 0x72746821
+};
+
 static void __init olpc_xo_1_75_init(void)
 {
u32 twsi6_lcr;
 
+   log_buf_olpc_setup(epitaph.log_buf_len,
+  epitaph.log_buf,
+  epitaph.log_end);
+   epitaph.myself = (u32) epitaph;
+
pm_power_off = olpc_xo_1_75_poweroff;
arm_pm_restart = olpc_xo_1_75_restart;
 
diff --git a/include/linux/printk.h b/include/linux/printk.h
index 0101d55..795ed5a 100644
--- a/include/linux/printk.h
+++ b/include/linux/printk.h
@@ -115,6 +115,7 @@ extern int dmesg_restrict;
 extern int kptr_restrict;
 
 void log_buf_kexec_setup(void);
+void log_buf_olpc_setup(u32 *len, u32 *buf, u32 *end);
 void __init setup_log_buf(int early);
 #else
 static inline __attribute__ ((format (printf, 1, 0)))
@@ -141,6 +142,10 @@ static inline void log_buf_kexec_setup(void)
 {
 }
 
+static inline void log_buf_olpc_setup(u32 *len, u32 *buf, u32 *end)
+{
+}
+
 static inline void setup_log_buf(int early)
 {
 }
diff --git a/kernel/printk.c b/kernel/printk.c
index 084982f..4cc9c00 100644
--- a/kernel/printk.c
+++ b/kernel/printk.c
@@ -168,6 +168,13 @@ void log_buf_kexec_setup(void)
 }
 #endif
 
+void log_buf_olpc_setup(u32 *len, u32 *buf, u32 *end)
+{
+   *len = log_buf_len;
+   *buf = (u32) log_buf;
+   *end = (u32) log_end;
+}
+
 /* requested log_buf_len from kernel cmdline */
 static unsigned long __initdata new_log_buf_len;
 
-- 
1.7.5.4


-- 
James Cameron
http://quozl.linux.org.au/
___
Devel mailing list
Devel@lists.laptop.org
http://lists.laptop.org/listinfo/devel