[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bootsect help !!
Hello,
> First of all thanks a lot for the help i received for my previous query
> regarding bootsect.S . I was adviced to go thru few documents and links
> which i have done ,still some doubts persists .
Hope we can eliminate at least some of your left questions.
> a) Regarding Disk Parameter Table
> The default DPT is copied to location 0:4000-12 and the number
> of sectors/track field is changed to 36 . Later we try to get the number
> of sectors/track by trying to read the 36th sector then 18th so on.
> I guess this probably means that regardless of the sectors/track value
> we write to DPT we can read only that many sectors that the disk
controller
> supports ,if so what is the idea of changing the DPT sector/track field
> to 36 ?
Some BIOS doesn't allow reading more sectors then specified in the FDPT.
That's why we're going to overwrite the value stored there with 36
(which should be fairly high enough). The second limitation we've to
dealt with is the floppy drive itself. In some (mostly older) computers
reading of sectors is allowed as long as on cylinders are crossed. Say
you wanne read 30 sectors with INT 13 (set %al to 30) and your device
has to move its head to an other cylinder in between, then the behaviour
of the BIOS is un-specified. The BIOS has no problem to read more than
one sector a time as long as there are no heads in between. So we have
to determine whether there is a cylinder crossing. If so then we've to
move explicitly the head.
>b) The part where we check which root device to use
> What exactly is meant by root device and how it is
detected ?
Sorry, I'm also not sure.
> c) System is loaded to mem location 0x10000 ,it is insisted that no 64 KB
> boundries are crossed ,why so ?
I think you'll find this out if you're deeper in the memory mechanism
Linux uses on Intels architecture. Beleive me, most thing will come
automatically if you got the global view of how things are realized in
Linux. For the moment I recommend you to trust Linux and moving
straight forward. Don't look for those little bits and bytes which are
preventing you for getting an expert :-). My succetion is moving from
bootsect.S to setup.S (excluding video.S - you do not realy need it). If
you got an overview go to compressed/head.S and then to kernel/head.S.
All the time keep an eye to the Makefiles and the results of the
compilation process.
> d) " This procedure turns off the floppy drive motor, so that we
enter the kernel
> in a known state, and don't have to worry about it later."
>
> If we don't turn off the motor what do we have to worry about ??
Just interpretated: http://www.kernelnewbies.org/faq/index.php3#masters
Please, be serious... :-)
> My prior apologies if the queries are too silly ,once again thanks for
> the help received
> gopakumar
All right, hope it helped.
// Gerrit
P.s.: ctags (man ctags; vi and then :help ctags) and cscope
(http://cscope.sourceforge.net/) helped me a lot in the beginning. Try
it out and have fun.
--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive: http://mail.nl.linux.org/kernelnewbies/
FAQ: http://kernelnewbies.org/faq/