[OpenWrt-Devel] uboot-lantiq cgu settings for ramboot image

Ben Mulvihill ben.mulvihill at gmail.com
Mon Jan 19 09:41:15 EST 2015


Hi Daniel,

On Mon, 2015-01-19 at 14:57 +0100, Daniel Schwierzeck wrote:
> Hi Ben,
> 
> 2015-01-19 11:46 GMT+01:00 Ben Mulvihill <ben.mulvihill at gmail.com>:
> > Hello,
> >
> > I am trying to build uboot-lantiq for the BT Home Hub 3A (lantiq
> > ar9), and am wondering where to initialise the cgu, in the case
> > of a ramboot image for uart booting. Normally the cgu is initialised
> > in lowlevel_init, but that code is bypassed in ramboot images. The
> > result is that the board boots with the wrong cgu settings, which
> > sends the console haywire. So far I have tried two solutions:
> >
> > - putting the following lines in board_early_init_f:
> >
> >   #define REG32(addr) *((volatile u32 *)(addr))
> >         REG32(0xbf103010) = 0x80;
> >         REG32(0xbf103014) = 0x01;
> >
> >   This fixes the console, but breaks ethernet. I am wondering
> >   whether this is because by putting this code in this place, I
> >   am altering the cgu settings after setting up ram. Is this
> >   admissible?
> 
> it is insufficient if you want to change the DDR clock after the
> memory is already initialized. For that you will need a sequence like
> putting memory in self-refresh mode, stopping memory controller,
> update clocks, restart memory controller, putting memory out of
> self-refresh. That's why the cgu_init() runs before mc_init(). Thus if
> the board comes up with 111/111 MHz, you cannot switch to 393/166 MHz
> because that would require to change the DDR clock.
> 
Thank you for the explanations. I suspected that something like that
was the problem. I'll have a do at doing the full sequence you describe.

> >
> > - adding the same two register settings to the start of the
> >   ddr_settings file generated by lantiq_ram_init_uart.awk .
> >   However, the resulting image gives a download error and won't
> >   boot at all.
> 
> Actually this should work. Did you put the CGU register settings
> before the memory controller settings?
> 
I did. The start of my ddr_settings file looked like this:
    0xbf103010 0x80
    0xbf103014 0x01
    0xbf800010 0x0
    0xbf800020 0x0
    0xbf800060 0xD
    0xbf801030 0x0
    0xbf801000 0x1b1b

> >
> > Any suggestions will be gratefully received!
> >
> > Ben
> >
> >
> 
Ben
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list