Documentation ¶
Overview ¶
Package firmware contains remote Tast tests that exercise the firmware.
These tests typically perform operations that are risky or impossible to do in a local test such as suspending or rebooting the DUT.
Index ¶
- Constants
- func APBmpblk(ctx context.Context, s *testing.State)
- func BIOSCodeAB(ctx context.Context, s *testing.State)
- func BaseECUpdate(ctx context.Context, s *testing.State)
- func BatteryCharging(ctx context.Context, s *testing.State)
- func BlockingSync(ctx context.Context, s *testing.State)
- func BootBatteryCutoff(ctx context.Context, s *testing.State)
- func BootMode(ctx context.Context, s *testing.State)
- func BootTime(ctx context.Context, s *testing.State)
- func BootedDeviceReporter(ctx context.Context, s *testing.State)
- func CheckKeyboardBacklightFunctionality(ctx context.Context, s *testing.State)
- func CheckServoKeyPresses(ctx context.Context, s *testing.State)
- func Config(ctx context.Context, s *testing.State)
- func DUTBehaviourOnACInsertionInSleep(ctx context.Context, s *testing.State)
- func DUTWakeS3UsingPowerButton(ctx context.Context, s *testing.State)
- func DeepSleep(ctx context.Context, s *testing.State)
- func ECADC(ctx context.Context, s *testing.State)
- func ECBattery(ctx context.Context, s *testing.State)
- func ECCbiEeprom(ctx context.Context, s *testing.State)
- func ECCharging(ctx context.Context, s *testing.State)
- func ECChargingState(ctx context.Context, s *testing.State)
- func ECConsole(ctx context.Context, s *testing.State)
- func ECHash(ctx context.Context, s *testing.State)
- func ECKeyboard(ctx context.Context, s *testing.State)
- func ECLaptopMode(ctx context.Context, s *testing.State)
- func ECLidSwitch(ctx context.Context, s *testing.State)
- func ECPowerButton(ctx context.Context, s *testing.State)
- func ECPowerG3(ctx context.Context, s *testing.State)
- func ECReboot(ctx context.Context, s *testing.State)
- func ECSharedMemory(ctx context.Context, s *testing.State)
- func ECSize(ctx context.Context, s *testing.State)
- func ECTabletMode(ctx context.Context, s *testing.State)
- func ECUSBPorts(ctx context.Context, s *testing.State)
- func ECUpdateID(ctx context.Context, s *testing.State)
- func ECVerifyVK(ctx context.Context, s *testing.State)
- func ECVersion(ctx context.Context, s *testing.State)
- func ECWakeOnCharge(ctx context.Context, s *testing.State)
- func ECWakeSource(ctx context.Context, s *testing.State)
- func ECWatchdog(ctx context.Context, s *testing.State)
- func Eventlog(ctx context.Context, s *testing.State)
- func FWTries(ctx context.Context, s *testing.State)
- func Fixture(ctx context.Context, s *testing.State)
- func FlagsPreservation(ctx context.Context, s *testing.State)
- func FpAddEntropy(ctx context.Context, s *testing.State)
- func FpBioWash(ctx context.Context, s *testing.State)
- func FpCheckWriteProtect(ctx context.Context, s *testing.State)
- func FpFlashFpMcuHello(ctx context.Context, s *testing.State)
- func FpRDP0(ctx context.Context, s *testing.State)
- func FpRDP1(ctx context.Context, s *testing.State)
- func FpROOnlyBootsValidRW(ctx context.Context, s *testing.State)
- func FpRWNoUpdateRO(ctx context.Context, s *testing.State)
- func FpReadFlash(ctx context.Context, s *testing.State)
- func FpRebootToRO(ctx context.Context, s *testing.State)
- func FpSoftwareWriteProtect(ctx context.Context, s *testing.State)
- func FpSystemIsLocked(ctx context.Context, s *testing.State)
- func FpTpmSeed(ctx context.Context, s *testing.State)
- func FpUpdater(ctx context.Context, s *testing.State)
- func FwFlashErasers(ctx context.Context, s *testing.State)
- func FwmpDevDisableBoot(ctx context.Context, s *testing.State)
- func GBBFlags(ctx context.Context, s *testing.State)
- func H1Console(ctx context.Context, s *testing.State)
- func H1Version(ctx context.Context, s *testing.State)
- func HibernateFunctionality(ctx context.Context, s *testing.State)
- func PowerModes(ctx context.Context, s *testing.State)
- func RemoteSerialPort(ctx context.Context, s *testing.State)
- func S3EntryExitAfterLidClose(ctx context.Context, s *testing.State)
- func S3SuspendResume(ctx context.Context, s *testing.State)
- func ScreenWakeTabletMode(ctx context.Context, s *testing.State)
- func ServoGBBFlags(ctx context.Context, s *testing.State)
- func ServoNetwork(ctx context.Context, s *testing.State)
- func ShutdownMode(ctx context.Context, s *testing.State)
- func SoftwareSync(ctx context.Context, s *testing.State)
- func Ti50CCDUpdate(ctx context.Context, s *testing.State)
- func Ti50Demo(ctx context.Context, s *testing.State)
- func Ti50Rescue(ctx context.Context, s *testing.State)
- func Ti50SystemTestImage(ctx context.Context, s *testing.State)
- func WriteProtect(ctx context.Context, s *testing.State)
Constants ¶
const (
TrickleChargingThreshold = 100
)
Variables ¶
This section is empty.
Functions ¶
func APBmpblk ¶
APBmpblk inspects coreboot contents for indicators of bitmap block configuration. See https://chromium.googlesource.com/chromiumos/platform/bmpblk for more context.
func BIOSCodeAB ¶
BIOSCodeAB reboots the EC, and looks for Port 80 code 0xab. On x86 platforms, depthcharge sends Port 80 code 0xab just before starting the kernel.
func BootTime ¶
BootTime measures the time from EC boot to the first signal that the AP is booting. This test is not a hard rule, what really matters is the platform.BootPerfServerCrosPerf test. See go/chromeos-boottime for a proposal to revisit this. It appears that this test is not measuring the same thing as "Boot-to-Kernel" or "Boot to chromeball", but should catch a regression in that time.
func CheckKeyboardBacklightFunctionality ¶
CheckKeyboardBacklightFunctionality confirms keyboard backlight support and verifies its functionality.
func DeepSleep ¶
DeepSleep has been tested to pass with Servo V4, Servo V4 + ServoMicro, Servo V4 + ServoMicro in dual V4 mode. Verified fail on SuzyQ because it charges the battery during the test.
func ECADC ¶
ECADC mesaures the EC internal temperature sensors in a loop for couple of retries. This test might fail on boards which don't have "temps" EC command available.
func ECCharging ¶
ECCharging discharges the DUT then checks its voltages and current to determine its charging circuitry and EC reporting is working as intended
func ECHash ¶
ECHash tries to invalidate the hash of EC firmware and then check if it gets recomputed back again on warm reboot to ensure that AP correctly measures EC validity
func FpCheckWriteProtect ¶
FpCheckWriteProtect checks if changes in write protect signal are reflected in FPMCU. This is achieved by setting WP to some known state, checking if wpsw_cur value (from crossystem) reports WP state properly and check if WP state reported by FPMCU is also correct.
func FpFlashFpMcuHello ¶
FpFlashFpMcuHello checks if the flash_fp_mcu script can properly communicate with the FPMCU's ROM/vendor bootloader (not EC RO). This is achieved by invoking flash_fp_mcu with the "--hello" option.
This does not have any preconditions, other than being able to disable the hardware write protect. This is because the *communication* with the bootloader should always be possible, regardless of the firmware/software-wp status of the FPMCU. However, flash_fp_mcu can fail if the FPMCU's FW doesn't respond after being returned to the normal operating mode. See https://source.chromium.org/search?q=file:flash_fp_mcu for behavior.
func FpRDP1 ¶
FpRDP1 test setup enables RDP level 1 by enabling hardware write protect and then enabling software write protect (with reboot of the EC); the test setup then disables hardware write protect, so that we can perform reads and change RDP levels through the bootloader (only accessible when HW write protect is disabled).
When the test script starts, a read through the bootloader is done without disabling flash protection (changing RDP state). We verify that we are unable to read any data.
Next a read through the bootloader is done, while also disabling flash protection (changing to RDP level 0), which triggers a mass erase. We verify that the bytes in the output are all 0xFF and that the firmware is no longer functional.
func H1Version ¶
H1Version opens the H1 (cr50) console and verifies the version. Only runs from a chroot after running `sudo emerge chromeos-cr50`.
func PowerModes ¶
PowerModes verifies that system comes back after shutdown and coldreset.
func ServoGBBFlags ¶
ServoGBBFlags has been tested to pass with Suzy-Q, Servo V4, Servo V4 + ServoMicro in dual V4 mode. Verified fail on Servo V4 + ServoMicro w/o dual v4 mode. Has not been tested with with C2D2 (assumed to pass).
func ServoNetwork ¶
ServoNetwork attempts to verify that a machine in the lab can connect to servod without using ssh port forwarding. Delete this test after this is verified.
func Ti50CCDUpdate ¶
Ti50CCDUpdate requires HW setup with SuzyQ cable from Andreiboard to DUT.
Types ¶
This section is empty.
Source Files ¶
- ap_bmpblk.go
- base_ec_update.go
- battery_charging.go
- bios_code_ab.go
- blocking_sync.go
- boot_battery_cutoff.go
- boot_mode.go
- boot_time.go
- booted_device_reporter.go
- check_keyboard_backlight_functionality.go
- check_servo_key_presses.go
- config.go
- deep_sleep.go
- doc.go
- dut_behaviour_on_ac_insertion_in_sleep.go
- dut_wake_s3_using_power_button.go
- ec_adc.go
- ec_battery.go
- ec_cbi_eeprom.go
- ec_charging.go
- ec_charging_state.go
- ec_console.go
- ec_hash.go
- ec_keyboard.go
- ec_laptop_mode.go
- ec_lid_switch.go
- ec_power_button.go
- ec_power_g3.go
- ec_reboot.go
- ec_shared_memory.go
- ec_size.go
- ec_tablet_mode.go
- ec_update_id.go
- ec_usb_ports.go
- ec_verify_vk.go
- ec_version.go
- ec_wake_on_charge.go
- ec_wake_source.go
- ec_watchdog.go
- eventlog.go
- fixture.go
- flags_preservation.go
- fp_add_entropy.go
- fp_bio_wash.go
- fp_check_write_protect.go
- fp_flash_fp_mcu_hello.go
- fp_rdp0.go
- fp_rdp1.go
- fp_read_flash.go
- fp_reboot_to_ro.go
- fp_ro_only_boots_valid_rw.go
- fp_rw_no_update_ro.go
- fp_software_write_protect.go
- fp_system_is_locked.go
- fp_tpm_seed.go
- fp_updater.go
- fw_flash_erasers.go
- fw_tries.go
- fwmp_dev_disable_boot.go
- gbb_flags.go
- h1_console.go
- h1_version.go
- hibernate_functionality.go
- power_modes.go
- remote_serial_port.go
- s3_entry_exit_after_lid_close.go
- s3_suspend_resume.go
- screen_wake_tablet_mode.go
- servo_gbb_flags.go
- servo_network.go
- shutdown_mode.go
- software_sync.go
- ti50_ccd_update.go
- ti50_demo.go
- ti50_rescue.go
- ti50_system_test_image.go
- write_protect.go