merge mainline into arm

This commit is contained in:
Vladimir 'phcoder' Serbinenko 2013-05-11 10:24:24 +02:00
commit 8e71d87482
490 changed files with 29659 additions and 8612 deletions

View file

@ -74,8 +74,8 @@ This edition documents version @value{VERSION}.
@menu
* Getting the source code::
* Finding your way around::
* Coding style::
* Finding your way around::
* Contributing Changes::
* Porting::
* Error Handling::
@ -948,8 +948,8 @@ driver manager works are not included here.
@menu
* Video API::
* Bitmap API::
* Example usage of Video API::
* Bitmap API::
@end menu
@node Video API
@ -1394,8 +1394,8 @@ grub_video_blit_glyph (&glyph, color, 0, 0);
@node Bitmap API
@section Bitmap API
@itemize
@subsection grub_video_bitmap_create
@itemize
@item Prototype:
@example
grub_err_t grub_video_bitmap_create (struct grub_video_bitmap **bitmap, unsigned int width, unsigned int height, enum grub_video_blit_format blit_format)

View file

@ -1290,9 +1290,8 @@ As @samp{GRUB_CMDLINE_LINUX}, but for GNU Mach.
@item GRUB_CMDLINE_XEN
@itemx GRUB_CMDLINE_XEN_DEFAULT
The values of these options are appended to the values of
@samp{GRUB_CMDLINE_LINUX} and @samp{GRUB_CMDLINE_LINUX_DEFAULT} for Linux
and Xen menu entries.
The values of these options are passed to Xen hypervisor Xen menu entries,
for all respectively normal entries.
@item GRUB_CMDLINE_LINUX_XEN_REPLACE
@item GRUB_CMDLINE_LINUX_XEN_REPLACE_DEFAULT
@ -2135,37 +2134,52 @@ this should be changed both in the prefix and in any references to the
device name in the configuration file.
GRUB provides several environment variables which may be used to inspect or
change the behaviour of the PXE device:
change the behaviour of the PXE device. In the following description
@var{<interface>} is placeholder for the name of network interface (platform
dependent):
@table @samp
@item net_pxe_ip
The IP address of this machine. Read-only.
@item net_@var{<interface>}_ip
The network interface's IP address. Read-only.
@item net_pxe_mac
@item net_@var{<interface>}_mac
The network interface's MAC address. Read-only.
@item net_pxe_hostname
@item net_@var{<interface>}_hostname
The client host name provided by DHCP. Read-only.
@item net_pxe_domain
@item net_@var{<interface>}_domain
The client domain name provided by DHCP. Read-only.
@item net_pxe_rootpath
@item net_@var{<interface>}_rootpath
The path to the client's root disk provided by DHCP. Read-only.
@item net_pxe_extensionspath
@item net_@var{<interface>}_extensionspath
The path to additional DHCP vendor extensions provided by DHCP. Read-only.
@item net_pxe_boot_file
@item net_@var{<interface>}_boot_file
The boot file name provided by DHCP. Read-only.
@item net_pxe_dhcp_server_name
@item net_@var{<interface>}_dhcp_server_name
The name of the DHCP server responsible for these boot parameters.
Read-only.
@item net_default_interface
Initially set to name of network interface that was used to load grub.
Read-write, although setting it affects only interpretation of
@samp{net_default_ip} and @samp{net_default_mac}
@item net_default_ip
The IP address of default interface. Read-only. This is alias for the
@samp{net_$@{net_default_interface@}_ip}.
@item net_default_mac
The default interface's MAC address. Read-only. This is alias for the
@samp{net_$@{net_default_interface@}_mac}.
@item net_default_server
The default server. Read-write, although setting this is only useful
before opening a network device.
The default server used by network drives (@pxref{Device syntax}). Read-write,
although setting this is only useful before opening a network device.
@end table
@ -2517,8 +2531,10 @@ of the partition when installing GRUB).
(hd0,1,3)
@end example
If you enabled the network support, the special drives @samp{(tftp)},
@samp{(http)} and so on ars also available.
If you enabled the network support, the special drives
@code{(@var{protocol}[,@var{server}])} are also available. Supported protocols
are @samp{http} and @samp{tftp}. If @var{server} is omitted, value of
environment variable @samp{net_default_server} is used.
Before using the network drive, you must initialize the network.
@xref{Network}, for more information.
@ -2736,14 +2752,18 @@ These variables have special meaning to GRUB.
* locale_dir::
* menu_color_highlight::
* menu_color_normal::
* net_pxe_boot_file::
* net_pxe_dhcp_server_name::
* net_pxe_domain::
* net_pxe_extensionspath::
* net_pxe_hostname::
* net_pxe_ip::
* net_pxe_mac::
* net_pxe_rootpath::
* net_@var{<interface>}_boot_file::
* net_@var{<interface>}_dhcp_server_name::
* net_@var{<interface>}_domain::
* net_@var{<interface>}_extensionspath::
* net_@var{<interface>}_hostname::
* net_@var{<interface>}_ip::
* net_@var{<interface>}_mac::
* net_@var{<interface>}_rootpath::
* net_default_interface::
* net_default_ip::
* net_default_mac::
* net_default_server::
* pager::
* prefix::
* pxe_blksize::
@ -3010,50 +3030,74 @@ variable changes those colors. For the available color names,
The default is the value of @samp{color_normal} (@pxref{color_normal}).
@node net_pxe_boot_file
@subsection net_pxe_boot_file
@node net_@var{<interface>}_boot_file
@subsection net_@var{<interface>}_boot_file
@xref{Network}.
@node net_pxe_dhcp_server_name
@subsection net_pxe_dhcp_server_name
@node net_@var{<interface>}_dhcp_server_name
@subsection net_@var{<interface>}_dhcp_server_name
@xref{Network}.
@node net_pxe_domain
@subsection net_pxe_domain
@node net_@var{<interface>}_domain
@subsection net_@var{<interface>}_domain
@xref{Network}.
@node net_pxe_extensionspath
@subsection net_pxe_extensionspath
@node net_@var{<interface>}_extensionspath
@subsection net_@var{<interface>}_extensionspath
@xref{Network}.
@node net_pxe_hostname
@subsection net_pxe_hostname
@node net_@var{<interface>}_hostname
@subsection net_@var{<interface>}_hostname
@xref{Network}.
@node net_pxe_ip
@subsection net_pxe_ip
@node net_@var{<interface>}_ip
@subsection net_@var{<interface>}_ip
@xref{Network}.
@node net_pxe_mac
@subsection net_pxe_mac
@node net_@var{<interface>}_mac
@subsection net_@var{<interface>}_mac
@xref{Network}.
@node net_pxe_rootpath
@subsection net_pxe_rootpath
@node net_@var{<interface>}_rootpath
@subsection net_@var{<interface>}_rootpath
@xref{Network}.
@node net_default_interface
@subsection net_default_interface
@xref{Network}.
@node net_default_ip
@subsection net_default_ip
@xref{Network}.
@node net_default_mac
@subsection net_default_mac
@xref{Network}.
@node net_default_server
@subsection net_default_server
@xref{Network}.
@ -3413,6 +3457,7 @@ you forget a command, you can run the command @command{help}
* lsfonts:: List loaded fonts
* lsmod:: Show loaded modules
* md5sum:: Compute or check MD5 hash
* nativedisk:: Switch to native disk drivers
* normal:: Enter normal mode
* normal_exit:: Exit from normal mode
* parttool:: Modify partition table entries
@ -4048,6 +4093,17 @@ Alias for @code{hashsum --hash md5 arg @dots{}}. See command @command{hashsum}
@end deffn
@node nativedisk
@subsection nativedisk
@deffn Command nativedisk
Switch from firmware disk drivers to native ones.
Really useful only on platforms where both
firmware and native disk drives are available.
Currently i386-pc, i386-efi, i386-ieee1275 and
x86_64-efi.
@end deffn
@node normal
@subsection normal
@ -4599,26 +4655,35 @@ On normalized ZFS subvolumes filenames out of normalisation are inaccessible.
@chapter Output terminal
Firmware output console ``console'' on ARC and IEEE1275 are limited to ASCII.
BIOS firmware console and VGA text are limited to ASCII and some pseudographics.
None of above mentioned is appropriate for displaying international and any
unsupported character is replaced with question mark except pseudographics
which we attempt to approximate with ASCII. EFI console on the other hand
nominally supports UTF-16 but actual language coverage depends on firmware and
may be very limited. The encoding used on serial can be chosen with
@command{terminfo} as either ASCII, UTF-8 or ``visual UTF-8''. Last one is
against the specification but results in correct rendering of right-to-left
on some readers which don't have own bidi implementation. When using gfxterm
or gfxmenu GRUB itself is responsible for rendering the text. In this case
GRUB is limited by loaded fonts. If fonts contain all required characters
then bidirectional text, cursive variants and combining marks other than
enclosing, half (e.g. left half tilde or combining overline) and double ones.
Ligatures aren't supported though. This should cover European, Middle Eastern
(if you don't mind lack of lam-alif ligature in Arabic) and East Asian scripts.
Notable unsupported scripts are Brahmic family and derived as well as
Mongolian, Tifinagh, Korean Jamo (precomposed characters have no problem)
and tonal writing (2e5-2e9). GRUB also ignores deprecated (as specified
in Unicode) characters (e.g. tags). GRUB also doesn't handle so called
``annotation characters'' If you can complete either of
which we attempt to approximate with ASCII.
EFI console on the other hand nominally supports UTF-16 but actual language
coverage depends on firmware and may be very limited.
The encoding used on serial can be chosen with @command{terminfo} as
either ASCII, UTF-8 or ``visual UTF-8''. Last one is against the specification
but results in correct rendering of right-to-left on some readers which don't
have own bidi implementation.
On emu GRUB checks if charset is UTF-8 and uses it if so and uses ASCII
otherwise.
When using gfxterm or gfxmenu GRUB itself is responsible for rendering the
text. In this case GRUB is limited by loaded fonts. If fonts contain all
required characters then bidirectional text, cursive variants and combining
marks other than enclosing, half (e.g. left half tilde or combining overline)
and double ones. Ligatures aren't supported though. This should cover European,
Middle Eastern (if you don't mind lack of lam-alif ligature in Arabic) and
East Asian scripts. Notable unsupported scripts are Brahmic family and
derived as well as Mongolian, Tifinagh, Korean Jamo (precomposed characters
have no problem) and tonal writing (2e5-2e9). GRUB also ignores deprecated
(as specified in Unicode) characters (e.g. tags). GRUB also doesn't handle so
called ``annotation characters'' If you can complete either of
two lists or, better, propose a patch to improve rendering, please contact
developer team.
@ -4742,8 +4807,7 @@ 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.
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
@ -4760,9 +4824,6 @@ 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.
@ -4843,7 +4904,7 @@ and mips-qemu_mips can use only memory up to first hole.
@multitable @columnfractions .20 .20 .20 .20 .20
@item @tab MIPS qemu @tab emu
@item video @tab no @tab yes
@item console charset @tab CP437 @tab ASCII
@item console charset @tab CP437 @tab Unicode (*)
@item network @tab no @tab yes
@item ATA/AHCI @tab yes @tab no
@item AT keyboard @tab yes @tab no
@ -4873,6 +4934,7 @@ Information retrieval:
@item mips-arc: lsdev
@item efi: lsefisystab, lssal, lsefimmap
@item i386-pc: lsapm
@item i386-coreboot: lscoreboot, coreboot_boottime
@item acpi-enabled (i386-pc, i386-coreboot, i386-multiboot, *-efi): lsacpi
@end itemize
@ -4908,10 +4970,10 @@ X86 support is summarised in the following table. ``Yes'' means that the kernel
@item Plan9 @tab yes @tab no (1)
@item Freedos @tab yes @tab no (1)
@item FreeBSD bootloader @tab yes @tab crashes (1)
@item 32-bit kFreeBSD @tab yes @tab crashes (2,6)
@item 64-bit kFreeBSD @tab yes @tab crashes (2,6)
@item 32-bit kFreeBSD @tab yes @tab crashes (5)
@item 64-bit kFreeBSD @tab yes @tab crashes (5)
@item 32-bit kNetBSD @tab yes @tab crashes (1)
@item 64-bit kNetBSD @tab yes @tab crashes (2)
@item 64-bit kNetBSD @tab yes @tab crashes
@item 32-bit kOpenBSD @tab yes @tab yes
@item 64-bit kOpenBSD @tab yes @tab yes
@item Multiboot @tab yes @tab yes
@ -4922,9 +4984,9 @@ X86 support is summarised in the following table. ``Yes'' means that the kernel
@item 64-bit Linux (modern protocol) @tab yes @tab yes
@item 32-bit XNU @tab yes @tab ?
@item 64-bit XNU @tab yes @tab ?
@item 32-bit EFI chainloader @tab no (3) @tab no (3)
@item 64-bit EFI chainloader @tab no (3) @tab no (3)
@item Appleloader @tab no (3) @tab no (3)
@item 32-bit EFI chainloader @tab no (2) @tab no (2)
@item 64-bit EFI chainloader @tab no (2) @tab no (2)
@item Appleloader @tab no (2) @tab no (2)
@end multitable
@multitable @columnfractions .50 .22 .22
@ -4934,8 +4996,8 @@ X86 support is summarised in the following table. ``Yes'' means that the kernel
@item Plan9 @tab no (1) @tab no (1)
@item FreeDOS @tab no (1) @tab no (1)
@item FreeBSD bootloader @tab crashes (1) @tab crashes (1)
@item 32-bit kFreeBSD @tab crashes (6) @tab crashes (6)
@item 64-bit kFreeBSD @tab crashes (6) @tab crashes (6)
@item 32-bit kFreeBSD @tab crashes (5) @tab crashes (5)
@item 64-bit kFreeBSD @tab crashes (5) @tab crashes (5)
@item 32-bit kNetBSD @tab crashes (1) @tab crashes (1)
@item 64-bit kNetBSD @tab yes @tab yes
@item 32-bit kOpenBSD @tab yes @tab yes
@ -4948,9 +5010,9 @@ X86 support is summarised in the following table. ``Yes'' means that the kernel
@item 64-bit Linux (modern protocol) @tab yes @tab yes
@item 32-bit XNU @tab ? @tab ?
@item 64-bit XNU @tab ? @tab ?
@item 32-bit EFI chainloader @tab no (3) @tab no (3)
@item 64-bit EFI chainloader @tab no (3) @tab no (3)
@item Appleloader @tab no (3) @tab no (3)
@item 32-bit EFI chainloader @tab no (2) @tab no (2)
@item 64-bit EFI chainloader @tab no (2) @tab no (2)
@item Appleloader @tab no (2) @tab no (2)
@end multitable
@multitable @columnfractions .50 .22 .22
@ -4973,9 +5035,9 @@ X86 support is summarised in the following table. ``Yes'' means that the kernel
@item 32-bit Linux (modern protocol) @tab yes @tab yes
@item 64-bit Linux (modern protocol) @tab yes @tab yes
@item 32-bit XNU @tab yes @tab yes
@item 64-bit XNU @tab yes (5) @tab yes
@item 32-bit EFI chainloader @tab yes @tab no (4)
@item 64-bit EFI chainloader @tab no (4) @tab yes
@item 64-bit XNU @tab yes (4) @tab yes
@item 32-bit EFI chainloader @tab yes @tab no (3)
@item 64-bit EFI chainloader @tab no (3) @tab yes
@item Appleloader @tab yes @tab yes
@end multitable
@ -4986,8 +5048,8 @@ X86 support is summarised in the following table. ``Yes'' means that the kernel
@item Plan9 @tab no (1)
@item FreeDOS @tab no (1)
@item FreeBSD bootloader @tab crashes (1)
@item 32-bit kFreeBSD @tab crashes (6)
@item 64-bit kFreeBSD @tab crashes (6)
@item 32-bit kFreeBSD @tab crashes (5)
@item 64-bit kFreeBSD @tab crashes (5)
@item 32-bit kNetBSD @tab crashes (1)
@item 64-bit kNetBSD @tab ?
@item 32-bit kOpenBSD @tab ?
@ -5000,14 +5062,13 @@ X86 support is summarised in the following table. ``Yes'' means that the kernel
@item 64-bit Linux (modern protocol) @tab ?
@item 32-bit XNU @tab ?
@item 64-bit XNU @tab ?
@item 32-bit EFI chainloader @tab no (3)
@item 64-bit EFI chainloader @tab no (3)
@item Appleloader @tab no (3)
@item 32-bit EFI chainloader @tab no (2)
@item 64-bit EFI chainloader @tab no (2)
@item Appleloader @tab no (2)
@end multitable
@enumerate
@item Requires BIOS
@item Crashes because the memory at 0x0-0x1000 isn't available
@item EFI only
@item 32-bit and 64-bit EFI have different structures and work in different CPU modes so it's not possible to chainload 32-bit bootloader on 64-bit platform and vice-versa
@item Some modules may need to be disabled

View file

@ -0,0 +1,4 @@
[NAME]
grub-glue-efi \- generate a fat binary for EFI
[DESCRIPTION]
grub-glue-efi processes ia32 and amd64 EFI images and glues them according to Apple format.

View file

@ -0,0 +1,3 @@
[NAME]
grub-render-label \- generate a .disk_label for Apple Macs.