The implementation of of_translate_one() was taken from the one in
Linux kernel drivers/of/address.c, and the Linux one added a quirk
for Apple Macs that don't have the <ranges> property in the parent
node. Since U-Boot does not support Apple Macs, remove the comment
block and adhere to the spec to abort the translation.

Signed-off-by: Bin Meng <bmeng...@gmail.com>
---

 drivers/core/of_addr.c | 24 ++++++------------------
 1 file changed, 6 insertions(+), 18 deletions(-)

diff --git a/drivers/core/of_addr.c b/drivers/core/of_addr.c
index 5bc6ca1..36cdfd3 100644
--- a/drivers/core/of_addr.c
+++ b/drivers/core/of_addr.c
@@ -173,25 +173,13 @@ static int of_translate_one(const struct device_node 
*parent,
        int rone;
        u64 offset = OF_BAD_ADDR;
 
-       /*
-        * Normally, an absence of a "ranges" property means we are
-        * crossing a non-translatable boundary, and thus the addresses
-        * below the current cannot be converted to CPU physical ones.
-        * Unfortunately, while this is very clear in the spec, it's not
-        * what Apple understood, and they do have things like /uni-n or
-        * /ht nodes with no "ranges" property and a lot of perfectly
-        * useable mapped devices below them. Thus we treat the absence of
-        * "ranges" as equivalent to an empty "ranges" property which means
-        * a 1:1 translation at that level. It's up to the caller not to try
-        * to translate addresses that aren't supposed to be translated in
-        * the first place. --BenH.
-        *
-        * As far as we know, this damage only exists on Apple machines, so
-        * This code is only enabled on powerpc. --gcl
-        */
-
        ranges = of_get_property(parent, rprop, &rlen);
-       if (ranges == NULL || rlen == 0) {
+       if (ranges == NULL) {
+               debug("no ranges; cannot translate\n");
+               return 1;
+       }
+
+       if (rlen == 0) {
                offset = of_read_number(addr, na);
                memset(addr, 0, pna * 4);
                debug("empty ranges; 1:1 translation\n");
-- 
2.7.4

Reply via email to