summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* mbox/flash: Remove dead codeBalbir singh2018-05-241-3/+0
| | | | | | | | Caught by scan-build, attn is passed in by value and modified but not read after that. Signed-off-by: Balbir singh <bsingharora@gmail.com> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* check for NULL input string in is_sai_loc_codeBalbir singh2018-05-241-2/+5
| | | | | | | | | Caught by scan-build, also constant-ify the input parameter. Signed-off-by: Balbir singh <bsingharora@gmail.com> Reviewed-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* Fix strtok for previous tokens being NULLBalbir singh2018-05-241-1/+4
| | | | | | | | Caught by scan-build. If the stored token nxtTok is already NULL, don't dereference src Signed-off-by: Balbir singh <bsingharora@gmail.com> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* cpu: Cleanup clearing of doorbells on P9Benjamin Herrenschmidt2018-05-241-4/+5
| | | | | | | | | | | | | | | | | We currently do a rather pointless msgclr prior to setting in_sleep/in_idle (with no ordering guarantee which isn't great). We also do the final msgsync/msgclr after setting in_sleep/in_idle back to false which while probably ok, isn't that great, we should do msgsync first thing when waking up. Finally, do p9_dbell_receive() before skip_sleep. So take out the first msgclr, swap the final p9_dbell_receive() and add a sync() for good measure and match what p8 does. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* cpu: Use STOP1 on POWER9 for idle/sleep inside OPALBenjamin Herrenschmidt2018-05-241-4/+4
| | | | | | | | | | | | The current code requests STOP3, which means it gets STOP2 in practice. STOP2 has proven to occasionally be unreliable depending on FW version and chip revision, it also requires a functional CME, so instead, let's use STOP1. The difference is rather minimum for something that is only used a few seconds during boot. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* fsp/console: Always establish OPAL console API backendBenjamin Herrenschmidt2018-05-241-2/+3
| | | | | | | | | | | | | | | | | Currently we only call set_opal_console() to establish the backend used by the OPAL console API if we find at least one FSP serial port in HDAT. On systems where there is none (IPMI only), we fail to set it, causing the console code to try to use the dummy console causing an assertion failure during boot due to clashing on the device-tree node names. So always set it if an FSP is present Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Reviewed-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* cpu: Do an isync after setting LPCRBenjamin Herrenschmidt2018-05-243-0/+6
| | | | | | | | This is required by the architecture and the implementations, I've observed failures to wake up on big cores without this. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* cpu: Remove duplicate setting of LPCRBenjamin Herrenschmidt2018-05-241-1/+0
| | | | | Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* p8-i2c: Remove force resetOliver O'Halloran2018-05-221-135/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | Force reset was added as an attempt to work around some issues with TPM devices locking up their I2C bus. In that particular case the problem was that the device would hold the SCL line down permanently due to a device firmware bug. The force reset doesn't actually do anything to alleviate the situation here, it just happens to reset the internal master state enough to make the I2C driver appear to work until something tries to access the bus again. On P9 systems with secure boot enabled there is the added problem of the "diagostic mode" not being supported on I2C masters A,B,C and D. Diagnostic mode allows the SCL and SDA lines to be driven directly by software. Without this force reset is impossible to implement. This patch removes the force reset functionality entirely since: a) it doesn't do what it's supposed to, and b) it's butt ugly code Additionally, turn p8_i2c_reset_engine() into p8_i2c_reset_port(). There's no need to reset every port on a master in response to an error that occurred on a specific port. Signed-off-by: Oliver O'Halloran <oohall@gmail.com> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* libstb/i2c-driver: Bump max timeoutOliver O'Halloran2018-05-221-1/+2
| | | | | | | | | | | We have observed some TPMs clock streching the I2C bus for signifigant amounts of time when processing commands. The same TPMs also have errata that can result in permernantly locking up a bus in response to an I2C transaction they don't understand. Using an excessively long timeout to prevent this in the field. Signed-off-by: Oliver O'Halloran <oohall@gmail.com> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* hdata: Add TPM timeout workaroundOliver O'Halloran2018-05-221-0/+10
| | | | | | | | | | | | Set the default timeout for any bus containing a TPM to one second. This is needed to work around a bug in the firmware of certain TPMs that will clock strech the I2C port the for up to a second. Additionally, when the TPM is clock streching it responds to a STOP condition on the bus by bricking itself. Clearing this error requires a hard power cycle of the system since the TPM is powered by standby power. Signed-off-by: Oliver O'Halloran <oohall@gmail.com> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* p8-i2c: Allow a per-port default timeoutOliver O'Halloran2018-05-221-7/+13
| | | | | | | | Add support for setting a default timeout for the I2C port to the device-tree. This is consumed by skiboot. Signed-off-by: Oliver O'Halloran <oohall@gmail.com> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* doc/opal-api: flesh out return-codes documentationStewart Smith2018-05-221-2/+14
| | | | Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* doc/opal-power-shift-ratio: fix table formattingStewart Smith2018-05-221-4/+7
| | | | Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* doc: Further document development and release processStewart Smith2018-05-228-12/+136
| | | | Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* astbmc: Set romulus BMC type to OpenBMCSamuel Mendoza-Jonas2018-05-221-1/+1
| | | | | Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* capi: Add a comment for the Transport Control RegisterChristophe Lombard2018-05-221-1/+5
| | | | | | | | | | | | | | | | | The transport control register needs to be loaded in two steps: Once the register values have been set, we have to write bit 63 to a '1', which loads the register values into the ci store buffer logic. Bit 63 always reads back as a zero but to load the ci store buffer values in capp the transition of 0 to 1 of bit 63 must be seen. A new comment is added in the code to avoid confusion and to precise the feature of this register. Signed-off-by: Christophe Lombard <clombard@linux.vnet.ibm.com> Reviewed-by: Frederic Barrat <fbarrat@linux.vnet.ibm.com> Reviewed-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com> Acked-by: Vaibhav Jain <vaibhav@linux.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* skiboot 6.0.2 release notesStewart Smith2018-05-181-0/+23
| | | | | | Signed-off-by: Stewart Smith <stewart@linux.ibm.com> (cherry picked from commit e05b3fb62d44e840a2818afc738ce3bc7afea092) Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* cpu: Clear PCR SPR in opal_reinit_cpus()Michael Neuling2018-05-182-0/+2
| | | | | | | | | | Currently if Linux boots with a non-zero PCR, things can go bad where some early userspace programs can take illegal instructions. This is being fixed in Linux, but in the mean time, we should cleanup in skiboot also. Signed-off-by: Michael Neuling <mikey@neuling.org> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* skiboot 6.0.1 release notesStewart Smith2018-05-161-0/+29
| | | | Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* OpenBMC: use 0x3a as OEM command for partial add eselStewart Smith2018-05-161-1/+1
| | | | | | | | | | | | It turns out this is the IBM way to do this and we (OPAL) were just never really told about the change. So, with the best public docs that are available being Hostboot source, let's make the change! See https://github.com/open-power/hostboot/blob/8e05a4399b/src/include/usr/ipmi/ipmiif.H#L115 Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* Add location code to NPU2 HMI loggingBalbir Singh2018-05-151-8/+14
| | | | | | | | | | | | | | | | The current HMI error message does not specifiy where the HMI error occured. The original error message was NPU: FIR#0 FIR 0x0080100000000000 mask 0x009a48180f01ffff The enhanced error message is NPU2: [Loc: UOPWR.0000000-Node0-Proc0] P:0 FIR#0 FIR 0x0000100000000000 mask 0x009a48180f03ffff Signed-off-by: Balbir Singh <bsingharora@gmail.com> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* skiboot 6.0 release notesStewart Smith2018-05-111-0/+1027
| | | | Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* p9dsu: detect variant in init only if probe fails to found.Pridhiviraj Paidipeddi2018-05-111-2/+8
| | | | | | | | | | | | | Currently the slot table init happens twice in both probe and init functions due to the variant detection logic called with in-correct condition check. Fixes: d32ddea9 ("p9dsu: detect p9dsu variant even when hostboot doesn't tell us") Signed-off-by: Pridhiviraj Paidipeddi <ppaidipe@linux.vnet.ibm.com> [stewart: renanem variant-detected to p9dsu-riser-detected] Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* phb4: Print WOF registers on fence detectRussell Currey2018-05-111-1/+7
| | | | | | | | | | Without the WOF registers it's hard to figure out what went wrong first, so print those when we print the FIRs when a fence is detected. Suggested-by: Mike Perez <perezma@us.ibm.com> Signed-off-by: Russell Currey <ruscur@russell.cc> Reviewed-by: Vaibhav Jain <vaibhav@linux.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* core/opal: Fix recursion check in opal_run_pollers()Vaibhav Jain2018-05-111-5/+10
| | | | | | | | | | | | | | | | | An earlier commit introduced a counter variable poller_recursion to limit to the number number of error messages shown when opal_pollers are run recursively. However the check for the counter value was placed in a way that the poller recursion was only detected first 16 times and then allowed afterwards. This patch fixes this by moving the check for the counter value inside the conditional branch with some re-factoring so that opal_poller recursion is not erroneously allowed after poll_recursion is detected first 16 times. Fixes: b6a729e118f4 ("Limit number of Poller recursion detected errors to display") Signed-off-by: Vaibhav Jain <vaibhav@linux.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* skiboot v6.0-rc2 release notesStewart Smith2018-05-091-0/+154
| | | | Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* travis: Require Ubuntu 18.04 to pass, fix on ppc64leStewart Smith2018-05-093-7/+10
| | | | Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* Update default stop-state-disable mask to cut only stop11Vaidyanathan Srinivasan2018-05-091-1/+1
| | | | | | | | | | | | | | | Stability improvements in microcode for stop4/stop5 are available in upstream hcode images. Stop4 and stop5 can be safely enabled by default. Use ~0xE0000000 to cut all but stop0,1,2 in case there are any issues with stop4/5. example: nvram -p ibm,skiboot --update-config opal-stop-state-disable-mask=0x1FFFFFFF Signed-off-by: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* hmi: Fix clearing HMER on debug triggerMichael Neuling2018-05-091-0/+1
| | | | | | | | | | | | | | | In the recent patch: eddff9bf40 hmi: Clear unknown debug trigger I rebased the code from an older skiboot before the HMI rework. When I did this, I missed the handled flag. Without this the HMER is not cleared properly and the HMI keeps happening. This properly sets the handled flag and hence clears the HMER bit. Signed-off-by: Michael Neuling <mikey@neuling.org> Reviewed-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* ibm,firmware-versions: add hcode to device treeStewart Smith2018-05-091-1/+1
| | | | | | | | op-build commit 736a08b996e292a449c4996edb264011dfe56a40 added hcode to the VERSION partition, let's parse it out and let the user know. Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* ipmi: Add BMC firmware version to device treeVasant Hegde2018-05-094-1/+126
| | | | | | | | | | | | | | BMC Get device ID command gives BMC firmware version details. Lets add this to device tree. User space tools will use this information to display BMC version details. Stewart, I have added bmc information under /ibm,firmware-version node as its firmware version. But may be we should add new node (/bmc/firmware). So that we can keep BMC related information separately. Let me know your thoughts on this. Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* mambo: Enable XER CA32 and OV32 bits on P9Anton Blanchard2018-05-091-1/+1
| | | | | | | | POWER9 adds 32 bit carry and overflow bits to the XER, but we need to set the relevant CTRL1 bit to enable them. Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* Makefile: Fix building natively on ppc64leJoel Stanley2018-05-091-3/+3
| | | | | | | | | When on ppc64le and CROSS is not set by the environment, make assumes ppc64 and sets a default CROSS. Check for ppc64le as well, so that 'make' works out of the box on ppc64le. Signed-off-by: Joel Stanley <joel@jms.id.au> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* opal-ci: Remove unwanted .orig fileJoel Stanley2018-05-091-10/+0
| | | | | | | This snuck in recently. Signed-off-by: Joel Stanley <joel@jms.id.au> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* Makefile: be precise about clang targetJoel Stanley2018-05-091-10/+1
| | | | | | | | While CROSS can be set to a ppc64le toolchian, we don't want to build for that target. Hardcode the target to powerpc64-linux-gnu. Signed-off-by: Joel Stanley <joel@jms.id.au> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* test: Simplify build process for hello and sreset testsJoel Stanley2018-05-094-76/+24
| | | | | | | | | | | | | | | | | | | | | | | Link with ld instead of gcc so we can build with clang as cc. Remove the linker script and unnecessary flags. The application links just fine without them. Add cflags required by clang in order to build for the correct target. Remove the dependency file generation. The assembly files don't include any headers, so they weren't doing anything. Simplify clean rule, as the $(RM) alias does -f for us, and we no longer have .d files. Build tested on ppc64le and amd64. Booted in Qemu on both using: qemu-system-ppc64 -M powernv -nodefaults -nographic -serial stdio \ -kernel test/hello_world/hello_kernel/hello_kernel Signed-off-by: Joel Stanley <joel@jms.id.au> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* qemu-debian-test: Remove unusable hda optionJoel Stanley2018-05-091-4/+3
| | | | | | | | | | | | | | | | When running this: qemu-system-ppc64 -m 2G -M powernv -kernel debian-jessie-vmlinux \ -initrd debian-jessie-initrd.gz -nographic \ -device ipmi-bmc-sim,id=ipmi0 -device isa-ipmi-bt,bmc=ipmi0 \ -hda /tmp/debian-jessie-install.qcow2.kDubGYDrqa We die with this error: qemu-system-ppc64: -hda /tmp/debian-jessie-install.qcow2.kDubGYDrqa: machine type does not support if=ide,bus=0,unit=0 Signed-off-by: Joel Stanley <joel@jms.id.au> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* opal-ci: 18.04: Go back to updating before installing packagesJoel Stanley2018-05-091-3/+2
| | | | | | | Docker tries to cache stuff and it bites us. Signed-off-by: Joel Stanley <joel@jms.id.au> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* opal-ci: Build qemu from Cedric's powernv-2.12 branchJoel Stanley2018-05-091-1/+1
| | | | | | | | | This contains the latest features. It's close to upstream, but there's enough stuff in there that it probably makes sense to continue using it for now. Signed-off-by: Joel Stanley <joel@jms.id.au> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* p9dsu: timeout for variant detection, default to 2uessStewart Smith2018-05-081-6/+8
| | | | Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* test: qemu-debian-jessie boot: fix qemu-imgStewart Smith2018-05-061-1/+1
| | | | | | | We can just use whatever qemu-img binary that's laying around, including the distro one. Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* core/direct-controls: improve p9_stop_thread error handlingNicholas Piggin2018-05-061-9/+5
| | | | | | | | | | | | | | | | | | | | | p9_stop_thread should fail the operation if it finds the thread was already quiescd. This implies something else is doing direct controls on the thread (e.g., pdbg) or there is some exceptional condition we don't know how to deal with. Proceeding here would cause things to trample on each other, for example the hard lockup watchdog trying to send a sreset to the core while it is stopped for debugging with pdbg will end in tears. If p9_stop_thread times out waiting for the thread to quiesce, do not hit it with a core_start direct control, because we don't know what state things are in and doing more things at this point is worse than doing nothing. There is no good recipe described in the workbook to de-assert the core_stop control if it fails to quiesce the thread. After timing out here, the thread may eventually quiesce and get stuck, but that's simpler to debug than undefied behaviour. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* core/direct-controls: fix p9_cont_thread for stopped/inactive threadsNicholas Piggin2018-05-061-17/+70
| | | | | | | | | | | | | Firstly, p9_cont_thread should check that the thread actually was quiesced before it tries to resume it. Anything could happen if we try this from an arbitrary thread state. Then when resuming a quiesced thread that is inactive or stopped (in a stop idle state), we must not send a core_start direct control, clear_maint must be used in these cases. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* occ: Use major version number while checking the pstate table formatShilpasri G Bhat2018-05-061-24/+23
| | | | | | | | | | | | The minor version increments of the pstate table are backward compatible. The minor version is changed when the pstate table remains same and the existing reserved bytes are used for pointing new data. So use only major version number while parsing the pstate table. This will allow old skiboot to parse the pstate table and handle minor version updates. Signed-off-by: Shilpasri G Bhat <shilpa.bhat@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* timer: Move update_timer_expiry call to separate functionVasant Hegde2018-05-061-9/+10
| | | | | Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* opal-ci: Additionally build with clang on Ubuntu 18.04Joel Stanley2018-05-061-0/+5
| | | | | | | | | Now that skiboot supports building with clang we can use a modern distro to cross compile using that compiler. Ubuntu 18.04 ships with clang 6, so start with that. Signed-off-by: Joel Stanley <joel@jms.id.au> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* travis: fix if x86_64 tests in dockerfiles.Stewart Smith2018-05-069-15/+25
| | | | | | | | In today's lesson, Stewart learns shell. Fixes: e101e85c9ff65e82f7ede4d5541d921b4a3ed923 Reported-by: Joel Stanley <joel@jms.id.au> Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* opal-ci: Add Ubuntu 18.04Joel Stanley2018-05-063-0/+41
| | | | | | | | | | | | | | | | | | | | | Start doing builds on latest LTS. We can simplify the build script a little, as we know that this version of Ubuntu ships with an ARM cross compiler and a Qemu that can run the tests. This provides us with: gcc 7.3.0 (for native and cross-builds) qemu 2.11 clang 6 Simplify the docker script a little by merging the two different install lines, and getting rid of the duplicate 'apt-get update' steps. We now install clang in preparation for future shenanigans, and use the system qemu instead of building one ourselves. Signed-off-by: Joel Stanley <joel@jms.id.au> [stewart: allow 18.04 to fail as we stabilise it in travis] Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
* travis: remove obsolete fedora 24,25,26Stewart Smith2018-05-047-30/+2
| | | | Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
OpenPOWER on IntegriCloud