Merge branch 'master' of git://git.denx.de/u-boot-arm
[kernel/u-boot.git] / board / cu824 / cu824.c
1 /*
2  * (C) Copyright 2001
3  * Rob Taylor, Flying Pig Systems. robt@flyingpig.com.
4  *
5  * (C) Copyright 2001-2006
6  * Wolfgang Denk, DENX Software Engineering, <wd@denx.de>
7
8  * SPDX-License-Identifier:     GPL-2.0+
9  */
10
11 #include <common.h>
12 #include <mpc824x.h>
13 #include <asm/processor.h>
14 #include <pci.h>
15 #include <netdev.h>
16
17 DECLARE_GLOBAL_DATA_PTR;
18
19 #define BOARD_REV_REG 0xFE80002B
20
21 int checkboard (void)
22 {
23         char  revision = *(volatile char *)(BOARD_REV_REG);
24         char  buf[32];
25
26         puts ("Board: CU824 ");
27         printf("Revision %d ", revision);
28         printf("Local Bus at %s MHz\n", strmhz(buf, gd->bus_clk));
29
30         return 0;
31 }
32
33 phys_size_t initdram(int board_type)
34 {
35         long size;
36         long new_bank0_end;
37         long mear1;
38         long emear1;
39
40         size = get_ram_size(CONFIG_SYS_SDRAM_BASE, CONFIG_SYS_MAX_RAM_SIZE);
41
42         new_bank0_end = size - 1;
43         mear1 = mpc824x_mpc107_getreg(MEAR1);
44         emear1 = mpc824x_mpc107_getreg(EMEAR1);
45         mear1 = (mear1  & 0xFFFFFF00) |
46                 ((new_bank0_end & MICR_ADDR_MASK) >> MICR_ADDR_SHIFT);
47         emear1 = (emear1 & 0xFFFFFF00) |
48                 ((new_bank0_end & MICR_ADDR_MASK) >> MICR_EADDR_SHIFT);
49         mpc824x_mpc107_setreg(MEAR1,  mear1);
50         mpc824x_mpc107_setreg(EMEAR1, emear1);
51
52         return (size);
53 }
54
55 /*
56  * Initialize PCI Devices, report devices found.
57  */
58 #ifndef CONFIG_PCI_PNP
59 static struct pci_config_table pci_sandpoint_config_table[] = {
60         { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, 0x0f, PCI_ANY_ID,
61           pci_cfgfunc_config_device, { PCI_ENET0_IOADDR,
62                                        PCI_ENET0_MEMADDR,
63                                        PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER }},
64
65         { }
66 };
67 #endif
68
69 struct pci_controller hose = {
70 #ifndef CONFIG_PCI_PNP
71         config_table: pci_sandpoint_config_table,
72 #endif
73 };
74
75 void pci_init_board(void)
76 {
77         pci_mpc824x_init(&hose);
78 }
79
80 int board_eth_init(bd_t *bis)
81 {
82         return pci_eth_init(bis);
83 }