XO1.5 SD suspend

From OLPC
Revision as of 20:58, 30 September 2009 by Wad (talk | contribs) (→‎Monitoring)
Jump to navigation Jump to search

This describes the current setup for testing WLAN SD suspend/resume on prototypes of the XO-1.5 laptop.

Software Installation

You should start by obtaining the OS31 Linux image for the XO-1.5 from http://dev.laptop.org/~cjb/f11-1.5/os31/os31.zd.

  1. Place the image on a USB stick, and insert it into the XO-1.5 laptop's USB port.
  2. Boot the laptop, pressing the escape key ('X' in upper left hand corner of keyboard) within a few seconds after boot to enter Open Firmware (OFW).
  3. To install onto the internal SD card, type:
fs-update u:\os31.zd

Now upgrade the kernel to one supporting Marvell's SD patches. The following sequence of commands should work:

wget http://dev.laptop.org/~dilinger/olpc-2.6.30/kernel-2.6.30_xo1.5-20090919.0127.1.olpc.d2189d4.i586.rpm
wget http://dev.laptop.org/~dilinger/olpc-2.6.30/kernel-firmware-2.6.30_xo1.5-20090919.0127.1.olpc.d2189d4.i586.rpm
wget http://dev.laptop.org/~cjb/marvell-sd.tar
rpm -ivh kernel-*
tar xvf marvell-sd.tar
mv nico-plus-ofw-drop /boot/vmlinuz
mv lib80211.ko /lib/modules/kernel*d218*/net/wireless/
mv *.ko /lib/modules/kernel*d218*/drivers/net/wireless/libertas
reboot

Hardware Modification

In order to disconnect the SD_PWOFF signal, preventing it from powering off the WLAN card in suspend, you should remove Q38. This is in an SOT-323 package, located on the "bottom" side of the motherboard (the same side as the processor) right below the WLAN card connector.

You will also need to connect a serial terminal, as the laptop display doesn't work after resume. It should be connected to J3, and JP1 (immediately behind J3) will need pin 1 shorted to pin 3 to enable the serial port.

Procedure

If modified by removing Q38, the laptop must be powered down to power cycle the WLAN (not rebooted).

Boot the laptop. Due to a problem with OS31, it will halt in Open Firmware. Boot Linux by typing:

boot /sd/disk@1:\olpc.fth

When Linux has booted, you can place the system into suspend by typing:

echo mem > /sys/power/state

All commands after this HAVE to be typed through the serial port.

This will drop the system into OFW (the "ok" prompt). In order to actually suspend the system, type:

resume

In order to wake the laptop from suspend, press the power button. This will bring you back to an OFW prompt ("+rok"). In order to start Linux executing again, type "resume" one more time. This should bring you back to a Linux prompt.

Monitoring

The signals to the WLAN card may easily be probed at the WLAN connector:

  1. SD_CLK
  2. WLAN_3.3V
  3. SD_CMD
  4. GND
  5. SD_DAT0
  6. RESET#
  7. SD_DAT1
  8. N.C.
  9. SD_DAT2
  10. POWER_DOWN#
  11. CARD_DETECT#
  12. N.C.
  13. SD_DAT3
  14. ...

The signals on odd pins are accessible from the "bottom" side of the motherboard (the side with the processor). The signals on even pins are only accessible from the top side of the motherboard.