Commit Graph

  • e94cb2d3a7 Processor identification structures belliash 2023-02-10 17:14:12 +01:00
  • e645cf664c Set process and thread information in processor control block belliash 2023-02-09 17:30:24 +01:00
  • 47f399e987 Set current process and thread in processor control block belliash 2023-02-09 00:02:45 +01:00
  • c4a52938d2 Implement KeGetCurrentThread() routine belliash 2023-02-08 23:58:24 +01:00
  • e3a900088c Initial process and thread related structures belliash 2023-02-08 23:56:29 +01:00
  • 9132c47cd9 Initial process and thread related structures belliash 2023-02-08 23:40:58 +01:00
  • 929d3dfae7 Implement KeGetCurrentProcessorBlock() and KeGetCurrentProcessorControlBlock() routines for both amd64 and i686 belliash 2023-02-08 16:39:05 +01:00
  • d8c68ed003 Add endian conversion routines belliash 2023-02-08 16:33:57 +01:00
  • a32e18b237 Implement ArReadFSDualWord() routine belliash 2023-02-07 23:19:22 +01:00
  • 75c519a70c Use more generic name for this macro use pointer used behind it will point to kernel debugger after it gets initialized belliash 2023-02-07 19:37:44 +01:00
  • 67768ae7a3 Mark ArpIdentifyProcessor() as unimplemented belliash 2023-02-06 16:15:24 +01:00
  • f8d2ccc0d0 Add more debugging macros belliash 2023-02-06 16:10:32 +01:00
  • 9c7d961c5a Architecture specific initialization after processor init is done belliash 2023-02-06 15:53:11 +01:00
  • 385f0e6de0 Not all AMD64 CPUs support large pages and global pages, unfortunately belliash 2023-02-05 22:14:47 +01:00
  • 76f22fbdc4 Initialize segments and processor registers for i686 architecture belliash 2023-02-05 15:45:22 +01:00
  • 2ba42c5270 Update ideas belliash 2023-02-05 13:23:11 +01:00
  • 911903d0eb Add missing routine description belliash 2023-02-05 10:08:49 +01:00
  • 707c92e08a Boot loader no longer needs to do anything related to the stack belliash 2023-02-05 10:03:21 +01:00
  • d6aac59199 Let kernel initialize stack on it's own without relying on boot loader belliash 2023-02-05 09:55:59 +01:00
  • 0b743a5f26 Add stub routine for identifying processor belliash 2023-02-05 00:42:30 +01:00
  • c6cadbd655 Initialize MXCSR register belliash 2023-02-05 00:30:12 +01:00
  • 5eaf7d63a3 Initialize Page Attribute Table belliash 2023-02-05 00:14:34 +01:00
  • 55cdae7c83 Initialize AMD64 processor registers belliash 2023-02-04 23:40:03 +01:00
  • f181215341 Initialize segment registers belliash 2023-02-04 00:17:07 +01:00
  • f37722b6e6 Distinguish ProcessorBlock and ProcessorControlBlock belliash 2023-02-03 19:28:03 +01:00
  • b90f37dad4 Fill in Interrupt Descriptor Table (IDT) belliash 2023-02-03 18:40:10 +01:00
  • 648ad1636a Cleanup TSS initialization code belliash 2023-02-03 18:27:50 +01:00
  • 269214ed34 Another improvements to GDT belliash 2023-02-03 18:00:37 +01:00
  • a49d0804ce Add trap handlers for both i686 and amd64 belliash 2023-02-02 23:31:32 +01:00
  • 19f34d4b17 Cleanup the code belliash 2023-02-02 19:42:57 +01:00
  • 715f875c4f Set alignment and packing properly belliash 2023-02-02 17:01:18 +01:00
  • 2e2b01742a Definitions for setting structures alignment and packing belliash 2023-02-02 15:47:21 +01:00
  • 73fc7607cd There is no need to specify alignment of the structure in the forward reference belliash 2023-02-02 15:37:57 +01:00
  • 404f2f85c6 Cleanup the Interrupt Stack Table belliash 2023-02-01 23:47:57 +01:00
  • 7fc1f04cd0 TSS entry is already put into GDT table, just initialize it belliash 2023-02-01 23:37:12 +01:00
  • cbd21ced39 Use a size of the structure, not a pointer belliash 2023-02-01 22:38:36 +01:00
  • dc1a94b982 This is 'Processor Block' belliash 2023-02-01 22:02:07 +01:00
  • 3522539d4b Initialize Interrupt Descriptor Table (IDT) belliash 2023-02-01 21:56:17 +01:00
  • 1ef205d47b Initialize DoubleFault and NonMaskableInterrupt TSS entries belliash 2023-02-01 20:36:40 +01:00
  • e2813bcdaa Fix entries in Global Descriptor Table (GDT) belliash 2023-02-01 20:24:55 +01:00
  • 21fbe6febe Add IDT related definitions belliash 2023-02-01 20:14:10 +01:00
  • 5bbda188c6 IDT access levels and gate types belliash 2023-02-01 00:51:13 +01:00
  • 9a1e9b1084 Define TSS offsets belliash 2023-01-30 23:43:10 +01:00
  • 892c9eca86 Do not hardcode I/O map base belliash 2023-01-30 22:38:41 +01:00
  • a761d3125a Architecture specific initialization prior to processor structures initialization belliash 2023-01-30 20:34:05 +01:00
  • 6f068513cd Initial processor block initialization belliash 2023-01-30 19:07:05 +01:00
  • ebe6792f2b Add MSR (Model Specific Registers) values belliash 2023-01-30 17:59:00 +01:00
  • d3376ce33b This is no longer an idea belliash 2023-01-29 22:33:12 +01:00
  • 2bf15a5bb8 Fix pointer offset in PE relocation code belliash 2023-01-29 20:38:05 +01:00
  • ddffd0c582 Temporary kernel stack is no longer used belliash 2023-01-29 11:08:44 +01:00
  • df11473eac Cleanup xtldr code as it no longer need to initialize CPU structures belliash 2023-01-29 10:59:22 +01:00
  • bca7ac41b8 Initialize boot CPU structures inside kernel on i686 architecture belliash 2023-01-29 10:54:52 +01:00
  • 7ac434cb99 Move architecture specific globals to external header, as ex. there is no GDT on ARM belliash 2023-01-29 09:48:59 +01:00
  • 79a5027bca Cleanup AMD64 part of CPU initialization, as it has been moved to the kernel belliash 2023-01-29 01:01:36 +01:00
  • ce4e590347 Add missing forward declaration of ArInitializeProcessor() routine belliash 2023-01-29 00:57:06 +01:00
  • 900e71459a Add missing x86 descriptor sizes belliash 2023-01-29 00:54:36 +01:00
  • ae60753e33 Add missing source files for i686 architecture belliash 2023-01-29 00:52:05 +01:00
  • 7bf4a9ab8d Initialize boot CPU structures inside kernel on AMD64 belliash 2023-01-29 00:45:17 +01:00
  • 8733a23b20 Include kernel top header belliash 2023-01-29 00:34:34 +01:00
  • 757560ffeb Do not use EFI RunTime Services in kernel as they are not mapped correctly belliash 2023-01-29 00:32:52 +01:00
  • 9cd9a1eafa Correct typos belliash 2023-01-29 00:25:25 +01:00
  • 29ec28fafe Update ideas and known issues markdown belliash 2023-01-28 19:22:02 +01:00
  • 27e2fdf4f2 Introduce architecture library as new kernel subsystem and move selected routines into new subsystem belliash 2023-01-28 10:34:55 +01:00
  • 651113c4e8 Update Discord invitation link belliash 2023-01-27 23:37:20 +01:00
  • d5f9b20b51 Import kernel readme belliash 2023-01-27 22:59:53 +01:00
  • bf141fe25e Basic IDT setup in the bootloader belliash 2023-01-26 20:14:27 +01:00
  • e94e50b5d9 Implement HlLoadInterruptDescriptorTable() intrinsics for loading IDT belliash 2023-01-26 20:08:57 +01:00
  • 6613fdd32c Correct markdown belliash 2023-01-26 16:55:34 +01:00
  • efe0b45ae4 Import ideas and known issues belliash 2023-01-26 16:43:51 +01:00
  • b57e79aa7f Proceed with architecture specific initialization belliash 2023-01-25 19:37:13 +01:00
  • 8da38af489 Rename KepInitializeBootStructures() to KepInitializeStack() belliash 2023-01-25 19:28:12 +01:00
  • 3c3e93afc7 Save kernel initialization block earlier belliash 2023-01-25 18:45:08 +01:00
  • 3b08bcaa4f Setup processor context (GDT, PCR, TSS) and kernel startup stack before booting XTOS belliash 2023-01-25 18:39:07 +01:00
  • 3ad3149f80 Add descriptor structure definition belliash 2023-01-25 17:42:35 +01:00
  • bfc9db8b6d Unify KGDTENTRY and KIDTENTRY between architectures as much as possible belliash 2023-01-25 17:35:03 +01:00
  • 3ee759cc27 i686 Interrupt request levels definitions belliash 2023-01-25 17:18:27 +01:00
  • 7bd67d6210 Add GDT and Segments related definitions for i686 belliash 2023-01-25 17:13:24 +01:00
  • a366de618f AMD64 Interrupt request levels definitions belliash 2023-01-25 17:08:42 +01:00
  • 8f348c3954 Add GDT and Segments related definitions for AMD64 belliash 2023-01-25 17:05:15 +01:00
  • c4d53f12f2 Allocate memory for kernel startup stack belliash 2023-01-25 16:47:27 +01:00
  • b3bf613e1b Make sure paging has been successfully enabled belliash 2023-01-25 16:39:15 +01:00
  • 707dc37868 Fix type of Source parameter in HlLoadSegment() routine belliash 2023-01-24 23:08:48 +01:00
  • 35aa514f95 Implement HlLoadSegment() intrinsics routine belliash 2023-01-24 19:27:18 +01:00
  • d3d8d144a0 Implement HlLoadGlobalDescriptorTable() intrinsic belliash 2023-01-23 20:13:51 +01:00
  • adc6677c9d Code formatting belliash 2023-01-23 20:04:32 +01:00
  • c81b858757 Implement HlReadGSQuadWord() intrinsic belliash 2023-01-23 19:59:54 +01:00
  • 9fd21a8820 Update badges belliash 2023-01-23 15:33:33 +01:00
  • f20ab3e52e Implement HlLoadTaskRegister() for loading TSS segment selector into task register belliash 2023-01-20 20:24:05 +01:00
  • 9cbe2d458c Initial support for EFI framebuffer belliash 2023-01-19 16:23:39 +01:00
  • fb60724710 Add link to CI/CD artifacts belliash 2023-01-18 22:29:43 +01:00
  • 145fc17271 Pass framebuffer pitch information to the kernel belliash 2023-01-18 20:15:41 +01:00
  • 41a0a2b37c Shorter and longer version of the build timestamp belliash 2023-01-18 20:10:03 +01:00
  • 42af53c190 Add publishing task to the pipeline belliash 2023-01-18 00:23:14 +01:00
  • bb56641e4b Do not call SetVirtualAddressMap() as this might break boot process and runtime services are mapped anyway belliash 2023-01-16 21:58:30 +01:00
  • 1a93c198ed Add missing forward reference to _LOADER_GRAPHICS_INFORMATION_BLOCK structure belliash 2023-01-16 19:51:19 +01:00
  • b8df45ab6a Map framebuffer and fill information about it into kernel parameters belliash 2023-01-16 18:49:54 +01:00
  • 605597262c Initial version of EFI framebuffer module, currently support only GOP belliash 2023-01-16 18:41:25 +01:00
  • 289316b43b Print hexadecimal values in uppercase belliash 2023-01-16 15:55:38 +01:00
  • e3f0782053 Add enumeration of efi supported graphics protocols belliash 2023-01-16 00:10:44 +01:00
  • 5d74fb2bb5 Add UGA related structures belliash 2023-01-16 00:03:35 +01:00