summaryrefslogtreecommitdiff
path: root/board/kakadu/analyzestack.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'board/kakadu/analyzestack.yaml')
-rw-r--r--board/kakadu/analyzestack.yaml268
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 ] ]