RE: AM335x: Beaglebone stops to boot with current git kernel

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Nov 23, 2012 at 02:26:40, Joel A Fernandes wrote:
> Hi Vaibhav, Igor,
> 
> On and off due to vacation time too,..
> 
> Not sure but I missed the below patch from Vaibhav as it probably
> wasn't copied to linux-omap so I got confused which patch was Igor
> testing, whether it was the one in which we set ENABLE_ON_INIT or the
> one in which hwmod data is changed.
> 
> I think Igor tried the latter and it works. In that case, I guess we
> can drop the ENABLE_ON_INIT patch if this is a better fix. I had some
> comments though...
> 


Let try to explain why we should go with hwmod patches,

When I submitted clock tree patch, we decided to remove all leaf-nodes from 
the data, but since modules like debugs were not enabled in hwmod (as done 
for omap) I had explicitly keep these nodes in clock-tree to disable them 
with RESET_CLOCKS flag.
Please refer to the comment in file clock33xx_data.c


567 /*
568  * Modules clock nodes
569  *
570  * The following clock leaf nodes are added for the moment because:
571  *
572  *  - hwmod data is not present for these modules, either hwmod
573  *    control is not required or its not populated.
574  *  - Driver code is not yet migrated to use hwmod/runtime pm
575  *  - Modules outside kernel access (to disable them by default)
576  *
577  *     - debugss
578  *     - mmu (gfx domain)
579  *     - cefuse
580  *     - usbotg_fck (its additional clock and not really a modulemode)
581  *     - ieee5000
582  */



Ideally (and to keep consistency with existing implementation), we should 
enable hwmod node and remove clock-tree node.


> On Thu, Nov 22, 2012 at 10:40 AM, Igor Mazanov <i.mazanov@xxxxxxxxx> wrote:
> > On Thu, Nov 22, 2012 at 6:49 PM, Hiremath, Vaibhav <hvaibhav@xxxxxx> wrote:
> [..]
> >>> I have quickly created patch for you, can you try below patch and let me
> >>> know?
> >>>
> >>>
> >>>
> >>> diff --git a/arch/arm/mach-omap2/cclock33xx_data.c b/arch/arm/mach-omap2/cclock33xx_data.c
> >>> index ea64ad6..c9af78c 100644
> >>> --- a/arch/arm/mach-omap2/cclock33xx_data.c
> >>> +++ b/arch/arm/mach-omap2/cclock33xx_data.c
> >>> @@ -920,6 +920,7 @@ static const char *enable_init_clks[] = {
> >>>         "l4hs_gclk",
> >>>         "l4fw_gclk",
> >>>         "l4ls_gclk",
> >>> +       "debugss_ick",
> >>>  };
> >>>
> >>>  int __init am33xx_clk_init(void)
> >>> diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
> >>> index ad8d43b..750b897 100644
> >>> --- a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
> >>> +++ b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
> >>> @@ -460,27 +460,6 @@ static struct omap_hwmod am33xx_clkdiv32k_hwmod = {
> >>>         },
> >>>  };
> >>>
> >>> -/*
> >>> - * 'debugss' class
> >>> - * debug sub system
> >>> - */
> >>> -static struct omap_hwmod_class am33xx_debugss_hwmod_class = {
> >>> -       .name           = "debugss",
> >>> -};
> >>> -
> >>> -static struct omap_hwmod am33xx_debugss_hwmod = {
> >>> -       .name           = "debugss",
> >>> -       .class          = &am33xx_debugss_hwmod_class,
> >>> -       .clkdm_name     = "l3_aon_clkdm",
> >>> -       .main_clk       = "debugss_ick",
> >>> -       .prcm           = {
> >>> -               .omap4  = {
> >>> -                       .clkctrl_offs   = AM33XX_CM_WKUP_DEBUGSS_CLKCTRL_OFFSET,
> >>> -                       .modulemode     = MODULEMODE_SWCTRL,
> >>> -               },
> >>> -       },
> >>> -};
> >>> -
> >>> /* ocmcram */
> >>>  static struct omap_hwmod_class am33xx_ocmcram_hwmod_class = {
> >>>         .name = "ocmcram",
> >>> @@ -570,6 +549,28 @@ static struct omap_hwmod am33xx_sha0_hwmod = {
> >>>
> >>>  #endif
> >>>
> >>> +/*
> >>> + * 'debugss' class
> >>> + * debug sub system
> >>> + */
> >>> +static struct omap_hwmod_class am33xx_debugss_hwmod_class = {
> >>> +       .name           = "debugss",
> >>> +};
> >>> +
> >>> +static struct omap_hwmod am33xx_debugss_hwmod = {
> >>> +       .name           = "debugss",
> >>> +       .class          = &am33xx_debugss_hwmod_class,
> >>> +       .clkdm_name     = "l3_aon_clkdm",
> >>> +       .main_clk       = "debugss_ick",
> >>> +       .flags          =  (HWMOD_INIT_NO_IDLE | HWMOD_INIT_NO_RESET),
> 
> Setting these flags would still leave the problem where JTAG clocks
> are on when its not required no? In that case, what is the advantage
> of this patch?
> 

I missed to wrap it around #ifdef CONFIG_DEBUG_KERNEL. I will submit the 
formal patch shortly.

Thanks,
Vaibhav

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux