diff options
-rw-r--r-- | common/system.c | 4 | ||||
-rw-r--r-- | zephyr/shim/src/CMakeLists.txt | 3 | ||||
-rw-r--r-- | zephyr/shim/src/ztest_system.c | 100 | ||||
-rw-r--r-- | zephyr/test/drivers/src/isl923x.c | 14 | ||||
-rw-r--r-- | zephyr/test/drivers/src/stubs.c | 4 |
5 files changed, 42 insertions, 83 deletions
diff --git a/common/system.c b/common/system.c index 8f85e85e3c..a4d18c350d 100644 --- a/common/system.c +++ b/common/system.c @@ -321,6 +321,7 @@ void system_print_banner(void) } } +#ifdef CONFIG_RAM_SIZE struct jump_data *get_jump_data(void) { uintptr_t addr; @@ -343,6 +344,7 @@ struct jump_data *get_jump_data(void) return (struct jump_data *)(addr - sizeof(struct jump_data)); } +#endif int system_jumped_to_this_image(void) { @@ -735,6 +737,7 @@ int system_set_active_copy(enum ec_image copy) return system_set_bbram(SYSTEM_BBRAM_IDX_TRY_SLOT, copy); } +#ifdef CONFIG_EC_PROTECTED_STORAGE_OFF /* * This is defined in system.c instead of flash.c because it's called even * on the boards which don't include flash.o. (e.g. hadoken, stm32l476g-eval) @@ -750,6 +753,7 @@ uint32_t flash_get_rw_offset(enum ec_image copy) return CONFIG_EC_PROTECTED_STORAGE_OFF + CONFIG_RO_STORAGE_OFF; } +#endif const struct image_data *system_get_image_data(enum ec_image copy) { diff --git a/zephyr/shim/src/CMakeLists.txt b/zephyr/shim/src/CMakeLists.txt index ff7a8b5220..0dccfa1f8d 100644 --- a/zephyr/shim/src/CMakeLists.txt +++ b/zephyr/shim/src/CMakeLists.txt @@ -13,8 +13,9 @@ if (DEFINED CONFIG_ARCH_POSIX) zephyr_library_sources(ztest_system.c) else() zephyr_library_sources(system.c) - zephyr_library_sources("${PLATFORM_EC}/common/system.c") endif() +zephyr_library_sources("${PLATFORM_EC}/common/system.c") + zephyr_library_sources_ifdef(no_libgcc libgcc_${ARCH}.S) zephyr_library_sources_ifdef(CONFIG_PLATFORM_EC_ADC adc.c) diff --git a/zephyr/shim/src/ztest_system.c b/zephyr/shim/src/ztest_system.c index 7c9d938f53..322876fefe 100644 --- a/zephyr/shim/src/ztest_system.c +++ b/zephyr/shim/src/ztest_system.c @@ -7,112 +7,78 @@ #include "cros_version.h" #include "battery.h" #include "charge_manager.h" +#include "sysjump.h" #define CPRINTS(format, args...) cprints(CC_SYSTEM, format, ## args) -/* Ongoing actions preventing going into deep-sleep mode. */ -atomic_t sleep_mask; +static struct jump_data mock_jump_data = { +}; -void system_common_pre_init(void) +struct jump_data *get_jump_data(void) { + return &mock_jump_data; } -int system_add_jump_tag(uint16_t tag, int version, int size, const void *data) +__attribute__((weak)) +void system_reset(int flags) { - return EC_SUCCESS; + __builtin_unreachable(); } -const uint8_t *system_get_jump_tag(uint16_t tag, int *version, int *size) -{ - return NULL; -} +static uint8_t bbram[SYSTEM_BBRAM_IDX_TRY_SLOT+1]; -#ifdef CONFIG_ZTEST -struct system_jumped_late_mock system_jumped_late_mock = { - .ret_val = 0, - .call_count = 0, -}; -#endif - -int system_jumped_late(void) +test_mockable int system_get_bbram(enum system_bbram_idx idx, uint8_t *value) { -#ifdef CONFIG_ZTEST - system_jumped_late_mock.call_count++; - - return system_jumped_late_mock.ret_val; -#else - return 0; -#endif + if (idx <= SYSTEM_BBRAM_IDX_TRY_SLOT) { + *value = bbram[idx]; + return EC_SUCCESS; + } + return EC_ERROR_INVAL; } -enum ec_image system_get_image_copy(void) +test_mockable int system_set_bbram(enum system_bbram_idx idx, uint8_t value) { - return EC_IMAGE_RW; + if (idx <= SYSTEM_BBRAM_IDX_TRY_SLOT) { + bbram[idx] = value; + return EC_SUCCESS; + } + return EC_ERROR_INVAL; } -int system_is_locked(void) +uint32_t flash_get_rw_offset(enum ec_image copy) { return 0; } -int system_is_in_rw(void) +int crec_flash_read(int offset, int size, char *data) { - return 1; + return EC_ERROR_INVAL; } -uint32_t system_get_reset_flags(void) +test_mockable const char *system_get_chip_vendor(void) { - /* Don't power up the AP automatically, let the tests do it if they - * need to. - */ - return EC_RESET_FLAG_AP_OFF; + return "Testing"; } -void system_print_banner(void) +test_mockable const char *system_get_chip_name(void) { - printk("Image: %s\n", build_info); + return "emu"; } -void system_set_reset_flags(uint32_t flags) +test_mockable const char *system_get_chip_revision(void) { + return ""; } -struct jump_data *get_jump_data(void) +void board_reset_pd_mcu(void) { - return NULL; } -__attribute__((weak)) -void system_reset(int flags) +test_mockable void system_hibernate(uint32_t seconds, uint32_t microseconds) { - __builtin_unreachable(); } -int system_can_boot_ap(void) +uint32_t crec_flash_get_protect(void) { - int soc = -1; - int pow = -1; - -#if defined(CONFIG_BATTERY) && \ - defined(CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON) - /* Require a minimum battery level to power on. If battery isn't - * present, battery_state_of_charge_abs returns false. - */ - if (battery_state_of_charge_abs(&soc) == EC_SUCCESS && - soc >= CONFIG_CHARGER_MIN_BAT_PCT_FOR_POWER_ON) - return 1; -#endif - -#if defined(CONFIG_CHARGE_MANAGER) && \ - defined(CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON) - pow = charge_manager_get_power_limit_uw() / 1000; - if (pow >= CONFIG_CHARGER_MIN_POWER_MW_FOR_POWER_ON) - return 1; -#else - /* For fixed AC system */ - return 1; -#endif - - CPRINTS("Not enough power to boot (%d %%, %d mW)", soc, pow); return 0; } diff --git a/zephyr/test/drivers/src/isl923x.c b/zephyr/test/drivers/src/isl923x.c index c2e0f00c76..05737a9af0 100644 --- a/zephyr/test/drivers/src/isl923x.c +++ b/zephyr/test/drivers/src/isl923x.c @@ -668,18 +668,10 @@ ZTEST(isl923x, test_init) "Expected input current 0mV but got %dmV", input_current); /* - * Test system_jumped_late being true (will not call - * set_input_current_limit) + * TODO(b/219520539): Test system_jumped_late being true (will not call + * set_input_current_limit). It isn't clear how to stimulate the + * code in system.c to cause a late jump. */ - system_jumped_late_mock.ret_val = true; - system_jumped_late_mock.call_count = 0; - isl923x_emul_reset(isl923x_emul); - isl923x_drv.init(CHARGER_NUM); - zassert_equal( - 1, system_jumped_late_mock.call_count, - "Expected to have called system_jumped_late() once, but got %d calls", - system_jumped_late_mock.call_count); - system_jumped_late_mock.ret_val = false; } ZTEST(isl923x, test_isl923x_is_acok) diff --git a/zephyr/test/drivers/src/stubs.c b/zephyr/test/drivers/src/stubs.c index 4f2ae8f7a9..b9aae5e8ef 100644 --- a/zephyr/test/drivers/src/stubs.c +++ b/zephyr/test/drivers/src/stubs.c @@ -423,7 +423,3 @@ int clock_get_freq(void) { return 16000000; } - -void system_enter_hibernate(uint32_t seconds, uint32_t microseconds) -{ -} |