seabios.git
14 years agoDo garbage collection of unused sections.
Kevin O'Connor [Thu, 11 Jun 2009 01:56:01 +0000 (21:56 -0400)]
Do garbage collection of unused sections.

Implement -ffunction-sections and -fdata-sections in both 32bit and
    16bit code.
Make sure all sections have unique names (even asm and discarded
    sections).
Enhance tools/layoutrom.py script to find all sections reachable from
    exported 16bit code - prune all other sections.
Mark sections with "export" if they can be visible outside of code -
    these sections wont be dropped when pruning unused sections.

14 years agocheckstack.py should not match pushaw on stack usage check.
Kevin O'Connor [Thu, 11 Jun 2009 01:40:26 +0000 (21:40 -0400)]
checkstack.py should not match pushaw on stack usage check.

Tighten regex so that pushaw doesn't confuse parser.

14 years agoTry to check for IDE drive 0 responding to drive 1 commands.
Kevin O'Connor [Thu, 11 Jun 2009 00:33:57 +0000 (20:33 -0400)]
Try to check for IDE drive 0 responding to drive 1 commands.

If the IDE primary drive is responding to secondary drive, it's hard
    to detect if the secondary drive is really present - skip test.

14 years agoVGA: Move direct in/out calls out of vgafb.c.
Kevin O'Connor [Mon, 1 Jun 2009 02:42:04 +0000 (22:42 -0400)]
VGA: Move direct in/out calls out of vgafb.c.

Implement wrapper calls in vgaio.c and use them instead.

14 years agoVGA: Comment and name update.
Kevin O'Connor [Mon, 1 Jun 2009 02:00:20 +0000 (22:00 -0400)]
VGA: Comment and name update.

Remove remaining "biosfn_" prefixes from functions.
Don't use register names as function parameters.
vgafb_read_pixel should return a value (instead of passing in a pointer)

14 years agoVGA: Arrange screen writing functions to minimize stack.
Kevin O'Connor [Mon, 1 Jun 2009 01:15:33 +0000 (21:15 -0400)]
VGA: Arrange screen writing functions to minimize stack.

Pass pointer to cursor position into write_string and write_teletype.
Handle flag processing of write_string in handle_1013.
Implement a tail-recursive scroll_one() function.

14 years agoVGA: Reduce stack usage.
Kevin O'Connor [Mon, 1 Jun 2009 00:46:43 +0000 (20:46 -0400)]
VGA: Reduce stack usage.

Make 'struct carattr' 3 bytes in size - gcc does better with this.
Add 'noinline' directives to some funcs to reduce handle_10 stack usage.

14 years agoVGA: No need to scroll multiple times when writing a tab.
Kevin O'Connor [Mon, 1 Jun 2009 00:43:06 +0000 (20:43 -0400)]
VGA: No need to scroll multiple times when writing a tab.

A tab can only scroll the screen once.
Inline the code from check_scroll into write_teletype.
Also, move row check in write_string to handle_1013.

14 years agoVGA: Further simplify scrolling code.
Kevin O'Connor [Sun, 31 May 2009 19:25:14 +0000 (15:25 -0400)]
VGA: Further simplify scrolling code.

Introduce memcpy_stride and memset_stride functions.
Simplify the moves and fills using src and dest pointers.
Don't nest for loops - just use one loop for copies.

14 years agoVGA: Simplify scrolling implementation.
Kevin O'Connor [Sun, 31 May 2009 05:37:54 +0000 (01:37 -0400)]
VGA: Simplify scrolling implementation.

Check for nblines==0 in calling function.
Eliminate full screen clearing optimization.

14 years agoVGA: Fix bad commit to vgafb.c - missing '}'.
Kevin O'Connor [Sun, 31 May 2009 05:09:30 +0000 (01:09 -0400)]
VGA: Fix bad commit to vgafb.c - missing '}'.

14 years agoVGA: Define clear_screen in terms of memmodel.
Kevin O'Connor [Sun, 31 May 2009 04:53:18 +0000 (00:53 -0400)]
VGA: Define clear_screen in terms of memmodel.

Use vmode_g->memmodel instead of memmodel and svgamode.

14 years agoVGA: Breakup biosfn_scroll.
Kevin O'Connor [Sun, 31 May 2009 04:46:47 +0000 (00:46 -0400)]
VGA: Breakup biosfn_scroll.

Rename biosfn_scroll to vgafb_scroll.
Break function up into per-mode scroll function.
Pass row/col params in a 'struct cursorpos'.
Encode direction as sign in nblines.
Move parameter checking to callers.
Add enhancement to 'attr' for using mode specific default attribute.
Also, make get_cursor_pos local to vga.c.

14 years agoFix typo in irqentryarg declaration.
Kevin O'Connor [Sat, 30 May 2009 07:40:22 +0000 (03:40 -0400)]
Fix typo in irqentryarg declaration.

14 years agoIn register dump, show %esp - not address of regs.
Kevin O'Connor [Thu, 28 May 2009 02:27:10 +0000 (22:27 -0400)]
In register dump, show %esp - not address of regs.

The address of the callers stack can be inferred from the address of
    'regs' - do the math in the dump function.

14 years agoKeep relocated 16bit code so checkstack can use it.
Kevin O'Connor [Thu, 28 May 2009 02:23:33 +0000 (22:23 -0400)]
Keep relocated 16bit code so checkstack can use it.

Make was stripping the relocated 16bit code - keep the unstripped
    16bit code so that checkstack can parse it.

14 years agoVGA: Move cursor setting out of biosfn_write_teletype.
Kevin O'Connor [Tue, 26 May 2009 04:47:32 +0000 (00:47 -0400)]
VGA: Move cursor setting out of biosfn_write_teletype.

Call set_cursor_pos in callers that need it.

14 years agoVGA: Remove recursion from biosfn_write_teletype().
Kevin O'Connor [Tue, 26 May 2009 04:20:40 +0000 (00:20 -0400)]
VGA: Remove recursion from biosfn_write_teletype().

14 years agoVGA: Simplify vgafb_write/read_char.
Kevin O'Connor [Tue, 26 May 2009 04:05:37 +0000 (00:05 -0400)]
VGA: Simplify vgafb_write/read_char.

Pass cursor position into vgafb_write_char and vgafb_read_char.
Don't pass count into vgafb_write_char.
Break text writing into separate function.

14 years agoVGA: Remove vmode_g->class - store info in vmode_g->memmodel.
Kevin O'Connor [Tue, 26 May 2009 03:37:13 +0000 (23:37 -0400)]
VGA: Remove vmode_g->class - store info in vmode_g->memmodel.

14 years agoVGA: Use struct for car/attr/WITH_ATTR.
Kevin O'Connor [Mon, 25 May 2009 15:44:11 +0000 (11:44 -0400)]
VGA: Use struct for car/attr/WITH_ATTR.

The three parameters are used frequently together - define a struct to
    hold them.
Alos, merge biosfn_write_char_attr/_only into one function.

14 years agoVGA: Combine x/y/page into one parameter.
Kevin O'Connor [Mon, 25 May 2009 15:05:18 +0000 (11:05 -0400)]
VGA: Combine x/y/page into one parameter.

These three values are frequently used together - put them in a struct
    and pass the struct around.

14 years agoVGA: Inline biosfn_set_video_mode() into its only caller.
Kevin O'Connor [Mon, 25 May 2009 13:41:07 +0000 (09:41 -0400)]
VGA: Inline biosfn_set_video_mode() into its only caller.

14 years agoVGA: Replace biosfn_load_text_* with vgafb_load_font().
Kevin O'Connor [Mon, 25 May 2009 13:06:50 +0000 (09:06 -0400)]
VGA: Replace biosfn_load_text_* with vgafb_load_font().

The functions font loading functions are nearly identical - replace
    with one common function.

14 years agoVGA: Factor out hardware accesses from biosfn_set_video_mode.
Kevin O'Connor [Mon, 25 May 2009 04:44:29 +0000 (00:44 -0400)]
VGA: Factor out hardware accesses from biosfn_set_video_mode.

Create vgahw_set_mode() that handles low-level vga setup in vgaio.c.
Move screen clearing to new function in vgafb.c.

14 years agoVGA: Minor - improve indentation of palette structs.
Kevin O'Connor [Mon, 25 May 2009 04:12:18 +0000 (00:12 -0400)]
VGA: Minor - improve indentation of palette structs.

14 years agoVGA: Inline several functions in vga.c.
Kevin O'Connor [Mon, 25 May 2009 04:10:35 +0000 (00:10 -0400)]
VGA: Inline several functions in vga.c.

Move some functions directly into their only caller.
Also, fix bug in handle_101210 - don't set ax.

15 years agoAdd delay when changing drive on ide.
Kevin O'Connor [Sun, 24 May 2009 17:55:01 +0000 (13:55 -0400)]
Add delay when changing drive on ide.

Add ndelay(400) when changing drives.

15 years agoEliminate "_code32_" prefix on 32bit symbols referenced from 16bit code.
Kevin O'Connor [Sat, 23 May 2009 22:21:18 +0000 (18:21 -0400)]
Eliminate "_code32_" prefix on 32bit symbols referenced from 16bit code.

Use linking magic to eliminate the need for the _code32_ prefix.

15 years agoPack 16bit code into last part of f-segment.
Kevin O'Connor [Sat, 23 May 2009 21:49:44 +0000 (17:49 -0400)]
Pack 16bit code into last part of f-segment.

Locate 16bit code into the top of the f-segment.  (Before some of the
    16bit code was located just after the 32bit code.)

15 years agoVGA: Define structs for save/restore state calls.
Kevin O'Connor [Fri, 22 May 2009 03:06:08 +0000 (23:06 -0400)]
VGA: Define structs for save/restore state calls.

Define C structs for the state info.
Move hw specific code to vgahw.c.
Also, make sure to set 0x1c in regs->al on state save/restore calls.

15 years agoVGA: Move some ioport accesses from vga.c to vgaio.c.
Kevin O'Connor [Tue, 19 May 2009 03:34:00 +0000 (23:34 -0400)]
VGA: Move some ioport accesses from vga.c to vgaio.c.

Move more hardware port accesses to vgaio.c.

15 years agoVGA: Remove references to 'struct bregs' from vgaio.c code.
Kevin O'Connor [Mon, 18 May 2009 01:19:36 +0000 (21:19 -0400)]
VGA: Remove references to 'struct bregs' from vgaio.c code.

Move the bios interface control to vga.c.
Also, replace "biosfn_" prefix with "vgahw_".

15 years agoVGA: Commit missing change to Makefile.
Kevin O'Connor [Mon, 18 May 2009 01:14:46 +0000 (21:14 -0400)]
VGA: Commit missing change to Makefile.

15 years agoVGA: Extract code from vga.c into new files vgaio.c and vgafb.c.
Kevin O'Connor [Sun, 17 May 2009 22:11:33 +0000 (18:11 -0400)]
VGA: Extract code from vga.c into new files vgaio.c and vgafb.c.

Move hardware IO accessor functions to vgaio.c.
Move framebuffer and font manipulation code to vgafb.c.
Also, have biosfn_write_teletype use biosfn_write_char_attr/only.
Also, breakout set_scan_lines() functionality from biosfn_load_text_X.

15 years agoVGA: Fix DAC loading during mode switch.
Kevin O'Connor [Sun, 17 May 2009 20:16:29 +0000 (16:16 -0400)]
VGA: Fix DAC loading during mode switch.

The total dac size is stored - not the number of entries.

15 years agoVerify ebda segment looks sane before using during resume.
Kevin O'Connor [Sun, 17 May 2009 14:31:34 +0000 (10:31 -0400)]
Verify ebda segment looks sane before using during resume.

15 years agoVGA: Make use of regs->ebp - now that it is present in 'struct bregs'.
Kevin O'Connor [Sun, 17 May 2009 04:07:31 +0000 (00:07 -0400)]
VGA: Make use of regs->ebp - now that it is present in 'struct bregs'.

15 years agoSupport %ebp register in 'struct bregs'.
Kevin O'Connor [Sun, 17 May 2009 03:57:08 +0000 (23:57 -0400)]
Support %ebp register in 'struct bregs'.

Save/restore %ebp on irq entry.
Support saving and restoring %ebp on call16.
Enable display of %ebp in register dumps.

15 years agoDefine unified entry points for irq handlers.
Kevin O'Connor [Sun, 17 May 2009 03:31:27 +0000 (23:31 -0400)]
Define unified entry points for irq handlers.

The irq entry points now push the handler address and jump to a
    function that does parameter setup.  This reduces the code size
    because the entry setup isn't repeated for every handler.

15 years agoVGA: Use GET_IVT macro instead of raw GET_FARVAR.
Kevin O'Connor [Sun, 17 May 2009 01:32:27 +0000 (21:32 -0400)]
VGA: Use GET_IVT macro instead of raw GET_FARVAR.

15 years agoVGA: Add calling stubs for vbe functions.
Kevin O'Connor [Sun, 17 May 2009 01:30:10 +0000 (21:30 -0400)]
VGA: Add calling stubs for vbe functions.

15 years agoVGA: Use segment definitions.
Kevin O'Connor [Sun, 17 May 2009 01:05:02 +0000 (21:05 -0400)]
VGA: Use segment definitions.

Don't hardcode use of 0xc000.
Use definitions for 0xb000,0xb800,0xa000.

15 years agoVGA: Split biosfn_get_cursor_pos function.
Kevin O'Connor [Sat, 16 May 2009 22:00:19 +0000 (18:00 -0400)]
VGA: Split biosfn_get_cursor_pos function.

Create biosfn_get_cursor_pos and biosfn_get_cursor_shape.

15 years agoVGA: Minor - use "_far" postfix on far pointers.
Kevin O'Connor [Sat, 16 May 2009 21:37:23 +0000 (17:37 -0400)]
VGA: Minor - use "_far" postfix on far pointers.

15 years agoVGA: Rework vga_modes[] array to have pointers to other structs.
Kevin O'Connor [Sat, 16 May 2009 21:29:32 +0000 (17:29 -0400)]
VGA: Rework vga_modes[] array to have pointers to other structs.

Prefer using pointers instead of indexes into arrays.

15 years agoVGA: Misc syntax cleanups.
Kevin O'Connor [Sat, 16 May 2009 19:41:23 +0000 (15:41 -0400)]
VGA: Misc syntax cleanups.

Use c99 variable declarations.
Postfix global pointers with "_g" and far pointers with "_far".
Other syntax cleanups.

15 years agoVGA: Minor - use "_g" suffix for global pointers.
Kevin O'Connor [Sat, 16 May 2009 18:55:01 +0000 (14:55 -0400)]
VGA: Minor - use "_g" suffix for global pointers.

15 years agoFlush debugging serial output after every line.
Kevin O'Connor [Sat, 16 May 2009 02:22:12 +0000 (22:22 -0400)]
Flush debugging serial output after every line.

Wait for the serial port to be ready after every debug function.
This fixes an issue with serial port detection.

15 years agoVGA: Add header guard to vgasrc/vgatables.h
Kevin O'Connor [Thu, 14 May 2009 23:29:37 +0000 (19:29 -0400)]
VGA: Add header guard to vgasrc/vgatables.h

15 years agoVGA: Remove unused DEBUG ifdefs.
Kevin O'Connor [Thu, 14 May 2009 23:24:49 +0000 (19:24 -0400)]
VGA: Remove unused DEBUG ifdefs.

15 years agoAdd missing tools/buildrom.py script.
Kevin O'Connor [Thu, 14 May 2009 23:01:39 +0000 (19:01 -0400)]
Add missing tools/buildrom.py script.

15 years agoVGA: memset16_far and memcpy16_far take byte count (not word count).
Kevin O'Connor [Thu, 14 May 2009 02:25:24 +0000 (22:25 -0400)]
VGA: memset16_far and memcpy16_far take byte count (not word count).

15 years agoVGA - turn DEBUG printfs into dprintf calls.
Kevin O'Connor [Thu, 14 May 2009 02:06:16 +0000 (22:06 -0400)]
VGA - turn DEBUG printfs into dprintf calls.

15 years agoAdd tools/checksum.py tool.
Kevin O'Connor [Thu, 14 May 2009 00:55:31 +0000 (20:55 -0400)]
Add tools/checksum.py tool.

15 years agoImprove serial port detection.
Kevin O'Connor [Wed, 13 May 2009 02:59:41 +0000 (22:59 -0400)]
Improve serial port detection.

Add port names for serial port registers.
When detecting serial port, ignore top two bits of IIR register.

15 years agoCleanup vga inb/outb port usages.
Kevin O'Connor [Fri, 8 May 2009 02:00:25 +0000 (22:00 -0400)]
Cleanup vga inb/outb port usages.

Use symbolic names for ports.
Use VGAREG_ACTL_WRITE_DATA instead of VGAREG_ACTL_ADDRESS when writing
     a value to the register.

15 years agoMinor - update vgasrc/vga.c todo list.
Kevin O'Connor [Thu, 7 May 2009 03:40:07 +0000 (23:40 -0400)]
Minor - update vgasrc/vga.c todo list.

15 years agoAdd initial port of the "open source vga bios" project.
Kevin O'Connor [Thu, 7 May 2009 03:35:59 +0000 (23:35 -0400)]
Add initial port of the "open source vga bios" project.

This is an initial import of the code from:
    http://www.nongnu.org/vgabios/
The code has been ported from bcc to gcc and gas.
This is an initial import - many functions have not been ported; many
    bugs are present.

15 years agoMove assembler entry macros in romlayout.S into new file entryfuncs.S.
Kevin O'Connor [Thu, 7 May 2009 03:33:32 +0000 (23:33 -0400)]
Move assembler entry macros in romlayout.S into new file entryfuncs.S.

This allows the entry macros to be used in other assembler code.

15 years agoMinor - report found serial and lpt ports.
Kevin O'Connor [Thu, 7 May 2009 03:25:40 +0000 (23:25 -0400)]
Minor - report found serial and lpt ports.

15 years agoMinor - formatting enhancements; add memset_far funcs.
Kevin O'Connor [Thu, 7 May 2009 03:23:01 +0000 (23:23 -0400)]
Minor - formatting enhancements; add memset_far funcs.

Use consistent types in mtrr.c.
Remove extra ';' from lds files.
Report found serial and lpt ports.
Remove extra newlines from inline asm.
Add memset_far and memset16_far functions.

15 years agoMinor - verify e820 request is large enough to hold response.
Kevin O'Connor [Thu, 7 May 2009 03:21:13 +0000 (23:21 -0400)]
Minor - verify e820 request is large enough to hold response.

15 years agoMinor - add some additional vga definitions of bda.
Kevin O'Connor [Thu, 7 May 2009 03:20:03 +0000 (23:20 -0400)]
Minor - add some additional vga definitions of bda.

15 years agoDetect ps2 nak response.
Kevin O'Connor [Thu, 7 May 2009 03:18:48 +0000 (23:18 -0400)]
Detect ps2 nak response.

For now, just ignore the nak.

15 years agoAdd support for field width argument to %x (eg, %08x).
Kevin O'Connor [Wed, 6 May 2009 02:52:09 +0000 (22:52 -0400)]
Add support for field width argument to %x (eg, %08x).

Patch from Stefan Reinauer; modified by Kevin O'Connor.

15 years agoDon't send ATA error reports when cdrom not ready.
Kevin O'Connor [Wed, 6 May 2009 01:47:20 +0000 (21:47 -0400)]
Don't send ATA error reports when cdrom not ready.

Based on patch from Stefan Reinauer.

15 years agoAdd ability to run all option roms in CBFS directory "genroms/".
Kevin O'Connor [Fri, 1 May 2009 01:50:35 +0000 (21:50 -0400)]
Add ability to run all option roms in CBFS directory "genroms/".

15 years agoAdd config option to set boot menu delay time.
Kevin O'Connor [Thu, 30 Apr 2009 02:00:21 +0000 (22:00 -0400)]
Add config option to set boot menu delay time.

Add CONFIG_BOOTMENU_WAIT option with delay time (in milliseconds).

15 years agoAdd support for compressed option roms.
Kevin O'Connor [Tue, 28 Apr 2009 01:51:13 +0000 (21:51 -0400)]
Add support for compressed option roms.

15 years agoAdd LZMA decompression support to CBFS.
Kevin O'Connor [Mon, 27 Apr 2009 03:17:49 +0000 (23:17 -0400)]
Add LZMA decompression support to CBFS.

Support payloads compressed with lzma.

15 years agoExit CBFS file search early if zero signature found.
Kevin O'Connor [Mon, 27 Apr 2009 01:27:15 +0000 (21:27 -0400)]
Exit CBFS file search early if zero signature found.

This stops the scan from walking all of flash.

15 years agoMinor - simplify add_e820() function.
Kevin O'Connor [Mon, 27 Apr 2009 01:25:53 +0000 (21:25 -0400)]
Minor - simplify add_e820() function.

15 years agoFix auto-restart timeout in tools/readserial.py
Kevin O'Connor [Mon, 27 Apr 2009 01:24:16 +0000 (21:24 -0400)]
Fix auto-restart timeout in tools/readserial.py

The timer should reset after 60 seconds of idle, not after 60
    seconds.

15 years agoFixup previous memcpy optimization.
Kevin O'Connor [Mon, 20 Apr 2009 03:18:54 +0000 (23:18 -0400)]
Fixup previous memcpy optimization.

Different gcc versions handle __builtin_memcpy differently.
Add -minline-all-string to force inlining of memcpy on old gcc.
Always use __builtin_memcpy for all memcpy calls.
Use memcpy4() for the option rom case where 4-byte accesses is important.

15 years agoEnhance test-gcc.sh.
Kevin O'Connor [Mon, 20 Apr 2009 01:30:48 +0000 (21:30 -0400)]
Enhance test-gcc.sh.

Don't use "exit -1" as that is an error on some platforms.
Use "-nostdlib" when linking - that is faster and works even when full
    development environment isn't available.

15 years agoOptimize memcpy.
Kevin O'Connor [Mon, 20 Apr 2009 00:05:50 +0000 (20:05 -0400)]
Optimize memcpy.

Use __builtin_memcpy on small strings (gcc can inline these well).
Use 4-byte copies when applicable - this is important when copying
    option roms from slow PCI space.

15 years agoAdd new tool - tools/readserial.py.
Kevin O'Connor [Sun, 19 Apr 2009 15:04:59 +0000 (11:04 -0400)]
Add new tool - tools/readserial.py.

This tool can read from a serial port and provide timing information
    on each line read.  It is useful when analyzing serial output from
    SeaBIOS.

15 years agoAllow booting from any device when under coreboot.
Kevin O'Connor [Sat, 18 Apr 2009 21:02:41 +0000 (17:02 -0400)]
Allow booting from any device when under coreboot.

Don't just try floppy/cdrom/harddrive - try any available boot method.

15 years agoTry to prevent mapping option roms over flash.
Kevin O'Connor [Sat, 18 Apr 2009 21:01:02 +0000 (17:01 -0400)]
Try to prevent mapping option roms over flash.

Don't map an option rom in last 4MiB of ram or at its max.

15 years agoReplace memeq/streq functions with memcmp/strcmp.
Kevin O'Connor [Sat, 18 Apr 2009 20:59:47 +0000 (16:59 -0400)]
Replace memeq/streq functions with memcmp/strcmp.

The standard functions are better known and not harder to implement.

15 years agoAdd support for waiting for drive startup during ATA detect.
Kevin O'Connor [Sat, 18 Apr 2009 16:23:00 +0000 (12:23 -0400)]
Add support for waiting for drive startup during ATA detect.

Try to wait for !bsy during ATA detect.
Don't wait if the status register appears to be "floating".

15 years agoMinor - add more debugging output to option rom scanning.
Kevin O'Connor [Fri, 17 Apr 2009 00:43:07 +0000 (20:43 -0400)]
Minor - add more debugging output to option rom scanning.

15 years agoAdd option CONFIG_DISABLE_A20 to control disabling A20 on boot.
Kevin O'Connor [Mon, 13 Apr 2009 23:44:55 +0000 (19:44 -0400)]
Add option CONFIG_DISABLE_A20 to control disabling A20 on boot.

Almost nothing really wants A20 off today - so add a config option
    (and default it off) to control turning A20 off during 16bit
    bootup.

15 years agoMinor - reset data segments in post32 entry point.
Kevin O'Connor [Mon, 13 Apr 2009 23:32:51 +0000 (19:32 -0400)]
Minor - reset data segments in post32 entry point.

15 years agoClear irqs in transition32 instead of callers.
Kevin O'Connor [Mon, 13 Apr 2009 23:30:27 +0000 (19:30 -0400)]
Clear irqs in transition32 instead of callers.

This moves the irq clear into transition32.
Also, disable nmi before loading gdt - this prevents a race with an nmi.

15 years agoMinor - reorganize romlayout.S to better group entry points.
Kevin O'Connor [Mon, 13 Apr 2009 23:26:43 +0000 (19:26 -0400)]
Minor - reorganize romlayout.S to better group entry points.

15 years agoMake sure optionroms have a non-zero size before using them.
Kevin O'Connor [Mon, 13 Apr 2009 23:19:22 +0000 (19:19 -0400)]
Make sure optionroms have a non-zero size before using them.

15 years agoInitial support for running CBFS payloads.
Kevin O'Connor [Mon, 13 Apr 2009 18:14:51 +0000 (14:14 -0400)]
Initial support for running CBFS payloads.

Add boot menu option for CBFS payloads.
Rework "override" system so that it is done per BEV.
Add file prefix scanning code to CBFS.
Add CBFS payload launching support.

15 years agoInitial support for finding option roms in coreboot flash layout.
Kevin O'Connor [Sun, 12 Apr 2009 03:31:29 +0000 (23:31 -0400)]
Initial support for finding option roms in coreboot flash layout.

Add code to search for roms in the "coreboot file system".
Change hardcode option rom detection to use vendor/deviceid instead of
    bus/device/fn.
Move streq() function to generic place so cbfs functions can use it.

15 years agoTurn off new gcc tree-switch-conversion option in 16bit mode.
Kevin O'Connor [Thu, 9 Apr 2009 01:25:00 +0000 (21:25 -0400)]
Turn off new gcc tree-switch-conversion option in 16bit mode.

This option emits code which accesses global variables - it wont work
    in 16bit mode.

15 years agoRework linker scripts so they work on new version of ld.
Kevin O'Connor [Thu, 9 Apr 2009 01:10:08 +0000 (21:10 -0400)]
Rework linker scripts so they work on new version of ld.

Declare output sections with explicit start address - don't rely on LD
    using '.' for the start of the section.  Make addresses that are
    absolute by using the ABSOLUTE() function.
Discard .eh_frame - new gcc has this on by default.
Also, don't use '-d' - instead use FORCE_COMMON_ALLOCATION.

15 years agoUse CC consistently in test-gcc.sh script.
Kevin O'Connor [Fri, 27 Mar 2009 04:12:00 +0000 (00:12 -0400)]
Use CC consistently in test-gcc.sh script.

15 years agoEnhance gcc checks.
Kevin O'Connor [Fri, 27 Mar 2009 04:07:07 +0000 (00:07 -0400)]
Enhance gcc checks.

Use -Os on visible function test - it seems to alter behavior.
Add check for global variables being present.

15 years agoExpand gcc tests.
Kevin O'Connor [Fri, 27 Mar 2009 00:45:36 +0000 (20:45 -0400)]
Expand gcc tests.

Verify -fwhole-program works at make startup.
Warn when gcc marks global functions as local.

15 years agoAdd high coreboot table support to seabios.
Kevin O'Connor [Sat, 21 Mar 2009 17:17:21 +0000 (13:17 -0400)]
Add high coreboot table support to seabios.

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
15 years agoMinor - reduce forced inlining directives in src/ata.c.
Kevin O'Connor [Sat, 7 Mar 2009 05:09:52 +0000 (00:09 -0500)]
Minor - reduce forced inlining directives in src/ata.c.

Now that ata functions use there own stack in 16bit mode, there is
    less need to override the compiler inlining.  So, revert to
    default.

15 years agoRegister int02 handler (nmi); disable NMI by default.
Kevin O'Connor [Sat, 7 Mar 2009 05:07:24 +0000 (00:07 -0500)]
Register int02 handler (nmi); disable NMI by default.

Rename handle_nmi to handle_02 to be more consistent with other handlers.
Actually register handle_02.
Don't panic in nmi handler - just log by default.
Set the disable nmi bit when accessing the cmos index register.

15 years agoMinor - improve formatting of src/acpi.c.
Kevin O'Connor [Sun, 1 Mar 2009 17:41:20 +0000 (12:41 -0500)]
Minor - improve formatting of src/acpi.c.

15 years agoConsistently disable irqs at start of each assembler entry point.
Kevin O'Connor [Sun, 1 Mar 2009 17:31:57 +0000 (12:31 -0500)]
Consistently disable irqs at start of each assembler entry point.

Always disable irqs at start of each entry point.
Be consistent with clearing direction flag after disabling interrupts.