BoardTestPlan: Difference between revisions

From OLPC
Jump to navigation Jump to search
(Proper name for Open Firmware)
 
(32 intermediate revisions by 10 users not shown)
Line 1: Line 1:
{{Obsolete|link=[[Friends in testing]]}}
{{archive}}

This was the board test plan for the A1 motherboards for the XO-1 laptop. It is kept around only for historical reasons.

= Board test plan =
= Board test plan =


First, note that there are various different combinations of components (SKUs). Items such as the system RAM, the DCON SDRAM, the NAND flash, BIOS SPI flash etc. have multiple sources.
First, note that there are various different combinations of components (SKUs). Items such as the system '''RAM''', the [[DCON]] '''SDRAM''', the '''NAND''' flash, the '''BIOS''' '''SPI''' flash, etc. have multiple sources.


Ensure that each combination, or at least one of each major component with multiple sources, is tested. Bugs '''do''' slip through the cracks if you omit even one manufacturer's part from the testing.
Ensure that each combination, or at least one of each major component with multiple sources, is tested. Bugs '''do''' slip through the cracks if you omit even one manufacturer's part from the testing.

<i>Things in italics are things that should be scriptable and in the tinderbox</i>




== DCON ==
== DCON ==
''See [http://david.woodhou.se/fbtest.c fbtest.c] for a DCON register-poking tool.''


''Hints on how to achieve the below tests can be found in the [http://www.laptop.org/teamwiki/index.php/Image:DCON_Specification%2C_V0.8.doc DCON
# Check DCON <-> VGA mode transitions. They should be glitchless and an IRQ should arrive promptly.
Specification] or for the disinclined at [http://david.woodhou.se/dcontest.txt http://david.woodhou.se/dcontest.txt]''

# Check [[DCON]] <-> '''VGA''' mode transitions. They should be glitchless and an '''IRQ''' should arrive promptly. Test with various intervals between the DCON and the VGA changes, to allow for different amounts of clock drift.
# Check sleep mode and auto-sleep mode.
# Check sleep mode and auto-sleep mode.
# Check ECPWRRQST transition from sleep mode.
# Check '''ECPWRRQST''' transition from sleep mode.
# Check blanking.
# Check blanking.
# Check dot-clock divider setting to request DCON mode refresh frequency
# Check dot-clock divider setting to request [[DCON]] mode refresh frequency
# Check colour, anti-aliasing, monochrome modes. Watch for setup/hold time problems on the display.
# Check colour, anti-aliasing, monochrome modes. Watch for setup/hold time problems on the display.
# Set backlight to each level 0-15. Check for noise and fluctuations.
# Set backlight to each level 0-15. Check for noise and fluctuations.
# Check correctness of colours in colour mode
# Check correctness of colours in colour mode
# Verify SDRAM self-refresh: Enter DCON mode, enter sleep mode, wait. Enter DCON mode again.
# Verify '''SDRAM''' self-refresh: Enter [[DCON]] mode, enter sleep mode, wait. Enter [[DCON]] mode again.inter
kkkkkkkkkkkkkkkkkkkkkkkkkkkk


== NAND ==
== NAND ==


# Benchmark read/write access on each type of NAND part
# Benchmark read/write access on each type of '''NAND''' part <i>("modprobe mtdchar; dd if=/dev/mtd0 of=/dev/null bs=64k count=100")</i>
# Introduce 1-4 symbol errors in page and verify correct correction.
# Introduce 1-4 symbol errors in page and verify correct correction. (someday)
# OpenFirmware boot from NAND
# Linux root filesystem on '''NAND'''
# Linux root filesystem on NAND


== SD ==
== SD ==
Line 30: Line 41:
# Test high-speed mode
# Test high-speed mode
# Benchmark read/write speed on low-speed and high-speed devices
# Benchmark read/write speed on low-speed and high-speed devices
# Test MMC and SD devices
# Test '''MMC''' and '''SD''' devices

# OpenFirmware boot from SD (when supported)


== AUDIO ==
== AUDIO ==
Line 37: Line 48:
# Test headphone output and speakers, verify unclipped output at volume on each.
# Test headphone output and speakers, verify unclipped output at volume on each.
# Test internal and external microphone input; check for good input levels without noise.
# Test internal and external microphone input; check for good input levels without noise.
# Check for detection of microphone and headphone plugs
# Analogue input test
# Analogue input test


Line 43: Line 53:


# Verify correct image in both overlay and capture modes
# Verify correct image in both overlay and capture modes
# Once we have test program, that contrast, chroma, flip all work.


== KEYBOARD ==
== KEYBOARD ==
You can use "xev" for this testing.


# Verify scancodes from main keyboard keys
# Verify scancodes from main keyboard keys (and that all keys are reported)
# Verify scancodes of additional keys on unit -- joypad, game buttons, mode
# Verify scancodes of additional keys on unit -- joypad, game buttons, mode
# Verify power button input functional
# Verify power button input functional
# Verify multiple-keypress functional with no 'ghost' keys
# Verify multiple-key-press functional with no 'ghost' keys


== TOUCHPAD ==
== TOUCHPAD ==


# Verify capacitive<->resistive mode switching
# Verify noiseless operation in capacitive mode, especially on first touch
# Verify noiseless operation in capacitive mode, especially on first touch
# Verify operation in resistive mode across whole area of pad
# Verify operation in resistive mode across whole area of pad
Line 60: Line 71:
== BATTERY ==
== BATTERY ==


# Verify EC functionality after battery overdrain (low voltage). It should reset and battery should charge correctly.
# Verify '''EC''' functionality after battery overdrain (low voltage). It should reset and battery should charge correctly.
# Verify full Battery Management System operation with full, low and absent batteries. Check especially for overcharge and undercharge behavior
# Verify full Battery Management System operation with full, low and absent batteries. Check especially for overcharge and undercharge behavior
# Correct operation of battery LED
# Correct operation of battery '''LED'''
# Battery status reporting to Linux
# Battery status reporting to Linux
# Process
## check that the battery shows charging or charged
## Check that the battery shows charging or charged
## unplug the machine
## Unplug the machine
##* check that the battery shows present and
##* check that the machine does not show it is plugged in
##* Check that the battery shows present and
## plug in the machine
##* Check that the machine does not show it is plugged in
##* check that the battery shows charging
## Plug in the machine
## unplug the battery
##* Check that the battery shows charging
##* see that the battery shows not present
## Unplug the battery
## reinsert the battery
##* See that the battery shows not present
##* check that the battery shows present and charging again
## Reinsert the battery
##* Check that the battery shows present and charging again


== SYSTEM ==
== SYSTEM ==


# Verify correct poweroff and soft-reboot behaviour, including subsequent power-on.
# Verify correct poweroff and soft-reboot behaviour, including subsequent power-on.
# Verify full power domain switching -- each circuit which should be individually controlled should be able to be turned off and on by power management code without functionality problems.
# Verify full power domain switching -- each circuit which should be individually controlled should be able to be turned off and on by power management code without functionality problems. Lilian is working on code for
this testing.
# Verify correct operation temperature sensors, lid switch.
# Verify correct operation temperature sensors, lid switch.
# Observe correct operation of power LED.
# Observe correct operation of power '''LED'''.
# Check manufacturing data in BIOS flash
# Check manufacturing data in '''BIOS''' flash
# OpenFirmware self-update
# Open Firmware self-update
# Set system date. Remove all power (battery and AC). Reapply power and check date is still set
# Test system suspend-to-ram and resume.
# Test keyboard light


== WIRELESS ==
== WIRELESS ==
Line 88: Line 104:
# Verify ability to upgrade/downgrade Boot2 code
# Verify ability to upgrade/downgrade Boot2 code
# Verify association in standard 802.11 mode
# Verify association in standard 802.11 mode
# Verify WEP/WPA encryption
# Verify '''WEP/WPA''' encryption
# Verify connection in mesh mode
# Verify connection in mesh mode
# Obtain Legacy IP address by DHCP, verify connectivity.
# Obtain Legacy '''IP''' address by '''DHCP''', verify connectivity.
# IPv6 connectivity with link-local addresses (no setup required)
# '''IPv6''' connectivity with link-local addresses (no setup required)
# Obtain IPv6 address with RA, verify connectivity.
# Obtain '''IPv6''' address with '''RA''', verify connectivity.
# Antenna switch
# Antenna switch


== USB ==
== USB ==


# Verify correct power-up with high USB power draw
# Verify correct power-up with high '''USB''' power draw
# Verify OpenFirmware and Linux correct operation with various hub/storage/ethernet/hid/other devices
# Verify [[Open_Firmware]] and Linux correct operation with various hub/storage/ethernet/hid/other devices
# Make sure all three ports are functional!
# Verify correct operation with USB over-current situation. The USB should shut down; the system should not.
# Verify correct operation with '''USB''' over-current situation. The USB should shut down; the system should not.
# OF boot from Ethernet

# OF boot from USB storage
== FIRMWARE==
# [[Open_Firmware]] boot from '''USB'''
# [[Open_Firmware]] boot from '''Ethernet'''
# [[Open_Firmware]] boot from '''SD''' (when supported)
# [[Open_Firmware]] boot from '''NAND'''
# [[Open_Firmware]] tests.
# Reflash OFW

[[category:hardware]]
{{cleanup}}

Latest revision as of 17:37, 6 October 2012

542-stopicon.png This page has a more up-to-date location: Friends in testing

This was the board test plan for the A1 motherboards for the XO-1 laptop. It is kept around only for historical reasons.

Board test plan

First, note that there are various different combinations of components (SKUs). Items such as the system RAM, the DCON SDRAM, the NAND flash, the BIOS SPI flash, etc. have multiple sources.

Ensure that each combination, or at least one of each major component with multiple sources, is tested. Bugs do slip through the cracks if you omit even one manufacturer's part from the testing.

Things in italics are things that should be scriptable and in the tinderbox


DCON

See fbtest.c for a DCON register-poking tool.

Hints on how to achieve the below tests can be found in the [http://www.laptop.org/teamwiki/index.php/Image:DCON_Specification%2C_V0.8.doc DCON Specification] or for the disinclined at http://david.woodhou.se/dcontest.txt

  1. Check DCON <-> VGA mode transitions. They should be glitchless and an IRQ should arrive promptly. Test with various intervals between the DCON and the VGA changes, to allow for different amounts of clock drift.
  2. Check sleep mode and auto-sleep mode.
  3. Check ECPWRRQST transition from sleep mode.
  4. Check blanking.
  5. Check dot-clock divider setting to request DCON mode refresh frequency
  6. Check colour, anti-aliasing, monochrome modes. Watch for setup/hold time problems on the display.
  7. Set backlight to each level 0-15. Check for noise and fluctuations.
  8. Check correctness of colours in colour mode
  9. Verify SDRAM self-refresh: Enter DCON mode, enter sleep mode, wait. Enter DCON mode again.inter

kkkkkkkkkkkkkkkkkkkkkkkkkkkk

NAND

  1. Benchmark read/write access on each type of NAND part ("modprobe mtdchar; dd if=/dev/mtd0 of=/dev/null bs=64k count=100")
  2. Introduce 1-4 symbol errors in page and verify correct correction. (someday)
  3. Linux root filesystem on NAND

SD

  1. Test insertion/detection, hotplug removal.
  2. Test high-speed mode
  3. Benchmark read/write speed on low-speed and high-speed devices
  4. Test MMC and SD devices


AUDIO

  1. Test headphone output and speakers, verify unclipped output at volume on each.
  2. Test internal and external microphone input; check for good input levels without noise.
  3. Analogue input test

CAMERA

  1. Verify correct image in both overlay and capture modes
  2. Once we have test program, that contrast, chroma, flip all work.

KEYBOARD

You can use "xev" for this testing.

  1. Verify scancodes from main keyboard keys (and that all keys are reported)
  2. Verify scancodes of additional keys on unit -- joypad, game buttons, mode
  3. Verify power button input functional
  4. Verify multiple-key-press functional with no 'ghost' keys

TOUCHPAD

  1. Verify noiseless operation in capacitive mode, especially on first touch
  2. Verify operation in resistive mode across whole area of pad
  3. Check (rough) calibration by edge of screen matching marks on the touch pad.

BATTERY

  1. Verify EC functionality after battery overdrain (low voltage). It should reset and battery should charge correctly.
  2. Verify full Battery Management System operation with full, low and absent batteries. Check especially for overcharge and undercharge behavior
  3. Correct operation of battery LED
  4. Battery status reporting to Linux
  5. Process
    1. Check that the battery shows charging or charged
    2. Unplug the machine
      • Check that the battery shows present and
      • Check that the machine does not show it is plugged in
    3. Plug in the machine
      • Check that the battery shows charging
    4. Unplug the battery
      • See that the battery shows not present
    5. Reinsert the battery
      • Check that the battery shows present and charging again

SYSTEM

  1. Verify correct poweroff and soft-reboot behaviour, including subsequent power-on.
  2. Verify full power domain switching -- each circuit which should be individually controlled should be able to be turned off and on by power management code without functionality problems. Lilian is working on code for

this testing.

  1. Verify correct operation temperature sensors, lid switch.
  2. Observe correct operation of power LED.
  3. Check manufacturing data in BIOS flash
  4. Open Firmware self-update
  5. Set system date. Remove all power (battery and AC). Reapply power and check date is still set
  6. Test system suspend-to-ram and resume.
  7. Test keyboard light

WIRELESS

  1. Verify ability to upgrade/downgrade Boot2 code
  2. Verify association in standard 802.11 mode
  3. Verify WEP/WPA encryption
  4. Verify connection in mesh mode
  5. Obtain Legacy IP address by DHCP, verify connectivity.
  6. IPv6 connectivity with link-local addresses (no setup required)
  7. Obtain IPv6 address with RA, verify connectivity.
  8. Antenna switch

USB

  1. Verify correct power-up with high USB power draw
  2. Verify Open_Firmware and Linux correct operation with various hub/storage/ethernet/hid/other devices
  3. Make sure all three ports are functional!
  4. Verify correct operation with USB over-current situation. The USB should shut down; the system should not.

FIRMWARE

  1. Open_Firmware boot from USB
  2. Open_Firmware boot from Ethernet
  3. Open_Firmware boot from SD (when supported)
  4. Open_Firmware boot from NAND
  5. Open_Firmware tests.
  6. Reflash OFW