From: Jerry Van Baren <gerald.vanbaren@ge.com>
To: u-boot@lists.denx.de
Subject: [U-Boot-Users] [PATCH] Move do_fixup* for libfdt into common code
Date: Mon, 05 Nov 2007 07:30:57 -0500 [thread overview]
Message-ID: <472F0D01.8050001@ge.com> (raw)
In-Reply-To: <fa686aa40711032019w38d86357qe13ed02a949d17f5@mail.gmail.com>
Grant Likely wrote:
> On 11/3/07, Kumar Gala <galak@kernel.crashing.org> wrote:
>> Moved the generic fixup handling code out of cpu/mpc5xxx and cpu/mpc8260
>> into common/fdt_support.c and renamed:
>>
>> do_fixup() -> do_fixup_by_path()
>> do_fixup_u32() -> do_fixup_by_path_u32()
>>
>> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
> Acked-by: Grant Likely <grant.likely@secretlab.ca>
>
>> ---
Thanks Kumar and Grant.
This touches (pretty trivially) 82xx too, can I have an "ack" from
Wolfgang as 82xx custodian?
I've been looking at the libfdt upgrades and am getting ready to make a
"testing" branch with Kumar's and other's contributions. These would be
aimed at the next merge window (after 1.3).
Best regards,
gvb
>> Note: this patch is part of the libfdt work and is available:
>> git.kernel.org:/pub/scm/boot/u-boot/galak/u-boot.git libfdt
>>
>> common/fdt_support.c | 23 +++++++++++++++++++++++
>> cpu/mpc5xxx/cpu.c | 40 +++++++++-------------------------------
>> cpu/mpc8260/cpu.c | 30 ++++--------------------------
>> include/fdt_support.h | 4 ++++
>> 4 files changed, 40 insertions(+), 57 deletions(-)
>>
>> diff --git a/common/fdt_support.c b/common/fdt_support.c
>> index 6a5b27a..5ed874d 100644
>> --- a/common/fdt_support.c
>> +++ b/common/fdt_support.c
>> @@ -374,4 +374,27 @@ int fdt_bd_t(void *fdt)
>> }
>> #endif /* ifdef CONFIG_OF_HAS_BD_T */
>>
>> +void do_fixup_by_path(void *fdt, const char *path, const char *prop,
>> + const void *val, int len, int create)
>> +{
>> +#if defined(DEBUG)
>> + int i;
>> + debug("Updating property '%s/%s' = ", node, prop);
>> + for (i = 0; i < len; i++)
>> + debug(" %.2x", *(u8*)(val+i));
>> + debug("\n");
>> +#endif
>> + int rc = fdt_find_and_setprop(fdt, path, prop, val, len, create);
>> + if (rc)
>> + printf("Unable to update property %s:%s, err=%s\n",
>> + path, prop, fdt_strerror(rc));
>> +}
>> +
>> +void do_fixup_by_path_u32(void *fdt, const char *path, const char *prop,
>> + u32 val, int create)
>> +{
>> + val = cpu_to_fdt32(val);
>> + do_fixup_by_path(fdt, path, prop, &val, sizeof(val), create);
>> +}
>> +
>> #endif /* CONFIG_OF_LIBFDT */
>> diff --git a/cpu/mpc5xxx/cpu.c b/cpu/mpc5xxx/cpu.c
>> index 7f16b92..e4d6168 100644
>> --- a/cpu/mpc5xxx/cpu.c
>> +++ b/cpu/mpc5xxx/cpu.c
>> @@ -35,6 +35,7 @@
>> #if defined(CONFIG_OF_LIBFDT)
>> #include <libfdt.h>
>> #include <libfdt_env.h>
>> +#include <fdt_support.h>
>> #endif
>>
>> DECLARE_GLOBAL_DATA_PTR;
>> @@ -114,42 +115,19 @@ unsigned long get_tbclk (void)
>> /* ------------------------------------------------------------------------- */
>>
>> #ifdef CONFIG_OF_LIBFDT
>> -static void do_fixup(void *fdt, const char *node, const char *prop,
>> - const void *val, int len, int create)
>> -{
>> -#if defined(DEBUG)
>> - int i;
>> - debug("Updating property '%s/%s' = ", node, prop);
>> - for (i = 0; i < len; i++)
>> - debug(" %.2x", *(u8*)(val+i));
>> - debug("\n");
>> -#endif
>> - int rc = fdt_find_and_setprop(fdt, node, prop, val, len, create);
>> - if (rc)
>> - printf("Unable to update property %s:%s, err=%s\n",
>> - node, prop, fdt_strerror(rc));
>> -}
>> -
>> -static void do_fixup_u32(void *fdt, const char *node, const char *prop,
>> - u32 val, int create)
>> -{
>> - val = cpu_to_fdt32(val);
>> - do_fixup(fdt, node, prop, &val, sizeof(val), create);
>> -}
>> -
>> void ft_cpu_setup(void *blob, bd_t *bd)
>> {
>> int div = in_8((void*)CFG_MBAR + 0x204) & 0x0020 ? 8 : 4;
>> char * cpu_path = "/cpus/" OF_CPU;
>> char * eth_path = "/" OF_SOC "/ethernet at 3000";
>>
>> - do_fixup_u32(blob, cpu_path, "timebase-frequency", OF_TBCLK, 1);
>> - do_fixup_u32(blob, cpu_path, "bus-frequency", bd->bi_busfreq, 1);
>> - do_fixup_u32(blob, cpu_path, "clock-frequency", bd->bi_intfreq, 1);
>> - do_fixup_u32(blob, "/" OF_SOC, "bus-frequency", bd->bi_ipbfreq, 1);
>> - do_fixup_u32(blob, "/" OF_SOC, "system-frequency",
>> - bd->bi_busfreq*div, 1);
>> - do_fixup(blob, eth_path, "mac-address", bd->bi_enetaddr, 6, 0);
>> - do_fixup(blob, eth_path, "local-mac-address", bd->bi_enetaddr, 6, 0);
>> + do_fixup_by_path_u32(blob, cpu_path, "timebase-frequency", OF_TBCLK, 1);
>> + do_fixup_by_path_u32(blob, cpu_path, "bus-frequency", bd->bi_busfreq, 1);
>> + do_fixup_by_path_u32(blob, cpu_path, "clock-frequency", bd->bi_intfreq, 1);
>> + do_fixup_by_path_u32(blob, "/" OF_SOC, "bus-frequency", bd->bi_ipbfreq, 1);
>> + do_fixup_by_path_u32(blob, "/" OF_SOC, "system-frequency",
>> + bd->bi_busfreq*div, 1);
>> + do_fixup_by_path(blob, eth_path, "mac-address", bd->bi_enetaddr, 6, 0);
>> + do_fixup_by_path(blob, eth_path, "local-mac-address", bd->bi_enetaddr, 6, 0);
>> }
>> #endif
>> diff --git a/cpu/mpc8260/cpu.c b/cpu/mpc8260/cpu.c
>> index c2b753d..55e61a1 100644
>> --- a/cpu/mpc8260/cpu.c
>> +++ b/cpu/mpc8260/cpu.c
>> @@ -50,6 +50,7 @@
>> #if defined(CONFIG_OF_LIBFDT)
>> #include <libfdt.h>
>> #include <libfdt_env.h>
>> +#include <fdt_support.h>
>> #endif
>>
>> DECLARE_GLOBAL_DATA_PTR;
>> @@ -300,35 +301,12 @@ void watchdog_reset (void)
>>
>> /* ------------------------------------------------------------------------- */
>> #if defined(CONFIG_OF_LIBFDT)
>> -static void do_fixup(void *fdt, const char *node, const char *prop,
>> - const void *val, int len, int create)
>> -{
>> -#if defined(DEBUG)
>> - int i;
>> - debug("Updating property '%s/%s' = ", node, prop);
>> - for (i = 0; i < len; i++)
>> - debug(" %.2x", *(u8*)(val+i));
>> - debug("\n");
>> -#endif
>> - int rc = fdt_find_and_setprop(fdt, node, prop, val, len, create);
>> - if (rc)
>> - printf("Unable to update property %s:%s, err=%s\n",
>> - node, prop, fdt_strerror(rc));
>> -}
>> -
>> -static void do_fixup_u32(void *fdt, const char *node, const char *prop,
>> - u32 val, int create)
>> -{
>> - val = cpu_to_fdt32(val);
>> - do_fixup(fdt, node, prop, &val, sizeof(val), create);
>> -}
>> -
>> void ft_cpu_setup (void *blob, bd_t *bd)
>> {
>> char * cpu_path = "/cpus/" OF_CPU;
>>
>> - do_fixup_u32(blob, cpu_path, "bus-frequency", bd->bi_busfreq, 1);
>> - do_fixup_u32(blob, cpu_path, "timebase-frequency", OF_TBCLK, 1);
>> - do_fixup_u32(blob, cpu_path, "clock-frequency", bd->bi_intfreq, 1);
>> + do_fixup_by_path_u32(blob, cpu_path, "bus-frequency", bd->bi_busfreq, 1);
>> + do_fixup_by_path_u32(blob, cpu_path, "timebase-frequency", OF_TBCLK, 1);
>> + do_fixup_by_path_u32(blob, cpu_path, "clock-frequency", bd->bi_intfreq, 1);
>> }
>> #endif /* CONFIG_OF_LIBFDT */
>> diff --git a/include/fdt_support.h b/include/fdt_support.h
>> index 60fa423..0314dfd 100644
>> --- a/include/fdt_support.h
>> +++ b/include/fdt_support.h
>> @@ -29,6 +29,10 @@
>> #include <fdt.h>
>>
>> int fdt_chosen(void *fdt, ulong initrd_start, ulong initrd_end, int force);
>> +void do_fixup_by_path(void *fdt, const char *path, const char *prop,
>> + const void *val, int len, int create);
>> +void do_fixup_by_path_u32(void *fdt, const char *path, const char *prop,
>> + u32 val, int create);
>>
>> #ifdef CONFIG_OF_HAS_UBOOT_ENV
>> int fdt_env(void *fdt);
>> --
>> 1.5.3.3
>>
>>
>> -------------------------------------------------------------------------
>> This SF.net email is sponsored by: Splunk Inc.
>> Still grepping through log files to find problems? Stop.
>> Now Search log events and configuration files using AJAX and a browser.
>> Download your FREE copy of Splunk now >> http://get.splunk.com/
>> _______________________________________________
>> U-Boot-Users mailing list
>> U-Boot-Users at lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/u-boot-users
>>
>
>
next prev parent reply other threads:[~2007-11-05 12:30 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-11-04 0:49 [U-Boot-Users] [PATCH] Move do_fixup* for libfdt into common code Kumar Gala
2007-11-04 3:19 ` Grant Likely
2007-11-05 12:30 ` Jerry Van Baren [this message]
2007-11-05 15:44 ` Kumar Gala
2007-11-05 19:21 ` Wolfgang Denk
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=472F0D01.8050001@ge.com \
--to=gerald.vanbaren@ge.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.