Skip to content

[BUG] Reduce footprint by putting large items under kconfig options #3480

@lgirdwood

Description

@lgirdwood

Describe the bug
Improve footprint by making more data and text items optional under kconfig. Platforms with limited memories must have a smaller set of features (e.g. less SRC conversion ratios, less module, less debug etc) compared to recent platforms with larger memories.

To Reproduce

for i in $( find build_*/sof ); do
	echo $i
	xtensa-apl-elf-nm -S --size-sort --reverse-sort $i | head -n 20
	echo
done

Low hanging fruit is

  • SRC coefficients.
  • Trig tables.
  • primary core
  • Heap tables.
build_apl_gcc/sof
be0398f0 00002020 B primary_core_data
be00a680 000016ee T ipc_cmd
be024ca0 00001203 t dmic_set_config
be037688 00000aa8 b lp_buf_block
be022d98 00000973 t ssp_set_config
be032dd8 00000804 R sine_table
be030a18 00000800 r coeff48000to08000
be031998 00000800 r coeff24000to08000
be038130 00000800 b buf_block
be02e298 00000780 r coeff48000to32000
be02f698 00000780 r coeff48000to16000
be031218 00000780 r coeff24000to16000
be02db98 00000700 r coeff48000to44100
be0326d8 00000700 r coeff44100to48000
be010360 00000651 t volume_cmd
be02ea18 00000640 r coeff48000to24000
be02f058 00000640 r coeff48000to22050
be02fe18 00000600 r coeff48000to12000
be030418 00000600 r coeff48000to11025
be018200 000005e7 t dai_params

build_bdw_gcc/sof
004038b0 00003fa0 b buf_block
00408bf0 00003020 B primary_core_data
00001fd8 000017d0 T ipc_cmd
00401af8 00000804 R sine_table
00007e94 0000065d t volume_cmd
004082b0 00000600 b mod_block16
000084f4 000005fb T src_polyphase_stage_cir
0000fee8 000005fb t dai_params
00008af0 000005eb T src_polyphase_stage_cir_s16
000173dc 00000574 t dw_dma_set_config
0000d768 00000573 t tone_cmd
00016214 00000561 t ssp_set_config
000040e8 000004fa t host_params
00407eb0 00000400 b mod_block32
000064ac 000003f0 T comp_verify_params
00011544 000003c3 t kpb_event_handler
00400588 000003c0 R src_int16_24_25_1814_5000_fir
00011cd0 00000398 t kpb_draining_task
00011938 00000382 t kpb_copy
0001b4c4 00000382 T __divdi3

build_byt_gcc/sof
ff302d30 00003020 B primary_core_data
ff2c1f6c 000017e6 T ipc_cmd
ff30052c 00000804 R sine_table
ff2c7eec 0000065e t volume_cmd
ff2cd7a0 00000613 t ssp_set_config
ff2ca018 00000603 t dai_params
ff301f10 000005d0 b buf_block
ff2c8ac8 00000567 t tone_cmd
ff2ceccc 0000055d t dw_dma_set_config
ff2c4080 000004e6 t host_params
ff2c64e8 000003d6 T comp_verify_params
ff2d3078 0000036a T __divdi3
ff2c9c90 00000344 t dai_config
ff2d33e4 00000312 T __udivdi3
ff2c3940 000002fa T ipc_process_host_buffer
ff2c7c0c 000002b8 t volume_prepare
ff2cb710 000002b5 t _balloc_unlocked$isra$0
ff2c87e8 0000028c t tone_s32_default
ff2c6038 0000028c T comp_new
ff2d0fdc 0000024f t schedule_ll_task

build_cht_gcc/sof
ff302ed0 00003020 B primary_core_data
ff2c2004 000017e6 T ipc_cmd
ff30052c 00000804 R sine_table
ff2c7f84 0000065e t volume_cmd
ff2cd924 00000613 t ssp_set_config
ff2ca0b0 00000603 t dai_params
ff3020b0 000005d0 b buf_block
ff2c8b60 00000567 t tone_cmd
ff2cee50 0000055d t dw_dma_set_config
ff2c4118 000004e6 t host_params
ff2c6580 000003d6 T comp_verify_params
ff2d31f8 0000036a T __divdi3
ff2c9d28 00000344 t dai_config
ff2d3564 00000312 T __udivdi3
ff2c39d8 000002fa T ipc_process_host_buffer
ff2c7ca4 000002b8 t volume_prepare
ff2cb7a8 000002b5 t _balloc_unlocked$isra$0
ff2c8880 0000028c t tone_s32_default
ff2c60d0 0000028c T comp_new
ff2d1160 0000024f t schedule_ll_task

build_cnl_gcc/sof
be03ce08 00002800 d buf_block
be045280 000021c0 B primary_core_data
be00f210 00001706 T ipc_cmd
be02a698 00001203 t dmic_set_config
be043000 00001000 b pg_task_stack
be044240 00001000 B lps_boot_stack
be0284fc 00000973 t ssp_set_config
be038e38 00000804 R sine_table
be036a78 00000800 r coeff48000to08000
be0379f8 00000800 r coeff24000to08000
be0342f8 00000780 r coeff48000to32000
be0356f8 00000780 r coeff48000to16000
be037278 00000780 r coeff24000to16000
be03bdb8 00000720 d alh
be033bf8 00000700 r coeff48000to44100
be038738 00000700 r coeff44100to48000
be014e30 00000651 t volume_cmd
be034a78 00000640 r coeff48000to24000
be0350b8 00000640 r coeff48000to22050
be0402c8 00000600 d sys_rt_x_block64

build_hsw_gcc/sof
00407bf0 00003020 B primary_core_data
004038b0 00002fa0 b buf_block
00001fd8 000017d0 T ipc_cmd
00401af8 00000804 R sine_table
00007e94 0000065d t volume_cmd
004072b0 00000600 b mod_block16
000084f4 000005fb T src_polyphase_stage_cir
0000fee8 000005fb t dai_params
00008af0 000005eb T src_polyphase_stage_cir_s16
000173dc 00000574 t dw_dma_set_config
0000d768 00000573 t tone_cmd
00016214 00000561 t ssp_set_config
000040e8 000004fa t host_params
00406eb0 00000400 b mod_block32
000064ac 000003f0 T comp_verify_params
00011544 000003c3 t kpb_event_handler
00400588 000003c0 R src_int16_24_25_1814_5000_fir
00011cd0 00000398 t kpb_draining_task
00011938 00000382 t kpb_copy
0001b4c4 00000382 T __divdi3

build_icl_gcc/sof
be03cf6c 00002800 d buf_block
be043200 000021c0 B primary_core_data
be00ee50 00001706 T ipc_cmd
be02a268 00001203 t dmic_set_config
be02812c 00000973 t ssp_set_config
be038e44 00000804 R sine_table
be036a84 00000800 r coeff48000to08000
be037a04 00000800 r coeff24000to08000
be034304 00000780 r coeff48000to32000
be035704 00000780 r coeff48000to16000
be037284 00000780 r coeff24000to16000
be03bdb8 00000720 d alh
be033c04 00000700 r coeff48000to44100
be038744 00000700 r coeff44100to48000
be014a70 00000651 t volume_cmd
be034a84 00000640 r coeff48000to24000
be0350c4 00000640 r coeff48000to22050
be04042c 00000600 d sys_rt_x_block64
be035e84 00000600 r coeff48000to12000
be036484 00000600 r coeff48000to11025

build_imx8_gcc/sof
92428b24 0003ef38 b buf_block
92468c50 00003020 B primary_core_data
924095b0 000017f6 T ipc_cmd
92406d8c 00000804 R sine_table
924049cc 00000800 r coeff48000to08000
9240594c 00000800 r coeff24000to08000
9240224c 00000780 r coeff48000to32000
9240364c 00000780 r coeff48000to16000
924051cc 00000780 r coeff24000to16000
92401b4c 00000700 r coeff48000to44100
9240668c 00000700 r coeff44100to48000
9240f518 00000652 t volume_cmd
924029cc 00000640 r coeff48000to24000
9240300c 00000640 r coeff48000to22050
92403dcc 00000600 r coeff48000to12000
924043cc 00000600 r coeff48000to11025
92417370 000005e7 t dai_params
92414aa4 00000567 t tone_cmd
9240614c 00000540 r coeff48000to48000
92410080 00000514 T src_polyphase_stage_cir_s16

build_imx8m_gcc/sof
924280a4 0003ed38 b buf_block
92467fd0 00003020 B primary_core_data
924092e4 000017f6 T ipc_cmd
92406d00 00000804 R sine_table
92404940 00000800 r coeff48000to08000
924058c0 00000800 r coeff24000to08000
924021c0 00000780 r coeff48000to32000
924035c0 00000780 r coeff48000to16000
92405140 00000780 r coeff24000to16000
92401ac0 00000700 r coeff48000to44100
92406600 00000700 r coeff44100to48000
9240f24c 00000652 t volume_cmd
92402940 00000640 r coeff48000to24000
92402f80 00000640 r coeff48000to22050
92403d40 00000600 r coeff48000to12000
92404340 00000600 r coeff48000to11025
924170a4 000005e7 t dai_params
924147d8 00000567 t tone_cmd
924060c0 00000540 r coeff48000to48000
9240fdb4 00000514 T src_polyphase_stage_cir_s16

build_imx8x_gcc/sof
92428b24 0003ef38 b buf_block
92468c50 00003020 B primary_core_data
924095b0 000017f6 T ipc_cmd
92406d8c 00000804 R sine_table
924049cc 00000800 r coeff48000to08000
9240594c 00000800 r coeff24000to08000
9240224c 00000780 r coeff48000to32000
9240364c 00000780 r coeff48000to16000
924051cc 00000780 r coeff24000to16000
92401b4c 00000700 r coeff48000to44100
9240668c 00000700 r coeff44100to48000
9240f518 00000652 t volume_cmd
924029cc 00000640 r coeff48000to24000
9240300c 00000640 r coeff48000to22050
92403dcc 00000600 r coeff48000to12000
924043cc 00000600 r coeff48000to11025
92417370 000005e7 t dai_params
92414aa4 00000567 t tone_cmd
9240614c 00000540 r coeff48000to48000
92410080 00000514 T src_polyphase_stage_cir_s16

build_jsl_gcc/sof
be03ceb4 00002800 d buf_block
be042200 000021c0 B primary_core_data
be00ed84 00001702 T ipc_cmd
be02a190 00001203 t dmic_set_config
be028054 00000973 t ssp_set_config
be038e44 00000804 R sine_table
be036a84 00000800 r coeff48000to08000
be037a04 00000800 r coeff24000to08000
be034304 00000780 r coeff48000to32000
be035704 00000780 r coeff48000to16000
be037284 00000780 r coeff24000to16000
be03bd70 00000720 d alh
be033c04 00000700 r coeff48000to44100
be038744 00000700 r coeff44100to48000
be0149a4 00000651 t volume_cmd
be034a84 00000640 r coeff48000to24000
be0350c4 00000640 r coeff48000to22050
be035e84 00000600 r coeff48000to12000
be036484 00000600 r coeff48000to11025
be01c8c8 000005e3 t dai_params

build_kbl_gcc/sof
be03b200 000021c0 B primary_core_data
be00aafc 000016fe T ipc_cmd
be025298 00001203 t dmic_set_config
be037060 00000aa8 d lp_buf_block
be023384 00000973 t ssp_set_config
be033dd8 00000804 R sine_table
be031a18 00000800 r coeff48000to08000
be032998 00000800 r coeff24000to08000
be037b08 00000800 d buf_block
be02f298 00000780 r coeff48000to32000
be030698 00000780 r coeff48000to16000
be032218 00000780 r coeff24000to16000
be02eb98 00000700 r coeff48000to44100
be0336d8 00000700 r coeff44100to48000
be01071c 00000651 t volume_cmd
be02fa18 00000640 r coeff48000to24000
be030058 00000640 r coeff48000to22050
be030e18 00000600 r coeff48000to12000
be031418 00000600 r coeff48000to11025
be018658 000005e7 t dai_params

build_skl_gcc/sof
be03b200 000021c0 B primary_core_data
be00aafc 000016fe T ipc_cmd
be025298 00001203 t dmic_set_config
be037060 00000aa8 d lp_buf_block
be023384 00000973 t ssp_set_config
be033dd8 00000804 R sine_table
be031a18 00000800 r coeff48000to08000
be032998 00000800 r coeff24000to08000
be037b08 00000800 d buf_block
be02f298 00000780 r coeff48000to32000
be030698 00000780 r coeff48000to16000
be032218 00000780 r coeff24000to16000
be02eb98 00000700 r coeff48000to44100
be0336d8 00000700 r coeff44100to48000
be01071c 00000651 t volume_cmd
be02fa18 00000640 r coeff48000to24000
be030058 00000640 r coeff48000to22050
be030e18 00000600 r coeff48000to12000
be031418 00000600 r coeff48000to11025
be018658 000005e7 t dai_params

build_sue_gcc/sof
be04e240 000021c0 B primary_core_data
be010a6c 000016d2 T ipc_cmd
be02bad0 00001218 t dmic_set_config
be029c24 00000973 t ssp_set_config
be046fd4 00000804 R sine_table
be044c14 00000800 r coeff48000to08000
be045b94 00000800 r coeff24000to08000
be04a3e8 00000800 d buf_block
be042494 00000780 r coeff48000to32000
be043894 00000780 r coeff48000to16000
be045414 00000780 r coeff24000to16000
be041d94 00000700 r coeff48000to44100
be0468d4 00000700 r coeff44100to48000
be0166c8 00000652 t volume_cmd
be042c14 00000640 r coeff48000to24000
be043254 00000640 r coeff48000to22050
be04b048 00000600 d mod_block64
be044014 00000600 r coeff48000to12000
be044614 00000600 r coeff48000to11025
be01e5a8 000005e3 t dai_params

build_tgl_gcc/sof
be05ccfc 00004000 d buf_block
be064200 000021c0 B primary_core_data
be02f050 00001706 T ipc_cmd
be04a460 00001203 t dmic_set_config
be048328 00000973 t ssp_set_config
be058e44 00000804 R sine_table
be056a84 00000800 r coeff48000to08000
be057a04 00000800 r coeff24000to08000
be054304 00000780 r coeff48000to32000
be055704 00000780 r coeff48000to16000
be057284 00000780 r coeff24000to16000
be053c04 00000700 r coeff48000to44100
be058744 00000700 r coeff44100to48000
be034c74 00000651 t volume_cmd
be054a84 00000640 r coeff48000to24000
be0550c4 00000640 r coeff48000to22050
be0619bc 00000600 d sys_rt_x_block64
be055e84 00000600 r coeff48000to12000
be056484 00000600 r coeff48000to11025
be03cb98 000005e3 t dai_params

Metadata

Metadata

Labels

P3Low-impact bugs or featuresbugSomething isn't working as expected

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions