summaryrefslogtreecommitdiff
path: root/sys/arch/amd64
AgeCommit message (Collapse)Author
26 hourskernel: spawn: Add proper spawn impl + SYS_spawnIan Moffett
This commit introduces a more complete spawn implementation as well as the SYS_spawn syscall and a libc interface. Signed-off-by: Ian Moffett <ian@osmora.org>
42 hourskernel: proc: Do not introduce fork()mainIan Moffett
Simplicity is divine, fork() may be powerful but is no longer simple. It became a thing in the late 70s during the early days of UNIX when computing was simple, when CPUs were only 16-bits, MMUs were not prevalent and RAM was only 512 KB. However it isn't 1971 anymore, process management, CPUs and memory architecture has advanced significantly since. This commit ceases work on the fork() syscall as implementing it would only introduce unnecessary complexity, security issues, hefty processing overhead and would perpetuate what should now be considered legacy. The current best alternative would be providing a form of process spawning as well as a mechanism to wait for the child process to complete. Signed-off-by: Ian Moffett <ian@osmora.org>
4 dayskernel/amd64: i8042: Flush console for reset logsIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-04-18kernel/amd64: isa: Improve polling and bufferingIan Moffett
- Remove OBUF_WAIT() and IBUF_WAIT() macros - Buffer to console input Signed-off-by: Ian Moffett <ian@osmora.org>
2025-04-18kernel/amd64: isa: Attempt to wake up PS/2 linesIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-04-17kernel: cons: Default theme to amber shadeIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-04-17kernel/amd64: isa: Add i8042 keyboard supportIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-04-17kernel/amd64: machdep: Add sync.h headersIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-04-17kernel: Enable interrupts upon sched entryIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-04-17kernel/amd64: isa: Add support for pcspkrIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-03-19kernel/amd64: bus: Check bus_set() statusIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-02-21kernel: Update kernel log styleIan Moffett
Kernel logs must now all be lowercase for consistency. A new style called Peripheral Description Notation (PDN) has also been introduced to describe devices. Signed-off-by: Ian Moffett <ian@osmora.org>
2025-02-20kernel/amd64: i8237: Use word register for modeIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-02-20kernel/amd64: i8237: Optimize set channel selectIan Moffett
There is no need for an intermediary register before setting %AL. This commit removes redundant instructions to reduce the amount of cycles used for this operation. Signed-off-by: Ian Moffett <ian@osmora.org>
2025-02-20kernel/amd64: isa: Add initial i8237 driver implIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-02-19kernel/amd64: bus: Add bus resource interfaceIan Moffett
This commit introduces a bus resource abstraction. A bus resource encapsulates bus specific information and semantics. Along with abstracting away bus specific details and providing an overall smoother interface, this additionally provides flexibility, access control and security by keeping track of permissions and allowing things to be turned on or off. Signed-off-by: Ian Moffett <ian@osmora.org>
2025-02-16project: Update copyright date to 2025Ian Moffett
Was supposed to happen on Jan 1, sorry! Happy late new year! Signed-off-by: Ian Moffett <ian@osmora.org>
2025-02-15kernel/amd64: i8254: freq_hz -> divisorIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-02-15kernel/amd64: lapic: Get rid of unused functionIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-02-15kernel/amd64: uart: Fix newline errorsIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-02-15kernel: amd64: Add more defines to UART driverQuinn Stephens
Added more defines and comments to the UART driver, based on the 16550 chip datasheet, to make it more clear how each operation works. Signed-off-by: Quinn Stephens <quinn@osmora.org> Signed-off-by: Ian Moffett <ian@osmora.org>
2025-01-27kernel/amd64: pci: Add missing includeIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2025-01-27kernel/amd64: pci: Add PCI MSI-X EOI wrapperIan Moffett
Add machine-independent PCI MSI-X EOI wrapper to Local APIC EOI function Signed-off-by: Ian Moffett <ian@osmora.org>
2024-12-20kernel/amd64: proc: Protect SWAPGS with LFENCEIan Moffett
Ensure all loads preceding SWAPGS are serialized using LFENCE. This mitigates the possibility of SWAPGS being speculatively bypassed which would lead to security issues. Signed-off-by: Ian Moffett <ian@osmora.org>
2024-12-20kernel/amd64: backtrace() -> md_backtrace()Ian Moffett
Maintain naming consistency between public machine-dependent and machine-independent functions. Signed-off-by: Ian Moffett <ian@osmora.org>
2024-12-20kernel/amd64: Add panic backtraceIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2024-12-17kernel/amd64: pci: Allow mapping of 64 bit BARsIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2024-10-27kernel/amd64: acpi: Remove trailing newlineIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2024-08-16kernel/amd64: trap: Handle user trapsIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2024-08-12kernel/amd64: proc: Set curtd upon thread kickIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2024-07-29kernel/amd64: Don't try IPIs with null cpu_infoIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2024-07-29kernel/amd64: cpu: Write cpu_info to IA32_GS_BASEIan Moffett
Instead of writing cpu_info to IA32_KERNEL_GS_BASE then using SWAPGS, write the cpu_info pointer directly to IA32_GS_BASE Signed-off-by: Ian Moffett <ian@osmora.org>
2024-07-29kernel/amd64: Use only defines + handle err codesIan Moffett
- Use only defines in frame.h - Improve handling of trap error codes Signed-off-by: Ian Moffett <ian@osmora.org>
2024-07-16kernel/amd64: trap: Set IPL_HIGH in trap_handler()Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2024-07-16kernel/amd64: mp: Lock only around cpu_startup()Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2024-07-11kernel/amd64: pci: Add support for PCI MSI-XIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2024-07-11kernel/amd64: bus: Move MMIO_OFFSET to bus.hIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2024-07-10kernel/amd64: reboot: Halt all with REBOOT_HALTIan Moffett
This commit changes how reboot() handles REBOOT_HALT. Now instead of one core being halted, all cores will be halted through an IPI to a halt vector. Signed-off-by: Ian Moffett <ian@osmora.org>
2024-07-10kernel/amd64: mp: Add missing "static"Ian Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2024-07-10kernel/amd64: bus: Fix memory mapping conflictsIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2024-07-09kernel/amd64: pci: Add function to map BARsIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2024-07-09kernel/amd64: bus: Add bus abstraction layerIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2024-07-09kernel/amd64: Add function to set cache policyIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2024-07-09kernel: Add PCI driverIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2024-07-07kernel/amd64: Add serial debug loggingIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2024-07-06kernel/amd64: Add 8250 UART driverIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2024-07-04kernel/amd64: Add syscall support + SYS_exitIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2024-07-02kernel/amd64: machdep: Fix mistake in commentIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2024-07-02kernel/amd64: proc: Fix typo in commentIan Moffett
Signed-off-by: Ian Moffett <ian@osmora.org>
2024-07-02kernel/amd64: Handle the user GS segment registerIan Moffett
This commit introduces usage of swapgs to switch out the GS register with the user GS register. An md_td_kick() function is also introduced to start up user threads. The this_cpu() function uses the GS register to read the current CPU structure using a new "self" field. Signed-off-by: Ian Moffett <ian@osmora.org>