]>
Commit | Line | Data |
---|---|---|
536e7dac TL |
1 | /* |
2 | * (C) Copyright 2000-2003 | |
3 | * Wolfgang Denk, DENX Software Engineering, wd@denx.de. | |
4 | * | |
aa0d99fc | 5 | * Copyright (C) 2004-2008, 2012 Freescale Semiconductor, Inc. |
536e7dac TL |
6 | * TsiChung Liew (Tsi-Chung.Liew@freescale.com) |
7 | * | |
1a459660 | 8 | * SPDX-License-Identifier: GPL-2.0+ |
536e7dac TL |
9 | */ |
10 | ||
11 | #include <config.h> | |
12 | #include <common.h> | |
13 | #include <asm/immap.h> | |
aa0d99fc | 14 | #include <asm/io.h> |
536e7dac TL |
15 | |
16 | DECLARE_GLOBAL_DATA_PTR; | |
17 | ||
18 | int checkboard(void) | |
19 | { | |
20 | puts("Board: "); | |
21 | puts("Freescale M53017EVB\n"); | |
22 | return 0; | |
23 | }; | |
24 | ||
25 | phys_size_t initdram(int board_type) | |
26 | { | |
aa0d99fc | 27 | sdram_t *sdram = (sdram_t *)(MMAP_SDRAM); |
536e7dac TL |
28 | u32 dramsize, i; |
29 | ||
30 | dramsize = CONFIG_SYS_SDRAM_SIZE * 0x100000; | |
31 | ||
32 | for (i = 0x13; i < 0x20; i++) { | |
33 | if (dramsize == (1 << i)) | |
34 | break; | |
35 | } | |
36 | i--; | |
37 | ||
aa0d99fc | 38 | out_be32(&sdram->cs0, CONFIG_SYS_SDRAM_BASE | i); |
536e7dac | 39 | #ifdef CONFIG_SYS_SDRAM_BASE1 |
aa0d99fc | 40 | out_be32(&sdram->cs1, CONFIG_SYS_SDRAM_BASE | i); |
536e7dac | 41 | #endif |
aa0d99fc AW |
42 | out_be32(&sdram->cfg1, CONFIG_SYS_SDRAM_CFG1); |
43 | out_be32(&sdram->cfg2, CONFIG_SYS_SDRAM_CFG2); | |
536e7dac TL |
44 | |
45 | udelay(500); | |
46 | ||
47 | /* Issue PALL */ | |
aa0d99fc | 48 | out_be32(&sdram->ctrl, CONFIG_SYS_SDRAM_CTRL | 2); |
536e7dac TL |
49 | asm("nop"); |
50 | ||
51 | /* Perform two refresh cycles */ | |
aa0d99fc AW |
52 | out_be32(&sdram->ctrl, CONFIG_SYS_SDRAM_CTRL | 4); |
53 | out_be32(&sdram->ctrl, CONFIG_SYS_SDRAM_CTRL | 4); | |
536e7dac TL |
54 | asm("nop"); |
55 | ||
56 | /* Issue LEMR */ | |
aa0d99fc | 57 | out_be32(&sdram->mode, CONFIG_SYS_SDRAM_MODE); |
536e7dac | 58 | asm("nop"); |
aa0d99fc | 59 | out_be32(&sdram->mode, CONFIG_SYS_SDRAM_EMOD); |
536e7dac TL |
60 | asm("nop"); |
61 | ||
aa0d99fc | 62 | out_be32(&sdram->ctrl, CONFIG_SYS_SDRAM_CTRL | 2); |
536e7dac TL |
63 | asm("nop"); |
64 | ||
aa0d99fc AW |
65 | out_be32(&sdram->ctrl, |
66 | (CONFIG_SYS_SDRAM_CTRL & ~0x80000000) | 0x10000c00); | |
536e7dac TL |
67 | asm("nop"); |
68 | ||
69 | udelay(100); | |
70 | ||
71 | return dramsize; | |
72 | }; | |
73 | ||
74 | int testdram(void) | |
75 | { | |
76 | /* TODO: XXX XXX XXX */ | |
77 | printf("DRAM test not implemented!\n"); | |
78 | ||
79 | return (0); | |
80 | } |