Age | Commit message (Collapse) | Author | Files | Lines |
|
Rework ofmem_malloc() so that it takes a parameter specifying the alignment for the allocation and then change the API
to match that of posix_memalign(). Then create ofmem_malloc() as a simple wrapper function onto ofmem_posix_memalign()
using a default alignment of CONFIG_OFMEM_MALLOC_ALIGN.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@siriusit.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@992 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
A casual glance at the source code suggests that pointers returned by ofmem_malloc() are aligned, but in fact they are not
because sizeof(alloc_desc_t) is added to the final pointer return value. Create some additional padding after the previous value
of ofmem->next_malloc so we can store the alloc_desc_t underneath the final return pointer in memory, thus ensuring that the
final pointer is aligned correctly.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@siriusit.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@991 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
suggested by Blue.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@siriusit.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@990 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
lib.c for both SPARC32 and SPARC64.
Also introduce the correct phys_addr_t type for physical addresses.
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@siriusit.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@989 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Avoids 'unpredictable' memory accesses there.
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@988 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Respect differing register widths and stack frame ABI differences.
Fix of_client_callback stack alignment for both ppc and ppc64.
v3:
* Introduced DATA_LONG() macro, suggested by Alex.
Cc: Alexander Graf <agraf@suse.de>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@987 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Adopt macro names from Linux.
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Acked-by: Alexander Graf <agraf@suse.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@986 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
When called from address 0x700, trap_error must not use a relative branch
to unexpected_excep() since that is beyond __vectors_end.
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@985 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
On sparc64 a virtual address or size value is contained within one stack cell
but that makes two property cells. The columns for the /virtual-memory
"available" property thus looked wrong.
Do read the number of cells from #address-cells but make sure the size is
at least one to not break ppc.
Cc: Tarl Neustaedter <tarl-b2@tarl.net>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@984 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Display one MMU translation per row for .properties command.
Define a variable number of columns to handle platform specifics.
v3:
* Only ppc includes the physical address in the translations property.
Simplify loop by reverting to decreasing column offsets.
v2:
* Define columns for spacing. Add helpers to facilitate this.
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@983 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Adjust the special handling of ROM-to-RAM for ppc64.
In particular this allows ISI and DSI exceptions to set up TLB entries for
high addresses on ppc64.
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@982 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Based on Mark's previous work, let ofmem handle addresses wider than one cell.
This is based on the assumption that sizeof(phys_addr_t) >= sizeof(ucell).
Affected are in particular sparc32 (36 bits) and ppc64 (64 bits).
As a consequence, some range_t related code shared with virtual/effective
addresses needed to be migrated, too. Since both address types are unsigned
this should be okay.
v4:
* Coding style fixes and comments, as suggested by Mark.
v3:
* Rebased: Prefer FMT_plx for trace output.
* Convert some more places to phys_addr_t to avoid breakage on ppc64.
* Add helpers ofmem_arch_{get_physaddr_cellsize,encode_physaddr}(),
requested by Mark.
v2:
* Use FMT_physaddr_t in ofmem trace code. (by Mark)
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@siriusit.co.uk>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@siriusit.co.uk>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@981 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Avoid a cast by adjusting the define.
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@980 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Depending on the condition, either the [IFDEF] FOO or the [ELSE]
would get compiled as an [IF], eating words until [ELSE] or [THEN]
respectively. While doing so, [IFDEF] does not get compiled to [IF],
so we need to handle nested [IFDEF] to account for its [ELSE] or [THEN].
This fixes [IFDEF] not disabling the full section of code.
Thanks to Segher for pointing me in the right direction.
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Signed-off-by: Segher Boessenkool <segher@kernel.crashing.org>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@979 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Files in fs/hfs and fs/hfsplus have same names, this causes problems
during linkage.
Use prefix 'hfsp_' for the conflicting files.
Acked-by: Andreas Färber <andreas.faerber@web.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@978 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Fix an error in generic ppc code as well. Reported by Blue.
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Acked-by: Blue Swirl <blauwirbel@gmail.com>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@977 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
This should also fix linker errors observed by Blue.
v2:
* __divide_error is called from C code, too. Spotted by Blue.
Cc: Blue Swirl <blauwirbel@gmail.com>
Cc: Alexander Graf <agraf@suse.de>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@976 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
To store a full 64-bit address we need two cells. This setting matches
Apple's OpenFirmware on my G5 and IBM's firmware on the JS20.
The PCI driver zero-pads its physical addresses, so is okay as long as devices
remain in lower 32 bits. ofmem needs changes for memory ranges and translations.
Note that an enlarged #size-cells is not strictly needed
and constitutes a difference between Apple and IBM firmware (1 vs. 2).
v2:
* Introduce local helper push_physaddr(). A more general, global definition
was not easily reachable due to inability to determine in preprocessor
whether phys_addr_t is wider than ucell, leading to compilation errors
due to a shift the size of the variable.
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@975 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Use it for all three occurrences.
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@974 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
PVR is 32 bits. Use the new inline function.
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@973 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Fix some more indentations.
Still no functional changes.
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@972 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Adopt QEMU coding style for indentation, spacing and parenthesis.
Avoid empty statement in for loops. Move comment out of function body.
No functional changes.
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@971 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
This also accounts for the fact that the PVR is 32 bits on ppc64.
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@970 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
r2 points to TOC base, __toc_start + 0x8000.
This value is stored as part of the function descriptor.
Include some related ELF sections in the linker script.
Cc: Alexander Graf <agraf@suse.de>
Cc: Segher Boessenkool <segher@kernel.crashing.org>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@969 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
In the ppc64 ELF ABI, similar to ia64, a function's symbol does not directly
precede its machine instructions. For ppc64 it consists of a triple of
entry point, TOC base and environment pointer.
Introduce macros to facilitate handling this.
Names suggested by Blue.
Deliberately don't touch the client interface yet, as there's more work to do.
Cc: Alexander Graf <agraf@suse.de>
Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@968 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Clean up use of SDR1 fields.
IBM's "The Programming Environments for 32-Bit Microprocessors":
The HTABMASK field in SDR1 contains a mask value that determines
how many bits from the hash are used in the page table index. This mask
must be of the form 0b00...011...1; that is, a string of 0 bits followed by
a string of 1bits. The 1 bits determine how many additional bits (at least 10)
from the hash are used in the index; HTABORG must have this same number of
low-order bits equal to 0.
IBM's "The Programming Environments Manual for 64-bit Microprocessors" 3.0:
The HTABSIZE field in SDR1 contains an integer value that determines
how many bits from the hash are used in the page table index. This number
must not exceed 28. HTABSIZE is used to generate a mask of the form
0b00...011...1; that is, a string of 0 bits followed by a string of 1-bits.
The 1-bits determine how many additional bits (beyond the minimum of 11)
from the hash are used in the index. The HTABORG must have this same number
of low-order bits equal to 0.
Adjust alignment mask and hash size for ppc64.
Note that the page table does not yet scale with the memory size, and
the secondary hash is not yet used.
v5:
* Move HTABORG mask to header.
* Keep is_ppc64() for now, suggested by Alex.
Merge CONFIG_PPC_64BITSUPPORT handling here so that it behaves as intended,
not recognizing a ppc64 CPU in pure 32-bit mode.
* Stub out hash_page_32() for ppc64 to avoid having to care about it for ppc64.
hash_page_64() is less critical for pure ppc build since the code needs to be
32-bit compatible anyway.
v4:
* Don't redefine hash_page_{32,64} but add TODO comments for renaming.
* Keep and simplify hash_page().
v3:
* Fix shifts. Thanks to Segher and Alex.
* Fix HTABSIZE for 32-bit ppc64: ((2 << 15) - 1) >> 16 happened to be 0,
so that it worked as expected. Avoid underflow, spotted by Alex.
Make this fix available for legacy 64-bit support as well.
* Drop get_hash_size(). It was only used in hash_page_32() and caused
unnecessary conversions between HTABMASK and size.
* Introduce {mfsdr1,mtsdr1} as suggested by Alex.
Note that this changes the volatility for hash_page_64().
* Conditionalize 64-bit support, drop 32-bit support for ppc64.
* Adjust hash size for ppc64.
v2:
* Use HTABSIZE for ppc64, fix HTABMASK usage for ppc.
Error spotted by Segher.
Cc: Segher Boessenkool <segher@kernel.crashing.org>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@967 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Set up SLBs with slbmte instead of mtsrin, suggested by Alex.
v3:
* Continue to use mtmsrin on ppc for simplicity.
* Add comment on slbia, suggested by Segher.
* Add inline functions {slbia,slbmte}, requested by Alex.
* Add inline function mfpvr before Alex asks for it. :)
v2:
* Don't initialize 64 SLBs, then invalidate them, as in IBM's application note
for the 970. Use slbia instead, recommended by Alex.
* Conditionalize when to use SLB or SR.
Cc: Segher Boessenkool <segher@kernel.crashing.org>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@966 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Suggested by Blue.
Clean up function signatures while at it.
v4:
* Convert all I/O functions to use POSIX types for value.
Suggested by Alex.
v3:
* Split off isa_io_base changes.
v2:
* Make port uint16_t, suggested by Alex.
* Adapt isa_io_base for ppc64.
Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@965 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
To avoid cast warnings, use a 64-bit ISA I/O base on ppc64.
v3:
* Adjust unix target, pointed out by Blue.
Unify ppc and sparc64, using unsigned long instead of uintptr_t.
It is initialized from pci_arch_t, which uses unsigned long.
* Update other ppc targets, pointed out by Blue.
v2:
Initial.
Cc: Blue Swirl <blauwirbel@gmail.com>
Cc: Alexander Graf <agraf@suse.de>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@964 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
On ppc64 the mtmsr instruction only sets the low 32 bits of the MSR.
mtmsrd must be used to set the high bits such as Sixty-Four Bit Mode as well.
v2:
* Introduce MTMSRD macro as seen on Linux, suggested by Alex.
* Introduce inline functions {mfmsr,mtmsr} as suggested by Alex.
Signed-off-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@963 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Having legacy 64-bit support as an option allows users to
disable it and test the 32-bit only version prior to official
removal of legacy 64-bit support.
Fork single-bitness macros EXCEPTION_{PREAMBLE,EPILOGUE}:
Use assembler macros for things that are constant to avoid
; and \, and use preprocessor macros to handle differences.
Adopt QEMU coding style for new code.
Functional changes for ppc64:
* Don't clear MSR in preamble
in order to stay in Sixty-Four Bit Mode.
* Just save the minimum number of registers
since 64-bit code will save the full registers.
* Reserve 48 bytes of stack frame space for ppc64,
according to 64-bit PowerPC ELF ABI supplement 1.9.
* Use rfid via RFI macro.
v2:
* Remove inaccurate comment on unused stack location.
* Add explanatory comments for #else and #endif.
Cc: Alexander Graf <agraf@suse.de>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@962 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Use GCC to generate dependency files.
Tested-by: Andreas Färber <andreas.faerber@web.de>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@961 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Merge kernel/internal.c and kernel/primitives.c into
kernel/forth.c. This helps with the build dependencies.
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@960 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
v4:
* Pass 1 as #acells and #scells, following IEEE 1275 sect. 3.6.5.
On ppc the cpu nodes would've had #size-cells as 0.
v3:
* Evaluate /chosen mmu property rather than device_type "cpu".
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@959 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
v4:
* Pass #address-cells and #size-cells as arguments.
v3:
* Simplify condition.
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@958 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Executing .properties for, e.g., the /memory node would print the
"reg" property as a series of bytes.
Visualize the "reg" format as a table, with address and size columns.
v6:
* Drop lower limit for my-#scells, since #size-cells is unsigned.
Pointed out by Segher.
* Drop comment outdated by v5.
v5:
* Drop the upper limit for my-#scells, suggested by Segher.
* Fix indentation.
v4:
* Fix my-#scells to allow 0 return value.
* Pass #address-cells and #size-cells as arguments.
* Add some more comments.
v3:
* Optimization, based on code suggested by Segher.
v2:
* Use my-#acells for address size.
* Introduce my-#scells for size size.
Cc: Segher Boessenkool <segher@kernel.crashing.org>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@957 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
v3:
* Preserve (.property) as heuristic function.
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@956 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Macro name as seen in Linux. Use of macro suggested by Alex.
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@955 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Use init_trampoline() for trampoline variable initialization.
Add calls to a new forth_init() function for each architecture
to invoke it. Idea courtesy of Blue.
This fixes ppc64 compilation by avoiding a casted self-reference.
v2:
* Share init_trampoline() with kernel/bootstrap.c, suggested by Mark.
* Adopt QEMU coding style for new functions.
Cc: Mark Cave-Ayland <mark.cave-ayland@siriusit.co.uk>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Acked-by: Blue Swirl <blauwirbel@gmail.com>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@954 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Avoid this link time warning by using strdup():
host/kernel/bootstrap.o(.text+0x854): In function `fopen_include':
../kernel/bootstrap.c:479: warning: strcpy() is almost always misused, please use strlcpy()
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@953 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Use new FMT_plx format for ppc64-compatible trace output.
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@952 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Inline functions suggested by Blue.
Use const void* for pointer2cell() due to const char* arguments.
Fix a misuse of pointer2cell().
Drop comment on reusing different host bitness code path;
any special handling for different target bitnesses should go
into these new functions.
v2:
* Use QEMU-style indentation for new inline functions.
Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@951 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Check for -linux-gcc cross compilers in addition to -linux-gnu-gcc.
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@950 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Define a zero-padded format string to be used for phys_addr_t arguments.
Introduce PRIx{32,64} macros as needed.
v2:
* Also define PRIx32 for sparc32 and sparc64, requested by Blue.
Cc: Mark Cave-Ayland <mark.cave-ayland@siriusit.co.uk>
Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@949 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Tab-indent to match surrounding code.
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@948 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Physical address and size were both using two cells instead of one,
and their order was wrong. This would happen to work for RAM < 4 GB,
since the clear high address bits would happen to match the zero-based
memory location. It would indicate a second bank of size zero though.
Switch the value order and use encode-phys in preparation for ppc64.
This tidies the output of the Haiku boot loader.
v2:
* Document TODOs for ppc64, requested by Alex.
Cc: Alexander Graf <agraf@suse.de>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@947 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Introduce a 0.r word, suggested by Segher.
Optimize r890 by using this helper.
v4:
* Replace ." " by space word, suggested by Segher.
Signed-off-by: Segher Boessenkool <segher@kernel.crashing.org>
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Acked-by: Segher Boessenkool <segher@kernel.crashing.org>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@946 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Due to the 64-bit immediate load sequence, the ISI and DSI vectors
are two instructions too long for the respective segment exceptions.
Move the code to the start of the relocated vector region and do a
relative branch there.
v2:
* load() -> LOAD_REG_IMMEDIATE()
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Acked-by: Alexander Graf <agraf@suse.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@945 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
When loading the fw_cfg address with just lis, addi sequence,
we get the high address bits as 0xffffffff on ppc64.
Use the full double word immediate load sequence on ppc64.
v2:
* Rename from load() to LOAD_REG_IMMEDIATE() to match Linux.
Suggested by Alex.
* Move to ppc/asmdefs.h for future use elsewhere.
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Acked-by: Alexander Graf <agraf@suse.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@944 f158a5a8-5612-0410-a976-696ce0be7e32
|
|
Don't clear the MSR for the pure ppc64 version since it would disable
Sixty Four bit mode as well.
The MMU is supposed to be disabled by default.
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
Acked-by: Alexander Graf <agraf@suse.de>
git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@943 f158a5a8-5612-0410-a976-696ce0be7e32
|