| Age | Commit message (Collapse) | Author | Files | Lines |
|
RELEASE.md contains following release goals and them execution status.
TODO.md contains more detailed information about release goals.
Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
|
|
This correct refers to a wrong order of linking CRT objects.
When targets are separates into 4: CRTI, CRTBEGIN, CRTEND, CRTN
the order became a little bit correct.
TODO
- Image with grub bootloader creation
- Build under window platform (optional)
Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
|
|
More convenient requirements checks way by CHECK_START message
argument.
Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
|
|
Reinforce of compiler, C runtime, architecture checks at cmake
configuration.
Compiler check means continue building at the cmake configure
stage only for supported compilers. Use unsupported compiler
involves immediate build process stopping.
C runtime check means finding of runtime objects. Especially for
*crtbegin.o* and *crtend.o* files.
Architecture means *ObjectiveProject_ARCHITECTURE* variable is set.
That variable configure at toolchain file by default and cannot
override if toolchain file is passed.
TODO
- Image creation
- Build under window platform (optional)
Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
|
|
Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
|
|
Fix in *nasm* files - set architecture bitness.
Move compiler flags from *toolchain* file to *requirements target*
considering cmake files. This solution allows available of
multi-configurations generators to pass compiler options
without affecting on single-configuration generators.
TODO
- Debug information
- Image creation
- Build under window platform (optional)
Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
`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>
|
|
New cpuid model uses instead of old in some
msr definitions.
Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
|
|
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>
|
|
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>
|
|
|
|
|
|
Pic + Tuple + refactor PrimaryInitialization class
|
|
|
|
Msr + interrupts implement + crude implementation of IDT filling
|
|
|
|
|
|
Makefile updates
|
|
|
|
IDT + uintptr update
|
|
|
|
Acpi madt + some updates
|
|
|
|
|
|
Implementation ACPI tables through classes
|
|
|
|
|
|
|
|
|
|
Cpuinfo refactor
|
|
|
|
Memory operations: copy and set
|
|
Mechanism of initialization
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|