debug(main): 打印 BootInfo 指针与 memmap 原始字段

mm.init 收到 addr=0 size=0 desc=0(全部为 0),可能是全局 BootInfo 为 NULL
(读物理 0-24 全 0)或 bootloader 传参异常。mm.init 前打印 BootInfo 指针
本身与 MemmapAddr/MemmapSize/MemmapDescSize/framebuffer_addr 原始值。
This commit is contained in:
TermiNexus committed 2026-08-26 19:17:58 +08:00
1 parent d4200f1129
commit 963e0ed53f
1 file changed
+7
+7
View File
@@ -136,6 +136,13 @@ class ViperKernel:
pitch: t.CUInt64T = BootInfo.framebuffer_pitch
fb_format: t.CUInt64T = BootInfo.framebuffer_format
fb_size: t.CUInt64T = BootInfo.framebuffer_size
# [DBG] 打印 BootInfo 指针与 memmap 原始字段,定位全 0 根因(用后移除)
_dbbuf: t.CArray[t.CChar, 140]
viperlib.snprintf(c.Addr(_dbbuf), 140, "[main] BootInfo=0x%lx mmap=0x%lx mmsz=%lu mmd=%lu fb=0x%lx\n",
t.CUInt64T(BootInfo), BootInfo.MemmapAddr, BootInfo.MemmapSize,
BootInfo.MemmapDescSize, BootInfo.framebuffer_addr)
serial.puts(c.Addr(_dbbuf))
if BootInfo is not None:
paging.init(BootInfo.MemmapAddr, BootInfo.MemmapSize)
fb_pages: t.CUInt64T = (fb_size + t.CUInt64T(0xFFF)) >> t.CUInt64T(12)