Commit Graph

23 Commits

Author SHA1 Message Date
Alexey Lapshin
824c8e0593 feat(esp_system): allow .bss to spill over into L2MEM above 0x4ff40000
This commit introduce SOC_MEM_NON_CONTIGUOUS_SRAM flag (that enebled for
esp32p4). If SOC_MEM_NON_CONTIGUOUS_SRAM is enabled:

- LDFLAGS+=--enable-non-contiguous-regions
- ldgen.py replaces "arrays[*]" from sections.ld.in with objects under
  SURROUND keyword. (e.g. from linker.lf: data -> dram0_data SURROUND(foo))
- "mapping[*]" - refers to all other data

If SOC_MEM_NON_CONTIGUOUS_SRAM, sections.ld.in file should contain at
least one block of code like this (otherwise it does not make sense):

  .dram0.bss (NOLOAD) :
  {
    arrays[dram0_bss]
    mapping[dram0_bss]
  } > sram_low

  .dram1.bss (NOLOAD) :
  {
    /* do not place here arrays[dram0_bss] because it may be splited
     * between segments */
    mapping[dram0_bss]
  } > sram_high
2024-02-28 19:41:25 +04:00
You Wei
e52fb0abf8 fix(ldgen): duplicate entries in the generated .ld file 2023-09-12 11:20:12 +08:00
You Wei
be88d11a81 fix(ldgen): check target conflict for entries with section alias 2023-09-11 21:24:05 +08:00
Fu Hanxi
172854a850 refactor: rewrite ldgen fragment file parser
closes https://github.com/espressif/esp-idf/issues/7940
2022-01-07 16:18:32 +08:00
Fu Hanxi
a44953ecd4 refactor: move ldgen into a separate package 2022-01-07 16:18:32 +08:00
Fu Hanxi
a65de0ab1f ldgen: generate ld files with fixed order of entries 2021-10-26 10:43:15 +08:00
Renz Bagaporo
acd2385d0e ldgen: parenthesis for KEEP 2021-03-05 18:09:19 +08:00
Renz Bagaporo
10c5226095 ldgen: use uppercase keywords for flags 2021-03-01 14:19:34 +08:00
Renz Bagaporo
7af3d65868 ldgen: surround always pre and post 2021-03-01 14:19:34 +08:00
Renz Bagaporo
dbdc17cced ldgen: rename emit to surround 2021-03-01 14:19:34 +08:00
Renz Bagaporo
b99777066f ldgen: implement flags support
Implement support for KEEP, ALIGN, emitting symbols and SORT.
Add appropriate tests
Defines default mapping in linker fragment file
2021-03-01 14:19:34 +08:00
Renz Bagaporo
7f18c948dc ldgen: refactor generation tests and description addition 2021-02-05 10:20:37 +08:00
Fu Hanxi
0146f258d7 style: format python files with isort and double-quote-string-fixer 2021-01-26 10:49:01 +08:00
Renz Bagaporo
ef6c8e351b ldgen: fix sections info parsing
Fixes an issure where the first part of an object file name is not
included, due to matching the rule for a section entry previously.

Reduce depedency on matching literal strings in sections which might
change depending on toolchain (ex. matching 'elf32-xtensa-le')

Make sure parsing rule succeeds for the entirety of the sections info
string by adding 'parseAll=True'.

Add test for sections info parsing.
2021-01-19 11:17:18 +08:00
Renz Bagaporo
89a255f5eb ldgen: determinism in mapping rule order
This MR imposes some determinism in the mapping rule order in the output
file. For each section, the archives are arranged alphabetically
(ascending), and the mapping rules in each archive are arranged by
increasing specificity then alphabetically (ascending). The default
rules remain the very first rule for each section.
2020-04-30 18:20:00 +08:00
Roland Dobai
84d5cc1c17 Generate source files for kconfiglib from the build system 2019-11-15 15:25:09 +00:00
Roland Dobai
01887f71e7 Update kconfiglib to upstream version and replace mconf-idf
Special thanks to @ulfalizer for the helpful suggestions regarding
kconfiglib.

"rsource" option is available for relative path includes
Closes https://github.com/espressif/esp-idf/issues/4064
2019-10-29 10:40:04 +01:00
Renz Christian Bagaporo
8ee90ee2f1 ldgen: allow multiple mapping fragments to map same library 2019-06-12 10:48:54 +08:00
Renz Christian Bagaporo
2522268c20 ldgen: do not generate rules when no condition is true
Closes https://github.com/espressif/esp-idf/issues/3295
2019-04-24 18:25:24 +08:00
Renz Christian Bagaporo
c81ebbf38e ldgen: add backward-compatibility with previous mapping fragment style 2019-04-04 16:33:56 +08:00
Renz Christian Bagaporo
7900178b7c ldgen: update tests for common fragment parsing 2019-04-04 15:56:46 +08:00
Roland Dobai
bfa9610f58 tools: Fix the Python coding style 2018-12-19 11:56:24 +01:00
Renz Bagaporo
63411fc556 tools: implement linker script generation 2018-11-16 12:42:02 +08:00