Age | Commit message (Collapse) | Author | Files | Lines |
|
The ultravisor console buffer is provided at offset 0x01100000 from the
skiboot base.
Signed-off-by: Madhavan Srinivasan <maddy@linux.vnet.ibm.com>
Signed-off-by: Santosh Sivaraj <santosh@fossix.org>
|
|
- Split SPIRAH memory to accommodate architected register ntuple.
Today we have 1K memory for SPIRAH and it uses 288 bytes. Lets split
this into two parts :
SPIRAH (756 bytes)
architected register memory (256 bytes)
- Update SPIRAH architected register ntuple
- Calculate memory required to capture architected registers data
Ideally we should use HDAT provided data (proc_dump_area->thread_size).
But we are not getting this data during boot. Hence lets reserve fixed
memory for architected registers data collection.
- Add architected registers destination memory to reserve-memory DT node.
Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
[oliver: rebased]
Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
|
|
We want to save some information (like crashing CPU PIR, kernel tags,
etc) before triggering MPIPL. Post MPIPL we will use this information
to retrieve dump metadata and create dump.
MDRT table doesn't need 64K. Hence split MDRT table to accommodate
metadata area.
Finally define metadata structure.
Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
[oliver: rebased]
Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
|
|
Hostboot fills MDRT table after moving memory content from source to destination
memory. And OPAL relies on this table to extract the dump. We have to make sure
this table is intact. Hence define memory relative to SKIBOOT_BASE so that our
relocation doesn't overwrite this memory.
Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
[oliver: rebased]
Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
|
|
Each entry in MDST and MDDT takes 16 bytes. With 1K we can have upto 64
entries. This is sufficient to support OPAL MPIPL (memory preserving IPL).
Presently OPAL reserves 2K memory for MDST table. Lets split this into two
region of 1K for MDST and MDDT table.
Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
[oliver: rebased]
Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
|
|
Use Software Package Data Exchange (SPDX) to indicate license for each
file that is unique to skiboot.
At the same time, ensure the (C) who and years are correct.
See https://spdx.org/
Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
[oliver: Added a few missing files]
Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
|
|
It's been a good long while since either OPAL POWER7 user touched a
machine, and even longer since they'd have been okay using an old
version rather than tracking master.
There's also been no testing of OPAL on POWER7 systems for an awfully
long time, so it's pretty safe to assume that it's very much bitrotted.
It also saves a whole 14kb of xz compressed payload space.
Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
Enthusiasticly-Acked-by: Oliver O'Halloran <oohall@gmail.com>
Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
|
|
So we need to change our heap size to make more room for data/bss
without having to change where the console is or have more fun moving
things about.
Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
|
|
This detects OPAL being re-entered by the OS, and switches to an
emergency stack if it was. This protects the firmware's main stack
from re-entrancy and allows the OS to use NMI facilities for crash
/ debug functionality.
Further nested re-entry will destroy the previous emergency stack
and prevent returning, but those should be rare cases.
This stack is sized at 16kB, which doubles the size of CPU stacks,
so as not to introduce a regression in primary stack size. The 16kB
stack originally had a 4kB machine check stack at the top, which was
removed by 80eee1946 ("opal: Remove machine check interrupt patching
in OPAL."). So it is possible the size could be tightened again, but
that would require further analysis.
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
|
|
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
|
|
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>
|
|
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>
|
|
Rearrange memory map slightly, adding in an extra 2MB into skiboot
heap.
We lost 1MB of HEAP when allowing skiboot binary to be 2MB, and we
were starting to get close to not having a lot of room to play
with, especially on larger systems.
With this patch:
- on Tuleta, we now have 4,422,472 free in firmware-heap for runtime.
- on Mambo, we have 13,094,080 free
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
|
|
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>
|
|
Using the platform.load_resource interface, allow an external initramfs
image to be passed to the kernel.
We split the KERNEL_LOAD_BASE/KERNEL_LOAD_SIZE region in half, to allow
space for the initramfs.
Signed-off-by: Jeremy Kerr <jeremy.kerr@au.ibm.com>
Acked-by: Stewart Smith <stewart@linux.vnet.ibm.com>
|
|
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>
|
|
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
|