Commit Graph

562 Commits

Author SHA1 Message Date
François Revol
499f2a5c48 Some more work to get video support working, add generic code to support the boot splash in.
However all modes available are planar, and there doesn't seem to be a way to tell it in the kernel args framebuffer struct...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39255 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-01 17:24:20 +00:00
François Revol
9bc9cf069d Cleanup. Add a LLKeyboardDevice using lowlevel.library but it doesn't seem to be available in the kickstart I have anyway.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39254 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-11-01 17:22:25 +00:00
Ithamar R. Adema
72d414a517 * ARM: Start physical allocated range at top of memory; otherwise our page directory/tables won't be included
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39204 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-30 13:55:29 +00:00
Ithamar R. Adema
7bc3564aa8 * ARM: Some more cleanup...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39168 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-28 11:19:20 +00:00
Ithamar R. Adema
ac4c302248 * Adjust code to use the new page directory/table helper macros.
* Some more code cleanup.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39138 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-25 11:19:17 +00:00
François Revol
ee0c130257 Display flags and interlace in the mode menu items.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39136 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-24 22:46:06 +00:00
François Revol
b14f16077c Fix setting console position.
Generate a list of video modes, though there seem to be some dups and missing ones... The Nominal resolution doesn't mean it can't be better.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39135 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-24 22:28:13 +00:00
François Revol
2e74287ab2 Force a 040 detection for now, it seems E-UAE is making kickstart detect it randomly :(
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39134 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-24 22:26:27 +00:00
François Revol
062c606d62 An implementation of a ConsoleDevice using console.device but it seems it requires having a window open.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39128 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-24 16:28:23 +00:00
François Revol
77fd9ce1f9 Of course we need the Exec call definition for ColdReboot().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39127 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-24 16:26:17 +00:00
François Revol
e4e2237013 reboot sanely from platform_exit().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39126 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-24 16:21:59 +00:00
François Revol
fc13691eeb Add a Clear() call to ExecDevice.
Seems there is a lowlevel.library which might be easier to use for keyboard, add some defs for it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39113 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-24 02:55:46 +00:00
François Revol
4ae7f92a58 Fix console_clear_screen(), ClearScreen() only clears from the current y position so we must Move() before.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39111 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-24 02:12:18 +00:00
François Revol
6fff309da9 Almost working keyboard input. One can now select menu items, though it seems to miss 2/3 of the key presses.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39110 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-24 02:06:30 +00:00
François Revol
f2b7a266d7 Add an ExecDevice class to handle devices using Exec's IORequest calls. Subclass it as KeyboardDevice to use keyboard.device.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39108 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-24 01:16:36 +00:00
Ithamar R. Adema
3164579353 * ARM: Map full page directory, instead of just the first page
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39092 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-23 20:28:49 +00:00
François Revol
22d81b6c8e Implement proper console color handling.
Don't draw over the screen title.
Oddly the menu doesn't seem to clear the screen.
Looks much better now:
http://revolf.free.fr/beos/shots/shot_haiku_loader_amiga_m68k_003.png


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39076 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-23 19:13:55 +00:00
François Revol
bf6cf21094 Fix AmigaOS calls : a6 is required to point to the library base, but our gcc uses it as frame pointer, so we must save it before calling.
Fix the console and remove test panics. We now display the menu, although not in the best colors :
http://revolf.free.fr/beos/shots/shot_haiku_loader_amiga_m68k_002.png
(Yes, the mouse moves too :p)
Amiga !!!!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39074 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-23 15:53:51 +00:00
Ithamar R. Adema
e8b7cfe80e * ARM: print memory map before starting kernel
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39058 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-23 08:51:09 +00:00
François Revol
04fc737059 Start of implementation for the console. dprintf() now uses one of the console handles for simplicity.
It crashes for now though, seems we have a stack alignment issue or maybe mangled registers. Or maybe it's due to non-static initializers not being done.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39053 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-22 21:09:10 +00:00
François Revol
2be003bc1e Add missing packed attributes.
Add needed TextFont struct.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39052 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-22 21:06:25 +00:00
François Revol
5a0d2097fe - DisplayAlert() already waits for a mouse click.
- Implement dprintf() with DisplayAlert() for now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39050 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-22 19:19:03 +00:00
François Revol
51bac633cf More of the needed AmigaOS APIs.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39049 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-22 19:16:43 +00:00
Ithamar R. Adema
29ce3dedd9 * Remove references to vectors, they are not at physical address 0, but on either virtual address 0 or (in case of high vectors) on 0xffff0000....
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39046 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-22 15:57:57 +00:00
Ithamar R. Adema
2d3913afba * Pass through physical RAM area to kernel.
* More code cleanup....

Currently working on getting the MMU code on the kernel side to function correctly, some progress already there, will follow in later commits...



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38988 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-17 15:27:36 +00:00
Matt Madia
ead0844514 Created some pseudo targets, to make jamming easier. For example,
jam -q -sHAIKU_BOOT_BOARD=verdex haiku-arm-image
will build "haiku_verdex_flash_image_raw.img"


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38984 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-16 17:08:22 +00:00
Matt Madia
fc9a8806b1 Automatic whitespace cleanup. No functional change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38983 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-16 16:44:29 +00:00
Ithamar R. Adema
71b60eaf35 Remove leftover debug code. Thanks François!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38973 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-15 11:16:18 +00:00
Ithamar R. Adema
1a6a5dc39d Minor code cleanup. No functional changes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38972 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-15 10:20:21 +00:00
Ithamar R. Adema
ecaa4c2990 * Incorporate ARM board name in flash/mmc image names; Fixes ticket #5213.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38971 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-15 09:48:43 +00:00
François Revol
4cbffbf53f Style is overrated.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38957 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-12 10:24:49 +00:00
François Revol
14016c7ce9 Add some simplified structure definitions the way NetBSD does.
Implement cpu detection using Exec's AttnFlags.
Now panics a little later.

Note you need to tell UAE to emulate a 040 now (020 not supported) with -C4 to boot.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38956 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-12 10:11:04 +00:00
François Revol
0128537395 Cleanup leftover atari code.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38954 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-12 09:12:59 +00:00
François Revol
7171eb5907 Actually it seems using HD ADF image is what is causing this issue with 6 sectors. Using DD images seems to work fine.
Fix panic(). Now panic() in _start.

To try it, do :

TARGET_BOOT_PLATFORM=amiga_m68k jam -j1 -q haiku_loader
dd if=/dev/zero of=haiku.adf count=1760
dd if=generated/objects/haiku/m68k/release/system/boot/haiku_loader of=haiku.adf conv=notrunc
uae -s floppy0=haiku.adf -s cpu_type=68020/68881 -s chipmem_size=8 -i


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38952 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-12 00:20:53 +00:00
François Revol
52d6ea00ea Adapt the putx routine from atari code to update the string for the alert with a code. Use it to indicate remaining sectors to read on error.
It seems DoIO() fails after 6 sectors. Could it have something to do with side handling ? I hope I won't have to dig trackdisk.device specific stuff...
Anyway even with 6 sectors read, the boot code now calls _start() successfully. Use _floppy_err_alert() to assert this until the copying is fixed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38951 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-11 23:33:01 +00:00
Philippe Houdoin
89fa2a8573 Move the boot images conditional selection in one place, to remove
possible mismatch images info between loader and kernel.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38947 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-11 12:54:21 +00:00
François Revol
7ddba3d2ad s/amicalls/rom_calls/
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38944 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-10 20:44:33 +00:00
François Revol
4543fd0ef6 Define the needed Library Vector Offsets in the header and use them from the asm.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38943 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-10 20:41:41 +00:00
François Revol
396a612a64 Better error codes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38942 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-10 20:27:46 +00:00
François Revol
1d4497a8f6 The Coding Style Police is much more efficient than the HADOPI...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38941 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-10 20:18:07 +00:00
François Revol
aed95f3c6c Also checksum the bootsector in the Atari version of haiku_loader.
Remove duplicate of the checksum tool.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38939 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-10 18:28:07 +00:00
François Revol
06abf33747 Add a rule to checksum the bootblock inside haiku_loader for Amiga. It seems Jam correctly runs the action after creating the file, though I'm not sure it's correct with respect to jam -j.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38938 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-10 18:19:02 +00:00
François Revol
398144a1b4 We don't need dos.library here.
Open intuition.library correctly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38935 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-10 16:14:58 +00:00
François Revol
3b939cb0b6 Comment out atari stuff.
Initialize SysBase and IntuitionBase that will be needed by C++ code.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38933 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-10 14:18:05 +00:00
François Revol
918ac85f32 Comment out atari stuff.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38932 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-10 14:15:10 +00:00
François Revol
816efc4097 Seems gas doesn't like the syntax from the syscall macros, prefixing a6 with %% helps. Add some Exec calls and the Intuition call needed for panic().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38931 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-10 14:14:41 +00:00
François Revol
7030ac1279 Library call macros from fd2pragma Include/inline/macros.h. The header has no copyright claims, and there is no point in rewriting this anyway.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38929 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-10 13:29:27 +00:00
François Revol
7364eb8e9b Remove Atari stuff.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38928 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-10 13:15:39 +00:00
François Revol
648d00c49c Those are C++ files now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38927 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-10 13:15:16 +00:00
François Revol
fb6b9ae341 Remove Commodore code and rewrite. Hate wasting time on this...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38926 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-10 13:03:19 +00:00
François Revol
6ed98199f1 Amiga is just an Atari clone :-P
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38925 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-10 12:42:18 +00:00
François Revol
acb1d6c8e0 s/tos/ami/g;s/ATARI/AMIGA/g
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38924 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-10 11:27:52 +00:00
François Revol
2231a4e6a3 Copy some more from Atari.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38923 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-10 11:22:50 +00:00
François Revol
9c720d59e3 Copy Handle stuff from Atari.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38922 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-10 11:20:55 +00:00
François Revol
4ae92968ab Stub out some more of the platform code.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38921 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-10 11:16:46 +00:00
François Revol
1ae25236b2 Some useful Amiga API definitions. We'll just stuff what we need in there from all the SDK headers. More to come.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38920 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-10 11:09:51 +00:00
François Revol
b780f56676 Add some amiga code from stage1.S.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38919 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-10 11:07:14 +00:00
François Revol
92d1f05e9a Cleanup. Some more tries.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38918 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-10 11:05:05 +00:00
François Revol
f3ab95c889 Fix ROM base. On Amiga the first page is a bit special but it should still be mapped at boot time. Will need more checks.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38917 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-10 11:04:25 +00:00
François Revol
12760a5cc9 Copy the Atari memory map for Amiga.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38916 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-10 09:23:09 +00:00
François Revol
7fbfbc1dac Cleanup. Offsets were wrong for dos.library.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38914 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-10 02:00:14 +00:00
François Revol
948720fa91 cpu-specific mmu files are in arch/m68k now. Remove leftover atari prg stuff.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38913 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-10 01:04:36 +00:00
François Revol
ca7ec01422 Use cpu-specific mmu code from arch/m68k.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38911 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-09 23:38:09 +00:00
François Revol
2830084019 More tries at doing something useful in the boot sector... For now it displays a welcome message.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38909 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-09 21:38:50 +00:00
François Revol
646e14e5e9 Clone the atari shell code.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38908 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-09 20:57:39 +00:00
François Revol
408aa82a13 Fix comment.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38906 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-09 20:55:01 +00:00
Philippe Houdoin
64141b1b74 Enable development splash logo for "official" --distro_compatibility.
The official release one stay the well-known one, just renamed to show it's trademarked images.
Fixed #6183.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38891 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-05 10:31:13 +00:00
Andreas Färber
3243de5750 boot_loader_openfirmware: Add iSCSI boot support
If no Haiku remote disk server is found, try an iSCSI discovery session on
the TFTP server, using the IP address from the boot command or OF options.
All available IPv4 targets are considered, Target Portal Groups are ignored.

RFC 4173 suggests a mechanism that avoids a discovery session by using DHCP;
that requires a compatibly configured DHCP server though and we wouldn't have
access to such data currently anyway. iSCSI is currently used as fallback,
and when it doesn't succeed it falls back to the menu as before.

Resolves ticket #5319.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38537 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-09-05 22:56:22 +00:00
Andreas Färber
58b1d4608a boot_loader_openfirmware: Implement real_time_clock_usecs()
Partially revert r38465 and move the code from system_time() into a new
real_time_clock_usecs() function. The system_time() implementation was correct
in relying on of_milliseconds(), as pointed out by Axel. Add the correct
function for the desired functionality.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38481 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-31 18:42:57 +00:00
Andreas Färber
a9e71a07a9 boot_loader_openfirmware: Style cleanup
Fix coding style issues and bump copyright (although there's not much anyway).

No functional changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38480 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-31 17:39:06 +00:00
Andreas Färber
56f837e265 boot_loader_openfirmware: Fix system_time()
system_time() was based on of_milliseconds(), which returns the number of
milliseconds since power-on. This would produce very similar or identical
results for subsequent boots due to limited clock resolution; therefore it
was unsuited as PRNG seed, e.g., for TCP ports.

Try to inquire the RTC device node with get-time to return an improved time
value, if possible.

Closes ticket #6061.

Changes from proposed patch:
* Obtain the RTC handle once and reuse it for each inquiry.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38465 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-30 21:13:10 +00:00
Andreas Färber
884432c2da boot_loader_openfirmware: Fix style issues
Adjust initializers.
Respect 80-column limit and adjust copyright notice.
Reorder some header groups. Enforce line spacing.

No functional changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38343 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-24 20:03:26 +00:00
Andreas Färber
f5aaa387bd boot_loader_openfirmware: Fetch EDID
Read the EDID from OF and pass it on to the kernel.

Last part of ticket #6105.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38307 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-22 02:38:55 +00:00
Andreas Färber
36ee6a8731 boot_loader_openfirmware: Add frame buffer support
Use the OF "screen" device alias to query frame buffer properties. Postpone
the opening of the device as far as possible as it erases the screen output.
Initialize the kernel arguments and hook into generic code to display the
splash screen.

Like on x86, the frame buffer is enabled by default. To disable it, either
press ESC during early boot or, for debugging, make sure in start.cpp that
platform_boot_options() has the BOOT_OPTION_DEBUG_OUTPUT flag set.

Resolves ticket #6105.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38306 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-22 01:56:40 +00:00
Andreas Färber
3c1cb3fd02 boot_loader_openfirmware: Enable boot options by keyboard
Introduce a non-blocking function for checking keyboard input, and refactor
existing code to share the escape key translations. The comment that key-up and
key-down result in a zero char is confirmed to apply.

If the space bar is pressed, enter the boot menu. If the escape key is pressed,
disable the frame buffer and keep showing the usual debug output. Apparently
the key press must come after console/keyboard initialization but before the
"Welcome to the Haiku bootloader!" line.

Closes ticket #6140.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38304 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-22 00:06:32 +00:00
Andreas Färber
4142bceb25 boot_loader_openfirmware: Refactor Jamfile
The frame buffer will need more generic sources than just the text menu.
Adapted from bios_ia32 platform.

Part of ticket #6105.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38301 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-21 19:52:46 +00:00
Andreas Färber
4d95518e60 boot_loader_openfirmware: Avoid console interference with frame buffer
Debug output calls OpenFirmware methods writing text into the frame buffer.
Depending on the screen mode this leads to garbled display or parts of the
screen overwritten, so mute the output during frame buffer use for now.

A better solution would be to redirect the output elsewhere (e.g., #6168),
so that ConsoleHandle::WriteAt() is not called for the problematic handle
in the first place. That does not work inside the kernel yet.

Part of ticket #6105.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38300 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-21 18:42:25 +00:00
Andreas Färber
0dfe97ade1 boot_loader_openfirmware: Preparations for frame buffer
Initialize the frame buffer as not enabled. Add checks for this condition
and for the debug boot option to the video functions.

Code is adapted from bios_ia32 platform. Part of ticket #6105.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38299 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-21 17:42:28 +00:00
Andreas Färber
3f0a83281f boot_loader_openfirmware: Coding style fixes
Rearrange copyright notice, reorder #includes.

No functional changes yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38298 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-21 17:01:18 +00:00
Andreas Färber
31bce16715 ppc: Keep memory mappings set up by OpenFirmware
Revert r36886 and fix compilation of insert_virtual_range_to_keep().
The use of void* vs. addr_t matches the surrounding boot loader code
but should probably be revised in favour of addr_t.

create_area() in the kernel wrongly assumed a RAM-backed address range,
which was destined to fail since ranges below the kernel address space
were ignored anyway. Use vm_map_physical_memory() instead.

This fixes a hang once the frame buffer and other resources used by OF
get unmapped. Closes ticket #5193 again.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38291 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-20 22:22:38 +00:00
François Revol
746efef3d3 Add more debug output to help finding why 16bit modes are broken. Oddly 15bit seems to work.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38003 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-10 11:16:20 +00:00
Matt Madia
2dc707e529 Utilize HAIKU_DISTRO_COMPATIBILITY for the boot splash. Currently only
'--distro-compatibility official' will result in the HAIKU logo being
displayed. When 'default' or 'compatible', only the icons will display. Due to
issues with generate_boot_screen, the "development" logo is not utilized.

Relates to #6183 and #6255


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37740 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-07-25 20:22:10 +00:00
François Revol
9020ce87e6 Patch by "notzed" (ticket #5368) (modified): Add bootloader support for BeagleBoard.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37319 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-30 17:24:11 +00:00
François Revol
46f639a821 Add an (unused yet) cylinder count var on sfdisk. We don't have any mean of calculating it from the desired image size in jam anyway.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37318 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-30 15:52:54 +00:00
François Revol
0a8bfb8353 Cleanup. Use SDRAM_BASE from board_config.h.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37315 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-30 15:44:07 +00:00
Andreas Färber
4fa4224a1d OpenFirmware: Assure machine type is initialized
On QEMU's emulation of a PowerPC Old World Mac (g3beige), determine_machine()
returns without setting the machine type to unknown, since the root device
does not provide a device_type property.

Move the variable assignment up a few lines to remedy this.

Closes ticket #6123.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37280 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-27 17:56:05 +00:00
Andreas Färber
04ec719a70 Convert line endings to LF
In r33670 the svn:eol-style property was dropped, which took care of
locally converting the line endings to the user's native style.
While most files use Unix-style LF line endings, some files have
Windows-style CR LF line endings.

Assure that the following r37262 directories use Unix-style line endings:

src/system/boot/
src/system/boot/arch/
src/system/boot/arch/ppc/
src/system/boot/loader/
src/system/boot/loader/net/
src/system/boot/platform/
src/system/boot/platform/openfirmware/
src/system/boot/platform/openfirmware/arch/
src/system/boot/platform/openfirmware/arch/ppc/
src/system/kernel/
src/system/kernel/arch/
src/system/kernel/arch/ppc/
src/system/kernel/platform/
src/system/kernel/platform/openfirmware/
headers/private/kernel/
headers/private/kernel/arch/
headers/private/kernel/arch/ppc/
headers/private/kernel/platform/
headers/private/kernel/platform/openfirmware/
headers/private/kernel/boot/
headers/private/kernel/boot/net/
headers/private/kernel/boot/platform/
headers/private/kernel/boot/platform/openfirmware/

This avoids patches containing irrelevant lines unintentionally converted.

No functional changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37265 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-26 17:38:03 +00:00
Axel Dörfler
36c80d7002 * Fixed warnings.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37251 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-25 08:35:02 +00:00
Axel Dörfler
9209acd256 * Renamed the remaining C files to C++ files.
* Fixed some copyrights.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37250 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-25 08:30:17 +00:00
Axel Dörfler
b6add3ffb6 * Renamed remaining .c files to .cpp, and made the necessary changes to let
them compile still.
* Some cleanup in ARM's start2.cpp.
* m68k stuff is still missing, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37249 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-25 08:03:58 +00:00
Ingo Weinhold
84e9db7fb7 x86 mmu_init(): Sum up the physical memory we ignore for whatever reason --
stored in kernel_args::ignored_physical_memory.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37116 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-12 15:57:21 +00:00
Travis Geiselbrecht
9623c48284 SMP: remove the tracking of apic id -> cpu id. Don't pass between bootloader and kernel.
Kernel doesn't use it, and it could be regenerated in the kernel if it did need it.

This also unlocks the apic range the bios can use. Previously the apic ids would have
to fit within 0..MAX_CPUS or it'd reject the cpu. Some boxes (mine in particular)
seem to sparsely populate the apic id so that the range is pretty large.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37108 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-12 01:01:54 +00:00
Ingo Weinhold
977ffe5233 No longer ignore the physical memory beyond 4 GB, if we have a 64 bit
phys_addr_t. IOW, if PAE is enabled, that memory should be put to use now.
Apparently we report an incorrect amount of total memory (also counting
memory gaps), which also suggests that we need another method to manage the
vm_page structures (currently a huge array with indexes proportional to
physical page addresses, i.e. wasting memory for the gaps).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37107 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-12 00:36:44 +00:00
Axel Dörfler
db3aa13aaf * Patch by Andreas Färber that removes unneeded includes, mostly ones that don't
even have to be available in the generic case. See bug #6105, patch 1 & 2.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37007 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-04 08:03:02 +00:00
Ingo Weinhold
1d578e15fe Fixed more address types related issues. Mostly printf() or comparison
warnings, but also some oversights from earlier changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37000 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-06-02 20:46:49 +00:00
Ingo Weinhold
e5846dfa61 Added shared sort_[physical_]address_ranges() to avoid code duplication. Also
fixes the m68k build.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36951 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-05-27 17:08:47 +00:00
Ingo Weinhold
d73ddac5bf * Introduced phys_addr_range type, an equivalent to addr_range for physical
address ranges, and a set of support functions working with it.
* Changed the type of the kernel_args physical address range arrays to
  phys_addr_range and adjusted the code working with those.
* Removed a bunch of duplicated address range code in the PPC's mmu.cpp.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36947 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-05-27 11:50:40 +00:00
Ingo Weinhold
3a5655a502 * Reverted r34863.
* Don't keep any memory mappings from the OF for the time being. We can't
  keep mappings < 2 GB, since those aren't in the kernel address space and
  we don't handle memory mapped registers or the like correctly either.
Ticket #5193.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36886 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-05-21 15:33:28 +00:00
Travis Geiselbrecht
53d7472637 BOOT SMP: allow systems with a large number of cpus and/or sparse apic ids to actually boot
The old mechanism to route an apic id back to a cpu id is faulty, built with the assumption that
the bios will 'pack' the apic ids from 0-num_cpus. In systems that dont do that, the code would
randomly corrupt the bootloader. Fatal in this case.

This quick fix simply rejects all apic ids >= MAX_CPUS (8). No way it would have worked before
if you had a box that started with >= 8 or anything, so it shouldn't regress any existing system.

Better solution is to allow any apic id to exist (0-255).

On this particular box the ids (from lunix dmesg):
SRAT: PXM 0 -> APIC 0 -> Node 0
SRAT: PXM 1 -> APIC 16 -> Node 1
SRAT: PXM 0 -> APIC 2 -> Node 0
SRAT: PXM 0 -> APIC 4 -> Node 0
SRAT: PXM 0 -> APIC 6 -> Node 0
SRAT: PXM 1 -> APIC 18 -> Node 1
SRAT: PXM 1 -> APIC 20 -> Node 1
SRAT: PXM 1 -> APIC 22 -> Node 1
SRAT: PXM 0 -> APIC 1 -> Node 0
SRAT: PXM 0 -> APIC 3 -> Node 0
SRAT: PXM 0 -> APIC 5 -> Node 0
SRAT: PXM 0 -> APIC 7 -> Node 0
SRAT: PXM 1 -> APIC 17 -> Node 1
SRAT: PXM 1 -> APIC 19 -> Node 1
SRAT: PXM 1 -> APIC 21 -> Node 1
SRAT: PXM 1 -> APIC 23 -> Node 1



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36836 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-05-17 03:47:24 +00:00
Ingo Weinhold
8588e7fc6f Fixed broken mmu_allocate_physical():
* Now it checks whether the given physical range exists at all.
* Not only check whether any range of the given size is free, but also check
  whether the given range is free.
* B_BAD_VALUE is not a particularly good return value for a function supposed
  to return a bool

Fixes #5911. With only 64 MB RAM the usual debug syslog buffer location may
be outside the actually existing physical memory.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36632 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-05-05 21:15:33 +00:00