Next: , Previous: Security, Up: Top


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

ARC platform no serial port is available. EMU has similar limitation.

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.

On platforms not having direct serial support (as indicated in the line serial) you can still redirect firmware console to serial if it allows so.

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.

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.

BIOS Coreboot Multiboot Qemu
video yes yes yes yes
console charset CP437 CP437 CP437 CP437
network yes (*) no no no
ATA/AHCI yes yes yes yes
AT keyboard yes yes yes yes
USB yes yes yes yes
chainloader local yes yes no
cpuid 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

ia32 EFI amd64 EFI ia32 IEEE1275 Itanium
video yes yes no no
console charset Unicode Unicode ASCII Unicode
network yes yes yes yes
ATA/AHCI yes yes yes no
AT keyboard yes yes yes no
USB yes yes yes no
chainloader local local no local
cpuid 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

Loongson sparc64 Powerpc ARC
video yes no yes no
console charset N/A ASCII ASCII ASCII
network no yes (*) yes no
ATA/AHCI yes no no no
AT keyboard yes no no no
USB yes no no no
chainloader yes no no no
cpuid 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

MIPS qemu emu
video no yes
console charset CP437 ASCII
network no yes
ATA/AHCI yes no
AT keyboard yes no
USB N/A yes
chainloader yes no
cpuid no no
hints guess no
PCI no no
badram yes (*) no
compression configurable no
exit no yes