Peter Jones
9e5f70174e
Use EFI_SIMPLE_TEXT_INPUT_EX to support key combinations.
2015-10-25 16:36:28 +01:00
Andrei Borzenkov
f348aee7b3
efinet: enable hardware filters when opening interface
...
Exclusive open on SNP will close all existing protocol instances which
may disable all receive filters on interface. Reinstall them after we
opened protocol exclusively.
Also follow UEFI specification recommendation and stop interfaces when
closing them:
Unexpected system errors, reboots and hangs can occur if an OS is loaded
and the network devices are not Shutdown() and Stopped().
Also by: Mark Salter <msalter@redhat.com>
Closes: 45204
2015-06-16 19:52:45 +03:00
Andrei Borzenkov
7b386b7031
efidisk: move device path helpers in core for efinet
2015-05-07 20:37:16 +03:00
Vladimir Serbinenko
4d6c69536e
Show SATA device path.
2013-12-24 18:10:28 +01:00
Vladimir Serbinenko
da98622662
Declare GRUB_EFI_VENDOR_APPLE_GUID.
2013-12-24 14:14:19 +01:00
Vladimir Serbinenko
fba31b5f69
Dump type and vendor specific data when printing device path.
2013-12-24 14:05:48 +01:00
Leif Lindholm
30a9ab952f
arm64: add EFI Linux loader
...
Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
2013-12-22 18:38:44 +00:00
Vladimir Serbinenko
b3aea1bc26
* include/grub/efi/api.h (GRUB_EFI_ERROR_CODE): Use explicit cast
...
rather than LL suffix.
2013-12-18 07:39:15 +01:00
Vladimir Serbinenko
e8c360ca4a
* include/grub/efi/api.h (PRIxGRUB_EFI_UINTN_T): Remove leftover.
2013-12-18 07:35:51 +01:00
Vladimir Serbinenko
9fdec226ff
* include/grub/efi/api.h: Don't use call wrappers when compiled with
...
mingw or cygwin as API already matches.
2013-12-16 14:39:06 +01:00
Vladimir Serbinenko
3e38c31a4b
* include/grub/efi/api.h: Define (u)intn_t based on pointer size and
...
not on long.
2013-12-16 14:34:23 +01:00
Vladimir Serbinenko
7e47e27bd8
Add gcc_struct to all packed structures when compiling with mingw.
...
Just "packed" doesn't always pack the way we expect.
2013-12-15 14:14:30 +01:00
Vladimir Serbinenko
6dc3337774
Fix definition of grub_efi_hard_drive_device_path. Take care that
...
existing code would work even if by some reason bogus definition is
used by EFI implementations.
2013-12-14 22:04:02 +01:00
Vladimir Serbinenko
607a39f9f0
* include/grub/efi/api.h: Rename protocol and interface to avoid
...
conflict.
2013-12-14 21:48:46 +01:00
Vladimir Serbinenko
316dda716c
Introduce grub_efi_packed_guid and use it where alignment is not
...
guaranteed.
2013-12-11 15:57:08 +01:00
Vladimir Serbinenko
219401b8b9
* include/grub/efi/api.h (grub_efi_device_path): Define length as
...
unaligned u16 rather than u8[2].
2013-12-11 15:54:01 +01:00
Leif Lindholm
15a463d742
ARM 64 port by Leif Lindholm
2013-11-16 20:52:55 +01:00
Vladimir Serbinenko
9f8acdaa5d
* grub-core/term/serial.c: Add option for enabling/disabling
...
RTS/CTS flow control.
2013-11-08 18:20:20 +01:00
Vladimir 'phcoder' Serbinenko
8e71d87482
merge mainline into arm
2013-05-11 10:24:24 +02:00
Vladimir 'phcoder' Serbinenko
bd69257a77
* include/grub/efi/api.h (GRUB_EFI_DEVICE_PATH_LENGTH): Use
...
grub_get_unaligned16 rather than shifts.
2013-04-28 15:15:57 +02:00
Leif Lindholm
389b31cd71
Initial import of Leif's work
2013-04-07 02:41:07 +02:00
Vladimir 'phcoder' Serbinenko
3bfa763c48
* include/grub/efi/api.h (grub_efi_runtime_services): Make vendor_guid
...
a const pointer.
* grub-core/efiemu/runtime/efiemu.c (efiemu_memcpy): Make from a
const pointer.
(efiemu_set_variable): Make vendor_guid a const pointer.
2012-09-12 08:31:05 +02:00
Peter Jones
c5052c81ab
* grub-core/Makefile.core.def (efifwsetup): New module.
...
* grub-core/commands/efi/efifwsetup.c: New file.
* grub-core/kern/efi/efi.c (grub_efi_set_variable): New function
* include/grub/efi/api.h (GRUB_EFI_OS_INDICATIONS_BOOT_TO_FW_UI):
New define.
* include/grub/efi/efi.h (grub_efi_set_variable): New proto.
2012-09-08 09:40:24 +02:00
Vladimir 'phcoder' Serbinenko
7bd29c01f0
New command `lsefi'.
...
* grub-core/Makefile.core.def (lsefi): New module.
* grub-core/commands/efi/lsefi.c: New file.
* include/grub/efi/api.h: Add more GUIDs.
2012-07-22 19:59:06 +02:00
Vladimir 'phcoder' Serbinenko
7da036bbcb
Remove non-functional EFI grub_get_rtc. Put a better fatal message
...
than current grub_get_rtc() not implemented when booted with
coreboot without TSC.
* grub-core/Makefile.am: Exclude efi/time.h from kernel headers.
Add machine/time.h to kernel headers on loongson.
* grub-core/Makefile.core.def (kernel): Remove
kern/generic/rtc_get_time_ms.c on qemu-multiboot-coreboot.
* grub-core/kern/efi/efi.c (grub_rtc_get_time_ms): Removed.
(grub_get_rtc): Likewise.
* grub-core/kern/generic/rtc_get_time_ms.c: Include grub/machine/time.h.
* grub-core/kern/i386/coreboot/init.c (grub_get_rtc): Removed.
* grub-core/kern/i386/pc/init.c: Include grub/machine/init.h.
* grub-core/kern/i386/tsc.c (grub_tsc_init)
[!GRUB_MACHINE_PCBIOS && !GRUB_MACHINE_IEEE1275]: Call grub_fatal
rather than installing known non-working time source.
* grub-core/kern/ieee1275/init.c (grub_get_rtc): Removed.
* grub-core/kern/mips/loongson/init.c: Include grub/machine/time.h.
* include/grub/time.h: Don't include machine/time.h.
* include/grub/efi/time.h: Removed.
* include/grub/i386/efi/time.h: Likewise.
* include/grub/i386/ieee1275/time.h: Likewise.
* include/grub/powerpc/ieee1275/time.h: Likewise.
* include/grub/sparc64/ieee1275/time.h: Likewise.
* include/grub/x86_64/efi/time.h: Likewise.
2012-06-11 20:44:38 +02:00
Vladimir 'phcoder' Serbinenko
9e5e66d15e
Use ITC on IA64 rather than broken routine based on daytime.
...
* grub-core/kern/efi/efi.c (grub_rtc_get_time_ms) [__ia64__]: Remove on
ia64.
(grub_get_rtc) [__ia64__]: Likewise.
* grub-core/kern/ia64/efi/init.c (divisor): New variable.
(get_itc): New function.
(grub_rtc_get_time_ms): Likewise.
(grub_machine_init): Calibrate ITC.
* include/grub/efi/time.h (grub_get_rtc), (GRUB_TICKS_PER_SECOND):
Keep only on non-ia64. Don't export since it's broken and used only
if TSC is unavailable.
2012-06-09 10:52:39 +02:00
Matthew Garrett
4ce776d23e
* grub-core/term/efi/console.c (grub_efi_console_init): Set text mode.
...
(grub_efi_console_fini): Likewise.
* grub-core/video/efi_gop.c (framebuffer): New field offscreen.
(grub_video_gop_fill_mode_info): Rename to ...
(grub_video_gop_fill_real_mode_info): ... this.
(grub_video_gop_fill_mode_info): New function.
(grub_video_gop_setup): Setup double framebuffer.
(grub_video_gop_get_info_and_fini): Use original framebuffer.
Free offscreen.
(grub_video_gop_swap_buffers): Copy framebuffer.
(grub_video_gop_fini): Free offscreen buffer.
* include/grub/efi/graphics_output.h (grub_efi_gop_blt_operation_t):
New enum.
(grub_efi_gop_blt_pixel): New struct.
2012-05-26 13:33:34 +02:00
Vladimir 'phcoder' Serbinenko
1ecd61a47a
Fix efi chainloader on network root.
...
* grub-core/loader/efi/chainloader.c (grub_cmd_chainloader): Handle
network devices.
* grub-core/net/drivers/efi/efinet.c (grub_efinet_get_device_handle):
New function.
2012-03-10 20:41:28 +01:00
Matthew Garrett
3935dde2f2
Use EDID on EFI.
...
* grub-core/kern/efi/efi.c (grub_efi_get_variable): New argument
datasize_out.
* grub-core/video/efi_gop.c (check_protocol): Check that GOP has usable
modes. Set gop_handle.
(grub_video_gop_get_edid): New function.
(grub_gop_get_preferred_mode): Likewise.
(grub_video_gop_setup): Use grub_gop_get_preferred_mode.
(grub_video_efi_gop_adapter): Set .get_edid.
* include/grub/efi/edid.h: New file.
* include/grub/efi/efi.h (grub_efi_get_variable): Update proto.
Also-By: Vladimir Serbinenko <phcoder@gmail.com>
2012-03-04 00:48:21 +01:00
Vladimir 'phcoder' Serbinenko
5a0dc6fb2a
* include/grub/efi/api.h (grub_efi_runtime_services): Add missing
...
const qualifier for vendor_guid.
2012-02-27 14:09:09 +01:00
Matthew Garrett
c598862958
* grub-core/kern/efi/efi.c (grub_efi_get_variable): Add new function.
...
* include/grub/efi/efi.h: Likewise.
* include/grub/efi/api.h: Add guid for EFI-specified variables.
* include/grub/charset.h (GRUB_MAX_UTF16_PER_UTF8): New definition.
* grub-core/normal/charset.c (grub_utf8_process): Move from here ...
* include/grub/charset.h (grub_utf8_process): ... to here. Inline.
* grub-core/normal/charset.c (grub_utf8_to_utf16): Move from here ...
* include/grub/charset.h (grub_utf8_to_utf16): ... to here. Inline.
2012-02-27 12:02:57 +01:00
Matthew Garrett
e33f8d692f
* include/grub/efi/pci.h: New file to define EFI PCI protocols.
2012-02-27 11:42:23 +01:00
Vladimir 'phcoder' Serbinenko
a9c7fd1c6c
Implement serial on IEEE1275 and EFI.
...
* docs/grub.texi (Platform-specific limitations): Fix the columen video
on emu. Mention arc and emu as the only platforms without serial
support.
* grub-core/Makefile.core.def (serial): Enable on all terminfomodule and
ieee1275 platforms.
* grub-core/term/efi/serial.c: New file.
* grub-core/term/ieee1275/serial.c: Likewise.
* grub-core/term/serial.c (grub_serial_find): Disable direct port
specification if no ns8250 driver is available.
(grub_cmd_serial): Likewise.
(GRUB_MOD_INIT) [GRUB_MACHINE_IEEE1275]: Init ofserial.
(GRUB_MOD_INIT) [GRUB_MACHINE_EFI]: Init efiserial.
* include/grub/efi/api.h (GRUB_EFI_SERIAL_IO_GUID): New define.
(grub_efi_parity_type_t): New type.
(grub_efi_stop_bits_t): Likewise.
(grub_efi_serial_io_interface): New struct.
* include/grub/serial.h (grub_serial_port): Make 'broken' field
available for all interfaces.
Add EFI and IEEE1275 fields.
(grub_ofserial_init): New proto.
(grub_efiserial_init): Likeiwse.
* util/grub.d/00_header.in: Don't check for the presence of serial
module.
2012-02-26 17:08:11 +01:00
Vladimir 'phcoder' Serbinenko
bd67ad0f70
merge mainline into net
2011-12-15 20:51:35 +01:00
Vladimir 'phcoder' Serbinenko
e739d69885
* include/grub/efi/api.h (grub_efi_memory_descriptor): Add packed
...
attribute as the structure isn't guaranteed to be properly aligned.
(grub_efi_pci_device_path): Likewise.
(grub_efi_pccard_device_path): Likewise.
(grub_efi_memory_mapped_device_path): Likewise. Additionaly explicitly
specify the size of `memory_type'.
(grub_efi_vendor_device_path): Likewise.
(grub_efi_controller_device_path): Likewise.
(grub_efi_acpi_device_path): Likewise.
(grub_efi_expanded_acpi_device_path): Likewise.
(grub_efi_atapi_device_path): Likewise.
(grub_efi_scsi_device_path): Likewise.
(grub_efi_fibre_channel_device_path): Likewise.
(grub_efi_1394_device_path): Likewise.
(grub_efi_usb_device_path): Likewise.
(grub_efi_usb_class_device_path): Likewise.
(grub_efi_i2o_device_path): Likewise.
(grub_efi_mac_address_device_path): Likewise.
(grub_efi_ipv4_device_path): Likewise.
(grub_efi_ipv6_device_path): Likewise.
(grub_efi_infiniband_device_path): Likewise.
(grub_efi_uart_device_path): Likewise.
(grub_efi_vendor_messaging_device_path): Likewise.
(grub_efi_hard_drive_device_path): Likewise.
(grub_efi_cdrom_device_path): Likewise.
(grub_efi_vendor_media_device_path): Likewise.
(grub_efi_file_path_device_path): Likewise.
(grub_efi_protocol_device_path): Likewise.
(grub_efi_piwg_device_path): Likewise.
(grub_efi_bios_device_path): Likewise.
2011-12-14 11:13:14 +01:00
Vladimir 'phcoder' Serbinenko
753ef8c113
* include/grub/efi/memory.h (grub_machine_mmap_iterate):
...
Remove redundant declaration.
(grub_mmap_get_post64): Likewise.
(grub_mmap_get_upper): Likewise.
(grub_mmap_get_lower): Likewise.
2011-12-13 14:47:00 +01:00
Vladimir 'phcoder' Serbinenko
39705fadd7
Replace grub_module_iterate with FOR_MODULES.
...
* grub-core/disk/memdisk.c (GRUB_MOD_INIT): Switched to new interface.
* grub-core/kern/efi/efi.c (grub_arch_modules_addr): Renamed to...
(grub_efi_modules_addr): ...this.
* grub-core/kern/efi/init.c (grub_modbase): New variable.
(grub_efi_init): Set grub_modbase.
* grub-core/kern/emu/main.c (grub_arch_modules_addr): Removed.
(grub_modbase): New variable.
* grub-core/kern/i386/coreboot/init.c (grub_arch_modules_addr): Removed.
(grub_modbase): New variable.
(grub_machine_init): Set grub_modbase.
* grub-core/kern/i386/pc/init.c (grub_arch_modules_addr): Removed.
(grub_modbase): New variable.
(grub_machine_init): Set grub_modbase.
* grub-core/kern/ieee1275/init.c (grub_arch_modules_addr): Removed.
(grub_modbase): New variable.
(grub_machine_init): Set grub_modbase.
* grub-core/kern/main.c (grub_module_iterate): Remove.
(grub_modules_get_end): Use grub_modbase.
(grub_load_modules): Use FOR_MODULES.
(grub_load_config): Likewise.
* grub-core/kern/mips/arc/init.c (grub_arch_modules_addr): Removed.
(grub_modbase): New variable.
(grub_machine_init): Set grub_modbase.
* grub-core/kern/mips/loongson/init.c (grub_arch_modules_addr): Removed.
(grub_modbase): New variable.
(grub_machine_init): Set grub_modbase.
* grub-core/kern/mips/qemu_mips/init.c (grub_arch_modules_addr):
Removed.
(grub_modbase): New variable.
(grub_machine_init): Set grub_modbase.
* include/grub/efi/efi.h (grub_efi_modules_addr): New declaration.
* include/grub/kernel.h (grub_arch_modules_addr): Removed.
(grub_module_iterate): Likewise.
(grub_modbase): New variable declaration.
(FOR_MODULES): New macro.
2011-10-16 15:23:29 +02:00
Vladimir 'phcoder' Serbinenko
eb6a7b9788
Hopefully fix EFI problem. Not tested
2011-10-05 23:33:36 +02:00
Vladimir 'phcoder' Serbinenko
0c51bb63c5
add missing brackets in efi_wrap macroses
2011-07-02 18:57:24 +02:00
Vladimir 'phcoder' Serbinenko
cae730b452
Automatically determine prefix when netbooted on EFI
2011-07-02 16:56:35 +02:00
Vladimir 'phcoder' Serbinenko
9d22909b85
efinet support
2011-06-26 22:42:04 +02:00
Vladimir 'phcoder' Serbinenko
7216a1bff3
Set EFI ticks to 1000Hz simplifying much of the code and avoiding cotsly division
2011-05-08 17:05:47 +02:00
phcoder
bea3358389
First handling of ia64-efi in grub-mkimage
2011-01-03 13:46:36 +01:00
phcoder
c18271ed00
Fix compilation errors
2011-01-03 02:28:14 +01:00
Vladimir 'phcoder' Serbinenko
774b7ca021
merge mainline into gingold3
2010-09-20 12:23:10 +02:00
Vladimir 'phcoder' Serbinenko
a1d84a5e5e
Unify memory types.
...
* grub-core/Makefile.am (KERNEL_HEADER_FILES): Include memory.h.
* grub-core/commands/lsmmap.c (grub_cmd_lsmmap): Output user-readable
types.
* grub-core/kern/i386/multiboot_mmap.c (grub_lower_mem): Removed.
(grub_upper_mem): Likewise.
* grub-core/kern/ieee1275/init.c (grub_upper_mem): Likewise.
* include/grub/memory.h (grub_memory_type_t): New enum.
All users updated.
2010-09-19 00:04:31 +02:00
Vladimir 'phcoder' Serbinenko
df3df23d5c
Reorganise memory map handling
2010-09-04 17:10:10 +02:00
Tristan Gingold
41a331a8d3
* grub-core/commands/efi/lsefimmap.c: New file.
...
* grub-core/Makefile.core.def (lsefimmap): New module.
* include/grub/efi/api.h (PRIxGRUB_EFI_UINTN_T): New definition.
Also-By: Robert Millan <rmh.grub@aybabtu.com>
Also-By: Vladimir Serbinenko <phcoder@gmail.com>
2010-09-01 10:12:41 +02:00
Tristan Gingold
105de6a758
* grub-core/commands/efi/lsefisystab.c: New file.
...
* grub-core/commands/efi/lssal.c: Likewise.
* grub-core/Makefile.core.def (lsacpi): New module.
(lsefisystab): Likewise.
* include/grub/efi/api.h (GRUB_EFI_SAL_TABLE_GUID): New definition.
(GRUB_EFI_HCDP_TABLE_GUID): Likewise.
(grub_efi_sal_system_table): New struct.
(grub_efi_sal_system_table_entrypoint_descriptor): Likewise.
(grub_efi_sal_system_table_memory_descriptor): Likewise.
(grub_efi_sal_system_table_platform_features): Likewise.
(grub_efi_sal_system_table_translation_register_descriptor): Likewise.
(grub_efi_sal_system_table_purge_translation_coherence): Likewise.
(grub_efi_sal_system_table_ap_wakeup): Likewise.
* include/grub/types.h (PRIuGRUB_UINT64_T): New definition.
Also-By: Robert Millan <rmh.grub@aybabtu.com>
Also-By: Vladimir Serbinenko <phcoder@gmail.com>
2010-09-01 02:37:17 +02:00
Vladimir 'phcoder' Serbinenko
2a1d16154d
Merge mainline into newreloc
2010-06-24 21:22:40 +02:00