summaryrefslogtreecommitdiffstats
path: root/src/runtime/rt_start.S
Commit message (Collapse)AuthorAgeFilesLines
* Support thread local storageJaymes Wilks2019-03-111-1/+34
| | | | | | | | | | | | | | | | | | | | | | | Generally adds support to declare variables as thread_local - Add support in HBRT start assembly to skip adjusting TLS relocations - Add support in linker to generate tagged TLS entries - Update linker to process TLS relocations correctly - Update TLS code to ignore top half of module ID - Update module images to hold a "module ID" - Update custome linker to update module ID during binary link - Update TLS code to track TLS sections via module ID Change-Id: I1589550d7787beb08827ca24a728397dedf0373b RTC: 147599 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/71709 Reviewed-by: Ilya Smirnov <ismirno@us.ibm.com> Reviewed-by: Michael Baiocchi <mbaiocch@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* Convert cmpi to cmpwi to fix build for modern binutilsJoel Stanley2017-06-261-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | From Linux 80f23935cadb ("powerpc: Convert cmp to cmpd in idle enter sequence"): PowerPC's "cmp" instruction has four operands. Normally people write "cmpw" or "cmpd" for the second cmp operand 0 or 1. But, frequently people forget, and write "cmp" with just three operands. With older binutils this is silently accepted as if this was "cmpw", while often "cmpd" is wanted. With newer binutils GAS will complain about this for 64-bit code. For 32-bit code it still silently assumes "cmpw" is what is meant. In this instance the code comes directly from ISA v2.07, including the cmp, but cmpd is correct. Backport to stable so that new toolchains can build old kernels. This is change is a noop with the existing toolchain. We change from implicitly generating the cmpwi to explicitly stating in for compatibility with newer toolchains. With gcc 4.9.3, binutils 2.25.2: $ cat asm-test.S .text .global test cmpi 0, 8, 1 $ powerpc64-linux-gcc -c asm-test.S $ objdump -d asm-test.o 0000000000000000 <.text>: 2c 08 00 01 cmpwi r8,1 Old compiler, updated instruction: $ cat asm-test.S .text .global test cmpwi 0, 8, 1 $ powerpc64-linux-gcc -c asm-test.S $ objdump -d asm-test.o 0000000000000000 <.text>: 2c 08 00 01 cmpwi r8,1 And then the new toolchain (gcc 6.3.0, binutils 2.28) with the updated asm: $ cat asm-test.S .text .global test cmpwi 0, 8, 1 $ powerpc64-linux-gnu-gcc -c asm-test.S $ objdump -d asm-test.o 0000000000000000 <.text>: 2c 08 00 01 cmpwi r8,1 Change-Id: If981e20a578ec98ede68a31eee2888c27d5c3d10 Signed-off-by: Joel Stanley <joel@jms.id.au> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/42259 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: STEWART E. SMITH <stewart@linux.vnet.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
* Change copyright prolog for all files to Apache.Patrick Williams2014-05-211-10/+10
| | | | | | | Change-Id: I5664587b4f889099290ef50d50fa9ce5e580e1eb Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/11167 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
* HBRT: Add version to interface struct.Patrick Williams2014-02-061-1/+9
| | | | | | | | | Change-Id: Ifd02f285b97f6177e3ff8ed8d62f47fada28ab8b Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/8144 Tested-by: Jenkins Server Reviewed-by: Douglas R. Gilbert <dgilbert@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
* Initial Hostboot Runtime image support.Patrick Williams2013-09-171-0/+72
RTC: 76675 Change-Id: Ibd21cf5b555e6dcee182a2f1a292b47d4f384ba0 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/6127 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
OpenPOWER on IntegriCloud