~ubuntu-branches/ubuntu/maverick/uboot-imx/maverick

« back to all changes in this revision

Viewing changes to board/xes/xpedite5170/xpedite5170.c

  • Committer: Bazaar Package Importer
  • Author(s): Oliver Grawert
  • Date: 2010-01-20 15:41:26 UTC
  • mfrom: (1.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20100120154126-7bha1jeyjegu7xm5
Tags: 2009.08+really2009.01-0ubuntu1
* revert to the 2009.01 upstream version, 2009.08 has still to 
  many work in progress items in the freescale patchset (MMC and NIC
  dont work at all)
* add the latest patchset from freescale for 2009.01
* add 1002_enable_hush_shell_and_ext2.patch to enable hush shell and ext2 
* add 1003_fix_board_revision_numbers to make sure babbage 2.5 boards have 
  revision 51120 and babbage 3.0 boards have revision 51130 properly set in 
  their cpuinfo

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * Copyright 2009 Extreme Engineering Solutions, Inc.
3
 
 *
4
 
 * See file CREDITS for list of people who contributed to this
5
 
 * project.
6
 
 *
7
 
 * This program is free software; you can redistribute it and/or
8
 
 * modify it under the terms of the GNU General Public License as
9
 
 * published by the Free Software Foundation; either version 2 of
10
 
 * the License, or (at your option) any later version.
11
 
 *
12
 
 * This program is distributed in the hope that it will be useful,
13
 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
 
 * GNU General Public License for more details.
16
 
 *
17
 
 * You should have received a copy of the GNU General Public License
18
 
 * along with this program; if not, write to the Free Software
19
 
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
20
 
 * MA 02111-1307 USA
21
 
 */
22
 
 
23
 
#include <common.h>
24
 
#include <asm/processor.h>
25
 
#include <asm/mmu.h>
26
 
#include <asm/io.h>
27
 
#include <fdt_support.h>
28
 
#include <pca953x.h>
29
 
 
30
 
#if defined(CONFIG_OF_BOARD_SETUP) && defined(CONFIG_PCI)
31
 
extern void ft_board_pci_setup(void *blob, bd_t *bd);
32
 
#endif
33
 
 
34
 
int checkboard(void)
35
 
{
36
 
        char *s;
37
 
 
38
 
        printf("Board: X-ES %s 3U VPX SBC\n", CONFIG_SYS_BOARD_NAME);
39
 
        printf("       ");
40
 
        s = getenv("board_rev");
41
 
        if (s)
42
 
                printf("Rev %s, ", s);
43
 
        s = getenv("serial#");
44
 
        if (s)
45
 
                printf("Serial# %s, ", s);
46
 
        s = getenv("board_cfg");
47
 
        if (s)
48
 
                printf("Cfg %s", s);
49
 
        printf("\n");
50
 
 
51
 
        return 0;
52
 
}
53
 
/*
54
 
 * Print out which flash was booted from and if booting from the 2nd flash,
55
 
 * swap flash chip selects to maintain consistent flash numbering/addresses.
56
 
 */
57
 
static void flash_cs_fixup(void)
58
 
{
59
 
        immap_t *immap = (immap_t *)CONFIG_SYS_IMMR;
60
 
        ccsr_lbc_t *lbc = &immap->im_lbc;
61
 
        int flash_sel;
62
 
 
63
 
        /*
64
 
         * Print boot dev and swap flash flash chip selects if booted from 2nd
65
 
         * flash.  Swapping chip selects presents user with a common memory
66
 
         * map regardless of which flash was booted from.
67
 
         */
68
 
        flash_sel = !((pca953x_get_val(CONFIG_SYS_I2C_PCA953X_ADDR0) &
69
 
                        CONFIG_SYS_PCA953X_C0_FLASH_PASS_CS));
70
 
        printf("FLASH: Executed from FLASH%d\n", flash_sel ? 2 : 1);
71
 
 
72
 
        if (flash_sel) {
73
 
                out_be32(&lbc->br0, CONFIG_SYS_BR1_PRELIM);
74
 
                out_be32(&lbc->or0, CONFIG_SYS_OR1_PRELIM);
75
 
 
76
 
                out_be32(&lbc->br1, CONFIG_SYS_BR0_PRELIM);
77
 
                out_be32(&lbc->or1, CONFIG_SYS_OR0_PRELIM);
78
 
        }
79
 
}
80
 
 
81
 
int board_early_init_r(void)
82
 
{
83
 
        /* Initialize PCA9557 devices */
84
 
        pca953x_set_pol(CONFIG_SYS_I2C_PCA953X_ADDR0, 0xff, 0);
85
 
        pca953x_set_pol(CONFIG_SYS_I2C_PCA953X_ADDR1, 0xff, 0);
86
 
        pca953x_set_pol(CONFIG_SYS_I2C_PCA953X_ADDR2, 0xff, 0);
87
 
        pca953x_set_pol(CONFIG_SYS_I2C_PCA953X_ADDR3, 0xff, 0);
88
 
 
89
 
        flash_cs_fixup();
90
 
 
91
 
        return 0;
92
 
}
93
 
 
94
 
#if defined(CONFIG_OF_BOARD_SETUP)
95
 
void ft_board_setup(void *blob, bd_t *bd)
96
 
{
97
 
#ifdef CONFIG_PCI
98
 
        ft_board_pci_setup(blob, bd);
99
 
#endif
100
 
        ft_cpu_setup(blob, bd);
101
 
}
102
 
#endif
103
 
 
104
 
#ifdef CONFIG_MP
105
 
extern void cpu_mp_lmb_reserve(struct lmb *lmb);
106
 
 
107
 
void board_lmb_reserve(struct lmb *lmb)
108
 
{
109
 
        cpu_mp_lmb_reserve(lmb);
110
 
}
111
 
#endif