Age | Commit message (Collapse) | Author |
|
Introduces kernel threads. by using the proc_ktd() function, one can
spawn a CPL 0 running thread to the desired code.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
A lot of PCI(e) devices rely in MSI-X which pokes the Local APIC via
MMIO, we'll want the LAPIC up before PCI(e)
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Introduces support for platform reset via the RST_CNT control register
on Intel chipsets that support it.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Adds I8042_REBOOT config option for the AMD64 port as a workaround
against certain hardware that doesn't support the i8042 reset
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Add a function that reboots the system by attempting the softest method
and incrementally becoming forceful if previous methods fail
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
The PROC_EXITING flag is already set within the MI layer of the process
management core
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
This commit introduces the initial support for the process environment
block and implements argv and argc.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
When a CPU core first starts up, it has no proceses to assign to itself.
This commit ensures that the processor will right away start trying to
find tasks to grab from its runqueue.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Add a timeout so that if data never arrives, the system doesn't get
locked up.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
This commit introduces scancoding buffering as well as an I/O tap so
that it may be exposed outside of the driver
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
This implementation walks through the entire table of registered
interrupt handlers and calls each driver handler.
The driver is to return a value of 1 if the interrupt is theirs and has
been handled, otherwise it is to return 0. The handling core is to
respoond to a 1 by exiting the table walk early, and responds to a 0 by
continuing.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Ensure no uninitialized garbage ends up in the handler structure after
we've allocated it.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
This commit makes the interrupt table global so it can be accessed
through assembly.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
This commit reserves the first 64 vectors for the I/O APIC input lines.
During an IRQ, each handler will be called to see which one handles it.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
This commit introduces the interrupt registration framework for L5 and
accounts for I/O APIC IRQ inputs, and interrupt priority levels encoded
within bits 7:4 of the interrupt vector
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Introduce a helper function to convert legacy ISA IRQ numbers to the GSI
numbers assigned to an I/O APIC pin
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Introduce support for returning symbols or strings in memory by using
the symbol table and REX prefixes for 64-bit register accesses
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Introduce register allocation via a bitmap where each bit corresponds to
a specific register index.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
This commit adds a 32-bit register ID list as well as the beginning of
ABI specific values
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Use clang during early state until we configure our own cross compiler
for L5
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
To ensure that all residual data does not remain for the mapping in its
table, we write a flat zero if prot is also zero i.e., no permissions
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Add function to halt all processor cores on the machine excluding self.
This may be used for emergency conditions on the system.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
This commit introduces support for sending inter-processor interrupts on
the mainbus to other cores on the machine.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
These sometimes cause issues so we are better off just stripping them
from the final binary.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
As of now, the bootloader handles setting up the MMIO regions and we'll
need huge page support (2 megs) for reassigning MMIO space
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Add new clock device callback to get the elapsed time from the timer
being initialized, in microseconds.
Signed-off-by: Ian Moffett <ian@osmora.org>
|
|
Signed-off-by: Ian Moffett <ian@osmora.org>
|