Commit Graph

178 Commits

Author SHA1 Message Date
Axel Dörfler
9f2dae6a17 For now, always enable serial debug output in the boot loader.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14532 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-26 22:31:27 +00:00
Axel Dörfler
fde12d6407 Some cleanup: renamed the mp_ext_* structures to mp_base_* as they are
part of the base table, not the extended table.
Renamed some structure fields, variables to be clearer and nicer to read.
Removed some unused stuff.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14502 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-24 21:37:40 +00:00
Axel Dörfler
0c67510ae1 Enabled SMP detection again - since it's very likely that it doesn't work on
your system, I've also added a "Disable SMP" safemode option. The NO_SMP
define is still there, and will be removed once SMP works flawlessly.
Prints out infos about the interrupt entries in the MP config.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14499 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-24 19:43:50 +00:00
Axel Dörfler
7a09488d8e Could overwrite the memory that the SMP code is using for the trampoline
code/stack with page tables.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14498 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-24 19:29:59 +00:00
Axel Dörfler
3d5ecf962c Minor cleanup, no functional change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14472 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-22 16:53:49 +00:00
Axel Dörfler
8c20600d12 Looks like some BIOS don't bother filling in cylinder/head/sectors_per_track information
for extended drive parameters.
This should fix eventual "no boot disk" messages of the boot loader.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14435 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-19 22:43:50 +00:00
Axel Dörfler
5a54b40166 Implemented platform_add_block_devices() - if you have more than one bootable
Haiku disk installed, you can now choose between them in the boot loader.
Also fixed build - obviously forgot to compile before a last minute change...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14404 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-17 14:20:41 +00:00
Axel Dörfler
597416d1dd gKernelArgs.boot_disk.cd is now only set to true, if the selected boot volume
is still the CD-ROM.
BIOSDrive::ReadAt() now tries to read a specific block up to 3 times before
failing - after the second retry, it will also reset the disk system.
get_ext_drive_parameters() will now fail if the BIOS fills in the device_parameters
structure incorrectly (just tested some values against zero, that at least helps
in the case of one of my systems).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14401 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-17 13:45:55 +00:00
Axel Dörfler
e84506daca The home/end keys are no longer able to select disabled entries.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14400 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-17 13:40:57 +00:00
Axel Dörfler
19567a9917 Now makes sure the selected entry is visible upon entry, too.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14398 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-17 10:09:04 +00:00
Axel Dörfler
a51b55c985 "kernel_args.boot_disk.cd" was never set to true...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14397 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-17 10:06:28 +00:00
Axel Dörfler
2e2bd87511 Renamed devices_check_boot_cd() to check_boot_cd() and moved it up to the other BIOS
functions - it no longer terminates the CD-ROM emulation, but only checks the status,
and therefore, it's now called by platform_register_boot_device() instead of from
platform_start_kernel().
This also makes the devices.h header useless.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14390 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-14 21:38:12 +00:00
Axel Dörfler
51e081bade Removed platform_boot_device_is_image() - platform_get_boot_device() now fills
in the adequate field in the kernel_args structure.
Renamed gCDFloppyBoot variable to gBootedFromImage (as network boot should look
similar).
The "kernel_args.boot_disk.cd" field is now maintained as well.
The print_item_at() menu function now prints the Menu::ChoiceText() instead
of that of its marked item.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14389 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-14 21:26:30 +00:00
Axel Dörfler
d32f04d20a Improved comments about the manual symbol relocations.
Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14382 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-14 11:49:35 +00:00
Axel Dörfler
e3fcb58ebb The boot loader now has special support for being booted from a boot image
like floppy or CD boot.
This allows it to reduce the number of scans needed to identify the boot
partition - when booted from a real floppy, this speeds up the boot
process by a magnitude.
Also, the loader now has a fall back in case there were no "boot" links
on the disk - the current boot floppy script doesn't create them.
With these changes, I was able to boot into a HD based Haiku installation
from a floppy disk. It's not yet enough to boot from CD (as the boot
device selection is a bit too simplistic right now), but it will eventually
come next. Testing is a lot slower here, though, as neither qemu nor
Bochs support multi-session CDs (at least I have no idea how to get them
to do this).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14380 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-14 11:34:18 +00:00
Axel Dörfler
ceb769360d Got rid of the now unused sPageTable variable.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14378 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-14 09:26:11 +00:00
Axel Dörfler
7416092b83 Marcus spotted an error in the cylinder calculation in get_drive_parameters() - didn't
have an effect on floppies or CD-ROMs, but would have on real hard drives that require
CHS access.
Changed the cylinder-to-regs conversion in BIOSDrive::ReadAt() (that one was actually
correct) to make it look similar to the conversion in the opposite direction in
get_drive_parameters().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14377 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-14 09:25:45 +00:00
Axel Dörfler
8d156f1c5e Fixed a bug with the offset handling in BIOSDrive::ReadAt().
Implemented CHS support needed for smaller hard drives, CD-ROM, ...
Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14369 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-13 13:45:23 +00:00
Axel Dörfler
e83ba2ee32 Enlarged the boot loader's heap area to 64kB needed for the tarfs.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14368 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-13 13:43:13 +00:00
Axel Dörfler
4cc5dde4a7 Updated memory layout comment.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14367 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-13 13:40:58 +00:00
Axel Dörfler
0eecdd8334 Made the page table allocation/filling mechanism a bit more flexible and less error prone.
Also, freeing regions is now supported (but still only the last allocated region can be
freed, as that's currently good enough).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14366 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-13 13:37:18 +00:00
Axel Dörfler
0428a0ddc4 Now loads the maximum size of zbeos when booted from a floppy or CD.
Note, this value should be patched by the build system to the actual size
of zbeos - but since we don't have this mechanism in place yet, the maximum
value is probably the best default, even if it should slow down a floppy
boot considerably.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14344 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-11 00:21:37 +00:00
Michael Lotz
06500c3e58 The color index is multiplied by 3 because there are R, G and B values for each color in the palette. But uint8 can't hold these for any index above 256/3 obviously. Also fixed the 24-bit display. It works on real hardware but looks broken with bochs. I suppose bochs does not handle 24-bit VESA correctly though.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13359 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-29 23:40:25 +00:00
Axel Dörfler
8cd812c172 Forgot to uncomment this line: the "depth" argument of the vesa file is now also
evaluated, so that you can specify something different than 8 bit in there.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12840 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-26 12:05:31 +00:00
Axel Dörfler
8bd36612dc First try to get the boot logo displayed properly in all color spaces.
For some reason, the colors are wrong for anything but 8bit modes, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12823 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-26 07:47:19 +00:00
Axel Dörfler
895e2a0375 Reenabled the Qemu workaround: the frame buffer is now cleared after a mode change.
After all, there might be real graphics card which behave the same??


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12551 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-03 02:06:08 +00:00
Axel Dörfler
718b5114e0 This should fix the build after all the kernel/system renaming.
If anything is still broken (and was not before :)), please shout.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12361 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-13 13:59:17 +00:00
Axel Dörfler
5af32e7526 Renamed src/kernel to src/system.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12359 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-13 13:06:35 +00:00