From 52d1d83119c8f3c2455f09920ad47766210479c7 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Wed, 26 Mar 2025 20:33:57 +0100 Subject: feat(boot): kern_ver nvram variable. Signed-off-by: Amlal El Mahrouss --- dev/boot/src/HEL/AMD64/BootEFI.cc | 10 +++++++++- dev/boot/src/docs/KERN_VER.md | 6 ++++++ 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 dev/boot/src/docs/KERN_VER.md (limited to 'dev/boot/src') diff --git a/dev/boot/src/HEL/AMD64/BootEFI.cc b/dev/boot/src/HEL/AMD64/BootEFI.cc index 5e2b3855..5af3643b 100644 --- a/dev/boot/src/HEL/AMD64/BootEFI.cc +++ b/dev/boot/src/HEL/AMD64/BootEFI.cc @@ -279,6 +279,14 @@ EFI_EXTERN_C EFI_API Int32 Main(EfiHandlePtr image_handle, ST->RuntimeServices->SetVariable(L"/props/boot_path", kEfiGlobalNamespaceVarGUID, &attr, &kernel_path_sz, kernel_path); } + UInt32 sz_ver = sizeof(UInt64); + UInt64 ver = KERNEL_VERSION_BCD; + + ST->RuntimeServices->GetVariable(L"/props/kern_ver", kEfiGlobalNamespaceVarGUID, nullptr, &sz_ver, &ver); + + Boot::BootTextWriter writer; + writer.Write("BootZ: Kernel Version: ").Write(ver).Write("\r"); + Boot::BootFileReader reader_kernel(kernel_path, image_handle); reader_kernel.ReadAll(0); @@ -292,7 +300,7 @@ EFI_EXTERN_C EFI_API Int32 Main(EfiHandlePtr image_handle, if (reader_kernel.Blob()) { kernel_thread = new Boot::BootThread(reader_kernel.Blob()); - kernel_thread->SetName("BootZ: MicroKernel."); + kernel_thread->SetName("BootZ: Kernel"); handover_hdr->f_KernelImage = reader_kernel.Blob(); } diff --git a/dev/boot/src/docs/KERN_VER.md b/dev/boot/src/docs/KERN_VER.md new file mode 100644 index 00000000..abe3e823 --- /dev/null +++ b/dev/boot/src/docs/KERN_VER.md @@ -0,0 +1,6 @@ +# /props/kern_ver + +The `/props/kern_ver` variable is used to track NeKernel's current version in a BCD format. + +- Use it to track the current's NeKernel version, in order to adapt your drivers to it. +- It is also useful to keep track of it, for other purposes (bug tracking, development of new features) \ No newline at end of file -- cgit v1.2.3