Compare commits

..

22 Commits

Author SHA1 Message Date
bb7d460149
kernel/ATA: Pass extra information to DeviceRegistry
All checks were successful
continuous-integration/drone/pr Build is passing
This is needed since merging e7d482e from main.
2023-05-20 22:01:07 +02:00
51ca93d2b4
kernel+init: Create a device node in /dev to access the CDROM from userspace!
Still using PIO, though.
2023-05-20 22:01:07 +02:00
e1a6282fee
kernel/ATA: Read the CDROM's first sector using ATAPI PIO!!
Sadly, for some reason, DMA is not working right now.
This is a problem, as PIO is inconvenient. But hey, it works for now!
2023-05-20 22:01:07 +02:00
1437127455
kernel/x86_64: Implement writing to PCI fields 2023-05-20 22:01:07 +02:00
18d21abe8f
kernel/PCI: Add bit enum for the Command field 2023-05-20 22:01:07 +02:00
2a04adfe06
kernel: Actually register interrupt handlers properly 2023-05-20 22:01:07 +02:00
61fc1e9548
kernel/ATA: Calculate block sizes for ATA devices as well 2023-05-20 22:01:06 +02:00
d8b9ea4157
kernel/ATA: Send a READ CAPACITY packet to an ATA drive on initialization 2023-05-20 22:01:06 +02:00
1fbc8d0dda
kernel/ATA: Read the PCI Busmaster registers and start preparing for DMA 2023-05-20 22:01:06 +02:00
ebb6452ee6
kernel/ATA: Read the Busmaster base port and verify it 2023-05-20 22:01:06 +02:00
36386e541b
kernel: Handle device BARs properly 2023-05-20 22:01:06 +02:00
e81acab407
kernel/ATA: Read ATA strings properly instead of backwards
Now we can see the model string. What does it say...

"QEMU DVD-ROM". Let's go!
2023-05-20 22:01:06 +02:00
4db6bb25b8
kernel/ATA: Implement enough to send an IDENTIFY command and read the model number :) 2023-05-20 22:01:06 +02:00
57ccac47aa
kernel/ATA: Handle drive IRQs in compatibility mode 2023-05-20 22:01:05 +02:00
f75c4c9d9a
kernel/CPU: Allow passing arbitrary data to interrupt handlers 2023-05-20 22:01:05 +02:00
ee080174fc
kernel/ATA: Start reading/writing registers and detecting drives 2023-05-20 22:01:05 +02:00
f7667b40e6
kernel: Warn if no ATA controller is found 2023-05-20 22:01:05 +02:00
fc86888547
kernel: Add a KMutex class and use that for ATA::Controller locking 2023-05-20 22:01:05 +02:00
51d45bd37e
kernel/x86_64: Add basic ATA controller and channel identification 2023-05-20 22:01:05 +02:00
f5dfe5faac
kernel/PCI: Add more PCI field types 2023-05-20 22:01:04 +02:00
6554b448e9
kernel/x86_64: Add a way to register IRQ handlers from other kernel subsystems 2023-05-20 22:01:04 +02:00
2c798b8bf0
Update README to match repository description
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-20 22:00:52 +02:00

View File

@ -1,5 +1,5 @@
# Luna # Luna
A very basic POSIX operating system for desktop computers, written mostly in C++ and C. [![Build Status](https://drone.cloudapio.eu/api/badges/apio/Luna/status.svg)](https://drone.cloudapio.eu/apio/Luna) A very basic POSIX-based operating system for personal computers, written in C++. [![Build Status](https://drone.cloudapio.eu/api/badges/apio/Luna/status.svg)](https://drone.cloudapio.eu/apio/Luna)
## Another UNIX clone? ## Another UNIX clone?
[Yes, another UNIX clone](https://wiki.osdev.org/User:Sortie/Yes_Another_Unix_Clone). [Yes, another UNIX clone](https://wiki.osdev.org/User:Sortie/Yes_Another_Unix_Clone).