summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Don't try to print symbol when we didn't find oneStewart Smith2015-08-111-1/+3
| | | | Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* Merge branch 'stable' (backport of OPAL_CEC_REBOOT2)Stewart Smith2015-08-100-0/+0
|\
| * doc/opal-api: Add OPAL_CEC_REBOOT2 OPAL call descriptionVipin K Parashar2015-08-101-0/+54
| | | | | | | | | | | | | | | | | | This patch adds doc/opal-api/opal-cec-reboot-6-116.txt file to add description for OPAL_CEC_REBOOT* OPAL call. Signed-off-by: Vipin K Parashar <vipin@linux.vnet.ibm.com> Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
| * opal-api: Add OPAL call to handle abnormal reboots.Vipin K Parashar2015-08-105-1/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds a new OPAL call OPAL_CEC_REBOOT2 which will be used to handle abnormal reboot/termination by kernel host. This call will allow host kernel to pass reboot type and additional debug data which needs to be captured/saved somewhere (for later analysis) before going down. Currently it will support two reboot types (0). normal reboot, that will behave similar to that of opal_cec_reboot() call, and (1). platform error reboot, that will trigger a system checkstop using xscom address and FIR bit information obtained via device-tree property 'ibm,sw-checkstop-fir'. For unsupported reboot type, this call will do nothing and return with OPAL_UNSUPPORTED. In future, we can overload this call to support additional reboot types. Signed-off-by: Vipin K Parashar <vipin@linux.vnet.ibm.com> Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | Merge 'external/opal-prd: Only map each PRD range once' from branch 'stable'Stewart Smith2015-08-101-12/+23
|\ \ | |/
| * external/opal-prd: Only map each PRD range onceJeremy Kerr2015-08-101-12/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, opal-prd will create a new mapping (via mmap()) on every call to get_reserved_mem(). HBRT may end up calling this many times for the same range, which will consume virtual address space. There's no interface to unmap memory, so we may fail after too many calls. Instead, store the mapping in struct prd_range on first get_reserved_mem. Subsequent calls will re-use the same mapping. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | fix run-pel.c build after error log entry changesStewart Smith2015-07-311-1/+1
| | | | | | | | Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | external/opal-prd: Use opal-prd as version prefixCyril Bur2015-07-311-5/+5
| | | | | | | | | | | | Cc: Jeremy Kerr <jeremy.kerr@au1.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | versioning: Unify all versioning to match skiboot versionsCyril Bur2015-07-313-24/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously there has been some uncertainty as to how separate binaries were to be versioned compared to the firmware version as they could change (or not change) out of sync with skiboot versioning. Historically pflash was born with its own version which didn't help the issue. It has been decided that make_version.sh should always return one version which is shall be the skiboot firmware version, external binaries can supply their own prefix which will be s/skiboot/$prefix/ but the default behaviour is the git tag versioning. The main reason for versioning here is so developers can identify which version of the code someone is running, versions which closly match the source tree are easiest to deal with. The idea with one version and every binary getting a bump regardless of changes is that there is a lot of shared code (libflash/libffs are a prime example) and even if an external binary isn't explicitly updated it is possible that changes to shared code may be missed. This patch simplifies make_version.sh which had been updated to deal with pflash- git tags. Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | external/boot-tests: update boot-test.sh usage for BMC single partition flashingAndrew Donnellan2015-07-311-4/+7
| | | | | | | | | | | | | | | | Update boot-test.sh usage to document single partition flashing on BMC platforms. Signed-off-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | external/boot-tests: Fix logging functions in boot_test.shAndrew Donnellan2015-07-311-5/+15
| | | | | | | | | | | | | | | | | | | | | | | | Fix the error() and msg() functions in boot_test.sh so they don't cause a shell error when called before $target is set (i.e. before parameter parsing). Change error() to allow the use of multiple arguments in the message, in line with msg(). Use $* rather than $@ as it's very slightly more correct. Signed-off-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | doc/opal-api: Add OPAL_CEC_REBOOT2 OPAL call descriptionVipin K Parashar2015-07-311-0/+54
| | | | | | | | | | | | | | | | | | This patch adds doc/opal-api/opal-cec-reboot-6-116.txt file to add description for OPAL_CEC_REBOOT* OPAL call. Signed-off-by: Vipin K Parashar <vipin@linux.vnet.ibm.com> Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | opal-api: Add OPAL call to handle abnormal reboots.Vipin K Parashar2015-07-315-1/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds a new OPAL call OPAL_CEC_REBOOT2 which will be used to handle abnormal reboot/termination by kernel host. This call will allow host kernel to pass reboot type and additional debug data which needs to be captured/saved somewhere (for later analysis) before going down. Currently it will support two reboot types (0). normal reboot, that will behave similar to that of opal_cec_reboot() call, and (1). platform error reboot, that will trigger a system checkstop using xscom address and FIR bit information obtained via device-tree property 'ibm,sw-checkstop-fir'. For unsupported reboot type, this call will do nothing and return with OPAL_UNSUPPORTED. In future, we can overload this call to support additional reboot types. Signed-off-by: Vipin K Parashar <vipin@linux.vnet.ibm.com> Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com> Reviewed-by: Samuel Mendoza-Jonas <sam.mj@au1.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | errorlog: Update documentation to reflect append changesSamuel Mendoza-Jonas2015-07-311-206/+217
| | | | | | | | | | Signed-off-by: Samuel Mendoza-Jonas <sam.mj@au1.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | errorlog: Deprecate elog callback parameterSamuel Mendoza-Jonas2015-07-3120-66/+61
| | | | | | | | | | | | | | | | | | | | There are now no users of the call_out parameter and future users should use the log_append_msg() and log_append_data() functions, so remove all references to call_out. Signed-off-by: Samuel Mendoza-Jonas <sam.mj@au1.ibm.com> Reviewed-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | errorlog: Simplify log calling conventionSamuel Mendoza-Jonas2015-07-313-68/+109
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove the callback functionality from log_error() and replace it with the ability to append to a user data section, or add addtional user data sections to an error log. For multiline or otherwise complex logging the convention is now to call opal_elog_create() to obtain a errorlog buffer and use log_append_msg() and log_append_data() to append to the user data section. Additional user data sections can be added to the error log via log_add_section(). The caller is then responsible for calling log_commit(). For simple logs log_simple_error() takes care of creating and committing the error log as before. Signed-off-by: Samuel Mendoza-Jonas <sam.mj@au1.ibm.com> Reviewed-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | add some more PCI docs from old internal sourcesStewart Smith2015-07-311-0/+71
| | | | | | | | Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | tiny bit of docs for ibm,opal DT nodeStewart Smith2015-07-301-0/+31
| | | | | | | | Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | update skiboot-5.1.0-beta1 release notesStewart Smith2015-07-212-94/+214
| | | | | | | | Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | Add skiboot-5.1-beta1 release notesStewart Smith2015-07-211-0/+94
| | | | | | | | Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | Merge branch 'stable'Stewart Smith2015-07-180-0/+0
|\ \ | |/
| * bt: Remove B_BUSY stateAlistair Popple2015-07-161-18/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The bt layer used to cache the value of B_BUSY in the state machine, assuming that once B_BUSY was cleared by the BMC that it would never be set by the BMC again unless a message was sent to the bt interface. This was mostly true for the AMI firmware except when the BMC reboots which causes B_BUSY to be set. There may also be additional circumstances which set B_BUSY. Therefore the bt layer must check B_BUSY is clear before sending a message making the B_BUSY state superfluous. Signed-off-by: Alistair Popple <alistair@popple.id.au> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | external/gard: Update gard tool to new blocklevel interfaceCyril Bur2015-07-172-77/+55
| | | | | | | | | | Signed-off-by: Cyril Bur <cyril.bur@au1.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | hdata/paca: Check for dt_find_property() return valueKamalesh Babulal2015-07-171-0/+3
| | | | | | | | | | | | | | | | | | | | dt_find_property() might return NULL. In handle_capp_recoverable, check for return value, before dereferencing it. Fixes Coverity defect#97844. Signed-off-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | hdata/paca: Check for dt_find_property() return valueKamalesh Babulal2015-07-171-2/+7
| | | | | | | | | | | | | | | | | | | | | | dt_find_property() might return NULL. In __paca_parse(), check for return value, before dereferencing it. Also fix trailing white spaces. Fixes Coverity defect#97842. Signed-off-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | hdata/memory: Introduce zalloc() return checkKamalesh Babulal2015-07-171-0/+4
| | | | | | | | | | | | | | | | | | | | In add_size_to_ram_area(), Introduce check for memory allocation failure, before using it. Fixes Coverity defect#97840. Signed-off-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | FSP/LEDS: Add support to handle SAI state request from service processorVasant Hegde2015-07-171-25/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ideally service processor shouldn't request OPAL for SAI state...as this LED is controlled by service processor itself. But of some reason its asking OPAL to provide state. Hence handle this request until FSP team fixes it. Sample log without this patch: [77884350335,3] FSPLED: Could not find the location code LC=U8246.L2C.060377A [77942662287,8] FSPLED: FSP_CMD_GET_LED_LIST command received Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | FSP/LEDS: Remove led-loc propertyVasant Hegde2015-07-173-15/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We added led-loc property.. which contains LED location information. But this property was never used. Also we can make out LED location (enclosure/component) based on location code (if location code doesn't contain "-" means its enclosure location code). As Ben suggested [1], removing this property. Present code is included in skiboot skiboot-5.0 release..But we don't have any consumer yet. Hence I think its fine to make this changes. [1] https://lists.ozlabs.org/pipermail/linuxppc-dev/2015-June/130433.html Suggested-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | Add OPAL_READ_TPO and OPAL_WRITE_TPO documentationStewart Smith2015-07-161-0/+15
| | | | | | | | Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | fsp/ipmi: Add the in-band IPMI support for FSP systemsNeelesh Gupta2015-07-106-1/+377
| | | | | | | | | | | | | | | | | | | | | | FSP implements the IPMI commands support that can be accessed over the mailbox interface from the host. The host needs to provide and receive the message/data bytes of the IPMI command in the TCE space in the KCS (Keyboard Controller Style) format. Signed-off-by: Neelesh Gupta <neelegup@linux.vnet.ibm.com> Acked-By: Alistair Popple <alistair@popple.id.au> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | ipmi: Provide a macro for netfn return codeNeelesh Gupta2015-07-102-1/+4
| | | | | | | | | | | | | | Signed-off-by: Neelesh Gupta <neelegup@linux.vnet.ibm.com> Cc: Alistair Popple <alistair@popple.id.au> Acked-by: Alistair Popple <alistair@popple.id.au> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | fsp/mem-err: Fix leak in one error path and minor clean upsNeelesh Gupta2015-07-101-10/+4
| | | | | | | | | | Signed-off-by: Neelesh Gupta <neelegup@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | find_shared() - Check for return value from dt_find_propertyKamalesh Babulal2015-07-101-2/+5
| | | | | | | | | | | | | | | | | | | | In find_shared(), dt_find_property might return NULL value, so check for validity of the pointer before dereferencing it. Fixes Coverity defect#97846. Signed-off-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | Introduce memory allocation return value checkKamalesh Babulal2015-07-101-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | In pci_std_swizzle_irq_map(), check if the memory allocation of interrupt-mask returns a valid pointer before using it. Fixes Coverity defect#97854. Signed-off-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com> Cc: Samuel Mendoza-Jonas <sam.mj@au1.ibm.com> Cc: Gavin Shan <gwshan@linux.vnet.ibm.com> [stewart@linux.vnet.ibm.com: change to prerror() rather than prlog(DEBUG)] Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | pci_configure_mps fixes: NULL dereference, null check and typoKamalesh Babulal2015-07-101-4/+4
| | | | | | | | | | | | | | | | | | | | | | Chance of phb or pd being NULL is zero, switch to assert. Suggested-by: Gavin Shan <gwshan@linux.vnet.ibm.com> Signed-off-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com> Cc: Samuel Mendoza-Jonas <sam.mj@au1.ibm.com> [stewart@linux.vnet.ibm.com: switched to assert() instead of completely removing the check] Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | Introduce blocklevel_ecc_protect() return value checkKamalesh Babulal2015-07-101-3/+9
| | | | | | | | | | | | | | | | | | | | | | | | Check for the return value from blocklevel_ecc_protect(), while registering regions of the flash and log error incase the return registration of region fails. Fixes Coverity defect#101019 Signed-off-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com> Reviewed-By: Cyril Bur <cyril.bur@au1.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | external/gard: change gard manual page filenameCédric Le Goater2015-07-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes : commit 6c458a036949 ("external/gard: Install gard manual page") which did not take into account the changes from : commit 2e2fb4dfff5c ("Renaming to opal-gard and minus escaping") Signed-off-by: Cédric Le Goater <clg@fr.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | fsp_create_node(): Fix resource leakKamalesh Babulal2015-07-101-2/+4
| | | | | | | | | | | | | | | | | | | | Fix memory leak by free-ing 'links'. Also, fix trailing white spaces. Fixes Coverity defect#98816. Signed-off-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | hw/phb3: Fix logical operandKamalesh Babulal2015-07-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | In phb3_init_rc_cfg(), fix logical operand issue by guarding p->has_link with brackets. Fixes Coverity defect#97816. Signed-off-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com> Reviewed-by: Gavin Shan <gwshan@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | Configure CAPP timebase.Philippe Bergheaud2015-07-104-1/+171
| | | | | | | | | | | | | | | | Extend the OPAL call phb3_set_capi_mode to configure CAPP timebase. Inform Linux with the device tree property "ibm,capp-timebase-sync. Signed-off-by: Philippe Bergheaud <felix@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | opal: Recover from TOD register parity errors.Mahesh Salgaonkar2015-07-091-2/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch implements recovery from parity errors on below listed TOD control registers: - Master Path control register (0x00040000) - Primary Port-0 control register (0x00040001) - Primary Port-1 control register (0x00040002) - Secondary Port-0 control register (0x00040003) - Secondary Port-1 control register (0x00040004) - Slave Path control register (0x00040005) - Internal Path control register (0x00040006) - Primary/secondary master/slave control register (0x00040007) - Chip control register (0x00040010) To inject TOD register parity error issue: putscom pu 40031 8000000000000000 -pall # (00040000) putscom pu 40031 1000000000000000 -pall # (00040001) putscom pu 40031 0800000000000000 -pall # (00040002) putscom pu 40031 0400000000000000 -pall # (00040003) putscom pu 40031 0200000000000000 -pall # (00040004) putscom pu 40031 0100000000000000 -pall # (00040005) putscom pu 40031 0080000000000000 -pall # (00040006) putscom pu 40031 0040000000000000 -pall # (00040007) putscom pu 40031 0000000080000000 -pall # (00040010) Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | opal: Cache chipTOD control register values.Mahesh Salgaonkar2015-07-091-0/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Cache chiptod control register values during chiptod initialization and whenever there is a change in topology configuration. In subsequent patches, these saved values will be used to recover from parity errors on respective chiptod control registers. This patch caches values of following registers: - Master Path control register (0x00040000) - Primary Port-0 control register (0x00040001) - Primary Port-1 control register (0x00040002) - Secondary Port-0 control register (0x00040003) - Secondary Port-1 control register (0x00040004) - Slave Path control register (0x00040005) - Internal Path control register (0x00040006) - Primary/secondary master/slave control register (0x00040007) - Chip control register (0x00040010) Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | opal: Enable backup topology.Mahesh Salgaonkar2015-07-096-7/+158
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Whenever FSP makes any changes to backup topology as part of either routine hardware maintenance or fixing failed backup topology configuration, it sends out mailbox command xE6, s/c 0x06, mod 0, to enable/disable the backup topology. OPAL layer should keep itself up-to-date with accurate details of current topology configurations. This will help OPAL layer to successfully handle any TOD failover in future. The FSP can only request that the currently inactive (backup) topology be disabled or enabled. If the requested topology is currently the active topology, then fail this request with a 0xB8 (TOD topology in use) status as return code. For disable request, set the backup topology status as disabled. For enable request, scan all the available chips and find the new backup master chip by looking at TOD status register of each chip. Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | opal: Inform fsp about the topology switch.Mahesh Salgaonkar2015-07-091-0/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After the topology switch, we may have a non-functional backup topology. This means, we won't be able to recover from future TOD errors that requires topology switch. Someone needs to either fix it OR configure new functional backup topology. Bit 18 of the Pervasive local FIR (SCOM: EH.TPCHIP.TPC.LOCAL_FIR: 0x0104000C) is used to signal that TOD error analysis needs to be performed. This allows FSP/PRD to investigate and re-configure new backup topology if required. Once new backup topology is configured and ready, FSP sends a mailbox command xE6, s/c 0x06, mod 0, to enable the backup topology. This isn't documented anywhere. This info is provided by FSP folks. This patch implements setting of bit 18 in Pervasive local FIR. The next patch will handle FSP mailbox command xE6, s/c 0x06, mod 0. Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | opal: Check if backup master is valid before topology switch.Mahesh Salgaonkar2015-07-091-2/+26
| | | | | | | | | | | | | | | | Check if backup chip TOD is valid and enabled before we trigger topology switch. Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | opal: Refactor TOD topology failover recovery.Mahesh Salgaonkar2015-07-091-14/+133
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current code does not correctly identify need for topology switch and forces the TOD topology switch even when it is not required do so. This patch introduces a check to find out if sync/step network is running and there is no step check error reported on active master. If this check fails, then we need to trigger a topology switch to recover from TOD error. But before triggering topology switch, make sure that all slave chip TODs are stopped except backup master chip. During the topology switch step checkers are disabled and stays disabled even after the switch. This causes future step check errors to go undetected. Hence, make sure that step checkers are enabled on all TODs after topology switch. Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | opal: Re-sync failed chiptod with neighboring chiptod.Mahesh Salgaonkar2015-07-091-2/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current implementation fails to recover from TOD error on slave chip where TOD on active master is also stopped due to an error. This patch improves the TOD recovery for slave chip TODs. Below are the steps for TOD recovery on slave chips: a. HMI received on slave chip TOD (e.g. chipS). b. Check if TOD is running on active master. If yes, jump to step (e). c. TOD on active master is not running. Scan through all neighboring chips and identify one (e.g. chipX) that has TOD in running state. d. Enable TTYPE-4 mode on 'chipX' so that it would respond to TTYPE-3 request from another chip. e. Move 'chipS' TOD into 'Not-set' mode. f. Issue TTYPE-3 request from 'chipS' to request TOD value from another chipTOD. g. TOD from 'chipS' will receive TOD value from 'chipX' OR from active master. h. Check if TOD on 'chipS' is moved to 'running' state. if yes, then return success else return failure. Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | opal: Modify chiptod_running_check() function to take chip id as argument.Mahesh Salgaonkar2015-07-091-3/+3
| | | | | | | | | | | | | | | | Modify chiptod_running_check() function to take chip id as argument. The subsequent patches will use this. Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | opal: Introduce a function to check sync/step network status.Mahesh Salgaonkar2015-07-091-0/+116
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduce a function to check sync/step network status for a given topology. During chiptod initialization, check sync/step network status for backup topology to find out whether backup topology is enabled or disabled and update the topology info accordingly. In the subsequent patches this function will also be used for one of the checks to detect whether topology switch is required for TOD failure recovery. Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
* | opal: Query chip TOD status for a given topology.Mahesh Salgaonkar2015-07-091-2/+39
| | | | | | | | | | | | | | | | | | Query and update chip TOD status for both topologies. This helps to identify which chip TOD is active master and which one is backup master. During TOD error recovery this information will become very useful. Signed-off-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
OpenPOWER on IntegriCloud