Commit Graph

17 Commits

Author SHA1 Message Date
Eric-Paul Ickhorn 18e5b049a4
Add PCI register read utility
The newly added utility routine reads the content of a known PCI
device's register given the index assigned to the device during
enumeration and the index of the register (and the PCI driver area,
but that is implied).
2024-07-23 01:01:20 +02:00
Eric-Paul Ickhorn 1285994cbf
Improve coding style of PCI device enumerator
The arguments of all of the statements are now indented and one or two
comments have been rewritten partially, improving readability.
2024-07-23 00:51:04 +02:00
Eric-Paul Ickhorn 4d9b1e390d
Make PCI enumeration write more information
The PCI enumeration did, until now, only write a PCI device's address
into the device area. Now, it also writes the class and subclass.
2024-07-21 10:26:32 +02:00
Eric-Paul Ickhorn 6ce831bbeb
Fix text display for rows other than the first
Because the calculation of the byte offset within the framebuffer was
wrong, the framebuffer could only be written to on the first line.
That is now fixed.
2024-07-21 06:01:41 +02:00
Eric-Paul Ickhorn 4acf6f3a44
Add hexadecimal dump function
The function which is added with this commit writes a caller-supplied
hexadecimal string of a caller-supplied length to the display, nibble
by nibble, leaving the background black and making the text white.
2024-07-21 02:54:48 +02:00
Eric-Paul Ickhorn 6342b433b4
Add main PCI driver file and device enumeration
In this commit, the PCI driver can finally enumerate the devices in
the system. Some other things are still not pushed.
2024-07-20 18:54:10 +02:00
Eric-Paul Ickhorn f573f49874
Fix GDT error offsetting memory by some bytes
The error in the GDT caused the whole memory space to be offset by
128B or 256B (It's not entirely sure which one of those). This was
only made visible by later changes, but now it's fixed.
2024-07-19 00:12:52 +02:00
Eric-Paul Ickhorn 44ca45e8f1
Finish up GDT, get linear address space working
The GDT is now finally set and produces a linear address space.
Execution continues at 'stage2_true_entry'.
2024-07-06 00:12:07 +02:00
Eric-Paul Ickhorn 0d49245a60
Delete GDT-related files
This commit deletes the gdt.asm for the i386 architecture as it was
quite buggy in that state. In a short while, the real GDT code which
works is going to be committed.
2024-07-06 00:12:06 +02:00
Eric-Paul Ickhorn 993864e364
Save progess, then delete GDT for rewrite
This commit saves the progress made on the GDT; the files are deleted
quickly thereafter as the code was quite buggy.
2024-07-06 00:12:06 +02:00
Eric-Paul Ickhorn 83eb29d55c
Try to fix GDT; unsuccessful
This commit just existed because of a misunderstanding leading to the
belief that the GDT was finally working; it wasn't though.
2024-07-06 00:12:06 +02:00
Eric-Paul Ickhorn 776da2f85a
Add README.md for loader on i386
This commit adds a README.md file for the loader partition in the i386
architecture version. The README contains basic information about what
the loader partition has to do and to some degree on how it should be
accomplishing those tasks.

It is just general information which can be useful to have for looking
information up after some time.
2024-07-06 00:12:06 +02:00
Eric-Paul Ickhorn 3a2518ca8f
Add build script
This commit adds a build script for the loader partition. Currently,
it is very simplistic, but it works for assembling the entry.asm,
which in turn includes all other files.
2024-07-06 00:11:14 +02:00
Eric-Paul Ickhorn 5180348c39
Add stage 2 loader entry point
This commit adds the entry point for the second stage of the loader.
It currently doesn't contain a lot of code, but it will have to expand
in the next bit of time.
2024-07-06 00:08:57 +02:00
Eric-Paul Ickhorn d773a8f9e2
Add memory utilities and math utils
This commit adds the well known primitive memory functions:

- Copy Memory
- Compare Memory for being equal
- Set Memory to a value

It also adds a math utility file at the according location.
2024-07-06 00:07:08 +02:00
Eric-Paul Ickhorn c3f2c7fbfc
Intermediate commit to add GDT
In this commit, it was tried to set a linear GDT. It didn't work; but
in the future, it will.
2024-07-06 00:05:17 +02:00
Eric-Paul Ickhorn 94a228b278
Add A20 line check
This commit adds a check for whether the A20 line is usable; checking
whether more than one megabyte of RAM can be used. If it isn't usable,
it currently isn't activated, but rather, the boot process is stopped.
2024-07-06 00:03:48 +02:00