| Age | Commit message (Collapse) | Author | Files | Lines |
|
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>
|
|
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>
|
|
`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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|