qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v5 4/4] i386: allow to load initrd below 4G for


From: Li Zhijian
Subject: Re: [Qemu-devel] [PATCH v5 4/4] i386: allow to load initrd below 4G for recent linux
Date: Tue, 15 Jan 2019 09:35:09 +0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1

Hi Eduardo


On 1/15/19 01:53, Eduardo Habkost wrote:
+    if (protocol >= 0x20c &&
+        lduw_p(header+0x236) & XLF_CAN_BE_LOADED_ABOVE_4G) {
+        /*
+         * Linux has supported initrd up to 4 GB for a very long time (2007,
+         * long before XLF_CAN_BE_LOADED_ABOVE_4G which was added in 2013),
+         * though it only sets initrd_max to 2 GB to "work around bootloader
+         * bugs". Luckily, QEMU firmware(which does something like bootloader)
+         * has supported this.
+         *
+         * It's believed that if XLF_CAN_BE_LOADED_ABOVE_4G is set, initrd can
+         * be loaded into any address.
+         *
+         * In addition, initrd_max is uint32_t simply because QEMU doesn't
+         * support the 64-bit boot protocol (specifically the ext_ramdisk_image
+         * field).
+         *
+         * Therefore here just limit initrd_max to UINT32_MAX simply as well.
+         *
+         * FIXME: it's possible that linux protocol within [0x208, 0x20c]
+         * supports up to 4G initrd as well.
I don't understand what exactly this FIXME comment is
documenting.  What exactly needs to be fixed?

XLF_CAN_BE_LOADED_ABOVE_4G is one of the indicators, actually as comments said,
linux has supported up to 4 GB initrd since linux-2.26(protocol version 0x208).


I just want to comment that linux with protocol within [0x208, 0x20c] supports 
up to 4 GB initrd as well.

Is documenting with FIXME appropriate?


Thanks






reply via email to

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