diff --git a/build.zig b/build.zig index 8a76a52..e7ecfce 100644 --- a/build.zig +++ b/build.zig @@ -1,5 +1,6 @@ const Builder = @import("std").build.Builder; const builtin = @import("builtin"); +const std = @import("std"); pub fn build(b: *Builder) void { const kernel = b.addExecutable("kernel", "src/main.zig"); @@ -14,7 +15,18 @@ pub fn build(b: *Builder) void { kernel.addAssemblyFile("src/arch/x86/switch_tasks.s"); kernel.setBuildMode(b.standardReleaseOptions()); - kernel.setTarget(builtin.Arch.i386, builtin.Os.freestanding, builtin.Abi.none); + kernel.setTheTarget(builtin.Target{ + .Cross = std.Target.Cross{ + .arch = builtin.Target.Arch.i386, + .os = builtin.Target.Os.freestanding, + .abi = builtin.Target.Abi.none, + .cpu_features = builtin.Target.CpuFeatures.initFromCpu( + builtin.Arch.i386, + &builtin.Target.x86.cpu._i686, + ), + }, + }); + kernel.setLinkerScriptPath("src/arch/x86/linker.ld"); b.default_step.dependOn(&kernel.step); } diff --git a/src/arch/x86/pmem.zig b/src/arch/x86/pmem.zig index d720b28..40f46e7 100644 --- a/src/arch/x86/pmem.zig +++ b/src/arch/x86/pmem.zig @@ -86,9 +86,7 @@ pub fn initialize(info: *const kernel.multiboot.MultibootInfo) void { } const a = available(); - kernel.println("available memory: {} MiB ", .{a}); - // kernel.println("available memory: {d} MiB ", .{available() / 1024 / 1024}); - hang(); + kernel.println("available memory: {d} MiB ", .{available() / 1024 / 1024}); } pub fn format() void { diff --git a/src/main.zig b/src/main.zig index 2da67cb..f9cb3f3 100644 --- a/src/main.zig +++ b/src/main.zig @@ -19,7 +19,6 @@ export const multiboot_header align(4) linksection(".multiboot") = multiboot: { export fn kmain(magic: u32, info: *const multiboot.MultibootInfo) noreturn { assert(magic == multiboot.MULTIBOOT_BOOTLOADER_MAGIC); clear(); - asm volatile ("movd %%edi, %%xmm0"); println("--- x86 initialization ---", .{}); x86.x86_main(info); println("--- core initialization ---", .{});