diff options
author | Stewart Smith <stewart@linux.vnet.ibm.com> | 2018-03-23 14:29:02 -0700 |
---|---|---|
committer | Stewart Smith <stewart@linux.vnet.ibm.com> | 2018-03-27 14:51:38 +1100 |
commit | 80452d2cf2ce4dfc769b74c28bd0c73ec076b9be (patch) | |
tree | 902d29f83fbce3964031117945c02d4e51a66edd /hw | |
parent | 351b05be3d403cd444db4390a5d9110631240cb6 (diff) | |
download | skiboot-80452d2cf2ce4dfc769b74c28bd0c73ec076b9be.zip skiboot-80452d2cf2ce4dfc769b74c28bd0c73ec076b9be.tar.gz skiboot-80452d2cf2ce4dfc769b74c28bd0c73ec076b9be.tar.bz2 |
Revert "NPU2 HMIs: dump out a *LOT* of npu2 registers for debugging"
This reverts commit fbdc91e693fc3103f7e2a65054ed32bfb26a2e17.
We don't need this as we need to do it a different way, with a explicit
set of registers as otherwise we trip other random FIR bits and everything
becomes even more terrible.
I suggest alcohol.
Cc: stable
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'hw')
-rw-r--r-- | hw/slw.c | 4 | ||||
-rw-r--r-- | hw/xscom.c | 36 |
2 files changed, 16 insertions, 24 deletions
@@ -1620,7 +1620,7 @@ void slw_update_timer_expiry(uint64_t new_target) /* Grab generation and spin if odd */ _xscom_lock(); for (;;) { - rc = _xscom_read(slw_timer_chip, 0xE0006, &gen, false, false); + rc = _xscom_read(slw_timer_chip, 0xE0006, &gen, false); if (rc) { prerror("SLW: Error %lld reading tmr gen " " count\n", rc); @@ -1664,7 +1664,7 @@ void slw_update_timer_expiry(uint64_t new_target) } /* Re-check gen count */ - rc = _xscom_read(slw_timer_chip, 0xE0006, &gen2, false, false); + rc = _xscom_read(slw_timer_chip, 0xE0006, &gen2, false); if (rc) { prerror("SLW: Error %lld re-reading tmr gen " " count\n", rc); @@ -215,9 +215,8 @@ static int xscom_clear_error(uint32_t gcid, uint32_t pcb_addr) } static int64_t xscom_handle_error(uint64_t hmer, uint32_t gcid, uint32_t pcb_addr, - bool is_write, int64_t retries, - int64_t *xscom_clear_retries, - bool ignore_error) + bool is_write, int64_t retries, + int64_t *xscom_clear_retries) { unsigned int stat = GETFIELD(SPR_HMER_XSCOM_STATUS, hmer); int64_t rc = OPAL_HARDWARE; @@ -278,12 +277,9 @@ static int64_t xscom_handle_error(uint64_t hmer, uint32_t gcid, uint32_t pcb_add } /* XXX: Create error log entry ? */ - if (!ignore_error) - log_simple_error(&e_info(OPAL_RC_XSCOM_RW), - "XSCOM: %s error gcid=0x%x " - "pcb_addr=0x%x stat=0x%x\n", - is_write ? "write" : "read", gcid, - pcb_addr, stat); + log_simple_error(&e_info(OPAL_RC_XSCOM_RW), + "XSCOM: %s error gcid=0x%x pcb_addr=0x%x stat=0x%x\n", + is_write ? "write" : "read", gcid, pcb_addr, stat); /* We need to reset the XSCOM or we'll hang on the next access */ xscom_reset(gcid, false); @@ -326,16 +322,14 @@ static inline bool xscom_is_multicast_addr(uint32_t addr) * Low level XSCOM access functions, perform a single direct xscom * access via MMIO */ -static int __xscom_read(uint32_t gcid, uint32_t pcb_addr, uint64_t *val, - bool ignore_error) +static int __xscom_read(uint32_t gcid, uint32_t pcb_addr, uint64_t *val) { uint64_t hmer; int64_t ret, retries; int64_t xscom_clear_retries = XSCOM_CLEAR_MAX_RETRIES; if (!xscom_gcid_ok(gcid)) { - if (!ignore_error) - prerror("%s: invalid XSCOM gcid 0x%x\n", __func__, gcid); + prerror("%s: invalid XSCOM gcid 0x%x\n", __func__, gcid); return OPAL_PARAMETER; } @@ -357,7 +351,7 @@ static int __xscom_read(uint32_t gcid, uint32_t pcb_addr, uint64_t *val, /* Handle error and possibly eventually retry */ ret = xscom_handle_error(hmer, gcid, pcb_addr, false, retries, - &xscom_clear_retries, ignore_error); + &xscom_clear_retries); if (ret != OPAL_BUSY) break; } @@ -376,8 +370,7 @@ static int __xscom_read(uint32_t gcid, uint32_t pcb_addr, uint64_t *val, if (proc_gen == proc_gen_p9 && ret == OPAL_XSCOM_CHIPLET_OFF) return ret; - if (!ignore_error) - prerror("XSCOM: Read failed, ret = %lld\n", ret); + prerror("XSCOM: Read failed, ret = %lld\n", ret); return ret; } @@ -410,7 +403,7 @@ static int __xscom_write(uint32_t gcid, uint32_t pcb_addr, uint64_t val) /* Handle error and possibly eventually retry */ ret = xscom_handle_error(hmer, gcid, pcb_addr, true, retries, - &xscom_clear_retries, false); + &xscom_clear_retries); if (ret != OPAL_BUSY) break; } @@ -458,7 +451,7 @@ static int xscom_indirect_read_form0(uint32_t gcid, uint64_t pcb_addr, /* Wait for completion */ for (retries = 0; retries < XSCOM_IND_MAX_RETRIES; retries++) { - rc = __xscom_read(gcid, addr, &data, false); + rc = __xscom_read(gcid, addr, &data); if (rc) goto bail; if ((data & XSCOM_DATA_IND_COMPLETE) && @@ -520,7 +513,7 @@ static int xscom_indirect_write_form0(uint32_t gcid, uint64_t pcb_addr, /* Wait for completion */ for (retries = 0; retries < XSCOM_IND_MAX_RETRIES; retries++) { - rc = __xscom_read(gcid, addr, &data, false); + rc = __xscom_read(gcid, addr, &data); if (rc) goto bail; if ((data & XSCOM_DATA_IND_COMPLETE) && @@ -595,8 +588,7 @@ void _xscom_unlock(void) /* * External API */ -int _xscom_read(uint32_t partid, uint64_t pcb_addr, uint64_t *val, - bool take_lock, bool ignore_error) +int _xscom_read(uint32_t partid, uint64_t pcb_addr, uint64_t *val, bool take_lock) { uint32_t gcid; int rc; @@ -643,7 +635,7 @@ int _xscom_read(uint32_t partid, uint64_t pcb_addr, uint64_t *val, if (pcb_addr & XSCOM_ADDR_IND_FLAG) rc = xscom_indirect_read(gcid, pcb_addr, val); else - rc = __xscom_read(gcid, pcb_addr & 0x7fffffff, val, ignore_error); + rc = __xscom_read(gcid, pcb_addr & 0x7fffffff, val); /* Unlock it */ if (take_lock) |