Hello Joel,

I think we currently have very few BSPs with a linked in device tree blob. I know only of the new imxrt (which isn't in your list) and I think one Xilinx something BSP.

For imx: I only have a build for some minimum based on 5 at hand right now. I have to re-build an up to date version to double check that. For this BSP there is 0x000069bc text size and 0x00040ebc rodata. So the rodata is the odd part.

nm -S --size-sort ./build/b-imx7/arm-rtems5/c/imx7/testsuites/samples/minimum.exe | tail -5

gives a

80205e40 000004e0 T memcpy
80203a00 0000078c T _IO_Vprintf
80300c2c 00000a00 B bsp_interrupt_handler_table
80301ac0 00001000 B _ISR_Stack_area_begin
80207080 00040000 r bsp_fdt_blob

So yes: For some reason there is a big bsp_fdt_blob there even if none should be linked in. I had a look at that variable:

https://git.rtems.org/rtems/tree/bsps/shared/start/bsp-fdt.c

U-Boot passes a FDT blob and the BSP copies it into that area that is reserved with a fixed size. Seems reasonable because we can't easily allocate memory when we copy the FDT. It's done during initialization and therefore there is no heap yet.

If you still have the binaries: Maybe you can call the nm command like above for the other BSPs too so we can see what the biggest objects are?

Best regards

Christian

Am 24.05.21 um 15:00 schrieb Joel Sherrill:
Hi

I built all 187 BSPs overnight and saved minimum.exe. Although I think 64K is still too much code, I am using that as an initial cutoff when asking for some help in identifying why minimum.exe is surprisingly large for some BSPs. 146 stayed under 64k which leaves 41 needing some investigation or explanation.  I suspect some might have a device tree blob linked in. The surprising ones are the riscv, stmh7, beagle, and qoriq.

Here is the list:

 73680     504 34135552        34209736        209ffc8 minimum-exes/arm-nucleo-h743zi-minimum.exe   73680     504 34135552        34209736        209ffc8 minimum-exes/arm-stm32h7-minimum.exe   88509     452 268346424       268435385       fffffb9 minimum-exes/riscv-frdme310arty-minimum.exe   88647     760 67019328        67108735        3ffff7f minimum-exes/riscv-rv64imac_medany-minimum.exe   88697     760 67019328        67108785        3ffffb1 minimum-exes/riscv-rv64imac-minimum.exe   88947     760 67019072        67108779        3ffffab minimum-exes/riscv-rv64imafdc-minimum.exe   88955     760 67019072        67108787        3ffffb3 minimum-exes/riscv-rv64imafdc_medany-minimum.exe   89279     452 67019064        67108795        3ffffbb minimum-exes/riscv-rv32imac-minimum.exe   89561     452 67018808        67108821        3ffffd5 minimum-exes/riscv-rv32imafc-minimum.exe   89577     452 67018744        67108773        3ffffa5 minimum-exes/riscv-rv32imafdc-minimum.exe   90267     452 67018040        67108759        3ffff97 minimum-exes/riscv-rv32iac-minimum.exe   96523     760 67011520        67108803        3ffffc3 minimum-exes/riscv-rv64imafd_medany-minimum.exe   96547     760 67011456        67108763        3ffff9b minimum-exes/riscv-rv64imafd-minimum.exe   97787     452 67010536        67108775        3ffffa7 minimum-exes/riscv-rv32im-minimum.exe   98071     452 67010296        67108819        3ffffd3 minimum-exes/riscv-rv32imafd-minimum.exe   99587     452 67008744        67108783        3ffffaf minimum-exes/riscv-rv32i-minimum.exe
  100328    9148   24320  133796   20aa4 minimum-exes/i386-pc386-minimum.exe
  103344    9436   24256  137036   2174c minimum-exes/i386-pcp4-minimum.exe
  108836    9148   24320  142304   22be0 minimum-exes/i386-pc486-minimum.exe
  111956    9148   24320  145424   23810 minimum-exes/i386-pc586-minimum.exe
 112148    9372   24256  145776   23970 minimum-exes/i386-pc586-sse-minimum.exe
  114612    9148   24320  148080   24270 minimum-exes/i386-pc686-minimum.exe
 121013   19128   93696  233837   3916d minimum-exes/powerpc-mvme5500-minimum.exe  123765   22980  379760  526505   808a9 minimum-exes/powerpc-qemuprep-minimum.exe  124253   22916  380484  527653   80d25 minimum-exes/powerpc-mvme2100-minimum.exe  126669   23060  379760  529489   81451 minimum-exes/powerpc-qemuprep-altivec-minimum.exe
  129820    1024   11872  142716   22d7c minimum-exes/mips-malta-minimum.exe
 130673   24324  380496  535493   82bc5 minimum-exes/powerpc-mtx603e-minimum.exe  130977   24380  380496  535853   82d2d minimum-exes/powerpc-mcp750-minimum.exe  131029   24240  380496  535765   82cd5 minimum-exes/powerpc-mvme2307-minimum.exe  154493   23912   92876  271281   423b1 minimum-exes/powerpc-beatnik-minimum.exe  168173   27216   25081  220470   35d36 minimum-exes/powerpc-mvme3100-minimum.exe  289136     424 535532700       535822260       1fefffb4  minimum-exes/arm-imx7-minimum.exe  312308    7964 66788536        67108808        3ffffc8 minimum-exes/powerpc-qoriq_core_1-minimum.exe  312340    8036 33277808        33598184        200aae8 minimum-exes/powerpc-qoriq_core_0-minimum.exe  312340    8036 519817056       520137432       1f00aad8  minimum-exes/powerpc-qoriq_e500-minimum.exe  316944    8060 519816888       520141892       1f00bc44  minimum-exes/powerpc-qoriq_e6500_32-minimum.exe  331076    1304 519814736       520147116       1f00d0ac  minimum-exes/powerpc-qoriq_e6500_64-minimum.exe

Help in reducing and/or explaining is appreciated.

--joel





_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


--
--------------------------------------------
embedded brains GmbH
Herr Christian MAUDERER
Dornierstr. 4
82178 Puchheim
Germany
email: christian.maude...@embedded-brains.de
phone: +49-89-18 94 741 - 18
fax:   +49-89-18 94 741 - 08

Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to