From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michal Simek Date: Tue, 03 Feb 2015 14:16:49 +0100 Subject: [U-Boot] SPL DM Message-ID: <54D0CA41.3030700@monstr.eu> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Simon, I am playing with driver model and I have moved uartlite to it and it is working fine for normal u-boot +10k but SPL size is dramatically bigger. Without DM I can fit to 3k but now it has ~16k. microblaze-generic: all +10759 bss +4 data +560 rodata +1379 spl/u-boot-spl:all +9100 spl/u-boot-spl:bss -4 spl/u-boot-spl:data -48 spl/u-boot-spl:rodata +5660 spl/u-boot-spl:text +3492 text +8816 This 9k is after removing all printf calling which is adding 6kB. diff --git a/common/malloc_simple.c b/common/malloc_simple.c index afdacff80d8e..a9e4d96738a0 100644 --- a/common/malloc_simple.c +++ b/common/malloc_simple.c @@ -19,7 +19,7 @@ void *malloc_simple(size_t bytes) new_ptr = gd->malloc_ptr + bytes; if (new_ptr > gd->malloc_limit) - panic("Out of pre-reloc memory"); + puts("Out of pre-reloc memory"); ptr = map_sysmem(gd->malloc_base + gd->malloc_ptr, bytes); gd->malloc_ptr = ALIGN(new_ptr, sizeof(new_ptr)); return ptr; diff --git a/drivers/serial/serial-uclass.c b/drivers/serial/serial-uclass.c index 3fc7104359d3..d56fafcb8ee2 100644 --- a/drivers/serial/serial-uclass.c +++ b/drivers/serial/serial-uclass.c @@ -72,7 +72,7 @@ static void serial_find_console_or_panic(void) if (uclass_get_device_by_seq(UCLASS_SERIAL, INDEX, &dev) && uclass_get_device(UCLASS_SERIAL, INDEX, &dev) && (uclass_first_device(UCLASS_SERIAL, &dev) || !dev)) - panic("No serial driver found"); + puts("No serial driver found"); #undef INDEX gd->cur_serial_dev = dev; } Here is diff between versions. I have setup CONFIG_SYS_MALLOC_SIMPLE Simon: Have you tried to to reduce size in this too? Interesting part is that new uartlite functions are not called that's why I am expecting any other problem. spl-u-boot-spl: add: 27/-13, grow: 2/-1 bytes: 4024/-576 (3448) function old new delta device_bind - 596 +596 device_probe_child - 508 +508 uclass_get - 296 +296 lists_bind_drivers - 212 +212 uclass_resolve_seq - 188 +188 uclass_bind_device - 180 +180 uclass_find_device_by_seq - 172 +172 device_bind_by_name - 152 +152 uclass_get_device_by_seq - 140 +140 serial_find_console_or_panic - 136 +136 uclass_find_device - 132 +132 lists_driver_lookup_name - 128 +128 uclass_first_device - 108 +108 dm_init - 96 +96 _serial_putc - 96 +96 uclass_unbind_device - 92 +92 malloc_simple - 92 +92 uclass_get_device - 88 +88 lists_uclass_lookup - 80 +80 dm_init_and_scan - 80 +80 calloc - 80 +80 uclass_find - 72 +72 uclass_pre_probe_child - 60 +60 uclass_post_probe_device - 52 +52 strcmp - 52 +52 dm_scan_platdata - 52 +52 serial_puts 44 80 +36 device_probe - 32 +32 board_init_r 232 248 +16 serial_current 4 - -4 userial0_setbrg 8 - -8 serial_init 56 48 -8 userial0_tstc 20 - -20 userial0_puts 32 - -32 userial0_putc 32 - -32 userial0_init 32 - -32 userial0_getc 32 - -32 uartlite_serial_getc 40 - -40 uartlite_serial0_device 48 - -48 uartlite_serial_init 52 - -52 uartlite_serial_puts 80 - -80 uartlite_serial_putc 92 - -92 get_current 96 - -96 Thanks, Michal -- Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91 w: www.monstr.eu p: +42-0-721842854 Maintainer of Linux kernel - Microblaze cpu - http://www.monstr.eu/fdt/ Maintainer of Linux kernel - Xilinx Zynq ARM architecture Microblaze U-BOOT custodian and responsible for u-boot arm zynq platform -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 198 bytes Desc: OpenPGP digital signature URL: