1
2
3
4
5
6#include <common.h>
7#include <debug_uart.h>
8#include <init.h>
9#include <asm/io.h>
10#include <asm/arch-rockchip/bootrom.h>
11#include <asm/arch-rockchip/sdram_rk3036.h>
12
13#define TIMER_LOAD_COUNT_L 0x00
14#define TIMER_LOAD_COUNT_H 0x04
15#define TIMER_CONTROL_REG 0x10
16#define TIMER_EN 0x1
17#define TIMER_FMODE (0 << 1)
18#define TIMER_RMODE (1 << 1)
19
20void rockchip_stimer_init(void)
21{
22 asm volatile("mcr p15, 0, %0, c14, c0, 0"
23 : : "r"(COUNTER_FREQUENCY));
24
25 writel(0, CONFIG_ROCKCHIP_STIMER_BASE + TIMER_CONTROL_REG);
26 writel(0xffffffff, CONFIG_ROCKCHIP_STIMER_BASE);
27 writel(0xffffffff, CONFIG_ROCKCHIP_STIMER_BASE + 4);
28 writel(TIMER_EN | TIMER_FMODE, CONFIG_ROCKCHIP_STIMER_BASE +
29 TIMER_CONTROL_REG);
30}
31
32void board_init_f(ulong dummy)
33{
34#ifdef CONFIG_DEBUG_UART
35 debug_uart_init();
36#endif
37
38
39 rockchip_stimer_init();
40
41 timer_init();
42
43 sdram_init();
44
45
46 back_to_bootrom(BROM_BOOT_NEXTSTAGE);
47}
48
49
50void board_init_r(gd_t *id, ulong dest_addr)
51{
52
53
54
55
56 while (1)
57 ;
58}
59