Kevin O'Connor [Sun, 14 Feb 2010 02:51:47 +0000 (21:51 -0500)]
Support USB interrupt schedules on OHCI and UHCI.
The existing code always checks for USB "interrupt in" events every
millisecond. Although that's okay, it consumes extra bandwidth. This
change interrupt checks to be scheduled according to their requested
interval time.
Kevin O'Connor [Sat, 13 Feb 2010 23:49:24 +0000 (18:49 -0500)]
Add some ASSERT32FLAT() to help compiler eliminate dead code.
The function pointer passed to run_thread() can confuse the compiler
into thinking the function needs to be emitted. Add ASSERT32FLAT() to
help the compiler eliminate this code.
Isaku Yamahata [Fri, 12 Feb 2010 02:36:20 +0000 (11:36 +0900)]
seabios: acpi: fix memory leak in build_srat().
numadata() is allocated for temporal use, but not freed.
free it.
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Kevin O'Connor [Fri, 12 Feb 2010 03:32:12 +0000 (22:32 -0500)]
Support USB keyboard auto-repeat.
Support handling of multiple keys pressed simultanously.
Support auto-repeat via USB HID Set_Idle command.
Also, add "noinline" directives to reduce stack usage of timer irq.
Kevin O'Connor [Fri, 12 Feb 2010 03:19:14 +0000 (22:19 -0500)]
mptable: Pull cpuid_signature/features setting out of loop.
Kevin O'Connor [Fri, 29 Jan 2010 01:35:21 +0000 (20:35 -0500)]
Rework disabling of ps2 port irqs.
Disable the ps2 port irqs in software instead of hardware. This
prevents a race where an irq could get queued and later called when
not desired.
Kevin O'Connor [Fri, 29 Jan 2010 01:33:20 +0000 (20:33 -0500)]
Go back to using 0xf0000000 for PCI memory start.
Qemu/Kvm still has some dependencies on 0xe0000000, so go back until
they are ready.
Magnus Christensson [Mon, 23 Nov 2009 13:01:19 +0000 (14:01 +0100)]
Read APIC version from APIC instead of using a hard-coded value.
Signed-off-by: Magnus Christensson <mch@virtutech.com>
Kevin O'Connor [Sun, 17 Jan 2010 18:00:49 +0000 (13:00 -0500)]
Work around bochs floppy issue with wait_irq().
Bochs turns off floppy dma when cpu is halted, so work around problem.
Kevin O'Connor [Sun, 17 Jan 2010 17:58:47 +0000 (12:58 -0500)]
Add CONFIG_ATA_DMA option; default to off for now.
Allow compile option to disable ATA DMA support.
Turn it off by default for now - some coreboot users are seeing issues
with it.
Magnus Christensson [Wed, 25 Nov 2009 15:26:58 +0000 (16:26 +0100)]
Fix PkgLength calculation for the SSDT.
Signed-off-by: Magnus Christensson <mch@virtutech.com>
Kevin O'Connor [Sun, 10 Jan 2010 05:38:53 +0000 (00:38 -0500)]
Add explicit Program Headers to linker scripts.
Looks like some versions of binutils are aligning the LOAD program
header to a large size. This is causing an issue for coreboot users,
so add an explicit LOAD program header with a reasonable value.
Kevin O'Connor [Sun, 10 Jan 2010 05:38:24 +0000 (00:38 -0500)]
Prep version for next release.
Kevin O'Connor [Sat, 9 Jan 2010 04:49:31 +0000 (23:49 -0500)]
Update version to 0.5.1
Kevin O'Connor [Wed, 6 Jan 2010 00:50:04 +0000 (19:50 -0500)]
Fix sign error preventing incorrect memory over 4gig calculation.
Kevin O'Connor [Tue, 5 Jan 2010 02:04:04 +0000 (21:04 -0500)]
Minor - better indent assembler in int1587.
Kevin O'Connor [Tue, 5 Jan 2010 01:49:45 +0000 (20:49 -0500)]
Add comment explaining why mptable is in low memory.
Kevin O'Connor [Tue, 5 Jan 2010 01:48:20 +0000 (20:48 -0500)]
Add int1589 support.
Int1589 switches into protected mode for the caller.
Also, consistently use BUILD_BIOS_ADDR/SIZE in GDT macros.
Kevin O'Connor [Mon, 4 Jan 2010 03:24:18 +0000 (22:24 -0500)]
Set FDPT in irq table even for small drives.
Fix bug due to fill_fdpt exiting early in non-logical drive case.
Kevin O'Connor [Sun, 3 Jan 2010 23:33:00 +0000 (18:33 -0500)]
Reduce #ifs by weeding out some cross-chunk function definitions.
Reduce the need for placing #if guards around functions that are
marked as VISIBLE in another code chunk by declaring the functions as
"weak" when they are not needed.
It's still necessary to ensure that no C code references the data from
a different chunk (or an -fwhole-program compile might try to keep a
local reference).
Kevin O'Connor [Sun, 3 Jan 2010 23:09:08 +0000 (18:09 -0500)]
Fix vgahook sign issue; add warning to build to catch future cases.
Kevin O'Connor [Sun, 3 Jan 2010 22:53:58 +0000 (17:53 -0500)]
vgabios: Fix compile error due to fixed prototypes.
Kevin O'Connor [Sun, 3 Jan 2010 22:43:37 +0000 (17:43 -0500)]
Be sure to add "void" to all function prototypes that take no args.
Omitting "void" leads to a K&R style declaration which was not intended.
Kevin O'Connor [Sun, 3 Jan 2010 20:14:11 +0000 (15:14 -0500)]
mptable: Reset pinmask on new bus or device.
Fix small possibility of bus changing without device changing.
Kevin O'Connor [Sun, 3 Jan 2010 20:12:00 +0000 (15:12 -0500)]
Detect latest FC12 gcc -combine breakage.
Now, assigning a value to a global is needed to triger ICE.
Kevin O'Connor [Fri, 1 Jan 2010 17:53:32 +0000 (12:53 -0500)]
Minor vga binary cleanups.
Kevin O'Connor [Fri, 1 Jan 2010 17:50:04 +0000 (12:50 -0500)]
Make MTRR region 0xc0000-0x100000 be cached.
Use the "write protect" setting instead of "uncached" for that region.
Also, make sure to clear all variable MTRRs before enabling them.
Kevin O'Connor [Fri, 1 Jan 2010 17:46:54 +0000 (12:46 -0500)]
Force a link error if a function is used from the wrong code chunk.
Force functions intended for other code segments to be discarded
during link - this will cause a link error if it used.
Clean up rom layout code to ensure discarded sections are not used.
Kevin O'Connor [Fri, 1 Jan 2010 08:04:19 +0000 (03:04 -0500)]
Add __noreturn define for __attribute__((noreturn)).
Kevin O'Connor [Fri, 1 Jan 2010 18:03:17 +0000 (13:03 -0500)]
Implement native 32bit APM support.
Add APM code to 32bit segmented code.
Use 32bit APM code instead of jumping into 16bit mode.
Kevin O'Connor [Wed, 30 Dec 2009 17:36:22 +0000 (12:36 -0500)]
Commit compiled dsdt file; misc comment updates.
Commit new dsdt with recent changes.
Add some misc comments.
Also, fix uninitialized warning in mptable code.
Gleb Natapov [Thu, 24 Dec 2009 12:37:16 +0000 (14:37 +0200)]
prevent acpi from rerouting SCI interrupt
SCI interrupt in piix4 chipset is hardwired to gsi 9, but we allow it
to be reconfigured by acpi. Fix this by providing fixed gsi for
PCI device 1 pin 0.
Signed-off-by: Gleb Natapov <gleb@redhat.com>
Gleb Natapov [Mon, 28 Dec 2009 09:04:46 +0000 (11:04 +0200)]
enumerate all PCI buses in mptable
Signed-off-by: Gleb Natapov <gleb@redhat.com>
Kevin O'Connor [Wed, 30 Dec 2009 17:14:53 +0000 (12:14 -0500)]
Add support for 32bit PCI BIOS entry.
Create a new code blob (code32seg) with support for 32bit functions
that need to utilize explicit segment accesses.
This code blob uses global variables relative to %gs and with a
dynamic code offset (determined by get_global_offset()).
Add BIOS32 structure and code.
Add code for 32bit PCI BIOS code.
Kevin O'Connor [Sun, 27 Dec 2009 05:14:26 +0000 (00:14 -0500)]
Only add "addr32" to memory accesses that require them.
Extract out addr32 to a parameter to the READx/WRITEx_SEG macros.
Kevin O'Connor [Sun, 27 Dec 2009 04:32:57 +0000 (23:32 -0500)]
Introduce MODESEGMENT define; rename VISIBLE32 to VISIBLE32FLAT.
Prepare for support of segmented 32bit code.
Add new MODESEGMENT definition, and clarify existing 32bit mode defs.
Kevin O'Connor [Sun, 27 Dec 2009 04:26:44 +0000 (23:26 -0500)]
Allocate smbios in temp space and copy into final location.
This reduces memory needed in the reserved high memory area.
Kevin O'Connor [Sun, 27 Dec 2009 04:24:52 +0000 (23:24 -0500)]
Clear user reserved interrupts (0x60-0x66).
This patch is equivalent to a patch recently committed to Bochs bios
(
d8b4b998).
Kevin O'Connor [Sun, 27 Dec 2009 04:23:15 +0000 (23:23 -0500)]
Remove pci_bios_bigmem_addr; set pci_bios_mem_addr=0xe0000000
This patch removes pci_bios_bigmem_addr, and it changes
pci_bios_mem_addr to start at 0xe0000000.
The pci_bios_bigmem_addr was removed from bochs. Also, the current
code looks wrong as nothing stops an address given from
pci_bios_bigmem_addr from overlapping an address given from
pci_bios_mem_addr.
The change also moves pci_bios_mem_addr back to 0xe0000000 - both the
acpi and mtrr code use 0xe0000000.
Kevin O'Connor [Sun, 27 Dec 2009 04:21:38 +0000 (23:21 -0500)]
Add initial support for ATA DMA.
Add support for detecting and using SFF 8038 compatible PCI devices.
Currently, only ATA transfers (not ATAPI) will use DMA.
Kevin O'Connor [Sat, 26 Dec 2009 16:15:31 +0000 (11:15 -0500)]
Allocate mptable in temp space and copy into final location.
Copying into the f-segment ensures no extra space is needed.
Kevin O'Connor [Thu, 24 Dec 2009 16:09:30 +0000 (11:09 -0500)]
Also report memory over 4G during init.
Gleb Natapov [Thu, 24 Dec 2009 12:29:43 +0000 (14:29 +0200)]
provide correct pci routing information in mptable
OpenBSD uses irq routing from mptable, but doesn't create it correctly
for PCI bus. This patch adds PCI routing info into mptable.
Kevin O'Connor [Thu, 24 Dec 2009 02:24:27 +0000 (21:24 -0500)]
Add symbolic definitions for MTRR code.
Kevin O'Connor [Sun, 20 Dec 2009 18:11:17 +0000 (13:11 -0500)]
Fix yield() so it works from boot code.
In boot code, the f-segment is read-only, so make sure yield() doesn't
rely on writes.
Easiest way to do this is to avoid stack switches when not needed.
Kevin O'Connor [Sat, 19 Dec 2009 16:03:40 +0000 (11:03 -0500)]
Fix potential build failure due to text16 section being too large.
A relative PC jump can't exceed 32K, but .text16 can be bigger than 32K.
Separate out .text16 into data sections (.data16) and code (.text16).
Place text and fixed sections together at end of f-segment.
This reduces 16bit text size to ~28K which fixes build errors for now.
Kevin O'Connor [Sat, 19 Dec 2009 15:51:29 +0000 (10:51 -0500)]
Increase version in preparation for next release.
Kevin O'Connor [Sat, 19 Dec 2009 03:21:26 +0000 (22:21 -0500)]
Update version to 0.5.0.
Gerd Hoffmann [Fri, 18 Dec 2009 11:16:04 +0000 (12:16 +0100)]
qemu: add rom loading via fw_cfg
Add support for loading roms using the qemu fw_cfg interface,
modeled after the existing cbfs support. Use it to look for
vgabios (vgaroms/*) and option roms (genroms/*).
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Gerd Hoffmann [Fri, 18 Dec 2009 11:16:03 +0000 (12:16 +0100)]
move htonl() + friends to util.h
As the next patch will add one more user of the macros move them
to util.h. Also add the 16bit variants.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Anthony Liguori [Fri, 18 Dec 2009 11:16:02 +0000 (12:16 +0100)]
Disable CONFIG_OPTIONROMS_DEPLOYED by default
Since qemu now supports loading option roms through PCI
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Anthony Liguori [Fri, 18 Dec 2009 11:16:01 +0000 (12:16 +0100)]
Do not guard qemu shadow ram work around in CONFIG_OPTIONROMS_DEPLOYED
As we are going to disable CONFIG_OPTIONROMS_DEPLOYED under QEMU so that we can
make proper use of DDIM.
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Kevin O'Connor [Sun, 13 Dec 2009 18:04:17 +0000 (13:04 -0500)]
Distinguish between debug reports for unimplemented vs invalid calls.
Don't use "fail" in the debug output - as this confuses users.
When reporting on an invalid parameter - use the word "invalid".
When reporting on an unimplemented call - state it is unimplemented.
Add separate debug levels for unimplemented vs invalid calls.
Also, increase the debug level of several entry points.
Kevin O'Connor [Sun, 13 Dec 2009 17:02:55 +0000 (12:02 -0500)]
ATA 48bit LBA should only be activated on read/write commands.
Check explicitly for an extended read/write command instead of 0x04
bit set. The identify command has that bit set, but doesn't need
the 48bit lba registers set.
Kevin O'Connor [Sun, 13 Dec 2009 16:48:18 +0000 (11:48 -0500)]
Extract out new call32() function from check_preempt() code in stacks.c.
Kevin O'Connor [Sun, 13 Dec 2009 16:25:25 +0000 (11:25 -0500)]
Enhance experimental option rom "threading" - enable preemption.
When experimental support for parallelizing option roms and hardware
init (default disabled) is selected, add support for checking on
hardware init progress from the RTC irq handler.
Enable ability for RTC to be turned on for additional users.
Allow regular option roms (not just vga option roms) to run in
parallel with hardware init.
Don't use stack in transition32 / transition16 until new mode is
entered.
Also, cleanup leaking of data handlers in usb code.
Also, decrease frequency of iomemcpy checks (every 2K instead of 1K).
Kevin O'Connor [Sun, 13 Dec 2009 16:19:01 +0000 (11:19 -0500)]
Fix use before free in boot_cbfs (boot.c).
Kevin O'Connor [Sat, 12 Dec 2009 18:28:38 +0000 (13:28 -0500)]
Enhance readserial.py to try to account for host time offsets.
Try to account for time related to the host sending blocks of data to
the script.
Kevin O'Connor [Fri, 11 Dec 2009 02:35:49 +0000 (21:35 -0500)]
Move stack manipulation code from util.c to new file stacks.c.
Move the threading and stack_hop code to a new file.
Kevin O'Connor [Fri, 11 Dec 2009 02:16:07 +0000 (21:16 -0500)]
Refactor __call16_from32 - introduce transition16.
Add a transition16 call that just jumps into 16bit mode.
__call16_from32 (and call16big) just uses transition16 and __call16.
Kevin O'Connor [Fri, 11 Dec 2009 02:15:04 +0000 (21:15 -0500)]
Minor - use wait_irq() instead of irq_enable()/hlt() in apm.
Kevin O'Connor [Fri, 11 Dec 2009 01:13:57 +0000 (20:13 -0500)]
Make SMBIOS table pass MS SVVP test
Microsoft SVVP (Server Virtualization Validation Program) expects
arbitrary SMBIOS field to have certain values otherwise it fails.
We all want to make Microsoft happy don't we? So lets put values MS
expects in there.
Values modified by the patch:
Type 0:
Bit 2 of byte 2 must be 1
Type 1:
Manufacturer/product string should not be empty
Type 3:
Manufacturer string should not be empty
Type 4:
Processor manufacturer should no be empty
Max/current CPU speed shouldn't be unknown
Type 16:
Memory should have error correction.
---
v1->v2:
Use CONFIG_APPNAME instead of open coding strings
Use snprintf.
Signed-off-by: Gleb Natapov <gleb@redhat.com>
Kevin O'Connor [Thu, 10 Dec 2009 02:15:59 +0000 (21:15 -0500)]
Unify ps2 port data processing.
Unify the code for mouse and keyboard irq handling.
Support case where mouse irq fires but keyboard data present and
vice-versa.
Support data in i8042 queue while ps2 command being processed.
Kevin O'Connor [Thu, 10 Dec 2009 02:00:41 +0000 (21:00 -0500)]
Move ps2 specific keyboard and mouse code to ps2port.c.
Kevin O'Connor [Thu, 10 Dec 2009 01:18:31 +0000 (20:18 -0500)]
Add experimental feature to run vga optionrom in parallel with init.
Add option (default disabled) that allows the vga rom to run while
hardware init is still in progress.
Kevin O'Connor [Thu, 10 Dec 2009 01:04:54 +0000 (20:04 -0500)]
Clear thread info on each boot.
Fix potential issue of threads being incorrect if ctrl+alt+del is
pressed during POST.
Kevin O'Connor [Sat, 5 Dec 2009 23:51:53 +0000 (18:51 -0500)]
Introduce optimized iomemcpy function for copying from io memory.
Reading from IO memory (pci rom or flash) is very slow, so add
iomemcpy() which will yield during copy. Use a 4 byte copy to
optimize accesses.
Also, decompress cbfs data files from a temp memory buffer so that
ulzma doesn't read from slow IO memory.
Kevin O'Connor [Sat, 5 Dec 2009 19:23:27 +0000 (14:23 -0500)]
Fix timing in readserial.py - use 10 bits per byte.
There is also a start bit, so 8N1 serial should use 10 bits to a byte.
Kevin O'Connor [Sat, 5 Dec 2009 18:44:39 +0000 (13:44 -0500)]
Enhance readserial.py to note when resetting timer.
Kevin O'Connor [Sat, 5 Dec 2009 18:36:18 +0000 (13:36 -0500)]
Fix ATA iobase2 access on PCI native mode interfaces.
The ctrl register is iorange + 2 not iorange + 6.
Rework port definitions to be based on PCI offsets instead of ISA.
Also, properly define ATA irqs when in PCI compatibility mode.
Kevin O'Connor [Sat, 5 Dec 2009 16:25:09 +0000 (11:25 -0500)]
Support ISA ATA devices for qemu's "-M isapc" mode.
Add probing for ISA ATA devices when no pci devices found.
Also, add defines for common ATA ports.
Also, make sure irq and pci_bdf are defined for both pci ata controllers.
Kevin O'Connor [Thu, 3 Dec 2009 02:19:30 +0000 (21:19 -0500)]
Fail PS2 port commands when receiving a NAK.
Fail the command on a nak - don't ignore it.
Kevin O'Connor [Thu, 26 Nov 2009 00:35:01 +0000 (19:35 -0500)]
Misc updates.
Update todo list.
Fix spelling errors in acpi debug messages.
Don't call DISK_STUB() in format - use debug_stub() instead.
Kevin O'Connor [Thu, 26 Nov 2009 00:05:04 +0000 (19:05 -0500)]
Reorganize main init order and add comments.
Try to organize the main init by class of hardware initialized.
Kevin O'Connor [Wed, 25 Nov 2009 23:53:52 +0000 (18:53 -0500)]
Clear unused parts of f-segment.
On coreboot, the unused parts of the f-segment could contain leftover
bios tables which may confuse an OS. So clear unused parts of
f-segment.
Kevin O'Connor [Wed, 25 Nov 2009 23:51:46 +0000 (18:51 -0500)]
Clear PMMAllocs even if CONFIG_PMM not set.
The pmm based allocations are used for internal allocations now, so be
sure to do a full reset even if external PMM not configured.
Kevin O'Connor [Wed, 25 Nov 2009 23:49:06 +0000 (18:49 -0500)]
Add floppy and cdrom drives in sorted order.
With threads a cdrom could be found in random order - so always add to
the idmap in a defined manor.
Kevin O'Connor [Tue, 24 Nov 2009 14:41:06 +0000 (09:41 -0500)]
Set MaxCountCPUs even if no APIC found.
Signed-off-by: Gleb Natapov <gleb@redhat.com>
Kevin O'Connor [Tue, 24 Nov 2009 14:37:53 +0000 (09:37 -0500)]
Update snprintf to return the number of bytes used.
Kevin O'Connor [Fri, 20 Nov 2009 22:28:19 +0000 (17:28 -0500)]
Make sure to reenable ata interrupts even on error.
If the ata command fails, be sure to reenable errors.
This fixes a report of MS Vista not seeing a cdrom drive.
Kevin O'Connor [Fri, 20 Nov 2009 14:22:19 +0000 (09:22 -0500)]
Move SeaBIOS post/boot stack to avoid conflict with gPXE.
It appears gPXE also uses a stack at 0x7c00. gPXE probably shouldn't
do that, but for now, move SeaBIOS stack to 0x7000.
Kevin O'Connor [Fri, 20 Nov 2009 14:19:28 +0000 (09:19 -0500)]
Test for broken gcc -combine on FC12.
The Fedora Core 12 distro throws an internal compiler error due to a
bug in gcc. Look for this case and avoid using -combine if found.
Kevin O'Connor [Sat, 14 Nov 2009 18:49:06 +0000 (13:49 -0500)]
Add MPS entries for LINT interrupts.
Signed-off-by: Magnus Christensson <mch@virtutech.com>
Kevin O'Connor [Sat, 14 Nov 2009 18:43:01 +0000 (13:43 -0500)]
Initialize the LINT LVTs on the local APIC of the BSP.
Since the APIC is enabled, we need to initialize LINT0 to ExtINT and LINT1 to NMI.
For now, only do this on non-coreboot configurations.
Signed-off-by: Magnus Christensson <mch@virtutech.com>
Kevin O'Connor [Sat, 14 Nov 2009 18:34:27 +0000 (13:34 -0500)]
Fixes for mptable generation.
Rework cpu iteration to simplify. Also fixes sparse table generation
when multiple cores found.
Rework entrycount generation to fix irq0override code.
Move fls() to util.h.
Add free calls when allocation fails.
Kevin O'Connor [Tue, 10 Nov 2009 00:30:17 +0000 (19:30 -0500)]
Properly mask value for MTRR mask.
Signed-off-by: Magnus Christensson <mch@virtutech.com>
Kevin O'Connor [Tue, 10 Nov 2009 00:21:44 +0000 (19:21 -0500)]
Remove cmos access from cpu detect loop to make it faster.
Signed-off-by: Magnus Christensson <mch@virtutech.com>
Kevin O'Connor [Tue, 10 Nov 2009 00:20:21 +0000 (19:20 -0500)]
Only add the first logical CPU in each physical CPU to the MPS tables.
Signed-off-by: Magnus Christensson <mch@virtutech.com>
Kevin O'Connor [Tue, 10 Nov 2009 00:18:22 +0000 (19:18 -0500)]
Fix cpuflag in mptable (| has higher priority than ?:)
Signed-off-by: Magnus Christensson <mch@virtutech.com>
Kevin O'Connor [Tue, 10 Nov 2009 00:15:50 +0000 (19:15 -0500)]
Fix compiler warning in setup_translation().
Assign 'desc' just to silence compiler warning.
Kevin O'Connor [Tue, 10 Nov 2009 00:15:08 +0000 (19:15 -0500)]
Fix typo in pci_bios_init_device() causing use before set error.
The 'val' variable is used before being set - 'old' was intended.
Kevin O'Connor [Wed, 4 Nov 2009 00:52:04 +0000 (19:52 -0500)]
Verify 16bit code doesn't rely on any "discarded" sections.
Add linker rule to catch cases where 16bit code tries to access a
non-existent 32bit variable defined with VAR32VISIBLE.
Kevin O'Connor [Wed, 4 Nov 2009 00:50:52 +0000 (19:50 -0500)]
Reorder source code to work around weird -combine issue.
Seeing an odd issue with ZoneTmpHigh not being declared global - for
now, work around by reordering the soruce files.
Also, remove the ".comment" section from the final .elf file.
Kevin O'Connor [Sat, 31 Oct 2009 17:55:59 +0000 (13:55 -0400)]
Call yield() while waiting for USB control transfers to complete.
Kevin O'Connor [Sat, 31 Oct 2009 03:16:07 +0000 (23:16 -0400)]
Improve debugging info on USB UHCI qh timeout.
Kevin O'Connor [Sat, 24 Oct 2009 23:56:11 +0000 (19:56 -0400)]
Improve debugging output from threads.
Show the "thread id" on each debug message sent from a thread.
Also, cleanup translation dprintf() so it looks nicer withe thread output.
Kevin O'Connor [Sat, 24 Oct 2009 21:57:29 +0000 (17:57 -0400)]
Add simple cooperative threading scheme to allow parallel hw init.
Enable system for running hardware initialization in parallel.
The yield() call can now round-robin between "threads".
Rework ata controller init to use a thread per controller.
Make sure internal drives are registered in a defined order.
Run keyboard initialization in a thread.
Rework usb init to use a thread per controller.
Kevin O'Connor [Sat, 24 Oct 2009 21:54:06 +0000 (17:54 -0400)]
Enable ins/outs functions to use 32bit addresses.
Kevin O'Connor [Sat, 24 Oct 2009 15:06:08 +0000 (11:06 -0400)]
Replace irq_enable() regions with explicit calls to check for irqs.
Add new function yield() which will permit irqs to trigger.
The yield() call enables irqs to occur in 32bit mode.
Add [num]sleep calls that yield instead of just spinning.
Rename existing int 1586 usleep call to biosusleep.
Convert many calls to mdelay to msleep.
Kevin O'Connor [Fri, 23 Oct 2009 02:30:37 +0000 (22:30 -0400)]
Handle tsc rollover.
Handle case where timetamp counter overflows while waiting.