Re: [U-Boot] [PATCH 2/2] FIT image: use compression = "none" for ramdisks

2018-07-30 Thread Wolfgang Denk
Dear Simon,

In message <97a1d1e5-4415-4db4-9c77-72023f37b...@de.pepperl-fuchs.com> you 
wrote:
> 
> It *is* a valid use case. But for current kernels (if compression is 
> enabled), it might be faster to let the kernel unzip the content 
> directly to the memory location where it should reside in the end.

This was true a long, long time ago on ARM (and this is where most
of the unclean implmentations originate), when U-Boot did not enable
caches.  With this fixed, it is almost always wrong, because we now
have an unnecessary memory copy: U-Boot loads the compressed kernel
image to one location in RAM, which then runs and uncompresses the
code to another address.  Is it not obvious that it would be more
efficient if U-Boot did the uncompressing directly? 


Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,  Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de
For every complex problem, there is a solution that is simple,  neat,
and wrong.   -- H. L. Mencken
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH 2/2] FIT image: use compression = "none" for ramdisks

2018-07-30 Thread Simon Goldschmidt



On 30.07.2018 15:25, Wolfgang Denk wrote:

Dear Simon,

In message <0787afb7-2da1-4eaa-437e-6f7c75828...@de.pepperl-fuchs.com> you 
wrote:


I'd still argue that the standard example in 'multi.its' should have
compression = "none" for the ramdisks.


OK, this is your position then.  I can only explain where we are
coming from: in the early days of U-Boot (well, PPCBoot by then)
resources were much tighter than today - look at the examples in the
README: a v2.4.4 Linux kernel image would be around 780 kB
uncompressed or 330 kB compressed.  At this time it was considered a
waste of resources to have the gzip uncompression code in the boot
loader and again duplicated in the Linux kernel - so it was omitted
there and U-Boot would do all uncompression, also of the ramdisks.


Well, my point was that I couldn't see U-Boot ever handling this. But 
this discussion got a bit confused, split into two threads...



I agree this is not standard any more, but it is still a valid use
case, I think.  I know, I'm an old man ;-)


It *is* a valid use case. But for current kernels (if compression is 
enabled), it might be faster to let the kernel unzip the content 
directly to the memory location where it should reside in the end.


However, I don't have a strong opinion on these examples. I'll let the 
maintainers decide :-)



Best regards,
Simon
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH 2/2] FIT image: use compression = "none" for ramdisks

2018-07-30 Thread Wolfgang Denk
Dear Simon,

In message <0787afb7-2da1-4eaa-437e-6f7c75828...@de.pepperl-fuchs.com> you 
wrote:
> 
> I'd still argue that the standard example in 'multi.its' should have 
> compression = "none" for the ramdisks.

OK, this is your position then.  I can only explain where we are
coming from: in the early days of U-Boot (well, PPCBoot by then)
resources were much tighter than today - look at the examples in the
README: a v2.4.4 Linux kernel image would be around 780 kB
uncompressed or 330 kB compressed.  At this time it was considered a
waste of resources to have the gzip uncompression code in the boot
loader and again duplicated in the Linux kernel - so it was omitted
there and U-Boot would do all uncompression, also of the ramdisks.
I agree this is not standard any more, but it is still a valid use
case, I think.  I know, I'm an old man ;-)

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,  Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de
Brain: an apparatus with which we think we think.- Ambrose Bierce
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH 2/2] FIT image: use compression = "none" for ramdisks

2018-07-30 Thread Simon Goldschmidt



On 30.07.2018 14:36, Wolfgang Denk wrote:

Dear Simon,

In message <6bce9049-a812-d8e4-cd2a-4b86dccae...@de.pepperl-fuchs.com> you 
wrote:


However, uncompression currently is only implemented for kernels, not
for other sub-images. This patch aims at updating the docs and the
current .its examples to what they do now.


Yes, but the current state should IMO not been taken as reference.
I don't have time ATM to achtually check with older versions, but
I'm pretty sure that that was handled correctly in the original FIT
implementation, and the examples made sense at the time they were
being written.  I suspect that later changes broke the code, so only
the code needs to be fixed.

In general for the image handling there should be no distinction at
all whether this is a kernel or ramdisk or FPGA or whatever image -
compression is a feature independent of the image type, and that's
how the code should handle it.


OK, so at least we all seem to have a common sense of how it should be :-)

I'd still argue that the standard example in 'multi.its' should have 
compression = "none" for the ramdisks.


Best regards,
Simon
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH 2/2] FIT image: use compression = "none" for ramdisks

2018-07-30 Thread Wolfgang Denk
Dear Simon,

In message <6bce9049-a812-d8e4-cd2a-4b86dccae...@de.pepperl-fuchs.com> you 
wrote:
>
> However, uncompression currently is only implemented for kernels, not 
> for other sub-images. This patch aims at updating the docs and the 
> current .its examples to what they do now.

Yes, but the current state should IMO not been taken as reference.
I don't have time ATM to achtually check with older versions, but
I'm pretty sure that that was handled correctly in the original FIT
implementation, and the examples made sense at the time they were
being written.  I suspect that later changes broke the code, so only
the code needs to be fixed.

In general for the image handling there should be no distinction at
all whether this is a kernel or ramdisk or FPGA or whatever image -
compression is a feature independent of the image type, and that's
how the code should handle it.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,  Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de
Why can you only have two doors on a chicken coop? If it had four  it
would be a chicken sedan.
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH 2/2] FIT image: use compression = "none" for ramdisks

2018-07-30 Thread Simon Goldschmidt

Dear Wolfgang,

On 30.07.2018 13:45, Wolfgang Denk wrote:

Dear Simon,

In message <20180730105319.79424-2-sgoldschm...@de.pepperl-fuchs.com> you wrote:

To prepare supporting compression for all image types, change
compression to "none" for ramdisks in all examples.


What makes you think this is a correct thing to do?

There are different approaches to handle things.  For example,
traditionally on Power Architecture we would use a raw kernel
binray, compress this (for example with gzip) before wrapping it
with mkimage into an (uImage or FIT) U-Boot image, and then let
U-Boot uncompress the kernel image into rum and start it.  On ARM
the kernel comes traditionally with it's own wrapper that does
unompressions and such.

Same for ramdisk handling.  On some systems it may make sense to
have U-Boot handle the uncompressing, so compression = "gzip";
may be fully intentional.


That's the whole point and in the thread I mentioned 
(https://lists.denx.de/pipermail/u-boot/2018-July/336435.html) it has 
been discussed that this is the future goal.


However, uncompression currently is only implemented for kernels, not 
for other sub-images. This patch aims at updating the docs and the 
current .its examples to what they do now.


Best regards,
Simon
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH 2/2] FIT image: use compression = "none" for ramdisks

2018-07-30 Thread Wolfgang Denk
Dear Simon,

In message <20180730105319.79424-2-sgoldschm...@de.pepperl-fuchs.com> you wrote:
> To prepare supporting compression for all image types, change
> compression to "none" for ramdisks in all examples.

What makes you think this is a correct thing to do?

There are different approaches to handle things.  For example,
traditionally on Power Architecture we would use a raw kernel
binray, compress this (for example with gzip) before wrapping it
with mkimage into an (uImage or FIT) U-Boot image, and then let
U-Boot uncompress the kernel image into rum and start it.  On ARM
the kernel comes traditionally with it's own wrapper that does
unompressions and such.

Same for ramdisk handling.  On some systems it may make sense to
have U-Boot handle the uncompressing, so compression = "gzip";
may be fully intentional.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,  Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de
"Pardon me for breathing, which I never do anyway so I don't know why
I bother to say it, oh God, I'm so depressed. Here's another of those
self-satisfied doors. Life! Don't talk to me about life."
- Marvin the Paranoid Android
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot