On Wed, Sep 06, 2006 at 11:10:47AM -0700, Ashlesha Shintre wrote:
> I googled early_initcall and found a patch which basically adds this
> line to the /include/init.h file:
> #define early_initcall(fn) __define_initcall(".early1",fn)
There is more infrastructure needed to get this to work. And in fact why
are you trying to get it to work at all - a direct call from setup_arch
to your early init function is trivial to do.
> I built a kernel image with this new line included and now if I try
> executing it, the bootloader YAMON gives an exception error before it
> can even begin! Here is the dump:
Such a dump could be from YAMON or in the very early phase of the kernel
> A machine check means that an exception is generated due to duplicate
> TLB entries. I dont understand why the kernel crashes so early.
There are also other implementation specified reasons that may result
in a machine check exception as well.
> Also, what does the ".early1" mean? Is that a definition of a different
> segment in the init.h file?
Section not segment. It's just a section name.
> I checked output of the "readelf -a vmlinux" and found that the address
> for the early_initcall comes up about 5 times. I m not sure what each
> of the fields mean, so I have attached the above part of the readelf in
> a file called readelf.
And if you had not quoted 50 lines of the previous message in this thread
but those lines from the readelf output we might actually tell you.