Power, time keeping, networking...

John Gilmore gnu at toad.com
Tue Aug 11 16:12:21 EDT 2009

Hal, you're asking a lot of great questions.  Basically, we could
never turn on the original power management design by default, because
of too many bugs in the periphery (USB, timers, clocks, network, etc).
The bugs are well documented in Trac.  The final XO-1 software release
added the ability to turn off the WiFi chip when you close the lid,
which meant suspended laptops would last ~40 hours instead of ~8.  It
was hard in the trenches to focus on those bugs (among all the other
bugs and feature requests), because each one seemed like a who-cares
nit.  But from a strategic level, they were in the way of doubling
battery life.  The team was gradually knocking off those disabling
bugs, when OLPC ran out of money and had to lay off most of the
software team.

They then noticed that it was getting hard to buy some almost-obsolete
XO-1 components, and OLPC performance wasn't going up every year like
most PC vendors' products.  So OLPC put all their power-related
efforts into making the XO-1.5, picking a Via CPU chipset with a much
better chance of being able to suspend buglessly for subsecond
intervals, and improving the charger's solar panel efficiency.  The
chip and board are working in prototype, production is coming, but
they haven't had time (as far as I know) to actually debug deep
subsecond suspends on it.  So, if you have serious time to be able to
help, ask for a prototype board and help with that work.

Nobody at OLPC understood the "clock goes bad if you suspend" problem;
they wanted to fix it by slamming in a new clock value every once in a
while (like at reboot, or re-association with a school server).  Yes,
I think the problem is that they're reinitializing with the value from
the RTC, without accounting for the subseconds.  The XO-1.5 hardware
keeps the clocks and interrupts running during suspend, so it should
not need that kludge.  I encourage you to run NTP on it for long-term
testing, and document and/or fix any clock anomalies that you find.


More information about the Devel mailing list