Hi Milton,<br><br>I've tracked it down to the device tree passed to the second kernel being screwed-up when patched by kexec-tools. Namely, it was creating linux,usable-memory entries that were wrong, and the MMU initialization hung when it failed allocating for the page tables. I hacked the tool, and got passed that point in the init sequence, but the very first IO mapped access fails, so the MMU doesn't seem to be set up correctly.<br>
<br>Anyway, up to my question: is the crash dump (kdump) kernel supposed to use the memory reserved for it by the first kernel for its working memory ? e.g. On that board, I have 0->2GB and 4->6GB for a total of 4GB of RAM. Let's say I reserve 128M@32M, that's 0x2000000->0xa000000. Is the second kernel supposed to use<br>
<br>(0x2000000+<kernel size>) -> 0xa000000<br><br>for its memory pool and leave everything else:<br><br>0->0x2000000, 0xa000000 -> 80000000, 0x100000000 -> 0x180000000<br><br>as memory that is from the first kernel, used to debug it ?<br>
<br>Basically, I am trying to figure out if I patched the tool correctly.<br><br>Thanks,<br>Ben<br><br><div class="gmail_quote">On Sat, Jan 24, 2009 at 2:52 AM, Milton Miller <span dir="ltr"><<a href="mailto:miltonm@bga.com">miltonm@bga.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="Ih2E3d">On Sat Jan 24 at 07:59:47 EST in 2009, Benjamin Walsh wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I am trying to use kexec with a crash dump kernel on a Maple board (Motorola<br>
ATCA6101 to be precise). This board is running a two-CPU PPC970FX. I am<br>
running a 2.6.27-10 kernel and have tried both older kexec-tools and the<br>
newest ones. I have tried SMP and non-SMP kernels.<br>
</blockquote>
<br></div>
Once you start the second cpu it is likly executing instructions somewhere.<br>
<br>
Priory to 2.6.27 you had to compile a fixxed offset kerenl to run kdump. With 2.6.27 that option was removed and replaced with teh relocatable kerenl. However, becasue of the way linux interacts with open firmware, the kernel will still move itself to 0 unless a specific flag is set. The location of the flag was changed twice during the merge process, and the patches for kexec-tools were not made until early this year.<div class="Ih2E3d">
<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Using kexec -l to fast boot works correctly. However, loading a crash dump<br>
kernel and triggering a crash via echo c > /proc/sysrq-trigger simply hangs<br>
the board. I have traced the sequence down to after the call to<br>
kexec_copy_flush(), when the CPU returns to real-address mode (bl<br>
real_mode). At this point I have no further debugging information.<br>
</blockquote>
<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Two things could help me:<br>
<br>
- Getting the fix if this is a known issue and a fix exists. I have looked<br>
at recent patches and nothing lept to mind, mostly relocatable kernel<br>
support.<br>
</blockquote>
<br></div>
That is a major change.<br>
<br>
That said, I don't know if anyone has tested kexec panic beyond pseries for 64 bit powerpc.<br>
<br>
I know Paul originally prototyped the relocatable patch on a powermac, but I dont' know what if any smp testing he performed. And you said you are actualy on maple not a powermac, so the startup issues are different.<div class="Ih2E3d">
<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
- Obtaining the address of the serial port @3f8 in real mode. The init<br>
sequence with udbg ON says that the physical address of the port is<br>
0xf40003f8; however, setting it up in poll mode and trying to stuff<br>
characters in the tx buffer doesn't produce anything.<br>
</blockquote>
<br></div>
Ah yes. In real mode you can only talk to cacheable memory without implementation specific assistance. However, if you look in the kernel for the maple early udbg support, you will find the code you need to talk to that serial port in real mode.<div class="Ih2E3d">
<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>
Has anyone recently tried to use the serial port in real mode ?<br>
<br>
Thanks for any help.<br>
<br>
Ben<br>
</blockquote>
<br></div>
Hope this gets you started. I wrote a lot of the kernel code, but I had the advantage of external jtag access to the processor to see where it when ended up when it went astray.<br><font color="#888888">
<br>
milton<br>
<br>
</font></blockquote></div><br>