f293377e31
Kernel: Dynamically allocate PCI devices
...
There was no need to prealloce almost a 5 MiB buffer for PCI all
possible pci devies :D
2026-05-04 20:26:02 +03:00
a9ceab0415
Kernel: Use syscall/sysret for syscalls in x86_64
2026-01-09 15:18:58 +02:00
96767f5ca8
Kernel: Implement PCI interrupt routing
...
This does not really work but I have no idea what I'm doing wrong
2025-04-01 23:09:30 +03:00
22b32a0fe5
Kernel: Expose PCI interrupt mechanism from PCIDevice
2025-02-10 22:57:25 +02:00
2d11ce9669
Kernel: Fix interrupt system
...
I had not understood how MSIs work and I was unnecessarily routing them
through IOAPIC. This is not necessary and should not be done :D
Also MSIs were reserving interrupts that IOAPIC was capable of
generating. Now IOAPIC and MSIs use different set of interrupts so
IOAPIC can use more interrupts if needed.
2024-09-27 15:31:31 +03:00
368f5e9799
Kernel: Add command lineoption nousb that will disable usb controller
2024-08-16 22:09:24 +03:00
08cbd009ac
Kernel: PCI don't report multi function bit with header_type()
2024-06-29 22:11:55 +03:00
2a4d986da5
Kernel: Add preliminary support for PCIe
...
Only segment 0 is supported, but devices can now be accessed through
mmio.
Adding more segments would require adding argument to every PCI API so
it is left for later.
2024-05-25 20:50:07 +03:00
dfe5a2d665
All: Cleanup all files
...
Add newline to end of files and remove whitespace from end of lines
2024-01-24 15:53:38 +02:00
c6130f33d7
Kernel: Implement MSI, MSI-X and interrupt reservation
2024-01-13 18:21:21 +02:00
0fdf8b6f68
Kernel: Fix PCI bugs
...
IO BarRegion used vaddr instead of the correct paddr. Add API for
memory region iobase query.
2023-10-16 16:50:49 +03:00
73b9c28457
Kernel: PCIDevice stores its vendor id and device id
2023-10-16 01:44:54 +03:00
89c975350d
Kernel: PCI can now get interrupts for devices
2023-10-11 22:18:58 +03:00
f27974dd3c
Kernel: PCI cleanup PCI::Device API
2023-10-11 21:52:08 +03:00
f21d4e794c
Kernel: Rework whole ATA driver structure
...
Make ATA driver more compatible when we are adding SATA support
2023-10-08 02:50:23 +03:00
16eb055737
Kernel: Add some sanity assertions/functions
2023-09-29 02:03:19 +03:00
58506c5bd1
Kernel: Add config read/write api to PCI
2023-09-22 17:20:35 +03:00
11717f90c1
Kernel: PCI devices can now create region for BAR
...
This creates either MEM or IO region for read/write access to PCI
device.
2023-09-22 17:20:35 +03:00
a740bf8df4
1000th COMMIT: Kernel: Add basic E1000 driver
...
This driver is only capable to read mac address and enable and read
link status
2023-09-22 17:20:28 +03:00
9bcfb34524
Kernel: Rewrite whole device structure
...
We now have DevFileSystem which is derived from RamFileSystem. All
devices are RamInodes. We don't have separate DeviceManager anymore.
To iterate over devices, you can loop througn every inode in devfs.
2023-07-10 23:17:14 +03:00
80c8d52dc5
Kernel: add more functionality to PCI
2023-07-09 23:04:11 +03:00
33393335c8
Kernel: PCI devices now report their prog_if
2023-04-19 16:43:05 +03:00
a9acf1f6dc
Kernel: PCIDevice is now class with getters and constructor
2023-03-08 02:41:44 +02:00
04bb08d27f
Kernel: Add basic PCI enumeration
2023-02-26 02:56:53 +02:00