@@ -142,66 +142,6 @@ SECTIONS
142142 {
143143 _rodata_start = ABSOLUTE (.);
144144
145- #ifdef CONFIG_USERSPACE
146- Z_LINK_ITERABLE_ALIGNED (z_object_assignment, 4 );
147- #endif
148-
149- #if defined(CONFIG_NET_SOCKETS)
150- Z_LINK_ITERABLE_ALIGNED (net_socket_register, 4 );
151- #endif
152-
153- #if defined(CONFIG_NET_L2_PPP)
154- Z_LINK_ITERABLE_ALIGNED (ppp_protocol_handler, 4 );
155- #endif
156-
157- Z_LINK_ITERABLE_ALIGNED (bt_l2cap_fixed_chan, 4 );
158-
159- #if defined(CONFIG_BT_BREDR)
160- Z_LINK_ITERABLE_ALIGNED (bt_l2cap_br_fixed_chan, 4 );
161- #endif
162-
163- #if defined(CONFIG_BT_CONN)
164- Z_LINK_ITERABLE_ALIGNED (bt_conn_cb, 4 )
165- #endif
166-
167- Z_LINK_ITERABLE_ALIGNED (bt_gatt_service_static, 4 );
168-
169- #if defined(CONFIG_BT_MESH)
170- Z_LINK_ITERABLE_ALIGNED (bt_mesh_subnet_cb, 4 );
171- Z_LINK_ITERABLE_ALIGNED (bt_mesh_app_key_cb, 4 );
172- Z_LINK_ITERABLE_ALIGNED (bt_mesh_hb_cb, 4 );
173- #endif
174-
175- #if defined(CONFIG_BT_MESH_FRIEND)
176- Z_LINK_ITERABLE_ALIGNED (bt_mesh_friend_cb, 4 );
177- #endif
178-
179- #if defined(CONFIG_BT_MESH_LOW_POWER)
180- Z_LINK_ITERABLE_ALIGNED (bt_mesh_lpn_cb, 4 );
181- #endif
182-
183- #if defined(CONFIG_BT_MESH_PROXY)
184- Z_LINK_ITERABLE_ALIGNED (bt_mesh_proxy_cb, 4 );
185- #endif
186-
187- #if defined(CONFIG_EC_HOST_CMD)
188- Z_LINK_ITERABLE_ALIGNED (ec_host_cmd_handler, 4 );
189- #endif
190-
191- #if defined(CONFIG_SETTINGS)
192- Z_LINK_ITERABLE_ALIGNED (settings_handler_static, 4 );
193- #endif
194-
195- Z_LINK_ITERABLE_ALIGNED (k_p4wq_initparam, 4 );
196-
197- Z_LINK_ITERABLE_ALIGNED (shell, 4 );
198-
199- Z_LINK_ITERABLE_ALIGNED (tracing_backend, 4 )
200-
201- __esp_shell_root_cmds_start = .;
202- KEEP (*(SORT (.shell_root_cmd_ *)));
203- __esp_shell_root_cmds_end = .;
204-
205145 . = ALIGN (4 );
206146 #include < snippets-rodata.ld>
207147
@@ -238,6 +178,19 @@ SECTIONS
238178 _rodata_end = ABSOLUTE (.);
239179 } GROUP_DATA_LINK_IN (RODATA_REGION, ROMABLE_REGION)
240180
181+ /* Flash segments (rodata and text) should be mapped in virtual address space by providing VMA.
182+ * Executing directly from LMA is not possible. */
183+ #pragma push_macro("GROUP_ROM_LINK_IN")
184+ #undef GROUP_ROM_LINK_IN
185+ #define GROUP_ROM_LINK_IN (vregion, lregion ) > RODATA_REGION AT > lregion
186+ #include " linker/common-rom/common-rom-kernel-devices.ld"
187+ #include " linker/common-rom/common-rom-cpp.ld"
188+ #include " linker/common-rom/common-rom-net.ld"
189+ #include " linker/common-rom/common-rom-bt.ld"
190+ #include " linker/common-rom/common-rom-debug.ld"
191+ #include " linker/common-rom/common-rom-misc.ld"
192+ #pragma pop_macro("GROUP_ROM_LINK_IN")
193+
241194 _image_dram_start = LOADADDR (" .dram0.data" );
242195 _image_dram_size = LOADADDR (" .dummy.dram.data" ) + SIZEOF (" .dummy.dram.data" ) - _image_dram_start;
243196 _image_dram_vaddr = ADDR (" .dram0.data" );
@@ -283,22 +236,16 @@ SECTIONS
283236 _dram_data_end = ABSOLUTE (.);
284237 } GROUP_DATA_LINK_IN (RAMABLE_REGION, ROMABLE_REGION)
285238
286- #pragma push_macro("GROUP_ROM_LINK_IN")
287- #pragma push_macro("ITERABLE_SECTION_ROM")
288- #undef GROUP_ROM_LINK_IN
289- #undef ITERABLE_SECTION_ROM
290- #define GROUP_ROM_LINK_IN GROUP_DATA_LINK_IN
291- #define ITERABLE_SECTION_ROM (x,y )
292- #include < linker/common-rom.ld>
293- #pragma pop_macro("GROUP_ROM_LINK_IN")
294- #pragma pop_macro("ITERABLE_SECTION_ROM")
295-
296239 #include < snippets-data-sections.ld>
297240 #include < linker/common-ram.ld>
298241 #include < snippets-ram-sections.ld>
299242
300- __shell_root_cmds_start = __esp_shell_root_cmds_start;
301- __shell_root_cmds_end = __esp_shell_root_cmds_end;
243+ /* logging sections should be placed in RAM area to avoid flash cache disabled issues */
244+ #pragma push_macro("GROUP_ROM_LINK_IN")
245+ #undef GROUP_ROM_LINK_IN
246+ #define GROUP_ROM_LINK_IN GROUP_DATA_LINK_IN
247+ #include " linker/common-rom/common-rom-logging.ld"
248+ #pragma pop_macro("GROUP_ROM_LINK_IN")
302249
303250 .dummy.dram.data :
304251 {
0 commit comments