#
cbb88108 |
|
05-Oct-2023 |
Yn0ga <ynoga@protonmail.com> |
Various PowerPC fixes * Removed atomic operations placeholders for modern ones * Fix chrpscript & hfsmaps location for CDBootImage (haiku-boot-cd target) * add of_blocks & of_blocksize openfirmware call Change-Id: Iaaddc2c566d108976ac5e5e08caea1fc59523e06 Reviewed-on: https://review.haiku-os.org/c/haiku/+/6987 Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
56f9c760 |
|
24-May-2019 |
PulkoMandy <pulkomandy@pulkomandy.tk> |
sparc: boot mmu support Get enough of the mmu working to be able to allocate memory. Unlike on PowerPC, we get both address and size as 64bit values. So adjust of_region to allow this. Also unlike the PPC port, we do not drive the hardware directly, instead we rely on the openboot primitives to manage the translation table. This allows staying independant of the hardware, which is a good idea at least for the bootloader (we can do actual hardware things in the kernel) Change-Id: Ifa57619d3a09b8f707e1f8640d8b4f71bb717e2a Reviewed-on: https://review.haiku-os.org/c/haiku/+/1482 Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
|
#
95958839 |
|
27-Oct-2019 |
PulkoMandy <pulkomandy@pulkomandy.tk> |
openfirmware: more fixes for 64bit systems. Gets call-method working for sparc, and fix more places where we accidentally truncate 64bit values or sign-extend 32 bit ones. Change-Id: Ic79c55ffa8d2b475858def1639004412f17dd0c1 Reviewed-on: https://review.haiku-os.org/c/haiku/+/1986 Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
|
#
d5cd4a9d |
|
03-Apr-2019 |
PulkoMandy <pulkomandy@pulkomandy.tk> |
openfirmware: adjust for 64bit Sparcv9 runs Openboot in 64 bit mode, which means the cell size is 64bit. Use intptr_t where appropriate to make the open firmware calls work. Beware, some values are still 32bit, this matters for example for of_getprop, if you get 32bits into a 64bit variables it will be in the MSB of it (big endian only weakness...) and confuse things. See for example in console.cpp, where the input and output handles are retrieved as 32bit values. It seems wise to check the expected size when using of_getprop in these cases, instead of just checking for errors. Change-Id: Ie72ebc4afe7c6d7602a47478f0bfb6b8247004b8 Reviewed-on: https://review.haiku-os.org/c/1369 Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
5dfa763c |
|
06-Nov-2012 |
François Revol <revol@free.fr> |
OF: Make sure the of_region templatized struct is packed At least when building for sam460ex, it ended up being 16bytes large...
|
#
40a5a5a0 |
|
26-Jul-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* Rename of_region type template as per Axel * Rename of_support.h/cpp back to support.cpp as per Axel git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42498 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bf0e980d |
|
26-Jul-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* Fix a few style issues as per Axel * Rename a few variables to make more sense * OF_FAILED is a signed int.. fix return of of_address_cells * OF_FAILED is a signed int.. fix return of of_size_cells git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42497 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8320d948 |
|
25-Jul-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
small style fix git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42489 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d24ddec4 |
|
25-Jul-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* Move platform support.cpp into less generic of_support.cpp * Add header file to support of_support.cpp * Add support functions to obtain address and size cell lengths * Small style cleanups * Add support for G5 PowerPC cpus... * Refactor memory region code to be aware of 64-bit OF addresses. As-is the boot loader wouldn't start on G5 systems because OpenFirmware memory base addresses are stored as two 32-bit unsigned int 'cells' vs one 32-bit unsigned int 'cell' on G3/G4. I removed the static struct and replaced it with a template and pass uint32 or uint64 depending on the address cell size. Thanks for the idea DeadYak! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42486 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
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. 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
|
#
5dfa763cb1f94ed1c4b5ec1f039081dbf66974a1 |
|
06-Nov-2012 |
François Revol <revol@free.fr> |
OF: Make sure the of_region templatized struct is packed At least when building for sam460ex, it ended up being 16bytes large...
|
#
40a5a5a0ac071efdbd7cab48c642fc805fc420f4 |
|
26-Jul-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* Rename of_region type template as per Axel * Rename of_support.h/cpp back to support.cpp as per Axel git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42498 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
bf0e980dc49bf12b69fcb31f7183c45f81134bcd |
|
26-Jul-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* Fix a few style issues as per Axel * Rename a few variables to make more sense * OF_FAILED is a signed int.. fix return of of_address_cells * OF_FAILED is a signed int.. fix return of of_size_cells git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42497 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
8320d948d5a5d60d6fc6039a653f04f031a01480 |
|
25-Jul-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
small style fix git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42489 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
d24ddec4e4e5bb2fd466c1b3db7a4fa836fbd4ff |
|
25-Jul-2011 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
* Move platform support.cpp into less generic of_support.cpp * Add header file to support of_support.cpp * Add support functions to obtain address and size cell lengths * Small style cleanups * Add support for G5 PowerPC cpus... * Refactor memory region code to be aware of 64-bit OF addresses. As-is the boot loader wouldn't start on G5 systems because OpenFirmware memory base addresses are stored as two 32-bit unsigned int 'cells' vs one 32-bit unsigned int 'cell' on G3/G4. I removed the static struct and replaced it with a template and pass uint32 or uint64 depending on the address cell size. Thanks for the idea DeadYak! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42486 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
957a1b17eb9d13d6dbf164145e82997e16742549 |
|
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. 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
|