summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2026-03-28Cmake build generator support: toolchain fileAlexey Gavrilov5-21/+20
Two toolchain files for clang and gcc compilers under x86 platform. Debug flags also passed at the configure time. Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
2026-03-27Cmake build generator support: build stageAlexey Gavrilov39-84/+415
Multi-target architecture implementation: each root source code directory presents the one *INTERFACE* target to it's subdirectory subtargets that link only as *STATIC* library. For instance, *arch* directory presents *Architecture* target then *Architecture* target has *CPUID*, *IO*, *PORT* and etc. dependencies Exact order of linking targets is: boot.o CRTIBUNDLE <TARGETS> CRTNBUNDLE. Sequence destruction cause to UB. Please to pay attention to this. TODO - Debug information - Build type - Toolchain file - Image creation - Build by WinGW compiler on Windows platform (optional) Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
2025-12-20Global variables initialization implementationlinker_scriptAlexey Gavrilov4-6/+27
User implementation of C runtime library objects (`crti.s` and `crtn.s`) for initialization (termination functionality are ignored). Changing files order passed to the linker. Rough order is: boot.s crti.o crtbegin.o other-link-objects.o crtend.o crtn.o Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
2025-12-20Linker script refactorAlexey Gavrilov1-10/+18
In general this update touching sections for initialization and destruction of global variables. DISCARD sections added (.fini and .comment) and particular sections (.ctors, .dtors, .init, .fini) moved into more common sections (.rodata and .text) accordingly. This decision allows to save a some RAM. Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
2025-12-20Linker script reworkAlexey Gavrilov4-59/+77
`memory.ld` is a architecture-dependent ld config provides some general symbols which every `memory.ld` config must assign and memory regions associated with each output section. 'linker.ld' config file presents segments configuration. Multiboot section filling move in the 'linker.ld' file. Recommendation for further patches: controlled logic implementation for multiboot version and header/entries in build configuration tool (CMake or make). For instance, multiboot version and video mode selection through variable passing in build system: `cmake ... -DMULTIBOOT_VERSION=2 -DMULTIBOOT_VIDEO_MODE=TEXT_VIDEO_MODE` or 'export MULTIBOOT_VERSION=2; export MULTIBOOT_VIDEO_MODE=TEXT_VIDEO_MODE'. Then build system do proper filling of `.multiboot` section depends on passing variables. Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
2025-12-11Defines refactoring in msr modulecpuid_refactorAlexey Gavrilov2-16/+26
New cpuid model uses instead of old in some msr definitions. Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
2025-12-11Put in cpuid some definitions and declarationsAlexey Gavrilov2-311/+110
Declarations: `acquireInformation` for two extended cpuid commands. Overloading `operator&` for enum classes in `VersionInfo` structure to get proper bit value. All declarations from ==Cpuid.h== file are define in the corresponding cpp file. Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
2025-12-01Refactoring cpuid model interactionAlexey Gavrilov6-365/+286
Patch for support CPU identification feature. Model smash on two pieces: platform-independent and dependent accordingly. The first obtains architecture details from CPU by special registers or execute instruction and filling proper structure. The second piece needs for more universality to use in independent code. Currently, platform-independent part supports only x86 cpuid(0h,01h) leafs. Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
2025-05-10Kheap section + metadataAlexey Gavrilov4-7/+36
2024-05-27delete arch fileAlexey Gavrilov3-9/+2
2024-05-24Merge pull request #9 from rebovas/interrupts_picHEADmainAlexey Gavrilov15-169/+948
Pic + Tuple + refactor PrimaryInitialization class
2024-05-24Pic + Tuple + refactor PrimaryInitialization classAlexey Gavrilov15-169/+948
2024-04-10Merge pull request #8 from rebovas/msrAlexey Gavrilov10-14/+490
Msr + interrupts implement + crude implementation of IDT filling
2024-04-10VGADisplay some updatesAlexey Gavrilov2-3/+0
2024-04-10MSR + IDT + test ISRsAlexey Gavrilov10-13/+492
2024-03-31Merge pull request #7 from rebovas/makefile_updateAlexey Gavrilov2-6/+11
Makefile updates
2024-03-31Makefile updatesAlexey Gavrilov2-6/+11
2024-03-31Merge pull request #6 from rebovas/idtAlexey Gavrilov10-44/+266
IDT + uintptr update
2024-03-31IDT + uintptr updateAlexey Gavrilov10-44/+266
2024-03-27Merge pull request #5 from rebovas/acpi_madtAlexey Gavrilov11-35/+350
Acpi madt + some updates
2024-03-27Some updates: rename memAddr, define architectureAlexey Gavrilov9-26/+49
2024-03-26Implement MADT tableAlexey Gavrilov5-12/+304
2024-03-25Merge pull request #4 from rebovas/acpi_classesAlexey Gavrilov7-2/+329
Implementation ACPI tables through classes
2024-03-25Acpi classes + string operationsAlexey Gavrilov6-115/+271
2024-03-19Remove unnecessary fileAlexey Gavrilov1-0/+0
2024-03-19Implementation acpi tables through structsAlexey Gavrilov4-1/+172
2024-03-08Update README.mdAlexey Gavrilov1-5/+6
2024-03-08Merge pull request #3 from rebovas/cpuinfo_refactorAlexey Gavrilov3-30/+11
Cpuinfo refactor
2024-03-08Cpuinfo refactorAlexey Gavrilov3-30/+11
2024-03-07Merge pull request #2 from rebovas/mem_operationsAlexey Gavrilov2-0/+49
Memory operations: copy and set
2024-03-07Merge pull request #1 from rebovas/init_procAlexey Gavrilov18-68/+76
Mechanism of initialization
2024-03-07Memory operations: copy and setAlexey Gavrilov2-0/+49
2024-03-06Initialization mechanismAlexey Gavrilov16-77/+68
2024-03-05GDT rename procedure + edit .gitignoreAlexey Gavrilov4-2/+19
2024-02-22Some updatesAlexey Gavrilov2-1/+0
2024-02-22Update README.mdAlexey Gavrilov1-2/+8
2024-02-22Merge branch 'main' of github.com:objectiveOS/objectiveAlexey Gavrilov1-0/+1
2024-02-22Implement support of cpuid instruction + include folder + some updatesAlexey Gavrilov19-86/+884
2023-11-07Fix makefileAlexey Gavrilov1-0/+1
2023-11-04Support for GDT has been written + add makefile debug modeAlexey Gavrilov12-18/+276
2023-10-26Update makefileAlexey Gavrilov1-22/+37
2023-08-20Edit README, Makefile, ld confAlexey Gavrilov5-12/+38
2023-08-20Getting started with print on display + some fixesAlexey Gavrilov8-0/+256
2023-08-08Update README.mdAlexey Gavrilov1-13/+14
2023-08-08First commitAlexey Gavrilov7-0/+139