blob: a7251850e5326c5f14b114cfe961e83a539a5338 [file] [log] [blame]
# -*- coding: utf-8 -*-
# Copyright 2020 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Dedede configs."""
from __future__ import print_function
_COMMON_PACKAGES = (
'chromeos-ec',
'coreboot',
'depthcharge',
'libpayload',
'vboot_reference',
)
BUILD_WORKON_PACKAGES = _COMMON_PACKAGES + (
'coreboot-private-files-baseboard-dedede',
)
BUILD_PACKAGES = _COMMON_PACKAGES + (
'chromeos-bootimage',
'coreboot-private-files',
'intel-jslfsp',
)
def get_commands(servo):
"""Get specific flash commands for Dedede
Each board needs specific commands including the voltage for Vref, to turn
on and turn off the SPI flash. The get_*_commands() functions provide a
board-specific set of commands for these tasks. The voltage for this board
needs to be set to 3.3 V.
Args:
servo (servo_lib.Servo): The servo connected to the target DUT.
Returns:
list: [dut_control_on, dut_control_off, flashrom_cmd, futility_cmd]
dut_control*=2d arrays formmated like [["cmd1", "arg1", "arg2"],
["cmd2", "arg3", "arg4"]]
where cmd1 will be run before cmd2
flashrom_cmd=command to flash via flashrom
futility_cmd=command to flash via futility
"""
dut_control_on = []
dut_control_off = []
if servo.is_c2d2:
dut_control_on.append(['ap_flash_select:on'])
# Shutdown AP so that it enters G3 state.
dut_control_on.append(['ec_uart_cmd:apshutdown'])
# Sleep to ensure the SoC rails get chance to discharge enough.
dut_control_on.append(['sleep:5'])
# Turn on the S5 rails & initiate partial power up.
dut_control_on.append(['ec_uart_cmd:gpioset en_pp3300_a 1'])
# Sleep to ensure the required delay for device power sequencing.
# Require 130 ms between EN_PP3300_A assertion and EC_AP_RSMRST_L assertion.
dut_control_on.append(['sleep:0.2'])
# Halt the power sequencing by de-asserting EC_AP_RSMRST_L.
dut_control_on.append(['ec_uart_cmd:gpioset ec_ap_rsmrst_l 0'])
# De-assert again to be on the safe side.
dut_control_on.append(['ec_uart_cmd:gpioset ec_ap_rsmrst_l 0'])
dut_control_on.append(['spi2_vref:pp3300'])
dut_control_off.append(['spi2_vref:off'])
dut_control_off.append(['ap_flash_select:off'])
programmer = 'raiden_debug_spi:serial=%s' % servo.serial
elif servo.is_ccd:
programmer = 'raiden_debug_spi:target=AP,serial=%s' % servo.serial
else:
raise Exception('%s not supported' % servo.version)
flashrom_cmd = ['flashrom', '-p', programmer, '-w']
futility_cmd = ['futility', 'update', '-p', programmer, '-i']
return [dut_control_on, dut_control_off, flashrom_cmd, futility_cmd]