summaryrefslogtreecommitdiff
path: root/arch/i386/boot (follow)
Commit message (Collapse)AuthorAgeFilesLines
* arch: i386: gdt.c: init the TSS before loading itDanny Holman2023-11-261-2/+5
| | | | | | | Perform some initialization routines on the TSS structure before loading its address. Signed-off-by: Danny Holman <dholman@gymli.org>
* arch: i386: boot.s: define functions for page managementDanny Holman2023-11-261-0/+27
| | | | | | | | Define the load_page_dir and enable_paging functions in assembly. This allows normal C code to initialize the CR3 register and control paging without using inline assembler. Signed-off-by: Danny Holman <dholman@gymli.org>
* arch: i386: boot.s: move C entry point to fileDanny Holman2023-11-261-10/+3
| | | | | | | Move the initial C entry-point to its own file. Call all the i386 specific initialization routines from the new i386_entry function. Signed-off-by: Danny Holman <dholman@gymli.org>
* arch: i386: boot: boot.sDanny Holman2023-11-261-8/+4
| | | | | | Fix several small bugs in assembler. Signed-off-by: Danny Holman <dholman@gymli.org>
* arch: i386: make serial_writestring inlineDanny Holman2022-03-221-14/+8
| | | | | | | | The serial_writestring function is small enough and platform-agnostic, and therefore it should be moved into the main serial header and marked as inline. Signed-off-by: Danny Holman <dholman@gymli.org>
* arch: i386: refactor the system call APIDanny Holman2022-03-221-3/+2
| | | | | | | The x86 system call/interrupt handlers should be refactored to be more readable. Signed-off-by: Danny Holman <dholman@gymli.org>
* arch: i386: move non-critial files out of bootDanny Holman2022-01-217-282/+0
| | | | | | | Move all files not needed for the bootstrap process out of boot and into the main x86 source directory. Signed-off-by: Danny Holman <dholman@gymli.org>
* arch: i386: add support for IRQs and system callsDanny Holman2022-01-155-2/+40
| | | | | | Add support for rudementary system calls and IRQ interrupts. Signed-off-by: Danny Holman <dholman@gymli.org>
* arch: i386: simplifiy GDT setupDanny Holman2022-01-154-68/+176
| | | | | | Simplify the setup and definitions of GDT/TSS entries. Signed-off-by: Danny Holman <dholman@gymli.org>
* arch: i386: simplify IDT setupDanny Holman2022-01-153-28/+125
| | | | | | Simplify the interrupt descriptor table setup and frame assembly. Signed-off-by: Danny Holman <dholman@gymli.org>
* arch: i386: add support for tab charactersDanny Holman2021-11-291-0/+10
| | | | | | Add support for the tab character in the virtual terminal. Signed-off-by: Danny Holman <dholman@gymli.org>
* arch: i386: rename the GDT array pointerDanny Holman2021-10-091-7/+7
| | | | | | | Rename the array/pointer to the GDT array in gdt.c pointer to be a bit clearer. Signed-off-by: Danny Holman <dholman@gymli.xyz>
* arch: i386: include more information in IDTDanny Holman2021-10-092-62/+94
| | | | | | Include information about the current stack frame in the IDT handler(s). Signed-off-by: Danny Holman <dholman@gymli.xyz>
* arch: i386: add PIC register supportDanny Holman2021-09-281-0/+14
| | | | | | | Add functions that let the OS read the internal state registers of the 8259 PIC. Signed-off-by: Danny Holman <dholman@gymli.xyz>
* arch: i386: fix IDT exception handlerDanny Holman2021-09-282-45/+73
| | | | | | | Fix the i386's general exception handler to actually work. Fix provided by Jon Sanderson (jjs295356@gmail.com). Signed-off-by: Danny Holman <dholman@gymli.xyz>
* arch: i386: fix GDT segment mismatchDanny Holman2021-09-281-1/+1
| | | | | | | Fix a bug in which the size of the main GDT array and the actual number of descriptors are different values. Signed-off-by: Danny Holman <dholman@gymli.xyz>
* arch: i386: add support for 8259 PICDanny Holman2021-09-282-1/+55
| | | | | | Add support for the 8259 programmable interrupt controller. Signed-off-by: Danny Holman <dholman@gymli.xyz>
* i386: create idt.c and isr.sDanny Holman2021-08-303-1/+115
| | | | | | Create files that add IDT support for i386. Signed-off-by: Danny Holman <dholman@gymli.xyz>
* arch: i386: add ring-3 descriptors to the GDTDanny Holman2021-08-271-1/+3
| | | | | | Add two ring-3 segment discriptors to the GDT during gdt_install. Signed-off-by: Danny Holman <dholman@gymli.xyz>
* arch: i386: surround GDT macros with parensDanny Holman2021-07-251-15/+14
| | | | | | | Add parenthesis around the GDT setup macros. This is done to prevent having to do it when using them. Signed-off-by: Danny Holman <dholman@gymli.xyz>
* arch: i386: add GDT setup routinesDanny Holman2021-07-242-0/+97
| | | | | | Add a set of routines that setup the x86's global descriptor table. Signed-off-by: Danny Holman <dholman@gymli.xyz>
* arch: i386: move the kernel to high memoryDanny Holman2021-07-202-7/+50
| | | | | Move the start of the kernel image to the "higher half" of memory. This also enables paging.
* i386: create terminal_scroll functionDanny Holman2021-01-281-10/+25
| | | | | | Add support for scrolling the terminal at the end of the VGA buffer. Signed-off-by: Danny Holman <dholman@gymli.xyz>
* i386: add support for newlinesDanny Holman2021-01-251-0/+7
| | | | | | Add support for the newline character in the TTY layer. Signed-off-by: Danny Holman <dholman@gymli.xyz>
* x86: reorganize the i386 directoryDanny Holman2021-01-245-0/+142
Add structure to the internals of the x86 directory. Signed-off-by: Danny Holman <dholman@gymli.xyz>