From: Jerry Van Baren <gvb.uboot@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot-Users] [PATCH libfdt 1/3] Fix errors when CONFIG_OF_LIBFDT is enabled
Date: Sat, 26 May 2007 08:50:58 -0400 [thread overview]
Message-ID: <20070526125058.GB626@cideas.com> (raw)
Several node strings were not correct (trailing slashes and properties
in the strings)
Added setting of the timebase-frequency (if OF_TBCLK is defined).
Added more error printouts.
Signed-off-by: Gerald Van Baren <vanbaren@cideas.com>
---
Kim:
Please ack/nack.
Thanks,
gvb
cpu/mpc83xx/cpu.c | 63 +++++++++++++++++++++++++++++++++++++----------------
1 files changed, 44 insertions(+), 19 deletions(-)
diff --git a/cpu/mpc83xx/cpu.c b/cpu/mpc83xx/cpu.c
index 01d4dd6..42c32c3 100644
--- a/cpu/mpc83xx/cpu.c
+++ b/cpu/mpc83xx/cpu.c
@@ -337,7 +337,7 @@ static int fdt_set_eth0(void *fdt, int nodeoffset, const char *name, bd_t *bd)
if (fdt_get_property(fdt, nodeoffset, name, 0)) {
return fdt_setprop(fdt, nodeoffset, name, bd->bi_enetaddr, 6);
}
- return -FDT_ERR_NOTFOUND;
+ return 0; /* doesn't exist, but is not a problem. */
}
#ifdef CONFIG_HAS_ETH1
/* second onboard ethernet port */
@@ -349,7 +349,7 @@ static int fdt_set_eth1(void *fdt, int nodeoffset, const char *name, bd_t *bd)
if (fdt_get_property(fdt, nodeoffset, name, 0)) {
return fdt_setprop(fdt, nodeoffset, name, bd->bi_enet1addr, 6);
}
- return -FDT_ERR_NOTFOUND;
+ return 0; /* doesn't exist, but is not a problem. */
}
#endif
#ifdef CONFIG_HAS_ETH2
@@ -362,7 +362,7 @@ static int fdt_set_eth2(void *fdt, int nodeoffset, const char *name, bd_t *bd)
if (fdt_get_property(fdt, nodeoffset, name, 0)) {
return fdt_setprop(fdt, nodeoffset, name, bd->bi_enet2addr, 6);
}
- return -FDT_ERR_NOTFOUND;
+ return 0; /* doesn't exist, but is not a problem. */
}
#endif
#ifdef CONFIG_HAS_ETH3
@@ -375,7 +375,7 @@ static int fdt_set_eth3(void *fdt, int nodeoffset, const char *name, bd_t *bd)
if (fdt_get_property(fdt, nodeoffset, name, 0)) {
return fdt_setprop(fdt, nodeoffset, name, bd->bi_enet3addr, 6);
}
- return -FDT_ERR_NOTFOUND;
+ return 0; /* doesn't exist, but is not a problem. */
}
#endif
@@ -389,6 +389,19 @@ static int fdt_set_busfreq(void *fdt, int nodeoffset, const char *name, bd_t *bd
return fdt_setprop(fdt, nodeoffset, name, &tmp, sizeof(tmp));
}
+#ifdef OF_TBCLK
+static int fdt_set_tbfreq(void *fdt, int nodeoffset, const char *name, bd_t *bd)
+{
+ u32 tmp;
+ /*
+ * Create or update the property.
+ */
+ tmp = cpu_to_be32(OF_TBCLK);
+ return fdt_setprop(fdt, nodeoffset, name, &tmp, sizeof(tmp));
+}
+#endif
+
+
/*
* Fixups to the fdt. If "create" is TRUE, the node is created
* unconditionally. If "create" is FALSE, the node is updated
@@ -399,19 +412,25 @@ static const struct {
char *prop;
int (*set_fn)(void *fdt, int nodeoffset, const char *name, bd_t *bd);
} fixup_props[] = {
+#ifdef OF_TBCLK
{ "/cpus/" OF_CPU,
- "bus-frequency",
- fdt_set_busfreq
+ "timebase-frequency",
+ fdt_set_tbfreq
},
- { "/cpus/" OF_SOC,
+#endif
+ { "/cpus/" OF_CPU,
"bus-frequency",
fdt_set_busfreq
},
- { "/" OF_SOC "/serial at 4500/",
+ { "/cpus/" OF_CPU,
+ "clock-frequency",
+ fdt_set_busfreq
+ },
+ { "/" OF_SOC "/serial at 4500",
"clock-frequency",
fdt_set_busfreq
},
- { "/" OF_SOC "/serial at 4600/",
+ { "/" OF_SOC "/serial at 4600",
"clock-frequency",
fdt_set_busfreq
},
@@ -437,20 +456,20 @@ static const struct {
#endif
#ifdef CONFIG_UEC_ETH1
#if CFG_UEC1_UCC_NUM == 0 /* UCC1 */
- { "/" OF_QE "/ucc at 2000/mac-address",
+ { "/" OF_QE "/ucc at 2000",
"mac-address",
fdt_set_eth0
},
- { "/" OF_QE "/ucc at 2000/mac-address",
+ { "/" OF_QE "/ucc at 2000",
"local-mac-address",
fdt_set_eth0
},
#elif CFG_UEC1_UCC_NUM == 2 /* UCC3 */
- { "/" OF_QE "/ucc at 2200/mac-address",
+ { "/" OF_QE "/ucc at 2200",
"mac-address",
fdt_set_eth0
},
- { "/" OF_QE "/ucc at 2200/mac-address",
+ { "/" OF_QE "/ucc at 2200",
"local-mac-address",
fdt_set_eth0
},
@@ -458,20 +477,20 @@ static const struct {
#endif
#ifdef CONFIG_UEC_ETH2
#if CFG_UEC2_UCC_NUM == 1 /* UCC2 */
- { "/" OF_QE "/ucc at 3000/mac-address",
+ { "/" OF_QE "/ucc at 3000",
"mac-address",
fdt_set_eth1
},
- { "/" OF_QE "/ucc at 3000/mac-address",
+ { "/" OF_QE "/ucc at 3000",
"local-mac-address",
fdt_set_eth1
},
#elif CFG_UEC1_UCC_NUM == 3 /* UCC4 */
- { "/" OF_QE "/ucc at 3200/mac-address",
+ { "/" OF_QE "/ucc at 3200",
"mac-address",
fdt_set_eth1
},
- { "/" OF_QE "/ucc at 3200/mac-address",
+ { "/" OF_QE "/ucc at 3200",
"local-mac-address",
fdt_set_eth1
},
@@ -489,12 +508,18 @@ ft_cpu_setup(void *blob, bd_t *bd)
for (j = 0; j < (sizeof(fixup_props) / sizeof(fixup_props[0])); j++) {
nodeoffset = fdt_find_node_by_path(fdt, fixup_props[j].node);
if (nodeoffset >= 0) {
- err = fixup_props[j].set_fn(blob, nodeoffset, fixup_props[j].prop, bd);
+ err = fixup_props[j].set_fn(
+ blob, nodeoffset, fixup_props[j].prop, bd);
if (err < 0)
- printf("set_fn/libfdt: %s %s returned %s\n",
+ printf("set_fn(%s, %s) returned %s\n",
fixup_props[j].node,
fixup_props[j].prop,
fdt_strerror(err));
+ } else {
+ printf("fdt_find_node_by_path(%s) returned %s\n",
+ fixup_props[j].node,
+ fdt_strerror(nodeoffset));
+
}
}
}
--
1.4.4.4
next reply other threads:[~2007-05-26 12:50 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-26 12:50 Jerry Van Baren [this message]
2007-05-29 21:05 ` [U-Boot-Users] [PATCH libfdt 1/3] Fix errors when CONFIG_OF_LIBFDT is enabled Kim Phillips
2007-05-30 2:24 ` Jerry Van Baren
2007-05-30 15:44 ` Kim Phillips
2007-05-30 16:25 ` Jerry Van Baren
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20070526125058.GB626@cideas.com \
--to=gvb.uboot@gmail.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.