Timers on mpc8248 etc...

Alan Bennett embedded at akb.net
Fri Nov 30 06:05:45 EST 2007


Though I'd like to move to a uboot fdt, I can't afford to port it yet,
maybe in January.  But until then ...

It appears that a simple change in U-boot constant,
   #define CONFIG_8260_CLKIN	66000000	/* in Hz */
   to
   #define CONFIG_8260_CLKIN	100000000	/* in Hz */

has fixed the speed mismatch, and I've verified that
schedule_timeout(HZ/10) produces a 100 millisecond delay.  However, my
serial ports (brgs) are hosed.

-Alan


On 11/29/07, Alan Bennett <embedded at akb.net> wrote:
> My uboot is new-ish, but I don't have the fdt commands?  U-Boot 1.3.0
> g992742a5-dirty
>
> u-boot:clock configuration
> ===========================
> MPC8248 Clock Configuration
>  - Bus-to-Core Mult 3.5x, VCO Div 2, 60x Bus Freq  30-85 , Core Freq 100-300
>  - dfbrg 1, corecnf 0x1e, busdf 3, cpmdf 1, plldf 0, pllmf 5, pcidf 5
>  - vco_out  396000000, scc_clk   99000000, brg_clk   24750000
>  - cpu_clk  231000000, cpm_clk  198000000, bus_clk   66000000
>
> Boot Wrapper Reporting
> ===========================
> Memory <- <0x0 0x8000000> (128MB)
> CPU clock-frequency <- 0xdc4c7c0 (231MHz)
> CPU timebase-frequency <- 0xfbc520 (17MHz)
> CPU bus-frequency <- 0x3ef1480 (66MHz)
>
> Kernel reporting
> ===========================
> clocksource: timebase mult[f26c9b2] shift[22] registered
>
> device tree in kernel (hex= `od -x`:
> ===========================
> /proc/device-tree/cpus/PowerPC,8248 at 0/name
>     PowerPC,8248
> /proc/device-tree/cpus/PowerPC,8248 at 0/bus-frequency
>     0000000 03ef 1480
> /proc/device-tree/cpus/PowerPC,8248 at 0/clock-frequency
>     0000000 0dc4 c7c0
> /proc/device-tree/cpus/PowerPC,8248 at 0/timebase-frequency
>     0000000 00fb c520
> /proc/device-tree/cpus/PowerPC,8248 at 0/i-cache-size
>     0000000 0000 4000
>
>
>
> On 11/29/07, Vitaly Bordug <vitb at kernel.crashing.org> wrote:
> > On Wed, 28 Nov 2007 21:06:36 -0700
> > Alan Bennett wrote:
> >
> > > It comes from uboot.  Can you point me in the right direction to make
> > > sure its right?
> > >                PowerPC,8248 at 0 {
> > >                        device_type = "cpu";
> > >                        reg = <0>;
> > >                        d-cache-line-size = <d#32>;
> > >                        i-cache-line-size = <d#32>;
> > >                        d-cache-size = <d#16384>;
> > >                        i-cache-size = <d#16384>;
> > >                        timebase-frequency = <0>;
> > >                        clock-frequency = <0>;
> > >                };
> > >
> > if your u-boot is up to  date, it will have fdt command, and by
> > fdt boardsetup
> > fdt print /
> >
> > inspect what u-boot did. Of course you should have dtb preloaded to memory and
> > fdt addr <offset> should be said to let u-boot know where dtb resides.
> >
> >
> > >
> > > On 11/28/07, Scott Wood <scottwood at freescale.com> wrote:
> > > > Alan Bennett wrote:
> > > > > I've got a routine that needs to delay for X microseconds, this
> > > > > is a must.  The command after schedule_timeout must has to wait
> > > > > for the HW to complete a task that takes X microseconds.
> > > > >
> > > > > I would think that one way to do this is with a simple
> > > > > schedule_timeout.  But in the example below, the time that passes
> > > > > from run1() to dontrun() is far less than 3.2 msecs.  Infact,
> > > > > sometimes its ~ 800 micros according the a analyzer looking at
> > > > > points triggered in run1() and donrun().  Could this be a
> > > > > configuration problem with the timer/interrupt that generates the
> > > > > jiffies?
> > > >
> > > > Are you sure the timebase frequency is set correctly in the device
> > > > tree?
> > > >
> > > > -Scott
> > > >
> > > _______________________________________________
> > > Linuxppc-dev mailing list
> > > Linuxppc-dev at ozlabs.org
> > > https://ozlabs.org/mailman/listinfo/linuxppc-dev
> >
> >
> > --
> > Sincerely, Vitaly
> >
>



More information about the Linuxppc-dev mailing list