如何解决Zircon 引导映像 (ZBI) 是否对 Zircon 内核中的引导必不可少?
Zircon 内核的 kernel entrypoint 调用 platform_early_init(),它从 .S 文件中获取 zbi_paddr,然后传递给 pdev_init
void* zbi_vaddr = paddr_to_physmap(zbi_paddr);
zbi_header_t* header = (zbi_header_t*)zbi_vaddr;
ramdisk_base = header;
zbi_root = reinterpret_cast<zbi_header_t*>(ramdisk_base);
pdev_init(zbi_root);
其中 pdev_init 负责启动 uart 等驱动程序。
它看起来像通过 pdev_run_hooks
的驱动程序(在同一个文件上),它遍历 zbi 文件并找到每个驱动程序信息。
所以看起来ZBI对于启动是必不可少的?
我问是因为我编译了锆石内核并得到了
lz@vm:~/fuchsia/out/default/kernel_arm64$ ls gen
image.build-id.stamp kernel.zbi toolchain.ninja
zircon.elf.build-id.stamp zircon.elf.map image image.map
obj zircon.elf zircon.elf-gdb.py
如你所见,它产生一个 zircon.elf
,理论上可以运行,但我认为 ZBI 信息对于启动至关重要,否则它会恐慌。我说得对吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。