| Age | Commit message (Collapse) | Author | Files | Lines |
|
A `IS_BIND_FEATURES_TO_BUILD` option has influence the
`bindFeatureToBuild` function calling if it is specifies.
Add some cmake options in build documentation
Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
|
|
The cmake feature module function `bindFeatureToBuild` has overwrite over
the cover function macro.
Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
|
|
Feature is enable if variable FEATURE_<feature name> defines and it
caches, and it judges as **enable**.
It influences the FEATURE_<feature name>_IS_ENABLE field in
`CMakeFeature.out` and runfile generation files - all the **enable** features
are mention direct or indirect now.
Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
|
|
Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
|
|
Add a new macros `createFeatureModuleFunction` that cover functions
definition. If module suspends, generates all blank function. Blank
function is only show a warning about module status. Generate according
body and arguments of function when module is active.
Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
|
|
Toolchain and build folder cmake arguments doesn't have in runfile
now. Only features are enumerating in. These deleted defines are point
by CI service to run needed cmake configuration
Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
|
|
Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
|
|
In `outFeaturesToFile` function toolset is appends to a resulting file
(cmake toolchain file or arch, compiler if previous is not specify).
Toolset mention needs to filter available features for a specific
platform. FEATURE_<feature>_IS_ENABLING var also provides when <feature>
already enabled.
Build type is not in toolset now. That means to parse
`CMAKE_BUILD_TYPE` anyway when toolset is processing even if
`CMAKE_TOOLSCHAIN_FILE` is specified.
Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
|
|
Generates file contains command line cmake run to reproduce previous
cmake pass through.
CI service use this run file to start pipeline with needs cmake
configuration that developer was make.
Following code pushing workflow: Commit pushed to a code review system
(`CMakeReplication.txt` required) -> CI service intercepts changes ->
Pipeline start using passed in commit cmake replication command -> CI
submit pipeline finished status
Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
|
|
Implements a new feature module function `outFeaturesToFile` to output all
available features into 'CMakeFeatureOut.txt' file. Format of that file
is set of FEATURE_<feature>_<property> variables like defines in `CMakeCache.txt`.
Will to use as proxy between cmake and configuration tools. Those
utilities read features out file to build configuration kernel tree.
Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
|
|
Feature is abstraction around cmake build target used to contains
descriptive information in target properties as name, dependencies, tags
and etc.. Feature creation divided by three processes: start creation
process, fields filling and stop creation process. Start creation
process means passed target is handle now, and stop process is finish to
handle a current feature. Using this way helps to construct correct
features hierarchy and simplify kernel configuration process.
This will use in standalone automating kernel configuration tools:
1. Cmake generate a features file with information about them all.
2. Tool read this file and display features tree.
3. User start to configuring his kernel.
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>
|
|
`README.md` is rework. Describe project concept description and
mention links. The old readme file build section move to the separate
file `BUILD.md`. It helps to fast read the corresponding file instead of
viewing a `README.md` table of content.
'CONTRIBUTING.md' file contents information to makes gain experience
and contribute in project easier.
'CHANGELOG.md' provide a detailed, chronological history of change
releases.
Signed-off-by: Alexey Gavrilov <alexey.gavrilov@mail.com>
|
|
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
|