|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
From 6a09f5e80038570b15f81fdb1e5bde897e01868a Mon Sep 17 00:00:00 2001
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
From: Rob Clark <robdclark@gmail.com>
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
Date: Fri, 23 Jun 2017 15:36:33 -0400
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
Subject: [PATCH] dm: core: also parse chosen node
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
This is the node that would contain, for example, the framebuffer setup
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
by an earlier stage.
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
Signed-off-by: Rob Clark <robdclark@gmail.com>
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
---
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
arch/sandbox/dts/test.dts | 7 +++++++
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
drivers/core/root.c | 12 ++++++++++++
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
test/dm/bus.c | 2 +-
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
test/dm/test-fdt.c | 2 +-
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
4 files changed, 21 insertions(+), 2 deletions(-)
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
diff --git a/arch/sandbox/dts/test.dts b/arch/sandbox/dts/test.dts
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
index e67d428eb2..3f9e788e6c 100644
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
--- a/arch/sandbox/dts/test.dts
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
+++ b/arch/sandbox/dts/test.dts
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
@@ -478,6 +478,13 @@
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
wdt0: wdt@0 {
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
compatible = "sandbox,wdt";
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
};
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
+
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
+ chosen {
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
+ chosen-test {
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
+ compatible = "denx,u-boot-fdt-test";
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
+ reg = <9 1>;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
+ };
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
+ };
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
};
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
#include "sandbox_pmic.dtsi"
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
diff --git a/drivers/core/root.c b/drivers/core/root.c
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
index 976e2c4fdd..5a1c5994f6 100644
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
--- a/drivers/core/root.c
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
+++ b/drivers/core/root.c
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
@@ -266,6 +266,18 @@ static int dm_scan_fdt_node(struct udevice *parent, const void *blob,
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
for (offset = fdt_first_subnode(blob, offset);
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
offset > 0;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
offset = fdt_next_subnode(blob, offset)) {
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
+
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
+ /* "chosen" node isn't a device itself but may contain some: */
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
+ if (!strcmp(fdt_get_name(blob, offset, NULL), "chosen")) {
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
+ pr_debug("parsing subnodes of \"chosen\"\n");
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
+
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
+ err = dm_scan_fdt_node(parent, blob, offset,
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
+ pre_reloc_only);
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
+ if (err && !ret)
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
+ ret = err;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
+ continue;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
+
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
if (pre_reloc_only &&
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
!dm_fdt_pre_reloc(blob, offset))
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
continue;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
diff --git a/test/dm/bus.c b/test/dm/bus.c
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
index 7006d4163d..1da398ae3a 100644
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
--- a/test/dm/bus.c
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
+++ b/test/dm/bus.c
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
@@ -105,7 +105,7 @@ UCLASS_DRIVER(testbus) = {
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
/* Test that we can probe for children */
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
static int dm_test_bus_children(struct unit_test_state *uts)
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
{
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
- int num_devices = 6;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
+ int num_devices = 7;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
struct udevice *bus;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
struct uclass *uc;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
diff --git a/test/dm/test-fdt.c b/test/dm/test-fdt.c
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
index dcc2ef8b65..920ccbf016 100644
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
--- a/test/dm/test-fdt.c
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
+++ b/test/dm/test-fdt.c
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
@@ -167,7 +167,7 @@ int dm_check_devices(struct unit_test_state *uts, int num_devices)
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
/* Test that FDT-based binding works correctly */
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
static int dm_test_fdt(struct unit_test_state *uts)
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
{
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
- const int num_devices = 6;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
+ const int num_devices = 7;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
struct udevice *dev;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
struct uclass *uc;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
int ret;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
From 310feda7f7f40afbb26a158183e16c2c46eea28a Mon Sep 17 00:00:00 2001
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
From: Rob Clark <robdclark@gmail.com>
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
Date: Thu, 3 Aug 2017 09:52:14 -0400
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
Subject: [PATCH] fdtdec: allow board to provide fdt for CONFIG_OF_SEPARATE
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
Similar to CONFIG_OF_BOARD, but in this case the fdt is still built by
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
u-boot build. This allows the board to patch the fdt, etc.
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
In the specific case of dragonboard 410c, we pass the u-boot generated
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
fdt to the previous stage of bootloader (by embedding it in the
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
u-boot.img that is loaded by lk/aboot), which patches the fdt and passes
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
it back to u-boot.
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
Signed-off-by: Rob Clark <robdclark@gmail.com>
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
---
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
include/fdtdec.h | 3 ++-
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
lib/fdtdec.c | 35 +++++++++++++++++++++++------------
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
2 files changed, 25 insertions(+), 13 deletions(-)
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
diff --git a/include/fdtdec.h b/include/fdtdec.h
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
index 1ba02be8e1..c5acb8dae1 100644
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
--- a/include/fdtdec.h
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
+++ b/include/fdtdec.h
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
@@ -988,7 +988,8 @@ int fdtdec_setup(void);
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
/**
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
* Board-specific FDT initialization. Returns the address to a device tree blob.
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
- * Called when CONFIG_OF_BOARD is defined.
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
+ * Called when CONFIG_OF_BOARD is defined, or if CONFIG_OF_SEPARATE is defined
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
+ * and the board implements it.
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
*/
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
void *board_fdt_blob_setup(void);
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
diff --git a/lib/fdtdec.c b/lib/fdtdec.c
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
index 45f3fe7baf..15bd9b2572 100644
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
--- a/lib/fdtdec.c
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
+++ b/lib/fdtdec.c
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
@@ -1258,6 +1258,28 @@ static int uncompress_blob(const void *src, ulong sz_src, void **dstp)
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
# endif
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
#endif
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
+#ifdef CONFIG_OF_SEPARATE
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
+/*
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
+ * For CONFIG_OF_SEPARATE, the board may optionally implement this to
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
+ * provide and/or fixup the fdt.
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
+ */
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
+__weak void *board_fdt_blob_setup(void)
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
+{
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
+ void *fdt_blob = NULL;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
+#ifdef CONFIG_SPL_BUILD
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
+ /* FDT is at end of BSS unless it is in a different memory region */
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
+ if (IS_ENABLED(CONFIG_SPL_SEPARATE_BSS))
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
+ fdt_blob = (ulong *)&_image_binary_end;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
+ else
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
+ fdt_blob = (ulong *)&__bss_end;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
+#else
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
+ /* FDT is at end of image */
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
+ fdt_blob = (ulong *)&_end;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
+#endif
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
+ return fdt_blob;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
+}
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
+#endif
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
+
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
int fdtdec_setup(void)
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
{
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
#if CONFIG_IS_ENABLED(OF_CONTROL)
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
@@ -1267,18 +1289,7 @@ int fdtdec_setup(void)
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
# ifdef CONFIG_OF_EMBED
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
/* Get a pointer to the FDT */
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
gd->fdt_blob = __dtb_dt_begin;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
-# elif defined CONFIG_OF_SEPARATE
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
-# ifdef CONFIG_SPL_BUILD
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
- /* FDT is at end of BSS unless it is in a different memory region */
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
- if (IS_ENABLED(CONFIG_SPL_SEPARATE_BSS))
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
- gd->fdt_blob = (ulong *)&_image_binary_end;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
- else
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
- gd->fdt_blob = (ulong *)&__bss_end;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
-# else
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
- /* FDT is at end of image */
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
- gd->fdt_blob = (ulong *)&_end;
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
-# endif
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
-# elif defined(CONFIG_OF_BOARD)
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
+# elif defined(CONFIG_OF_SEPARATE) || defined(CONFIG_OF_BOARD)
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
051d54d |
/* Allow the board to override the fdt address. */
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
gd->fdt_blob = board_fdt_blob_setup();
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
# elif defined(CONFIG_OF_HOSTFILE)
|
|
![](https://seccdn.libravatar.org/avatar/4e8d68fe76de63043f2c89e9e363e4dc5af5775e488004cc7a8398c86381b072?s=16&d=retro) |
c09f014 |
|