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