build bot (Jenkins) has posted comments on this change. ( https://review.coreboot.org/25632 )
Change subject: lib: Raw import FDT devicetree from depthcharge
......................................................................
Patch Set 2:
Build Successful
https://qa.coreboot.org/job/coreboot-gerrit/70443/ : SUCCESS
https://qa.coreboot.org/job/coreboot-checkpatch/24661/ : SUCCESS
--
To view, visit https://review.coreboot.org/25632
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: Ida75d4786eae38d84bfc71bf53573dafca8eda40
Gerrit-Change-Number: 25632
Gerrit-PatchSet: 2
Gerrit-Owner: Patrick Rudolph <patrick.rudolph(a)9elements.com>
Gerrit-Reviewer: David Hendricks <david.hendricks(a)gmail.com>
Gerrit-Reviewer: Julius Werner <jwerner(a)chromium.org>
Gerrit-Reviewer: Paul Menzel <paulepanter(a)users.sourceforge.net>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-Comment-Date: Fri, 20 Apr 2018 09:56:36 +0000
Gerrit-HasComments: No
Gerrit-HasLabels: No
build bot (Jenkins) has posted comments on this change. ( https://review.coreboot.org/25523 )
Change subject: lib/devicetree: Integrate flattened devicetree support
......................................................................
Patch Set 8:
Build Successful
https://qa.coreboot.org/job/coreboot-gerrit/70441/ : SUCCESS
https://qa.coreboot.org/job/coreboot-checkpatch/24662/ : SUCCESS
--
To view, visit https://review.coreboot.org/25523
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I6e6cd9f78fb402bd54d684097326d26eb78d552a
Gerrit-Change-Number: 25523
Gerrit-PatchSet: 8
Gerrit-Owner: Patrick Rudolph <patrick.rudolph(a)9elements.com>
Gerrit-Reviewer: David Hendricks <david.hendricks(a)gmail.com>
Gerrit-Reviewer: Jonathan Neuschäfer <j.neuschaefer(a)gmx.net>
Gerrit-Reviewer: Julius Werner <jwerner(a)chromium.org>
Gerrit-Reviewer: Patrick Rudolph <patrick.rudolph(a)9elements.com>
Gerrit-Reviewer: Paul Menzel <paulepanter(a)users.sourceforge.net>
Gerrit-Reviewer: build bot (Jenkins) <no-reply(a)coreboot.org>
Gerrit-Comment-Date: Fri, 20 Apr 2018 09:52:41 +0000
Gerrit-HasComments: No
Gerrit-HasLabels: No
Patrick Rudolph has uploaded this change for review. ( https://review.coreboot.org/25747
Change subject: lib/bootmem: Add method to walk OS POV memory tables
......................................................................
lib/bootmem: Add method to walk OS POV memory tables
Add method to walk memory tables from OS point of view.
The tables don't change when modifiying bootmem entries and doesn't contain
bootmem specific tags.
Change-Id: Iee332a9821d12a7d9a684063b77b0502febd8d7d
Signed-off-by: Patrick Rudolph <patrick.rudolph(a)9elements.com>
---
M src/include/bootmem.h
M src/lib/bootmem.c
2 files changed, 40 insertions(+), 12 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/47/25747/1
diff --git a/src/include/bootmem.h b/src/include/bootmem.h
index b95e383..4026c5c 100644
--- a/src/include/bootmem.h
+++ b/src/include/bootmem.h
@@ -71,6 +71,16 @@
typedef bool (*range_action_t)(const struct range_entry *r, void *arg);
/**
+ * Walk memory tables from OS point of view and call the provided function,
+ * for every region. The caller has to return false to break out of the loop any
+ * time, or return true to continue.
+ *
+ * @param action The function to call for each memory range.
+ * @param Pointer passed to function @action. Set to NULL if unused.
+ */
+void bootmem_walk_os_mem(range_action_t action, void *arg);
+
+/**
* Walk memory tables and call the provided function, for every region.
* The caller has to return false to break out of the loop any time, or
* return true to continue.
diff --git a/src/lib/bootmem.c b/src/lib/bootmem.c
index daad9a8..efb8c82 100644
--- a/src/lib/bootmem.c
+++ b/src/lib/bootmem.c
@@ -25,6 +25,7 @@
static int initialized;
static int table_written;
static struct memranges bootmem;
+static struct memranges bootmem_os;
static int bootmem_is_initialized(void)
{
@@ -65,6 +66,17 @@
}
}
+static void bootmem_convert_ranges(void)
+{
+ /**
+ * Convert BM_MEM_RAMSTAGE and BM_MEM_PAYLOAD to BM_MEM_RAM and
+ * merge ranges. The payload doesn't care about memory used by firmware.
+ */
+ memranges_clone(&bootmem_os, &bootmem);
+ memranges_update_tag(&bootmem_os, BM_MEM_RAMSTAGE, BM_MEM_RAM);
+ memranges_update_tag(&bootmem_os, BM_MEM_PAYLOAD, BM_MEM_RAM);
+}
+
static void bootmem_init(void)
{
const unsigned long cacheable = IORESOURCE_CACHEABLE;
@@ -90,6 +102,8 @@
bootmem_arch_add_ranges();
bootmem_platform_add_ranges();
+
+ bootmem_convert_ranges();
}
void bootmem_add_range(uint64_t start, uint64_t size,
@@ -118,22 +132,13 @@
{
const struct range_entry *r;
struct lb_memory_range *lb_r;
- struct memranges bm;
lb_r = &mem->map[0];
bootmem_init();
bootmem_dump_ranges();
- /**
- * Convert BM_MEM_RAMSTAGE and BM_MEM_PAYLOAD to BM_MEM_RAM and
- * merge ranges. The payload doesn't care about memory used by firmware.
- */
- memranges_clone(&bm, &bootmem);
- memranges_update_tag(&bm, BM_MEM_RAMSTAGE, BM_MEM_RAM);
- memranges_update_tag(&bm, BM_MEM_PAYLOAD, BM_MEM_RAM);
-
- memranges_each_entry(r, &bm) {
+ memranges_each_entry(r, &bootmem_os) {
lb_r->start = pack_lb64(range_entry_base(r));
lb_r->size = pack_lb64(range_entry_size(r));
lb_r->type = bootmem_to_lb_tag(range_entry_tag(r));
@@ -142,8 +147,6 @@
mem->size += sizeof(struct lb_memory_range);
}
- memranges_teardown(&bm);
-
table_written = 1;
}
@@ -190,6 +193,21 @@
}
}
+void bootmem_walk_os_mem(range_action_t action, void *arg)
+{
+ const struct range_entry *r;
+
+ if (!bootmem_is_initialized()) {
+ printk(BIOS_ERR, "%s: lib unitialized!\n", __func__);
+ return;
+ }
+
+ memranges_each_entry(r, &bootmem_os) {
+ if (!action(r, arg))
+ return;
+ }
+}
+
void bootmem_walk(range_action_t action, void *arg)
{
const struct range_entry *r;
--
To view, visit https://review.coreboot.org/25747
To unsubscribe, or for help writing mail filters, visit https://review.coreboot.org/settings
Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Iee332a9821d12a7d9a684063b77b0502febd8d7d
Gerrit-Change-Number: 25747
Gerrit-PatchSet: 1
Gerrit-Owner: Patrick Rudolph <patrick.rudolph(a)9elements.com>