[OpenWrt-Devel] uboot-lantiq cgu settings for ramboot image
daniel.schwierzeck at gmail.com
Mon Jan 19 08:57:54 EST 2015
2015-01-19 11:46 GMT+01:00 Ben Mulvihill <ben.mulvihill at gmail.com>:
> 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
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.
> - 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?
> Any suggestions will be gratefully received!
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
More information about the openwrt-devel