From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jerry Van Baren Date: Mon, 05 Nov 2007 07:30:57 -0500 Subject: [U-Boot-Users] [PATCH] Move do_fixup* for libfdt into common code In-Reply-To: References: Message-ID: <472F0D01.8050001@ge.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Grant Likely wrote: > On 11/3/07, Kumar Gala 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 > Acked-by: Grant Likely > >> --- 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 >> #include >> +#include >> #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 >> #include >> +#include >> #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 >> >> 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 >> > >