1*4f2df630SAndroid Build Coastguard Worker /* Copyright 2018 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 /* Fuzzer target config flags */ 7*4f2df630SAndroid Build Coastguard Worker 8*4f2df630SAndroid Build Coastguard Worker #ifndef __FUZZ_FUZZ_CONFIG_H 9*4f2df630SAndroid Build Coastguard Worker #define __FUZZ_FUZZ_CONFIG_H 10*4f2df630SAndroid Build Coastguard Worker #ifdef TEST_FUZZ 11*4f2df630SAndroid Build Coastguard Worker 12*4f2df630SAndroid Build Coastguard Worker /* Disable hibernate: We never want to exit while fuzzing. */ 13*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_HIBERNATE 14*4f2df630SAndroid Build Coastguard Worker 15*4f2df630SAndroid Build Coastguard Worker #ifdef TEST_PINWEAVER_FUZZ 16*4f2df630SAndroid Build Coastguard Worker #define CONFIG_DCRYPTO 17*4f2df630SAndroid Build Coastguard Worker #define CONFIG_PINWEAVER 18*4f2df630SAndroid Build Coastguard Worker #define CONFIG_UPTO_SHA512 19*4f2df630SAndroid Build Coastguard Worker #define SHA512_SUPPORT 20*4f2df630SAndroid Build Coastguard Worker #define CONFIG_MALLOC 21*4f2df630SAndroid Build Coastguard Worker 22*4f2df630SAndroid Build Coastguard Worker /******************************************************************************/ 23*4f2df630SAndroid Build Coastguard Worker /* From chip/g/config_chip.h */ 24*4f2df630SAndroid Build Coastguard Worker 25*4f2df630SAndroid Build Coastguard Worker #define CFG_FLASH_HALF (CONFIG_FLASH_SIZE >> 1) 26*4f2df630SAndroid Build Coastguard Worker #define CFG_TOP_SIZE 0x3000 27*4f2df630SAndroid Build Coastguard Worker #define CFG_TOP_A_OFF (CFG_FLASH_HALF - CFG_TOP_SIZE) 28*4f2df630SAndroid Build Coastguard Worker #define CFG_TOP_B_OFF (CONFIG_FLASH_SIZE - CFG_TOP_SIZE) 29*4f2df630SAndroid Build Coastguard Worker 30*4f2df630SAndroid Build Coastguard Worker /******************************************************************************/ 31*4f2df630SAndroid Build Coastguard Worker /* From board/cr50/board.h */ 32*4f2df630SAndroid Build Coastguard Worker /* Non-volatile counter storage for U2F */ 33*4f2df630SAndroid Build Coastguard Worker #define CONFIG_CRC8 34*4f2df630SAndroid Build Coastguard Worker #define CONFIG_FLASH_ERASED_VALUE32 (-1U) 35*4f2df630SAndroid Build Coastguard Worker #define CONFIG_FLASH_LOG 36*4f2df630SAndroid Build Coastguard Worker #define CONFIG_FLASH_LOG_BASE CONFIG_PROGRAM_MEMORY_BASE 37*4f2df630SAndroid Build Coastguard Worker #define CONFIG_FLASH_LOG_SPACE 0x800 38*4f2df630SAndroid Build Coastguard Worker 39*4f2df630SAndroid Build Coastguard Worker /* We're using TOP_A for partition 0, TOP_B for partition 1 */ 40*4f2df630SAndroid Build Coastguard Worker #define CONFIG_FLASH_NVMEM 41*4f2df630SAndroid Build Coastguard Worker /* Offset to start of NvMem area from base of flash */ 42*4f2df630SAndroid Build Coastguard Worker #define CONFIG_FLASH_NVMEM_OFFSET_A (CFG_TOP_A_OFF) 43*4f2df630SAndroid Build Coastguard Worker #define CONFIG_FLASH_NVMEM_OFFSET_B (CFG_TOP_B_OFF) 44*4f2df630SAndroid Build Coastguard Worker /* Address of start of Nvmem area */ 45*4f2df630SAndroid Build Coastguard Worker #define CONFIG_FLASH_NVMEM_BASE_A \ 46*4f2df630SAndroid Build Coastguard Worker (CONFIG_PROGRAM_MEMORY_BASE + CONFIG_FLASH_NVMEM_OFFSET_A) 47*4f2df630SAndroid Build Coastguard Worker #define CONFIG_FLASH_NVMEM_BASE_B \ 48*4f2df630SAndroid Build Coastguard Worker (CONFIG_PROGRAM_MEMORY_BASE + CONFIG_FLASH_NVMEM_OFFSET_B) 49*4f2df630SAndroid Build Coastguard Worker #define CONFIG_FLASH_NEW_NVMEM_BASE_A \ 50*4f2df630SAndroid Build Coastguard Worker (CONFIG_FLASH_NVMEM_BASE_A + CONFIG_FLASH_BANK_SIZE) 51*4f2df630SAndroid Build Coastguard Worker #define CONFIG_FLASH_NEW_NVMEM_BASE_B \ 52*4f2df630SAndroid Build Coastguard Worker (CONFIG_FLASH_NVMEM_BASE_B + CONFIG_FLASH_BANK_SIZE) 53*4f2df630SAndroid Build Coastguard Worker /* Size partition in NvMem */ 54*4f2df630SAndroid Build Coastguard Worker #define NVMEM_PARTITION_SIZE (CFG_TOP_SIZE) 55*4f2df630SAndroid Build Coastguard Worker /* Size in bytes of NvMem area */ 56*4f2df630SAndroid Build Coastguard Worker #define CONFIG_FLASH_NVMEM_SIZE (NVMEM_PARTITION_SIZE * NVMEM_NUM_PARTITIONS) 57*4f2df630SAndroid Build Coastguard Worker 58*4f2df630SAndroid Build Coastguard Worker #define NEW_NVMEM_PARTITION_SIZE (NVMEM_PARTITION_SIZE - CONFIG_FLASH_BANK_SIZE) 59*4f2df630SAndroid Build Coastguard Worker #define NEW_NVMEM_TOTAL_PAGES \ 60*4f2df630SAndroid Build Coastguard Worker (2 * NEW_NVMEM_PARTITION_SIZE / CONFIG_FLASH_BANK_SIZE) 61*4f2df630SAndroid Build Coastguard Worker 62*4f2df630SAndroid Build Coastguard Worker /* Enable <key, value> variable support. */ 63*4f2df630SAndroid Build Coastguard Worker #define CONFIG_FLASH_NVMEM_VARS 64*4f2df630SAndroid Build Coastguard Worker #define NVMEM_CR50_SIZE 272 65*4f2df630SAndroid Build Coastguard Worker #define CONFIG_FLASH_NVMEM_VARS_USER_SIZE NVMEM_CR50_SIZE 66*4f2df630SAndroid Build Coastguard Worker 67*4f2df630SAndroid Build Coastguard Worker #ifndef __ASSEMBLER__ 68*4f2df630SAndroid Build Coastguard Worker enum nvmem_users { NVMEM_TPM = 0, NVMEM_CR50, NVMEM_NUM_USERS }; 69*4f2df630SAndroid Build Coastguard Worker #endif 70*4f2df630SAndroid Build Coastguard Worker 71*4f2df630SAndroid Build Coastguard Worker #define NVMEM_TPM_SIZE \ 72*4f2df630SAndroid Build Coastguard Worker (sizeof(((nvmem_partition *)(0))->buffer) - NVMEM_CR50_SIZE) 73*4f2df630SAndroid Build Coastguard Worker 74*4f2df630SAndroid Build Coastguard Worker #define CONFIG_FLASH_NVMEM_VARS_USER_NUM NVMEM_CR50 75*4f2df630SAndroid Build Coastguard Worker 76*4f2df630SAndroid Build Coastguard Worker /******************************************************************************/ 77*4f2df630SAndroid Build Coastguard Worker #define CONFIG_SW_CRC 78*4f2df630SAndroid Build Coastguard Worker 79*4f2df630SAndroid Build Coastguard Worker #endif /* TEST_PINWEAVER_FUZZ */ 80*4f2df630SAndroid Build Coastguard Worker 81*4f2df630SAndroid Build Coastguard Worker #ifdef TEST_HOST_COMMAND_FUZZ 82*4f2df630SAndroid Build Coastguard Worker #undef CONFIG_HOSTCMD_DEBUG_MODE 83*4f2df630SAndroid Build Coastguard Worker 84*4f2df630SAndroid Build Coastguard Worker /* Defining this makes fuzzing slower, but exercises additional code paths. */ 85*4f2df630SAndroid Build Coastguard Worker #define FUZZ_HOSTCMD_VERBOSE 86*4f2df630SAndroid Build Coastguard Worker 87*4f2df630SAndroid Build Coastguard Worker #ifdef FUZZ_HOSTCMD_VERBOSE 88*4f2df630SAndroid Build Coastguard Worker #define CONFIG_HOSTCMD_DEBUG_MODE HCDEBUG_PARAMS 89*4f2df630SAndroid Build Coastguard Worker #else 90*4f2df630SAndroid Build Coastguard Worker #define CONFIG_HOSTCMD_DEBUG_MODE HCDEBUG_OFF 91*4f2df630SAndroid Build Coastguard Worker #endif /* ! FUZZ_HOSTCMD_VERBOSE */ 92*4f2df630SAndroid Build Coastguard Worker 93*4f2df630SAndroid Build Coastguard Worker /* The following are for fpsensor host commands. */ 94*4f2df630SAndroid Build Coastguard Worker #define CONFIG_AES 95*4f2df630SAndroid Build Coastguard Worker #define CONFIG_AES_GCM 96*4f2df630SAndroid Build Coastguard Worker #define CONFIG_ROLLBACK_SECRET_SIZE 32 97*4f2df630SAndroid Build Coastguard Worker #define CONFIG_SHA256 98*4f2df630SAndroid Build Coastguard Worker 99*4f2df630SAndroid Build Coastguard Worker #endif /* TEST_HOST_COMMAND_FUZZ */ 100*4f2df630SAndroid Build Coastguard Worker 101*4f2df630SAndroid Build Coastguard Worker #ifdef TEST_U2F_FUZZ 102*4f2df630SAndroid Build Coastguard Worker #define CONFIG_DCRYPTO 103*4f2df630SAndroid Build Coastguard Worker #define CONFIG_U2F 104*4f2df630SAndroid Build Coastguard Worker #define CC_EXTENSION CC_COMMAND 105*4f2df630SAndroid Build Coastguard Worker #endif /* TEST_U2F_FUZZ */ 106*4f2df630SAndroid Build Coastguard Worker 107*4f2df630SAndroid Build Coastguard Worker #endif /* TEST_FUZZ */ 108*4f2df630SAndroid Build Coastguard Worker #endif /* __FUZZ_FUZZ_CONFIG_H */ 109