# Size of extra stack frame needed by exception context switch. # See core/cortex-m/switch.S exception_frame_size: 224 # Add some missing calls. add: # TCPC stuff: tcpm_init.lto_priv.255[driver/tcpm/tcpm.h:77]: - tcpci_tcpm_init tcpm_release[driver/tcpm/tcpm.h:90]: - ps8xxx_tcpm_release tcpm_get_cc.lto_priv.246[driver/tcpm/tcpm.h:95]: - tcpci_tcpm_get_cc tcpm_select_rp_value[driver/tcpm/tcpm.h:105]: - tcpci_tcpm_select_rp_value tcpm_set_cc.lto_priv.239[driver/tcpm/tcpm.h:110]: - tcpci_tcpm_set_cc tcpm_set_polarity[driver/tcpm/tcpm.h:115]: - tcpci_tcpm_set_polarity tcpm_set_vconn.lto_priv.249[driver/tcpm/tcpm.h:120]: - tcpci_tcpm_set_vconn tcpm_set_msg_header[driver/tcpm/tcpm.h:125]: - tcpci_tcpm_set_msg_header tcpm_set_rx_enable.lto_priv.252[driver/tcpm/tcpm.h:131]: - tcpci_tcpm_set_rx_enable tcpm_get_message[driver/tcpm/tcpm.h:136]: - tcpci_tcpm_get_message tcpm_transmit[driver/tcpm/tcpm.h:142]: - ps8xxx_tcpm_transmit tcpc_alert[driver/tcpm/tcpm.h:147]: - tcpci_tcpc_alert tcpc_discharge_vbus[driver/tcpm/tcpm.h:152]: - tcpci_tcpc_discharge_vbus tcpm_set_drp_toggle[driver/tcpm/tcpm.h:163]: - tcpci_tcpc_drp_toggle tcpm_get_chip_info[driver/tcpm/tcpm.h:185]: - tcpci_get_chip_info board_tcpc_init[board/nautilus/board.c:233]: - ps8xxx_tcpc_update_hpd_status tcpci_tcpc_drp_toggle[driver/tcpm/tcpci.c:148]: - None # USB mux stuff usb_mux_init[driver/usb_mux.c:25]: - tcpci_tcpm_mux_init usb_mux_init[driver/usb_mux.c:31]: - None usb_mux_set[driver/usb_mux.c:52]: - tcpci_tcpm_mux_set usb_mux_get[driver/usb_mux.c:71]: - tcpci_tcpm_mux_get usb_mux_flip[driver/usb_mux.c:92]: - tcpci_tcpm_mux_get usb_mux_flip[driver/usb_mux.c:103]: - tcpci_tcpm_mux_set hc_usb_pd_mux_info[driver/usb_mux.c:169]: - tcpci_tcpm_mux_get svdm_dp_post_config.lto_priv.271[board/nautilus/usb_pd_policy.c:363]: - ps8xxx_tcpc_update_hpd_status svdm_dp_attention.lto_priv.272[board/nautilus/usb_pd_policy.c:378]: - ps8xxx_tcpc_update_hpd_status svdm_exit_dp_mode.lto_priv.273[board/nautilus/usb_pd_policy.c:389]: - ps8xxx_tcpc_update_hpd_status # pd_svdm pd_dfp_enter_mode[common/usb_pd_policy.c:459]: - svdm_enter_dp_mode dfp_consume_attention.lto_priv.259[common/usb_pd_policy.c:497]: - svdm_dp_attention pd_dfp_exit_mode[common/usb_pd_policy.c:563]: - svdm_exit_dp_mode pd_dfp_exit_mode[common/usb_pd_policy.c:580]: - svdm_exit_dp_mode pd_svdm[common/usb_pd_policy.c:767]: - svdm_dp_status pd_svdm[common/usb_pd_policy.c:778]: - svdm_dp_config pd_svdm[common/usb_pd_policy.c:784]: - svdm_dp_post_config # Motion sense queue_advance_head[common/queue.c:105]: - queue_action_null queue_advance_tail[common/queue.c:116]: - queue_action_null motion_sense_set_data_rate[common/motion_sense.c:270]: - set_data_rate[driver/accelgyro_bmi160.c] - set_data_rate[driver/accel_bma2x2.c] motion_sense_set_data_rate[common/motion_sense.c:289]: - get_data_rate[driver/accelgyro_bmi160.c] - get_data_rate[driver/accel_bma2x2.c] motion_sense_set_ec_rate_from_ap[common/motion_sense.c:308]: - get_data_rate[driver/accelgyro_bmi160.c] - get_data_rate[driver/accel_bma2x2.c] motion_sense_set_motion_intervals.lto_priv.303[common/motion_sense.c:414]: - get_data_rate[driver/accelgyro_bmi160.c] - get_data_rate[driver/accel_bma2x2.c] motion_sense_init[common/motion_sense.c:450]: - init[driver/accelgyro_bmi160.c] - init[driver/accel_bma2x2.c] sensor_init_done[common/motion_sense.c:471]: - set_range[driver/accelgyro_bmi160.c] - set_range[driver/accel_bma2x2.c] sensor_init_done[common/motion_sense.c:474]: - get_range[driver/accelgyro_bmi160.c] - get_range[driver/accel_bma2x2.c] motion_sense_process.isra.9[common/motion_sense.c:721]: - irq_handler[driver/accelgyro_bmi160.c] host_cmd_motion_sense[common/motion_sense.c:1251]: - set_range[driver/accelgyro_bmi160.c] - set_range[driver/accel_bma2x2.c] host_cmd_motion_sense[common/motion_sense.c:1259]: - get_range[driver/accelgyro_bmi160.c] - get_range[driver/accel_bma2x2.c] host_cmd_motion_sense[common/motion_sense.c:1274]: - set_offset[driver/accelgyro_bmi160.c] - set_offset[driver/accel_bma2x2.c] host_cmd_motion_sense[common/motion_sense.c:1297]: - perform_calib[driver/accelgyro_bmi160.c] host_cmd_motion_sense[common/motion_sense.c:1300]: - get_offset[driver/accelgyro_bmi160.c] - get_offset[driver/accel_bma2x2.c] command_accelrange[common/motion_sense.c:1515]: - set_range[driver/accelgyro_bmi160.c] - set_range[driver/accel_bma2x2.c] command_accelrange[common/motion_sense.c:1520]: - get_range[driver/accelgyro_bmi160.c] - get_range[driver/accel_bma2x2.c] host_cmd_motion_sense[common/motion_sense.c:1520]: - get_range[driver/accelgyro_bmi160.c] - get_range[driver/accel_bma2x2.c] command_accelresolution[common/motion_sense.c:1564]: - None command_accelresolution[common/motion_sense.c:1568]: - get_resolution[driver/accelgyro_bmi160.c] - get_resolution[driver/accel_bma2x2.c] command_accel_data_rate[common/motion_sense.c:1623]: - get_data_rate[driver/accelgyro_bmi160.c] - get_data_rate[driver/accel_bma2x2.c] command_accel_read_xyz[common/motion_sense.c:1659]: - read[driver/accelgyro_bmi160.c] - read[driver/accel_bma2x2.c] calculate_lid_angle[common/motion_lid.c:255]: - get_range[driver/accelgyro_bmi160.c] - get_range[driver/accel_bma2x2.c] calculate_lid_angle[common/motion_lid.c:256]: - get_range[driver/accelgyro_bmi160.c] - get_range[driver/accel_bma2x2.c] # Temp (see temp_sensors array in board file) temp_sensor_read[common/temp_sensor.c:26]: - charge_get_battery_temp - bd99992gw_get_val # Misc jump_to_image[common/system.c:568]: - None system_download_from_flash[chip/npcx/system-npcx5.c:257]: - None __hibernate_npcx_series[chip/npcx/system-npcx5.c:144]: - None handle_command[common/console.c:248]: - { name: __cmds, stride: 16, offset: 4 } hook_task[common/hooks.c:197]: - { 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/nautilus/R*/ec.R*.smap | # sed -e 's/.*\(__hooks.*\)_end/ - { name: \1, stride: 8, offset: 0 }/' | # sort -u` hook_notify[common/hooks.c:127]: - { name: __hooks_ac_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 } mkbp_get_next_event[common/mkbp_event.c:130]: - { name: __mkbp_evt_srcs, stride: 8, offset: 4 } host_send_response[common/host_command.c:153]: - lpc_send_response host_packet_respond[common/host_command.c:240]: - lpc_send_response host_command_process[common/host_command.c:704]: - { name: __hcmds, stride: 12, offset: 0 } # gpio_interrupt.lto_priv.407[chip/npcx/gpio.c:479] vfnprintf: # This covers all the addchar in vfnprintf, but stackanalyzer does not # realize that... - __tx_char i2c_command_passthru[common/i2c_master.c:597]: - None remove: # Remove all callsites pointing to panic_assert_fail. - panic_assert_fail # Remove hook paths that don't make sense - [ [ common_intel_x86_power_handle_state, power_button_change_deferred, hook_task, lpc_chipset_reset, espi_chipset_reset ], hook_notify, powerbtn_x86_lid_change ] - [ system_common_shutdown, hook_notify, system_run_image_copy ] - [ jump_to_image, hook_notify, [ powerbtn_x86_lid_change, system_common_shutdown, power_up_inhibited_cb, motion_sense_shutdown, motion_sense_resume ] ] - [ [ extpower_deferred, charger_task, motion_sense_switch_sensor_rate, lid_switch_open, lid_switch_close, motion_sense_task ], hook_notify, [ powerbtn_x86_lid_change, power_up_inhibited_cb, system_common_shutdown, motion_sense_shutdown, motion_sense_resume ] ] - [ common_intel_x86_power_handle_state, hook_notify, power_up_inhibited_cb ] # pd_request_power_swap calls set_state with either PD_STATE_SRC_SWAP_INIT or # PD_STATE_SNK_SWAP_INIT as parameters, which cannot call any of the # charge_manager functions. - [ [ pd_request_power_swap, pd_execute_hard_reset, pd_request_data_swap, pd_request_vconn_swap.lto_priv.237, pd_send_request_msg.lto_priv.250 ], set_state.lto_priv.236, [ typec_set_input_current_limit, charge_manager_update_charge, pd_power_supply_reset, pd_dfp_exit_mode, usb_mux_set ] ] # Debug prints that do not actually need a 64 uint division, of the time - [ [i2c_reset, i2c_abort_data, i2c_xfer], cprintf, vfnprintf, [uint64divmod.part.3.lto_priv.141, get_time] ]