Commit Graph

  • f19afbddb7
    Do not create new bootloader stack as it is not needed any longer and kernel will use its own stack belliash 2023-01-03 23:04:11 +01:00
  • b22303003c
    Add architecture name belliash 2023-01-03 16:28:14 +01:00
  • bb95223501
    Implement BlActivateSerialControllerIO() routine for activating I/O space access on PCI(E) serial controllers belliash 2023-01-03 00:10:24 +01:00
  • d8f2135ac6
    Add more PCI(E) related definitions belliash 2023-01-02 23:59:32 +01:00
  • c91708034b
    Correct comments belliash 2023-01-02 18:06:54 +01:00
  • c5a7d0fe05
    Improvements in COM port support belliash 2023-01-02 16:14:00 +01:00
  • e8e7d7b905
    Add missing forward declaration belliash 2023-01-02 16:11:50 +01:00
  • 4c031f4075
    Add I/O related type definitions belliash 2023-01-02 16:10:43 +01:00
  • b6b25ed04d
    Initialize serial port only debugging enabled belliash 2023-01-01 19:20:34 +01:00
  • 94e9fa1293
    Allow to provide custom COM port address belliash 2022-12-29 23:44:52 +01:00
  • feabac2d98
    Set XTOS NT compatibility version belliash 2022-12-29 22:39:39 +01:00
  • 58527ce5cb
    Set correct image version belliash 2022-12-29 22:37:39 +01:00
  • 7f21e4f19c
    Dump EFI memory mappings belliash 2022-12-29 17:09:44 +01:00
  • 6a27ea140b
    Print xtldr debug messages only when debugging enabled belliash 2022-12-28 23:30:03 +01:00
  • e6a7918bac
    Fix release build belliash 2022-12-28 23:28:49 +01:00
  • dec021b1ec
    Reorganize early debug printing; initialize kernel stacks when needed belliash 2022-12-28 23:11:35 +01:00
  • 75ac59f48a
    Fix DEBUG/RELEASE building options belliash 2022-12-28 17:15:21 +01:00
  • 9dc0e60f28
    We support EFI-enabled systems only and such machines should support PAE, so there is no need for XTLDR to support non-PAE x86 hardware belliash 2022-12-28 15:57:03 +01:00
  • fcfa575bff
    Implement HlReadTimeStampCounter() routine belliash 2022-12-27 23:28:27 +01:00
  • f46615f92c
    Implement HlInvalidateTlbEntry(), HlReadModelSpecificRegister() and HlWriteModelSpecificRegister() routines belliash 2022-12-27 23:19:33 +01:00
  • 938cd175c8
    Export HlIoPortInShort(), HlIoPortInLong(), HlIoPortOutShort() and HlIoPortOutLong() routines belliash 2022-12-27 22:48:10 +01:00
  • 602d89ef27
    Fixes in HlIoPortInShort() and HlIoPortInLong() routines belliash 2022-12-27 22:43:19 +01:00
  • 9828b23400
    Implement HlIoPortInShort(), HlIoPortInLong(), HlIoPortOutShort() and HlIoPortOutLong() routines belliash 2022-12-27 22:26:45 +01:00
  • 5c5f0a6df9
    Add missing routine documentation belliash 2022-12-27 22:13:48 +01:00
  • bffb93b58c
    Add missing calling convention belliash 2022-12-27 22:05:46 +01:00
  • 6d77ff42c5
    Loop over halt; add missing calling convention belliash 2022-12-27 20:12:59 +01:00
  • 5b75d005a7
    Implement HlClearInterruptFlag() and HlSetInterruptFlag() intrinsic routines belliash 2022-12-27 18:54:01 +01:00
  • 8f3a4aef60
    Code formatting belliash 2022-12-23 22:27:08 +01:00
  • db1b47e50e
    Initialize CpuRegisters variable to silence a warning belliash 2022-12-23 14:43:36 +01:00
  • 93ad0b4ea0
    Set valid calling convention for HAL routines belliash 2022-12-23 14:41:11 +01:00
  • 3ab1695968
    Common routines for reading from and writing to CPU control registers belliash 2022-12-23 14:30:52 +01:00
  • 3e8bdfe9fe
    Add missing forward routines definitions belliash 2022-12-23 00:09:33 +01:00
  • df8de3f85f
    Add missing routines documentation belliash 2022-12-22 23:41:19 +01:00
  • 7496c7203d
    Add missing routines documentation belliash 2022-12-22 23:29:16 +01:00
  • 4d68b93ed3
    Small code formatting and refactoring belliash 2022-12-22 23:19:23 +01:00
  • e9d30a0fd9
    Add missing forward structures definitions belliash 2022-12-22 22:58:52 +01:00
  • 8b02fb6c3f
    Mostly update comments in PE/COFF module belliash 2022-12-21 23:02:37 +01:00
  • d158525659
    Add missing documentation for BlCreateStack() routine belliash 2022-12-21 22:34:59 +01:00
  • 6c4496f839
    KERNEL_STACK_SIZE should be expressed in bytes as the name suggests, calculate number of pages where needed belliash 2022-12-21 22:24:16 +01:00
  • dc2570ca8e
    Serial port should be working all the time, so announce that now booting the kernel belliash 2022-12-21 20:52:53 +01:00
  • cf828a6896
    Fill in kernel initialization block belliash 2022-12-21 20:04:20 +01:00
  • 652e3293b1
    Get rid of EfiImageHandle and EfiSystemTable in UEFI_FIRMWARE_INFORMATION belliash 2022-12-20 23:08:28 +01:00
  • 51886a05dd
    Get rid of boot services code after exiting boot services belliash 2022-12-20 23:06:32 +01:00
  • 7c38efc802
    Update boot sequence and check PE/COFF image machine type compatibility belliash 2022-12-20 19:11:15 +01:00
  • edee9a8ec6
    Rework BlGetMemoryMap() routine to use EFI_MEMORY_MAP structure; map EfiBootServicesData instead of EfiReservedMemoryType belliash 2022-12-20 18:59:36 +01:00
  • acda7aa37c
    Add EFI_MEMORY_MAP structure definition belliash 2022-12-20 15:52:15 +01:00
  • eb5998c58e
    Add a way to check PE/COFF image machine type belliash 2022-12-20 15:37:13 +01:00
  • 7bcdd8562d
    Several changes to EFI memory mapping * Move EFI memory type conversion to separate routine * Never map VRAM * Map only pages not exceeding the lowest physical page belliash 2022-12-19 22:50:03 +01:00
  • 6871291c9a
    Basic steps in XTOS boot protocol belliash 2022-12-14 22:17:17 +01:00
  • 8b9c6780d5
    Code formatting belliash 2022-12-13 22:37:47 +01:00
  • b2b6cd7e0f
    Add targets for testing ExectOS inside QEMU VM belliash 2022-12-13 20:07:15 +01:00
  • 03ebd3d273
    Add missing EFI memory definitions belliash 2022-12-13 15:49:44 +01:00
  • 0b9f398761
    Tell the linker that ExectOS can handle addresses larger than 2GB belliash 2022-12-11 23:31:19 +01:00
  • 9f4db475bb
    Implement HlHalt() intrinsic routine and add basic definitions for kernel services belliash 2022-12-11 23:09:35 +01:00
  • 0572b208f1
    Add full paging support for AMD64 and i686 architectures, including PAE support belliash 2022-12-11 20:14:04 +01:00
  • 324a88cc01
    Implement HlCpuId() routine and corresponding structures for issueing CPUID instruction belliash 2022-12-11 17:40:56 +01:00
  • 2b679c11d4
    Fix a bug in BlAddVirtualMemoryMapping() routine causing PF (Page Fault) on systems with more than 3GB of RAM belliash 2022-12-11 13:56:40 +01:00
  • 8beb7c13ec
    Implement BlCreateStack() for i686 architecture belliash 2022-12-07 23:01:59 +01:00
  • 42c762ddf8
    Add missing stub for i686 builds belliash 2022-12-07 22:07:41 +01:00
  • 900e86c9da
    Create new stack and then boot XTOS, export more routines with the loader protocol belliash 2022-12-07 20:34:16 +01:00
  • d50fb7c37d
    Implement BlCreateStack() belliash 2022-12-07 19:46:36 +01:00
  • 43c16d054d
    Use PVOID instead of HARDWARE_PTE to allow different variable types for different architectures belliash 2022-12-07 18:54:21 +01:00
  • 93fa2aed67
    Implement BlMapVirtualMemory() routine for recursive mapping belliash 2022-12-06 23:32:31 +01:00
  • 3876414a48
    Implement BlAddVirtualMemoryMapping() and BlInitializeVirtualMemory() routines belliash 2022-12-06 17:49:00 +01:00
  • 2f03f84a20
    Move memory related routines to a separate file and implement BlGetMemoryMap() routine belliash 2022-12-05 20:08:18 +01:00
  • 6b2f34f287
    Store physical address as well in the image context belliash 2022-12-04 22:46:33 +01:00
  • b89121fded
    Implement routines for accessing and manipulating CPU control registers belliash 2022-12-02 23:03:42 +01:00
  • b275caf161
    Implement RtlRemoveEntryList() routine belliash 2022-11-28 23:00:20 +01:00
  • cba4a065ba
    Add missing comments belliash 2022-11-23 20:51:40 +01:00
  • 519df2ad11
    Allow to set VirtualAddress of loaded module belliash 2022-11-23 20:34:20 +01:00
  • 2cb2328f45
    Initial XtpLoadModule() implementation belliash 2022-11-17 22:44:53 +01:00
  • 0db01053ab
    Code formatting belliash 2022-11-16 20:06:52 +01:00
  • 5ec08cb84a
    Implement PeGetSubSystem() routine belliash 2022-11-16 15:03:33 +01:00
  • 9f43ad06af
    Implement PeRelocateImage() routine belliash 2022-11-15 23:31:35 +01:00
  • 131275e788
    Import loader structures definitions belliash 2022-11-15 20:16:23 +01:00
  • df5eab737b
    Add PE/COFF image characteristics belliash 2022-11-15 20:14:28 +01:00
  • 3125a25617
    Add three most important linked lists into the kernel initialization block belliash 2022-11-15 19:54:02 +01:00
  • ee9f2df6a6
    Properly relocate PE/COFF image belliash 2022-11-15 00:19:21 +01:00
  • fd4e9ffe63
    Fix compiler warning for 32bit build, use proper data types belliash 2022-11-14 17:58:53 +01:00
  • e37e5b97af
    Initial version of the kernel initialization block, needed to start the kernel belliash 2022-11-12 23:17:44 +01:00
  • 2dd7b09fbb
    Make sure PE image is executable belliash 2022-11-12 19:16:00 +01:00
  • b03c9c2a25
    Further PE/COFF module improvements belliash 2022-11-12 12:37:49 +01:00
  • 60c56c4462
    Firmware dependent XT structures belliash 2022-11-12 12:21:08 +01:00
  • c2b720fbd8
    Add missing PE subsystem belliash 2022-11-07 23:16:48 +01:00
  • 5c5c6b7a5e
    Initiate boot up sequence belliash 2022-11-07 20:41:21 +01:00
  • f0868b91ec
    Initial XTOS boot protocol support belliash 2022-11-07 20:21:07 +01:00
  • 3c6136811b
    Use shorter and more readable variable names belliash 2022-11-07 20:06:19 +01:00
  • 9aa6d6913a
    Store ARC name as well as system path belliash 2022-11-07 15:53:50 +01:00
  • 66713ba461
    Print more accurate message belliash 2022-11-07 15:51:27 +01:00
  • 2f16a8534c
    Code cleanup belliash 2022-11-06 20:03:49 +01:00
  • c8f99ad6ed
    Initial PE/COFF support for loading image files belliash 2022-11-06 19:59:38 +01:00
  • 4a364212de
    Fix 4KB pages allocation belliash 2022-11-05 21:59:55 +01:00
  • bef6b5a589
    Import ExectOS ASCII logo belliash 2022-11-01 19:54:08 +01:00
  • 24fac8208b
    Update OVMF variables belliash 2022-11-01 19:51:14 +01:00
  • 72ec6819a6
    Fixes and optimizations in PE/COFF structures belliash 2022-11-01 19:11:12 +01:00
  • 2d5986b514
    Add universal (both 32bit and 64bit) PECOFF_IMAGE_NT_HEADERS belliash 2022-10-31 10:08:09 +01:00
  • 3412f97fe4
    Missing FileInfo protocol GUID belliash 2022-10-30 22:26:16 +01:00
  • f5e9bd11f1
    Implement BlEfiMemoryAllocatePages() and BlEfiMemoryFreePages() for manipulating memory pages belliash 2022-10-30 22:24:21 +01:00
  • b29162841c
    Get rid of BlEfiDirectorySeparator() routine and allow GetVolumeDevicePath() to store ARC name belliash 2022-10-30 12:21:09 +01:00
  • c09b121178
    Rework BlEfiDirectorySeparator(), now it operates on wide strings belliash 2022-10-26 22:11:42 +02:00