1*4f2df630SAndroid Build Coastguard Worker /* Copyright 2014 The ChromiumOS Authors 2*4f2df630SAndroid Build Coastguard Worker * Use of this source code is governed by a BSD-style license that can be 3*4f2df630SAndroid Build Coastguard Worker * found in the LICENSE file. 4*4f2df630SAndroid Build Coastguard Worker */ 5*4f2df630SAndroid Build Coastguard Worker 6*4f2df630SAndroid Build Coastguard Worker #ifndef __CROS_EC_BOARD_H 7*4f2df630SAndroid Build Coastguard Worker #define __CROS_EC_BOARD_H 8*4f2df630SAndroid Build Coastguard Worker 9*4f2df630SAndroid Build Coastguard Worker #define CONFIG_LTO 10*4f2df630SAndroid Build Coastguard Worker 11*4f2df630SAndroid Build Coastguard Worker /* 12*4f2df630SAndroid Build Coastguard Worker * The default watchdog timeout is 1.6 seconds, but there are some legitimate 13*4f2df630SAndroid Build Coastguard Worker * flash-intensive TPM operations that actually take close to that long to 14*4f2df630SAndroid Build Coastguard Worker * complete. Make sure we don't trigger the watchdog accidentally if the timing 15*4f2df630SAndroid Build Coastguard Worker * is just a little off. 16*4f2df630SAndroid Build Coastguard Worker */ 17*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_WATCHDOG_PERIOD_MS 18*4f2df630SAndroid Build Coastguard Worker #define CONFIG_WATCHDOG_PERIOD_MS 5000 19*4f2df630SAndroid Build Coastguard Worker 20*4f2df630SAndroid Build Coastguard Worker /* Features that we don't want */ 21*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_CMD_LID_ANGLE 22*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_CMD_POWERINDEBUG 23*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_DMA_DEFAULT_HANDLERS 24*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_FMAP 25*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_HIBERNATE 26*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_LID_SWITCH 27*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_CMD_SYSINFO 28*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_CMD_SYSJUMP 29*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_CMD_SYSLOCK 30*4f2df630SAndroid Build Coastguard Worker 31*4f2df630SAndroid Build Coastguard Worker #define CONFIG_CUSTOMIZED_RO 32*4f2df630SAndroid Build Coastguard Worker /* TODO: find a way to drop RO build. */ 33*4f2df630SAndroid Build Coastguard Worker #define CONFIG_FW_INCLUDE_RO 34*4f2df630SAndroid Build Coastguard Worker 35*4f2df630SAndroid Build Coastguard Worker #ifndef CR50_DEV 36*4f2df630SAndroid Build Coastguard Worker /* Disable stuff that should only be in debug builds */ 37*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_CMD_CRASH 38*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_CMD_MD 39*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_CMD_RW 40*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_CMD_SLEEPMASK_SET 41*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_CMD_WAITMS 42*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_FLASH 43*4f2df630SAndroid Build Coastguard Worker #else 44*4f2df630SAndroid Build Coastguard Worker /* 45*4f2df630SAndroid Build Coastguard Worker * Add chargen to standard TOT images. The DBG image doesn't have enough room 46*4f2df630SAndroid Build Coastguard Worker * for it. 47*4f2df630SAndroid Build Coastguard Worker */ 48*4f2df630SAndroid Build Coastguard Worker #define CONFIG_CMD_CHARGEN 49*4f2df630SAndroid Build Coastguard Worker #endif 50*4f2df630SAndroid Build Coastguard Worker 51*4f2df630SAndroid Build Coastguard Worker #if defined(H1_RED_BOARD) || defined(CR50_DEV) 52*4f2df630SAndroid Build Coastguard Worker #define CONFIG_USB_SELECT_PHY 53*4f2df630SAndroid Build Coastguard Worker #endif 54*4f2df630SAndroid Build Coastguard Worker 55*4f2df630SAndroid Build Coastguard Worker /* Enable getting gpio flags to tell if open drain pins are asserted */ 56*4f2df630SAndroid Build Coastguard Worker #define CONFIG_GPIO_GET_EXTENDED 57*4f2df630SAndroid Build Coastguard Worker /* Disable sleep when gpios with GPIO_SLEEP_DIS flags are asserted. */ 58*4f2df630SAndroid Build Coastguard Worker #define CONFIG_GPIO_DISABLE_SLEEP 59*4f2df630SAndroid Build Coastguard Worker 60*4f2df630SAndroid Build Coastguard Worker /* Flash configuration */ 61*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_FLASH_PSTATE 62*4f2df630SAndroid Build Coastguard Worker #define CONFIG_WP_ALWAYS 63*4f2df630SAndroid Build Coastguard Worker #define CONFIG_CMD_FLASH 64*4f2df630SAndroid Build Coastguard Worker 65*4f2df630SAndroid Build Coastguard Worker #define CONFIG_CRC8 66*4f2df630SAndroid Build Coastguard Worker 67*4f2df630SAndroid Build Coastguard Worker /* We're using TOP_A for partition 0, TOP_B for partition 1 */ 68*4f2df630SAndroid Build Coastguard Worker #define CONFIG_FLASH_NVMEM 69*4f2df630SAndroid Build Coastguard Worker /* Offset to start of NvMem area from base of flash */ 70*4f2df630SAndroid Build Coastguard Worker #define CONFIG_FLASH_NVMEM_OFFSET_A (CFG_TOP_A_OFF) 71*4f2df630SAndroid Build Coastguard Worker #define CONFIG_FLASH_NVMEM_OFFSET_B (CFG_TOP_B_OFF) 72*4f2df630SAndroid Build Coastguard Worker /* Address of start of Nvmem area */ 73*4f2df630SAndroid Build Coastguard Worker #define CONFIG_FLASH_NVMEM_BASE_A \ 74*4f2df630SAndroid Build Coastguard Worker (CONFIG_PROGRAM_MEMORY_BASE + CONFIG_FLASH_NVMEM_OFFSET_A) 75*4f2df630SAndroid Build Coastguard Worker #define CONFIG_FLASH_NVMEM_BASE_B \ 76*4f2df630SAndroid Build Coastguard Worker (CONFIG_PROGRAM_MEMORY_BASE + CONFIG_FLASH_NVMEM_OFFSET_B) 77*4f2df630SAndroid Build Coastguard Worker #define CONFIG_FLASH_NEW_NVMEM_BASE_A \ 78*4f2df630SAndroid Build Coastguard Worker (CONFIG_FLASH_NVMEM_BASE_A + CONFIG_FLASH_BANK_SIZE) 79*4f2df630SAndroid Build Coastguard Worker #define CONFIG_FLASH_NEW_NVMEM_BASE_B \ 80*4f2df630SAndroid Build Coastguard Worker (CONFIG_FLASH_NVMEM_BASE_B + CONFIG_FLASH_BANK_SIZE) 81*4f2df630SAndroid Build Coastguard Worker 82*4f2df630SAndroid Build Coastguard Worker /* Size partition in NvMem */ 83*4f2df630SAndroid Build Coastguard Worker #define NVMEM_PARTITION_SIZE (CFG_TOP_SIZE) 84*4f2df630SAndroid Build Coastguard Worker #define NEW_NVMEM_PARTITION_SIZE (NVMEM_PARTITION_SIZE - CONFIG_FLASH_BANK_SIZE) 85*4f2df630SAndroid Build Coastguard Worker #define NEW_NVMEM_TOTAL_PAGES \ 86*4f2df630SAndroid Build Coastguard Worker (2 * NEW_NVMEM_PARTITION_SIZE / CONFIG_FLASH_BANK_SIZE) 87*4f2df630SAndroid Build Coastguard Worker /* Size in bytes of NvMem area */ 88*4f2df630SAndroid Build Coastguard Worker #define CONFIG_FLASH_LOG 89*4f2df630SAndroid Build Coastguard Worker #define CONFIG_FLASH_NVMEM_SIZE (NVMEM_PARTITION_SIZE * NVMEM_NUM_PARTITIONS) 90*4f2df630SAndroid Build Coastguard Worker /* Enable <key, value> variable support. */ 91*4f2df630SAndroid Build Coastguard Worker #define CONFIG_FLASH_NVMEM_VARS 92*4f2df630SAndroid Build Coastguard Worker #define NVMEM_CR50_SIZE 272 93*4f2df630SAndroid Build Coastguard Worker #define CONFIG_FLASH_NVMEM_VARS_USER_SIZE NVMEM_CR50_SIZE 94*4f2df630SAndroid Build Coastguard Worker 95*4f2df630SAndroid Build Coastguard Worker /* Go to sleep when nothing else is happening */ 96*4f2df630SAndroid Build Coastguard Worker #define CONFIG_LOW_POWER_IDLE 97*4f2df630SAndroid Build Coastguard Worker 98*4f2df630SAndroid Build Coastguard Worker /* Allow multiple concurrent memory allocations. */ 99*4f2df630SAndroid Build Coastguard Worker #define CONFIG_MALLOC 100*4f2df630SAndroid Build Coastguard Worker 101*4f2df630SAndroid Build Coastguard Worker /* Enable debug cable detection */ 102*4f2df630SAndroid Build Coastguard Worker #define CONFIG_RDD 103*4f2df630SAndroid Build Coastguard Worker 104*4f2df630SAndroid Build Coastguard Worker /* Also use the cr50 as a second factor authentication */ 105*4f2df630SAndroid Build Coastguard Worker #define CONFIG_U2F 106*4f2df630SAndroid Build Coastguard Worker 107*4f2df630SAndroid Build Coastguard Worker /* Additional FIPS KAT tests. */ 108*4f2df630SAndroid Build Coastguard Worker #define CONFIG_FIPS_RSA2048 109*4f2df630SAndroid Build Coastguard Worker #define CONFIG_FIPS_SW_HMAC_DRBG 110*4f2df630SAndroid Build Coastguard Worker #define CONFIG_FIPS_AES_CBC_256 111*4f2df630SAndroid Build Coastguard Worker 112*4f2df630SAndroid Build Coastguard Worker /* USB configuration */ 113*4f2df630SAndroid Build Coastguard Worker #define CONFIG_USB 114*4f2df630SAndroid Build Coastguard Worker #define CONFIG_USB_CONSOLE_STREAM 115*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_USB_CONSOLE_TX_BUF_SIZE 116*4f2df630SAndroid Build Coastguard Worker #define CONFIG_USB_CONSOLE_TX_BUF_SIZE 4096 117*4f2df630SAndroid Build Coastguard Worker #define CONFIG_USB_I2C 118*4f2df630SAndroid Build Coastguard Worker #define CONFIG_USB_INHIBIT_INIT 119*4f2df630SAndroid Build Coastguard Worker #define CONFIG_USB_SPI_V2 120*4f2df630SAndroid Build Coastguard Worker #define CONFIG_USB_SERIALNO 121*4f2df630SAndroid Build Coastguard Worker #define DEFAULT_SERIALNO "0" 122*4f2df630SAndroid Build Coastguard Worker 123*4f2df630SAndroid Build Coastguard Worker #define CONFIG_STREAM_USART 124*4f2df630SAndroid Build Coastguard Worker #define CONFIG_STREAM_USB 125*4f2df630SAndroid Build Coastguard Worker #define CONFIG_STREAM_USART1 126*4f2df630SAndroid Build Coastguard Worker #define CONFIG_STREAM_USART2 127*4f2df630SAndroid Build Coastguard Worker 128*4f2df630SAndroid Build Coastguard Worker /* Enable Case Closed Debugging */ 129*4f2df630SAndroid Build Coastguard Worker #define CONFIG_CASE_CLOSED_DEBUG_V1 130*4f2df630SAndroid Build Coastguard Worker #define CONFIG_PHYSICAL_PRESENCE 131*4f2df630SAndroid Build Coastguard Worker /* Loosen CCD open requirements. Only allowed in prePVT images */ 132*4f2df630SAndroid Build Coastguard Worker #define CONFIG_CCD_OPEN_PREPVT 133*4f2df630SAndroid Build Coastguard Worker 134*4f2df630SAndroid Build Coastguard Worker #ifdef CR50_DEV 135*4f2df630SAndroid Build Coastguard Worker /* Remove console commands to save space. */ 136*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_CMD_SLEEPMASK 137*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_CMD_TIMERINFO 138*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_CONSOLE_HISTORY 139*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_CMD_I2C_SCAN 140*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_CMD_I2C_XFER 141*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_FLASH 142*4f2df630SAndroid Build Coastguard Worker /* Enable unsafe dev features for CCD in dev builds */ 143*4f2df630SAndroid Build Coastguard Worker #define CONFIG_CASE_CLOSED_DEBUG_V1_UNSAFE 144*4f2df630SAndroid Build Coastguard Worker #define CONFIG_CMD_FLASH_LOG 145*4f2df630SAndroid Build Coastguard Worker #define CONFIG_PHYSICAL_PRESENCE_DEBUG_UNSAFE 146*4f2df630SAndroid Build Coastguard Worker #define CONFIG_CMD_ROLLBACK 147*4f2df630SAndroid Build Coastguard Worker #endif 148*4f2df630SAndroid Build Coastguard Worker 149*4f2df630SAndroid Build Coastguard Worker #define CONFIG_USB_PID 0x5014 150*4f2df630SAndroid Build Coastguard Worker #define CONFIG_USB_SELF_POWERED 151*4f2df630SAndroid Build Coastguard Worker 152*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_USB_MAXPOWER_MA 153*4f2df630SAndroid Build Coastguard Worker #define CONFIG_USB_MAXPOWER_MA 0 154*4f2df630SAndroid Build Coastguard Worker 155*4f2df630SAndroid Build Coastguard Worker /* Need to be able to bitbang the EC UART for updates through CCD. */ 156*4f2df630SAndroid Build Coastguard Worker #define CONFIG_UART_BITBANG 157*4f2df630SAndroid Build Coastguard Worker 158*4f2df630SAndroid Build Coastguard Worker /* Enable SPI controller (SPI) module */ 159*4f2df630SAndroid Build Coastguard Worker #define CONFIG_SPI_CONTROLLER 160*4f2df630SAndroid Build Coastguard Worker #define CONFIG_SPI_CONTROLLER_CONFIGURE_GPIOS 161*4f2df630SAndroid Build Coastguard Worker #define CONFIG_SPI_FLASH_PORT 0 162*4f2df630SAndroid Build Coastguard Worker 163*4f2df630SAndroid Build Coastguard Worker /* Enable SPI peripheral (SPP) module */ 164*4f2df630SAndroid Build Coastguard Worker #define CONFIG_SPP 165*4f2df630SAndroid Build Coastguard Worker #define CONFIG_TPM_SPP 166*4f2df630SAndroid Build Coastguard Worker 167*4f2df630SAndroid Build Coastguard Worker #define CONFIG_RBOX 168*4f2df630SAndroid Build Coastguard Worker #define CONFIG_RBOX_WAKEUP 169*4f2df630SAndroid Build Coastguard Worker 170*4f2df630SAndroid Build Coastguard Worker /* We don't need to send events to the AP */ 171*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_HOSTCMD_EVENTS 172*4f2df630SAndroid Build Coastguard Worker 173*4f2df630SAndroid Build Coastguard Worker /* Make most commands restricted */ 174*4f2df630SAndroid Build Coastguard Worker #define CONFIG_CONSOLE_COMMAND_FLAGS 175*4f2df630SAndroid Build Coastguard Worker #define CONFIG_RESTRICTED_CONSOLE_COMMANDS 176*4f2df630SAndroid Build Coastguard Worker #define CONFIG_CONSOLE_COMMAND_FLAGS_DEFAULT CMD_FLAG_RESTRICTED 177*4f2df630SAndroid Build Coastguard Worker 178*4f2df630SAndroid Build Coastguard Worker /* Inject the fips checksum into the image. */ 179*4f2df630SAndroid Build Coastguard Worker #define CONFIG_FIPS_CHECKSUM 180*4f2df630SAndroid Build Coastguard Worker /* Include crypto stuff, both software and hardware. Enable optimizations. */ 181*4f2df630SAndroid Build Coastguard Worker /* Use board specific version of dcrypto */ 182*4f2df630SAndroid Build Coastguard Worker #define CONFIG_FIPS_UTIL 183*4f2df630SAndroid Build Coastguard Worker #define CONFIG_DCRYPTO_BOARD 184*4f2df630SAndroid Build Coastguard Worker #define CONFIG_UPTO_SHA512 185*4f2df630SAndroid Build Coastguard Worker #define CONFIG_DCRYPTO_RSA_SPEEDUP 186*4f2df630SAndroid Build Coastguard Worker 187*4f2df630SAndroid Build Coastguard Worker /** 188*4f2df630SAndroid Build Coastguard Worker * Make sw version equal to hw. Unlike SHA2-256, dcrypto implementation 189*4f2df630SAndroid Build Coastguard Worker * of SHA2-512/384 allows to save context, so can fully replace software 190*4f2df630SAndroid Build Coastguard Worker * implementation. 191*4f2df630SAndroid Build Coastguard Worker */ 192*4f2df630SAndroid Build Coastguard Worker #define CONFIG_SHA512_HW_EQ_SW 193*4f2df630SAndroid Build Coastguard Worker 194*4f2df630SAndroid Build Coastguard Worker /* Don't link with third_party/cryptoc. */ 195*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_LIBCRYPTOC 196*4f2df630SAndroid Build Coastguard Worker 197*4f2df630SAndroid Build Coastguard Worker /* Don't use DCRYPTO code from chip/g. */ 198*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_DCRYPTO 199*4f2df630SAndroid Build Coastguard Worker 200*4f2df630SAndroid Build Coastguard Worker /* 201*4f2df630SAndroid Build Coastguard Worker * This is pretty arbitrary, a rough estimate of what's required for smooth 202*4f2df630SAndroid Build Coastguard Worker * Cr50 operation. 203*4f2df630SAndroid Build Coastguard Worker */ 204*4f2df630SAndroid Build Coastguard Worker #ifndef CRYPTO_TEST_SETUP 205*4f2df630SAndroid Build Coastguard Worker #define CONFIG_SHAREDMEM_MINIMUM_SIZE 5500 206*4f2df630SAndroid Build Coastguard Worker #else 207*4f2df630SAndroid Build Coastguard Worker /* Crypto tests require more statically allocated memory. */ 208*4f2df630SAndroid Build Coastguard Worker #define CONFIG_SHAREDMEM_MINIMUM_SIZE 5000 209*4f2df630SAndroid Build Coastguard Worker #endif 210*4f2df630SAndroid Build Coastguard Worker 211*4f2df630SAndroid Build Coastguard Worker /* Implement custom udelay, due to usec hwtimer imprecision. */ 212*4f2df630SAndroid Build Coastguard Worker #define CONFIG_HW_SPECIFIC_UDELAY 213*4f2df630SAndroid Build Coastguard Worker 214*4f2df630SAndroid Build Coastguard Worker #ifndef __ASSEMBLER__ 215*4f2df630SAndroid Build Coastguard Worker #include "common.h" 216*4f2df630SAndroid Build Coastguard Worker #include "gpio_signal.h" 217*4f2df630SAndroid Build Coastguard Worker 218*4f2df630SAndroid Build Coastguard Worker /* USB string indexes */ 219*4f2df630SAndroid Build Coastguard Worker enum usb_strings { 220*4f2df630SAndroid Build Coastguard Worker USB_STR_DESC = 0, 221*4f2df630SAndroid Build Coastguard Worker USB_STR_VENDOR, 222*4f2df630SAndroid Build Coastguard Worker USB_STR_PRODUCT, 223*4f2df630SAndroid Build Coastguard Worker USB_STR_VERSION, 224*4f2df630SAndroid Build Coastguard Worker USB_STR_CONSOLE_NAME, 225*4f2df630SAndroid Build Coastguard Worker USB_STR_BLOB_NAME, 226*4f2df630SAndroid Build Coastguard Worker USB_STR_HID_KEYBOARD_NAME, 227*4f2df630SAndroid Build Coastguard Worker USB_STR_AP_NAME, 228*4f2df630SAndroid Build Coastguard Worker USB_STR_EC_NAME, 229*4f2df630SAndroid Build Coastguard Worker USB_STR_UPGRADE_NAME, 230*4f2df630SAndroid Build Coastguard Worker USB_STR_SPI_NAME, 231*4f2df630SAndroid Build Coastguard Worker USB_STR_SERIALNO, 232*4f2df630SAndroid Build Coastguard Worker USB_STR_I2C_NAME, 233*4f2df630SAndroid Build Coastguard Worker 234*4f2df630SAndroid Build Coastguard Worker USB_STR_COUNT 235*4f2df630SAndroid Build Coastguard Worker }; 236*4f2df630SAndroid Build Coastguard Worker 237*4f2df630SAndroid Build Coastguard Worker /* 238*4f2df630SAndroid Build Coastguard Worker * Device states 239*4f2df630SAndroid Build Coastguard Worker * 240*4f2df630SAndroid Build Coastguard Worker * Note that not all states are used by all devices. 241*4f2df630SAndroid Build Coastguard Worker */ 242*4f2df630SAndroid Build Coastguard Worker enum device_state { 243*4f2df630SAndroid Build Coastguard Worker /* Initial state at boot */ 244*4f2df630SAndroid Build Coastguard Worker DEVICE_STATE_INIT = 0, 245*4f2df630SAndroid Build Coastguard Worker 246*4f2df630SAndroid Build Coastguard Worker /* 247*4f2df630SAndroid Build Coastguard Worker * Detect was not asserted at boot, but we're not willing to give up on 248*4f2df630SAndroid Build Coastguard Worker * the device right away so we're debouncing to see if it shows up. 249*4f2df630SAndroid Build Coastguard Worker */ 250*4f2df630SAndroid Build Coastguard Worker DEVICE_STATE_INIT_DEBOUNCING, 251*4f2df630SAndroid Build Coastguard Worker 252*4f2df630SAndroid Build Coastguard Worker /* 253*4f2df630SAndroid Build Coastguard Worker * Device was detected at boot, but we can't enable transmit yet 254*4f2df630SAndroid Build Coastguard Worker * because that would interfere with detection of another device. 255*4f2df630SAndroid Build Coastguard Worker */ 256*4f2df630SAndroid Build Coastguard Worker DEVICE_STATE_INIT_RX_ONLY, 257*4f2df630SAndroid Build Coastguard Worker 258*4f2df630SAndroid Build Coastguard Worker /* Disconnected or off, because detect is deasserted */ 259*4f2df630SAndroid Build Coastguard Worker DEVICE_STATE_DISCONNECTED, 260*4f2df630SAndroid Build Coastguard Worker DEVICE_STATE_OFF, 261*4f2df630SAndroid Build Coastguard Worker 262*4f2df630SAndroid Build Coastguard Worker /* Device state is not knowable because we're driving detect */ 263*4f2df630SAndroid Build Coastguard Worker DEVICE_STATE_UNDETECTABLE, 264*4f2df630SAndroid Build Coastguard Worker 265*4f2df630SAndroid Build Coastguard Worker /* Connected or on, because detect is asserted */ 266*4f2df630SAndroid Build Coastguard Worker DEVICE_STATE_CONNECTED, 267*4f2df630SAndroid Build Coastguard Worker DEVICE_STATE_ON, 268*4f2df630SAndroid Build Coastguard Worker 269*4f2df630SAndroid Build Coastguard Worker /* 270*4f2df630SAndroid Build Coastguard Worker * Device was connected, but we saw detect deasserted and are 271*4f2df630SAndroid Build Coastguard Worker * debouncing to see if it stays deasserted - at which point we'll 272*4f2df630SAndroid Build Coastguard Worker * decide that it's disconnected. 273*4f2df630SAndroid Build Coastguard Worker */ 274*4f2df630SAndroid Build Coastguard Worker DEVICE_STATE_DEBOUNCING, 275*4f2df630SAndroid Build Coastguard Worker 276*4f2df630SAndroid Build Coastguard Worker /* Device state is unknown. Used only by legacy device_state code. */ 277*4f2df630SAndroid Build Coastguard Worker DEVICE_STATE_UNKNOWN, 278*4f2df630SAndroid Build Coastguard Worker 279*4f2df630SAndroid Build Coastguard Worker /* The state is being ignored. */ 280*4f2df630SAndroid Build Coastguard Worker DEVICE_STATE_IGNORED, 281*4f2df630SAndroid Build Coastguard Worker 282*4f2df630SAndroid Build Coastguard Worker /* Number of device states */ 283*4f2df630SAndroid Build Coastguard Worker DEVICE_STATE_COUNT 284*4f2df630SAndroid Build Coastguard Worker }; 285*4f2df630SAndroid Build Coastguard Worker 286*4f2df630SAndroid Build Coastguard Worker /** 287*4f2df630SAndroid Build Coastguard Worker * Return the name of the device state as as string. 288*4f2df630SAndroid Build Coastguard Worker * 289*4f2df630SAndroid Build Coastguard Worker * @param state State to look up 290*4f2df630SAndroid Build Coastguard Worker * @return Name of the state, or "?" if no match. 291*4f2df630SAndroid Build Coastguard Worker */ 292*4f2df630SAndroid Build Coastguard Worker const char *device_state_name(enum device_state state); 293*4f2df630SAndroid Build Coastguard Worker 294*4f2df630SAndroid Build Coastguard Worker /* NVMem variables. */ 295*4f2df630SAndroid Build Coastguard Worker enum nvmem_vars { 296*4f2df630SAndroid Build Coastguard Worker NVMEM_VAR_CONSOLE_LOCKED = 0, 297*4f2df630SAndroid Build Coastguard Worker NVMEM_VAR_TEST_VAR, 298*4f2df630SAndroid Build Coastguard Worker NVMEM_VAR_U2F_SALT, 299*4f2df630SAndroid Build Coastguard Worker NVMEM_VAR_CCD_CONFIG, 300*4f2df630SAndroid Build Coastguard Worker NVMEM_VAR_G2F_SALT, 301*4f2df630SAndroid Build Coastguard Worker 302*4f2df630SAndroid Build Coastguard Worker NVMEM_VARS_COUNT 303*4f2df630SAndroid Build Coastguard Worker }; 304*4f2df630SAndroid Build Coastguard Worker 305*4f2df630SAndroid Build Coastguard Worker void board_configure_deep_sleep_wakepins(void); 306*4f2df630SAndroid Build Coastguard Worker void ap_detect_asserted(enum gpio_signal signal); 307*4f2df630SAndroid Build Coastguard Worker void ec_detect_asserted(enum gpio_signal signal); 308*4f2df630SAndroid Build Coastguard Worker void servo_detect_asserted(enum gpio_signal signal); 309*4f2df630SAndroid Build Coastguard Worker void tpm_rst_deasserted(enum gpio_signal signal); 310*4f2df630SAndroid Build Coastguard Worker void tpm_rst_asserted(enum gpio_signal signal); 311*4f2df630SAndroid Build Coastguard Worker void diom4_deasserted(enum gpio_signal signal); 312*4f2df630SAndroid Build Coastguard Worker 313*4f2df630SAndroid Build Coastguard Worker void post_reboot_request(void); 314*4f2df630SAndroid Build Coastguard Worker 315*4f2df630SAndroid Build Coastguard Worker /* Special controls over EC and AP */ 316*4f2df630SAndroid Build Coastguard Worker void assert_sys_rst(void); 317*4f2df630SAndroid Build Coastguard Worker void deassert_sys_rst(void); 318*4f2df630SAndroid Build Coastguard Worker void assert_ec_rst(void); 319*4f2df630SAndroid Build Coastguard Worker void deassert_ec_rst(void); 320*4f2df630SAndroid Build Coastguard Worker int is_ec_rst_asserted(void); 321*4f2df630SAndroid Build Coastguard Worker /* Ignore the servo state. */ 322*4f2df630SAndroid Build Coastguard Worker void servo_ignore(int enable); 323*4f2df630SAndroid Build Coastguard Worker 324*4f2df630SAndroid Build Coastguard Worker /** 325*4f2df630SAndroid Build Coastguard Worker * Set up a deferred call to update CCD state. 326*4f2df630SAndroid Build Coastguard Worker * 327*4f2df630SAndroid Build Coastguard Worker * This will enable/disable UARTs, SPI, I2C, etc. as needed. 328*4f2df630SAndroid Build Coastguard Worker */ 329*4f2df630SAndroid Build Coastguard Worker void ccd_update_state(void); 330*4f2df630SAndroid Build Coastguard Worker 331*4f2df630SAndroid Build Coastguard Worker /** 332*4f2df630SAndroid Build Coastguard Worker * Return the state of the BOARD_USE_PLT_RST board strap option. 333*4f2df630SAndroid Build Coastguard Worker * 334*4f2df630SAndroid Build Coastguard Worker * @return 0 if option is not set, !=0 if option set. 335*4f2df630SAndroid Build Coastguard Worker */ 336*4f2df630SAndroid Build Coastguard Worker int board_use_plt_rst(void); 337*4f2df630SAndroid Build Coastguard Worker /** 338*4f2df630SAndroid Build Coastguard Worker * Return the state of the BOARD_NEEDS_SYS_RST_PULL_UP board strap option. 339*4f2df630SAndroid Build Coastguard Worker * 340*4f2df630SAndroid Build Coastguard Worker * @return 0 if option is not set, !=0 if option set. 341*4f2df630SAndroid Build Coastguard Worker */ 342*4f2df630SAndroid Build Coastguard Worker int board_rst_pullup_needed(void); 343*4f2df630SAndroid Build Coastguard Worker /** 344*4f2df630SAndroid Build Coastguard Worker * Return the state of the BOARD_PERIPH_CONFIG_I2C board strap option. 345*4f2df630SAndroid Build Coastguard Worker * 346*4f2df630SAndroid Build Coastguard Worker * @return 0 if option is not set, !=0 if option set. 347*4f2df630SAndroid Build Coastguard Worker */ 348*4f2df630SAndroid Build Coastguard Worker int board_tpm_uses_i2c(void); 349*4f2df630SAndroid Build Coastguard Worker /** 350*4f2df630SAndroid Build Coastguard Worker * Return the state of the BOARD_PERIPH_CONFIG_SPI board strap option. 351*4f2df630SAndroid Build Coastguard Worker * 352*4f2df630SAndroid Build Coastguard Worker * @return 0 if option is not set, !=0 if option set. 353*4f2df630SAndroid Build Coastguard Worker */ 354*4f2df630SAndroid Build Coastguard Worker int board_tpm_uses_spi(void); 355*4f2df630SAndroid Build Coastguard Worker /** 356*4f2df630SAndroid Build Coastguard Worker * Return the state of the BOARD_CLOSED_SOURCE_SET1 board strap option. 357*4f2df630SAndroid Build Coastguard Worker * 358*4f2df630SAndroid Build Coastguard Worker * @return 0 if option is not set, !=0 if option set. 359*4f2df630SAndroid Build Coastguard Worker */ 360*4f2df630SAndroid Build Coastguard Worker int board_uses_closed_source_set1(void); 361*4f2df630SAndroid Build Coastguard Worker /** 362*4f2df630SAndroid Build Coastguard Worker * The board needs to wait until TPM_RST_L is asserted before deasserting 363*4f2df630SAndroid Build Coastguard Worker * system reset signals. 364*4f2df630SAndroid Build Coastguard Worker * 365*4f2df630SAndroid Build Coastguard Worker * @return 0 if option is not set, !=0 if option set. 366*4f2df630SAndroid Build Coastguard Worker */ 367*4f2df630SAndroid Build Coastguard Worker int board_uses_closed_loop_reset(void); 368*4f2df630SAndroid Build Coastguard Worker /** 369*4f2df630SAndroid Build Coastguard Worker * The board has all necessary I2C pins connected for INA support. 370*4f2df630SAndroid Build Coastguard Worker * 371*4f2df630SAndroid Build Coastguard Worker * @return 0 if option is not set, !=0 if option set. 372*4f2df630SAndroid Build Coastguard Worker */ 373*4f2df630SAndroid Build Coastguard Worker int board_has_ina_support(void); 374*4f2df630SAndroid Build Coastguard Worker /* The board supports EC-CR50 communication. */ 375*4f2df630SAndroid Build Coastguard Worker int board_has_ec_cr50_comm_support(void); 376*4f2df630SAndroid Build Coastguard Worker int board_id_is_mismatched(void); 377*4f2df630SAndroid Build Coastguard Worker /* Allow for deep sleep to be enabled on AP shutdown */ 378*4f2df630SAndroid Build Coastguard Worker int board_deep_sleep_allowed(void); 379*4f2df630SAndroid Build Coastguard Worker /* The board uses DIOM4 for user_pres_l */ 380*4f2df630SAndroid Build Coastguard Worker int board_use_diom4(void); 381*4f2df630SAndroid Build Coastguard Worker 382*4f2df630SAndroid Build Coastguard Worker /* Set or clear a board property flag in long life scratch. */ 383*4f2df630SAndroid Build Coastguard Worker void board_write_prop(uint32_t flag, uint8_t enable); 384*4f2df630SAndroid Build Coastguard Worker 385*4f2df630SAndroid Build Coastguard Worker void power_button_record(void); 386*4f2df630SAndroid Build Coastguard Worker 387*4f2df630SAndroid Build Coastguard Worker /** 388*4f2df630SAndroid Build Coastguard Worker * Enable/disable power button release interrupt. 389*4f2df630SAndroid Build Coastguard Worker * 390*4f2df630SAndroid Build Coastguard Worker * @param enable Enable (!=0) or disable (==0) 391*4f2df630SAndroid Build Coastguard Worker */ 392*4f2df630SAndroid Build Coastguard Worker void power_button_release_enable_interrupt(int enable); 393*4f2df630SAndroid Build Coastguard Worker 394*4f2df630SAndroid Build Coastguard Worker /* Functions needed by CCD config */ 395*4f2df630SAndroid Build Coastguard Worker int board_battery_is_present(void); 396*4f2df630SAndroid Build Coastguard Worker int board_fwmp_allows_boot_policy_update(void); 397*4f2df630SAndroid Build Coastguard Worker int board_fwmp_allows_unlock(void); 398*4f2df630SAndroid Build Coastguard Worker void board_fwmp_update_policies(void); 399*4f2df630SAndroid Build Coastguard Worker int board_vboot_dev_mode_enabled(void); 400*4f2df630SAndroid Build Coastguard Worker void board_reboot_ap(void); 401*4f2df630SAndroid Build Coastguard Worker void board_reboot_ec(void); 402*4f2df630SAndroid Build Coastguard Worker /** 403*4f2df630SAndroid Build Coastguard Worker * Reboot the EC 404*4f2df630SAndroid Build Coastguard Worker * @param usec_delay microseconds to delay in rebooting EC. 405*4f2df630SAndroid Build Coastguard Worker * negative input shall be disregarded. 406*4f2df630SAndroid Build Coastguard Worker */ 407*4f2df630SAndroid Build Coastguard Worker void board_reboot_ec_deferred(int usec_delay); 408*4f2df630SAndroid Build Coastguard Worker void board_closed_loop_reset(void); 409*4f2df630SAndroid Build Coastguard Worker int board_wipe_tpm(int reset_required); 410*4f2df630SAndroid Build Coastguard Worker int board_is_first_factory_boot(void); 411*4f2df630SAndroid Build Coastguard Worker 412*4f2df630SAndroid Build Coastguard Worker int usb_i2c_board_enable(void); 413*4f2df630SAndroid Build Coastguard Worker void usb_i2c_board_disable(void); 414*4f2df630SAndroid Build Coastguard Worker 415*4f2df630SAndroid Build Coastguard Worker void print_ap_state(void); 416*4f2df630SAndroid Build Coastguard Worker void print_ap_uart_state(void); 417*4f2df630SAndroid Build Coastguard Worker void print_ec_state(void); 418*4f2df630SAndroid Build Coastguard Worker void print_servo_state(void); 419*4f2df630SAndroid Build Coastguard Worker 420*4f2df630SAndroid Build Coastguard Worker void pmu_check_tpm_rst(void); 421*4f2df630SAndroid Build Coastguard Worker int ap_is_on(void); 422*4f2df630SAndroid Build Coastguard Worker int ap_uart_is_on(void); 423*4f2df630SAndroid Build Coastguard Worker int ec_is_on(void); 424*4f2df630SAndroid Build Coastguard Worker int ec_is_rx_allowed(void); 425*4f2df630SAndroid Build Coastguard Worker int servo_is_connected(void); 426*4f2df630SAndroid Build Coastguard Worker 427*4f2df630SAndroid Build Coastguard Worker /* 428*4f2df630SAndroid Build Coastguard Worker * Returns nonzero value if EC reset line is taken over and should not be 429*4f2df630SAndroid Build Coastguard Worker * touched by the 'standard' EC reset functions. 430*4f2df630SAndroid Build Coastguard Worker */ 431*4f2df630SAndroid Build Coastguard Worker int ec_rst_override(void); 432*4f2df630SAndroid Build Coastguard Worker 433*4f2df630SAndroid Build Coastguard Worker /* 434*4f2df630SAndroid Build Coastguard Worker * Assert INT_AP_L to acknowledge AP that cr50 is ready for next TPM command. 435*4f2df630SAndroid Build Coastguard Worker * NOTE: must be called by ISR only. 436*4f2df630SAndroid Build Coastguard Worker * 437*4f2df630SAndroid Build Coastguard Worker * Returns 1 if it successfully asserted (or scheduled to assert), or 438*4f2df630SAndroid Build Coastguard Worker * 0 if the extended long pulse was disabled. 439*4f2df630SAndroid Build Coastguard Worker */ 440*4f2df630SAndroid Build Coastguard Worker int assert_int_ap(void); 441*4f2df630SAndroid Build Coastguard Worker 442*4f2df630SAndroid Build Coastguard Worker /* 443*4f2df630SAndroid Build Coastguard Worker * Deassert INT_AP_L immediately. 444*4f2df630SAndroid Build Coastguard Worker * NOTE: must be called by ISR only. 445*4f2df630SAndroid Build Coastguard Worker */ 446*4f2df630SAndroid Build Coastguard Worker void deassert_int_ap(void); 447*4f2df630SAndroid Build Coastguard Worker 448*4f2df630SAndroid Build Coastguard Worker /* Register a function that should be called when INT_AP_L extension starts. */ 449*4f2df630SAndroid Build Coastguard Worker void int_ap_register(void (*func_enable)(void)); 450*4f2df630SAndroid Build Coastguard Worker 451*4f2df630SAndroid Build Coastguard Worker void int_ap_extension_enable(void); 452*4f2df630SAndroid Build Coastguard Worker void int_ap_extension_stop_pulse(void); 453*4f2df630SAndroid Build Coastguard Worker 454*4f2df630SAndroid Build Coastguard Worker /* Moving from legacy versions might require NVMEM transition. */ 455*4f2df630SAndroid Build Coastguard Worker int board_nvmem_legacy_check_needed(void); 456*4f2df630SAndroid Build Coastguard Worker 457*4f2df630SAndroid Build Coastguard Worker void set_ap_on(void); 458*4f2df630SAndroid Build Coastguard Worker 459*4f2df630SAndroid Build Coastguard Worker /* 460*4f2df630SAndroid Build Coastguard Worker * Trigger generation of the ITE SYNC sequence on the way up after next 461*4f2df630SAndroid Build Coastguard Worker * reboot. 462*4f2df630SAndroid Build Coastguard Worker */ 463*4f2df630SAndroid Build Coastguard Worker void board_start_ite_sync(void); 464*4f2df630SAndroid Build Coastguard Worker 465*4f2df630SAndroid Build Coastguard Worker /* 466*4f2df630SAndroid Build Coastguard Worker * Board specific function (needs information about pinmux settings) which 467*4f2df630SAndroid Build Coastguard Worker * allows to take the i2cp driver out of the 'wedged' state where the controller 468*4f2df630SAndroid Build Coastguard Worker * stopped i2c access mid transaction and the periph is holding SDA low. 469*4f2df630SAndroid Build Coastguard Worker */ 470*4f2df630SAndroid Build Coastguard Worker void board_unwedge_i2cp(void); 471*4f2df630SAndroid Build Coastguard Worker 472*4f2df630SAndroid Build Coastguard Worker int board_in_prod_mode(void); 473*4f2df630SAndroid Build Coastguard Worker 474*4f2df630SAndroid Build Coastguard Worker /* Bit masks for each bit in TPM_BOARD_CFG register */ 475*4f2df630SAndroid Build Coastguard Worker enum board_cfg_reg_bitmask { 476*4f2df630SAndroid Build Coastguard Worker BOARD_CFG_LONG_INT_AP_BIT = BIT(0), 477*4f2df630SAndroid Build Coastguard Worker 478*4f2df630SAndroid Build Coastguard Worker BOARD_CFG_LOCKED_BIT = BIT(31), 479*4f2df630SAndroid Build Coastguard Worker }; 480*4f2df630SAndroid Build Coastguard Worker 481*4f2df630SAndroid Build Coastguard Worker /* Disable write on TPM_BOARD_CFG register. */ 482*4f2df630SAndroid Build Coastguard Worker void board_cfg_reg_write_disable(void); 483*4f2df630SAndroid Build Coastguard Worker 484*4f2df630SAndroid Build Coastguard Worker /* 485*4f2df630SAndroid Build Coastguard Worker * Write on TPM_BOARD_CFG register if BOARD_CFG_LOCKED_BIT is clear. 486*4f2df630SAndroid Build Coastguard Worker * 487*4f2df630SAndroid Build Coastguard Worker * @param value: value to write on TPM_BOARD_CFG 488*4f2df630SAndroid Build Coastguard Worker */ 489*4f2df630SAndroid Build Coastguard Worker void board_cfg_reg_write(unsigned int value); 490*4f2df630SAndroid Build Coastguard Worker 491*4f2df630SAndroid Build Coastguard Worker /* 492*4f2df630SAndroid Build Coastguard Worker * Read TPM_BOARD_CFG register. 493*4f2df630SAndroid Build Coastguard Worker * 494*4f2df630SAndroid Build Coastguard Worker * @param TPM_BOARD_CFG register value in uint32_t type. 495*4f2df630SAndroid Build Coastguard Worker */ 496*4f2df630SAndroid Build Coastguard Worker unsigned int board_cfg_reg_read(void); 497*4f2df630SAndroid Build Coastguard Worker 498*4f2df630SAndroid Build Coastguard Worker #endif /* !__ASSEMBLER__ */ 499*4f2df630SAndroid Build Coastguard Worker 500*4f2df630SAndroid Build Coastguard Worker /* USB interface indexes (use define rather than enum to expand them) */ 501*4f2df630SAndroid Build Coastguard Worker #define USB_IFACE_CONSOLE 0 502*4f2df630SAndroid Build Coastguard Worker #define USB_IFACE_AP 1 503*4f2df630SAndroid Build Coastguard Worker #define USB_IFACE_EC 2 504*4f2df630SAndroid Build Coastguard Worker #define USB_IFACE_UPGRADE 3 505*4f2df630SAndroid Build Coastguard Worker #define USB_IFACE_SPI 4 506*4f2df630SAndroid Build Coastguard Worker #define USB_IFACE_I2C 5 507*4f2df630SAndroid Build Coastguard Worker #define USB_IFACE_COUNT 6 508*4f2df630SAndroid Build Coastguard Worker 509*4f2df630SAndroid Build Coastguard Worker /* USB endpoint indexes (use define rather than enum to expand them) */ 510*4f2df630SAndroid Build Coastguard Worker #define USB_EP_CONTROL 0 511*4f2df630SAndroid Build Coastguard Worker #define USB_EP_CONSOLE 1 512*4f2df630SAndroid Build Coastguard Worker #define USB_EP_AP 2 513*4f2df630SAndroid Build Coastguard Worker #define USB_EP_EC 3 514*4f2df630SAndroid Build Coastguard Worker #define USB_EP_UPGRADE 4 515*4f2df630SAndroid Build Coastguard Worker #define USB_EP_SPI 5 516*4f2df630SAndroid Build Coastguard Worker #define USB_EP_I2C 6 517*4f2df630SAndroid Build Coastguard Worker #define USB_EP_COUNT 7 518*4f2df630SAndroid Build Coastguard Worker 519*4f2df630SAndroid Build Coastguard Worker /* UART indexes (use define rather than enum to expand them) */ 520*4f2df630SAndroid Build Coastguard Worker #define UART_CR50 0 521*4f2df630SAndroid Build Coastguard Worker #define UART_AP 1 522*4f2df630SAndroid Build Coastguard Worker #define UART_EC 2 523*4f2df630SAndroid Build Coastguard Worker #define UART_NULL 0xff 524*4f2df630SAndroid Build Coastguard Worker 525*4f2df630SAndroid Build Coastguard Worker #define UARTN UART_CR50 526*4f2df630SAndroid Build Coastguard Worker 527*4f2df630SAndroid Build Coastguard Worker #define CC_DEFAULT (CC_ALL & ~CC_MASK(CC_TPM)) 528*4f2df630SAndroid Build Coastguard Worker 529*4f2df630SAndroid Build Coastguard Worker /* Nv Memory users */ 530*4f2df630SAndroid Build Coastguard Worker #ifndef __ASSEMBLER__ 531*4f2df630SAndroid Build Coastguard Worker enum nvmem_users { NVMEM_TPM = 0, NVMEM_CR50, NVMEM_NUM_USERS }; 532*4f2df630SAndroid Build Coastguard Worker #endif 533*4f2df630SAndroid Build Coastguard Worker 534*4f2df630SAndroid Build Coastguard Worker #define CONFIG_FLASH_NVMEM_VARS_USER_NUM NVMEM_CR50 535*4f2df630SAndroid Build Coastguard Worker #define CONFIG_RW_B 536*4f2df630SAndroid Build Coastguard Worker 537*4f2df630SAndroid Build Coastguard Worker #define CONFIG_AP_RO_VERIFICATION 538*4f2df630SAndroid Build Coastguard Worker #define CONFIG_SPI_HASH 539*4f2df630SAndroid Build Coastguard Worker 540*4f2df630SAndroid Build Coastguard Worker /* Firmware upgrade options. */ 541*4f2df630SAndroid Build Coastguard Worker #define CONFIG_NON_HC_FW_UPDATE 542*4f2df630SAndroid Build Coastguard Worker #define CONFIG_USB_FW_UPDATE 543*4f2df630SAndroid Build Coastguard Worker 544*4f2df630SAndroid Build Coastguard Worker #define CONFIG_I2C 545*4f2df630SAndroid Build Coastguard Worker #define CONFIG_I2C_CONTROLLER 546*4f2df630SAndroid Build Coastguard Worker #define CONFIG_I2C_PERIPH 547*4f2df630SAndroid Build Coastguard Worker #define CONFIG_TPM_I2CP 548*4f2df630SAndroid Build Coastguard Worker 549*4f2df630SAndroid Build Coastguard Worker #define CONFIG_BOARD_ID_SUPPORT 550*4f2df630SAndroid Build Coastguard Worker #define CONFIG_SN_BITS_SUPPORT 551*4f2df630SAndroid Build Coastguard Worker #define CONFIG_EXTENDED_VERSION_INFO 552*4f2df630SAndroid Build Coastguard Worker 553*4f2df630SAndroid Build Coastguard Worker #define I2C_PORT_CONTROLLER 0 554*4f2df630SAndroid Build Coastguard Worker 555*4f2df630SAndroid Build Coastguard Worker #define CONFIG_BASE32 556*4f2df630SAndroid Build Coastguard Worker #define CONFIG_RMA_AUTH 557*4f2df630SAndroid Build Coastguard Worker #define CONFIG_FACTORY_MODE 558*4f2df630SAndroid Build Coastguard Worker #define CONFIG_RNG 559*4f2df630SAndroid Build Coastguard Worker 560*4f2df630SAndroid Build Coastguard Worker #define CONFIG_EC_EFS_SUPPORT 561*4f2df630SAndroid Build Coastguard Worker #define CONFIG_EC_EFS2_VERSION 0 562*4f2df630SAndroid Build Coastguard Worker 563*4f2df630SAndroid Build Coastguard Worker #define CONFIG_ENABLE_H1_ALERTS 564*4f2df630SAndroid Build Coastguard Worker 565*4f2df630SAndroid Build Coastguard Worker /* Enable hardware backed brute force resistance feature */ 566*4f2df630SAndroid Build Coastguard Worker #define CONFIG_PLATFORM_PINWEAVER 567*4f2df630SAndroid Build Coastguard Worker 568*4f2df630SAndroid Build Coastguard Worker /* 569*4f2df630SAndroid Build Coastguard Worker * Disabling p256 will result in RMA Auth falling back to the x25519 curve 570*4f2df630SAndroid Build Coastguard Worker * which in turn would require extra 5328 bytes of flash space. 571*4f2df630SAndroid Build Coastguard Worker */ 572*4f2df630SAndroid Build Coastguard Worker #define CONFIG_RMA_AUTH_USE_P256 573*4f2df630SAndroid Build Coastguard Worker #ifndef CONFIG_RMA_AUTH_USE_P256 574*4f2df630SAndroid Build Coastguard Worker #define CONFIG_CURVE25519 575*4f2df630SAndroid Build Coastguard Worker #endif 576*4f2df630SAndroid Build Coastguard Worker 577*4f2df630SAndroid Build Coastguard Worker #define CONFIG_CCD_ITE_PROGRAMMING 578*4f2df630SAndroid Build Coastguard Worker 579*4f2df630SAndroid Build Coastguard Worker /* 580*4f2df630SAndroid Build Coastguard Worker * Increase sizes of USB over I2C read and write queues. Sizes are are such 581*4f2df630SAndroid Build Coastguard Worker * that when appropriate overheads are included, total buffer sizes are powers 582*4f2df630SAndroid Build Coastguard Worker * of 2 (2^9 in both cases below). 583*4f2df630SAndroid Build Coastguard Worker */ 584*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_USB_I2C_MAX_WRITE_COUNT 585*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_USB_I2C_MAX_READ_COUNT 586*4f2df630SAndroid Build Coastguard Worker #define CONFIG_USB_I2C_MAX_WRITE_COUNT 508 587*4f2df630SAndroid Build Coastguard Worker #define CONFIG_USB_I2C_MAX_READ_COUNT 506 588*4f2df630SAndroid Build Coastguard Worker 589*4f2df630SAndroid Build Coastguard Worker /* The below time constants are way longer than should be required in practice: 590*4f2df630SAndroid Build Coastguard Worker * 591*4f2df630SAndroid Build Coastguard Worker * Time it takes to finish processing TPM command 592*4f2df630SAndroid Build Coastguard Worker */ 593*4f2df630SAndroid Build Coastguard Worker #define TPM_PROCESSING_TIME (1 * SECOND) 594*4f2df630SAndroid Build Coastguard Worker 595*4f2df630SAndroid Build Coastguard Worker /* 596*4f2df630SAndroid Build Coastguard Worker * Time it takse TPM reset function to wipe out the NVMEM and reboot the 597*4f2df630SAndroid Build Coastguard Worker * device. 598*4f2df630SAndroid Build Coastguard Worker */ 599*4f2df630SAndroid Build Coastguard Worker #define TPM_RESET_TIME (10 * SECOND) 600*4f2df630SAndroid Build Coastguard Worker 601*4f2df630SAndroid Build Coastguard Worker /* Total time deep sleep should not be allowed while wiping the TPM. */ 602*4f2df630SAndroid Build Coastguard Worker #define DISABLE_SLEEP_TIME_TPM_WIPE (TPM_PROCESSING_TIME + TPM_RESET_TIME) 603*4f2df630SAndroid Build Coastguard Worker 604*4f2df630SAndroid Build Coastguard Worker /*****************************************************************************/ 605*4f2df630SAndroid Build Coastguard Worker /* 606*4f2df630SAndroid Build Coastguard Worker * Options for CRYPTO_TEST=1 images. Crypto test support takes up more space 607*4f2df630SAndroid Build Coastguard Worker * than the standard image has available. Use this section to add crypto test 608*4f2df630SAndroid Build Coastguard Worker * features and remove things to free up enough space to build them. 609*4f2df630SAndroid Build Coastguard Worker */ 610*4f2df630SAndroid Build Coastguard Worker #ifdef CRYPTO_TEST_SETUP 611*4f2df630SAndroid Build Coastguard Worker /* Enable unsafe dev features for CCD in crypto test builds */ 612*4f2df630SAndroid Build Coastguard Worker #define CONFIG_CMD_ROLLBACK 613*4f2df630SAndroid Build Coastguard Worker 614*4f2df630SAndroid Build Coastguard Worker /* Remove console commands to save space */ 615*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_CMD_ECRST 616*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_CMD_SYSRST 617*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_CMD_WP 618*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_CMD_DUMP_NVMEM 619*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_CMD_PINMUX 620*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_CMD_GPIOCFG 621*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_CMD_SLEEPMASK 622*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_CMD_TIMERINFO 623*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_CONSOLE_HISTORY 624*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_I2C_XFER 625*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_I2C_SCAN 626*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_CONSOLE_CMDHELP 627*4f2df630SAndroid Build Coastguard Worker 628*4f2df630SAndroid Build Coastguard Worker /* Remove features crypto test doesn't use to save space */ 629*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_AP_RO_VERIFICATION 630*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_SPI_HASH 631*4f2df630SAndroid Build Coastguard Worker #endif /* CRYPTO_TEST_SETUP */ 632*4f2df630SAndroid Build Coastguard Worker #endif /* __CROS_EC_BOARD_H */ 633