- Add dynamic range configuration (#229)
- Fix boot for machines that report memory regions at high physical addresses (see #259)
- Correct typos in
src/binary/level_4_entries.rs(#228)
- Add support for position independent executables (#206)
- Add optional ASLR (#221)
- Logger: nicer font rendering into framebuffer (#213)
- Fix warnings on latest nightly (
maybe_uninit_extrais no longer feature-gated) (#222) - Rework
UsedLevel4Entries(#219) - Add small doc-comment to entry_point! macro (#220)
- Remove feature flag for
lang_items,asmandglobal_asm(#210) - Use
set_regmethod ofCS,DS,ESandSSsegment structs (#211)
- Fix
asmimports on latest nightly (#209)
- Add support for framebuffer configuration (#179)
- Fix
relocation-modelfield name in the target spec json (#186)- This effectively changes the
relocation-modelfrompictostatic. Please report if you encounter any issues because of this. - This fixes the compilation warnings on the latest nightlies.
- This effectively changes the
- Identity-map GDT into kernel address space to fix
iretq(#175) - Uefi: Look for an ACPI2 RSDP first (#174)
- Don't check target architecture for builder crate to support cross-compiling (#176)
- Fix build on latest Rust nightlies by updating
uefi-rsdependency (#170)- Also: Fix warnings about
.intel_syntaxattribute in assembly code
- Also: Fix warnings about
- Fix build on latest Rust nightly by updating to
uefiv0.9.0 (#162) - Fix higher half kernels by identity mapping context switch fn earlier (#161)
- Also: improve reporting of mapping errors
- Change register used in setting SS in stage_4 (#156)
- Use new
asm!syntax instead of deprecatedllvm_asm!(#154) - Reduce the number of used unstable features of x86_64 crate (#155)
- Fix docs.rs build: Don't enable any features
- Rewrite for UEFI support (#130)
- Includes a new build process that no longer uses the
bootimagecrate. See the Readme for details.
- Includes a new build process that no longer uses the
- Set
relocation-model: staticandpanic-strategy: abortandfix .intel_syntaxwarnings (#185)- Fixes warnings on the latest Rust nightlies.
- This effectively changes the
relocation-modelandpanic-strategy. Please report if you encounter any issues because of this.
- Fix nightly regression by manually passing --gc-sections (#168)
- Reduce the number of used unstable features of x86_64 crate (backport #155)
- Replace all remaining
leas withmov+offset(#140)
- Fix linker errors on latest nightlies (#139)
- Fix "panic message is not a string literal" warning (#138)
(accidental release)
- Fix build on latest nightly by updating x86_64 to v0.13.2 (#135)
- Update
Cargo.lockto fix nightly breakage (#129)
- Update
x86_64again to version 0.12.1 to fixconst fn-related build errors on latest nightly
- Run
cargo updateto fix build errors ofx86_64on latest nightly
- Enable rlibc dependency only with
binaryfeature (#126)
- Make bootloader buildable with
-Zbuild-std(#125)
- Change 1st stage int 13h addressing (#123)
- Fix warning by renaming
_improper_ctypes_checkfunctions (#122)
- Update x86_64 dependency to version 0.11.0 (#117)
- Nightly Breakage: Use
llvm_asm!instead of deprecatedasm!(#108)
- SSE feature: remove inline assembly + don't set reserved bits (#105)
- Breaking: Identity-map complete vga region (0xa0000 to 0xc0000) (#104)
- Implement boot-info-address (#101)
- Add basic support for ELF thread local storage segments (#96)
- Fix docs.rs build (see commit 01671dbe449b85b3c0ea73c5796cc8f9661585ee)
- Objcopy replaces
.chars with_chars (#94)
- Update x86_64 dependency (#92)
- Move architecture checks from build script into lib.rs (#91)
- Remove unnecessary
extern Con panic handler to fix not-ffi-safe warning (#85)
- Change the way the kernel entry point is called to honor alignement ABI (#81)
- Add a Cargo Feature for Enabling SSE (#77)
- Breaking: Parse bootloader configuration from kernel's Cargo.toml (#73)
- At least version 0.7.7 of
bootimageis required now.
- At least version 0.7.7 of
- Configurable kernel stack size, better non-x86_64 errors (#72)
- Dynamically map kernel stack, boot info, physical memory and recursive table (#71)
- Run cargo update (improves compile times because of trimmed down upstream dependencies)
- Breaking: Only include dependencies when
binaryfeature is enabled (#68)- For manual builds, the
binaryfeature must be enabled when building - For builds using
bootimage, at least version 0.7.6 ofbootimageis required now.
- For manual builds, the
- Use volatile accesses in VGA code and make font dependency optional (#67)
- Making the dependency optional should improve compile times when the VGA text mode is used.
- Update CI badge, use latest version of x86_64 crate and rustfmt (#63)
- Remove stabilized publish-lockfile feature (#62)
- Make the physical memory offset configurable through a
BOOTLOADER_PHYSICAL_MEMORY_OFFSETenvironment variable (#58). - Use a stripped copy of the kernel binary (debug info removed) to reduce load times (#59).
- Breaking: Don't set the
#[cfg(not(test))]attribute for the entry point function in theentry_pointmacro- With custom test frameworks, it's possible to use the normal entry point also in test environments
- To get the old behavior, you can add the
#[cfg(not(test))]attribute to theentry_pointinvocation
- Additional assertions for the passed
KERNELexecutable- check that the executable exists (for better error messages)
- check that the executable has a non-empty text section (an empty text section occurs when no entry point is set)
- Mention minimal required bootimage version in error message when
KERNELenvironment variable is not set.
- Remove redundant import that caused a warning
- Add a
package.metadata.bootloader.targetkey to the Cargo.toml that can be used by tools such asbootimage.
- Breaking: Change the build system: Use a build script that expects a
KERNELenvironment variable instead of using a separatebuilderexecutable as before. See #51 and #53 for more information.- This makes the bootloader incompatible with versions
0.6.*and earlier of thebootimagetool. - The bootloader also requires the
llvm-tools-previewrustup component now.
- This makes the bootloader incompatible with versions
- The level 4 page table is only recursively mapped if the
recursive_page_tablefeature is enabled. - Rename
BootInfo::p4_table_addrtoBootInfo::recursive_page_table_addr(only present if the cargo feature is enabled) - Remove
From<PhysFrameRange>implemenations for x86_64FrameRange- This only works when the versions align, so it is not a good general solution.
- Remove unimplemented
BootInfo::packagefield. - Make
BootInfonon-exhaustive so that we can add additional fields later.
- Add a
map_physical_memoryfeature that maps the complete physical memory to the virtual address space atBootInfo::physical_memory_offset. - Re-export
BootInfoat the root.