aboutsummaryrefslogtreecommitdiff
path: root/src/vendorcode/google/chromeos/chromeos.h
diff options
context:
space:
mode:
authorAaron Durbin <adurbin@chromium.org>2014-02-14 00:30:04 -0600
committerAaron Durbin <adurbin@google.com>2014-03-11 21:37:36 +0100
commit06ece7de93a6e0820fa21a86d2312c6fd9209aea (patch)
tree301b69639b3d953ca1a05f985457618a240a9073 /src/vendorcode/google/chromeos/chromeos.h
parente7e78d61a96072ba619f95eba9762a0ca50abe15 (diff)
chromeos: provide option to dynamically allocate ram oops buffer
Fixing the location of the ram oops buffer can lead to certain kernel and boot loaders being confused when there is a ram reservation low in the address space. Alternatively provide a mechanism to allocate the ram oops buffer in cbmem. As cbmem is usually high in the address space it avoids low reservation confusion. The patch uncondtionally provides a GOOG9999 ACPI device with a single memory resource describing the memory region used for the ramoops region. BUG=None BRANCH=baytrail,haswell TEST=Built and booted with and w/o dynamic ram oops. With the corresponding kernel change things behave correctly. Change-Id: Ide2bb4434768c9f9b90e125adae4324cb1d2d073 Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: http://review.coreboot.org/5257 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Diffstat (limited to 'src/vendorcode/google/chromeos/chromeos.h')
-rw-r--r--src/vendorcode/google/chromeos/chromeos.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/vendorcode/google/chromeos/chromeos.h b/src/vendorcode/google/chromeos/chromeos.h
index 7fe8f06c08..2a781effab 100644
--- a/src/vendorcode/google/chromeos/chromeos.h
+++ b/src/vendorcode/google/chromeos/chromeos.h
@@ -51,4 +51,19 @@ void init_chromeos(int bootmode);
int vboot_get_handoff_info(void **addr, uint32_t *size);
#endif
+#if CONFIG_CHROMEOS_RAMOOPS
+#include "gnvs.h"
+struct device;
+
+void chromeos_ram_oops_init(chromeos_acpi_t *chromeos);
+#if CONFIG_CHROMEOS_RAMOOPS_DYNAMIC
+static inline void chromeos_reserve_ram_oops(struct device *dev, int idx) {}
+#else /* CONFIG_CHROMEOS_RAMOOPS_DYNAMIC */
+void chromeos_reserve_ram_oops(struct device *dev, int idx);
+#endif /* CONFIG_CHROMEOS_RAMOOPS_DYNAMIC */
+#else /* !CONFIG_CHROMEOS_RAMOOPS */
+static inline void chromeos_ram_oops_init(chromeos_acpi_t *chromeos) {}
+static inline void chromeos_reserve_ram_oops(struct device *dev, int idx) {}
+#endif /* CONFIG_CHROMEOS_RAMOOPS */
+
#endif