On 2020-06-22 13:40, Tom Rini wrote: > On Mon, Jun 22, 2020 at 01:02:16PM -0700, ron minnich wrote: > >> The other thing you ought to consider fixing: >> initrd is documented as follows: >> >> initrd= [BOOT] Specify the location of the initial ramdisk >> >> for bootloaders only. >> >> UEFI consumes initrd from the command line as well. As ARM servers >> increasingly use UEFI, there may be situations in which the initrd >> option doesn't make its way to the kernel? I don't know, UEFI is such >> a black box to me. But I've seen this "initrd consumption" happen. >> >> Based on docs, and the growing use of bootloaders that are happy to >> consume initrd= and not pass it to the kernel, you might be better off >> trying to move to the new command line option anyway. >> >> IOW, this comment may not be what people want to see, but ... it might >> also be right. Or possibly changed to: >> >> /* >> * The initrd keyword is in use today on ARM, PowerPC, and MIPS. >> * It is also reserved for use by bootloaders such as UEFI and may >> * be consumed by them and not passed on to the kernel. >> * The documentation also shows it as reserved for bootloaders. >> * It is advised to move to the initrdmem= option whereever possible. >> */ > > Fair warning, one of the other hats I wear is the chief custodian of the > U-Boot project. > > Note that on most architectures in modern times the device tree is used > to pass in initrd type information and "initrd=" on the command line is > quite legacy. > > But what do you mean UEFI "consumes" initrd= ? It's quite expected that > when you configure grub/syslinux/systemd-boot/whatever via extlinux.conf > or similar with "initrd /some/file" something reasonable happens to > read that in to memory and pass along the location to Linux (which can > vary from arch to arch, when not using device tree). I guess looking at > Documentation/x86/boot.rst is where treating initrd= as a file that > should be handled and ramdisk_image / ramdisk_size set came from. I do > wonder what happens in the case of ARM/ARM64 + UEFI without device tree. >
UEFI plus the in-kernel UEFI stub is, in some ways, a "bootloader" in the traditional sense. It is totally fair that we should update the documentation with this as a different case, though, because it is part of the kernel tree and so the kernel now has partial ownership of the namespace. I suggest "STUB" for "in-kernel firmware stub" for this purpose; no need to restrict it to a specific firmware for the purpose of namespace reservation. -hpa