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