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

Re: system time 20% too fast on QNAP TS-210



On Mon, Jan 25, 2010 at 07:21:04PM +0100, Adi wrote:

> >>I installed debian lenny on a QNAP TS-210, but discovered, that the
> >>system time is 20% too fast. The kernel also set the BogoMIPS wrong
> >>(20% too low)
> >>
> >>Any idea, if I messed something up or if this is a bug?
> >
> >What does
> >
> >	dmesg | grep TCLK=
> >
> >say?
> [    0.260000] Kirkwood: MV88F6281-Rev-Unsupported, TCLK=166666667.
>
> >Does serial work at the right baud rate, if you've tried that?
>
> I measured following Baud rates (with a scope hooked up to the serial  
> connector)
> Boot: 138.9 kBaud (should be 115200 Baud)
> test with 9600 Baud, resulted in 11630 Baud
> -> again 20% too high
> (which is also the explanation why qcontrol does not work)

Makes perfect sense.

You'll need this patch backported from upstream:

commit aec1bad326a99a8b0860fa9d518985ee388c9391
Author: Siddarth Gore <gores@marvell.com>
Date:   Tue Jun 9 14:41:02 2009 +0530

    [ARM] Kirkwood: Add support for 6281-A1
    
    Signed-off-by: Siddarth Gore <gores@marvell.com>
    Signed-off-by: Nicolas Pitre <nico@marvell.com>

diff --git a/arch/arm/mach-kirkwood/common.c b/arch/arm/mach-kirkwood/common.c
index 0f69198..0acb61f 100644
--- a/arch/arm/mach-kirkwood/common.c
+++ b/arch/arm/mach-kirkwood/common.c
@@ -838,7 +838,8 @@ int __init kirkwood_find_tclk(void)
        u32 dev, rev;
 
        kirkwood_pcie_id(&dev, &rev);
-       if (dev == MV88F6281_DEV_ID && rev == MV88F6281_REV_A0)
+       if (dev == MV88F6281_DEV_ID && (rev == MV88F6281_REV_A0 ||
+                                       rev == MV88F6281_REV_A1))
                return 200000000;
 
        return 166666667;
@@ -872,6 +873,8 @@ static char * __init kirkwood_id(void)
                        return "MV88F6281-Z0";
                else if (rev == MV88F6281_REV_A0)
                        return "MV88F6281-A0";
+               else if (rev == MV88F6281_REV_A1)
+                       return "MV88F6281-A1";
                else
                        return "MV88F6281-Rev-Unsupported";
        } else if (dev == MV88F6192_DEV_ID) {
diff --git a/arch/arm/mach-kirkwood/include/mach/kirkwood.h b/arch/arm/mach-kirk
index 07af858..54c1327 100644
--- a/arch/arm/mach-kirkwood/include/mach/kirkwood.h
+++ b/arch/arm/mach-kirkwood/include/mach/kirkwood.h
@@ -101,6 +101,7 @@
 #define MV88F6281_DEV_ID       0x6281
 #define MV88F6281_REV_Z0       0
 #define MV88F6281_REV_A0       2
+#define MV88F6281_REV_A1       3
 
 #define MV88F6192_DEV_ID       0x6192
 #define MV88F6192_REV_Z0       0


Reply to: