summaryrefslogtreecommitdiff
path: root/src/sys/arch/amd64
AgeCommit message (Collapse)Author
3 dayskern/amd64: mp: Initialize sched queue per coreIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
5 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>
5 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>
6 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>
6 daysnp: backend: Add backend pirho sourcesIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
10 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>
10 dayskern: cpu: Fix typo in ap_entry()Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
11 dayskern/amd64: build: Add stub MD confIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
11 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>
11 dayskern/amd64: mmu: pmap_set_cache() -> pmap_set_cache()Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
12 dayskern/amd64: panic: Halt all processors on panicIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
12 dayskern/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>
12 dayskern/amd64: cpu: Add CPU halt ISR for IPIsIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
12 dayskern/amd64: cpu: Enable interrupts upon CPU startupIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
12 dayskern/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>
2025-09-17kern/amd64: mp: Add cpu_get() routineIan Moffett
This commit introduces a new cpu_get() function to acquire a specific CPU by using a logical ID as an index. Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-17kern/amd64: mp: Use zero-based index in corelistIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-16kern/amd64: cpu: Make GDT per-cpu to match TSSIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-16kern/amd64: proc: Do not kick proc in md_set_ip()Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-16kern/amd64: tss: Fix stack allocation sizeIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-16kern/amd64: cpu: Initialize platform before LAPICIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-16Merge branch 'dev'Ian Moffett
2025-09-16kern: proc: Add initialization code for ring 3Ian Moffett
This commit introduces several new functions for switching the processor into a ring three context along with its task's respective process descriptors to be implemented correctly. - Add md_set_ip() to update proc instruction pointer - Add stack definitions - Add stack mapping logic ... Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-16kern: proc: Add initialization code for ring 3Ian Moffett
This commit introduces several new functions for switching the processor into a ring three context along with its task's respective process descriptors to be implemented correctly. - Add md_set_ip() to update proc instruction pointer - Add stack definitions - Add stack mapping logic ... Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-16kern/amd64: mmu: Condence update into one line + fixIan Moffett
Condence the page table write into a single line and point the next table as a virtual address Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-16kern/amd64: mmu: Add routine to switch VASIan Moffett
This commit introduces a new mmu_write_vas() function to allow the caller to change the virtual address space used by the current processor. Signed-off-by: Ian Moffett <ian@osmora.org>
2025-09-16kern/amd65: mmu: Do not pass virtual address overIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>