Commit Graph

146 Commits

Author SHA1 Message Date
Axel Dörfler
3bba0ebe0a NewOS revisited, applied patch 1916: now evaluates the extended BIOS
RAM size call.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6984 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-03-15 00:58:49 +00:00
Axel Dörfler
4a2e872cca Applied NewOS change 1914: moved APIC setup into the kernel due to a
problem with the APIC clock speed test.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6980 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-03-14 22:54:00 +00:00
Axel Dörfler
81e08ae466 kernel_cpp.cpp needs direct access to headers/private/kernel/util in order
to not include our current stdio.h.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6598 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-15 18:08:15 +00:00
Axel Dörfler
558d32f86a Thanks to Ingo's change in KernelMergeObject, the arch-specific part of
the OpenFirmware platform is now linked in directly.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5246 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-11-03 13:56:13 +00:00
Axel Dörfler
c3efd542cd Now accepts only "block" devices as boot device (we do not support
network booting (for R1), and if we will, it will be done using another
mechanism anyway).
If it runs under Apple's OF implementation, it now adds ":0" as parameter
to the opened block device to bypass the disk-label package - that part
is obviously implementation specific (and took me some time to figure
out, even if it's just two characters ;-).
Added a commented block of code that could be used in combination with
MOL and it's (in the meantime fixed) broken device access via OF.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5206 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-28 21:29:59 +00:00
Axel Dörfler
d3b44eeac9 Added definition of a of_arguments structure which is used in all
OpenFirmware client service calls (and callbacks).
Has nice inline argument getter methods If compiled under C++.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5205 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-28 21:26:08 +00:00
Axel Dörfler
c9593d2253 Now uses the OF root node properties "model" and "device_type" to get
and idea about the underlying hardware (needed at other places).
Calls arch_set_callback() right after MMU takeover.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5204 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-28 21:24:28 +00:00
Axel Dörfler
6bf336d531 Implemented the OpenFirmware MMU callback hook mechanism.
Added empty callbacks for "alloc-real-mem" and "unmap".
Implemented "map" and "translate" - the latter is not yet tested, though.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5203 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-28 21:22:21 +00:00
Axel Dörfler
41fc24055a Added more debug output.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5183 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-28 02:23:30 +00:00
Axel Dörfler
553e5a0f6f BFS/AmigaFFS directory Open()/Close() methods now correctly call the
respective methods of their parent (one possible crash less, as the
nodes could get deleted accidently).
The AmigaFFS is now silent if it just don't know the signature.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5182 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-28 02:13:12 +00:00
Axel Dörfler
c5b5378a79 The recently added load_kernel() tried to load the kernel again (there already
was a load_kernel() call above). Added a comment that might prevent me from
doing that again...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5113 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-21 05:39:36 +00:00
Axel Dörfler
a721098497 Now prints an error message if the kernel couldn't be loaded.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5111 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-21 05:35:57 +00:00
Axel Dörfler
4f364c85af Enabled and added some more debug output.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5110 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-21 05:35:32 +00:00
Axel Dörfler
a47544320d Fixed File::ReadAt() (it didn't return the actual length read, just B_OK).
Visually simplified Volume::ToBlock().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5109 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-21 05:27:24 +00:00
Axel Dörfler
caac43e662 Fixed missing initialization of fBlock in one of the constructors of CachedBlock.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5107 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-21 04:25:20 +00:00
Axel Dörfler
bc0096be96 Compiles again.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5105 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-21 04:16:06 +00:00
Axel Dörfler
d69f033efd Fixed a warning.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5104 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-21 04:08:04 +00:00
Axel Dörfler
1aa6a4ca46 Added link handling to the RootFileSystem (for the "boot" link).
Renamed AddNode() to AddVolume() - it's no longer virtual but private to
the root file system.
Added new method AddLink() to add a link to a volume.
The link handling is separate from the other volumes (to be able to iterate
only over real volumes). Added a name field to the inner entry class which
is used for links.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5103 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-21 04:05:34 +00:00
Axel Dörfler
9bf99ee93b Now registers the boot device and loads the kernel.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5102 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-21 04:01:09 +00:00
Axel Dörfler
18562ebdd8 gRoot is now defined in RootFileSystem.h.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5101 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-21 04:00:12 +00:00
Axel Dörfler
77cfe0902a gRoot is now defined in RootFileSystem.h, AddNode() is now called AddVolume().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5100 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-21 03:59:39 +00:00
Axel Dörfler
6822f1482e gRoot is now a RootFileSystem, not just a Directory anymore.
register_boot_file_system() adds the "boot" link to the root fs.
mount_all_file_systems() now prints out the root directory of the
mounted volumes just for fun (to be removed later).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5099 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-21 03:58:40 +00:00
Axel Dörfler
7fc11e15bb Some work-in-progress on the MMU functions:
- it will now successfully take over the MMU, but it doesn't tell OF
  yet about it.
- map_page() will now fill in the page table relative to sSegments[], and
  no longer to the segment registers directly (as they might be different
  at that time, depending on the OF).
- map_page() will panic if it couldn't find a free slot in the page table
  (that's enough for the boot loader)
- finds the exception handlers mapping and sets the kernel args
- rewrote insert_memory_range(); it now actually works in all cases (no
  matter if the ranges overlap or not, and it will also join ranges if
  possible). The start address will now be round down to page aligment.
- some other small fixes
- the page table is now cleared before use (as of_claim() obviously doesn't
  return cleared memory).
- replaced some uint32 with addr_t where it made sense (there are probably
  even more places).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5093 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-21 03:19:01 +00:00
Axel Dörfler
4790079584 Renamed arch_mmu_alloc_at() to arch_mmu_allocate(), removed arch_mmu_alloc().
Added new arch_mmu_free() function (not yet implemented).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5057 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-16 18:44:18 +00:00
Axel Dörfler
73ebb119f3 Forgot to check the endian of the ELF header.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5053 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-16 18:08:04 +00:00
Axel Dörfler
f44f6a045e Removed test MMU allocation.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5052 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-16 18:07:21 +00:00
Axel Dörfler
2ea8f7d444 Added mmu.cpp to the build.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5051 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-16 18:06:25 +00:00
Axel Dörfler
b6384820ac Implemented the platform MMU functions.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5050 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-16 18:05:37 +00:00
Axel Dörfler
384be72972 Implemented load_kernel(), load_modules() now traverses the
/boot/beos/system/add-ons/boot directory for boot modules (it
currently only prints out all the modules found).
Not yet tested!


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5049 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-16 18:02:36 +00:00
Axel Dörfler
21a3fff594 Added the ELF loader to the build.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5048 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-16 18:01:24 +00:00
Axel Dörfler
8fbf1c6169 Since there currently are no directory traversing functions, I've
added a temporary get_node_from() function which returns the Node
assigned to the file descriptor.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5047 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-16 18:00:28 +00:00
Axel Dörfler
af0e9e9d12 Implemented the boot loader's ELF loader (untested).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5046 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-16 17:58:55 +00:00
Axel Dörfler
962c1957d8 Minor fixes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5020 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-14 00:34:08 +00:00
Axel Dörfler
2664bace2e Changed to use the DoublyLinked::List implementation.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5019 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-14 00:33:11 +00:00
Axel Dörfler
603d81b967 Some more debug output.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5018 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-14 00:31:12 +00:00
Axel Dörfler
53bc5ce937 Switched to use the DoublyLinked::List implemenatition.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5017 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-14 00:29:47 +00:00
Axel Dörfler
2d6751a062 Switched to the new DoublyLinkedList implementation.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5008 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-13 03:38:05 +00:00
Axel Dörfler
f981a55840 Fixed GCC 3 warnings.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4994 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-12 00:47:28 +00:00
Axel Dörfler
748d45313d Two more #include <util/kernel_cpp.h> for consistency's sake.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4992 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-12 00:45:38 +00:00
Axel Dörfler
df46e9e59f OpenFirmware now has its own arch subtree. Added most of the code needed
to take over the PPC MMU (and let OF still operate) - there is basically
everything to implement a proper ELF loader now.
Unlike BIOS/IA-32, OpenFirmware is available on a lot of architectures.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4991 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-11 19:06:28 +00:00
Axel Dörfler
10fc9d123f Updated renamed kernel_args fields.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4975 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-07 23:50:15 +00:00
Axel Dörfler
9e88f0cfd2 Now declares the gKernelArgs variable to pass to the kernel.
Calls heap_release() with stage2_args.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4967 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-07 22:49:49 +00:00
Axel Dörfler
a4fab93eee heap_release() now gets the stage2_args as well, to pass them to
platform_release_heap().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4966 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-07 22:48:46 +00:00
Axel Dörfler
d1ae059dec Now sets the heap_size field of stage2_args to a default value.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4965 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-07 22:47:00 +00:00
Axel Dörfler
02ec644ad8 Removed declaration and initialization of gChosen; it's not done in openfirmware.c.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4964 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-07 22:45:38 +00:00
Axel Dörfler
67e8a1390b Added an "align" parameter to of_claim().
Added prototype for of_call_method().
gChosen is now declared and initialized in this file, therefore, of_init()
can now fail (in case gChosen cannot be set).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4963 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-07 22:44:34 +00:00
Axel Dörfler
bc09bddb53 The heap size is now part of the stage2_args.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4962 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-07 22:41:44 +00:00
Axel Dörfler
8fb9411174 Added support for the Amiga FFS to the standard bootloader build.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4926 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-02 01:17:37 +00:00
Axel Dörfler
291a681b35 Forgot to include <util/kernel_cpp.h>.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4925 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-02 01:16:57 +00:00
Axel Dörfler
1e038a1ca5 Added a ToDo comment so that I won't forget to check if there is only one
bootable device if the platform didn't provide a boot device.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4908 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-01 02:29:34 +00:00