summaryrefslogtreecommitdiffstats
path: root/src/occ_405/firdata/ast_mboxdd.c
diff options
context:
space:
mode:
authorBill Hoffa <wghoffa@us.ibm.com>2017-06-09 15:54:47 -0500
committerWilliam A. Bryan <wilbryan@us.ibm.com>2017-07-21 15:25:31 -0400
commitc4b8c5c8953c984dc4908959b002be836a885dee (patch)
tree7d31332d5d0f7356da069f201e334d20a4d46e54 /src/occ_405/firdata/ast_mboxdd.c
parent237557e36673c70772d163913581cb9dfd83c96d (diff)
downloadtalos-occ-c4b8c5c8953c984dc4908959b002be836a885dee.tar.gz
talos-occ-c4b8c5c8953c984dc4908959b002be836a885dee.zip
rt_xstop_analysis: initial commit to get pnor acceses working
Change-Id: I1d0e07bfbbc206b9ade87befdb0d86c5bcc4385a Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/43045 Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com> Reviewed-by: ILYA SMIRNOV <ismirno@us.ibm.com> Reviewed-by: Brian J. Stegmiller <bjs@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: William A. Bryan <wilbryan@us.ibm.com>
Diffstat (limited to 'src/occ_405/firdata/ast_mboxdd.c')
-rw-r--r--src/occ_405/firdata/ast_mboxdd.c63
1 files changed, 12 insertions, 51 deletions
diff --git a/src/occ_405/firdata/ast_mboxdd.c b/src/occ_405/firdata/ast_mboxdd.c
index 4541a76..064bcca 100644
--- a/src/occ_405/firdata/ast_mboxdd.c
+++ b/src/occ_405/firdata/ast_mboxdd.c
@@ -35,20 +35,6 @@
#include <norflash.h>
#include <ast_mboxdd.h>
#include <lpc.h>
-extern int TRACE_LPC;
-int TRACE_MBOX = 0;
-
-/*****************************************************************************/
-/* C o n s t a n t s */
-/*****************************************************************************/
-
-/*****************************************************************************/
-/* G l o b a l s */
-/*****************************************************************************/
-
-/*****************************************************************************/
-/* M e t h o d s */
-/*****************************************************************************/
errorHndl_t writeRegSIO(uint8_t i_regAddr, uint8_t i_data)
{
@@ -110,7 +96,7 @@ errorHndl_t mboxOut(uint64_t i_addr, uint8_t i_byte)
errorHndl_t mboxIn(uint64_t i_addr, uint8_t *o_byte)
{
- size_t len = sizeof(o_byte);
+ size_t len = sizeof(uint8_t);
return lpc_read( LPC_TRANS_IO,
i_addr + MBOX_IO_BASE,
@@ -120,15 +106,13 @@ errorHndl_t mboxIn(uint64_t i_addr, uint8_t *o_byte)
errorHndl_t doMessage( astMbox_t *io_mbox, mboxMessage_t *io_msg )
{
- uint8_t* l_data = ((uint8_t*)((char*)&io_msg));
+ uint8_t* l_data = (uint8_t*)io_msg;
errorHndl_t l_err = NO_ERROR;
uint8_t l_stat1;
- uint8_t l_flags;
uint32_t l_loops = 0;
bool l_prot_error = false;
int i;
- TRAC_INFO( "doMessage(0x%02x)", io_msg->iv_cmd );
io_msg->iv_seq = io_mbox->iv_mboxMsgSeq++;
do
@@ -160,8 +144,6 @@ errorHndl_t doMessage( astMbox_t *io_mbox, mboxMessage_t *io_msg )
break;
}
- TRAC_INFO( "Command sent, waiting for response...");
-
/* Wait for response */
while ( l_loops++ < MBOX_MAX_RESP_WAIT_US && !l_err )
{
@@ -169,13 +151,7 @@ errorHndl_t doMessage( astMbox_t *io_mbox, mboxMessage_t *io_msg )
if ( l_err )
{
- break;
- }
-
- l_err = mboxIn(MBOX_FLAG_REG, &l_flags);
-
- if ( l_err )
- {
+ TRAC_ERR("doMessage error from MBOX_STATUS_1");
break;
}
@@ -183,29 +159,26 @@ errorHndl_t doMessage( astMbox_t *io_mbox, mboxMessage_t *io_msg )
{
break;
}
-
sleep(1000);
}
if ( l_err )
{
- TRAC_INFO( "Got error waiting for response !");
+ TRAC_ERR( "Got error waiting for response !");
break;
}
if ( !(l_stat1 & MBOX_STATUS1_RESP) )
{
- TRAC_INFO( "Timeout waiting for response !");
+ TRAC_ERR( "Timeout waiting for response !");
// Don't try to interrupt the BMC anymore
l_err = mboxOut(MBOX_HOST_CTRL, 0);
-
if ( l_err)
{
//Note the command failed
- TRAC_INFO( "Error communicating with MBOX daemon");
- TRAC_INFO( "Mbox status 1 reg: %x", l_stat1);
- TRAC_INFO( "Mbox flag reg: %x", l_flags);
+ TRAC_ERR( "Error communicating with MBOX daemon");
+ TRAC_ERR( "Mbox status 1 reg: %x", l_stat1);
}
// Tell the code below that we generated the error
@@ -216,10 +189,9 @@ errorHndl_t doMessage( astMbox_t *io_mbox, mboxMessage_t *io_msg )
/* Clear status */
l_err = mboxOut(MBOX_STATUS_1, MBOX_STATUS1_RESP);
-
if (l_err)
{
- TRAC_INFO( "Got error clearing status");
+ TRAC_ERR( "Got error clearing status");
break;
}
@@ -228,8 +200,6 @@ errorHndl_t doMessage( astMbox_t *io_mbox, mboxMessage_t *io_msg )
uint8_t old_seq = io_msg->iv_seq;
// Read response
- TRAC_INFO( "Reading response data...");
-
for (i = 0; i < BMC_MBOX_DATA_REGS && !l_err; i++)
{
l_err = mboxIn(i, &l_data[i]);
@@ -237,27 +207,21 @@ errorHndl_t doMessage( astMbox_t *io_mbox, mboxMessage_t *io_msg )
if ( l_err )
{
- TRAC_INFO( "Got error reading response !");
+ TRAC_ERR( "Got error reading response !");
break;
}
- TRAC_INFO( "Message: cmd:%02x seq:%02x a:%02x %02x %02x %02x %02x..resp:%02x",
- io_msg->iv_cmd, io_msg->iv_seq, io_msg->iv_args[0],
- io_msg->iv_args[1], io_msg->iv_args[2], io_msg->iv_args[3],
- io_msg->iv_args[4], io_msg->iv_resp);
-
if (old_seq != io_msg->iv_seq)
{
- TRAC_INFO( "bad sequence number in mbox message, got %d want %d",
+ TRAC_ERR( "bad sequence number in mbox message, got %d want %d",
io_msg->iv_seq, old_seq);
-
l_err = -1;
break;
}
if (io_msg->iv_resp != MBOX_R_SUCCESS)
{
- TRAC_INFO( "BMC mbox command failed with err %d",
+ TRAC_ERR( "BMC mbox command failed with err %d",
io_msg->iv_resp);
l_err = -1;
// Tell code below that we generated the error (not an LPC error)
@@ -271,10 +235,9 @@ errorHndl_t doMessage( astMbox_t *io_mbox, mboxMessage_t *io_msg )
// If we got an LPC error, commit it and generate our own
if ( l_err && !l_prot_error )
{
+ l_err = -1;
}
- TRAC_INFO( "doMessage() resp=0x%02x",
- io_msg->iv_resp );
return l_err;
}
@@ -282,8 +245,6 @@ errorHndl_t initializeMbox(void)
{
errorHndl_t l_errl = NO_ERROR;
- TRAC_INFO("initializeMBOX()");
-
do
{
size_t reg_size = sizeof(uint8_t);
OpenPOWER on IntegriCloud