* [U-Boot] [PATCH V2] cfb_console: force natural alignment of 32-bit fields in gzipped .bmp files
@ 2014-02-28 21:06 Eric Nelson
2014-02-28 21:44 ` Wolfgang Denk
0 siblings, 1 reply; 3+ messages in thread
From: Eric Nelson @ 2014-02-28 21:06 UTC (permalink / raw)
To: u-boot
.bmp files contain 32-bit integers aligned at offsets of +2, +6,
et cetera within the bmp_header structure (see include/bmp_layout.h).
Support for gzip-compressed .bmp files is present in the cfb_console
display subsystem by uncompressing them prior to use.
This patch forces the in-memory header to be aligned properly
for these compressed images by extracting them to a 2-byte
offset in the memory returned by malloc. Since malloc will always
return a 4-byte aligned value, this forces the .bmp header
fields to be naturally aligned on 4-byte addresses.
Refer to these files for more details:
doc/README.displaying-bmps
doc/README.arm-unaligned-accesses
Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
---
drivers/video/cfb_console.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/video/cfb_console.c b/drivers/video/cfb_console.c
index 6db4073..2209148 100644
--- a/drivers/video/cfb_console.c
+++ b/drivers/video/cfb_console.c
@@ -1473,7 +1473,10 @@ int video_display_bitmap(ulong bmp_image, int x, int y)
printf("Error: malloc in gunzip failed!\n");
return 1;
}
- if (gunzip(dst, CONFIG_SYS_VIDEO_LOGO_MAX_SIZE,
+ /* NB: we need to force offset of +2
+ * See doc/README.displaying-bmps
+ */
+ if (gunzip(dst+2, CONFIG_SYS_VIDEO_LOGO_MAX_SIZE-2,
(uchar *) bmp_image,
&len) != 0) {
printf("Error: no valid bmp or bmp.gz image at %lx\n",
@@ -1489,7 +1492,7 @@ int video_display_bitmap(ulong bmp_image, int x, int y)
/*
* Set addr to decompressed image
*/
- bmp = (bmp_image_t *) dst;
+ bmp = (bmp_image_t *)(dst+2);
if (!((bmp->header.signature[0] == 'B') &&
(bmp->header.signature[1] == 'M'))) {
--
1.8.3.2
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [U-Boot] [PATCH V2] cfb_console: force natural alignment of 32-bit fields in gzipped .bmp files
2014-02-28 21:06 [U-Boot] [PATCH V2] cfb_console: force natural alignment of 32-bit fields in gzipped .bmp files Eric Nelson
@ 2014-02-28 21:44 ` Wolfgang Denk
2014-02-28 21:51 ` Eric Nelson
0 siblings, 1 reply; 3+ messages in thread
From: Wolfgang Denk @ 2014-02-28 21:44 UTC (permalink / raw)
To: u-boot
Dear Eric Nelson,
your message contains no thread information - there is neither a
In-reply-to: nor any References: header. This is bad!
Please also make sure to keep the Subject: test short; the recommended
style for the commit message is "50/72 formatting", i. e. the Subject
should not exceed 50 (...60) characters.
In message <1393621572-10306-1-git-send-email-eric.nelson@boundarydevices.com> you wrote:
> .bmp files contain 32-bit integers aligned at offsets of +2, +6,
> et cetera within the bmp_header structure (see include/bmp_layout.h).
>
> Support for gzip-compressed .bmp files is present in the cfb_console
> display subsystem by uncompressing them prior to use.
>
> This patch forces the in-memory header to be aligned properly
> for these compressed images by extracting them to a 2-byte
> offset in the memory returned by malloc. Since malloc will always
> return a 4-byte aligned value, this forces the .bmp header
> fields to be naturally aligned on 4-byte addresses.
>
> Refer to these files for more details:
> doc/README.displaying-bmps
> doc/README.arm-unaligned-accesses
>
> Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
> ---
> drivers/video/cfb_console.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
So what exactly has changed since version 1? Please note that the
change log is mandatory!
> diff --git a/drivers/video/cfb_console.c b/drivers/video/cfb_console.c
> index 6db4073..2209148 100644
> --- a/drivers/video/cfb_console.c
> +++ b/drivers/video/cfb_console.c
> @@ -1473,7 +1473,10 @@ int video_display_bitmap(ulong bmp_image, int x, int y)
> printf("Error: malloc in gunzip failed!\n");
> return 1;
> }
> - if (gunzip(dst, CONFIG_SYS_VIDEO_LOGO_MAX_SIZE,
> + /* NB: we need to force offset of +2
> + * See doc/README.displaying-bmps
> + */
Incorrect multiline comment style, please fix.
I asked you before to fix that, please make sure not to ignore
review comments!
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
G's Third Law: In spite of all evidence to the contra-
ry, the entire universe is composed of only two basic substances:
magic and bullshit.
H's Dictum: There is no magic ...
^ permalink raw reply [flat|nested] 3+ messages in thread
* [U-Boot] [PATCH V2] cfb_console: force natural alignment of 32-bit fields in gzipped .bmp files
2014-02-28 21:44 ` Wolfgang Denk
@ 2014-02-28 21:51 ` Eric Nelson
0 siblings, 0 replies; 3+ messages in thread
From: Eric Nelson @ 2014-02-28 21:51 UTC (permalink / raw)
To: u-boot
Sorry Wolfgang,
On 02/28/2014 02:44 PM, Wolfgang Denk wrote:
> Dear Eric Nelson,
>
> your message contains no thread information - there is neither a
> In-reply-to: nor any References: header. This is bad!
>
> Please also make sure to keep the Subject: test short; the recommended
> style for the commit message is "50/72 formatting", i. e. the Subject
> should not exceed 50 (...60) characters.
>
Okay. I was trying to be more explicit here.
> In message <1393621572-10306-1-git-send-email-eric.nelson@boundarydevices.com> you wrote:
>> .bmp files contain 32-bit integers aligned at offsets of +2, +6,
>> et cetera within the bmp_header structure (see include/bmp_layout.h).
>>
>> Support for gzip-compressed .bmp files is present in the cfb_console
>> display subsystem by uncompressing them prior to use.
>>
>> This patch forces the in-memory header to be aligned properly
>> for these compressed images by extracting them to a 2-byte
>> offset in the memory returned by malloc. Since malloc will always
>> return a 4-byte aligned value, this forces the .bmp header
>> fields to be naturally aligned on 4-byte addresses.
>>
>> Refer to these files for more details:
>> doc/README.displaying-bmps
>> doc/README.arm-unaligned-accesses
>>
>> Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
>> ---
>> drivers/video/cfb_console.c | 7 +++++--
>> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> So what exactly has changed since version 1? Please note that the
> change log is mandatory!
>
Got it.
>> diff --git a/drivers/video/cfb_console.c b/drivers/video/cfb_console.c
>> index 6db4073..2209148 100644
>> --- a/drivers/video/cfb_console.c
>> +++ b/drivers/video/cfb_console.c
>> @@ -1473,7 +1473,10 @@ int video_display_bitmap(ulong bmp_image, int x, int y)
>> printf("Error: malloc in gunzip failed!\n");
>> return 1;
>> }
>> - if (gunzip(dst, CONFIG_SYS_VIDEO_LOGO_MAX_SIZE,
>> + /* NB: we need to force offset of +2
>> + * See doc/README.displaying-bmps
>> + */
>
> Incorrect multiline comment style, please fix.
>
> I asked you before to fix that, please make sure not to ignore
> review comments!
>
Not intentional... Will fix in V3.
Regards,
Eric
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2014-02-28 21:51 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-02-28 21:06 [U-Boot] [PATCH V2] cfb_console: force natural alignment of 32-bit fields in gzipped .bmp files Eric Nelson
2014-02-28 21:44 ` Wolfgang Denk
2014-02-28 21:51 ` Eric Nelson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox