From: Michael Zimmermann <sigmaepsilon92@gmail.com>
To: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: "Gao, Liming" <liming.gao@intel.com>,
Yonghong Zhu <yonghong.zhu@intel.com>,
edk2-devel-01 <edk2-devel@lists.01.org>,
Leif Lindholm <leif.lindholm@linaro.org>
Subject: Re: PrePiLib's FwVol.c can't handle padding before volume header
Date: Mon, 11 Dec 2017 08:30:25 +0100 [thread overview]
Message-ID: <CAN9vWDKc4r=D7n0zmYX3cjvNUTZ-ZwpPNydbdG+AZPR_LHLvHw@mail.gmail.com> (raw)
In-Reply-To: <CAKv+Gu8_Gu276s2_Ufh_TjR19jtEQhuuj=wHJDr0Fmy4WXi+Zw@mail.gmail.com>
without the big file at the end it looks very similar:
00000000 c4 cc 4a 17 00 00 00 00 00 00 00 00 00 00 00 00 |..J.............|
00000010 00 00 00 00 78 e5 8c 8c 3d 8a 1c 4f 99 35 89 61 |....x...=..O.5.a|
00000020 85 c3 2d d3 c0 cc 4a 00 00 00 00 00 5f 46 56 48 |..-...J....._FVH|
00000030 ff fe 04 00 48 00 f1 fd 60 00 00 02 33 2b 01 00 |....H...`...3+..|
00000040 40 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff |@...............|
00000050 ff ff ff ff ff ff ff ff ff ff ff ff f4 aa f0 00 |................|
00000060 2c 00 00 f8 bd 1d f5 8f 56 b8 cb 4a b8 59 85 36 |,.......V..J.Y.6|
00000070 d8 92 ed 3a 14 00 00 00 ff ff ff ff e7 0e 51 fc |...:..........Q.|
00000080 dc ff d4 11 bd 41 00 80 c7 3c 88 81 e6 aa 02 00 |.....A...<......|
00000090 8c 00 00 f8 74 00 00 19 57 72 cf 80 ab 87 f9 47 |....t...Wr.....G|
with the big file (when it's broken) it looks like this:
00000000 ff ff ff 17 08 cd 03 01 00 00 00 00 00 00 00 00 |................|
00000010 00 00 00 00 00 00 00 00 78 e5 8c 8c 3d 8a 1c 4f |........x...=..O|
00000020 99 35 89 61 85 c3 2d d3 00 cd 03 01 00 00 00 00 |.5.a..-.........|
00000030 5f 46 56 48 ff fe 04 00 48 00 f4 18 60 00 00 02 |_FVH....H...`...|
00000040 34 0f 04 00 40 00 00 00 00 00 00 00 00 00 00 00 |4...@...........|
00000050 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
00000060 f4 aa f0 00 2c 00 00 f8 bd 1d f5 8f 56 b8 cb 4a |....,.......V..J|
00000070 b8 59 85 36 d8 92 ed 3a 14 00 00 00 ff ff ff ff |.Y.6...:........|
00000080 e7 0e 51 fc dc ff d4 11 bd 41 00 80 c7 3c 88 81 |..Q......A...<..|
00000090 e6 aa 02 00 8c 00 00 f8 74 00 00 19 57 72 cf 80 |........t...Wr..|
While looking for the header format and checking what these ff's mean
I found that this is a EFI_COMMON_SECTION_HEADER2 which is used
because the max size of EFI_COMMON_SECTION_HEADER is 0xFFFFFF.
MdeModulePkg's FwVol.c also seems to have some code for handling v2 sections.
I'll send a patch to fix this in a bit.
On Mon, Dec 11, 2017 at 12:08 AM, Ard Biesheuvel
<ard.biesheuvel@linaro.org> wrote:
> On 10 December 2017 at 22:18, Michael Zimmermann
> <sigmaepsilon92@gmail.com> wrote:
>> Exactly. If I shift the pointer by 4 bytes from within PrePiLib the device
>> boots just fine.
>>
>> I'm not sure if the size is the root cause but right now it only happens
>> when adding a ~15mb binary efi to the end of fvmain.
>>
>
> It appears so.
>
> So it would be good to check where the disparity originates.
>
> The Ffs section containing the compressed FV looks like this for ArmVirtQemu
>
> $ hexdump -C 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792SEC1.1fv.sec |head
>
> 00000000 84 a8 48 17 00 00 00 00 00 00 00 00 00 00 00 00 |..H.............|
> 00000010 00 00 00 00 78 e5 8c 8c 3d 8a 1c 4f 99 35 89 61 |....x...=..O.5.a|
> 00000020 85 c3 2d d3 80 a8 48 00 00 00 00 00 5f 46 56 48 |..-...H....._FVH|
> 00000030 ff fe 04 00 48 00 24 2b 00 00 00 02 a2 22 01 00 |....H.$+....."..|
> 00000040 40 00 00 00 00 00 00 00 00 00 00 00 7f cb a2 d6 |@...............|
> 00000050 18 6a 2f 4e b4 3b 99 20 a7 33 70 0a 4d aa 05 00 |.j/N.;. .3p.M...|
> 00000060 30 c0 01 f8 04 c0 01 10 4d 5a 00 00 00 00 00 00 |0.......MZ......|
> 00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
> *
> 000000a0 00 00 00 00 58 0e 00 00 00 00 00 00 00 00 00 00 |....X...........|
>
> Could you compare with your build?
prev parent reply other threads:[~2017-12-11 7:25 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-10 20:58 PrePiLib's FwVol.c can't handle padding before volume header Michael Zimmermann
2017-12-10 21:22 ` Ard Biesheuvel
2017-12-10 21:33 ` Ard Biesheuvel
2017-12-10 21:45 ` Michael Zimmermann
2017-12-10 21:49 ` Ard Biesheuvel
2017-12-10 21:58 ` Michael Zimmermann
2017-12-10 22:13 ` Ard Biesheuvel
[not found] ` <CAN9vWDK5MmyvinRXx5XQoNTnGi90rgDCFDqdGBk1t-QZ=NqNQg@mail.gmail.com>
[not found] ` <CAN9vWDLKTRjZ88uyiD0x8__Fm9y1Zx1W1z+Si9T9-REQFSeZXQ@mail.gmail.com>
[not found] ` <CAN9vWDKKKaCGL9nRnqVWR8T60ABpCP7tH723EjXaHfc2bWsa1A@mail.gmail.com>
[not found] ` <CAN9vWDJWshkMbfkBSc2pgyqWqWfc8QsfQT7pUM=Zx6VLx_5qZg@mail.gmail.com>
2017-12-10 22:18 ` Michael Zimmermann
2017-12-10 23:08 ` Ard Biesheuvel
2017-12-11 7:30 ` Michael Zimmermann [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAN9vWDKc4r=D7n0zmYX3cjvNUTZ-ZwpPNydbdG+AZPR_LHLvHw@mail.gmail.com' \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox