aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2023-06-06core/malloc: Make free and realloc tolerant of invalid usageNicholas Piggin1-0/+24
Print a message if free or realloc are called on memory outside the skiboot heap. Freeing is skipped to give the best chance of avoiding a crash. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
2023-06-06VAS: use local_free to free local_alloc memoryNicholas Piggin1-2/+2
free() asserts because local_alloc() doesn't allocate from the skiboot heap region. Fix this by using local_free(). Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
2023-06-06mem_region: Add a local_free functionNicholas Piggin2-0/+38
This allows memory to be allocated with local_alloc() to be freed. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
2023-06-06opal-ci: Drop fedora36, add fedora38Reza Arbab4-3/+3
Fedora 36 has reached end-of-life. Remove it and add Fedora 38. Signed-off-by: Reza Arbab <arbab@linux.ibm.com> Reviewed-by: Dan Horák <dan@danny.cz>
2023-03-28opal/hmi: Recover from unusual HMI with no TB error reported.Mahesh Salgaonkar1-4/+36
Timer facility HMIs are reported with TB error reason set in the TFMR register. With help from reason set in TFMR register, OPAL hmi handler carry out appropriate recovery procedure to successfully recover from Timer facility HMIs. However, On p10, in a very rare situation when core is waking up from stop2 or higher stop state, timer facility goes into error state due to Missing step, causing an HMI with no error reason set in TFMR register other than TFMR[41]=0 (tb_valid) and TFMR[28:31]=9 (tbst_encoded). Ideally, "Missing step" error should be reported in TFMR[44]=1. It looks like in this rare case, while generating HMI, HW fails to sync up the TFMR register with the core which is waking up from stop2. Hence, in absence of proper error reason, OPAL fails to recover from this unusual HMI, resulting in system panic/crash. In order to recover from this HMI it needs to reset the core level error "Missing step". Handle this as special case by treating this as TFMR corrupt error (TFMR[60]) which will then force reset core level errors including Missing step. Reported-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Mahesh Salgaonkar <mahesh@linux.ibm.com> Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
2023-02-27hw/phb4: Clear the PEC FIRs when taking the ETU out of resetFrederic Barrat1-13/+17
The documented PEC recovery procedure is to clear the PEC FIR registers when the ETU/PHB is in reset. However, any xscom access targeting a PHB register while it is in reset will raise a new error (PFIR bit 3), so it is possible to get out of reset and still have a FIR register showing errors. It has been observed that the OCC, through its 24x7 service, can do such a xscom access at boot time if we end up in the CRESET path. So the current behavior of logging an error is not desirable. The recommendation from the logic designer is to keep the existing mechanism to clear the FIR registers and add an extra step to clear any new errors immediately after taking the ETU out of reset. That's what this patch is doing. Fixes: https://github.com/open-power/skiboot/issues/273 Signed-off-by: Frederic Barrat <fbarrat@linux.ibm.com> Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
2023-02-27hw/phb4: Use symbols when accessing PEC registersFrederic Barrat2-12/+19
This patch improves readability just a tiny bit by using symbols, most of them already existing, instead of values when accessing the PEC registers. No functional changes. Signed-off-by: Frederic Barrat <fbarrat@linux.ibm.com> Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
2023-02-27ci: Update github actions to run on Node 16Reza Arbab1-1/+1
Github is deprecating Node 12 for actions[1]. Support for Node 16 was added to github-pages-deploy-action in v4.4.1. Instead of specifying v4.2.5 in our workflow, only reference the major release, which will pick up the latest. [1] https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12 Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
2023-01-20opal-ci: Use https URLs for systemsim packagesReza Arbab10-18/+18
The links used to download Mambo have stopped working: Step 5/9 : RUN if [ `arch` = "x86_64" ]; then dnf -y install http://public.dhe.ibm.com/software/server/powerfuncsim/p9/packages/v1.1-0/systemsim-p9-1.1-0.f22.x86_64.rpm; fi ---> Running in 4676caeeb953 Last metadata expiration check: 0:03:46 ago on Thu Jan 19 16:06:19 2023. [MIRROR] systemsim-p9-1.1-0.f22.x86_64.rpm: Curl error (56): Failure when receiving data from the peer for http://public.dhe.ibm.com/software/server/powerfuncsim/p9/packages/v1.1-0/systemsim-p9-1.1-0.f22.x86_64.rpm [Recv failure: Connection reset by peer] [MIRROR] systemsim-p9-1.1-0.f22.x86_64.rpm: Curl error (56): Failure when receiving data from the peer for http://public.dhe.ibm.com/software/server/powerfuncsim/p9/packages/v1.1-0/systemsim-p9-1.1-0.f22.x86_64.rpm [Recv failure: Connection reset by peer] [MIRROR] systemsim-p9-1.1-0.f22.x86_64.rpm: Curl error (56): Failure when receiving data from the peer for http://public.dhe.ibm.com/software/server/powerfuncsim/p9/packages/v1.1-0/systemsim-p9-1.1-0.f22.x86_64.rpm [Recv failure: Connection reset by peer] [MIRROR] systemsim-p9-1.1-0.f22.x86_64.rpm: Curl error (56): Failure when receiving data from the peer for http://public.dhe.ibm.com/software/server/powerfuncsim/p9/packages/v1.1-0/systemsim-p9-1.1-0.f22.x86_64.rpm [Recv failure: Connection reset by peer] [FAILED] systemsim-p9-1.1-0.f22.x86_64.rpm: Curl error (56): Failure when receiving data from the peer for http://public.dhe.ibm.com/software/server/powerfuncsim/p9/packages/v1.1-0/systemsim-p9-1.1-0.f22.x86_64.rpm [Recv failure: Connection reset by peer] Curl error (56): Failure when receiving data from the peer for http://public.dhe.ibm.com/software/server/powerfuncsim/p9/packages/v1.1-0/systemsim-p9-1.1-0.f22.x86_64.rpm [Recv failure: Connection reset by peer] Oddly, this only happens with dnf. Using curl directly to fetch the package works. Since the issue is isolated to http, let's just change these links to https, which is probably a good idea regardless. Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
2023-01-19opal-ci: Update qemu command line to test booting upFrederic Barrat1-2/+1
Starting with qemu 7.2, there's no longer any PCI root port configured when the '-nodefaults' option is used. Since that option is used and we include some PCI devices when we test booting with qemu, qemu 7.2 is throwing an error as it doesn't have a bus to attach the devices to. It's currently breaking the CI on Fedora rawhide, where qemu has been updated to version 7.2. Support for powernv in qemu has improved since the qemu-boot-check test was introduced and there's no good reason to run with '-nodefaults' any more. So this patch removes it. Which allows to also remove a few extra devices from the command line since the defaults are sane. And we can still attach PCI devices. Signed-off-by: Frederic Barrat <fbarrat@linux.ibm.com> Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
2023-01-19ci: Update github actions to run on Node 16Reza Arbab2-2/+2
Github is deprecating Node 12 for actions[1]. Update our workflow from using actions/checkout@v2 to v3, which runs on Node 16. [1] https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12 Signed-off-by: Reza Arbab <arbab@linux.ibm.com> Reviewed-by: Frederic Barrat <fbarrat@linux.ibm.com>
2023-01-03opal-ci: Drop fedora35, add fedora37Reza Arbab4-3/+3
Fedora 35 has reached end-of-life. Remove it and add Fedora 37. Reviewed-by: Dan Horák <dan@danny.cz> Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
2022-09-20external/mambo: add a poor man's ftrace commandNicholas Piggin1-0/+26
Add an ftrace command that steps instructions and prints the symbol whenever it changes. This can be helpful for low level debugging. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
2022-08-23docs/platforms: Add Rainier product nameJoel Stanley1-3/+9
Rainier has GA'd as the S1014/S1022/S1024. Signed-off-by: Joel Stanley <joel@jms.id.au> Reviewed-by: Dan Horák <dan@danny.cz> Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
2022-08-23mambo: print useful error when mysim mmap failsRyan Grimm1-2/+2
My user id didn't have access to disk.img and the code printed the error message: ERROR: pmem: 'mysim mmap' command needs newer mambo mysim mmap has been in Mambo for a while so this patch prints out the error message from catch. Now we get the useful: ERROR: pmem: 'mysim mmap' Error opening file disk.img for mapping Signed-off-by: Ryan Grimm <grimm@linux.ibm.com> Reviewed-by: Dan Horák <dan@danny.cz> Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
2022-08-03mambo: Fix backtrace when trace mixes endian codeRyan Grimm1-0/+7
In the case of LE kernel and BE skiboot, the bt functions triggers an illegal address when the kernel has a stack pointer in skiboot. For example, in copy_and_flush: pc: 0x000000000000C25C +0x000000000000C25C lr: 0x000000000000C240 +0x000000000000C240 stack:0x0000000031C13D20 0x8428023000000000 +0x8428023000000000 Illegal Address 0x001EC13100000007 The bad address is from mem_display_64 and is fixed up by inverting the LE bit: systemsim % mem_display_64 [ expr 0x0000000031C13D20 ] 1 0x103EC13100000000 systemsim % mem_display_64 [ expr 0x0000000031C13D20 ] 0 0x0000000031C13E10 This patch tests the pointer by catching the illegal access and inverting the LE bit. Now the stack trace looks good: pc: 0x000000000000C254 +0x000000000000C254 lr: 0x000000000000C240 +0x000000000000C240 stack:0x0000000031C13D20 0x0000000030022884 .load_and_boot_kernel+0xc6c stack:0x0000000031C13E10 0x0000000030023344 .main_cpu_entry+0x8bc Opal calls also look good too now: pc: 0x0000000030028588 .cpu_idle_delay+0xb8 lr: 0x000000003002856C .cpu_idle_delay+0x9c stack:0x0000000031C13A10 0x0000000030028514 .cpu_idle_delay+0x44 stack:0x0000000031C13AB0 0x000000003002D6C0 .time_wait_nopoll+0x34 stack:0x0000000031C13B20 0x000000003002D77C .time_wait+0xa8 stack:0x0000000031C13BA0 0x000000003002821C .cpu_wait_job+0x3c stack:0x0000000031C13C40 0x0000000030029554 .opal_reinit_cpus+0x3c0 stack:0x0000000031C13D10 0x00000000300038AC opal_entry+0x14c stack:0x000000000071FDA0 0xC0000000000537B0 opal_call+0x40 stack:0x000000000071FE60 0xC00000000005450C opal_reinit_cpus+0x20 stack:0x000000000071FED0 0xC00000000065FDAC opal_configure_cores+0x48 stack:0x000000000071FF00 0xC000000000656554 early_setup+0x134 Signed-off-by: Ryan Grimm <grimm@linux.ibm.com> Reviewed-by: Dan Horák <dan@danny.cz> Acked-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
2022-07-05interrupts: Speed up opal interrupts scanningFrederic Barrat4-5/+38
When looking for which interrupts are serviced by opal, we scan all sources and query every single interrupt to know if it's for linux or opal. An optimization was made so that if the source doesn't have an 'interrupt' op (=the handler) or an 'attributes' op (to do the query), then we can skip the source. That's all good. However, when xive was introduced, the 'irq_source' defining those ops was wrapped in a 'xive_src' source which adds a level of indirection for those 'attributes' and 'interrupt' ops. So the previous optimization no longer works: the 'attributes' and 'interrupt' ops are defined from the wrapper, but if we could look past the indirection, we would realize they are not. That is getting problematic for the rather large generic IPIs source. We have 8 million such interrupts defined per chip on P10 and because the above optimization is no longer kicking in, we are now querying every single one of them to know if it is for opal. Real hardware swallows it without much difficulty, but simulators don't. Running qemu on my laptop, the full scan takes ~12 seconds per chip! This patch adds a callback for an interrupt source to report whether it has opal interrupts. If the source doesn't define it, then we fallback to looking at the 'interrupt' and 'attributes' ops, like before, as it is still useful on P8. We can then define that new callback on the xive sources, allowing to look past the indirection level and skip scanning the source when appropriate. Signed-off-by: Frederic Barrat <fbarrat@linux.ibm.com> Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
2022-06-13xive: Fix NSR value when dumping the state of thread contextFrederic Barrat2-2/+2
There's no reason to skip 2 bits when printing the Notification Source Register (NSR) of any thread context ring. So it's got to be a silly mistake and we should shift by 56 bits and not 58 :-) Signed-off-by: Frederic Barrat <fbarrat@linux.ibm.com> Reviewed-by: Dan Horák <dan@danny.cz> Reviewed-by: Cédric Le Goater <clg@kaod.org> Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
2022-06-13cpu: Fix HID SPR icache flushing and attn change sequenceNicholas Piggin2-2/+26
Changing the HID attn enable bit on POWER9 and POWER10 requires the icache to be flushed *after* ATTN is changed. It is not clear that it may be done at the same time, so move it to after the attn bit change. Flushing the icache with HID requires a 0->1 edge and the bit does not reset back to 0, so first write 1 then 0 ready for the next flush. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
2022-06-13core: detect LPAR-per-core mode and report in dtNicholas Piggin4-0/+44
Some firmware configurations boot in LPAR-per-core mode, which is not compatible with KVM on POWER9 and later machines. Detect which LPAR mode the boot core is in (all others will be set the same way), and if booted in LPAR-per-core mode then print a warning and add a device-tree entry that the OS can test for. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
2022-06-13opal-ci: Drop fedora34, add fedora36Reza Arbab4-4/+5
Fedora 34 has reached end-of-life. Remove it and add Fedora 36. Signed-off-by: Reza Arbab <arbab@linux.ibm.com> Reviewed-by: Frederic Barrat <fbarrat@linux.ibm.com> Reviewed-by: Dan Horák <dan@danny.cz>
2022-06-13libstb: Fix memcpy overread in fakenv_readpublic()Reza Arbab1-2/+2
Caught by `make check` on fedora-rawhide (GCC 12): libstb/secvar/test/../storage/fakenv_ops.c: In function 'fakenv_readpublic': libstb/secvar/test/../storage/fakenv_ops.c:155:17: error: 'memcpy' reading 134 bytes from a region of size 34 [-Werror=stringop-overread] 155 | memcpy(&nv_name->t.name, tpmnv_vars_name, sizeof(TPM2B_NAME)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from libstb/secvar/test/secvar-test-secboot-tpm.c:5: libstb/secvar/test/../storage/secboot_tpm.c:35:15: note: source object 'tpmnv_vars_name' of size 34 35 | const uint8_t tpmnv_vars_name[] = { | ^~~~~~~~~~~~~~~ libstb/secvar/test/../storage/fakenv_ops.c:158:17: error: 'memcpy' reading 134 bytes from a region of size 34 [-Werror=stringop-overread] 158 | memcpy(&nv_name->t.name, tpmnv_control_name, sizeof(TPM2B_NAME)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ libstb/secvar/test/../storage/secboot_tpm.c:41:15: note: source object 'tpmnv_control_name' of size 34 41 | const uint8_t tpmnv_control_name[] = { | ^~~~~~~~~~~~~~~~~~ The source and destination of each memcpy have known sizes, and we are copying the smaller buffer into the larger one, so change the memcpy size to that of the smaller buffer. Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
2022-06-13libstb: Work around deprecated API warnings on OpenSSL 3.0 systemsReza Arbab1-0/+1
Several OpenSSL APIs that libstb uses have been deprecated in OpenSSL 3.0. Commit 9a1f95f87004 ("libstb/create-container: avoid using deprecated APIs when compiling with OpenSSL 3.0") enabled `make` to succeed on an OpenSSL 3.0 system, but `make check` still fails: libstb/print-container.c:405:9: error: 'EC_KEY_new' is deprecated: Since OpenSSL 3.0 [-Werror=deprecated-declarations] libstb/print-container.c:413:9: error: 'EC_KEY_set_group' is deprecated: Since OpenSSL 3.0 [-Werror=deprecated-declarations] libstb/print-container.c:425:9: error: 'EC_POINT_bn2point' is deprecated: Since OpenSSL 3.0 [-Werror=deprecated-declarations] libstb/print-container.c:429:9: error: 'EC_KEY_set_public_key' is deprecated: Since OpenSSL 3.0 [-Werror=deprecated-declarations] libstb/print-container.c:434:9: error: 'ECDSA_do_verify' is deprecated: Since OpenSSL 3.0 [-Werror=deprecated-declarations] libstb/print-container.c:449:9: error: 'EC_KEY_free' is deprecated: Since OpenSSL 3.0 [-Werror=deprecated-declarations] This print-container.c is derived from the one in the sb-signing-utils project. Ideally, OpenSSL 3.0 support should be added there first and then synced back into skiboot. Until that is complete[1], build with -Wno-error=deprecated-declarations so these errors stop blocking our CI. [1] https://github.com/open-power/sb-signing-utils/issues/35 Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
2022-06-13fsp: Fix possible use of null "%s" prlog argumentReza Arbab1-1/+3
Caught by CI in fedora-rawhide (GCC 12): hw/fsp/fsp-codeupdate.c:116:26: error: '%s' directive argument is null [-Werror=format-overflow=] 116 | prlog(PR_NOTICE, "CUPD: IPL SIDE = %s\n", side); To prevent this, explicitly print the value of ipl_side instead. Signed-off-by: Reza Arbab <arbab@linux.ibm.com> Reviewed-by: Dan Horák <dan@danny.cz>
2022-05-23xscom: Parse P10 ec revisionJoel Stanley1-18/+19
Use a look up table to support the p9, p10dd1 and p10dd2 conversions. Running on a Rainier: > [ 268.267370706,6] CPU: P10 generation processor (max 4 threads/core) > [ 268.267372501,7] CPU: Boot CPU PIR is 0x0460 PVR is 0x00801200 > [ 268.284420384,5] CHIP: Chip ID 0000 type: P10 DD2.02 > [ 268.284464084,5] CHIP: Chip ID 0002 type: P10 DD2.02 > [ 268.284500468,5] CHIP: Chip ID 0004 type: P10 DD2.02 > [ 268.284538166,5] CHIP: Chip ID 0006 type: P10 DD2.02 > [ 268.286317879,5] PLAT: Detected Rainier platform Signed-off-by: Joel Stanley <joel@jms.id.au> Reviewed-by: Dan Horák <dan@danny.cz> Reviewed-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
2022-05-23xscom: Move p9 ec level parsing to a functionJoel Stanley1-30/+44
In preparation for adding p10 logic. No functional change. Reviewed-by: Dan Horák <dan@danny.cz> Signed-off-by: Joel Stanley <joel@jms.id.au> Reviewed-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
2022-05-09CI: Clean up and re-enable testing on Fedora rawhideFrederic Barrat3-6/+28
Testing on rawhide somehow vanished when we converted to github actions. This patch cleans up the related CI files and re-enables it. Signed-off-by: Frederic Barrat <fbarrat@linux.ibm.com> Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
2022-05-09CI: Add testing on Ubuntu 22.04 LTSFrederic Barrat3-1/+42
New LTS release from Canonical. So let's split it from ubuntu-rolling, which will keep tracking the latest. Signed-off-by: Frederic Barrat <fbarrat@linux.ibm.com> Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
2022-05-09CI: Update python dependency on Ubuntu rollingFrederic Barrat1-1/+1
Package 'python' no longer exists. Replace it with 'python3' Signed-off-by: Frederic Barrat <fbarrat@linux.ibm.com> Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
2022-04-29flash: Make PNOR partition encoding size 64 bit safe.Aneesh Kumar K.V1-9/+17
Similar to commit: c043065cf923 ("flash: Make size 64 bit safe") update the encoding for PNOR partition which is the partition that is mapping the full disk 64 bit safe. Without this mambo disk larger than 4G fails to mount with the below error: [ 2.075170] EXT4-fs (mtdblock0): bad geometry: block count 7864320 exceeds size of device (524288 blocks) Fixes: 27fcf2fa8350 ("Expose PNOR Flash partitions to host MTD driver via devicetree") Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com> Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
2022-03-17github: Run update before installing packagesJoel Stanley1-5/+4
The Github CI runners sometimes need to update their apt cache, or packages fail to install: E: Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/g/gcc-9-cross/gcc-9-powerpc64le-linux-gnu_9.3.0-17ubuntu1~20.04cross2_amd64.deb 404 Not Found [IP: 40.81.13.82 80] E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing? Error: Process completed with exit code 100. Signed-off-by: Joel Stanley <joel@jms.id.au> Signed-off-by: Cédric Le Goater <clg@kaod.org>
2022-03-16libstb/create-container: avoid using deprecated APIs when compiling with ↵Eric Richter1-1/+9
OpenSSL 3.0 OpenSSL 3.0 has deprecated functions that operate on raw key data, however the closest replacement function are not available in OpenSSL 1.x. This patch attempts to maintain compatibility with both 3.0 and 1.x versions. Avoids using the following deprecated functions when compiling with 3.0: - EC_KEY_get0_group - EC_KEY_get0_public_key - EC_POINT_point2bn - EC_KEY_free Signed-off-by: Eric Richter <erichte@linux.ibm.com> Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
2022-03-15github: Add workflow to build and deploy docsJoel Stanley2-1/+30
This builds the gcov coverage report and the skiboot docs on the Github hosted runner, without using a container. Remove the CROSS= definition from build-docs.sh to allow the makefile detect which cross compiler is installed, instead of hardcoding the non-le variant. This is a simplification from the previous docs build, which used the containers. However the containers have since been re-worked and no longer leave the build artifacts on the host system. The github action used for deploying seems to be the most commonly used: https://github.com/JamesIves/github-pages-deploy-action Signed-off-by: Joel Stanley <joel@jms.id.au> Signed-off-by: Cédric Le Goater <clg@kaod.org>
2022-03-15Makefile: Fix detection of cross compilerJoel Stanley1-4/+4
The Fedora containers don't have 'which' installed. This means the detection of the cross compiler gives false negatives, leaving CROSS undefined. Instead use command -v, which outputs the path of the executable if it exists. Fixes: 9cd556ca1e5f ("Makefile: Search for distro-provided cross-compiler") Signed-off-by: Joel Stanley <joel@jms.id.au> Signed-off-by: Cédric Le Goater <clg@kaod.org>
2022-03-07ci: remove Fedora 33Dan Horák3-32/+1
Fedora 33 has been EOL since the end of 2021, so remove it from the CI setup. Signed-off-by: Dan Horák <dan@danny.cz> Signed-off-by: Reza Arbab <arbab@linux.ibm.com>
2022-03-07doc: Remove docutils version pinJoel Stanley1-2/+1
The current release is 0.18.1, so as long as the systems has greater than 0.15 we should be okay. Obviously when installing from pip the build will be fine. Ubuntu 18.04: 0.14 Ubuntu 20.04: 0.16 Fedora 33: 0.16 Signed-off-by: Joel Stanley <joel@jms.id.au> Reviewed-by: Dan Horák <dan@danny.cz> Signed-off-by: Cédric Le Goater <clg@kaod.org>
2022-03-07ci: Remove Centos 8Joel Stanley3-45/+1
With Centos 8 gone "EOL", the Centos 8 repositories have been moved(!) causing the build to fail: Step 2/14 : RUN yum -y update && yum clean all ---> Running in 49e78cad4cda CentOS Linux 8 - AppStream 424 B/s | 38 B 00:00 Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist Remove the build from CI as it no longer works. Signed-off-by: Joel Stanley <joel@jms.id.au> Reviewed-by: Dan Horák <dan@danny.cz> Signed-off-by: Cédric Le Goater <clg@kaod.org>
2022-02-04external/mambo: Handle greater than 16 CPUsMichael Neuling1-1/+4
In OF mambo pads zeros in the CPU node names. So if you have more than 16 CPUs, the first core will be at /cpus/PowerPC@00. Currently we always look for /cpus/PowerPC@0. Fix by zero padding based on the max CPU count. This also converts to hex since that's what's actually needed. This fix should handle any topology. I've tested upto 128 threads (16 cores * 8 threads) but past that the mambo I have starts throwing internal errors. Signed-off-by: Michael Neuling <mikey@neuling.org> Signed-off-by: Cédric Le Goater <clg@kaod.org>
2022-02-04Fix compilation waning "Missing #interrupt-cells"Abhishek Singh Tomar3-0/+27
Resolve : "Missing #interrupt-cells" warning duriing dts(device tree source) compilation hdata/test/p81-811.spira.dts:1434.37-1442.4: Warning (interrupt_provider): /interrupt-controller@3ffff80030000: Missing #interrupt-cells in interrupt provider An #interrupt-cells added to both reference dts for testing and source code to generate dtb from hdata. Signed-off-by: Abhishek Singh Tomar <abhishek@linux.ibm.com> Signed-off-by: Cédric Le Goater <clg@kaod.org>
2022-02-04Fix array-bound compilation warningsAbhishek Singh Tomar8-10/+29
Resolves : the warray bounds warning during compilation /build/libc/include/string.h:34:16: warning: '__builtin_memset' offset [0, 2097151] is out of the bounds [0, 0] [-Warray-bounds] 34 | #define memset __builtin_memset hw/fsp/fsp.c:1855:9: note: in expansion of macro 'memset' 1855 | memset(fsp_tce_table, 0, PSI_TCE_TABLE_SIZE); use volatile pointer to avoid optimization introduced with gcc-11 on constant address assignment to pointer. Signed-off-by: Abhishek Singh Tomar <abhishek@linux.ibm.com> Signed-off-by: Cédric Le Goater <clg@kaod.org>
2022-01-03platforms: put P8 platforms behind CONFIG_P8Stewart Smith2-5/+14
Shaves an additional 4kb off skiboot.lid.xz. Reviewed-by: Dan Horák <dan@danny.cz> Signed-off-by: Stewart Smith <stewart@flamingspork.com> Signed-off-by: Cédric Le Goater <clg@kaod.org>
2022-01-03npu: Move npu.o and npu-hw-procedules.o under CONIFG_P8Stewart Smith2-1/+9
Make the P8 NPU code depend on CONFIG_P8. This requires converting a low level function to a no-op because the HMI NPU handling is not so cleanly layered. This saves an extra 6kb of skiboot.lid.xz. Reviewed-by: Dan Horák <dan@danny.cz> Signed-off-by: Stewart Smith <stewart@flamingspork.com> Signed-off-by: Cédric Le Goater <clg@kaod.org>
2022-01-03hwprobe: convert vas_init(), nx_init()Stewart Smith3-6/+4
Convert VAS and NX to use the hwprobe facility for init. Reviewed-by: Dan Horák <dan@danny.cz> [npiggin: remove imc_init because it moved later in boot (fbcbd4e47c)] Signed-off-by: Stewart Smith <stewart@flamingspork.com> Signed-off-by: Cédric Le Goater <clg@kaod.org>
2022-01-03hw/slw: split P8 specific code into its own fileNicholas Piggin11-493/+573
POWER8 support is large and significantly different than P9/10 code. This change prepares to make P8 support configurable. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> [ clg: Removed commented headers in slw.c ] Signed-off-by: Cédric Le Goater <clg@kaod.org>
2022-01-03hw/slw: Move P8 bits behind CONFIG_P8Nicholas Piggin5-88/+104
This saves about 10kB from skiboot.lid.xz Reviewed-by: Dan Horák <dan@danny.cz> Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Cédric Le Goater <clg@kaod.org>
2022-01-03SBE: create processor-independent timer APIsNicholas Piggin10-36/+64
Rather than have code call processor-specific SBE routines depending on version, hide those details in SBE APIs. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> [ clg: Fixed run-timer test ] Signed-off-by: Cédric Le Goater <clg@kaod.org>
2022-01-03Add CONFIG_P8 with PHB3 behind itStewart Smith4-4/+29
We can use a base CPU of POWER9 if we don't have P8. We can also hide PHB3 code behind this, and shave 12kb off skiboot.lid.xz Reviewed-by: Dan Horák <dan@danny.cz> [npiggin: add cpp define, fail gracefully on P8] Signed-off-by: Stewart Smith <stewart@flamingspork.com> Signed-off-by: Cédric Le Goater <clg@kaod.org>
2022-01-03hwprobe: convert PHB, NPU, PAU subsystems to hwprobeStewart Smith7-25/+14
Reviewed-by: Dan Horák <dan@danny.cz> [npiggin: split out from initial hwprobe pach] Signed-off-by: Stewart Smith <stewart@flamingspork.com> Signed-off-by: Cédric Le Goater <clg@kaod.org>
2022-01-03Introduce hwprobe facility to avoid hard-coding probe functionsStewart Smith5-1/+118
hwprobe is a little system to have different hardware probing modules run in the dependency order they choose rather than hard coding that order in core/init.c. Reviewed-by: Dan Horák <dan@danny.cz> Signed-off-by: Stewart Smith <stewart@flamingspork.com> Signed-off-by: Cédric Le Goater <clg@kaod.org>
2022-01-03fast-reboot: fix TLB cleanup after fast rebootNicholas Piggin1-0/+4
POWER9/10 are missing TLB flushing after fast reboot. Add it back to cpu_fast_reboot_complete(), which is where fast-reboot code thinks it should be. Suggested-by: Cédric Le Goater <clg@fr.ibm.com> Fixes: 53ef0db6e2 ("asm/head.S: set POWER9 radix HID bit at entry") Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Cédric Le Goater <clg@kaod.org>