Date: Fri, 12 Sep 2014 17:32:29 +0000 (UTC) From: Doug Ambrisko <ambrisko@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r271475 - in head/sys/boot: amd64/efi efi/libefi i386/libi386 Message-ID: <201409121732.s8CHWTm5060762@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: ambrisko Date: Fri Sep 12 17:32:28 2014 New Revision: 271475 URL: http://svnweb.freebsd.org/changeset/base/271475 Log: Add support for serial and null console to UEFI boot loader. Modified: head/sys/boot/amd64/efi/bootinfo.c head/sys/boot/amd64/efi/conf.c head/sys/boot/efi/libefi/Makefile head/sys/boot/i386/libi386/comconsole.c Modified: head/sys/boot/amd64/efi/bootinfo.c ============================================================================== --- head/sys/boot/amd64/efi/bootinfo.c Fri Sep 12 17:07:19 2014 (r271474) +++ head/sys/boot/amd64/efi/bootinfo.c Fri Sep 12 17:32:28 2014 (r271475) @@ -60,6 +60,7 @@ bi_getboothowto(char *kargs) { const char *sw; char *opts; + char *console; int howto, i; howto = 0; @@ -70,6 +71,14 @@ bi_getboothowto(char *kargs) howto |= howto_names[i].mask; } + console = getenv("console"); + if (console != NULL) { + if (strcmp(console, "comconsole") == 0) + howto |= RB_SERIAL; + if (strcmp(console, "nullconsole") == 0) + howto |= RB_MUTE; + } + /* Parse kargs */ if (kargs == NULL) return (howto); Modified: head/sys/boot/amd64/efi/conf.c ============================================================================== --- head/sys/boot/amd64/efi/conf.c Fri Sep 12 17:07:19 2014 (r271474) +++ head/sys/boot/amd64/efi/conf.c Fri Sep 12 17:32:28 2014 (r271475) @@ -62,8 +62,12 @@ struct file_format *file_formats[] = { }; extern struct console efi_console; +extern struct console comconsole; +extern struct console nullconsole; struct console *consoles[] = { &efi_console, + &comconsole, + &nullconsole, NULL }; Modified: head/sys/boot/efi/libefi/Makefile ============================================================================== --- head/sys/boot/efi/libefi/Makefile Fri Sep 12 17:07:19 2014 (r271474) +++ head/sys/boot/efi/libefi/Makefile Fri Sep 12 17:32:28 2014 (r271475) @@ -5,6 +5,8 @@ INTERNALLIB= SRCS= delay.c efi_console.c efinet.c efipart.c errno.c handles.c \ libefi.c time.c +.PATH: ${.CURDIR}/../../i386/libi386 +SRCS+= nullconsole.c comconsole.c .if ${MACHINE_ARCH} == "amd64" CFLAGS+= -fPIC @@ -16,6 +18,8 @@ CFLAGS+= -I${.CURDIR}/../../../../lib/li # Pick up the bootstrap header for some interface items CFLAGS+= -I${.CURDIR}/../../common +CFLAGS+= -DNO_PCI + # Suppress warning from clang for FreeBSD %b and %D formats CFLAGS+= -fformat-extensions Modified: head/sys/boot/i386/libi386/comconsole.c ============================================================================== --- head/sys/boot/i386/libi386/comconsole.c Fri Sep 12 17:07:19 2014 (r271474) +++ head/sys/boot/i386/libi386/comconsole.c Fri Sep 12 17:32:28 2014 (r271475) @@ -214,6 +214,9 @@ comc_port_set(struct env_var *ev, int fl static uint32_t comc_parse_pcidev(const char *string) { +#ifdef NO_PCI + return (0); +#else char *p, *p1; uint8_t bus, dev, func, bar; uint32_t locator; @@ -247,11 +250,15 @@ comc_parse_pcidev(const char *string) locator = (bar << 16) | biospci_locator(bus, dev, func); return (locator); +#endif } static int comc_pcidev_handle(uint32_t locator) { +#ifdef NO_PCI + return (CMD_ERROR); +#else char intbuf[64]; uint32_t port; @@ -275,6 +282,7 @@ comc_pcidev_handle(uint32_t locator) comc_locator = locator; return (CMD_OK); +#endif } static int
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201409121732.s8CHWTm5060762>