diff options
-rw-r--r-- | src/arch/i386/lib/cbfs_and_run.c | 8 | ||||
-rw-r--r-- | src/cpu/amd/car/copy_and_run.c | 2 | ||||
-rw-r--r-- | src/cpu/x86/car/copy_and_run.c | 8 | ||||
-rw-r--r-- | src/devices/Kconfig | 113 | ||||
-rw-r--r-- | src/include/boot/coreboot_tables.h | 52 | ||||
-rw-r--r-- | src/include/cbfs.h | 2 | ||||
-rw-r--r-- | src/lib/jpeg.c | 10 | ||||
-rw-r--r-- | src/lib/jpeg.h | 10 |
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 */ /* |