addition of clocks command for davinci
cover addition of clocks command for davinci
This patch series adds new command - 'clocks' for davinci family of SOCs. This command prints CPU, DSP core and DDR frequency from the u-boot prompt. Also, support for printing frequency info during u-boot initialization is removed as it will delay u-boot coming up.
These patches have undergone a review previously, but since the tree has moved ahead Christian and Tom asked to resubmit the patches for review.
(http://www.mail-archive.com/u-boot at lists.denx.de/msg76220.html)
Manjunath Hadli (3):
davinci: move clock related functions to new file
davinci: remove macro CONFIG_DISPLAY_CPUINFO
davinci: add clocks command
arch/arm/cpu/arm926ejs/davinci/Makefile | 2 +- arch/arm/cpu/arm926ejs/davinci/cpu.c | 208 --------------------------- arch/arm/cpu/arm926ejs/davinci/speed.c | 230 ++++++++++++++++++++++++++++++ include/configs/cam_enc_4xx.h | 1 - include/configs/davinci_dm355evm.h | 1 - include/configs/davinci_dm355leopard.h | 1 - include/configs/davinci_dm6467Tevm.h | 1 - include/configs/davinci_dm6467evm.h | 1 - include/configs/davinci_dvevm.h | 1 - include/configs/davinci_schmoogie.h | 1 - include/configs/davinci_sffsdr.h | 1 - include/configs/davinci_sonata.h | 1 - include/configs/enbw_cmc.h | 1 - nand_spl/board/davinci/da8xxevm/Makefile | 6 + 14 files changed, 237 insertions(+), 219 deletions(-) create mode 100644 arch/arm/cpu/arm926ejs/davinci/speed.c
PATCH 1/3 davinci: move clock related functions to new file
Move the clock related function from cpu.c to new file speed.c. Eliminate volatile keyword usage which made no justification and also to keep checkpatch.pl happy. Replace REG instructions by readl.
--- arch/arm/cpu/arm926ejs/davinci/Makefile | 2 +- arch/arm/cpu/arm926ejs/davinci/cpu.c | 208 --------------------------- arch/arm/cpu/arm926ejs/davinci/speed.c | 230 ++++++++++++++++++++++++++++++ nand_spl/board/davinci/da8xxevm/Makefile | 6 + 4 files changed, 237 insertions(+), 209 deletions(-) create mode 100644 arch/arm/cpu/arm926ejs/davinci/speed.c
arch/arm/cpu/arm926ejs/davinci/Makefile +1 -1
@@ -27,7 +27,7 @@ include $(TOPDIR)/config.mk LIB = $(obj)lib$(SOC).o -COBJS-y += cpu.o misc.o timer.o psc.o pinmux.o +COBJS-y += cpu.o misc.o timer.o psc.o pinmux.o speed.o COBJS-$(CONFIG_DA850_LOWLEVEL) += da850_lowlevel.o COBJS-$(CONFIG_SOC_DM355) += dm355.o COBJS-$(CONFIG_SOC_DM365) += dm365.o
arch/arm/cpu/arm926ejs/davinci/cpu.c +0 -208
214 lines not on this page · raw message
arch/arm/cpu/arm926ejs/davinci/speed.c new file +230 -0
230 lines not on this page · raw message
nand_spl/board/davinci/da8xxevm/Makefile +6 -0
@@ -41,6 +41,7 @@ SOBJS = _divsi3.o \ start.o COBJS = cpu.o \ + speed.o \ davinci_nand.o \ pinmux.o \ da850_pinmux.o \
@@ -126,6 +127,11 @@ $(obj)cpu.c: @rm -f $@ @ln -s $(TOPDIR)/arch/arm/cpu/arm926ejs/davinci/cpu.c $@ +# from SoC directory +$(obj)speed.c: + @rm -f $@ + @ln -s $(TOPDIR)/arch/arm/cpu/arm926ejs/davinci/speed.c $@ + $(obj)misc.c: @rm -f $@ ln -s $(TOPDIR)/arch/arm/cpu/arm926ejs/davinci/misc.c $@
Signature · 1 line
1.6.2.4
PATCH 1/3 davinci: move clock related functions to new file
hi Manjunath,
Quoted 11 lines · Manjunath Hadli
Move the clock related function from
cpu.cto new filespeed.c. Eliminate volatile keyword usage which made no justification and also to keep checkpatch.pl happy. Replace REG instructions by readl.Signed-off-by Manjunath Hadli <[email protected]>Cc Tom Rini <[email protected]>---
nand_spl/board/davinci/da8xxevm/Makefile | 6 +
You might want to check the patch "Changes to move hawkboard to the new spl infrastructure". This patch removes the above file, and moves the hawkboard to the new spl infrastructure -- the above change would not be needed.
-sughosh
PATCH 2/3 davinci: remove macro CONFIG_DISPLAY_CPUINFO
In reply to Manjunath Hadliremove the macro CONFIG_DISPLAY_CPUINFO as it is no longer required. This is because clock info will be printed as part 'clocks' command. Also avoid building of print_cpuinfo() function for SPL framework.
--- arch/arm/cpu/arm926ejs/davinci/speed.c | 5 +---- include/configs/cam_enc_4xx.h | 1 - include/configs/davinci_dm355evm.h | 1 - include/configs/davinci_dm355leopard.h | 1 - include/configs/davinci_dm6467Tevm.h | 1 - include/configs/davinci_dm6467evm.h | 1 - include/configs/davinci_dvevm.h | 1 - include/configs/davinci_schmoogie.h | 1 - include/configs/davinci_sffsdr.h | 1 - include/configs/davinci_sonata.h | 1 - include/configs/enbw_cmc.h | 1 - 11 files changed, 1 insertions(+), 14 deletions(-)
arch/arm/cpu/arm926ejs/davinci/speed.c +1 -4
@@ -114,7 +114,7 @@ int clk_get(enum davinci_clk_ids id) out:return pll_out; } -#ifdef CONFIG_DISPLAY_CPUINFO +#if !defined(CONFIG_SPL_BUILD ) && !defined(CONFIG_NAND_SPL )int print_cpuinfo (void ) { printf("Cores: ARM %d MHz",
@@ -127,8 +127,6 @@ int print_cpuinfo(void)#endif #else /* CONFIG_SOC_DA8XX */ -#ifdef CONFIG_DISPLAY_CPUINFO -static unsigned pll_div (unsigned pllbase,unsigned offset) {u32 div;
@@ -226,5 +224,4 @@ unsigned int davinci_clk_get(unsigned int div)return pll_sysclk_mhz (DAVINCI_PLL_CNTRL0_BASE , div) *1000000 ; }#endif -#endif /* CONFIG_DISPLAY_CPUINFO */ #endif /* !CONFIG_SOC_DA8XX */
include/configs/cam_enc_4xx.h +0 -1
@@ -257,7 +257,6 @@#define CONFIG_POST CONFIG_SYS_POST_MEMORY#define _POST_WORD_ADDR 0x0 -#define CONFIG_DISPLAY_CPUINFO #define CONFIG_DISPLAY_BOARDINFO #define CONFIG_SYS_INIT_SP_ADDR CONFIG_SPL_STACK
include/configs/davinci_dm355evm.h +0 -1
@@ -26,7 +26,6 @@#define CONFIG_SKIP_LOWLEVEL_INIT /* U-Boot is a 3rd stage loader */ #define CONFIG_SYS_NO_FLASH /* that is, no *NOR* flash */ #define CONFIG_SYS_CONSOLE_INFO_QUIET -#define CONFIG_DISPLAY_CPUINFO /* SoC Configuration */ #define CONFIG_ARM926EJS /* arm926ejs CPU */
include/configs/davinci_dm355leopard.h +0 -1
@@ -25,7 +25,6 @@#define CONFIG_SKIP_LOWLEVEL_INIT /* U-Boot is a 3rd stage loader */ #define CONFIG_SYS_NO_FLASH /* that is, no *NOR* flash */ #define CONFIG_SYS_CONSOLE_INFO_QUIET -#define CONFIG_DISPLAY_CPUINFO /* SoC Configuration */ #define CONFIG_ARM926EJS /* arm926ejs CPU */
include/configs/davinci_dm6467Tevm.h +0 -1
@@ -23,7 +23,6 @@/* Spectrum Digital TMS320DM6467T EVM board */ #define DAVINCI_DM6467EVM #define DAVINCI_DM6467TEVM -#define CONFIG_DISPLAY_CPUINFO #define CONFIG_SYS_USE_NAND #define CONFIG_SYS_NAND_SMALLPAGE
include/configs/davinci_dm6467evm.h +0 -1
@@ -22,7 +22,6 @@/* Spectrum Digital TMS320DM6467 EVM board */ #define DAVINCI_DM6467EVM -#define CONFIG_DISPLAY_CPUINFO #define CONFIG_SYS_USE_NAND #define CONFIG_SYS_NAND_SMALLPAGE
include/configs/davinci_dvevm.h +0 -1
@@ -51,7 +51,6 @@#define DV_EVM #define CONFIG_SYS_NAND_SMALLPAGE #define CONFIG_SYS_USE_NAND -#define CONFIG_DISPLAY_CPUINFO /*===================*/ /* SoC Configuration */ /*===================*/
include/configs/davinci_schmoogie.h +0 -1
@@ -26,7 +26,6 @@#define SCHMOOGIE #define CONFIG_SYS_NAND_LARGEPAGE #define CONFIG_SYS_USE_NAND -#define CONFIG_DISPLAY_CPUINFO #define MACH_TYPE_SCHMOOGIE 1255#define CONFIG_MACH_TYPE MACH_TYPE_SCHMOOGIE
include/configs/davinci_sffsdr.h +0 -1
@@ -28,7 +28,6 @@#define CONFIG_SYS_NAND_LARGEPAGE #define CONFIG_SYS_USE_NAND #define CONFIG_SYS_USE_DSPLINK /* don't power up the DSP. */ -#define CONFIG_DISPLAY_CPUINFO /* SoC Configuration */ #define CONFIG_ARM926EJS /* arm926ejs CPU core */ #define CONFIG_SYS_TIMERBASE 0x01c21400/* use timer 0 */
include/configs/davinci_sonata.h +0 -1
@@ -51,7 +51,6 @@#define SONATA_BOARD #define CONFIG_SYS_NAND_SMALLPAGE #define CONFIG_SYS_USE_NOR -#define CONFIG_DISPLAY_CPUINFO #define MACH_TYPE_SONATA 1254#define CONFIG_MACH_TYPE MACH_TYPE_SONATA/*===================*/
include/configs/enbw_cmc.h +0 -1
@@ -50,7 +50,6 @@#define CONFIG_ARCH_CPU_INIT #define CONFIG_DA8XX_GPIO #define CONFIG_HOSTNAME enbw_cmc -#define CONFIG_DISPLAY_CPUINFO #define MACH_TYPE_ENBW_CMC 3585#define CONFIG_MACH_TYPE MACH_TYPE_ENBW_CMC
Signature · 1 line
1.6.2.4
PATCH 3/3 davinci: add clocks command
In reply to Manjunath HadliAdd 'clocks' command to print various frequencies such as ARM frequency, DSP core frequency and DDR frequency. Remove print_cpuinfo() function as it is no longer required.
--- arch/arm/cpu/arm926ejs/davinci/speed.c | 73 ++++++++++++++++--------------- 1 files changed, 38 insertions(+), 35 deletions(-)
arch/arm/cpu/arm926ejs/davinci/speed.c +38 -35
@@ -21,6 +21,7 @@*/ #include <common.h> +#include <command.h> #include <asm/io.h> #include <asm/arch/hardware.h>
@@ -114,17 +115,6 @@ int clk_get(enum davinci_clk_ids id) out: return pll_out; } -#if !defined(CONFIG_SPL_BUILD ) && !defined(CONFIG_NAND_SPL ) -int print_cpuinfo (void ) -{ -printf ("Cores: ARM %d MHz" , -clk_get (DAVINCI_ARM_CLKID ) /1000000 ); -printf ("\nDDR: %d MHz\n" , -/* DDR PHY uses an x2 input clock */ -clk_get (0x10001 ) /1000000 ); -return 0 ; -} -#endif #else /* CONFIG_SOC_DA8XX */ static unsigned pll_div (unsigned pllbase,unsigned offset)
@@ -181,47 +171,60 @@ static unsigned pll_sysclk_mhz(unsigned pll_addr, unsigned div)return DIV_ROUND_UP (base,1000 *pll_div (pll_addr, div)); } -int print_cpuinfo (void ) +#ifdef DAVINCI_DM6467EVM +unsigned int davinci_arm_clk_get () +{ +return pll_sysclk_mhz (DAVINCI_PLL_CNTRL0_BASE ,ARM_PLLDIV ) *1000000 ; +} +#endif + +#if defined(CONFIG_SOC_DM365 ) +unsigned int davinci_clk_get (unsigned int div) +{ +return pll_sysclk_mhz (DAVINCI_PLL_CNTRL0_BASE , div) *1000000 ; +} +#endif +#endif /* !CONFIG_SOC_DA8XX */ + +#if !defined(CONFIG_SPL_BUILD ) && !defined(CONFIG_NAND_SPL ) +int showclocks (cmd_tbl_t *cmdtp, +int flag,int argc,char *const argv[]) {/* REVISIT fetch and display CPU ID and revision information * too ... that will matter as more revisions appear. */ -#if defined(CONFIG_SOC_DM365 ) -printf ("Cores: ARM %d MHz" , -pll_sysclk_mhz (DAVINCI_PLL_CNTRL1_BASE ,ARM_PLLDIV )); + +puts ("Clock configuration:\n" ); +#if defined(CONFIG_SOC_DA8XX ) +printf ("Cores: ARM %d MHz" ,clk_get (DAVINCI_ARM_CLKID ) /1000000 ); +printf ("\nDDR: %d MHz\n" , +/* DDR PHY uses an x2 input clock */ +clk_get (0x10001 ) /1000000 );#else -printf ("Cores: ARM %d MHz" , -pll_sysclk_mhz (DAVINCI_PLL_CNTRL0_BASE ,ARM_PLLDIV )); +unsigned int pllbase =DAVINCI_PLL_CNTRL0_BASE ; + +#if defined(CONFIG_SOC_DM365 ) + pllbase =DAVINCI_PLL_CNTRL1_BASE ;#endif +printf ("Cores: ARM %d MHz" ,pll_sysclk_mhz (pllbase,ARM_PLLDIV ));#ifdef DSP_PLLDIV printf (", DSP %d MHz" ,pll_sysclk_mhz (DAVINCI_PLL_CNTRL0_BASE ,DSP_PLLDIV ));#endif + pllbase =DAVINCI_PLL_CNTRL1_BASE ; +#if defined(CONFIG_SOC_DM365 ) + pllbase =DAVINCI_PLL_CNTRL0_BASE ; +#endif printf ("\nDDR: %d MHz\n" ,/* DDR PHY uses an x2 input clock */ -#if defined(CONFIG_SOC_DM365 ) -pll_sysclk_mhz (DAVINCI_PLL_CNTRL0_BASE ,DDR_PLLDIV ) - / 2); -#else -pll_sysclk_mhz (DAVINCI_PLL_CNTRL1_BASE ,DDR_PLLDIV ) - / 2); +pll_sysclk_mhz (pllbase,DDR_PLLDIV ) /2 );#endif return 0 ; } -#ifdef DAVINCI_DM6467EVM -unsigned int davinci_arm_clk_get () -{ -return pll_sysclk_mhz (DAVINCI_PLL_CNTRL0_BASE ,ARM_PLLDIV ) *1000000 ; -} -#endif +U_BOOT_CMD (clocks,1 ,0 , showclocks, +"display clocks" ,"" ); -#if defined(CONFIG_SOC_DM365 ) -unsigned int davinci_clk_get (unsigned int div) -{ -return pll_sysclk_mhz (DAVINCI_PLL_CNTRL0_BASE , div) *1000000 ; -}#endif -#endif /* !CONFIG_SOC_DA8XX */
Signature · 1 line
1.6.2.4
PATCH 3/3 davinci: add clocks command
Quoted 6 lines · Manjunath Hadli
Add 'clocks' command to print various frequencies such as ARM frequency, DSP core frequency and DDR frequency. Remove
print_cpuinfo()function as it is no longer required.Signed-off-by Manjunath Hadli <[email protected]>Cc Tom Rini <[email protected]>
NAK. The feedback from the last time you submitted this was to extend the functionality of 'bdinfo' to be able to include this. See
http://patchwork.ozlabs.org/patch/120105/
Signature · 1 line
Tom
Hadli
PATCH 3/3 davinci: add clocks command
Tom,
Quoted 9 lines · Tom Rini
Quoted 6 lines · Manjunath Hadli
Add 'clocks' command to print various frequencies such as ARM frequency, DSP core frequency and DDR frequency. Remove
print_cpuinfo()function as it is no longer required.Signed-off-by Manjunath Hadli <[email protected]>Cc Tom Rini <[email protected]>NAK. The feedback from the last time you submitted this was to extend the functionality of 'bdinfo' to be able to include this. See http://patchwork.ozlabs.org/patch/120105/
Agreed. I will implement this functionality as part 'bdinfo' command and resubmit the patches.
Regards,
--Manju
Quoted 4 lines
--
Tom