summaryrefslogtreecommitdiffstats
path: root/mboxd_lpc_virtual.cpp
diff options
context:
space:
mode:
authorDeepak Kodihalli <dkodihal@in.ibm.com>2017-07-12 01:06:30 -0500
committerPatrick Williams <patrick@stwcx.xyz>2017-07-19 22:59:37 +0000
commit017e45c3f202116ad09d5abdcaeb88f5b5f52594 (patch)
treebe589e2398aa46815813fc789591b348f5621c58 /mboxd_lpc_virtual.cpp
parent8a89969d635a8ac8f7b21bb673ec03a19d76cd4d (diff)
downloadphosphor-mboxd-017e45c3f202116ad09d5abdcaeb88f5b5f52594.tar.gz
phosphor-mboxd-017e45c3f202116ad09d5abdcaeb88f5b5f52594.zip
vpnor: create hostboot bootloader partition
The hostboot bootloader code doesn't use mbox. It has specific requirements: - The PNOR TOC should be at the 'PNOR end - TOC size - page size' offset. It searches for the TOC here, if not found, the search moves down page by page. - The PNOR should be 64M. The page size and erase block should be 4K. The TOC should be 32K. Copy what the bootloader expects to the LPC memory when mboxd starts up. The same needs to be done in the case of an mbox reset (irrespective of where the reset comes from). Skiboot expects that the TOC should be at offset 0, but it uses mbox to read the TOC. So this commit doesn't impact skiboot requirements. Change-Id: I7de556dccfea85f2faa5f401177006a3a562494e Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
Diffstat (limited to 'mboxd_lpc_virtual.cpp')
-rw-r--r--mboxd_lpc_virtual.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/mboxd_lpc_virtual.cpp b/mboxd_lpc_virtual.cpp
new file mode 100644
index 0000000..802c761
--- /dev/null
+++ b/mboxd_lpc_virtual.cpp
@@ -0,0 +1,34 @@
+/*
+ * Mailbox Daemon LPC Helpers
+ *
+ * Copyright 2017 IBM
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include "mbox.h"
+#include "mboxd_lpc.h"
+#include "mboxd_pnor_partition_table.h"
+
+/*
+ * reset_lpc() - Reset the lpc bus mapping
+ * @context: The mbox context pointer
+ *
+ * Return 0 on success otherwise negative error code
+ */
+int reset_lpc(struct mbox_context *context)
+{
+ vpnor_copy_bootloader_partition(context);
+ return point_to_memory(context);
+}
OpenPOWER on IntegriCloud