#
425ac1b6 |
|
20-Jun-2023 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
refactor: Swap %Ld for %lld in all format usages * %Ld is an undocumented alias for %lld in glibc. * muslc doesn't implement it for this reason. * While we will likely never drop %Ld support, lets clean house and set a better example. Change-Id: Id46dad3104abae483e80cc5c05d1464d3ecd8030 Reviewed-on: https://review.haiku-os.org/c/haiku/+/6636 Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk> Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com> Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
|
#
48064fbc |
|
25-Feb-2020 |
Alexander von Gluck IV <kallisti5@unixzen.com> |
system/boot: Unify spin design, add missing symbols to asm/ld Change-Id: I1dd98a2243d498ec1c827f7a60385237d12a0d39 Reviewed-on: https://review.haiku-os.org/c/haiku/+/2283 Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com> Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
|
#
7b4d924f |
|
04-Dec-2019 |
Andrej Antunovikj <tunas@cryptolab.net> |
cpu: Extract shared x86 code from efi & bios_ia32 This issue was initially detected by PVS Studio (issue number V547) and fixed as part of Google Code-in 2019. The initial problem was the calculate_cpu_conversion_factor function which had been copied in the BIOS and EFI versions of the boot code. Further investigation led to more duplicated or very similar functions being identified. Introduce an arch_cpu.h for the x86 boot platform to group these things in a single place, and adjust the BIOS and EFI code to call into that. Note that the BIOS and EFI code is still a little platform specific, ideally there should be a boot_arch_cpu_init() function for each architecture as already done for openfirmware and u-boot. Also remove some irrelevant comments from copypasted files for other architectures, as that was filling my git grep with useless noise. Change-Id: I16d815f0bf015cec0b4e03cc14f3cc447c7164c5 Reviewed-on: https://review.haiku-os.org/c/haiku/+/1985 Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
|
#
9e66f031 |
|
18-Dec-2015 |
François Revol <revol@free.fr> |
U-Boot: PPC: Try to enable unaligned transfers This however doesn't help with the 64bit float operations that gcc emits when assigning the physical framebuffer address in kernel_args, which is a packed struct...
|
#
e57c83d9 |
|
18-Dec-2015 |
François Revol <revol@free.fr> |
U-Boot: PPC: make the shift calculation more obvious It's the 11th bit, counting from the MSB, on the top 16 bits.
|
#
94b802f5 |
|
20-Apr-2013 |
François Revol <revol@free.fr> |
U-Boot: PPC: Tell the kernel we come in peace from U-Boot
|
#
af63ede7 |
|
08-Mar-2013 |
François Revol <revol@free.fr> |
U-Boot: PPC: Implement Book-E MMU support in bootloader Unlike Classic PPC, Book-E CPUs do not have hardware page-table walk, rather only a limited set of software-managed TLBs. Also, translation is never disabled even when page-faulting. The Linux Book-E port pins part of the RAM in one or more TLBs, and allocates kernel memory from it for the kernel itself and exception vectors, as well as page tables. cf. http://kernel.org/doc/ols/2003/ols2003-pages-340-350.pdf We take a similar approach, but instead of using a tree-like page directory we reserve a large part of this mapped range for an hashed page table similar to the Classic one, to later allow factoring code out. The kernel and boot modules will also be allocated there, and the rest should be used as SLAB areas. Note doing so will not allow implementing proper permissions for the areas allocated there since they are all handled by a single TLB. Also note Book-E does not standardize the MMU implementation itself. For now only AMCC440 type MMU is supported. This will need to be cleaned up later on.
|
#
85e1bac2 |
|
17-Feb-2013 |
François Revol <revol@free.fr> |
U-Boot: Fix warning
|
#
0255210b |
|
17-Feb-2013 |
François Revol <revol@free.fr> |
U-Boot: PPC: properly enumerate CPUs * Code comes almost verbatim from OF platform. * Only bus frequency needs to be read from the /plb node instead.
|
#
acc4e245 |
|
17-Feb-2013 |
François Revol <revol@free.fr> |
U-Boot: Typo
|
#
f4b31e85 |
|
17-Feb-2013 |
François Revol <revol@free.fr> |
U-Boot: PPC: Spice up CPU detection, trying both PVR and FDT * Read the PVR register to determine the CPU type. * Also check the FDT /cpu/cpu@0 node for model string (we use the FDT calls directly since the OF wrapper isn't initialized yet). * Use this to enable the FPU APU hack for 440 (instead of #ifdef).
|
#
cce9d8cf |
|
01-Jun-2012 |
François Revol <revol@free.fr> |
U-Boot PPC: Enable ppc440 FPU correctly * On ppc440, the FPU is implemented as an Auxiliary Processing Unit, we must therefore enable sending commands to it, in addition to setting the MSR bit.
|
#
037f252f |
|
24-May-2012 |
François Revol <revol@free.fr> |
U-Boot: split cpu.cpp into arch-specific and common parts * the common part should try to use the U-Boot API when found. * the arch part can make use of cpu features (like timer register) * the ppc code enables the FPU in the MSR, since it's used by vsnprintf(), which at least saves one FP register in its prologue.
|
#
94b802f5880405d4b08c44220ab45efcb6bf6721 |
|
20-Apr-2013 |
François Revol <revol@free.fr> |
U-Boot: PPC: Tell the kernel we come in peace from U-Boot
|
#
af63ede7a1fd24b4713800cdc7aabb7ae3e09a55 |
|
08-Mar-2013 |
François Revol <revol@free.fr> |
U-Boot: PPC: Implement Book-E MMU support in bootloader Unlike Classic PPC, Book-E CPUs do not have hardware page-table walk, rather only a limited set of software-managed TLBs. Also, translation is never disabled even when page-faulting. The Linux Book-E port pins part of the RAM in one or more TLBs, and allocates kernel memory from it for the kernel itself and exception vectors, as well as page tables. cf. http://kernel.org/doc/ols/2003/ols2003-pages-340-350.pdf We take a similar approach, but instead of using a tree-like page directory we reserve a large part of this mapped range for an hashed page table similar to the Classic one, to later allow factoring code out. The kernel and boot modules will also be allocated there, and the rest should be used as SLAB areas. Note doing so will not allow implementing proper permissions for the areas allocated there since they are all handled by a single TLB. Also note Book-E does not standardize the MMU implementation itself. For now only AMCC440 type MMU is supported. This will need to be cleaned up later on.
|
#
85e1bac215444aa98118c71efa7ee953ece662fa |
|
17-Feb-2013 |
François Revol <revol@free.fr> |
U-Boot: Fix warning
|
#
0255210b042a1beeb3dbc72ae118c325031328b1 |
|
17-Feb-2013 |
François Revol <revol@free.fr> |
U-Boot: PPC: properly enumerate CPUs * Code comes almost verbatim from OF platform. * Only bus frequency needs to be read from the /plb node instead.
|
#
acc4e245de592de1897b78b16f1f4dffbda07249 |
|
17-Feb-2013 |
François Revol <revol@free.fr> |
U-Boot: Typo
|
#
f4b31e85b54a0665a5db0cffafb8a18a965fe38c |
|
17-Feb-2013 |
François Revol <revol@free.fr> |
U-Boot: PPC: Spice up CPU detection, trying both PVR and FDT * Read the PVR register to determine the CPU type. * Also check the FDT /cpu/cpu@0 node for model string (we use the FDT calls directly since the OF wrapper isn't initialized yet). * Use this to enable the FPU APU hack for 440 (instead of #ifdef).
|
#
cce9d8cf89c7ce155c9e794579a89478661d180a |
|
01-Jun-2012 |
François Revol <revol@free.fr> |
U-Boot PPC: Enable ppc440 FPU correctly * On ppc440, the FPU is implemented as an Auxiliary Processing Unit, we must therefore enable sending commands to it, in addition to setting the MSR bit.
|
#
037f252fd0dd3e85ebf9eaceee58b1a5ce73ca0d |
|
24-May-2012 |
François Revol <revol@free.fr> |
U-Boot: split cpu.cpp into arch-specific and common parts * the common part should try to use the U-Boot API when found. * the arch part can make use of cpu features (like timer register) * the ppc code enables the FPU in the MSR, since it's used by vsnprintf(), which at least saves one FP register in its prologue.
|