grub2: Platform limitations

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