Commit | Line | Data |
---|---|---|
f6dfc805 DG |
1 | /* |
2 | * Copyright 2007 David Gibson, IBM Corporation. | |
3 | * | |
4 | * Based on earlier code: | |
5 | * Matt Porter <mporter@kernel.crashing.org> | |
6 | * Copyright 2002-2005 MontaVista Software Inc. | |
7 | * | |
8 | * Eugene Surovegin <eugene.surovegin@zultys.com> or <ebs@ebshome.net> | |
9 | * Copyright (c) 2003, 2004 Zultys Technologies | |
10 | * | |
11 | * This program is free software; you can redistribute it and/or | |
12 | * modify it under the terms of the GNU General Public License | |
13 | * as published by the Free Software Foundation; either version | |
14 | * 2 of the License, or (at your option) any later version. | |
15 | */ | |
16 | #include <stddef.h> | |
17 | #include "types.h" | |
18 | #include "string.h" | |
19 | #include "stdio.h" | |
20 | #include "ops.h" | |
21 | #include "reg.h" | |
22 | #include "dcr.h" | |
23 | ||
24 | /* Read the 44x memory controller to get size of system memory. */ | |
25 | void ibm44x_fixup_memsize(void) | |
26 | { | |
27 | int i; | |
28 | unsigned long memsize, bank_config; | |
29 | ||
30 | memsize = 0; | |
31 | for (i = 0; i < ARRAY_SIZE(sdram_bxcr); i++) { | |
32 | mtdcr(DCRN_SDRAM0_CFGADDR, sdram_bxcr[i]); | |
33 | bank_config = mfdcr(DCRN_SDRAM0_CFGDATA); | |
34 | ||
35 | if (bank_config & SDRAM_CONFIG_BANK_ENABLE) | |
36 | memsize += SDRAM_CONFIG_BANK_SIZE(bank_config); | |
37 | } | |
38 | ||
39 | dt_fixup_memory(0, memsize); | |
40 | } | |
11123346 DG |
41 | |
42 | #define SPRN_DBCR0 0x134 | |
43 | #define DBCR0_RST_SYSTEM 0x30000000 | |
44 | ||
45 | void ibm44x_dbcr_reset(void) | |
46 | { | |
47 | unsigned long tmp; | |
48 | ||
49 | asm volatile ( | |
50 | "mfspr %0,%1\n" | |
51 | "oris %0,%0,%2@h\n" | |
52 | "mtspr %1,%0" | |
53 | : "=&r"(tmp) : "i"(SPRN_DBCR0), "i"(DBCR0_RST_SYSTEM) | |
54 | ); | |
55 | ||
56 | } |