summaryrefslogtreecommitdiffstats
path: root/skiboot.lds.S
Commit message (Collapse)AuthorAgeFilesLines
* build/lds: place remaining sections according to defaultsNicholas Piggin2019-04-171-4/+11
| | | | | | | | Place remaining orphan linker sections according to default script as described by `ld --verbose`. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* build/lds: place debug sections according to defaultsNicholas Piggin2019-04-171-0/+45
| | | | | | | | Place debug orphan linker sections according to default script as described by `ld --verbose`. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* build: -fno-asynchronous-unwind-tablesNicholas Piggin2019-04-171-0/+1
| | | | | | | | skiboot does not use unwind tables, this option saves about 100kB, mostly from .text. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* gcov: link in ctors* as newer GCC doesn't group them allStewart Smith2018-11-081-1/+1
| | | | | | | | | | | It seems that newer toolchains get us multiple ctors sections to link in rather than just one. If we discard them (as we were doing), then we don't have a working gcov build (and we get the "doesn't look sane" warning on boot). So, include ctors* and all is well. Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* skiboot.lds.S: move read-write data after the end of symbol mapNicholas Piggin2018-09-201-17/+24
| | | | | | | | This also tidies up linker script symbol declarations and adds _rodata_mem symbol for the next change to use. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* Keep constructors with prioritiesStewart Smith2018-03-081-1/+2
| | | | | | Fixes GCOV builds with gcc7, which uses this. Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* bump skiboot size from 3 to 4MB, reduce heap by 1MBStewart Smith2017-08-241-2/+2
| | | | | | | | | | | | GCOV enabled builds with modern GCC are getting bigger. At some point we're going to have to go do something sensible, but even on our larger systems we're not *that* close to running out of heap that this would be a problem. HEAP is now 12MB rather than 13MB. Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* Dead code and data eliminationNicholas Piggin2017-02-061-3/+2
| | | | | | | | | | | | | | | | | | | | | Add an experimental option to do basic dead code and data elimintation with -ffunction-sections/-fdata-sections/--gc-sections. This saves about 80kB of text/data. Also remove the use of of -ffunction-sections by default. This predates git history, but I don't think there is a good reason to use it without --gc-sections. The GCC manual says: Only use these options when there are significant benefits from doing so. When you specify these options, the assembler and linker create larger object and executable files and are also slower. You cannot use gprof on all systems if you specify this option, and you may have problems with debugging if you specify both this option and -g. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* hdata: Initialize SPIRA-H structureVasant Hegde2016-04-011-0/+5
| | | | | | | | | | | | Previous patch reduced reserved space in spira structure. Now its safe to reduce the memory for spira section from 2K to 1K. Create separate memory section with 1K size for SPIRA-H. Also initialize SPIRA-H. FSP makes use of this information to pass various boot time data (like SPIRA-S, etc) to host. Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* Align TOC to 256 bytesBenjamin Herrenschmidt2015-05-151-1/+1
| | | | | | | | | | | | | Anton sent a similar patch to Linus, here is his comment: << Recent toolchains force the TOC to be 256 byte aligned. We need to enforce this alignment in our linker script, otherwise pointers to our TOC variables (...) could be incorrect. >> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* Run gcc constructorsStewart Smith2015-05-151-0/+8
| | | | | | | | | | | | | | As part of setting up GCOV data structures correctly, GCC/GCOV generates a bunch of constructor routines that the C runtime is expected to run really early on. skiboot was not running GCC generated constructors. Luckily, it's really easy to do so. This patch will run GCC constructors very early on during boot (if there are any) Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* Make skiboot able to be 2MB rather than 1MBStewart Smith2015-05-151-2/+2
| | | | | | | | | | | | | | | When built with gcov, skiboot is >1MB (closer to 1.5MB) and there were a few assumptions about skiboot being <1MB. The biggest one was that when code got larger, we'd have the sbss section start in the middle of code, so that when we were going to relocate ourselves, we'd only get the first 1MB of skiboot relocated, which excluded the _DYNAMIC section, meaning that relocate() would not find the right sections. We also needed to not start writing over random parts of skiboot. Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* Add symbolic backtraces and expose skiboot map to LinuxBenjamin Herrenschmidt2014-11-181-1/+11
| | | | | | | We use a double link technique, doing a first pass with a .o containing a dummy symbol map, then re-linking with a new .o Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
* Add functions to backtrace into a non-text bufferBenjamin Herrenschmidt2014-11-181-1/+3
| | | | | | Separate text translation from capture of the backtrace Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
* ATTN: Set up attention area to handle attentionAruna Balakrishnaiah2014-08-011-0/+5
| | | | | | | | | | | | | | | | | | | | | | At present CPU control area ntuple in SPIRA structure is NULL. ATTN component in Service Processor side checks for this field and if its empty, it logs hardcoded SRC (0xBB821410) and generates SYSDUMP. So we have 1 SRC for all failure (assert call) from OPAL side. This makes difficult to debug the issue. Service processor provides attention area interface (FIPS PHyp Attentions spec), so that we can pass SRC and user data (error message) to service processor. This will helps us identify different failures in OPAL. This patch enables attention area and provides interface (update_sp_attn_area()) to add src and user data (error message) through assert macro. Attention SRC format: 1st byte - Opal src type 2-4 bytes - Holds the address of the assert function call Signed-off-by: Aruna Balakrishnaiah <aruna@linux.vnet.ibm.com> Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
* Initial commit of Open Source releaseBenjamin Herrenschmidt2014-07-021-0/+143
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
OpenPOWER on IntegriCloud