Commit Graph

312 Commits

Author SHA1 Message Date
Ingo Weinhold
b0f7c84522 Switched to new DoublyLinkedList class.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11191 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-02 02:19:23 +00:00
Axel Dörfler
623d7696c0 Added a platform_register_boot_device() stub function.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10908 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-20 17:40:46 +00:00
Axel Dörfler
486c7eddeb Added driver_settings support: it will now read in the vesa kernel driver
settings and use that one as standard video size (but ignores the depth
parameter for now).
It will be the app_server's responsibility to keep this file up to date.
This file should no longer be edited by users.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10637 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-10 07:41:01 +00:00
Axel Dörfler
4c89c923bf For now doesn't switch to text mode and back to the logo anymore when the
menu is shown - the logo is now shown after the menu anyway.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10636 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-10 07:38:01 +00:00
Axel Dörfler
78c5ef46fc Added driver_settings support.
It will now load all settings in the kernel driver settings directory
and pass them over to the kernel (unparsed).
Additionally, it allows other parts of the boot loader to access
driver_settings just like in the kernel.
Moved the switch to the logo in the boot loader much further to the end
of the boot loader's life cycle. This is done so that the boot loader
can directly use the video mode as configured in Haiku, without a jumping
logo. Since the delay will be noticeable on a real system, we might want
to introduce a second different boot logo, though. We'll see.
stdio.cpp now also exports errno (and _errnop). Might be changed to a
different approach later as well (it's now done this way so that strtol.o
can be taken over unchanged from libroot.so).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10634 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-10 07:32:54 +00:00
Axel Dörfler
f79889e75b Now also sets the cpu_clock_speed field.
Disabled debug output.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10312 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-30 20:59:55 +00:00
Axel Dörfler
caa0ef0b4c Some old changes, probably shouldn't get lost, even if this boot method
is not being used by the PPC anymore.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10299 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-30 17:37:56 +00:00
Axel Dörfler
058569262f get_memory_map() is now silent when TRACE_MMU is not defined.
When the 0xe820 memory map method doesn't work for whatever reason (broken BIOS),
it currently just assumes to have 32 MB - it now also prints out a warning when
it does so.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10298 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-30 17:33:46 +00:00
Axel Dörfler
50f99a085e Now properly allocates the kernel stacks of the other CPUs.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10057 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-19 22:04:12 +00:00
Axel Dörfler
0641ddaabc Now uses the KERNEL_STACK_SIZE constant to allocate the idle thread kernel stacks.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10056 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-19 21:56:45 +00:00
Axel Dörfler
17e0266f6e Implemented platform_register_boot_device(): it parses drive_parameters
versions 2.x and 3.x and fills the disk_identifier of the boot disk.
"Dumb" checksum/size recognition is not yet implemented (stores only the
size of the disk for now).
Does not yet create bios_drive structures for any other drives.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9962 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-15 18:11:27 +00:00
Axel Dörfler
04b9d56a03 register_boot_file_system() now also fills in the kernel_args data about
the boot partition, and calls platform_register_boot_device() for the
rest.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9961 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-15 18:06:47 +00:00
Axel Dörfler
925f2cab6a get_node_for() has moved into the public VFS API for now.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9960 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-15 18:05:01 +00:00
Axel Dörfler
5d6160d04e panic() now reboots when you press a key.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9959 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-15 18:03:56 +00:00
Axel Dörfler
356f4957fa Added a function that clears the keyboard buffer.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9958 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-15 18:02:50 +00:00
Axel Dörfler
8a4b1da1e7 Corrected the information where the real/protected mode stacks begin; the
comment did not take the BIOS data area into account.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9957 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-15 18:01:52 +00:00
Axel Dörfler
8c3e1399ec Thanks to Johannes Fortmann, I learned that the blinking mode can be turned
off to enable bright background colors. It's now always done which enabled
me to improve the slider colors a bit.
Therefore, console_set_color() no longer clears bit 8 from the background color.

Now no longer tries to change the palette in non-8-bit modes; that fixes
the strange colors I got in high and true color modes (VESA palette changing
would fail and the fallback VGA palette changing was responsible for the effect).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9772 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 15:43:27 +00:00
Axel Dörfler
73760b2058 Moved serial interface code into separate file.
serial_init() is now called from start().
Changed the way the serial debug output is served: instead of having
the console node to dump everything to serial, too, only dprintf()
triggers serial output now.
dprintf() is now silent unless in debug mode; serial output could
be enabled separetely, though (currently only at build time).
There is no need to disable serial output while the menu is running.
Removed unnecessary grist from the Jamfile.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9756 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 03:02:34 +00:00
Axel Dörfler
5a7a832f37 Debug output now uses dprintf() rather than printf().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9755 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 02:35:56 +00:00
Axel Dörfler
1baf43ea86 Since my original color setup only looked good in Bochs (on real machines
some stuff blinked and had wrong colors), we now have a new color scheme
in the boot loader. Not perfect, but looks okay and the same on Bochs and
real machines.
Made changing the colors again easier by moving most colors to constants.
We now have 3 lines for help texts.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9754 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 02:31:41 +00:00
Axel Dörfler
cdd04333a0 Standard console height are 25 lines, not just 24.
Now clears the screen and scrolls using the current colors (which allows
for other background colors than black).
console_set_color() no longer allows to set the 8 bit of the background
color which indicates blinking.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9753 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 02:28:27 +00:00
Axel Dörfler
d70ad16601 Changed the console color names to something simpler and better fitting.
Added comments about which colors can be used for what (unlike Bochs,
real systems support blinking modes, and therefore only 7 bits for
the background color).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9752 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 02:25:28 +00:00
Axel Dörfler
92e0317c84 Disabled VESA palette changing for now; it does not seem to work correctly
or I am messing things up (it will now use good old VGA palette programming).
This fixes the strange colors on my system, should investigate on how to
properly use the VESA stuff here.
Debug output now goes through dprintf().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9751 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 02:23:42 +00:00
Axel Dörfler
d3b2cb65ad Now properly resets the system using the keyboard controller.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9750 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 02:20:59 +00:00
Axel Dörfler
74a5be2dbd No longer clobbers the lower 16 bit of the partition offset before it is saved.
The boot partition was not likely to be found before.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9749 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 02:20:06 +00:00
Axel Dörfler
8ba84a800d Partitions do now know if they actually represent a known partitioning system.
Now correctly removes the partitioning system from a device when it is no longer
needed. Also resets the parent pointer of its children.
Debug output now goes through dprintf() rather than printf().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9748 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 02:17:58 +00:00
Axel Dörfler
127b80eca2 Fixed a bug when the wanna-be boot partition could not been mounted;
the partition was deleted, but never removed from the partition list.
No longer prints out the root directory contents of all file systems.
Debug output now uses dprintf() rather than printf().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9747 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 02:15:31 +00:00
Axel Dörfler
b487348fb3 Now only use dprintf() for debug output.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9746 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 02:13:18 +00:00
Ingo Weinhold
4303e367b2 Now we need to explicitly disable RTTI in the boot loader, since it is generally enabled in the kernel.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9565 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-28 16:03:12 +00:00
Axel Dörfler
c045a66d75 Gosh, didn't even find the time to adapt map_page()'s comment to the new world.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9538 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 17:13:20 +00:00
Axel Dörfler
48ac51f886 Added support to map more than 4 MB in the kernel space. This became necessary
to be able to have more than 1280x1024x8 resolutions. The best solution, however,
would be to map the graphics memory outside of the kernel space, anyway.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9537 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 16:44:04 +00:00
Axel Dörfler
1b50789288 Running a menu may change the currently selected entry, so we need to update its saved index.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9536 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 16:42:05 +00:00
Axel Dörfler
a7fb02e6a2 No longer enables video mode when in debug mode (when a menu came up before
it switched to the logo mode afterwards).
Improved and broke the second call of platform_switch_to_logo() with a
different video mode: it now at least works when switching to a lower
resolution.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9535 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 16:25:30 +00:00
Axel Dörfler
162eda1e2f Fixed a bug that would select a non-selectable entry when wrapping around
the "cursor".
Now disables serial output when the boot menu is shown.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9528 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 01:08:48 +00:00
Axel Dörfler
c9e4e71f10 Implemented optional additional serial output in the boot loader.
When the debug boot option is set, or ENABLE_SERIAL defined on compile time,
the serial port 1 is activated.
It will also read the serial base port info from the BIOS data and use
that if any ports are reported (will fall back to 0x3f8 if not).
Right now, a fixed baud rate of 115200 and 8n1 is used.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9527 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 01:06:33 +00:00
Axel Dörfler
628e5a0374 The new fSuperItem menu field is now maintained, ie. Menu::Superitem() and
Menu::Supermenu() now work.
Added function to find an item by label.
The boot volume menu now actually lets you choose a different boot volume.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9525 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 00:59:56 +00:00
Axel Dörfler
89e31dce3b kernel_args_malloc() now actually maintain the kernel_args ranges correctly.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9442 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-21 02:40:43 +00:00
Axel Dörfler
a17b2346d0 Now makes use of sMaxVirtualAddress to calm down gcc.
arch_cpu.h no longer includes kernel.h, so we have to do this for the
ROUNDUP()/ROUNDOWN() macros.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9441 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-21 02:35:37 +00:00
Axel Dörfler
3cbdc52595 Replaced PAGE_SIZE with B_PAGE_SIZE.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9432 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-20 00:28:48 +00:00
Axel Dörfler
027c6be29f Updated due to changes to the kernel_args frame buffer structure.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9422 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-19 23:07:19 +00:00
Axel Dörfler
184d298298 Now maintains the new kernel_args addr_range array in the kernel_args structure.
Exports the new insert_address_range() function as declared in boot/addr_range.h.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9416 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-19 17:11:23 +00:00
Axel Dörfler
1e25c041ec Removed kernel_args::str initialization, since it is no longer there.
Added a kMaxKernelSize constant to be able to change that limit a bit
easier.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9415 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-19 17:08:31 +00:00
Axel Dörfler
a3a0808085 Updates due to the changed frame buffer part in kernel_args.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9414 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-19 17:07:01 +00:00
Ingo Weinhold
93d412b087 Refactored the intel partitioning module.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9159 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-02 15:35:25 +00:00
Axel Dörfler
8b2f07b69e Removed sleep(), it now uses spin() from cpu.cpp - which is the exact same thing anyway.
This fixes the build as unistd.h defined sleep() as well.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9108 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-09-29 12:51:34 +00:00
Axel Dörfler
a78a421de8 Renamed sleep() to spin() as that's what it does, and sleep() also doesn't
like unistd.h.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9040 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-09-23 13:43:57 +00:00
Axel Dörfler
fe29b8929a Some cosmetics for booting with qemu.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9020 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-09-21 12:09:36 +00:00
Axel Dörfler
b1cd9d2d94 Changed the resolution of the boot loader to a maximal width of 800 pixels to
have a smaller window in Bochs :)
Debugging output only if TRACE_VIDEO was defined.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8733 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-08-31 01:04:24 +00:00
Axel Dörfler
7fdfbc9850 No longer disables the floppy motor if it was booted from a floppy - that
somehow doesn't seem to work right with Bochs; after a reboot, the floppy
is not accessible (we might just need to turn the motor on again).
Not checked if this also happens on a real machine.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8655 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-08-25 15:40:51 +00:00
Axel Dörfler
d3a947b004 Now uses a macro to export global symbols.
Added the reboot() function from our kernel.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8654 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-08-25 15:38:26 +00:00