[PATCH 2/2] ARM: Exynos4: use s5p-timer for UniversalC210 board

Kyungmin Park kmpark at infradead.org
Thu Sep 15 02:32:09 EDT 2011


On Thu, Sep 15, 2011 at 3:03 PM, Kukjin Kim <kgene.kim at samsung.com> wrote:
> Kukjin Kim wrote:
>>
>> Kyungmin Park wrote:
>> >
>> > Hi,
>> >
>> > It's required for boot universal c210 w/ EVT0 chip.
>> > Can you include it at 3.1 fixed branch?
>> >
>> Sure, will apply into samsung-fixes for 3.1.
>
> Unfortunately, it happens boot failure with this patch on other EXYNOS4210
> boards and it is due to HAVE_SCHED_CLOCK.
>
>> > > +       select HAVE_SCHED_CLOCK
>
> I think, we need to sort out the method...
As sched_clock_postinit is called at generic time code by
HAVE_SCHED_CLOCK. and there's no sched_clock_update_fn() is defined.
As a work-around, you can test it.

static void sched_clock_poll(unsigned long wrap_ticks)
{
        mod_timer(&sched_clock_timer, round_jiffies(jiffies + wrap_ticks));
        if (sched_clock_update_fn)
                sched_clock_update_fn();
}

To solve the problem correctly. you can add init_sched_clock at
"arch/arm/mach-exynos4/mct.c" properly

Please test the work-around and share the result. I'll try to find the
proper place to add init_sched_clock at mct.c

Thank you,
Kyungmin Park


>
> Thanks.
>
> Best regards,
> Kgene.
> --
> Kukjin Kim <kgene.kim at samsung.com>, Senior Engineer,
> SW Solution Development Team, Samsung Electronics Co., Ltd.
>
>>
>> > Thank you,
>> > Kyungmin Park
>> >
>> > On Tue, Jul 26, 2011 at 2:50 PM, Marek Szyprowski
>> > <m.szyprowski at samsung.com> wrote:
>> > > Commit 069d4e743 removed support for local timers and forced to use
> MCT
>> as
>> > > event source. However MCT is not operating properly on early revision
> (EVT0)
>> > > of Exynos4 SoCs. All UniversalC210 boards are based on Exynos4 EVT0,
> so
>> > that
>> > > commit broke support for it. This patch provides a workaround that
> enables
>> > > UniversalC210 boards to boot again. s5p-timer is used as an event
> source.
>> > >
>> > > Signed-off-by: Marek Szyprowski <m.szyprowski at samsung.com>
>> > > Signed-off-by: Kyungmin Park <kyungmin.park at samsung.com>
>> > > ---
>> > >  arch/arm/mach-exynos4/Kconfig               |    3 +++
>> > >  arch/arm/mach-exynos4/mach-universal_c210.c |    4 +++-
>> > >  2 files changed, 6 insertions(+), 1 deletions(-)
>> > >
>> > > diff --git a/arch/arm/mach-exynos4/Kconfig
> b/arch/arm/mach-exynos4/Kconfig
>> > > index 9d62e13..2aad73f 100644
>> > > --- a/arch/arm/mach-exynos4/Kconfig
>> > > +++ b/arch/arm/mach-exynos4/Kconfig
>> > > @@ -173,6 +173,9 @@ config MACH_ARMLEX4210
>> > >  config MACH_UNIVERSAL_C210
>> > >        bool "Mobile UNIVERSAL_C210 Board"
>> > >        select CPU_EXYNOS4210
>> > > +       select S5P_HRT
>> > > +       select CLKSRC_MMIO
>> > > +       select HAVE_SCHED_CLOCK
>> > >        select S5P_GPIO_INT
>> > >        select S5P_DEV_FIMC0
>> > >        select S5P_DEV_FIMC1
>> > > diff --git a/arch/arm/mach-exynos4/mach-universal_c210.c
> b/arch/arm/mach-
>> > exynos4/mach-universal_c210.c
>> > > index 0e280d1..ca9e7b7 100644
>> > > --- a/arch/arm/mach-exynos4/mach-universal_c210.c
>> > > +++ b/arch/arm/mach-exynos4/mach-universal_c210.c
>> > > @@ -34,6 +34,7 @@
>> > >  #include <plat/mfc.h>
>> > >  #include <plat/sdhci.h>
>> > >  #include <plat/pd.h>
>> > > +#include <plat/s5p-time.h>
>> > >
>> > >  #include <mach/map.h>
>> > >
>> > > @@ -730,6 +731,7 @@ static void __init universal_map_io(void)
>> > >        s5p_init_io(NULL, 0, S5P_VA_CHIPID);
>> > >        s3c24xx_init_clocks(24000000);
>> > >        s3c24xx_init_uarts(universal_uartcfgs,
> ARRAY_SIZE(universal_uartcfgs));
>> > > +       s5p_set_timer_source(S5P_PWM2, S5P_PWM4);
>> > >  }
>> > >
>> > >  static void __init universal_reserve(void)
>> > > @@ -766,6 +768,6 @@ MACHINE_START(UNIVERSAL_C210,
>> > "UNIVERSAL_C210")
>> > >        .init_irq       = exynos4_init_irq,
>> > >        .map_io         = universal_map_io,
>> > >        .init_machine   = universal_machine_init,
>> > > -       .timer          = &exynos4_timer,
>> > > +       .timer          = &s5p_timer,
>> > >        .reserve        = &universal_reserve,
>> > >  MACHINE_END
>> > > --
>> > > 1.7.1.569.g6f426
>> > >
>> > > --
>> > > To unsubscribe from this list: send the line "unsubscribe
> linux-samsung-soc" in
>> > > the body of a message to majordomo at vger.kernel.org
>> > > More majordomo info at  http://vger.kernel.org/majordomo-info.html
>> > >
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>



More information about the linux-arm-kernel mailing list