qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] hw/arm/boot: Increase compliance with kernel ar


From: Peter Maydell
Subject: Re: [Qemu-devel] [PATCH] hw/arm/boot: Increase compliance with kernel arm64 boot protocol.
Date: Tue, 16 Oct 2018 11:04:43 +0100

On 16 October 2018 at 11:02, Andre Przywara <address@hidden> wrote:
> On Tue, 16 Oct 2018 01:19:35 +0000
> Stewart Hildebrand <address@hidden> wrote:
>
> Hi,
>
> Stewart, thanks a lot for picking this up!
>
>> On Monday, October 15, 2018 6:05 PM, Philippe Mathieu-Daudé wrote:
>> > Hi Stewart,
>> >
>> > On 15/10/2018 23:26, Stewart Hildebrand wrote:
>> > > +            /* For the virt board, we write our startup
>> > > "bootloader" at the very
>> > > +             * bottom of RAM, so that bit can't be used for the
>> > > image. To avoid
>> > > +             * overlap in case the image requests to be loaded
>> > > at an offset
>> > > +             * smaller than our bootloader, we increment the
>> > > load offset to the
>> > > +             * next 2MB.
>> > > +             */
>> > > +            if (kernel_load_offset < FIXUP_MAX) {
>> >
>> > I don't understand how this is related to FIXUP_MAX...
>>
>> You're right, my apologies, it's not directly related.
>> write_bootloader() calculates the size of the bootloader like so:
>>     len = 0;
>>     while (insns[len].fixup != FIXUP_TERMINATOR) {
>>         len++;
>>     }
>>
>> The size of the bootloader then would be len * sizeof(uint32_t)
>>
>> It would be nice not to have to repeat that logic in
>> load_aarch64_image(). I'll send out a v2 after I take some time to
>> wrap my head around it...
>
> I wonder if this could be done much easier, since TEXT_OFFSET must
> actually be page aligned. So all we would need is an *upper bound* for
> the bootloader size, as long as that is below 4K we wouldn't even loose
> anything.

Yes, I think it would be fine to just set a max bootloader size of
4K and check against that. (If so, assert() in write_bootloader
that we did stay below the max.)

thanks
-- PMM



reply via email to

[Prev in Thread] Current Thread [Next in Thread]