summaryrefslogtreecommitdiffstats
path: root/src/usr/mbox/mailboxsp.C
diff options
context:
space:
mode:
authorDean Sanner <dsanner@us.ibm.com>2012-11-29 15:16:14 -0600
committerDean Sanner <dsanner@us.ibm.com>2012-12-12 21:48:03 -0600
commite907de9748a821c4f2e05c65f5204507a60e7a6d (patch)
tree6c552ad7b9d44f7eae9394e49e6e275c924e2818 /src/usr/mbox/mailboxsp.C
parentca616b5527eaf80300fde96fa5ffd42c2160e071 (diff)
downloadtalos-hostboot-e907de9748a821c4f2e05c65f5204507a60e7a6d.tar.gz
talos-hostboot-e907de9748a821c4f2e05c65f5204507a60e7a6d.zip
Load Hostboot Base from PNOR
Add the SBE and secureboot header to the hostboot base image and enable simics to actually pull the image from PNOR instead of directly stuffing cache from file. Also enables Hostboot to execute from HRMOR of 128MB and updates cit script to handle HRMOR Change-Id: Ie414a5f8e43dadf03538d7435f742b2d79db431b Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/2473 Tested-by: Jenkins Server Reviewed-by: Dean Sanner <dsanner@us.ibm.com>
Diffstat (limited to 'src/usr/mbox/mailboxsp.C')
-rw-r--r--src/usr/mbox/mailboxsp.C18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/usr/mbox/mailboxsp.C b/src/usr/mbox/mailboxsp.C
index 9361e613e..c9b2b9822 100644
--- a/src/usr/mbox/mailboxsp.C
+++ b/src/usr/mbox/mailboxsp.C
@@ -161,7 +161,7 @@ errlHndl_t MailboxSp::_init()
msg_t * msg = msg_allocate();
msg->type = MSG_INITIAL_DMA;
msg->data[0] = 0;
- msg->data[1] = reinterpret_cast<uint64_t>(iv_dmaBuffer.getDmaBufferHead());
+ msg->data[1] =iv_dmaBuffer.toPhysAddr(iv_dmaBuffer.getDmaBufferHead());
msg->extra_data = NULL;
MBOX::send(FSP_MAILBOX_MSGQ,msg);
@@ -446,15 +446,16 @@ void MailboxSp::send_msg(mbox_msg_t * i_msg)
if(payload->extra_data != NULL)
{
memcpy(dma_buffer,payload->extra_data,payload->data[1]);
- iv_msg_to_send.msg_payload.extra_data = dma_buffer;
+ iv_msg_to_send.msg_payload.extra_data =
+ reinterpret_cast<void*>(iv_dmaBuffer.toPhysAddr(dma_buffer));
free(payload->extra_data);
}
else // DMA buffer request from FSP
{
iv_msg_to_send.msg_payload.data[0] = dma_size; // bitmap
- iv_msg_to_send.msg_payload.data[1] =
- reinterpret_cast<uint64_t>(dma_buffer);
+ iv_msg_to_send.msg_payload.data[1] =
+ iv_dmaBuffer.toPhysAddr(dma_buffer);
}
iv_sendq.pop_front();
}
@@ -1151,6 +1152,15 @@ errlHndl_t MailboxSp::handleInterrupt()
if(mbox_status & MBOX_DATA_PENDING)
{
trace_msg("RECV",mbox_msg);
+ //Adjust address back to Virt here if present
+ uint64_t l_dma = reinterpret_cast<uint64_t>(
+ mbox_msg.msg_payload.extra_data);
+ if(l_dma)
+ {
+ mbox_msg.msg_payload.extra_data =
+ iv_dmaBuffer.toVirtAddr(l_dma);
+ }
+
if(mbox_msg.msg_queue_id == HB_MAILBOX_MSGQ)
{
// msg to hb mailbox from fsp mbox
OpenPOWER on IntegriCloud