aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2010-12-30Introduce ofmem_posix_memalign() function for arbitrary alignment.Mark Cave-Ayland2-7/+26
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
2010-12-30Fix alignment of memory allocated by OFMEM's ofmem_malloc().Mark Cave-Ayland1-8/+13
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
2010-12-30Remove inline declaration from existing va2pa() and pa2va() functions as ↵Mark Cave-Ayland3-6/+6
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
2010-12-28Move pa2va() and va2pa() inline functions from the io.h header files to ↵Mark Cave-Ayland5-40/+46
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
2010-12-24ppc64: Set up TOC pointer for of_client_interface()Andreas Färber1-0/+4
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
2010-12-24ppc: Adjust call_elf() and CIF prologues and epilogues for ppc64Andreas Färber2-84/+99
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
2010-12-19ppc: Prepare more assembler macros for ppc64 compatibilityAndreas Färber1-0/+8
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
2010-12-17ppc: unexpected_excep() needs an absolute branchAndreas Färber1-1/+3
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
2010-12-12forth: Fix MMU available pretty-printing for sparc64Andreas Färber1-1/+1
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
2010-12-12forth: Pretty-print MMU translations propertyAndreas Färber1-0/+69
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
2010-12-12ppc: Use unsigned long for effective addressesAndreas Färber1-6/+6
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
2010-12-12ofmem: Use phys_addr_t for physical addressesMark Cave-Ayland5-66/+120
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
2010-12-05ppc: Simplify get_ram_bottom()Andreas Färber1-2/+2
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
2010-12-05forth: Fix ([IF]) to handle nested [IFDEF] as wellAndreas Färber1-0/+1
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
2010-11-28Rename conflicting hfsplus filesBlue Swirl6-8/+8
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
2010-11-28ppc: Create some more function descriptors for ppc64Andreas Färber1-4/+4
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
2010-11-28ppc: Create function descriptors for global functions on ppc64Andreas Färber2-4/+21
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
2010-11-27ppc: Increase #address-cells for ppc64Andreas Färber2-3/+14
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
2010-11-27ppc: Introduce define for OpenBIOS code sizeAndreas Färber1-3/+4
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
2010-11-27ppc: Adapt CPU definition and identificationAndreas Färber1-6/+4
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
2010-11-27ppc: Coding style cleanup, part 2Andreas Färber1-3/+3
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
2010-11-27ppc: Coding style cleanupAndreas Färber2-525/+529
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
2010-11-27ppc: Use mfpvr() for device tree initAndreas Färber1-5/+1
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
2010-11-25ppc: Set up TOC base for ppc64Andreas Färber2-0/+17
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
2010-11-25ppc: Dereference function descriptors on ppc64Andreas Färber2-5/+18
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
2010-11-22ppc: SDR1 fixesAndreas Färber2-22/+41
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
2010-11-21ppc: Set up SLBs for ppc64Andreas Färber2-4/+37
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
2010-11-21ppc: Convert I/O macros to inline functionsAndreas Färber1-31/+65
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
2010-11-21ppc: Adjust isa_io_base for ppc64Andreas Färber6-8/+6
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
2010-11-21ppc: Use mtmsrd on ppc64Alexander Graf3-4/+24
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
2010-11-20ppc: Turn 32-bit ppc64 into a config option, to be deprecatedAndreas Färber3-1/+94
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
2010-11-17Introduce automatic build dependenciesBlue Swirl2-5/+12
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
2010-11-17kernel: avoid including C files from anotherBlue Swirl4-958/+949
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
2010-11-15Pretty-print MMU available propertyAndreas Färber1-0/+10
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
2010-11-15Pretty-print /memory available propertyAndreas Färber1-0/+7
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
2010-11-15Pretty-print reg propertyAndreas Färber2-0/+39
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
2010-11-15Allow name-based property displayAndreas Färber1-1/+10
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
2010-11-13ppc: Introduce RFI macroAndreas Färber2-1/+7
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
2010-11-13Introduce forth_init() for trampoline initializationAndreas Färber10-16/+30
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
2010-11-13bootstrap: avoid a warning from OpenBSD linkerBlue Swirl1-2/+1
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
2010-11-10cuda: Use FMT_plxAndreas Färber1-1/+1
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
2010-11-09Convert cell2pointer() and pointer2cell() macros to inline functionsAndreas Färber2-4/+12
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
2010-11-09Add support to -linux-gcc style cross compilersBlue Swirl1-1/+1
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
2010-11-08Introduce FMT_plx for phys_addr_tAndreas Färber6-0/+25
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
2010-11-07ppc: Fix indentationAndreas Färber1-1/+1
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
2010-11-07ppc: Fix /memory reg propertyAndreas Färber1-8/+5
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
2010-11-06Optimize .properties array display by 0.rSegher Boessenkool1-1/+6
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
2010-11-02ppc: Avoid vector overlap on ppc64Andreas Färber1-8/+18
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
2010-11-02ppc: Introduce LOAD_REG_IMMEDIATE() macro for ppc64Andreas Färber2-22/+24
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
2010-11-02ppc64: Don't disable SF bitAndreas Färber1-0/+3
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