MTD/NAND layer size increase after update

Ahmad Fatoum a.fatoum at pengutronix.de
Tue May 28 04:55:28 PDT 2024


Hello Sascha,

The recent MTD/NAND layer sync with Linux made barebox a good deal fatter with the result
that the DistroKit configuration[1] for am335x MLO now fails to compile on v2024.05.0:

  images/start_am33xx_afi_gf_sram.pblb size 113544 > maximum size 111616

[1]: https://git.pengutronix.de/cgit/DistroKit/plain/configs/platform-v7a/barebox-am335x-mlo.config?h=next&id=5db984fcb018f57bc19553a7c95be58ab8cc8b5f

I looked at the diff and found that the sync commit inadvertently dropped CONFIG_MTD_WRITE
checks. I added back these checks to save some Kilobytes, but there is still some size increase,
which I think is unreasonable for existing users that didn't need the newly imported
functionality. Can you take a look and perhaps add some IS_ENABLED() checks?

Here is bloaty output that shows some of the symbols responsible for the size increase
(Some may be false positives due to symbol rename or refactoring):

bloaty build/barebox --domain=vm -- barebox.old  -d symbols -n 40 
     VM SIZE    
 -------------- 
  [NEW] +1.12Ki    onfi_nvddr_timings
  [NEW]   +1000    nand_lp_exec_cont_read_page_op
   +34%    +588    nand_scan_tail
  [NEW]    +428    nanddev_mtd_max_bad_blocks
 -98.5%    +396    [163 Others]
  [NEW]    +342    nand_read_page_syndrome
  +1.6%    +332    [section .rodata]
  [NEW]    +324    of_get_nand_ecc_user_config
  [NEW]    +256    onfi_find_closest_nvddr_mode
   +13%    +236    nand_scan_ident
  [NEW]    +192    nand_read_oob_syndrome
  [NEW]    +190    nand_read_page_raw_syndrome
   +22%    +180    nand_read_page_op
  [NEW]    +170    nand_read_page_swecc
   +16%    +168    nand_read_oob
   +77%    +144    nand_read_data_op
  [NEW]    +132    handoff_data_reserve
  [NEW]    +122    nand_choose_best_nvddr_timings
  [NEW]    +108    rawnand_cap_cont_reads
   +28%    +100    nand_get_features
  [NEW]     +92    barebox_hostname_is_valid
   +32%     +88    nand_readid_op
   +55%     +84    onfi_fill_interface_config
  +6.9%     +80    nand_onfi_detect
  [NEW]     +74    nand_ecc_is_strong_enough
  [NEW]     +64    nand_isreserved_bbt
  [NEW]     +60    console_set_stdoutpath
  [NEW]     +56    broken_get_timings.5
  +8.7%     +52    macronix_nand_init
   +12%     +48    nand_read_param_page_op
   +20%     +48    nand_setup_interface
   +13%     +44    nand_set_features
  [NEW]     +40    handoff_data_get
  +8.3%     +40    nand_exec_prog_page_op
  -8.2%     -40    console_register
  [DEL]     -56    broken_get_timings.4
  [DEL]     -60    of_get_nand_ecc_mode
  [DEL]     -96    nand_block_markgood
  [DEL]    -102    nand_mark_bbt
  [DEL]    -104    reparse_partition_table
 -45.5%    -120    barebox_non_pbl_start
  +4.0% +6.69Ki    TOTAL


Thanks,
Ahmad

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list