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:
1 parent
d4200f1129
commit
963e0ed53f
1 file changed
+7
@@ -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)
|
||||
|
||||
Reference in new issue
Block a user