lkdp-discuss
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [LKDP] Documenting Bootup process !


From: Abhishek Nayani
Subject: Re: [LKDP] Documenting Bootup process !
Date: Wed, 6 Nov 2002 11:33:07 +0530
User-agent: Mutt/1.4i

Hi,

On Wed, 06 Nov 2002, Udaya kumar.R wrote:

> hi ,
>    I m the guy, who came forward to document the bootup and network parts.
> 
> And Abhi, u had said there is a TOC available for Bootup which i could not
> find in the cvs repo. Please get me that. 
> 
> And as u had mentioned i will go about with bootup leaving the networking 
> to others.
> 
> bye.
> uday.

        This rough TOC was prepared by stephen. He is currently busy right
now and may join u later...

#############################################################

Bootstrapping and Initialization of the Linux Kernel

+ Preface - arch dependent description of bootstrapping linux kernel and
        processor initialization to start_kernel() in stable branch

        o Acknowledgements - #kn and #lkdp of course

+ i386
        o Assumptions - trace through loader prepended to kernel image;
                assume user dd's image to floppy drive

        o Processor State after Power On or Reset - describe register
                state, process of copying first sector from boot device
                into memory, and jumping to it

        o Relocation and Initial Setup - summarize memory layout of
                boot block and setup code as it's loaded and relocated;
                describe layout and noteworthy syntax of boot/bootsect.S

                * move boot block
                * setup stack
                * get number of sectors/track
                * print "Loading" message
                * load setup sectors
                * detect root device and load system
                * jump into setup code

        o More Setup, Memory Probing, Protection Setup - summarize the
                memory detection schemes, tedious procedures for video,
                APM, A20, moving system and kernel parameters to final
                location, and preparation for protection; describe layout
                and noteworthy syntax of boot/setup.S and boot/video.S;
                (this section will probably be further subdivided for
                topics such as video and A20)

                * loader sanity checks
                * memory detection schemes
                        - e820h
                        - e801h
                        - 88h
                * keyboard and video setup (I suppose this could be
                        a section all itself; I'm not thoroughly familiar
                        with it, so i'll omit it's outline for now)
                * "Get hd[01] data..." (I need to trace this more carefully)
                * check for PS/2 device
                * APM stuff (again, I'm a little hazy here as well)
                * prepare for switch to protected mode
                * move system to it's final place
                * enable A20
                * setup a temporary idt and gdt
                * reset any coprocessors
                * mask interrupts
                * switch to protected mode and jump into 32-bit code

        o 32-bit Startup and Paging Initization - summarize the code
                necessary for paging init; describe layout and noteworthy
                syntax of kernel/head.S

                * setup paging options and enable paging
                * setup idt to ignore interrupts
                * move boot parameters
                * cpu detection
                * setup gdt and ldt
                * reload segments and jump to arch independent startup;
                  cover SMP case as well

        o Bibliography

                * IA-32 Intel Architecture Software Developer's Manual Volume 1:
                        Basic Architecture -
                        
http://developer.intel.com/design/pentium4/manuals/245470.htm
                * IA-32 Intel Architecture Software Developer's Manual Volume 2:
                        Instruction Set Reference -
                        
http://developer.intel.com/design/pentium4/manuals/245471.htm
                * IA-32 Intel Architecture Software Developer's Manual Volume 3:
                        System Programming Guide -
                        
http://developer.intel.com/design/pentium4/manuals/245472.htm
                * A20 - http://www.win.tue.nl/~aeb/linux/kbd/A20.html
                * Ralf Brown's Interrupt List - http://www.ctyme.com/rbrown.htm
                * ACPI - http://www.acpi.info/spec.htm
                * BIOS Boot Specification
                        http://www.phoenix.com/PlatSS/PDFs/specs-bbs101.pdf

+ sparc
+ sparc64

#############################################################


                                        Bye,
                                                Abhi.
        
--------------------------------------------------------------------------
"I can only show you the door, you have to walk through it..." - Morpheus
--------------------------------------------------------------------------
Home Page: http://www.abhi.tk
-----BEGIN GEEK CODE BLOCK------------------------------------------------
GCS d+ s:- a-- C+++ UL P+ L+++ E- W++ N+ o K- w--- O-- M- V- PS PE Y PGP 
t+ 5 X+ R- tv+ b+++ DI+ D G e++ h! !r y- 
------END GEEK CODE BLOCK-------------------------------------------------




reply via email to

[Prev in Thread] Current Thread [Next in Thread]