summaryrefslogtreecommitdiffstats
path: root/src/include/bootloader/bootloader.H
diff options
context:
space:
mode:
authorMarty Gloff <mgloff@us.ibm.com>2015-12-17 10:10:47 -0600
committerStephen Cprek <smcprek@us.ibm.com>2016-02-19 17:06:42 -0600
commitb742fd9b5b3c07129abfa3c099655346f6b1e6a6 (patch)
treef3e3bd027ac048911296cd75b66e06efa0ea2519 /src/include/bootloader/bootloader.H
parent6b3144d3d653cfb3d14cb74598b003cc7c653c73 (diff)
downloadtalos-hostboot-b742fd9b5b3c07129abfa3c099655346f6b1e6a6.tar.gz
talos-hostboot-b742fd9b5b3c07129abfa3c099655346f6b1e6a6.zip
Hostboot Bootloader Infrastructure
New and changed code to provide bootloader infrastructure. Changes to build bootloader and create the image file. Change-Id: Ie400f0ca6954b86e275fd68c9462f8d18eeec98a RTC:127211 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/22856 Tested-by: Jenkins Server Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/include/bootloader/bootloader.H')
-rw-r--r--src/include/bootloader/bootloader.H93
1 files changed, 93 insertions, 0 deletions
diff --git a/src/include/bootloader/bootloader.H b/src/include/bootloader/bootloader.H
new file mode 100644
index 000000000..89b4bd761
--- /dev/null
+++ b/src/include/bootloader/bootloader.H
@@ -0,0 +1,93 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/include/bootloader/bootloader.H $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2015,2016 */
+/* [+] International Business Machines Corp. */
+/* */
+/* */
+/* 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. */
+/* */
+/* IBM_PROLOG_END_TAG */
+
+#ifndef __BOOT_LOADER_H
+#define __BOOT_LOADER_H
+
+/**
+ * @file bootloader.H
+ *
+ * TaskInfo structs for each task that will run.
+ */
+
+#include <builtins.h>
+#include <arch/ppc.H>
+
+extern "C" void task_end_stub();
+
+#define assert(expr) \
+{\
+ if (unlikely(!(expr)))\
+ {\
+ MAGIC_INSTRUCTION(MAGIC_BREAK); /* @TODO RTC:133821 temp bringup */ \
+ task_end_stub();\
+ }\
+}
+
+#define printk(format...)
+
+namespace Bootloader{
+ /** @enum MMIOLoadStoreSizes
+ * @brief List of MMIO Load and Store Sizes.
+ *
+ * These are the sizes (in bytes) for the load and store commands used
+ * to read and write data when handling an MMIO.
+ */
+ enum MMIOLoadStoreSizes
+ {
+ /** BYTESIZE */
+ BYTESIZE = 1,
+ /** WORDSIZE */
+ WORDSIZE = 4,
+ /** DBLWORDSIZE */
+ DBLWORDSIZE = 8
+ };
+
+ /**
+ * @brief Handle MMIO to copy code/data from one location to another
+ *
+ * @param[in] i_srcAddr MMIO address to copy from
+ * @param[in] i_destAddr address to copy to
+ * @param[in] i_size number of bytes to copy
+ * @param[in] i_ld_st_size size of data in ld and st instructions
+ * BYTESIZE => copy 1 byte at a time
+ * WORDSIZE => copy 4 bytes at a time
+ * DBLWORDSIZE => copy 8 bytes at a time
+ */
+ extern void handleMMIO(uint64_t i_srcAddr,
+ uint64_t i_destAddr,
+ uint32_t i_size,
+ MMIOLoadStoreSizes i_ld_st_size);
+
+ /**
+ * @brief Pointer to bootloader scratch space
+ *
+ * Pointer to location in main storage which bootloader uses as
+ * scratch space
+ */
+ extern uint8_t *g_blScratchSpace;
+} // end namespace Bootloader
+
+#endif
OpenPOWER on IntegriCloud