diff options
Diffstat (limited to 'board')
-rw-r--r-- | board/phycore_pcm038/lowlevel_init.S | 15 | ||||
-rw-r--r-- | board/phycore_pcm038/pcm038.c | 35 |
2 files changed, 30 insertions, 20 deletions
diff --git a/board/phycore_pcm038/lowlevel_init.S b/board/phycore_pcm038/lowlevel_init.S index 0c47c3a34c..fc65b902b6 100644 --- a/board/phycore_pcm038/lowlevel_init.S +++ b/board/phycore_pcm038/lowlevel_init.S @@ -50,6 +50,9 @@ board_init_lowlevel: writel(0x130410c3, PCDR0) writel(0x09030913, PCDR1) + /* skip sdram setup for debugging */ + mov pc,r10 + /* Skip SDRAM initialization if we run from RAM */ cmp pc, #0xa0000000 bls 1f @@ -69,9 +72,9 @@ board_init_lowlevel: writel(0x00005005, 0x10027838) writel(0x15555555, 0x1002783C) writel(0x00000004, 0xD8001010) - writel(0x00795729, 0xD8001004) + writel(0x006ac73a, 0xD8001004) writel(0x92100000, 0xD8001000) - writel(0x00000000, 0xA0000F00) + writel(0x00000000, 0xA0000F00) writel(0xA2100000, 0xD8001000) writel(0x00000000, 0xA0000F00) writel(0x00000000, 0xA0000F00) @@ -82,14 +85,14 @@ board_init_lowlevel: writel(0x00000000, 0xA0000F00) writel(0x00000000, 0xA0000F00) writel(0x00000000, 0xA0000F00) - writel(0xB2126080, 0xD8001000) + writel(0xb2100000, 0xD8001000) ldr r0, =0xA0000033 - mov r1, #0x0 + mov r1, #0xda strb r1, [r0] ldr r0, =0xA1000000 - mov r1, #0x0 + mov r1, #0xff strb r1, [r0] - writel(0x82126080, 0xD8001000) + writel(0x82226080, 0xD8001000) mov pc,r10 diff --git a/board/phycore_pcm038/pcm038.c b/board/phycore_pcm038/pcm038.c index 092abd1a7b..9b1f0e3761 100644 --- a/board/phycore_pcm038/pcm038.c +++ b/board/phycore_pcm038/pcm038.c @@ -24,6 +24,7 @@ #include <init.h> #include <environment.h> #include <asm/arch/imx-regs.h> +#include <asm-ppc/arch-mpc5200/fec.h> #include <asm/arch/gpio.h> #include <partition.h> #include <fs.h> @@ -42,45 +43,51 @@ static struct device_d sdram_dev = { .id = "ram0", .map_base = 0xa0000000, - .size = 32 * 1024 * 1024, + .size = 128 * 1024 * 1024, .type = DEVICE_TYPE_DRAM, }; +static struct mpc5xxx_fec_platform_data fec_info = { + .xcv_type = MII100, +}; + static struct device_d fec_dev = { - .name = "fec_imx27", + .name = "fec_mpc5xxx", .id = "eth0", - + .map_base = 0x1002b000, + .platform_data = &fec_info, .type = DEVICE_TYPE_ETHER, }; static int pcm038_devices_init(void) { int i; - unsigned short mode[] = { - PD12_AOUT_FEC_RXD0, - PD5_AOUT_FEC_RXD1, - PD6_AOUT_FEC_RXD2, - PD7_AOUT_FEC_RXD3, - PD4_AOUT_FEC_RX_ER, - PD13_AOUT_FEC_RX_DV, + unsigned int mode[] = { PD0_AIN_FEC_TXD0, PD1_AIN_FEC_TXD1, PD2_AIN_FEC_TXD2, PD3_AIN_FEC_TXD3, - PD11_AOUT_FEC_TX_CLK, - PF23_AIN_FEC_TX_EN, + PD4_AOUT_FEC_RX_ER, + PD5_AOUT_FEC_RXD1, + PD6_AOUT_FEC_RXD2, + PD7_AOUT_FEC_RXD3, PD8_AF_FEC_MDIO, - PD9_AIN_FEC_MDC, + PD9_AIN_FEC_MDC | GPIO_PUEN, + PD10_AOUT_FEC_CRS, + PD11_AOUT_FEC_TX_CLK, + PD12_AOUT_FEC_RXD0, + PD13_AOUT_FEC_RX_DV, PD14_AOUT_FEC_CLR, PD15_AOUT_FEC_COL, PD16_AIN_FEC_TX_ER, + PF23_AIN_FEC_TX_EN, PE12_PF_UART1_TXD, PE13_PF_UART1_RXD, PE14_PF_UART1_CTS, PE15_PF_UART1_RTS }; - for (i = 0; i < sizeof(mode) / sizeof(short); i ++) + for (i = 0; i < sizeof(mode) / sizeof(int); i++) imx_gpio_mode(mode[i]); register_device(&cfi_dev); |