grubby/boot/grub/persistent/docs/19_platform_limitations

149 lines
7.3 KiB
Text
Raw Normal View History

2020-11-13 00:50:49 +01:00
19 Platform limitations
***********************
GRUB2 is designed to be portable and is actually ported across
platforms. We try to keep all platforms at the level. Unfortunately
some platforms are better supported than others. This is detailed in
current and 2 following sections.
ARC platform is unable to change datetime (firmware doesn't seem to
provide a function for it). EMU has similar limitation.
On EMU platform no serial port is available.
Console charset refers only to firmware-assisted console. gfxterm is
always Unicode (see Internationalisation section for its limitations).
Serial is configurable to UTF-8 or ASCII (see Internationalisation). In
case of qemu and coreboot ports the refered console is vga_text.
Loongson always uses gfxterm.
Most limited one is ASCII. CP437 provides additionally
pseudographics. GRUB2 doesn't use any language characters from CP437 as
often CP437 is replaced by national encoding compatible only in
pseudographics. Unicode is the most versatile charset which supports
many languages. However the actual console may be much more limited
depending on firmware
On BIOS network is supported only if the image is loaded through
network. On sparc64 GRUB is unable to determine which server it was
booted from.
Direct ATA/AHCI support allows to circumvent various firmware
limitations but isn't needed for normal operation except on baremetal
ports.
AT keyboard support allows keyboard layout remapping and support for
keys not available through firmware. It isn't needed for normal
operation except baremetal ports.
Speaker allows morse and spkmodem communication.
USB support provides benefits similar to ATA (for USB disks) or AT
(for USB keyboards). In addition it allows USBserial.
Chainloading refers to the ability to load another bootloader through
the same protocol
Hints allow faster disk discovery by already knowing in advance which
is the disk in question. On some platforms hints are correct unless you
move the disk between boots. On other platforms it's just an educated
guess. Note that hint failure results in just reduced performance, not
a failure
BadRAM is the ability to mark some of the RAM as "bad". Note: due to
protocol limitations mips-loongson (with Linux protocol) and
mips-qemu_mips can use only memory up to first hole.
Bootlocation is ability of GRUB to automatically detect where it
boots from. "disk" means the detection is limited to detecting the disk
with partition being discovered on install time. "partition" means that
disk and partiton can be automatically discovered. "file" means that
boot image file name as well as disk and partition can be discovered.
For consistency default install ignores partition and relies solely on
disk detection. If no bootlocation discovery is available or boot and
grub-root disks are different, UUID is used instead. On ARC if no
device to install to is specified, UUID is used instead as well.
BIOS Coreboot Multiboot Qemu
video yes yes yes yes
console CP437 CP437 CP437 CP437
charset
network yes (*) no no no
ATA/AHCI yes yes yes yes
AT keyboard yes yes yes yes
Speaker yes yes yes yes
USB yes yes yes yes
chainloader local yes yes no
cpuid partial partial partial partial
rdmsr partial partial partial partial
wrmsr partial partial partial partial
hints guess guess guess guess
PCI yes yes yes yes
badram yes yes yes yes
compression always pointless no no
exit yes no no no
bootlocation disk no no no
ia32 EFI amd64 EFI ia32 Itanium
IEEE1275
video yes yes no no
console Unicode Unicode ASCII Unicode
charset
network yes yes yes yes
ATA/AHCI yes yes yes no
AT keyboard yes yes yes no
Speaker yes yes yes no
USB yes yes yes no
chainloader local local no local
cpuid partial partial partial no
rdmsr partial partial partial no
wrmsr partial partial partial no
hints guess guess good guess
PCI yes yes yes no
badram yes yes no yes
compression no no no no
exit yes yes yes yes
bootlocation file file file, file
ignored
Loongson sparc64 Powerpc ARC
video yes no yes no
console N/A ASCII ASCII ASCII
charset
network no yes (*) yes no
ATA/AHCI yes no no no
AT keyboard yes no no no
Speaker no no no no
USB yes no no no
chainloader yes no no no
cpuid no no no no
rdmsr no no no no
wrmsr no no no no
hints good good good no
PCI yes no no no
badram yes (*) no no no
compression configurable no no configurable
exit no yes yes yes
bootlocation no partition file file (*)
MIPS qemu emu xen
video no yes no
console CP437 Unicode (*) ASCII
charset
network no yes no
ATA/AHCI yes no no
AT keyboard yes no no
Speaker no no no
USB N/A yes no
chainloader yes no yes
cpuid no no yes
rdmsr no no yes
wrmsr no no yes
hints guess no no
PCI no no no
badram yes (*) no no
compression configurable no no
exit no yes no
bootlocation no file no