aboutsummaryrefslogtreecommitdiff
path: root/board-qemu/llfw
AgeCommit message (Collapse)AuthorFilesLines
2020-06-24board-qemu: Fix comment about SLOF start addressGustavo Romero1-1/+1
On QEMU pseries (and alike environments) the PC starts at 0x100, hence SLOF starts at address 0x100, not at 0x0 as the current comment informs. After that fix the comment also matches the comment above it about the __start load position, which is correct. Signed-off-by: Gustavo Romero <gromero@linux.ibm.com> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2020-03-11llfw: Fix debug printf warningsAlexey Kardashevskiy1-1/+1
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2018-07-02Fix bad assembler statements for compiling with gcc 8.1 / as 2.30Thomas Huth1-1/+1
When compiling with a very recent toolchain, I get these warnings: ../../llfw/boot_abort.S: Assembler messages: ../../llfw/boot_abort.S:76: Warning: invalid register expression and: stage2_head.S: Assembler messages: stage2_head.S:57: Warning: invalid register expression The first one is using the wrong opcode, we should use "and" instead of "andi" here. The second one is using a register instead of a constant for load-immediate, which is non-sense, too. Fix it to use the right constant instead. Signed-off-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Laurent Vivier <lvivier@redhat.com> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2015-11-03qemu/js2x/client: Support binutils >= 2.25.1Alexey Kardashevskiy2-3/+2
The recent binutils version introduces explicit definition of a TOC symbol which points to the .toc section and enforces .toc alignment to 256 rather than 8 bytes before. For now the TOC symbol points to same location as it was before - start of .toc + 0x8000; however as this might change, we should not rely on that in the source code. This changes __toc_start (for qemu and js2x boards), _got (for net-snk, takeover, rtas) in linker scripts to use explicitely defined TOC if defined and fall back to the older scheme if not. This changes r2 (the register pointing to TOC) setup code not to add 0x8000 as linker scripts do that now. Here is a bit more information about the change: https://sourceware.org/ml/binutils/2015-10/msg00124.html https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=a27e685fa0a6480bdb07e3be359558524cec89b7 Tested on 1. gcc version 4.8.3 20140911 (Red Hat 4.8.3-7) (GCC) GNU ld version 2.23.2 2. gcc version 5.2.1 20151001 (GCC) GNU ld (GNU Binutils) 2.25.51.20150930 Reported-by: William Grant <wgrant@ubuntu.com> Tested-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
2014-10-29net-snk: llfw startup is using the wrong offset to handlerBenjamin Herrenschmidt1-1/+1
It's loading from handler + 0x160 instead of 0x60. Not a big problem in practice but should be fixed. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2013-12-17Work around missing sc 1 traps on pHypAlexander Graf3-1/+23
When running a pseries guest in PR KVM on top of pHyp, sc 1 instructions are handled directly by pHyp, so we don't get to see them. That means we need to get inventive. Invent a new instruction that behaves like sc 1, but really is a reserved instruction that traps. This instruction can be used by KVM to emulate sc 1 behavior. This patch adds the SLOF support for it. With this, SLOF detects whether it's running on such a broken setup and if so patches itself to execute the fake sc 1 instruction instead of the real one. Furthermore, we also hook into "quiesce" which Linux calls when it boots. This gives us the chance to also patch Linux when it boots up, so it uses the fake sc 1 too. Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Nikunj A Dadhania <nikunj@linux.vnet.ibm.com>
2013-12-16fix print_version() to return where it came fromAlexander Graf2-6/+3
The print_version() is jumping through hoops to get back to where it was called from, though it actually does get called with "bl" already, so it knows. Just return to where we came from after print_version(), making it a function we can call from other places in the code. Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Nikunj A Dadhania <nikunj@linux.vnet.ibm.com>
2012-10-17SLOF: Support PAPR NVRAM RTAS callsqemu-slof-20121018Nikunj A. Dadhania1-1/+1
BenH still need to ACK this though. From: Nikunj A. Dadhania <nikunj@linux.vnet.ibm.com> * Determines size of the flash using device tree. * Provides nvram access functions for RTAS_NVRAM * Allocates temporary buffer of nvram in SLOF code and use that in C. (sbrk not available) * NVRAM_LENGTH is used at various places, make sure it is well guarded and also use dynamically determined size once an RTAS-NVRAM is found. * Use NVRAM_LENGTH as a variable in case of RTAS_NVRAM, not very elegant though Signed-off-by: Nikunj A. Dadhania <nikunj@linux.vnet.ibm.com> -- Changelog from v1: * #define cleanups suggested by Thomas/Benh * Fix makefile which missed passing $FLAG for building llfw * renamed vio-nvram.fs as rtas-nvram.fs
2012-04-25Fixed typoThomas Huth1-1/+1
2011-12-28Enabled -Wmissing-prototypes and -Wstrict-prototypes CFLAGS and cleaned upThomas Huth1-17/+7
These two compiler flags for additional warnings help to improve the quality of the source code: Removed some unused code and fixed some obvious bugs. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
2011-12-20Silenced some compiler warnings that occur when compiling with prototype checksThomas Huth1-1/+1
The compiler flags -Wmissing-prototypes and -Wstrict-prototypes generally help to write code with proper prototypes. This way one can avoid some ugly bugs because it helps to identify functions that do not have prototypes in headers. It also helps to improve performance since local functions then have to be declared "static", so the compiler can do better optimizations. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
2011-11-24Improved version printingThomas Huth3-20/+49
When building SLOF from a git repository, use the SHA-id as version information instead of the less useful "private build" string. Also make sure that version information is updated during each build, so that we also print more accurate "build date" information now. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
2011-10-12Fix compiler warningsThomas Huth1-7/+3
GCC 4.6 complains about unused-but-set variables - which can safely be removed in our cases. Also fixed a strict-aliasing problem in rtas_flash.c of board-js2x. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
2011-10-12Make net-snk and modules relocatable, too.Thomas Huth1-2/+2
Cleaned up the toc-relative assembly of net-snk, fixed the Makefiles, save the modules as ELF files instead of raw binaries, adjust the net-snk base address and the load-base variable... a lot of changes were required to make the net-snk and the snk modules relocatable, too. But now it should be possible to relocate all files so that the firmware also runs with less than 256 MiB RAM. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
2011-10-12Pass IMA to Paflof and fix the memory regions which have to be CLAIMedThomas Huth1-4/+5
Provide a IMA (initially mapped area) value to Paflof so that the Forth code can properly claim the memory regions which are used by Paflof. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
2011-10-12Reworked libelf to support relocationThomas Huth1-6/+21
Split elf.c into elf32.c and elf64.c for better readability. Added relocation code to libelf for 64-bit ELF images, modified the Paflof Makefile to link the executable with relocation information and load Paflof now to the upper end of the memory. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
2011-03-22Initial qemu/KVM board supportBenjamin Herrenschmidt8-0/+737
Added a new board for SLOF running on KVM/qemu. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>