[Sound-open-firmware] [PATCH V2 2/2] platform: panice: Send exception memory offset via IPC

Xiuli Pan xiuli.pan at linux.intel.com
Fri May 4 09:41:49 CEST 2018


From: Pan Xiuli <xiuli.pan at linux.intel.com>

Send the memory window offset with the panic IPC in case the panic
happen before DSP ready when the memory window info is sent.

Signed-off-by: Pan Xiuli <xiuli.pan at linux.intel.com>

---
V2: Add hsw support

Test with:
Mininow max rt5651 and UP2 nocodec and CNL nocodec
SOF master: 85ae8e74181f3b4f8c6bb65b5d30b15eae189b0d
SOF-Tool master: 13b56fa6047c566a8ba3edd0882ea786e595ee2a
https://github.com/plbossart/sound/tree/topic/sof-v4.14:
d09db67c5a9d6dfc85f700669fa2e43c678c8d51
---
 src/platform/apollolake/include/platform/platform.h | 3 ++-
 src/platform/baytrail/include/platform/platform.h   | 3 ++-
 src/platform/cannonlake/include/platform/platform.h | 4 +++-
 src/platform/haswell/include/platform/platform.h    | 9 ++++++---
 4 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/src/platform/apollolake/include/platform/platform.h b/src/platform/apollolake/include/platform/platform.h
index 5672183..d57b880 100644
--- a/src/platform/apollolake/include/platform/platform.h
+++ b/src/platform/apollolake/include/platform/platform.h
@@ -120,7 +120,8 @@ struct sof;
 #define platform_panic(__x) { \
 	mailbox_sw_reg_write(SRAM_REG_FW_STATUS, \
 			     (0xdead000 | (__x)) & 0x3fffffff); \
-	ipc_write(IPC_DIPCI, 0x80000000 | ((0xdead000 | __x) & 0x3fffffff)); \
+	ipc_write(IPC_DIPCIE, MAILBOX_EXCEPTION_OFFSET + 2 * 0x20000); \
+	ipc_write(IPC_DIPCI, 0x80000000 | ((0xdead000 | (__x)) & 0x3fffffff)); \
 }
 
 /* Platform defined trace code */
diff --git a/src/platform/baytrail/include/platform/platform.h b/src/platform/baytrail/include/platform/platform.h
index 4d32d5e..6a7ebc9 100644
--- a/src/platform/baytrail/include/platform/platform.h
+++ b/src/platform/baytrail/include/platform/platform.h
@@ -27,6 +27,7 @@
  *
  * Author: Liam Girdwood <liam.r.girdwood at linux.intel.com>
  *         Keyon Jie <yang.jie at linux.intel.com>
+ *         Xiuli Pan <xiuli.pan at linux.intel.com>
  */
 
 #ifndef __PLATFORM_PLATFORM_H__
@@ -103,7 +104,7 @@ struct sof;
 /* Platform defined panic code */
 #define platform_panic(__x) { \
 	shim_write(SHIM_IPCDL, (0xdead000 | (__x & 0xfff))); \
-	shim_write(SHIM_IPCDH, SHIM_IPCDH_BUSY); \
+	shim_write(SHIM_IPCDH, (SHIM_IPCDH_BUSY | MAILBOX_EXCEPTION_OFFSET)); \
 }
 
 /* Platform defined trace code */
diff --git a/src/platform/cannonlake/include/platform/platform.h b/src/platform/cannonlake/include/platform/platform.h
index 66e6375..dc9a963 100644
--- a/src/platform/cannonlake/include/platform/platform.h
+++ b/src/platform/cannonlake/include/platform/platform.h
@@ -115,7 +115,9 @@ struct sof;
 #define platform_panic(__x) { \
 	mailbox_sw_reg_write(SRAM_REG_FW_STATUS, \
 			     (0xdead000 | (__x)) & 0x3fffffff); \
-	ipc_write(IPC_DIPCIDR, 0x80000000 | ((0xdead000 | __x) & 0x3fffffff)); \
+	ipc_write(IPC_DIPCIDD, MAILBOX_EXCEPTION_OFFSET + 2 * 0x20000); \
+	ipc_write(IPC_DIPCIDR, 0x80000000 | \
+		  ((0xdead000 | (__x)) & 0x3fffffff)); \
 }
 
 /* Platform defined trace code */
diff --git a/src/platform/haswell/include/platform/platform.h b/src/platform/haswell/include/platform/platform.h
index abe4c84..d30f329 100644
--- a/src/platform/haswell/include/platform/platform.h
+++ b/src/platform/haswell/include/platform/platform.h
@@ -25,7 +25,8 @@
  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  * POSSIBILITY OF SUCH DAMAGE.
  *
- * Author: Liam Girdwood <liam.r.girdwood at linux.intel.com>
+ * Authors: Liam Girdwood <liam.r.girdwood at linux.intel.com>
+ *	    Xiuli Pan <xiuli.pan at linux.intel.com>
  */
 
 #ifndef __PLATFORM_PLATFORM_H__
@@ -100,8 +101,10 @@ struct sof;
 #define PLATFORM_IDLE_TIME	750000
 
 /* Platform defined panic code */
-#define platform_panic(__x) \
-	shim_write(SHIM_IPCD, (SHIM_IPCD_BUSY | 0xdead000 | __x))
+#define platform_panic(__x) { \
+	shim_write(SHIM_IPCX, MAILBOX_EXCEPTION_OFFSET & 0x3fffffff); \
+	shim_write(SHIM_IPCD, (SHIM_IPCD_BUSY | 0xdead000 | __x)); \
+}
 
 /* Platform defined trace code */
 #define platform_trace_point(__x) \
-- 
2.7.4



More information about the Sound-open-firmware mailing list