diff options
Diffstat (limited to 'board/kakadu/analyzestack.yaml')
-rw-r--r-- | board/kakadu/analyzestack.yaml | 268 |
1 files changed, 268 insertions, 0 deletions
diff --git a/board/kakadu/analyzestack.yaml b/board/kakadu/analyzestack.yaml index 4a057ce818..21d1f66b8b 100644 --- a/board/kakadu/analyzestack.yaml +++ b/board/kakadu/analyzestack.yaml @@ -1,3 +1,271 @@ +# Check cortex-m/switch.S +exception_frame_size: 64 +add: +# TCPC functions, see mt6370_tcpm_drv struct. + tcpm_init[driver/tcpm/tcpm.h:121]: + - mt6370_init + tcpm_release[driver/tcpm/tcpm.h:134]: + - tcpci_tcpm_release + tcpm_select_rp_value[driver/tcpm/tcpm.h:150]: + - tcpci_tcpm_select_rp_value + tcpm_set_msg_header[driver/tcpm/tcpm.h:170]: + - tcpci_tcpm_set_msg_header + tcpm_enable_drp_toggle[driver/tcpm/tcpm.h:227]: + - tcpci_tcpc_drp_toggle + tcpm_enter_low_power_mode[driver/tcpm/tcpm.h:234]: + - mt6370_enter_low_power_mode + tcpm_transmit[driver/tcpm/tcpm.h:188]: + - tcpci_tcpm_transmit + tcpm_get_chip_info[driver/tcpm/tcpm.h:256]: + - tcpci_get_chip_info + tcpm_get_cc[driver/tcpm/tcpm.h:140]: + - mt6370_get_cc + tcpm_set_rx_enable[driver/tcpm/tcpm.h:176]: + - tcpci_tcpm_set_rx_enable + tcpm_set_vconn[driver/tcpm/tcpm.h:165]: + - tcpci_tcpm_set_vconn + tcpm_set_polarity[driver/tcpm/tcpm.h:160]: + - mt6370_set_polarity + tcpm_set_cc[driver/tcpm/tcpm.h:155]: + - mt6370_set_cc + tcpm_get_vbus_level[driver/tcpm/tcpm.h:145]: + - tcpci_tcpm_get_vbus_level + tcpm_enqueue_message[driver/tcpm/tcpci.c:468]: + - tcpci_tcpm_get_message_raw +# USB mux, see it5205_usb_mux_driver + usb_mux_flip[driver/usb_mux/usb_mux.c:164]: #get + - it5205_set_mux + usb_mux_flip[driver/usb_mux/usb_mux.c:175]: #set + - it5205_get_mux + usb_mux_init[driver/usb_mux/usb_mux.c:65]: #init + - it5205_init + usb_mux_init[driver/usb_mux/usb_mux.c:76]: # board_init + - None + enter_low_power_mode[driver/usb_mux/usb_mux.c:43]: + - it5205_enter_low_power_mode + usb_mux_set[driver/usb_mux/usb_mux.c:113]: + - it5205_set_mux + hc_usb_pd_mux_info[driver/usb_mux/usb_mux.c:241]: + - it5205_get_mux + usb_mux_get[driver/usb_mux/usb_mux.c:141]: + - it5205_get_mux +# usb_mux hpd_update + svdm_dp_post_config[baseboard/kukui/usb_pd_policy.c:200]: + - board_hpd_update + svdm_exit_dp_mode[baseboard/kukui/usb_pd_policy.c:263]: + - board_hpd_update + svdm_dp_attention[baseboard/kukui/usb_pd_policy.c:219]: + - board_hpd_update +# USB PD policy, see struct svdm_amode_fx + pd_svdm[common/usb_pd_policy.c:766]: + - svdm_dp_status + - svdm_gfu_status + pd_svdm[common/usb_pd_policy.c:777]: + - svdm_dp_config + - svdm_gfu_config + pd_svdm[common/usb_pd_policy.c:783]: + - svdm_dp_post_config + pd_dfp_enter_mode[common/usb_pd_policy.c:440]: + - svdm_enter_dp_mode + - svdm_enter_gfu_mode + pd_dfp_exit_mode[common/usb_pd_policy.c:544]: + - svdm_exit_dp_mode + - svdm_exit_gfu_mode + dfp_consume_attention[common/usb_pd_policy.c:478]: + - svdm_dp_attention + - svdm_gfu_attention + pd_dfp_exit_mode[common/usb_pd_policy.c:561]: + - svdm_exit_dp_mode + - svdm_exit_gfu_mode +# Motion sense: bmi160 and tcs3400_drv, tcs3400_rgb_drv + motion_sense_set_data_rate[common/motion_sense.c:156]: # set_data_rate + - tcs3400_set_data_rate + - tcs3400_rgb_set_data_rate + - set_data_rate[driver/accelgyro_bmi160.c] + motion_sense_set_data_rate[common/motion_sense.c:175]: # get_data_rate + - tcs3400_get_data_rate + - tcs3400_rgb_get_data_rate + - get_data_rate[driver/accelgyro_bmi160.c] + motion_sense_set_data_rate[common/motion_sense.c:184]: # get_data_rate + - tcs3400_get_data_rate + - tcs3400_rgb_get_data_rate + - get_data_rate[driver/accelgyro_bmi160.c] + motion_sense_set_motion_intervals[common/motion_sense.c:302]: # get_data_rate + - tcs3400_get_data_rate + - tcs3400_rgb_get_data_rate + - get_data_rate[driver/accelgyro_bmi160.c] + motion_sense_set_ec_rate_from_ap[common/motion_sense.c:196]: # get_data_rate + - tcs3400_get_data_rate + - tcs3400_rgb_get_data_rate + - get_data_rate[driver/accelgyro_bmi160.c] + motion_sense_init[common/motion_sense.c:327]: # init + - tcs3400_init + - tcs3400_rgb_init + - init[driver/accelgyro_bmi160.c] + sensor_init_done[common/motion_sense.c:353]: # get_range + - tcs3400_get_range + - get_range[driver/accelgyro_bmi160.c] + - set_range[driver/accelgyro_bmi160.c] + motion_sense_shutdown[common/motion_sense.c:431]: # list_activities + - list_activities[driver/accelgyro_bmi160.c] + motion_sense_shutdown[common/motion_sense.c:437]: # manage_activity + - manage_activity[driver/accelgyro_bmi160.c] + motion_sense_shutdown[common/motion_sense.c:440]: # manage_activity + - manage_activity[driver/accelgyro_bmi160.c] + motion_sense_read[common/motion_sense.c:589]: # read + - tcs3400_read + - tcs3400_rgb_read + - read[driver/accelgyro_bmi160.c] + motion_sense_read[common/motion_sense.c:576]: # get_data_rate + - tcs3400_get_data_rate + - tcs3400_rgb_get_data_rate + - get_data_rate[driver/accelgyro_bmi160.c] + motion_sense_process[common/motion_sense.c:667]: # irq_handler + - tcs3400_irq_handler + - irq_handler[driver/accelgyro_bmi160.c] + host_cmd_motion_sense[common/motion_sense.c:1153]: # set_range + - tcs3400_set_range + - set_range[driver/accelgyro_bmi160.c] + host_cmd_motion_sense[common/motion_sense.c:1164]: # get_range + - tcs3400_get_range + - get_range[driver/accelgyro_bmi160.c] + host_cmd_motion_sense[common/motion_sense.c:1179]: # set_offset + - tcs3400_set_offset + - tcs3400_rgb_set_offset + - set_offset[driver/accelgyro_bmi160.c] + host_cmd_motion_sense[common/motion_sense.c:1207]: # set_scale + - tcs3400_set_scale + - tcs3400_rgb_set_scale + - set_scale[driver/accelgyro_bmi160.c] + host_cmd_motion_sense[common/motion_sense.c:1233]: # perform_calib + - tcs3400_perform_calib + - perform_calib[driver/accelgyro_bmi160.c] + host_cmd_motion_sense[common/motion_sense.c:1237]: # get_offset + - tcs3400_get_offset + - tcs3400_rgb_get_offset + - get_offset[driver/accelgyro_bmi160.c] + host_cmd_motion_sense[common/motion_sense.c:1313]: # list_activities + - list_activities[driver/accelgyro_bmi160.c] + host_cmd_motion_sense[common/motion_sense.c:1333]: # list_activities + - list_activities[driver/accelgyro_bmi160.c] + host_cmd_motion_sense[common/motion_sense.c:1337]: # manage_activity + - manage_activity[driver/accelgyro_bmi160.c] + command_accelrange[common/motion_sense.c:1455]: # set_range + - tcs3400_set_range + - set_range[driver/accelgyro_bmi160.c] + command_accelrange[common/motion_sense.c:1460]: # get_range + - tcs3400_get_range + - get_range[driver/accelgyro_bmi160.c] + command_accelresolution[common/motion_sense.c:1504]: # set_resolution + - None + command_accelresolution[common/motion_sense.c:1508]: # get_resolution + - get_resolution[driver/accelgyro_bmi160.c] + command_accel_data_rate[common/motion_sense.c:1560]: # get_data_rate + - tcs3400_get_data_rate + - tcs3400_rgb_get_data_rate + - get_data_rate[driver/accelgyro_bmi160.c] + command_accel_read_xyz[common/motion_sense.c:1595]: # read + - tcs3400_read + - tcs3400_rgb_read + - read[driver/accelgyro_bmi160.c] + config_interrupt[driver/accelgyro_bmi160.c:1073]: # get_range + - get_range[driver/accelgyro_bmi160.c] + +# Core + handle_command[common/console.c:248]: + - { name: __cmds, stride: 16, offset: 4 } + hook_task[common/hooks.c:200]: + - { name: __deferred_funcs, stride: 4, offset: 0 } + - { name: __hooks_second, stride: 8, offset: 0 } + - { name: __hooks_tick, stride: 8, offset: 0 } + # Note: This assumes worse case, where all hook functions can be called from + # any hook_notify call + # Generate using `grep hooks_.*_end build/kukui/R*/ec.R*.smap | + # sed -e 's/.*\(__hooks.*\)_end/ - { name: \1, stride: 8, offset: 0 }/' | + # sort -u` + hook_notify[common/hooks.c:130]: + - { name: __hooks_ac_change, stride: 8, offset: 0 } + - { name: __hooks_base_attached_change, stride: 8, offset: 0 } + - { name: __hooks_battery_soc_change, stride: 8, offset: 0 } + - { name: __hooks_chipset_pre_init, stride: 8, offset: 0 } + - { name: __hooks_chipset_reset, stride: 8, offset: 0 } + - { name: __hooks_chipset_resume, stride: 8, offset: 0 } + - { name: __hooks_chipset_shutdown, stride: 8, offset: 0 } + - { name: __hooks_chipset_startup, stride: 8, offset: 0 } + - { name: __hooks_chipset_suspend, stride: 8, offset: 0 } + - { name: __hooks_freq_change, stride: 8, offset: 0 } + - { name: __hooks_lid_change, stride: 8, offset: 0 } + - { name: __hooks_pre_freq_change, stride: 8, offset: 0 } + - { name: __hooks_pwrbtn_change, stride: 8, offset: 0 } + - { name: __hooks_sysjump, stride: 8, offset: 0 } + - { name: __hooks_tablet_mode_change, stride: 8, offset: 0 } + - { name: __hooks_usb_pd_connect, stride: 8, offset: 0 } + - { name: __hooks_usb_pd_disconnect, stride: 8, offset: 0 } + mkbp_get_next_event[common/mkbp_event.c:369]: + - { name: __mkbp_evt_srcs, stride: 8, offset: 4 } + host_command_process[common/host_command.c:708]: + - { name: __hcmds, stride: 12, offset: 0 } + vfnprintf: + # This covers all the addchar in vfnprintf, but stackanalyzer does not + # realize that... + - __tx_char + host_send_response[common/host_command.c:153]: # send_response + - spi_send_response + host_packet_respond[common/host_command.c:240]: + - spi_send_response_packet +# Misc + i2c_command_passthru[common/i2c_master.c:991]: + - None + cprints[common/console_output.c:108]: + - None # I'm not sure what this is?! + chip_i2c_xfer_with_notify[common/i2c_master.c:112]: # i2c_port->drv->xfer + - i2c_bitbang_xfer + default_handler[core/cortex-m0/init.S:100]: + - exception_panic + rt946x_enable_hz[driver/charger/rt946x.c:370]: + - rt946x_set_bit + - rt946x_clr_bit + gpio_interrupt[chip/stm32/gpio.c:154]: + - None + remove: # Remove all callsites pointing to panic_assert_fail. - panic_assert_fail + +# Remove paths that make no sense +# HOOK_USB_PD_DISCONNECT +- [ pd_request_power_swap, set_state.lto_priv.196, hook_notify, + [ debug_mode_handle, motion_sense_shutdown, rt946x_usb_connect, + system_common_shutdown, board_charge_termination] ] +- [ hook_task, resume_pd_port.lto_priv.263, pd_set_suspend, + set_state.lto_priv.194, hook_notify, rt946x_usb_connect ] +# HOOK_AC_CHANGE/HOOK_BATTERY_SOC_CHANGE +- [ [ check_ac_state, charger_task ], hook_notify, + [ debug_mode_handle, motion_sense_shutdown, rt946x_usb_connect, system_common_shutdown] ] +# HOOK_LID_CHANGE +- [ [ lid_switch_open, lid_switch_close ], hook_notify, + [ motion_sense_shutdown, system_common_shutdown] ] +# HOOK_BASE_ATTACHED_CHANGE +- [ base_set_state, hook_notify, system_common_shutdown ] +# HOOK_POWER_BUTTON_CHANGE +- [ power_button_change_deferred, hook_notify, + [ motion_sense_shutdown, system_common_shutdown] ] +# HOOK_SECOND +- [ hook_task, hook_notify, [ motion_sense_shutdown, system_common_shutdown ] ] +- [ hook_task, resume_pd_port.lto_priv.263, pd_set_suspend, + set_state.lto_priv.194, hook_notify, [ motion_sense_shutdown, + system_common_shutdown ] ] +# HOOK_SYSJUMP +- [ jump_to_image, hook_notify, + [ debug_mode_handle, motion_sense_shutdown, rt946x_usb_connect, system_common_shutdown] ] +- [ pd_request_power_swap, set_state, hook_notify, panic_init ] +# set_state(port, PD_STATE_SRC/SNK_SWAP_INIT); will not call these functions +- [ pd_request_power_swap, set_state, + [ pd_dfp_exit_mode, usb_mux_set, pd_power_supply_reset, tcpm_set_vconn ] ] +- [ [ pd_request_data_swap, pd_request_vconn_swap ] , set_state, pd_power_supply_reset ] +# All sensors will be shut down in S5 +- [ motion_sense_shutdown, motion_sense_switch_sensor_rate, + [ motion_sense_set_data_rate, motion_sense_init ] ] +# HOOK_CHIPSET_PRE_INIT, HOOK_CHIPSET_STARTUP, HOOK_CHIPSET_RESUME, +# HOOK_CHIPSET_SUSPEND, HOOK_CHIPSET_SHUTDOWN +- [ chipset_task, hook_notify, [ rt946x_usb_connect, debug_mode_handle ] ] |