summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/arch/i386/lib/cbfs_and_run.c8
-rw-r--r--src/cpu/amd/car/copy_and_run.c2
-rw-r--r--src/cpu/x86/car/copy_and_run.c8
-rw-r--r--src/devices/Kconfig113
-rw-r--r--src/include/boot/coreboot_tables.h52
-rw-r--r--src/include/cbfs.h2
-rw-r--r--src/lib/jpeg.c10
-rw-r--r--src/lib/jpeg.h10
8 files changed, 107 insertions, 98 deletions
diff --git a/src/arch/i386/lib/cbfs_and_run.c b/src/arch/i386/lib/cbfs_and_run.c
index c4e9d4d0ca..a8e11ce108 100644
--- a/src/arch/i386/lib/cbfs_and_run.c
+++ b/src/arch/i386/lib/cbfs_and_run.c
@@ -5,8 +5,7 @@
*
* 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; version 2 of
- * the License.
+ * published by the Free Software Foundation; version 2 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -15,14 +14,13 @@
*
* 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 St, Fifth Floor, Boston,
- * MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include <console/console.h>
#include <cbfs.h>
-void cbfs_and_run_core(char *filename, unsigned ebp)
+void cbfs_and_run_core(const char *filename, unsigned ebp)
{
u8 *dst;
diff --git a/src/cpu/amd/car/copy_and_run.c b/src/cpu/amd/car/copy_and_run.c
index f8ccf17513..74d2da6253 100644
--- a/src/cpu/amd/car/copy_and_run.c
+++ b/src/cpu/amd/car/copy_and_run.c
@@ -3,7 +3,7 @@
2006/05/02 - stepan: move nrv2b to an extra file.
*/
-void cbfs_and_run_core(const char*, unsigned ebp);
+void cbfs_and_run_core(const char *filename, unsigned ebp);
static void copy_and_run(void)
{
diff --git a/src/cpu/x86/car/copy_and_run.c b/src/cpu/x86/car/copy_and_run.c
index 602e77632d..e09aaff5a4 100644
--- a/src/cpu/x86/car/copy_and_run.c
+++ b/src/cpu/x86/car/copy_and_run.c
@@ -7,8 +7,7 @@
*
* 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; version 2 of
- * the License.
+ * published by the Free Software Foundation; version 2 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -17,11 +16,10 @@
*
* 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 St, Fifth Floor, Boston,
- * MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-void cbfs_and_run_core(const char *, unsigned ebp);
+void cbfs_and_run_core(const char *filename, unsigned ebp);
static void copy_and_run(unsigned cpu_reset)
{
diff --git a/src/devices/Kconfig b/src/devices/Kconfig
index 8211bf30f5..08e532d12c 100644
--- a/src/devices/Kconfig
+++ b/src/devices/Kconfig
@@ -59,15 +59,19 @@ config PCI_OPTION_ROM_RUN_REALMODE
(only works on x86/x64 systems)
config PCI_OPTION_ROM_RUN_YABEL
- prompt "Secure Mode"
+ prompt "Secure mode"
bool
help
If you select this option, the x86emu CPU emulator will be used to
execute PCI option ROMs.
- This option prevents option ROMs from doing dirty tricks with the
- system (such as installing SMM modules or hypervisors), but it is also
- significantly slower than the native option ROM initialization method.
+
+ This option prevents option ROMs from doing dirty tricks with the
+ system (such as installing SMM modules or hypervisors), but it is
+ also significantly slower than the native option ROM initialization
+ method.
+
This is the default choice for non-x86 systems.
+
endchoice
# TODO: Describe better, and/or make a "choice" selection for this.
@@ -77,50 +81,65 @@ config YABEL_DEBUG_FLAGS
default 0x0
depends on PCI_OPTION_ROM_RUN_YABEL
help
- Set CONFIG_YABEL_DEBUG_FLAGS is a binary switch that allows you
+ CONFIG_YABEL_DEBUG_FLAGS is a binary switch that allows you
to select the following items to debug. 1=on 0=off. After you
- decide what you want to debug create the binary value, convert to hex
- and set the Option (Ex. CONFIG_YABEL_DEBUG_FLAGS = 0x31FF //Debug All).
+ decide what you want to debug create the binary value, convert to
+ hex and set the option.
- |-DEBUG_JMP - print info about JMP and RETF opcodes from x86emu
- ||-DEBUG_TRACE_X86EMU - print _all_ opcodes that are executed by x86emu (WARNING: this will produce a LOT of output)
+ Example for "debug all":
+ CONFIG_YABEL_DEBUG_FLAGS = 0x31FF
+
+ |-DEBUG_JMP - Print info about JMP and RETF opcodes from x86emu
+ ||-DEBUG_TRACE_X86EMU - Print _all_ opcodes that are executed by
+ || x86emu (WARNING: this will produce a LOT
+ || of output)
|||-Currently unused
||||-Currently unused
|||||-Currently unused
- ||||||-DEBUG_PNP - Print Plug And Play access made by option rom
+ ||||||-DEBUG_PNP - Print Plug And Play accesses made by option ROM
|||||||-DEBUG_DISK - Print Disk I/O related messages, currently unused
- ||||||||-DEBUG_PMM - Print messages related to POST Memory Manager (PMM)
- |||||||||-DEBUG_VBE - Print messages related to VESA BIOS Extension (VBE) functions
- ||||||||||-DEBUG_PRINT_INT10 - let INT10 (i.e. character output) calls print messages to Debug output
+ ||||||||-DEBUG_PMM - Print messages related to POST Memory
+ |||||||| Manager (PMM)
+ |||||||||-DEBUG_VBE - Print messages related to VESA BIOS Extension
+ ||||||||| (VBE) functions
+ ||||||||||-DEBUG_PRINT_INT10 - Let INT10 (i.e. character output)
+ |||||||||| calls print messages to debug output
|||||||||||-DEBUG_INTR - Print messages related to interrupt handling
- ||||||||||||-DEBUG_CHECK_VMEM_ACCESS - Print messages related to accesse to certain areas of the virtual Memory (e.g. BDA (BIOS Data Area) or Interrupt Vectors)
- |||||||||||||-DEBUG_MEM - Print memory access made by option rom (NOTE: this also includes accesses to fetch instructions)
- ||||||||||||||-DEBUG_IO - Print I/O access made by option rom
- 11000111111111 - Max Binary Value, Debug All (WARNING: - This could run for hours)
-
- DEBUG_IO 0x0001
- DEBUG_MEM 0x0002
- DEBUG_CHECK_VMEM_ACCESS 0x0004
- DEBUG_INTR 0x0008
- DEBUG_PRINT_INT10 0x0010
- DEBUG_VBE 0x0020
- DEBUG_PMM 0x0040
- DEBUG_DISK 0x0080
- DEBUG_PNP 0x0100
- DEBUG_TRACE_X86EMU 0x1000
- DEBUG_JMP 0x2000
-
- See debug.h for values 0 is no debug output, 0x31ff is _verbose_.
+ ||||||||||||-DEBUG_CHECK_VMEM_ACCESS - Print messages related to
+ |||||||||||| accesses to certain areas of
+ |||||||||||| the virtual memory (e.g. BDA
+ |||||||||||| (BIOS Data Area) or interrupt
+ |||||||||||| vectors)
+ |||||||||||||-DEBUG_MEM - Print memory accesses made by option ROM
+ ||||||||||||| (NOTE: this also includes accesses to
+ ||||||||||||| fetch instructions)
+ ||||||||||||||-DEBUG_IO - Print I/O accesses made by option ROM
+ 11000111111111 - Maximum binary value, i.e. "debug all"
+ (WARNING: This could run for hours)
+
+ DEBUG_IO 0x0001
+ DEBUG_MEM 0x0002
+ DEBUG_CHECK_VMEM_ACCESS 0x0004
+ DEBUG_INTR 0x0008
+ DEBUG_PRINT_INT10 0x0010
+ DEBUG_VBE 0x0020
+ DEBUG_PMM 0x0040
+ DEBUG_DISK 0x0080
+ DEBUG_PNP 0x0100
+ DEBUG_TRACE_X86EMU 0x1000
+ DEBUG_JMP 0x2000
+
+ See debug.h for values. 0 is no debug output, 0x31ff is _verbose_.
config YABEL_PCI_ACCESS_OTHER_DEVICES
- prompt "Allow option roms to acces other devices"
+ prompt "Allow option ROMs to access other devices"
bool
depends on PCI_OPTION_ROM_RUN_YABEL
help
- Per default, YABEL only allows option roms to access the PCI device
+ Per default, YABEL only allows option ROMs to access the PCI device
that they are associated with. However, this causes trouble for some
- onboard graphics chips whose option rom needs to reconfigure the
- north bridge.
+ onboard graphics chips whose option ROM needs to reconfigure the
+ north bridge.
config YABEL_VIRTMEM_LOCATION
prompt "Location of YABEL's virtual memory"
@@ -132,16 +151,17 @@ config YABEL_VIRTMEM_LOCATION
normally located at 16MB.
config YABEL_DIRECTHW
- prompt "Direct Hardware Access"
+ prompt "Direct hardware access"
bool
depends on PCI_OPTION_ROM_RUN_YABEL
help
YABEL consists of two parts: It uses x86emu for the CPU emulation and
- additionally provides a PC system emulation that filters bad device and
- memory access (such as PCI config space access to other devices than the
- initialized one).
+ additionally provides a PC system emulation that filters bad device
+ and memory access (such as PCI config space access to other devices
+ than the initialized one).
+
When choosing this option, x86emu will pass through all hardware
- accesses to memory and IO devices to the underlying memory and IO
+ accesses to memory and I/O devices to the underlying memory and I/O
addresses. While this option prevents option ROMs from doing dirty
tricks with the CPU (such as installing SMM modules or hypervisors),
they can still access all devices in the system.
@@ -153,8 +173,9 @@ config BOOTSPLASH
depends on PCI_OPTION_ROM_RUN_YABEL
help
This option shows a graphical bootsplash screen. The grapics are
- loaded from the CBFS file bootsplash.jpg
+ loaded from the CBFS file bootsplash.jpg.
+# TODO: Turn this into a "choice".
config FRAMEBUFFER_VESA_MODE
prompt "VESA framebuffer video mode"
hex
@@ -162,7 +183,7 @@ config FRAMEBUFFER_VESA_MODE
depends on BOOTSPLASH
help
This option sets the resolution used for the coreboot framebuffer and
- bootsplash screen. Set to 0x117 for 1024x768x16. A diligent soul will
+ bootsplash screen. Set to 0x117 for 1024x768x16. A diligent soul will
some day make this a "choice".
config COREBOOT_KEEP_FRAMEBUFFER
@@ -171,10 +192,10 @@ config COREBOOT_KEEP_FRAMEBUFFER
depends on BOOTSPLASH
help
This option keeps the framebuffer mode set after coreboot finishes
- execution. If this option is enabled, coreboot will pass a framebuffer
- entry in its coreboot table and the payload will need a framebuffer
- driver. If this option is disabled, coreboot will switch back to
- text mode before handing control to a payload.
+ execution. If this option is enabled, coreboot will pass a
+ framebuffer entry in its coreboot table and the payload will need a
+ framebuffer driver. If this option is disabled, coreboot will switch
+ back to text mode before handing control to a payload.
config CONSOLE_VGA_MULTI
bool
diff --git a/src/include/boot/coreboot_tables.h b/src/include/boot/coreboot_tables.h
index 476a374cb3..cec394e474 100644
--- a/src/include/boot/coreboot_tables.h
+++ b/src/include/boot/coreboot_tables.h
@@ -8,7 +8,7 @@
* is expected to be information that cannot be discovered by
* other means, such as quering the hardware directly.
*
- * All of the information should be Position Independent Data.
+ * All of the information should be Position Independent Data.
* That is it should be safe to relocated any of the information
* without it's meaning/correctnes changing. For table that
* can reasonably be used on multiple architectures the data
@@ -31,8 +31,8 @@
* table entries and be backwards compatible, but it is not required.
*/
-/* Since coreboot is usually compiled 32bit, gcc will align 64bit
- * types to 32bit boundaries. If the coreboot table is dumped on a
+/* Since coreboot is usually compiled 32bit, gcc will align 64bit
+ * types to 32bit boundaries. If the coreboot table is dumped on a
* 64bit system, a uint64_t would be aligned to 64bit boundaries,
* breaking the table format.
*
@@ -50,22 +50,20 @@ struct lb_uint64 {
static inline uint64_t unpack_lb64(struct lb_uint64 value)
{
- uint64_t result;
- result = value.hi;
- result = (result << 32) + value.lo;
- return result;
+ uint64_t result;
+ result = value.hi;
+ result = (result << 32) + value.lo;
+ return result;
}
static inline struct lb_uint64 pack_lb64(uint64_t value)
{
- struct lb_uint64 result;
- result.lo = (value >> 0) & 0xffffffff;
- result.hi = (value >> 32) & 0xffffffff;
- return result;
+ struct lb_uint64 result;
+ result.lo = (value >> 0) & 0xffffffff;
+ result.hi = (value >> 32) & 0xffffffff;
+ return result;
}
-
-
struct lb_header
{
uint8_t signature[4]; /* LBIO */
@@ -178,19 +176,19 @@ struct lb_framebuffer {
uint32_t tag;
uint32_t size;
- uint64_t physical_address;
- uint32_t x_resolution;
- uint32_t y_resolution;
- uint32_t bytes_per_line;
- uint8_t bits_per_pixel;
- uint8_t red_mask_pos;
- uint8_t red_mask_size;
- uint8_t green_mask_pos;
- uint8_t green_mask_size;
- uint8_t blue_mask_pos;
- uint8_t blue_mask_size;
- uint8_t reserved_mask_pos;
- uint8_t reserved_mask_size;
+ uint64_t physical_address;
+ uint32_t x_resolution;
+ uint32_t y_resolution;
+ uint32_t bytes_per_line;
+ uint8_t bits_per_pixel;
+ uint8_t red_mask_pos;
+ uint8_t red_mask_size;
+ uint8_t green_mask_pos;
+ uint8_t green_mask_size;
+ uint8_t blue_mask_pos;
+ uint8_t blue_mask_size;
+ uint8_t reserved_mask_pos;
+ uint8_t reserved_mask_size;
};
/* The following structures are for the cmos definitions table */
@@ -266,6 +264,4 @@ struct cmos_checksum {
#define CHECKSUM_PCBIOS 1
};
-
-
#endif /* COREBOOT_TABLES_H */
diff --git a/src/include/cbfs.h b/src/include/cbfs.h
index a6b2c027b3..38f18a4610 100644
--- a/src/include/cbfs.h
+++ b/src/include/cbfs.h
@@ -169,7 +169,7 @@ struct cbfs_stage *cbfs_find_file(const char *name, int type);
int cbfs_check_magic(struct cbfs_file *file);
struct cbfs_header *cbfs_master_header(void);
struct cbfs_file *cbfs_find(const char *name);
-void cbfs_and_run_core(char* filename, unsigned int ebp);
+void cbfs_and_run_core(const char *filename, unsigned int ebp);
#endif
diff --git a/src/lib/jpeg.c b/src/lib/jpeg.c
index b7c0004708..9de4ac889f 100644
--- a/src/lib/jpeg.c
+++ b/src/lib/jpeg.c
@@ -1,12 +1,11 @@
/*
* This file is part of the coreboot project.
- *
- * Copyright (C) 2001 by Michael Schroeder
+ *
+ * Copyright (C) 2001 Michael Schroeder
*
* 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; version 2 of
- * the License.
+ * published by the Free Software Foundation; version 2 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -15,8 +14,7 @@
*
* 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 St, Fifth Floor, Boston,
- * MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
/*
diff --git a/src/lib/jpeg.h b/src/lib/jpeg.h
index 12e8e9f989..b2f5923217 100644
--- a/src/lib/jpeg.h
+++ b/src/lib/jpeg.h
@@ -1,12 +1,11 @@
/*
* This file is part of the coreboot project.
- *
- * Copyright (C) 2001 by Michael Schroeder
+ *
+ * Copyright (C) 2001 Michael Schroeder
*
* 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; version 2 of
- * the License.
+ * published by the Free Software Foundation; version 2 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -15,8 +14,7 @@
*
* 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 St, Fifth Floor, Boston,
- * MA 02110-1301 USA
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
/*