diff options
author | Dean Sanner <dsanner@us.ibm.com> | 2012-11-29 15:16:14 -0600 |
---|---|---|
committer | Dean Sanner <dsanner@us.ibm.com> | 2012-12-12 21:48:03 -0600 |
commit | e907de9748a821c4f2e05c65f5204507a60e7a6d (patch) | |
tree | 6c552ad7b9d44f7eae9394e49e6e275c924e2818 /src/usr/mbox/mailboxsp.C | |
parent | ca616b5527eaf80300fde96fa5ffd42c2160e071 (diff) | |
download | talos-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.C | 18 |
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 |