
Hi Shunya,
On Sat, Dec 4, 2010 at 3:32 AM, Shinya Kuribayashi skuribay@pobox.com wrote:
Hi,
On 11/30/2010 11:35 PM, Luigi 'Comio' Mantellini wrote:
Look the following benchmark (qemu-mips board):
...
Bootstrap code using LZMA compression 89456 bytes u-boot-bootstrap.bin -->size 50% <-- BEST
...
Personally, I don't much care about the size of U-Boot bin itself (179kB or 104kB), but it depends. And I'd like to see how much boot time of U-Boot improved on your environment.
My target is to have a full-featured u-boot with size less than flash sector (128K on my dev board). In the best case (LZMA, but I also tried with XZ) I have just 16K/17K of boot code and a payload u-boot image less than half of the original size.
The following patches introduce the bootstrap support that enable to have a
compressed U-Boot image. The bootstrap code supports the uncompressed as well as compressed payloads, using LZMA, GZIP, BZIP2 and LZO.
Actually I developed just the mips version (using qemu-mips board)...
Please see the Patch #1 for the required defines to enable the required features.
Not having a closer look at the patch yet, some general comments:
- Two patches posted, but contains multiple logical changes:
- CONFIG_BOOTSTRAP* build infrastructure (main body)
I will separate into a (1) Generic bootstrap code, (2) and MIPS support. I will send ASAP a new patchset that inclues also XZ format support (aka LZMA2)
- common: Introduce console_bootstrap - MIPS: Separate _machine_restart() and do_reset() into reset.c - MIPS: config.mk: Append -g debug option to PLATFORM_CPPFLAGS, which is already provided by $(TOPDIR)/config.mk. - MIPS: qemu_mips: bootstrap support enablement (experimental)
Please break into logical changes, please.
- '_bootstrap' suffixed files are almost identical to the original
ones: - arch/mips/cpu/reset{,_bootstrap}.c
I removed the "fprintf" from reset_bootstrap.c because the bootstrap code haven't the generic dev io infrastructure. I would avoid also to compile twice the same files in order to produce different .o files (changing, for example, a define value).
- arch/mips/cpu/start{,_bootstrap}.S - board/qemu-mips/u-boot{,_bootstrap}.lds
some here.
Is there any way not to duplicate them? Do we really need to have _bootstrap files separated?
An Idea, that I don't like, should be to compile changing the CFLAGS in order to produce different object files. Considering that bootstrap code should be very small and stable I don't see big issues to have different files.
Once this bootstrap feature approved as general U-Boot feature, I'd like to take MIPS-related changes.
ok.
Thanks for your review.
luigi
Thanks,
Ralf _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot