Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 23 Nov 2007 19:59:54 -0800
From:      Julian Elischer <julian@elischer.org>
To:        Aryeh Friedman <aryeh.friedman@gmail.com>
Cc:        Attilio Rao <attilio@freebsd.org>, freebsd-hackers@freebsd.org
Subject:   Re: a strange/stupid question
Message-ID:  <4747A1BA.6020505@elischer.org>
In-Reply-To: <bef9a7920711231941h41f04cbbi53d24b791170a6bd@mail.gmail.com>
References:  <bef9a7920711231933g4b7e7717sf4667773188f28a@mail.gmail.com>	<3bbf2fe10711231937y1e9af357hd8b6a63cbf6ae077@mail.gmail.com> <bef9a7920711231941h41f04cbbi53d24b791170a6bd@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Aryeh Friedman wrote:
> On 11/24/07, Attilio Rao <attilio@freebsd.org> wrote:
>> 2007/11/24, Aryeh Friedman <aryeh.friedman@gmail.com>:
>>> Where do I find the main() [and/or other entery point] for the
>>> kernel.... I tend to understand stuff better if I follow the flow of
>>> exec from the start
>> It is highly MD.
>> For IA32 it is in i386/i386/locore.s::btext
> 
> For AMD64 I assume something close to that...
> 
> I just relized that I actually want to understand everything from POST
> on (actually from power on but I know that is very mobo dependant) so
> I guess the question is where do I find the first executed statement
> for BTX (I know how to disamble the MBR so that part is not an issue)
> _______________________________________________
> freebsd-hackers@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"

As Attilio said:


for the kernel, execution starts (for the x86) in /usr/src/sys/i386/i386/locore.s
at around line 205.  

look for:

/**********************************************************************
 *
 * This is where the bootblocks start us, set the ball rolling...
 *
 */
NON_GPROF_ENTRY(btext)


it then skips to sys/kern/init_main.c   (mi_startup) (from memory)
and that jumps back to machdep.c (cpu_startup())


I suggest of course that you also read the bootblocks.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4747A1BA.6020505>