#
185e6809 |
| 30-Dec-2020 |
PulkoMandy <pulkomandy@pulkomandy.tk> |
sparc: Build fixes
- Wrong printf format in bootloader elf panic call - Missing functions for sparc
Change-Id: I4715a8d6d3d864d379b8386dc3958e0a2c1962e7 Reviewed-on: https://review.haiku-os.org/c/h
sparc: Build fixes
- Wrong printf format in bootloader elf panic call - Missing functions for sparc
Change-Id: I4715a8d6d3d864d379b8386dc3958e0a2c1962e7 Reviewed-on: https://review.haiku-os.org/c/haiku/+/3571 Reviewed-by: waddlesplash <waddlesplash@gmail.com>
show more ...
|
#
6f6d78e8 |
| 25-Jun-2012 |
Alex Smith <alex@alex-smith.me.uk> |
Cleaned up ELF64 address handling.
* platform_allocate_elf_region() is removed, it is implemented in platform- independent code now (ELF*Class::AllocateRegion). For ELF64 it is now assumed that
Cleaned up ELF64 address handling.
* platform_allocate_elf_region() is removed, it is implemented in platform- independent code now (ELF*Class::AllocateRegion). For ELF64 it is now assumed that 64-bit addresses are mapped in the loader's 32-bit address space as (address - KERNEL_BASE_64BIT + KERNEL_BASE). * mapped_delta field from preloaded_*_image removed, now handled compile-time using the ELF*Class::Map method. * Also link the kernel with -z max-page-size=0x1000, removes the need for 2MB alignment on the data segment (not going to map the kernel with large pages for the time being).
show more ...
|
#
88461898 |
| 24-Jun-2012 |
Alex Smith <alex@alex-smith.me.uk> |
Handle 64-bit load addresses for ELF64 images in the bootloader.
The ELF loader now uses a new platform function, platform_allocate_elf_region, which returns 2 addresses: the real load address and a
Handle 64-bit load addresses for ELF64 images in the bootloader.
The ELF loader now uses a new platform function, platform_allocate_elf_region, which returns 2 addresses: the real load address and an address where the region is mapped in the loader's address space. All of the ELF loading code has been changed to access the load region through the mapped address rather than the addresses contained in the ELF image. The ELF64 version of platform_allocate_elf_region on x86 uses the existing MMU code, which maps everything at 0x80000000, but returns the correct 64-bit address. The long mode switch code will just set up the 64-bit address space with everything remapped at the correct address.
show more ...
|
#
884432c2 |
| 24-Aug-2010 |
Andreas Färber <andreas.faerber@web.de> |
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-s
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
show more ...
|
#
957a1b17 |
| 30-Dec-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Introduced new build system variables {HAIKU,HOST,TARGET}_KERNEL_PIC_{CC,LINK}FLAGS which define the compiler/linker flags specifying the kind of position independence the kernel shall have.
* Introduced new build system variables {HAIKU,HOST,TARGET}_KERNEL_PIC_{CC,LINK}FLAGS which define the compiler/linker flags specifying the kind of position independence the kernel shall have. For x86 we had and still have -fno-pic, but the PPC kernel has -fPIE (position independent executable) now, as we need to relocate it. * The boot loader relocates the kernel now. Mostly copied the relocation code from the kernel ELF loader. Almost completely rewrote the PPC specific relocation code, though. It's more correct and more complete now (some things are still missing though). * Added boot platform awareness to the kernel. Moved the generic Open Firmware code (openfirmware.c/h) from the boot loader to the kernel. * The kernel PPC serial debug output is sent to the console for the time being. * The PPC boot loader counts the CPUs now and allocates the kernel stacks (made OF device iteration a bit more flexible on the way -- the search can be restricted to subtree). Furthermore we really enter the kernel... (Yay! :-) ... and crash in the first dprintf() (in the atomic_set() called by acquire_spinlock()). kprintf() works, though.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15756 a95241bf-73f2-0310-859d-f6bbb57e9c96
show more ...
|
#
c83d9dad |
| 29-Dec-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* platform_allocate_region() has a new boolean parameter "exactAddress" specifying whether only the exact supplied address is acceptable. If false, the address is considered a hint only. It will
* platform_allocate_region() has a new boolean parameter "exactAddress" specifying whether only the exact supplied address is acceptable. If false, the address is considered a hint only. It will be picked, if available, otherwise a greater address is tried to be acquired, and as last resort any address. This feature is only implemented for PPC. It is needed since the preferred kernel text base address 0x80000000 might not be available (and actually isn't on my Mac mini). * Fixed a bug in the PPC memory management code: is_{virtual,physical}_allocated() were checking whether the given range was completely contained by an existing range instead of checking for intersection. As a consequence we could (and did) allocate a range intersecting with already allocated ranges. The kernel segment thus overwrote OF memory for instance. * The ELF loader makes sure that it got both text and data segment of the image to be loaded.
The PPC boot loader successfully loads kernel and modules now. Next comes the hard part, I'm afraid.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15708 a95241bf-73f2-0310-859d-f6bbb57e9c96
show more ...
|
#
68d3fc6f |
| 28-Dec-2005 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Don't allow allocation of zero sized area.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15700 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7a3fa7d3 |
| 19-Dec-2005 |
Axel Dörfler <axeld@pinc-software.de> |
* Followed Ingo's suggestion and removed the now superfluous "length" correction in ConsoleHandle::WriteAt(). * Updated license.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15581 a95241bf
* Followed Ingo's suggestion and removed the now superfluous "length" correction in ConsoleHandle::WriteAt(). * Updated license.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15581 a95241bf-73f2-0310-859d-f6bbb57e9c96
show more ...
|
#
5af32e75 |
| 13-Apr-2005 |
Axel Dörfler <axeld@pinc-software.de> |
Renamed src/kernel to src/system.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12359 a95241bf-73f2-0310-859d-f6bbb57e9c96
|