summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorYinghai Lu <yinghailu@gmail.com>2005-01-14 21:54:16 +0000
committerYinghai Lu <yinghailu@gmail.com>2005-01-14 21:54:16 +0000
commit688238a50c61993db8667552cdae624e73310239 (patch)
tree83900b5d768037f6f76b16b873a764ae398af767 /src
parent8e51b8a3723c4ef47da1eceee23ca845b6ce002f (diff)
downloadcoreboot-688238a50c61993db8667552cdae624e73310239.tar.xz
CONFIG_PCI_ROM_RUN
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@1874 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src')
-rw-r--r--src/config/Options.lb6
-rw-r--r--src/console/vga_console.c24
2 files changed, 24 insertions, 6 deletions
diff --git a/src/config/Options.lb b/src/config/Options.lb
index 5e262e32b0..e472b49da9 100644
--- a/src/config/Options.lb
+++ b/src/config/Options.lb
@@ -763,6 +763,12 @@ define AGP_APERTURE_SIZE
comment "AGP graphics virtual memory aperture size"
end
+define CONFIG_PCI_ROM_RUN
+ default 0
+ export always
+ comment "Init PCI device option rom"
+end
+
###############################################
# Board specific options
###############################################
diff --git a/src/console/vga_console.c b/src/console/vga_console.c
index 8dcbe07db1..0e0b17af85 100644
--- a/src/console/vga_console.c
+++ b/src/console/vga_console.c
@@ -10,11 +10,15 @@
#include <pc80/vga.h>
#include <console/console.h>
-void beep(int ms);
+//extern void beep(int ms);
static char *vidmem; /* The video buffer, should be replaced by symbol in ldscript.ld */
int vga_line, vga_col;
+extern int vga_inited; // it will be changed in pci_rom.c
+
+static int vga_console_inited = 0;
+
#define VIDBUFFER 0xB8000;
static void memsetw(void *s, int c, unsigned int n)
@@ -29,7 +33,6 @@ static void memsetw(void *s, int c, unsigned int n)
static void vga_init(void)
{
-
// these are globals
vga_line = 0;
vga_col = 0;
@@ -56,6 +59,15 @@ static void vga_scroll(void)
static void vga_tx_byte(unsigned char byte)
{
+ if (!vga_inited) {
+ return;
+ }
+
+ if(!vga_console_inited) {
+ vga_init();
+ vga_console_inited = 1;
+ }
+
if (byte == '\n') {
vga_line++;
vga_col = 0;
@@ -71,8 +83,8 @@ static void vga_tx_byte(unsigned char byte)
} else if (byte == '\a') {
//beep
- beep(500);
-
+// beep(500);
+ ;
} else {
vidmem[((vga_col + (vga_line *COLS)) * 2)] = byte;
vidmem[((vga_col + (vga_line *COLS)) * 2) +1] = VGA_ATTR_CLR_WHT;
@@ -94,8 +106,8 @@ static void vga_tx_byte(unsigned char byte)
write_crtc((vga_col + (vga_line *COLS)) & 0x0ff, CRTC_CURSOR_LO);
}
-struct console_driver {
- .init = vga_init,
+static struct console_driver vga_console __console ={
+ .init = 0,
.tx_byte = vga_tx_byte,
.rx_byte = 0,
.tst_byte = 0,