summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-06-06 21:05:55 +0200
committerAmlal El Mahrouss <amlal@nekernel.org>2025-06-06 21:05:55 +0200
commitdbf1190718c1a5adb4b2dc56e4d6da45429bb65e (patch)
tree632135a70bf8b0f16a716ce9c42608db35612783
parent17bd847ebc85f4f9e62f510563482939a98f0c8e (diff)
feat: The `APM` HW protocol implementation got improvements (ARM64)
fix: BootNet: be more descriptive when trying to flash from network, and it fails. Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
-rw-r--r--dev/boot/amd64-ci.make2
-rw-r--r--dev/boot/amd64-desktop.make2
-rw-r--r--dev/boot/modules/BootNet/BootNet.cc4
-rw-r--r--dev/boot/src/boot_rsrc.rsrc (renamed from dev/boot/src/BootloaderRsrc.rsrc)2
-rw-r--r--dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc2
-rw-r--r--dev/kernel/HALKit/ARM64/APM/APM+IO.cc4
-rw-r--r--dev/kernel/HALKit/ARM64/HalACPIFactoryInterface.cc4
-rw-r--r--dev/kernel/SwapKit/DiskSwap.h12
-rw-r--r--dev/kernel/kernel_rsrc.rsrc4
-rw-r--r--dev/kernel/src/FS/HeFS+FileSystemParser.cc8
-rw-r--r--dev/modules/APM/APM.h8
11 files changed, 23 insertions, 29 deletions
diff --git a/dev/boot/amd64-ci.make b/dev/boot/amd64-ci.make
index 0715151c..f4f76a59 100644
--- a/dev/boot/amd64-ci.make
+++ b/dev/boot/amd64-ci.make
@@ -98,7 +98,7 @@ endif
.PHONY: compile-amd64
compile-amd64:
- $(WINDRES) src/BootloaderRsrc.rsrc -O coff -o BootloaderRsrc.o
+ $(WINDRES) src/boot_rsrc.rsrc -O coff -o boot_rsrc.o
$(CC_GNU) $(NE_MODEL) $(STANDALONE_MACRO) $(FLAG_GNU) $(DEBUG) \
$(wildcard src/HEL/AMD64/*.cc) \
$(wildcard src/HEL/AMD64/*.S) \
diff --git a/dev/boot/amd64-desktop.make b/dev/boot/amd64-desktop.make
index d7515367..2e487f94 100644
--- a/dev/boot/amd64-desktop.make
+++ b/dev/boot/amd64-desktop.make
@@ -108,7 +108,7 @@ endif
.PHONY: compile-amd64
compile-amd64:
- $(WINDRES) src/BootloaderRsrc.rsrc -O coff -o BootloaderRsrc.o
+ $(WINDRES) src/boot_rsrc.rsrc -O coff -o boot_rsrc.o
$(CC_GNU) $(NE_MODEL) $(STANDALONE_MACRO) $(FLAG_GNU) $(DEBUG) \
$(wildcard src/HEL/AMD64/*.cc) \
$(wildcard src/HEL/AMD64/*.S) \
diff --git a/dev/boot/modules/BootNet/BootNet.cc b/dev/boot/modules/BootNet/BootNet.cc
index ba9beef4..c91460cb 100644
--- a/dev/boot/modules/BootNet/BootNet.cc
+++ b/dev/boot/modules/BootNet/BootNet.cc
@@ -48,7 +48,7 @@ EXTERN_C Int32 BootNetModuleMain(Kernel::HEL::BootInfoHeader* handover) {
Boot::BootThread thread(inet_out->Data);
if (thread.IsValid()) {
- writer.Write("BootNet: Running kernel...\r");
+ writer.Write("BootNet: Running NeKernel...\r");
return thread.Start(handover, YES);
}
@@ -57,7 +57,7 @@ EXTERN_C Int32 BootNetModuleMain(Kernel::HEL::BootInfoHeader* handover) {
constexpr auto kROMSize = 0x200;
if (inet_out->Length > kROMSize) {
- writer.Write("BootNet: Not within 512K.\r");
+ writer.Write("BootNet: Not within 512K, won't flash EEPROM.\r");
return kEfiFail;
}
diff --git a/dev/boot/src/BootloaderRsrc.rsrc b/dev/boot/src/boot_rsrc.rsrc
index 33bce7f7..fedbdee0 100644
--- a/dev/boot/src/BootloaderRsrc.rsrc
+++ b/dev/boot/src/boot_rsrc.rsrc
@@ -12,7 +12,7 @@ BEGIN
VALUE "FileDescription", "NeKernel OS Loader."
VALUE "FileVersion", BOOTLOADER_VERSION
VALUE "InternalName", "bootz"
- VALUE "LegalCopyright", "Copyright (C) 2024, Amlal El Mahrouss all rights reserved."
+ VALUE "LegalCopyright", "Copyright (C) 2024-2025, Amlal El Mahrouss all rights reserved."
VALUE "OriginalFilename", "ne_bootz"
VALUE "ProductName", "bootz"
VALUE "ProductVersion", BOOTLOADER_VERSION
diff --git a/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc b/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc
index 24a81af9..aeaeff52 100644
--- a/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc
+++ b/dev/kernel/HALKit/AMD64/HalApplicationProcessor.cc
@@ -216,7 +216,7 @@ Void mp_init_cores(VoidPtr vendor_ptr) noexcept {
kout << "Kind: LAPIC: OFF\r";
}
} else {
- kout << "Kind: UNKNOWN\r";
+ kout << "Kind: UNKNOWN: OFF\r";
}
entry_ptr += length;
diff --git a/dev/kernel/HALKit/ARM64/APM/APM+IO.cc b/dev/kernel/HALKit/ARM64/APM/APM+IO.cc
index 3df8a407..e58fb782 100644
--- a/dev/kernel/HALKit/ARM64/APM/APM+IO.cc
+++ b/dev/kernel/HALKit/ARM64/APM/APM+IO.cc
@@ -9,11 +9,11 @@
using namespace Kernel;
-/// @brief Send APM command to it's space.
+/// @brief Send APM command to it's IO space.
/// @param base_dma the IO base port.
/// @param cmd the command.
/// @return status code.
-EXTERN_C Int32 apm_send_io_command(UInt16 cmd, APMPowerCmd value) {
+EXTERN_C Int32 apm_send_io_command(UInt16 cmd) {
switch (cmd) {
case kAPMPowerCommandReboot: {
asm volatile(
diff --git a/dev/kernel/HALKit/ARM64/HalACPIFactoryInterface.cc b/dev/kernel/HALKit/ARM64/HalACPIFactoryInterface.cc
index dc883239..fa678494 100644
--- a/dev/kernel/HALKit/ARM64/HalACPIFactoryInterface.cc
+++ b/dev/kernel/HALKit/ARM64/HalACPIFactoryInterface.cc
@@ -14,13 +14,13 @@ namespace Kernel {
ACPIFactoryInterface::ACPIFactoryInterface(VoidPtr rsp_ptr) : fRsdp(rsp_ptr), fEntries(0) {}
BOOL ACPIFactoryInterface::Shutdown() {
- apm_send_io_command(kAPMPowerCommandShutdown, 0);
+ apm_send_io_command(kAPMPowerCommandShutdown);
return NO;
}
/// @brief Reboot machine in either ACPI or by triple faulting.
/// @return nothing it's a reboot.
Void ACPIFactoryInterface::Reboot() {
- apm_send_io_command(kAPMPowerCommandReboot, 0);
+ apm_send_io_command(kAPMPowerCommandReboot);
}
} // namespace Kernel
diff --git a/dev/kernel/SwapKit/DiskSwap.h b/dev/kernel/SwapKit/DiskSwap.h
index 1a0536c9..674524c8 100644
--- a/dev/kernel/SwapKit/DiskSwap.h
+++ b/dev/kernel/SwapKit/DiskSwap.h
@@ -35,21 +35,21 @@ class DiskSwapInterface final {
public:
/***********************************************************************************/
/// @brief Write memory chunk onto disk.
- /// @param fork_name The swap name to recognize this memory region.
- /// @param fork_name_len length of fork name.
+ /// @param name The swap name to recognize this memory region.
+ /// @param name_len length of fork name.
/// @param data the data packet.
/// @return Whether the swap was written to disk, or not.
/***********************************************************************************/
- BOOL Write(const Char* fork_name, SizeT fork_name_len, SWAP_DISK_HEADER* data);
+ BOOL Write(const Char* name, SizeT name_len, SWAP_DISK_HEADER* data);
/***********************************************************************************/
/// @brief Read memory chunk from disk.
- /// @param fork_name The swap name to recognize this memory region.
- /// @param fork_name_len length of fork name.
+ /// @param name The swap name to recognize this memory region.
+ /// @param name_len length of fork name.
/// @param data the data packet length.
/// @return Whether the swap was fetched to disk, or not.
/***********************************************************************************/
- _Output SWAP_DISK_HEADER* Read(const Char* fork_name, SizeT fork_name_len, SizeT data_len);
+ _Output SWAP_DISK_HEADER* Read(const Char* name, SizeT name_len, SizeT data_len);
};
/// @brief Swap disk header, containing information about the held virtual memory.
diff --git a/dev/kernel/kernel_rsrc.rsrc b/dev/kernel/kernel_rsrc.rsrc
index 5b1cb14f..a785a311 100644
--- a/dev/kernel/kernel_rsrc.rsrc
+++ b/dev/kernel/kernel_rsrc.rsrc
@@ -9,9 +9,9 @@ BEGIN
BLOCK "080904E4"
BEGIN
VALUE "CompanyName", "Amlal El Mahrouss"
- VALUE "FileDescription", "NeKernel"
+ VALUE "FileDescription", "NeKernel"
VALUE "FileVersion", KERNEL_VERSION
- VALUE "InternalName", "krnl"
+ VALUE "InternalName", "ne_kernel"
VALUE "LegalCopyright", "(c) 2024-2025 Amlal El Mahrouss, all rights reserved."
VALUE "OriginalFilename", "ne_kernel"
VALUE "ProductName", "NeKernel"
diff --git a/dev/kernel/src/FS/HeFS+FileSystemParser.cc b/dev/kernel/src/FS/HeFS+FileSystemParser.cc
index 893f43ef..bfd38f69 100644
--- a/dev/kernel/src/FS/HeFS+FileSystemParser.cc
+++ b/dev/kernel/src/FS/HeFS+FileSystemParser.cc
@@ -1,6 +1,6 @@
/* -------------------------------------------
- Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved.
+ Copyright (C) 2024-2025 Amlal El Mahrouss, all rights reserved.
------------------------------------------- */
@@ -758,8 +758,8 @@ _Output Bool HeFileSystemParser::Format(_Input _Output DriveTrait* mnt, _Input c
}
if (drv_std_get_size() < kHeFSMinimumDiskSize) {
- (Void)(kout << "HeFS recommends at least 128 GiB of free space." << kendl);
- (Void)(kout << "The OS will still try to format a HeFS disk here." << kendl);
+ (Void)(kout << "OpenHeFS recommends at least 128 GiB of free space." << kendl);
+ (Void)(kout << "The OS will still try to format a HeFS disk here anyway, don't expect perfect geometry." << kendl);
}
HEFS_BOOT_NODE* boot = (HEFS_BOOT_NODE*) RTL_ALLOCA(sizeof(HEFS_BOOT_NODE));
@@ -1142,7 +1142,7 @@ STATIC DriveTrait kMountPoint;
/// @brief Initialize the HeFS filesystem.
/// @return To check its status, see err_local_get().
Boolean HeFS::fs_init_hefs(Void) noexcept {
- kout << "Creating HeFS disk...\r";
+ kout << "Verifying disk...\r";
kMountPoint = io_construct_main_drive();
diff --git a/dev/modules/APM/APM.h b/dev/modules/APM/APM.h
index b071a770..29de5114 100644
--- a/dev/modules/APM/APM.h
+++ b/dev/modules/APM/APM.h
@@ -21,15 +21,9 @@ enum {
kAPMPowerCommandReboot = 0x08,
};
-/// @brief Send a APM command into it's own DMA space.
-/// @param base_dma the DMA base address.
-/// @param cmd the command.
-/// @return status code.
-EXTERN_C Int32 apm_send_dma_command(Ptr64 register_addr, APMPowerCmd value);
-
/// @brief Send a APM command into it's own IO space.
/// @param base_dma the IO base port.
/// @param cmd the command.
/// @return status code.
-EXTERN_C Int32 apm_send_io_command(UInt16 cmd, APMPowerCmd value);
+EXTERN_C Int32 apm_send_io_command(UInt16 cmd);
} // namespace Kernel