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