summaryrefslogtreecommitdiff
path: root/src/sys/arch
AgeCommit message (Collapse)Author
7 dayskern/amd64: Handle integrated capslock LEDIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
7 dayskern/amd64: Handle special keys (shift, caps, etc)Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
7 dayskern/amd64: 'i8042.port.0' -> 'input.igkbd'Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
7 dayskern/amd64: isa: Add i8042 read timeoutIan Moffett
Add a timeout so that if data never arrives, the system doesn't get locked up. Signed-off-by: Ian Moffett <ian@osmora.org>
8 dayskern/amd64: isa: Add locks to keybuf operationsIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
8 dayskernel/amd64: Add PS/2 scancode buffering + IO tapIan Moffett
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>
8 dayskern/amd64: isa: Add PS/2 keyboard prototypeIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
8 dayskernel/amd64: cpu: Implement 'ioapic_common' stubIan Moffett
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>
8 dayskern/amd64: Copy handler to `ih_new'Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
8 dayskern/amd64: intr: Zero the handler structureIan Moffett
Ensure no uninitialized garbage ends up in the handler structure after we've allocated it. Signed-off-by: Ian Moffett <ian@osmora.org>
9 dayskernel/amd64: intr: Make interrupt table globalIan Moffett
This commit makes the interrupt table global so it can be accessed through assembly. Signed-off-by: Ian Moffett <ian@osmora.org>
9 dayskern/amd64: Reserve 64 vectors for I/O APIC inputsIan Moffett
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>
9 dayskern/amd64: Add interrupt registration frameworkIan Moffett
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>
9 dayskern/amd64: ioapic: Add ISA IRQ to GSI conversionIan Moffett
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>
11 dayskern/amd64: mp: Initialize sched queue per coreIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
13 daysnp: codegen: Support returning symbols / stringsIan Moffett
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>
14 daysnp: piir: Add bitmap based register allocationIan Moffett
Introduce register allocation via a bitmap where each bit corresponds to a specific register index. Signed-off-by: Ian Moffett <ian@osmora.org>
2025-10-02np/amd64: piir: Add 32-bit register ID listIan Moffett
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>
2025-10-02np: backend: Add backend pirho sourcesIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-28build: Use clang during early stateIan Moffett
Use clang during early state until we configure our own cross compiler for L5 Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-28kern: cpu: Fix typo in ap_entry()Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-27kern/amd64: build: Add stub MD confIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-27kern/amd64: mmu: Map with zero if prot is also zeroIan Moffett
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>
2025-09-27kern/amd64: mmu: pmap_set_cache() -> pmap_set_cache()Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-27kern/amd64: panic: Halt all processors on panicIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-26kern/amd64: cpu: Add cpu_halt_others() functionIan Moffett
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>
2025-09-26kern/amd64: cpu: Add CPU halt ISR for IPIsIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-26kern/amd64: cpu: Enable interrupts upon CPU startupIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-26kern/amd64: Support APIC inter-processor interruptsIan Moffett
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>
2025-09-23kern/amd64: proc: Deallocate mapped frames on exitIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-23usr/amd64: Discard .eh_frame and .note sectionsIan Moffett
These sometimes cause issues so we are better off just stripping them from the final binary. Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-21kern: bus: Simply return bus_space, don't remapIan Moffett
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>
2025-09-21kern: clkdev: Add callback to get elapsed timeIan Moffett
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>
2025-09-21kern/amd64: hpet: Register HPET with clkdevIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-20kern/amd64: Add initial HPET driverIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-20kern: pci: Add bus framework and PCI BAR mapperIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-20kern: pci: Assume error if barreg is zeroIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-20kern/amd64: mmu: Add page-level cacheability attrsIan Moffett
This commit adds support for page-level cacheability attributes. We have added the pmap_set_cache() as well as some MMU_CACHE_* bits Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-20kern: pci: Handle base address registers (BARs)Ian Moffett
This commit handles base address registers by storing them in a bar array within the PCI device structure. We also introduced a helper header to perform operations with BARs such as getting the length of their underlying region Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-19kern/amd64: proc: Add proc_self()Ian Moffett
Introduce a new proc_self() function to get the current running process on the current CPU core. Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-19kern: Add '.modules' section to kernel binaryIan Moffett
The '.modules' section stores the list of modules to bring up on early boot. Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-19kern/amd64: build: Ensure .a libs retain sectionsIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-18build: Allow each subsystem to have their own confIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-18kern: io: Add initial PCI CAM driverIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-17kern/amd64: syscall: Use current platform latchIan Moffett
Use the current platform latch when selecting a syscall window from the current domain. Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-17kern/amd64: Implement syscall domains and windowsIan Moffett
A syscall domain in the L5 kernel is a fixed list of "syscall windows", each syscall window represents a specific platform and/or syscall model. A platform latch within each domain determines which window / platform should be visible. Since syscall domains are per-process, these changes are local to their respective processes. Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-17kern: Add syscall entry and SYS_exit syscallIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-17kern/amd64: proc: Add proc_kill() routineIan Moffett
Add a new function to kill processes and clean them up. They will then be marked as EXITING and it is up to the parent to do the rest. Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-17kern/amd64: mmu: Add mmu_free_vas() to cleanup VASIan Moffett
Introduce a new resource deallocation function that destroys a specified virtual address space. Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-17kern/amd64: proc: Add initial context switch logicIan Moffett
This commit introduces new functions that will be useful for having multiple processes run on the system. - Add md_proc_yield() - Add md_proc_kick() - Add md_sched_switch() Signed-off-by: Ian Moffett <ian@osmora.org>