Re: PANIC: FAIL in line 187

Uwe Dannowski <[email protected]>
Newsgroups gmane.comp.micro-kernel.l4.l4ka.general
Organization System Architecture Group, Karlsruhe University (TH), Germany
Message-ID <[email protected]>
Max Dilay wrote:
> But when Pistachio loading they write PANIC: Fail in line 187.

Short answer: Try GCC < 4.1 if you can. Version 4.0.x should work.
              I don't have a quick fix for this.

Long answer:

There seems to be a problem with how GCC 4.1 handles the initialization
of the KIP. I encountered it on IA-32 but didn't have time to take care
of it, yet. Prior versions of GCC managed to statically initialize the
memoryinfo field in the KIP which serves as a pointer to the memory
descriptors. GCC 4.1, however, generates code to initialize it. Thus the
field contains zeros in the freshly loaded kernel binary that is
inspected and patched by kickstart. The constructor to initialize the
meminfo field would only be called once the kernel has been launched if
it ever got that far. Around 3 or 4 corners, this then manifests in
kickstart in said "FAIL in line 187".

I'm not sure if that transfers to AMD64, though. I guess it does. You
can check by inspecting the values at offset 0xA8 ... 0xAF in the KIP
in your amd64-kernel binary:

  objdump -s -j .kip amd64-kernel | grep 0a0

should yield something like:

  ffffffffc023e0a0 00000000 00000000 d0000000 00030000

where the last two words shouldn't be all zeros.


Uwe
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.