public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
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?


      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