Commit Graph

120 Commits

Author SHA1 Message Date
Vladimir 'phcoder' Serbinenko aa1af9bbda Allow IEEE1275 ports on path even if it wasn't detected automatically.
Needed on OpenBIOS due to incomplete device tree.
2013-04-14 17:01:31 +02:00
Vladimir 'phcoder' Serbinenko bbdd6305db Handle Japanese special keys.
Reported by: Hiroyuki YAMAMORI.
	Codes supplied by: Hiroyuki YAMAMORI.
2013-04-12 22:26:38 +02:00
Andrey Borzenkov ca53deb88f * grub-core/term/i386/pc/console.c: Fix cursor moving algorithm. 2013-04-08 19:51:33 +02:00
Vladimir 'phcoder' Serbinenko db8ff59f61 * grub-core/term/i386/pc/console.c (grub_console_getwh): Decrease
reported width by one to compensate for curesor algorithm problem.
2013-04-03 15:21:51 +02:00
Vladimir 'phcoder' Serbinenko d975e8d59c * grub-core/term/at_keyboard.c: Increase robustness on coreboot
and qemu.
2013-03-23 16:54:36 +01:00
Vladimir 'phcoder' Serbinenko cc19857a2a New commands cbmemc, lscoreboot, coreboot_boottime to inspect
coreboot tables content. Support for cbmemc.
2013-03-20 17:13:31 +01:00
Vladimir 'phcoder' Serbinenko e5a2dd7b55 remove get_endpoint_descriptor and change all functions needing
descriptor to just receive it as argument rather than endpoint
	address.
2013-03-19 11:19:36 +01:00
Vladimir 'phcoder' Serbinenko f6b58fe538 * grub-core/term/terminfo.c (grub_terminfo_cls): Issue an explicit
gotoxy to 0,0.
2013-03-05 20:00:51 +01:00
Vladimir 'phcoder' Serbinenko 6e4146c41e Move to more hookless approach in IEEE1275 devices handling. 2013-03-02 23:51:19 +01:00
Vladimir 'phcoder' Serbinenko 18288f17ac Improve spkmodem reliability by adding a separator between bytes. 2013-01-21 21:05:33 +01:00
Vladimir 'phcoder' Serbinenko bc1369732f Make color variables global instead of it being per-terminal. 2013-01-21 17:53:41 +01:00
Vladimir 'phcoder' Serbinenko 17334a6b6a Rewrite spkmodem to use PIT for timing. Double the speed. 2013-01-17 20:06:52 +01:00
Vladimir 'phcoder' Serbinenko b78d6c32e3 New terminal outputs using serial: morse and spkmodem. 2013-01-16 20:39:54 +01:00
Vladimir 'phcoder' Serbinenko 969b804f2a * grub-core/term/gfxterm.c (grub_virtual_screen_setup): Get font as
argument rather than font name. All users updated.
	(grub_gfxterm_set_window): Likewise.
2012-12-10 16:07:33 +01:00
Vladimir 'phcoder' Serbinenko 7ddffdadea * grub-core/kern/ieee1275/cmain.c (grub_ieee1275_find_options): Set
GRUB_IEEE1275_FLAG_CURSORONOFF_ANSI_BROKEN on mac.
	* grub-core/term/ieee1275/console.c (grub_console_init_lately): Use
	ieee1275-nocursor if GRUB_IEEE1275_FLAG_CURSORONOFF_ANSI_BROKEN is set.
	* grub-core/term/terminfo.c (grub_terminfo_set_current): Add new type
	ieee1275-nocursor.
	* include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): New value
	GRUB_IEEE1275_FLAG_CURSORONOFF_ANSI_BROKEN.
2012-09-18 11:52:19 +02:00
Colin Watson dfd39dbdea * grub-core/term/terminfo.c: Only fix up powerpc key repeat on
IEEE1275 machines.  Fixes powerpc-emu compilation.
* include/grub/terminfo.h: Likewise.
2012-09-14 11:23:36 +01:00
Vladimir 'phcoder' Serbinenko d187a1c3d7 Fix coreboot compilation.
* grub-core/term/i386/pc/vga_text.c (grub_vga_text_init): Rename to ...
	(grub_vga_text_init_real): ... this.
	(grub_vga_text_fini): Rename to ...
	(grub_vga_text_fini_real): ... this.
2012-07-22 16:21:24 +02:00
Vladimir 'phcoder' Serbinenko 4d569e12e3 * grub-core/term/efi/serial.c: Support 1.5 stop bits. 2012-07-02 11:30:04 +02:00
Vladimir 'phcoder' Serbinenko e80fdf7d2e missing file from last commit 2012-06-28 15:36:48 +02:00
Vladimir 'phcoder' Serbinenko c35fc5bd15 Add monochrome text support (mda_text, aka `hercules' in grub-legacy).
* grub-core/Makefile.core.def (mda_text): New module.
	* grub-core/lib/legacy_parse.c (grub_legacy_parse): Support `hercules'.
	* grub-core/term/i386/vga_common.c (grub_console_cur_color): Moved to ..
	* grub-core/term/i386/pc/vga_text.c (cur_color): ... here
	* grub-core/term/i386/pc/console.c (grub_console_cur_color): ... and
	here.
	* grub-core/term/i386/vga_common.c (grub_console_getwh): Moved to ..
	* grub-core/term/i386/pc/vga_text.c (grub_console_getwh): ... here
	* grub-core/term/i386/pc/console.c (grub_console_getwh): ... and
	here.
	* grub-core/term/i386/vga_common.c (grub_console_setcolorstate): Moved
	to ..
	* grub-core/term/i386/pc/vga_text.c (grub_console_setcolorstate):
	... here
	* grub-core/term/i386/pc/console.c (grub_console_setcolorstate): ... and
	here.
	* grub-core/term/i386/vga_common.c: Removed.
	* include/grub/i386/vga_common.h: Likewise.
	* include/grub/vga.h (grub_vga_cr_bw_write): New function.
	(grub_vga_cr_bw_read): Likewise.
	* include/grub/vgaregs.h (GRUB_VGA_IO_CR_BW_INDEX): New enum value.
	(GRUB_VGA_IO_CR_BW_DATA): Likewise.
	* grub-core/term/i386/pc/vga_text.c [MODE_MDA]: Call
	grub_vga_cr_bw_read/grub_vga_cr_bw_write instead of
	grub_vga_cr_read/grub_vga_cr_write.
	(grub_vga_text_setcolorstate) [MODE_MDA]: Ignore color.
2012-06-28 15:27:54 +02:00
Vladimir 'phcoder' Serbinenko 73a68bcb3a * grub-core/term/arc/console.c (grub_console_init_output): Add one since
the value returned by firmware is the maximal position, not diumension.
	(grub_terminfo_output_state): Use a more sane fallback.
2012-06-26 23:34:32 +02:00
Vladimir 'phcoder' Serbinenko 392a603b67 * grub-core/term/terminfo.c (print_terminfo): Print terminal dimensions. 2012-06-26 23:32:00 +02:00
Vladimir 'phcoder' Serbinenko 9f1d654e67 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): New enum value
GRUB_IEEE1275_FLAG_BROKEN_REPEAT.
	* grub-core/kern/ieee1275/cmain.c (grub_ieee1275_find_options): Set
	GRUB_IEEE1275_FLAG_BROKEN_REPEAT on PowerBook3,3.
	* include/grub/terminfo.h (grub_terminfo_input_state) [__powerpc__]:
	New fields last_key and last_key_time.
	* grub-core/term/terminfo.c (grub_terminfo_getkey): Transform
	extended key-esc into extended key-extended key.
2012-06-20 22:19:26 +02:00
Vladimir 'phcoder' Serbinenko cbe0b4efdb * grub-core/term/ieee1275/console.c (grub_console_fini): Don't
needlessly lose the console.
2012-06-13 01:06:35 +02:00
Vladimir 'phcoder' Serbinenko f695e99a75 * grub-core/term/ieee1275/serial.c (do_real_config): Fix cast to fix
compilation error on sparc64.
2012-06-09 10:55:02 +02:00
Vladimir 'phcoder' Serbinenko 61c42af084 ESCC serial driver for conducting sautomated tests in qemu.
Not tested on real hardware.

	* include/grub/serial.h (grub_serial_port): New field escc_desc.
	* grub-core/term/ieee1275/escc.c: New file.
	* grub-core/Makefile.core.def (escc): New module.
2012-06-08 19:42:59 +02:00
Vladimir 'phcoder' Serbinenko 08fd129137 * grub-core/term/ieee1275/serial.c (do_real_config): Set handle to
invalid on error.
	(serial_hw_fetch): Don't read invalid handle.
	(serial_hw_put): Don't write into invalid handle.
2012-06-08 19:34:57 +02:00
Vladimir 'phcoder' Serbinenko 08dafeeaae Add a 1.5 stop bits value.
* grub-core/term/serial.c (grub_cmd_serial): Handle 1.5.
	* include/grub/serial.h (grub_serial_stop_bits_t): Add
	GRUB_SERIAL_STOP_BITS_1_5.
2012-06-08 19:32:57 +02:00
Vladimir 'phcoder' Serbinenko b1622487a8 * grub-core/term/serial.c (grub_serial_register)
[GRUB_MACHINE_MIPS_QEMU_MIPS]: Don't autostart console in order to bring
	the behaviour in line with x86 platforms.
2012-06-06 12:25:13 +02:00
Vladimir 'phcoder' Serbinenko 5e3535aee7 * grub-core/term/i386/pc/vga_text.c (screen_write_char): Add missing
byte-swap.
	(screen_read_char): Likewise.
	(grub_vga_text_cls): Likewise.
2012-06-06 12:20:08 +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 7086ad524f Remove unjustified hard dependency of normal.mod on gfxterm.
* include/grub/term.h (grub_term_output): New member fullscreen.
	* include/grub/gfxterm.h (grub_gfxterm_fullscreen): Removed.
	* grub-core/term/gfxterm.c (grub_gfxterm_fullscreen): Make static.
	(grub_gfxterm): Set .fullscreen.
	* grub-core/normal/menu.c (menu_init): Use fullscreen.
	* grub-core/gfxmenu/gfxmenu.c (GRUB_MOD_INIT): Likewise.
2012-05-21 22:17:11 +02:00
Vladimir 'phcoder' Serbinenko bc95c8c0e1 * grub-core/term/ieee1275/console.c (grub_console_dimensions): Use 80x24
geometry on serial consoles.
2012-04-26 20:51:06 +02:00
Vladimir 'phcoder' Serbinenko 147fbcab72 * grub-core/term/terminfo.c (grub_terminfo_readkey): Increase timeout
because of network consoles.
2012-04-26 18:57:22 +02:00
Vladimir 'phcoder' Serbinenko 0f42c8898f * grub-core/term/terminfo.c (grub_terminfo_getkey): Fix incorrect queue
handling.
2012-04-26 18:55:39 +02:00
Vladimir 'phcoder' Serbinenko 0ae4f0bddb * grub-core/commands/i386/pc/play.c: Improve TRANSLATORS comments.
* grub-core/commands/regexp.c: Likewise.
	* grub-core/loader/i386/linux.c: Likewise.
	* grub-core/partmap/msdos.c: Likewise.
	* grub-core/script/execute.c: Likewise.
	* grub-core/term/gfxterm.c: Likewise.
2012-03-11 23:36:35 +01:00
Vladimir 'phcoder' Serbinenko bb51c6c647 * grub-core/commands/acpi.c: Add TRANSLATORS comments.
* grub-core/commands/gptsync.c: Likewise.
	* grub-core/commands/hashsum.c: Likewise.
	* grub-core/commands/i386/pc/sendkey.c: Likewise.
	* grub-core/commands/legacycfg.c: Likewise.
	* grub-core/io/gzio.c: Likewise.
	* grub-core/net/net.c: Likewise.
	* grub-core/term/gfxterm.c: Likewise.
	* grub-core/term/terminfo.c: Likewise.
	* grub-core/tests/test_blockarg.c: Likewise.
	* grub-core/video/video.c: Likewise.
	* util/grub-install.in: Likewise.
	* util/grub-mkfont.c: Likewise.
2012-03-06 14:11:10 +01:00
Vladimir 'phcoder' Serbinenko ef292a8775 * grub-core/net/http.c: Add TRANSLATORS comments.
* grub-core/normal/cmdline.c: Likewise.
	* grub-core/normal/misc.c: Likewise.
	* grub-core/partmap/msdos.c: Likewise.
	* grub-core/parttool/msdospart.c: Likewise.
	* grub-core/script/execute.c: Likewise.
	* grub-core/script/main.c: Likewise.
	* grub-core/term/terminfo.c: Likewise.
	* grub-core/video/bitmap.c: Likewise.
	* util/grub-install.in: Likewise.
	* util/grub-mkimage.c: Likewise.
	* util/grub-mklayout.c: Likewise.
	* util/grub-setup.c: Likewise.
2012-03-05 16:42:26 +01:00
Vladimir 'phcoder' Serbinenko e7d2559bc1 * grub-core/commands/i386/pc/drivemap.c: Add TRANSLATORS comments.
* grub-core/commands/lsmmap.c: Likewise.
	* grub-core/commands/minicmd.c: Likewise.
	* grub-core/commands/mips/loongson/lsspd.c: Likewise.
	* grub-core/commands/regexp.c: Likewise.
	* grub-core/gdb/gdb.c: Likewise.
	* grub-core/term/gfxterm.c: Likewise.
	* util/grub-mkconfig.in: Likewise.
	* util/grub-mkfont.c: Likewise.
	* util/grub-mklayout.c: Likewise.
	* util/grub-mknetdir.in: Likewise.
	* util/grub-mkrescue.in: Likewise.
	* util/grub.d/30_os-prober.in: Likewise.
2012-03-02 15:09:10 +01:00
Vladimir 'phcoder' Serbinenko 7acd2ae1fb * grub-core/term/i386/pc/vga_text.c: Add GRUB_MACHINE_MULTIBOOT to
grub_vga_text_init/grub_vga_text_fini.
2012-02-28 11:12:32 +01:00
Vladimir 'phcoder' Serbinenko 036985b8ce Remove grub_{modname}_init and grub_{modname}_fini. They should never
be used directly if it's really a module and GRUB_MOD_INIT shouldn't
	be used on non-modules.

	* grub-core/commands/boot.c (GRUB_MOD_INIT) [LOONGSON || QEMU_MIPS]:
	Rename to grub_boot_init.
	(GRUB_MOD_FINI) [LOONGSON || QEMU_MIPS]: Rename to grub_boot_fini.
	* grub-core/commands/keylayouts.c (GRUB_MOD_INIT)
	[LOONGSON || QEMU_MIPS]: Rename to grub_keylayouts_init.
	(GRUB_MOD_FINI) [LOONGSON || QEMU_MIPS]: Rename to grub_keylayouts_fini.
	* grub-core/font/font_cmd.c (GRUB_MOD_INIT)
	[LOONGSON || QEMU_MIPS]: Rename to grub_font_init.
	(GRUB_MOD_FINI) [LOONGSON || QEMU_MIPS]: Rename to grub_font_fini.
	* grub-core/kern/mips/loongson/init.c: Replace explicit protos with
	includes.
	(grub_machine_init): Remove empty inits.
	* grub-core/kern/mips/qemu_mips/init.c: Replace explicit protos with
	includes.
	(grub_machine_init): Remove empty inits.
	* grub-core/term/arc/console.c: Remove explicit proto.
	* grub-core/term/at_keyboard.c (GRUB_MOD_INIT)
	[LOONGSON || QEMU_MIPS]: Rename to grub_at_keyboard_init.
	(GRUB_MOD_FINI) [LOONGSON || QEMU_MIPS]: Rename to
	grub_at_keyboard_fini.
	* grub-core/term/gfxterm.c (GRUB_MOD_INIT)
	[LOONGSON || QEMU_MIPS]: Rename to grub_gfxterm_init.
	(GRUB_MOD_FINI) [LOONGSON || QEMU_MIPS]: Rename to
	grub_gfxterm_fini.
	* grub-core/term/i386/pc/vga_text.c (GRUB_MOD_INIT)
	[LOONGSON || QEMU_MIPS]: Rename to grub_vgatext_init.
	(GRUB_MOD_FINI) [LOONGSON || QEMU_MIPS]: Rename to
	grub_vgatext_fini.
	* grub-core/term/ieee1275/console.c: Remove explicit proto.
	* grub-core/term/serial.c (GRUB_MOD_INIT)
	[LOONGSON || QEMU_MIPS]: Rename to grub_serial_init.
	(GRUB_MOD_FINI) [LOONGSON || QEMU_MIPS]: Rename to
	grub_serial_fini.
	* grub-core/term/terminfo.c (GRUB_MOD_INIT)
	[LOONGSON || QEMU_MIPS]: Rename to grub_terminfo_init.
	(GRUB_MOD_FINI) [LOONGSON || QEMU_MIPS]: Rename to
	grub_terminfo_fini.
	* grub-core/video/bitmap.c (GRUB_MOD_INIT): Removed.
	(GRUB_MOD_FINI): Likewise.
	* grub-core/video/radeon_fuloong2e.c (GRUB_MOD_INIT)
	[LOONGSON]: Rename to grub_video_radeon_fuloong2e_init.
	(GRUB_MOD_FINI) [LOONGSON]: Rename to
	grub_video_radeon_fuloong2e_fini.
	* grub-core/video/sis315pro.c (GRUB_MOD_INIT)
	[LOONGSON]: Rename to grub_video_sis315pro_init.
	(GRUB_MOD_FINI) [LOONGSON]: Rename to
	grub_video_sis315pro_fini.
	* grub-core/video/sm712.c (GRUB_MOD_INIT)
	[LOONGSON]: Rename to grub_video_sm712_init.
	(GRUB_MOD_FINI) [LOONGSON]: Rename to
	grub_video_sm712_fini.
	* include/grub/at_keyboard.h (grub_at_keyboard_init): New proto.
	(grub_at_keyboard_fini): Likewise.
	* include/grub/dl.h (GRUB_MOD_INIT) [!GRUB_UTIL && !EMU]:
	Don't declare grub_{modname}_init.
	(GRUB_MOD_INIT) [!GRUB_UTIL && !EMU]: Don't declare grub_{modname}_fini.
	* include/grub/keyboard_layouts.h (grub_keylayouts_init) [!EMU]:
	New proto.
	(grub_keylayouts_fini) [!EMU]: Likewise.
	* include/grub/serial.h (grub_serial_init) [!EMU]:
	New proto.
	(grub_serial_fini) [!EMU]: Likewise.
	* include/grub/terminfo.h (grub_terminfo_init) [!EMU]:
	New proto.
	(grub_terminfo_fini) [!EMU]: Likewise.
	* include/grub/video.h (grub_font_init) [!EMU]:
	New proto.
	(grub_font_fini) [!EMU]: Likewise.
	(grub_gfxterm_init) [!EMU]: Likewise.
	(grub_gfxterm_fini) [!EMU]: Likewise.
	(grub_video_sm712_init) [!EMU]: Likewise.
	(grub_video_sm712_fini) [!EMU]: Likewise.
	(grub_video_sis315pro_init) [!EMU]: Likewise.
	(grub_video_sis315pro_fini) [!EMU]: Likewise.
	(grub_video_radeon_fuloong2e_init) [!EMU]: Likewise.
	(grub_video_radeon_fuloong2e_fini) [!EMU]: Likewise.
2012-02-27 00:28:45 +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 b500bcfeed * grub-core/kern/emu/console.c: Move to ...
* grub-core/term/emu/console.c: ...here.
	(grub_ncurses_getkey): Fix return value if no key is detected.
2012-02-18 19:51:43 +01:00
Vladimir 'phcoder' Serbinenko dded554099 * grub-core/term/terminfo.c (grub_terminfo_output_unregister):
Mark calling with invalid term as GRUB_ERR_BUG.
2012-02-12 19:16:49 +01:00
Vladimir 'phcoder' Serbinenko d61386e21d Improve string. Gettextize. 2012-02-12 15:25:25 +01:00
Vladimir 'phcoder' Serbinenko 9c4b5c13e6 Improve gettext support. Stylistic fixes and error handling fixes while
on it.
2012-02-08 19:26:01 +01:00
Vladimir 'phcoder' Serbinenko ca8c0baf25 Rename ofconsole to console.
* grub-core/commands/terminal.c (handle_command): Handle ofconsole
	as sysnonym to console.
	* grub-core/term/ieee1275/ofconsole.c: Renamed to ..
	* grub-core/term/ieee1275/console.c: ... this. All users updated.
	Rename grub_ofconsole_ to grub_console_. All users updated
	(grub_console_term_output): Rename "ofconsole" to "console".
	* grub-core/term/terminfo.c (grub_cmd_terminfo): Handle "ofconsole"
	as "console".
2012-01-29 17:01:27 +01:00
Vladimir 'phcoder' Serbinenko 87edb8940a Replace single-linked with double-linked lists. It results in more
compact and more efficient code.

	* grub-core/kern/list.c (grub_list_push): Moved from here ...
	* include/grub/list.h (grub_list_push): ... to here. Set prev.
	(grub_list_remove): Moved from here ...
	* include/grub/list.h (grub_list_remove): ... here. Use and set prev.
	(grub_prio_list_insert): Set prev.
	* include/grub/list.h (grub_list): Add prev. All users updated.
2012-01-24 13:31:12 +01:00
Vladimir 'phcoder' Serbinenko 3049237440 Fix handling of wide characters in gfxterm.
* grub-core/term/gfxterm.c (grub_colored_char): Remove width and index.
	(clear_char): Likewise.
	(paint_char): Skip code == NULL chars.
	(grub_gfxterm_putchar): Set code = NULL on "shadowed" positions.
2012-01-12 22:16:07 +01:00
Vladimir 'phcoder' Serbinenko 63fa8ef94e * grub-core/term/gfxterm.c (grub_gfxterm_putchar): Don't set values
outside of range.
2011-12-25 16:15:01 +01:00