| Age | Commit message (Collapse) | Author | Files | Lines |
|
Add predicate `ifFeatureEnables` that checks feature is define or not,
and return accordingly boolean value.
Consider some cmake objective targets as features. Populate information
to these targets, and provides in particular file `CMakeFeatures.txt`.
Cpuid, MSR, ACPI and driver VGA in text mode they are.
Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
|
|
Copyright disclaimer and copyright note are prepending to a every source
file.
Add license section in the `README.md` file.
Create the LICENSE` file with license information.
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>
|
|
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|