diff options
Diffstat (limited to 'zephyr/shim/include/shimmed_task_id.h')
-rw-r--r-- | zephyr/shim/include/shimmed_task_id.h | 230 |
1 files changed, 112 insertions, 118 deletions
diff --git a/zephyr/shim/include/shimmed_task_id.h b/zephyr/shim/include/shimmed_task_id.h index 31df4daece..1a29acafdf 100644 --- a/zephyr/shim/include/shimmed_task_id.h +++ b/zephyr/shim/include/shimmed_task_id.h @@ -1,4 +1,4 @@ -/* Copyright 2020 The Chromium OS Authors. All rights reserved. +/* Copyright 2020 The ChromiumOS Authors * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ @@ -14,14 +14,13 @@ typedef uint8_t task_id_t; /* * Bitmask of port enable bits, expanding to a value like `BIT(0) | BIT(2) | 0`. */ -#define PD_INT_SHARED_PORT_MASK ( \ - FOR_EACH_NONEMPTY_TERM(BIT, (|), \ - IF_ENABLED(CONFIG_PLATFORM_EC_USB_PD_PORT_0_SHARED, (0)), \ - IF_ENABLED(CONFIG_PLATFORM_EC_USB_PD_PORT_1_SHARED, (1)), \ - IF_ENABLED(CONFIG_PLATFORM_EC_USB_PD_PORT_2_SHARED, (2)), \ - IF_ENABLED(CONFIG_PLATFORM_EC_USB_PD_PORT_3_SHARED, (3)), \ - ) 0 \ -) +#define PD_INT_SHARED_PORT_MASK \ + (FOR_EACH_NONEMPTY_TERM( \ + BIT, (|), \ + IF_ENABLED(CONFIG_PLATFORM_EC_USB_PD_PORT_0_SHARED, (0)), \ + IF_ENABLED(CONFIG_PLATFORM_EC_USB_PD_PORT_1_SHARED, (1)), \ + IF_ENABLED(CONFIG_PLATFORM_EC_USB_PD_PORT_2_SHARED, (2)), \ + IF_ENABLED(CONFIG_PLATFORM_EC_USB_PD_PORT_3_SHARED, (3)), ) 0) /* Highest priority on bottom -- same as in platform/ec. */ enum { @@ -29,10 +28,6 @@ enum { EC_SYSWORKQ_PRIO = EC_TASK_PRIO_LOWEST, EC_TASK_CHG_RAMP_PRIO, EC_TASK_USB_CHG_PRIO, - EC_TASK_USB_CHG_P0_PRIO, - EC_TASK_USB_CHG_P1_PRIO, - EC_TASK_USB_CHG_P2_PRIO, - EC_TASK_USB_CHG_P3_PRIO, EC_TASK_DPS_PRIO, EC_TASK_CHARGER_PRIO, EC_TASK_CHIPSET_PRIO, @@ -64,104 +59,106 @@ enum { * CONFIG_HAS_TEST_TASKS and not CONFIG_SHIMMED_TASKS. */ #ifdef CONFIG_SHIMMED_TASKS -#define CROS_EC_TASK_LIST \ - COND_CODE_1(HAS_TASK_CHG_RAMP, \ - (CROS_EC_TASK(CHG_RAMP, chg_ramp_task, 0, \ - CONFIG_TASK_CHG_RAMP_STACK_SIZE, \ - EC_TASK_CHG_RAMP_PRIO)), ()) \ - COND_CODE_1(CONFIG_PLATFORM_EC_USB_CHARGER_SINGLE_TASK, \ - (CROS_EC_TASK(USB_CHG, usb_charger_task_shared, 0, \ - CONFIG_TASK_USB_CHG_STACK_SIZE, \ - EC_TASK_USB_CHG_PRIO)), ()) \ - COND_CODE_1(HAS_TASK_USB_CHG_P0, \ - (CROS_EC_TASK(USB_CHG_P0, usb_charger_task, 0, \ - CONFIG_TASK_USB_CHG_STACK_SIZE, \ - EC_TASK_USB_CHG_P0_PRIO)), ()) \ - COND_CODE_1(HAS_TASK_USB_CHG_P1, \ - (CROS_EC_TASK(USB_CHG_P1, usb_charger_task, 0, \ - CONFIG_TASK_USB_CHG_STACK_SIZE, \ - EC_TASK_USB_CHG_P1_PRIO)), ()) \ - COND_CODE_1(HAS_TASK_USB_CHG_P2, \ - (CROS_EC_TASK(USB_CHG_P2, usb_charger_task, 0, \ - CONFIG_TASK_USB_CHG_STACK_SIZE, \ - EC_TASK_USB_CHG_P2_PRIO)), ()) \ - COND_CODE_1(HAS_TASK_USB_CHG_P3, \ - (CROS_EC_TASK(USB_CHG_P3, usb_charger_task, 0, \ - CONFIG_TASK_USB_CHG_STACK_SIZE, \ - EC_TASK_USB_CHG_P3_PRIO)), ()) \ - COND_CODE_1(HAS_TASK_DPS, \ - (CROS_EC_TASK(DPS, dps_task, 0, \ - CONFIG_TASK_DPS_STACK_SIZE, \ - EC_TASK_DPS_PRIO)), ()) \ - COND_CODE_1(HAS_TASK_CHARGER, \ - (CROS_EC_TASK(CHARGER, charger_task, 0, \ - CONFIG_TASK_CHARGER_STACK_SIZE, \ - EC_TASK_CHARGER_PRIO)), ()) \ - COND_CODE_1(HAS_TASK_CHIPSET, \ - (CROS_EC_TASK(CHIPSET, chipset_task, 0, \ - CONFIG_TASK_CHIPSET_STACK_SIZE, \ - EC_TASK_CHIPSET_PRIO)), ()) \ - COND_CODE_1(HAS_TASK_MOTIONSENSE, \ - (CROS_EC_TASK(MOTIONSENSE, motion_sense_task, 0, \ - CONFIG_TASK_MOTIONSENSE_STACK_SIZE, \ - EC_TASK_MOTIONSENSE_PRIO)), ()) \ - IF_ENABLED(HAS_TASK_USB_MUX, \ - (CROS_EC_TASK(USB_MUX, usb_mux_task, 0, \ - CONFIG_TASK_USB_MUX_STACK_SIZE, \ - EC_TASK_USB_MUX_PRIO))) \ - COND_CODE_1(CONFIG_TASK_HOSTCMD_THREAD_DEDICATED, \ - (CROS_EC_TASK(HOSTCMD, host_command_task, 0, \ - CONFIG_TASK_HOSTCMD_STACK_SIZE, \ - EC_TASK_HOSTCMD_PRIO)), ()) \ - COND_CODE_1(HAS_TASK_KEYPROTO, \ - (CROS_EC_TASK(KEYPROTO, keyboard_protocol_task, 0, \ - CONFIG_TASK_KEYPROTO_STACK_SIZE, \ - EC_TASK_KEYPROTO_PRIO)), ()) \ - COND_CODE_1(HAS_TASK_POWERBTN, \ - (CROS_EC_TASK(POWERBTN, power_button_task, 0, \ - CONFIG_TASK_POWERBTN_STACK_SIZE, \ - EC_TASK_POWERBTN_PRIO)), ()) \ - COND_CODE_1(HAS_TASK_KEYSCAN, \ - (CROS_EC_TASK(KEYSCAN, keyboard_scan_task, 0, \ - CONFIG_TASK_KEYSCAN_STACK_SIZE, \ - EC_TASK_KEYSCAN_PRIO)), ()) \ - COND_CODE_1(HAS_TASK_PD_C0, \ - (CROS_EC_TASK(PD_C0, pd_task, 0, \ - CONFIG_TASK_PD_STACK_SIZE, \ - EC_TASK_PD_C0_PRIO)), ()) \ - COND_CODE_1(HAS_TASK_PD_C1, \ - (CROS_EC_TASK(PD_C1, pd_task, 0, \ - CONFIG_TASK_PD_STACK_SIZE, \ - EC_TASK_PD_C1_PRIO)), ()) \ - COND_CODE_1(HAS_TASK_PD_C2, \ - (CROS_EC_TASK(PD_C2, pd_task, 0, \ - CONFIG_TASK_PD_STACK_SIZE, \ - EC_TASK_PD_C2_PRIO)), ()) \ - COND_CODE_1(HAS_TASK_PD_C3, \ - (CROS_EC_TASK(PD_C3, pd_task, 0, \ - CONFIG_TASK_PD_STACK_SIZE, \ - EC_TASK_PD_C3_PRIO)), ()) \ - IF_ENABLED(CONFIG_HAS_TASK_PD_INT_SHARED, \ - (CROS_EC_TASK(PD_INT_SHARED, pd_shared_alert_task, \ - PD_INT_SHARED_PORT_MASK, \ - CONFIG_TASK_PD_INT_STACK_SIZE, \ - EC_TASK_PD_INT_SHARED_PRIO))) \ - COND_CODE_1(HAS_TASK_PD_INT_C0, \ - (CROS_EC_TASK(PD_INT_C0, pd_interrupt_handler_task, 0, \ - CONFIG_TASK_PD_INT_STACK_SIZE, \ - EC_TASK_PD_INT_C0_PRIO)), ()) \ - COND_CODE_1(HAS_TASK_PD_INT_C1, \ - (CROS_EC_TASK(PD_INT_C1, pd_interrupt_handler_task, 1, \ - CONFIG_TASK_PD_INT_STACK_SIZE, \ - EC_TASK_PD_INT_C1_PRIO)), ()) \ - COND_CODE_1(HAS_TASK_PD_INT_C2, \ - (CROS_EC_TASK(PD_INT_C2, pd_interrupt_handler_task, 2, \ - CONFIG_TASK_PD_INT_STACK_SIZE, \ - EC_TASK_PD_INT_C2_PRIO)), ()) \ - COND_CODE_1(HAS_TASK_PD_INT_C3, \ - (CROS_EC_TASK(PD_INT_C3, pd_interrupt_handler_task, 3, \ - CONFIG_TASK_PD_INT_STACK_SIZE, \ - EC_TASK_PD_INT_C3_PRIO)), ()) +#define CROS_EC_TASK_LIST \ + COND_CODE_1(HAS_TASK_CHG_RAMP, \ + (CROS_EC_TASK(CHG_RAMP, chg_ramp_task, 0, \ + CONFIG_TASK_CHG_RAMP_STACK_SIZE, \ + EC_TASK_CHG_RAMP_PRIO)), \ + ()) \ + COND_CODE_1(CONFIG_PLATFORM_EC_USB_CHARGER, \ + (CROS_EC_TASK(USB_CHG, usb_charger_task_shared, 0, \ + CONFIG_TASK_USB_CHG_STACK_SIZE, \ + EC_TASK_USB_CHG_PRIO)), \ + ()) \ + COND_CODE_1(HAS_TASK_DPS, \ + (CROS_EC_TASK(DPS, dps_task, 0, \ + CONFIG_TASK_DPS_STACK_SIZE, \ + EC_TASK_DPS_PRIO)), \ + ()) \ + COND_CODE_1(HAS_TASK_CHARGER, \ + (CROS_EC_TASK(CHARGER, charger_task, 0, \ + CONFIG_TASK_CHARGER_STACK_SIZE, \ + EC_TASK_CHARGER_PRIO)), \ + ()) \ + COND_CODE_1(HAS_TASK_CHIPSET, \ + (CROS_EC_TASK(CHIPSET, chipset_task, 0, \ + CONFIG_TASK_CHIPSET_STACK_SIZE, \ + EC_TASK_CHIPSET_PRIO)), \ + ()) \ + COND_CODE_1(HAS_TASK_MOTIONSENSE, \ + (CROS_EC_TASK(MOTIONSENSE, motion_sense_task, 0, \ + CONFIG_TASK_MOTIONSENSE_STACK_SIZE, \ + EC_TASK_MOTIONSENSE_PRIO)), \ + ()) \ + IF_ENABLED(HAS_TASK_USB_MUX, \ + (CROS_EC_TASK(USB_MUX, usb_mux_task, 0, \ + CONFIG_TASK_USB_MUX_STACK_SIZE, \ + EC_TASK_USB_MUX_PRIO))) \ + COND_CODE_1(CONFIG_TASK_HOSTCMD_THREAD_DEDICATED, \ + (CROS_EC_TASK(HOSTCMD, host_command_task, 0, \ + CONFIG_TASK_HOSTCMD_STACK_SIZE, \ + EC_TASK_HOSTCMD_PRIO)), \ + ()) \ + COND_CODE_1(HAS_TASK_KEYPROTO, \ + (CROS_EC_TASK(KEYPROTO, keyboard_protocol_task, 0, \ + CONFIG_TASK_KEYPROTO_STACK_SIZE, \ + EC_TASK_KEYPROTO_PRIO)), \ + ()) \ + COND_CODE_1(HAS_TASK_POWERBTN, \ + (CROS_EC_TASK(POWERBTN, power_button_task, 0, \ + CONFIG_TASK_POWERBTN_STACK_SIZE, \ + EC_TASK_POWERBTN_PRIO)), \ + ()) \ + COND_CODE_1(HAS_TASK_KEYSCAN, \ + (CROS_EC_TASK(KEYSCAN, keyboard_scan_task, 0, \ + CONFIG_TASK_KEYSCAN_STACK_SIZE, \ + EC_TASK_KEYSCAN_PRIO)), \ + ()) \ + COND_CODE_1(HAS_TASK_PD_C0, \ + (CROS_EC_TASK(PD_C0, pd_task, 0, \ + CONFIG_TASK_PD_STACK_SIZE, \ + EC_TASK_PD_C0_PRIO)), \ + ()) \ + COND_CODE_1(HAS_TASK_PD_C1, \ + (CROS_EC_TASK(PD_C1, pd_task, 0, \ + CONFIG_TASK_PD_STACK_SIZE, \ + EC_TASK_PD_C1_PRIO)), \ + ()) \ + COND_CODE_1(HAS_TASK_PD_C2, \ + (CROS_EC_TASK(PD_C2, pd_task, 0, \ + CONFIG_TASK_PD_STACK_SIZE, \ + EC_TASK_PD_C2_PRIO)), \ + ()) \ + COND_CODE_1(HAS_TASK_PD_C3, \ + (CROS_EC_TASK(PD_C3, pd_task, 0, \ + CONFIG_TASK_PD_STACK_SIZE, \ + EC_TASK_PD_C3_PRIO)), \ + ()) \ + IF_ENABLED(CONFIG_HAS_TASK_PD_INT_SHARED, \ + (CROS_EC_TASK(PD_INT_SHARED, pd_shared_alert_task, \ + PD_INT_SHARED_PORT_MASK, \ + CONFIG_TASK_PD_INT_STACK_SIZE, \ + EC_TASK_PD_INT_SHARED_PRIO))) \ + COND_CODE_1(HAS_TASK_PD_INT_C0, \ + (CROS_EC_TASK(PD_INT_C0, pd_interrupt_handler_task, 0, \ + CONFIG_TASK_PD_INT_STACK_SIZE, \ + EC_TASK_PD_INT_C0_PRIO)), \ + ()) \ + COND_CODE_1(HAS_TASK_PD_INT_C1, \ + (CROS_EC_TASK(PD_INT_C1, pd_interrupt_handler_task, 1, \ + CONFIG_TASK_PD_INT_STACK_SIZE, \ + EC_TASK_PD_INT_C1_PRIO)), \ + ()) \ + COND_CODE_1(HAS_TASK_PD_INT_C2, \ + (CROS_EC_TASK(PD_INT_C2, pd_interrupt_handler_task, 2, \ + CONFIG_TASK_PD_INT_STACK_SIZE, \ + EC_TASK_PD_INT_C2_PRIO)), \ + ()) \ + COND_CODE_1(HAS_TASK_PD_INT_C3, \ + (CROS_EC_TASK(PD_INT_C3, pd_interrupt_handler_task, 3, \ + CONFIG_TASK_PD_INT_STACK_SIZE, \ + EC_TASK_PD_INT_C3_PRIO)), \ + ()) #elif defined(CONFIG_HAS_TEST_TASKS) #include "shimmed_test_tasks.h" /* @@ -191,7 +188,7 @@ enum { TASK_ID_IDLE = -1, /* We don't shim the idle task */ CROS_EC_TASK_LIST #ifdef TEST_BUILD - TASK_ID_TEST_RUNNER, + TASK_ID_TEST_RUNNER, #endif TASK_ID_COUNT, TASK_ID_INVALID = 0xff, /* Unable to find the task */ @@ -203,20 +200,17 @@ enum { * Additional task IDs for features that runs on non shimmed threads, * task_get_current() needs to be updated to identify these ones. */ -#define CROS_EC_EXTRA_TASKS(fn) \ +#define CROS_EC_EXTRA_TASKS(fn) \ COND_CODE_1(CONFIG_TASK_HOSTCMD_THREAD_MAIN, (fn(HOSTCMD)), ()) \ fn(SYSWORKQ) #define EXTRA_TASK_INTERNAL_ID(name) EXTRA_TASK_##name, enum { - CROS_EC_EXTRA_TASKS(EXTRA_TASK_INTERNAL_ID) - EXTRA_TASK_COUNT, + CROS_EC_EXTRA_TASKS(EXTRA_TASK_INTERNAL_ID) EXTRA_TASK_COUNT, }; #define EXTRA_TASK_ID(name) \ TASK_ID_##name = (TASK_ID_COUNT + EXTRA_TASK_##name), -enum { - CROS_EC_EXTRA_TASKS(EXTRA_TASK_ID) -}; +enum { CROS_EC_EXTRA_TASKS(EXTRA_TASK_ID) }; #endif /* __CROS_EC_SHIMMED_TASK_ID_H */ |