1 | /* |
---|
2 | * (C) Copyright 2004 |
---|
3 | * Yusdi Santoso, Adaptec Inc., yusdi_santoso@adaptec.com |
---|
4 | * |
---|
5 | * (C) Copyright 2000 |
---|
6 | * Rob Taylor, Flying Pig Systems. robt@flyingpig.com. |
---|
7 | * |
---|
8 | * See file CREDITS for list of people who contributed to this |
---|
9 | * project. |
---|
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 as |
---|
13 | * published by the Free Software Foundation; either version 2 of |
---|
14 | * the License, or (at your option) any later version. |
---|
15 | * |
---|
16 | * This program is distributed in the hope that it will be useful, |
---|
17 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
---|
18 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
---|
19 | * GNU General Public License for more details. |
---|
20 | * |
---|
21 | * You should have received a copy of the GNU General Public License |
---|
22 | * along with this program; if not, write to the Free Software |
---|
23 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, |
---|
24 | * MA 02111-1307 USA |
---|
25 | */ |
---|
26 | |
---|
27 | #include <common.h> |
---|
28 | #include <mpc824x.h> |
---|
29 | #include <pci.h> |
---|
30 | #include <netdev.h> |
---|
31 | |
---|
32 | int checkboard (void) |
---|
33 | { |
---|
34 | /*TODO: Check processor type */ |
---|
35 | |
---|
36 | puts ( "Board: Hidden Dragon " |
---|
37 | #ifdef CONFIG_MPC8240 |
---|
38 | "8240" |
---|
39 | #endif |
---|
40 | #ifdef CONFIG_MPC8245 |
---|
41 | "8245" |
---|
42 | #endif |
---|
43 | " ##Test not implemented yet##\n"); |
---|
44 | /* TODO: Implement board test */ |
---|
45 | return 0; |
---|
46 | } |
---|
47 | |
---|
48 | phys_size_t initdram (int board_type) |
---|
49 | { |
---|
50 | long size; |
---|
51 | long new_bank0_end; |
---|
52 | long mear1; |
---|
53 | long emear1; |
---|
54 | |
---|
55 | size = get_ram_size(CFG_SDRAM_BASE, CFG_MAX_RAM_SIZE); |
---|
56 | |
---|
57 | new_bank0_end = size - 1; |
---|
58 | mear1 = mpc824x_mpc107_getreg(MEAR1); |
---|
59 | emear1 = mpc824x_mpc107_getreg(EMEAR1); |
---|
60 | mear1 = (mear1 & 0xFFFFFF00) | |
---|
61 | ((new_bank0_end & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT); |
---|
62 | emear1 = (emear1 & 0xFFFFFF00) | |
---|
63 | ((new_bank0_end & MICR_ADDR_MASK) >> MICR_EADDR_SHIFT); |
---|
64 | mpc824x_mpc107_setreg(MEAR1, mear1); |
---|
65 | mpc824x_mpc107_setreg(EMEAR1, emear1); |
---|
66 | |
---|
67 | return (size); |
---|
68 | } |
---|
69 | |
---|
70 | /* |
---|
71 | * Initialize PCI Devices, report devices found. |
---|
72 | */ |
---|
73 | #ifndef CONFIG_PCI_PNP |
---|
74 | static struct pci_config_table pci_hidden_dragon_config_table[] = { |
---|
75 | { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, 0x0f, PCI_ANY_ID, |
---|
76 | pci_cfgfunc_config_device, { PCI_ENET0_IOADDR, |
---|
77 | PCI_ENET0_MEMADDR, |
---|
78 | PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER }}, |
---|
79 | { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, 0x10, PCI_ANY_ID, |
---|
80 | pci_cfgfunc_config_device, { PCI_ENET1_IOADDR, |
---|
81 | PCI_ENET1_MEMADDR, |
---|
82 | PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER }}, |
---|
83 | { } |
---|
84 | }; |
---|
85 | #endif |
---|
86 | |
---|
87 | struct pci_controller hose = { |
---|
88 | #ifndef CONFIG_PCI_PNP |
---|
89 | config_table: pci_hidden_dragon_config_table, |
---|
90 | #endif |
---|
91 | }; |
---|
92 | |
---|
93 | void pci_init_board(void) |
---|
94 | { |
---|
95 | pci_mpc824x_init(&hose); |
---|
96 | } |
---|
97 | |
---|
98 | int board_eth_init(bd_t *bis) |
---|
99 | { |
---|
100 | return pci_eth_init(bis); |
---|
101 | } |
---|