<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div class="">Hi Oliver,</div><div class="">Thanks a lot for your time and the answer.</div><br class=""><div><blockquote type="cite" class=""><div class=""><div class="">Right, you turn on the MMU and the next time printk() is called the<br class="">console driver tries to write to 0xFF00_0000. That's not a valid<br class="">virtual address so it explodes. To make an address usable in both real<br class="">mode (i.e. pre-mmu) and virtual mode you need to have the page tables<br class="">setup so that virtual address maps to the same physical address.<br class="">Setting up that mapping is what early_ioremap() does. That's why<br class="">there's a warning telling you to use it.<br class=""><br class="">Based on the in-tree DTS files earlycon doesn't seem to be used on any<br class="">powerpc systems. My guess would be that most ppc platform use udbg<br class="">(very old, powerpc specific thing) rather than earlycon for this kind<br class="">of super-early debug output. Considering you're getting console output<br class="">via udbg I'd say just removing earlycon from your kernel command line<br class="">will probably fix your issue.<br class=""></div></div></blockquote></div><br class=""><div class="">Well, I disabled all the early logs (now bootargs = “” in dts) and modified .config</div><div class="">so that no earlycon.c gets compiled at all. The followings are the only compiled</div><div class="">files within the `/derivers/tty/serial`:</div><div class=""><br class=""></div><div class="">serial_base_bus.o, serial_core.o, serial_ctrl.o, serial_port.o, xilinx_uartps.o</div><div class=""><br class=""></div><div class="">Now, I get no outputs during booting procedure which sounds normal, I guess.</div><div class="">But still no luck getting to the rootfs or anywhere which actually initializes the</div><div class="">`<span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);" class="">xilinx_uartps` </span><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);" class="">driver and print something.</span></div><div class=""><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);" class=""><br class=""></span></div><div class=""><font color="#000000" class="">Also please check shenki’s blogpost’s logs, if you have enough time:</font></div><div class=""><font color="#000000" class=""><br class=""></font></div><div class=""><font color="#000000" class=""><a href="https://shenki.github.io/boot-linux-on-microwatt" class="">https://shenki.github.io/boot-linux-on-microwatt</a></font></div><div class=""><font color="#000000" class=""><br class=""></font></div><div class=""><font color="#000000" class=""><span style="caret-color: rgb(0, 0, 0);" class="">Based on the blog post, I think there should be no problem to get the early</span></font></div><div class=""><font color="#000000" class=""><span style="caret-color: rgb(0, 0, 0);" class="">booting logs.</span></font></div><div class=""><font color="#000000" class=""><span style="caret-color: rgb(0, 0, 0);" class=""><br class=""></span></font></div><div class=""><font color="#000000" class=""><span style="caret-color: rgb(0, 0, 0);" class="">Bests,</span></font></div><div class=""><font color="#000000" class=""><span style="caret-color: rgb(0, 0, 0);" class="">Manili</span></font></div></body></html>