Add support for serial and null console to UEFI boot loader.
This commit is contained in:
parent
6e582ca2a5
commit
cb8a626055
@ -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);
|
||||
|
@ -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
|
||||
};
|
||||
|
@ -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/libstand
|
||||
# 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
|
||||
|
@ -214,6 +214,9 @@ comc_port_set(struct env_var *ev, int flags, const void *value)
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user