Next: , Previous: , Up: Top   [Contents][Index]


20 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.

All platforms have an artificially GRUB imposed disk size restriction of 1 EiB. In some cases, larger disk sizes can be used, but access will not be allowed beyond 1 EiB.

LUKS2 devices with size larger than 16 EiB are currently not supported. They can not be created as crypto devices by cryptomount, so can not even be partially read from. LUKS have no limitations other than those imposed by the format.

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.

BIOSCorebootMultibootQemu
videoyesyesyesyes
console charsetCP437CP437CP437CP437
networkyes (*)nonono
ATA/AHCIyesyesyesyes
AT keyboardyesyesyesyes
Speakeryesyesyesyes
USByesyesyesyes
chainloaderlocalyesyesno
cpuidpartialpartialpartialpartial
rdmsrpartialpartialpartialpartial
wrmsrpartialpartialpartialpartial
hintsguessguessguessguess
PCIyesyesyesyes
badramyesyesyesyes
compressionalwayspointlessnono
exityesnonono
bootlocationdisknonono
ia32 EFIamd64 EFIia32 IEEE1275Itanium
videoyesyesnono
console charsetUnicodeUnicodeASCIIUnicode
networkyesyesyesyes
ATA/AHCIyesyesyesno
AT keyboardyesyesyesno
Speakeryesyesyesno
USByesyesyesno
chainloaderlocallocalnolocal
cpuidpartialpartialpartialno
rdmsrpartialpartialpartialno
wrmsrpartialpartialpartialno
hintsguessguessgoodguess
PCIyesyesyesno
badramyesyesnoyes
compressionnononono
exityesyesyesyes
bootlocationfilefilefile, ignoredfile
Loongsonsparc64PowerpcARC
videoyesnoyesno
console charsetN/AASCIIASCIIASCII
networknoyes (*)yesno
ATA/AHCIyesnonono
AT keyboardyesnonono
Speakernononono
USByesnonono
chainloaderyesnonono
cpuidnononono
rdmsrnononono
wrmsrnononono
hintsgoodgoodgoodno
PCIyesnonono
badramyes (*)nonono
compressionconfigurablenonoconfigurable
exitnoyesyesyes
bootlocationnopartitionfilefile (*)
MIPS qemuemuxen
videonoyesno
console charsetCP437Unicode (*)ASCII
networknoyesno
ATA/AHCIyesnono
AT keyboardyesnono
Speakernonono
USBN/Ayesno
chainloaderyesnoyes
cpuidnonoyes
rdmsrnonoyes
wrmsrnonoyes
hintsguessnono
PCInonono
badramyes (*)nono
compressionconfigurablenono
exitnoyesno
bootlocationnofileno

Next: , Previous: , Up: Top   [Contents][Index]