summaryrefslogtreecommitdiff
path: root/src/sys/arch/amd64
AgeCommit message (Collapse)Author
31 hourskern/amd64: 'i8042.port.0' -> 'input.igkbd'Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
34 hourskern/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>
36 hourskern/amd64: isa: Add locks to keybuf operationsIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2 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>
2 dayskern/amd64: isa: Add PS/2 keyboard prototypeIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2 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>
2 dayskern/amd64: Copy handler to `ih_new'Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2 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>
3 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>
3 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>
3 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>
3 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>
5 dayskern/amd64: mp: Initialize sched queue per coreIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
7 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>
8 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>
8 daysnp/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>
8 daysnp: backend: Add backend pirho sourcesIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
12 daysbuild: 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>
12 dayskern: cpu: Fix typo in ap_entry()Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
14 dayskern/amd64: build: Add stub MD confIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
14 dayskern/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>
14 dayskern/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>
2025-09-17kernel/amd64: mp: Use NULL instead of wrappingIan Moffett
It is best to return NULL when there is no next CPU instead of wrapping so we have an indicator at where the list ends. Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-17kern: Make memmap dump configurable via kconfIan Moffett
Use the OSMORA kernel configuration framework to add options for L5Lunos to parse during early startup. Signed-off-by: Ian Moffett <ian@osmora.org>