diff --git a/src/Makefile.housekeeping b/src/Makefile.housekeeping index 6bd73672..1b6f092b 100644 --- a/src/Makefile.housekeeping +++ b/src/Makefile.housekeeping @@ -1005,7 +1005,7 @@ TGT_LD_ENTRY = _$(TGT_PREFIX)_start # --defsym pci_vendor=0x1186 --defsym pci_device=0x1300") # TGT_LD_FLAGS = $(foreach SYM,$(TGT_LD_ENTRY) $(TGT_LD_DRIVERS) \ - $(TGT_LD_DEVLIST) obj_config,\ + $(TGT_LD_DEVLIST) obj_config obj_config_$(PLATFORM),\ -u $(SYM) --defsym check_$(SYM)=$(SYM) ) \ $(patsubst %,--defsym %,$(TGT_LD_IDS)) \ -e $(TGT_LD_ENTRY) diff --git a/src/arch/i386/interface/pcbios/vesafb.c b/src/arch/i386/interface/pcbios/vesafb.c index 6d2c1bca..50e48585 100644 --- a/src/arch/i386/interface/pcbios/vesafb.c +++ b/src/arch/i386/interface/pcbios/vesafb.c @@ -60,7 +60,13 @@ struct console_driver bios_console __attribute__ (( weak )); #define EIO_VBE( code ) \ EUNIQ ( EINFO_EIO, (code), EIO_FAILED, EIO_HARDWARE, EIO_MODE ) -/* Set default console usage if applicable */ +/* Set default console usage if applicable + * + * We accept either CONSOLE_FRAMEBUFFER or CONSOLE_VESAFB. + */ +#if ( defined ( CONSOLE_FRAMEBUFFER ) && ! defined ( CONSOLE_VESAFB ) ) +#define CONSOLE_VESAFB CONSOLE_FRAMEBUFFER +#endif #if ! ( defined ( CONSOLE_VESAFB ) && CONSOLE_EXPLICIT ( CONSOLE_VESAFB ) ) #undef CONSOLE_VESAFB #define CONSOLE_VESAFB ( CONSOLE_USAGE_ALL & ~CONSOLE_USAGE_LOG ) diff --git a/src/config/config.c b/src/config/config.c index 1dd912c1..6f9e66cd 100644 --- a/src/config/config.c +++ b/src/config/config.c @@ -51,9 +51,6 @@ PROVIDE_REQUIRING_SYMBOL(); * */ -#ifdef CONSOLE_PCBIOS -REQUIRE_OBJECT ( bios_console ); -#endif #ifdef CONSOLE_SERIAL REQUIRE_OBJECT ( serial ); #endif @@ -81,12 +78,6 @@ REQUIRE_OBJECT ( vmconsole ); #ifdef CONSOLE_DEBUGCON REQUIRE_OBJECT ( debugcon ); #endif -#ifdef CONSOLE_VESAFB -REQUIRE_OBJECT ( vesafb ); -#endif -#ifdef CONSOLE_INT13 -REQUIRE_OBJECT ( int13con ); -#endif /* * Drag in all requested network protocols diff --git a/src/config/config_efi.c b/src/config/config_efi.c new file mode 100644 index 00000000..ece6eaa3 --- /dev/null +++ b/src/config/config_efi.c @@ -0,0 +1,41 @@ +/* + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + * 02110-1301, USA. + * + * You can also choose to distribute this program under the terms of + * the Unmodified Binary Distribution Licence (as given in the file + * COPYING.UBDL), provided that you have satisfied its requirements. + */ + +FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); + +#include + +/** @file + * + * EFI-specific configuration options + * + */ + +PROVIDE_REQUIRING_SYMBOL(); + +/* + * Drag in all requested console types + * + */ + +#ifdef CONSOLE_EFI +REQUIRE_OBJECT ( efi_console ); +#endif diff --git a/src/config/config_linux.c b/src/config/config_linux.c new file mode 100644 index 00000000..71eeff9e --- /dev/null +++ b/src/config/config_linux.c @@ -0,0 +1,41 @@ +/* + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + * 02110-1301, USA. + * + * You can also choose to distribute this program under the terms of + * the Unmodified Binary Distribution Licence (as given in the file + * COPYING.UBDL), provided that you have satisfied its requirements. + */ + +FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); + +#include + +/** @file + * + * Linux-specific configuration options + * + */ + +PROVIDE_REQUIRING_SYMBOL(); + +/* + * Drag in all requested console types + * + */ + +#ifdef CONSOLE_LINUX +REQUIRE_OBJECT ( linux_console ); +#endif diff --git a/src/config/config_pcbios.c b/src/config/config_pcbios.c new file mode 100644 index 00000000..698c68a8 --- /dev/null +++ b/src/config/config_pcbios.c @@ -0,0 +1,50 @@ +/* + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + * 02110-1301, USA. + * + * You can also choose to distribute this program under the terms of + * the Unmodified Binary Distribution Licence (as given in the file + * COPYING.UBDL), provided that you have satisfied its requirements. + */ + +FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); + +#include + +/** @file + * + * BIOS-specific configuration options + * + */ + +PROVIDE_REQUIRING_SYMBOL(); + +/* + * Drag in all requested console types + * + */ + +#ifdef CONSOLE_PCBIOS +REQUIRE_OBJECT ( bios_console ); +#endif +#ifdef CONSOLE_VESAFB +REQUIRE_OBJECT ( vesafb ); +#endif +#ifdef CONSOLE_FRAMEBUFFER +REQUIRE_OBJECT ( vesafb ); +#endif +#ifdef CONSOLE_INT13 +REQUIRE_OBJECT ( int13con ); +#endif diff --git a/src/config/console.h b/src/config/console.h index d1d50452..9f770d09 100644 --- a/src/config/console.h +++ b/src/config/console.h @@ -35,7 +35,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); */ //#define CONSOLE_SERIAL /* Serial port console */ -//#define CONSOLE_VESAFB /* VESA framebuffer console */ +//#define CONSOLE_FRAMEBUFFER /* Graphical framebuffer console */ //#define CONSOLE_SYSLOG /* Syslog console */ //#define CONSOLE_SYSLOGS /* Encrypted syslog console */ //#define CONSOLE_VMWARE /* VMware logfile console */