Hi Ben, 2015-01-19 11:46 GMT+01:00 Ben Mulvihill <[email protected]>: > 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. > > - 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! > > Ben > > -- - Daniel _______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
