Commit 98d012292495fff1662b107e188bbbb17e32a0f7
Committed by
Stefano Babic
1 parent
164d984661
Exists in
master
and in
52 other branches
udoo: Add SATA support on uDoo Board.
Add SATA support on uDoo Board. Signed-off-by: Giuseppe Pagano <giuseppe.pagano@seco.com> CC: Stefano Babic <sbabic@denx.de> CC: Fabio Estevam <fabio.estevam@freescale.com>
Showing 2 changed files with 16 additions and 0 deletions Inline Diff
board/udoo/udoo.c
1 | /* | 1 | /* |
2 | * Copyright (C) 2013 Freescale Semiconductor, Inc. | 2 | * Copyright (C) 2013 Freescale Semiconductor, Inc. |
3 | * | 3 | * |
4 | * Author: Fabio Estevam <fabio.estevam@freescale.com> | 4 | * Author: Fabio Estevam <fabio.estevam@freescale.com> |
5 | * | 5 | * |
6 | * SPDX-License-Identifier: GPL-2.0+ | 6 | * SPDX-License-Identifier: GPL-2.0+ |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <asm/arch/clock.h> | 9 | #include <asm/arch/clock.h> |
10 | #include <asm/arch/imx-regs.h> | 10 | #include <asm/arch/imx-regs.h> |
11 | #include <asm/arch/iomux.h> | 11 | #include <asm/arch/iomux.h> |
12 | #include <malloc.h> | 12 | #include <malloc.h> |
13 | #include <asm/arch/mx6-pins.h> | 13 | #include <asm/arch/mx6-pins.h> |
14 | #include <asm/errno.h> | 14 | #include <asm/errno.h> |
15 | #include <asm/gpio.h> | 15 | #include <asm/gpio.h> |
16 | #include <asm/imx-common/iomux-v3.h> | 16 | #include <asm/imx-common/iomux-v3.h> |
17 | #include <asm/imx-common/sata.h> | ||
17 | #include <mmc.h> | 18 | #include <mmc.h> |
18 | #include <fsl_esdhc.h> | 19 | #include <fsl_esdhc.h> |
19 | #include <asm/arch/crm_regs.h> | 20 | #include <asm/arch/crm_regs.h> |
20 | #include <asm/io.h> | 21 | #include <asm/io.h> |
21 | #include <asm/arch/sys_proto.h> | 22 | #include <asm/arch/sys_proto.h> |
22 | #include <micrel.h> | 23 | #include <micrel.h> |
23 | #include <miiphy.h> | 24 | #include <miiphy.h> |
24 | #include <netdev.h> | 25 | #include <netdev.h> |
25 | 26 | ||
26 | DECLARE_GLOBAL_DATA_PTR; | 27 | DECLARE_GLOBAL_DATA_PTR; |
27 | 28 | ||
28 | #define UART_PAD_CTRL (PAD_CTL_PUS_100K_UP | \ | 29 | #define UART_PAD_CTRL (PAD_CTL_PUS_100K_UP | \ |
29 | PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | \ | 30 | PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | \ |
30 | PAD_CTL_SRE_FAST | PAD_CTL_HYS) | 31 | PAD_CTL_SRE_FAST | PAD_CTL_HYS) |
31 | 32 | ||
32 | #define ENET_PAD_CTRL (PAD_CTL_PUS_100K_UP | \ | 33 | #define ENET_PAD_CTRL (PAD_CTL_PUS_100K_UP | \ |
33 | PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS) | 34 | PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS) |
34 | 35 | ||
35 | #define USDHC_PAD_CTRL (PAD_CTL_PUS_47K_UP | \ | 36 | #define USDHC_PAD_CTRL (PAD_CTL_PUS_47K_UP | \ |
36 | PAD_CTL_SPEED_LOW | PAD_CTL_DSE_80ohm | \ | 37 | PAD_CTL_SPEED_LOW | PAD_CTL_DSE_80ohm | \ |
37 | PAD_CTL_SRE_FAST | PAD_CTL_HYS) | 38 | PAD_CTL_SRE_FAST | PAD_CTL_HYS) |
38 | 39 | ||
39 | #define WDT_EN IMX_GPIO_NR(5, 4) | 40 | #define WDT_EN IMX_GPIO_NR(5, 4) |
40 | #define WDT_TRG IMX_GPIO_NR(3, 19) | 41 | #define WDT_TRG IMX_GPIO_NR(3, 19) |
41 | 42 | ||
42 | int dram_init(void) | 43 | int dram_init(void) |
43 | { | 44 | { |
44 | gd->ram_size = (phys_size_t)CONFIG_DDR_MB * 1024 * 1024; | 45 | gd->ram_size = (phys_size_t)CONFIG_DDR_MB * 1024 * 1024; |
45 | 46 | ||
46 | return 0; | 47 | return 0; |
47 | } | 48 | } |
48 | 49 | ||
49 | static iomux_v3_cfg_t const uart2_pads[] = { | 50 | static iomux_v3_cfg_t const uart2_pads[] = { |
50 | MX6_PAD_EIM_D26__UART2_TX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL), | 51 | MX6_PAD_EIM_D26__UART2_TX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL), |
51 | MX6_PAD_EIM_D27__UART2_RX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL), | 52 | MX6_PAD_EIM_D27__UART2_RX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL), |
52 | }; | 53 | }; |
53 | 54 | ||
54 | static iomux_v3_cfg_t const usdhc3_pads[] = { | 55 | static iomux_v3_cfg_t const usdhc3_pads[] = { |
55 | MX6_PAD_SD3_CLK__SD3_CLK | MUX_PAD_CTRL(USDHC_PAD_CTRL), | 56 | MX6_PAD_SD3_CLK__SD3_CLK | MUX_PAD_CTRL(USDHC_PAD_CTRL), |
56 | MX6_PAD_SD3_CMD__SD3_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL), | 57 | MX6_PAD_SD3_CMD__SD3_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL), |
57 | MX6_PAD_SD3_DAT0__SD3_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL), | 58 | MX6_PAD_SD3_DAT0__SD3_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL), |
58 | MX6_PAD_SD3_DAT1__SD3_DATA1 | MUX_PAD_CTRL(USDHC_PAD_CTRL), | 59 | MX6_PAD_SD3_DAT1__SD3_DATA1 | MUX_PAD_CTRL(USDHC_PAD_CTRL), |
59 | MX6_PAD_SD3_DAT2__SD3_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL), | 60 | MX6_PAD_SD3_DAT2__SD3_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL), |
60 | MX6_PAD_SD3_DAT3__SD3_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL), | 61 | MX6_PAD_SD3_DAT3__SD3_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL), |
61 | }; | 62 | }; |
62 | 63 | ||
63 | static iomux_v3_cfg_t const wdog_pads[] = { | 64 | static iomux_v3_cfg_t const wdog_pads[] = { |
64 | MX6_PAD_EIM_A24__GPIO5_IO04 | MUX_PAD_CTRL(NO_PAD_CTRL), | 65 | MX6_PAD_EIM_A24__GPIO5_IO04 | MUX_PAD_CTRL(NO_PAD_CTRL), |
65 | MX6_PAD_EIM_D19__GPIO3_IO19, | 66 | MX6_PAD_EIM_D19__GPIO3_IO19, |
66 | }; | 67 | }; |
67 | 68 | ||
68 | int mx6_rgmii_rework(struct phy_device *phydev) | 69 | int mx6_rgmii_rework(struct phy_device *phydev) |
69 | { | 70 | { |
70 | /* | 71 | /* |
71 | * Bug: Apparently uDoo does not works with Gigabit switches... | 72 | * Bug: Apparently uDoo does not works with Gigabit switches... |
72 | * Limiting speed to 10/100Mbps, and setting master mode, seems to | 73 | * Limiting speed to 10/100Mbps, and setting master mode, seems to |
73 | * be the only way to have a successfull PHY auto negotiation. | 74 | * be the only way to have a successfull PHY auto negotiation. |
74 | * How to fix: Understand why Linux kernel do not have this issue. | 75 | * How to fix: Understand why Linux kernel do not have this issue. |
75 | */ | 76 | */ |
76 | phy_write(phydev, MDIO_DEVAD_NONE, MII_CTRL1000, 0x1c00); | 77 | phy_write(phydev, MDIO_DEVAD_NONE, MII_CTRL1000, 0x1c00); |
77 | 78 | ||
78 | /* control data pad skew - devaddr = 0x02, register = 0x04 */ | 79 | /* control data pad skew - devaddr = 0x02, register = 0x04 */ |
79 | ksz9031_phy_extended_write(phydev, 0x02, | 80 | ksz9031_phy_extended_write(phydev, 0x02, |
80 | MII_KSZ9031_EXT_RGMII_CTRL_SIG_SKEW, | 81 | MII_KSZ9031_EXT_RGMII_CTRL_SIG_SKEW, |
81 | MII_KSZ9031_MOD_DATA_NO_POST_INC, 0x0000); | 82 | MII_KSZ9031_MOD_DATA_NO_POST_INC, 0x0000); |
82 | /* rx data pad skew - devaddr = 0x02, register = 0x05 */ | 83 | /* rx data pad skew - devaddr = 0x02, register = 0x05 */ |
83 | ksz9031_phy_extended_write(phydev, 0x02, | 84 | ksz9031_phy_extended_write(phydev, 0x02, |
84 | MII_KSZ9031_EXT_RGMII_RX_DATA_SKEW, | 85 | MII_KSZ9031_EXT_RGMII_RX_DATA_SKEW, |
85 | MII_KSZ9031_MOD_DATA_NO_POST_INC, 0x0000); | 86 | MII_KSZ9031_MOD_DATA_NO_POST_INC, 0x0000); |
86 | /* tx data pad skew - devaddr = 0x02, register = 0x05 */ | 87 | /* tx data pad skew - devaddr = 0x02, register = 0x05 */ |
87 | ksz9031_phy_extended_write(phydev, 0x02, | 88 | ksz9031_phy_extended_write(phydev, 0x02, |
88 | MII_KSZ9031_EXT_RGMII_TX_DATA_SKEW, | 89 | MII_KSZ9031_EXT_RGMII_TX_DATA_SKEW, |
89 | MII_KSZ9031_MOD_DATA_NO_POST_INC, 0x0000); | 90 | MII_KSZ9031_MOD_DATA_NO_POST_INC, 0x0000); |
90 | /* gtx and rx clock pad skew - devaddr = 0x02, register = 0x08 */ | 91 | /* gtx and rx clock pad skew - devaddr = 0x02, register = 0x08 */ |
91 | ksz9031_phy_extended_write(phydev, 0x02, | 92 | ksz9031_phy_extended_write(phydev, 0x02, |
92 | MII_KSZ9031_EXT_RGMII_CLOCK_SKEW, | 93 | MII_KSZ9031_EXT_RGMII_CLOCK_SKEW, |
93 | MII_KSZ9031_MOD_DATA_NO_POST_INC, 0x03FF); | 94 | MII_KSZ9031_MOD_DATA_NO_POST_INC, 0x03FF); |
94 | return 0; | 95 | return 0; |
95 | } | 96 | } |
96 | 97 | ||
97 | static iomux_v3_cfg_t const enet_pads1[] = { | 98 | static iomux_v3_cfg_t const enet_pads1[] = { |
98 | MX6_PAD_ENET_MDIO__ENET_MDIO | MUX_PAD_CTRL(ENET_PAD_CTRL), | 99 | MX6_PAD_ENET_MDIO__ENET_MDIO | MUX_PAD_CTRL(ENET_PAD_CTRL), |
99 | MX6_PAD_ENET_MDC__ENET_MDC | MUX_PAD_CTRL(ENET_PAD_CTRL), | 100 | MX6_PAD_ENET_MDC__ENET_MDC | MUX_PAD_CTRL(ENET_PAD_CTRL), |
100 | MX6_PAD_RGMII_TXC__RGMII_TXC | MUX_PAD_CTRL(ENET_PAD_CTRL), | 101 | MX6_PAD_RGMII_TXC__RGMII_TXC | MUX_PAD_CTRL(ENET_PAD_CTRL), |
101 | MX6_PAD_RGMII_TD0__RGMII_TD0 | MUX_PAD_CTRL(ENET_PAD_CTRL), | 102 | MX6_PAD_RGMII_TD0__RGMII_TD0 | MUX_PAD_CTRL(ENET_PAD_CTRL), |
102 | MX6_PAD_RGMII_TD1__RGMII_TD1 | MUX_PAD_CTRL(ENET_PAD_CTRL), | 103 | MX6_PAD_RGMII_TD1__RGMII_TD1 | MUX_PAD_CTRL(ENET_PAD_CTRL), |
103 | MX6_PAD_RGMII_TD2__RGMII_TD2 | MUX_PAD_CTRL(ENET_PAD_CTRL), | 104 | MX6_PAD_RGMII_TD2__RGMII_TD2 | MUX_PAD_CTRL(ENET_PAD_CTRL), |
104 | MX6_PAD_RGMII_TD3__RGMII_TD3 | MUX_PAD_CTRL(ENET_PAD_CTRL), | 105 | MX6_PAD_RGMII_TD3__RGMII_TD3 | MUX_PAD_CTRL(ENET_PAD_CTRL), |
105 | MX6_PAD_RGMII_TX_CTL__RGMII_TX_CTL | MUX_PAD_CTRL(ENET_PAD_CTRL), | 106 | MX6_PAD_RGMII_TX_CTL__RGMII_TX_CTL | MUX_PAD_CTRL(ENET_PAD_CTRL), |
106 | MX6_PAD_ENET_REF_CLK__ENET_TX_CLK | MUX_PAD_CTRL(ENET_PAD_CTRL), | 107 | MX6_PAD_ENET_REF_CLK__ENET_TX_CLK | MUX_PAD_CTRL(ENET_PAD_CTRL), |
107 | MX6_PAD_RGMII_RXC__RGMII_RXC | MUX_PAD_CTRL(ENET_PAD_CTRL), | 108 | MX6_PAD_RGMII_RXC__RGMII_RXC | MUX_PAD_CTRL(ENET_PAD_CTRL), |
108 | /* RGMII reset */ | 109 | /* RGMII reset */ |
109 | MX6_PAD_EIM_D23__GPIO3_IO23 | MUX_PAD_CTRL(NO_PAD_CTRL), | 110 | MX6_PAD_EIM_D23__GPIO3_IO23 | MUX_PAD_CTRL(NO_PAD_CTRL), |
110 | /* Ethernet power supply */ | 111 | /* Ethernet power supply */ |
111 | MX6_PAD_EIM_EB3__GPIO2_IO31 | MUX_PAD_CTRL(NO_PAD_CTRL), | 112 | MX6_PAD_EIM_EB3__GPIO2_IO31 | MUX_PAD_CTRL(NO_PAD_CTRL), |
112 | /* pin 32 - 1 - (MODE0) all */ | 113 | /* pin 32 - 1 - (MODE0) all */ |
113 | MX6_PAD_RGMII_RD0__GPIO6_IO25 | MUX_PAD_CTRL(NO_PAD_CTRL), | 114 | MX6_PAD_RGMII_RD0__GPIO6_IO25 | MUX_PAD_CTRL(NO_PAD_CTRL), |
114 | /* pin 31 - 1 - (MODE1) all */ | 115 | /* pin 31 - 1 - (MODE1) all */ |
115 | MX6_PAD_RGMII_RD1__GPIO6_IO27 | MUX_PAD_CTRL(NO_PAD_CTRL), | 116 | MX6_PAD_RGMII_RD1__GPIO6_IO27 | MUX_PAD_CTRL(NO_PAD_CTRL), |
116 | /* pin 28 - 1 - (MODE2) all */ | 117 | /* pin 28 - 1 - (MODE2) all */ |
117 | MX6_PAD_RGMII_RD2__GPIO6_IO28 | MUX_PAD_CTRL(NO_PAD_CTRL), | 118 | MX6_PAD_RGMII_RD2__GPIO6_IO28 | MUX_PAD_CTRL(NO_PAD_CTRL), |
118 | /* pin 27 - 1 - (MODE3) all */ | 119 | /* pin 27 - 1 - (MODE3) all */ |
119 | MX6_PAD_RGMII_RD3__GPIO6_IO29 | MUX_PAD_CTRL(NO_PAD_CTRL), | 120 | MX6_PAD_RGMII_RD3__GPIO6_IO29 | MUX_PAD_CTRL(NO_PAD_CTRL), |
120 | /* pin 33 - 1 - (CLK125_EN) 125Mhz clockout enabled */ | 121 | /* pin 33 - 1 - (CLK125_EN) 125Mhz clockout enabled */ |
121 | MX6_PAD_RGMII_RX_CTL__GPIO6_IO24 | MUX_PAD_CTRL(NO_PAD_CTRL), | 122 | MX6_PAD_RGMII_RX_CTL__GPIO6_IO24 | MUX_PAD_CTRL(NO_PAD_CTRL), |
122 | }; | 123 | }; |
123 | 124 | ||
124 | static iomux_v3_cfg_t const enet_pads2[] = { | 125 | static iomux_v3_cfg_t const enet_pads2[] = { |
125 | MX6_PAD_RGMII_RD0__RGMII_RD0 | MUX_PAD_CTRL(ENET_PAD_CTRL), | 126 | MX6_PAD_RGMII_RD0__RGMII_RD0 | MUX_PAD_CTRL(ENET_PAD_CTRL), |
126 | MX6_PAD_RGMII_RD1__RGMII_RD1 | MUX_PAD_CTRL(ENET_PAD_CTRL), | 127 | MX6_PAD_RGMII_RD1__RGMII_RD1 | MUX_PAD_CTRL(ENET_PAD_CTRL), |
127 | MX6_PAD_RGMII_RD2__RGMII_RD2 | MUX_PAD_CTRL(ENET_PAD_CTRL), | 128 | MX6_PAD_RGMII_RD2__RGMII_RD2 | MUX_PAD_CTRL(ENET_PAD_CTRL), |
128 | MX6_PAD_RGMII_RD3__RGMII_RD3 | MUX_PAD_CTRL(ENET_PAD_CTRL), | 129 | MX6_PAD_RGMII_RD3__RGMII_RD3 | MUX_PAD_CTRL(ENET_PAD_CTRL), |
129 | MX6_PAD_RGMII_RX_CTL__RGMII_RX_CTL | MUX_PAD_CTRL(ENET_PAD_CTRL), | 130 | MX6_PAD_RGMII_RX_CTL__RGMII_RX_CTL | MUX_PAD_CTRL(ENET_PAD_CTRL), |
130 | }; | 131 | }; |
131 | 132 | ||
132 | static void setup_iomux_enet(void) | 133 | static void setup_iomux_enet(void) |
133 | { | 134 | { |
134 | imx_iomux_v3_setup_multiple_pads(enet_pads1, ARRAY_SIZE(enet_pads1)); | 135 | imx_iomux_v3_setup_multiple_pads(enet_pads1, ARRAY_SIZE(enet_pads1)); |
135 | udelay(20); | 136 | udelay(20); |
136 | gpio_direction_output(IMX_GPIO_NR(2, 31), 1); /* Power supply on */ | 137 | gpio_direction_output(IMX_GPIO_NR(2, 31), 1); /* Power supply on */ |
137 | 138 | ||
138 | gpio_direction_output(IMX_GPIO_NR(3, 23), 0); /* assert PHY rst */ | 139 | gpio_direction_output(IMX_GPIO_NR(3, 23), 0); /* assert PHY rst */ |
139 | 140 | ||
140 | gpio_direction_output(IMX_GPIO_NR(6, 24), 1); | 141 | gpio_direction_output(IMX_GPIO_NR(6, 24), 1); |
141 | gpio_direction_output(IMX_GPIO_NR(6, 25), 1); | 142 | gpio_direction_output(IMX_GPIO_NR(6, 25), 1); |
142 | gpio_direction_output(IMX_GPIO_NR(6, 27), 1); | 143 | gpio_direction_output(IMX_GPIO_NR(6, 27), 1); |
143 | gpio_direction_output(IMX_GPIO_NR(6, 28), 1); | 144 | gpio_direction_output(IMX_GPIO_NR(6, 28), 1); |
144 | gpio_direction_output(IMX_GPIO_NR(6, 29), 1); | 145 | gpio_direction_output(IMX_GPIO_NR(6, 29), 1); |
145 | udelay(1000); | 146 | udelay(1000); |
146 | 147 | ||
147 | gpio_set_value(IMX_GPIO_NR(3, 23), 1); /* deassert PHY rst */ | 148 | gpio_set_value(IMX_GPIO_NR(3, 23), 1); /* deassert PHY rst */ |
148 | 149 | ||
149 | /* Need 100ms delay to exit from reset. */ | 150 | /* Need 100ms delay to exit from reset. */ |
150 | udelay(1000 * 100); | 151 | udelay(1000 * 100); |
151 | 152 | ||
152 | gpio_free(IMX_GPIO_NR(6, 24)); | 153 | gpio_free(IMX_GPIO_NR(6, 24)); |
153 | gpio_free(IMX_GPIO_NR(6, 25)); | 154 | gpio_free(IMX_GPIO_NR(6, 25)); |
154 | gpio_free(IMX_GPIO_NR(6, 27)); | 155 | gpio_free(IMX_GPIO_NR(6, 27)); |
155 | gpio_free(IMX_GPIO_NR(6, 28)); | 156 | gpio_free(IMX_GPIO_NR(6, 28)); |
156 | gpio_free(IMX_GPIO_NR(6, 29)); | 157 | gpio_free(IMX_GPIO_NR(6, 29)); |
157 | 158 | ||
158 | imx_iomux_v3_setup_multiple_pads(enet_pads2, ARRAY_SIZE(enet_pads2)); | 159 | imx_iomux_v3_setup_multiple_pads(enet_pads2, ARRAY_SIZE(enet_pads2)); |
159 | } | 160 | } |
160 | 161 | ||
161 | static void setup_iomux_uart(void) | 162 | static void setup_iomux_uart(void) |
162 | { | 163 | { |
163 | imx_iomux_v3_setup_multiple_pads(uart2_pads, ARRAY_SIZE(uart2_pads)); | 164 | imx_iomux_v3_setup_multiple_pads(uart2_pads, ARRAY_SIZE(uart2_pads)); |
164 | } | 165 | } |
165 | 166 | ||
166 | static void setup_iomux_wdog(void) | 167 | static void setup_iomux_wdog(void) |
167 | { | 168 | { |
168 | imx_iomux_v3_setup_multiple_pads(wdog_pads, ARRAY_SIZE(wdog_pads)); | 169 | imx_iomux_v3_setup_multiple_pads(wdog_pads, ARRAY_SIZE(wdog_pads)); |
169 | gpio_direction_output(WDT_TRG, 0); | 170 | gpio_direction_output(WDT_TRG, 0); |
170 | gpio_direction_output(WDT_EN, 1); | 171 | gpio_direction_output(WDT_EN, 1); |
171 | gpio_direction_input(WDT_TRG); | 172 | gpio_direction_input(WDT_TRG); |
172 | } | 173 | } |
173 | 174 | ||
174 | static struct fsl_esdhc_cfg usdhc_cfg = { USDHC3_BASE_ADDR }; | 175 | static struct fsl_esdhc_cfg usdhc_cfg = { USDHC3_BASE_ADDR }; |
175 | 176 | ||
176 | int board_mmc_getcd(struct mmc *mmc) | 177 | int board_mmc_getcd(struct mmc *mmc) |
177 | { | 178 | { |
178 | return 1; /* Always present */ | 179 | return 1; /* Always present */ |
179 | } | 180 | } |
180 | 181 | ||
181 | int board_eth_init(bd_t *bis) | 182 | int board_eth_init(bd_t *bis) |
182 | { | 183 | { |
183 | uint32_t base = IMX_FEC_BASE; | 184 | uint32_t base = IMX_FEC_BASE; |
184 | struct mii_dev *bus = NULL; | 185 | struct mii_dev *bus = NULL; |
185 | struct phy_device *phydev = NULL; | 186 | struct phy_device *phydev = NULL; |
186 | int ret; | 187 | int ret; |
187 | 188 | ||
188 | setup_iomux_enet(); | 189 | setup_iomux_enet(); |
189 | 190 | ||
190 | #ifdef CONFIG_FEC_MXC | 191 | #ifdef CONFIG_FEC_MXC |
191 | bus = fec_get_miibus(base, -1); | 192 | bus = fec_get_miibus(base, -1); |
192 | if (!bus) | 193 | if (!bus) |
193 | return 0; | 194 | return 0; |
194 | /* scan phy 4,5,6,7 */ | 195 | /* scan phy 4,5,6,7 */ |
195 | phydev = phy_find_by_mask(bus, (0xf << 4), PHY_INTERFACE_MODE_RGMII); | 196 | phydev = phy_find_by_mask(bus, (0xf << 4), PHY_INTERFACE_MODE_RGMII); |
196 | 197 | ||
197 | if (!phydev) { | 198 | if (!phydev) { |
198 | free(bus); | 199 | free(bus); |
199 | return 0; | 200 | return 0; |
200 | } | 201 | } |
201 | printf("using phy at %d\n", phydev->addr); | 202 | printf("using phy at %d\n", phydev->addr); |
202 | ret = fec_probe(bis, -1, base, bus, phydev); | 203 | ret = fec_probe(bis, -1, base, bus, phydev); |
203 | if (ret) { | 204 | if (ret) { |
204 | printf("FEC MXC: %s:failed\n", __func__); | 205 | printf("FEC MXC: %s:failed\n", __func__); |
205 | free(phydev); | 206 | free(phydev); |
206 | free(bus); | 207 | free(bus); |
207 | } | 208 | } |
208 | #endif | 209 | #endif |
209 | return 0; | 210 | return 0; |
210 | } | 211 | } |
211 | 212 | ||
212 | int board_mmc_init(bd_t *bis) | 213 | int board_mmc_init(bd_t *bis) |
213 | { | 214 | { |
214 | imx_iomux_v3_setup_multiple_pads(usdhc3_pads, ARRAY_SIZE(usdhc3_pads)); | 215 | imx_iomux_v3_setup_multiple_pads(usdhc3_pads, ARRAY_SIZE(usdhc3_pads)); |
215 | usdhc_cfg.sdhc_clk = mxc_get_clock(MXC_ESDHC3_CLK); | 216 | usdhc_cfg.sdhc_clk = mxc_get_clock(MXC_ESDHC3_CLK); |
216 | usdhc_cfg.max_bus_width = 4; | 217 | usdhc_cfg.max_bus_width = 4; |
217 | 218 | ||
218 | return fsl_esdhc_initialize(bis, &usdhc_cfg); | 219 | return fsl_esdhc_initialize(bis, &usdhc_cfg); |
219 | } | 220 | } |
220 | 221 | ||
221 | int board_early_init_f(void) | 222 | int board_early_init_f(void) |
222 | { | 223 | { |
223 | setup_iomux_wdog(); | 224 | setup_iomux_wdog(); |
224 | setup_iomux_uart(); | 225 | setup_iomux_uart(); |
225 | 226 | ||
226 | return 0; | 227 | return 0; |
227 | } | 228 | } |
228 | 229 | ||
229 | int board_phy_config(struct phy_device *phydev) | 230 | int board_phy_config(struct phy_device *phydev) |
230 | { | 231 | { |
231 | mx6_rgmii_rework(phydev); | 232 | mx6_rgmii_rework(phydev); |
232 | if (phydev->drv->config) | 233 | if (phydev->drv->config) |
233 | phydev->drv->config(phydev); | 234 | phydev->drv->config(phydev); |
234 | 235 | ||
235 | return 0; | 236 | return 0; |
236 | } | 237 | } |
237 | 238 | ||
238 | int board_init(void) | 239 | int board_init(void) |
239 | { | 240 | { |
240 | /* address of boot parameters */ | 241 | /* address of boot parameters */ |
241 | gd->bd->bi_boot_params = PHYS_SDRAM + 0x100; | 242 | gd->bd->bi_boot_params = PHYS_SDRAM + 0x100; |
242 | 243 | ||
244 | #ifdef CONFIG_CMD_SATA | ||
245 | setup_sata(); | ||
246 | #endif | ||
243 | return 0; | 247 | return 0; |
244 | } | 248 | } |
245 | 249 | ||
246 | int checkboard(void) | 250 | int checkboard(void) |
247 | { | 251 | { |
248 | puts("Board: Udoo\n"); | 252 | puts("Board: Udoo\n"); |
249 | 253 | ||
250 | return 0; | 254 | return 0; |
251 | } | 255 | } |
252 | 256 |
include/configs/udoo.h
1 | /* | 1 | /* |
2 | * Copyright (C) 2013 Freescale Semiconductor, Inc. | 2 | * Copyright (C) 2013 Freescale Semiconductor, Inc. |
3 | * | 3 | * |
4 | * Configuration settings for Udoo board. | 4 | * Configuration settings for Udoo board. |
5 | * | 5 | * |
6 | * SPDX-License-Identifier: GPL-2.0+ | 6 | * SPDX-License-Identifier: GPL-2.0+ |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #ifndef __CONFIG_H | 9 | #ifndef __CONFIG_H |
10 | #define __CONFIG_H | 10 | #define __CONFIG_H |
11 | 11 | ||
12 | #include <asm/arch/imx-regs.h> | 12 | #include <asm/arch/imx-regs.h> |
13 | #include <asm/imx-common/gpio.h> | 13 | #include <asm/imx-common/gpio.h> |
14 | #include <asm/sizes.h> | 14 | #include <asm/sizes.h> |
15 | 15 | ||
16 | #define CONFIG_MX6 | 16 | #define CONFIG_MX6 |
17 | #define CONFIG_DISPLAY_CPUINFO | 17 | #define CONFIG_DISPLAY_CPUINFO |
18 | #define CONFIG_DISPLAY_BOARDINFO | 18 | #define CONFIG_DISPLAY_BOARDINFO |
19 | 19 | ||
20 | #define MACH_TYPE_UDOO 4800 | 20 | #define MACH_TYPE_UDOO 4800 |
21 | #define CONFIG_MACH_TYPE MACH_TYPE_UDOO | 21 | #define CONFIG_MACH_TYPE MACH_TYPE_UDOO |
22 | 22 | ||
23 | #define CONFIG_CMDLINE_TAG | 23 | #define CONFIG_CMDLINE_TAG |
24 | #define CONFIG_SETUP_MEMORY_TAGS | 24 | #define CONFIG_SETUP_MEMORY_TAGS |
25 | #define CONFIG_INITRD_TAG | 25 | #define CONFIG_INITRD_TAG |
26 | #define CONFIG_REVISION_TAG | 26 | #define CONFIG_REVISION_TAG |
27 | 27 | ||
28 | /* Size of malloc() pool */ | 28 | /* Size of malloc() pool */ |
29 | #define CONFIG_SYS_MALLOC_LEN (2 * SZ_1M) | 29 | #define CONFIG_SYS_MALLOC_LEN (2 * SZ_1M) |
30 | 30 | ||
31 | #define CONFIG_BOARD_EARLY_INIT_F | 31 | #define CONFIG_BOARD_EARLY_INIT_F |
32 | #define CONFIG_MXC_GPIO | 32 | #define CONFIG_MXC_GPIO |
33 | 33 | ||
34 | #define CONFIG_MXC_UART | 34 | #define CONFIG_MXC_UART |
35 | #define CONFIG_MXC_UART_BASE UART2_BASE | 35 | #define CONFIG_MXC_UART_BASE UART2_BASE |
36 | 36 | ||
37 | /* SATA Configs */ | ||
38 | |||
39 | #define CONFIG_CMD_SATA | ||
40 | #ifdef CONFIG_CMD_SATA | ||
41 | #define CONFIG_DWC_AHSATA | ||
42 | #define CONFIG_SYS_SATA_MAX_DEVICE 1 | ||
43 | #define CONFIG_DWC_AHSATA_PORT_ID 0 | ||
44 | #define CONFIG_DWC_AHSATA_BASE_ADDR SATA_ARB_BASE_ADDR | ||
45 | #define CONFIG_LBA48 | ||
46 | #define CONFIG_LIBATA | ||
47 | #endif | ||
48 | |||
37 | /* Network support */ | 49 | /* Network support */ |
38 | 50 | ||
39 | #define CONFIG_CMD_PING | 51 | #define CONFIG_CMD_PING |
40 | #define CONFIG_CMD_DHCP | 52 | #define CONFIG_CMD_DHCP |
41 | #define CONFIG_CMD_MII | 53 | #define CONFIG_CMD_MII |
42 | #define CONFIG_CMD_NET | 54 | #define CONFIG_CMD_NET |
43 | #define CONFIG_FEC_MXC | 55 | #define CONFIG_FEC_MXC |
44 | #define CONFIG_MII | 56 | #define CONFIG_MII |
45 | #define IMX_FEC_BASE ENET_BASE_ADDR | 57 | #define IMX_FEC_BASE ENET_BASE_ADDR |
46 | #define CONFIG_FEC_XCV_TYPE RGMII | 58 | #define CONFIG_FEC_XCV_TYPE RGMII |
47 | #define CONFIG_ETHPRIME "FEC" | 59 | #define CONFIG_ETHPRIME "FEC" |
48 | #define CONFIG_FEC_MXC_PHYADDR 6 | 60 | #define CONFIG_FEC_MXC_PHYADDR 6 |
49 | #define CONFIG_PHYLIB | 61 | #define CONFIG_PHYLIB |
50 | #define CONFIG_PHY_MICREL | 62 | #define CONFIG_PHY_MICREL |
51 | #define CONFIG_PHY_MICREL_KSZ9031 | 63 | #define CONFIG_PHY_MICREL_KSZ9031 |
52 | 64 | ||
53 | /* allow to overwrite serial and ethaddr */ | 65 | /* allow to overwrite serial and ethaddr */ |
54 | #define CONFIG_ENV_OVERWRITE | 66 | #define CONFIG_ENV_OVERWRITE |
55 | #define CONFIG_CONS_INDEX 1 | 67 | #define CONFIG_CONS_INDEX 1 |
56 | #define CONFIG_BAUDRATE 115200 | 68 | #define CONFIG_BAUDRATE 115200 |
57 | 69 | ||
58 | /* Command definition */ | 70 | /* Command definition */ |
59 | #include <config_cmd_default.h> | 71 | #include <config_cmd_default.h> |
60 | 72 | ||
61 | #undef CONFIG_CMD_IMLS | 73 | #undef CONFIG_CMD_IMLS |
62 | 74 | ||
63 | #define CONFIG_CMD_BMODE | 75 | #define CONFIG_CMD_BMODE |
64 | #define CONFIG_CMD_SETEXPR | 76 | #define CONFIG_CMD_SETEXPR |
65 | 77 | ||
66 | #define CONFIG_BOOTDELAY 3 | 78 | #define CONFIG_BOOTDELAY 3 |
67 | 79 | ||
68 | #define CONFIG_SYS_MEMTEST_START 0x10000000 | 80 | #define CONFIG_SYS_MEMTEST_START 0x10000000 |
69 | #define CONFIG_SYS_MEMTEST_END (CONFIG_SYS_MEMTEST_START + 500 * SZ_1M) | 81 | #define CONFIG_SYS_MEMTEST_END (CONFIG_SYS_MEMTEST_START + 500 * SZ_1M) |
70 | #define CONFIG_LOADADDR 0x12000000 | 82 | #define CONFIG_LOADADDR 0x12000000 |
71 | #define CONFIG_SYS_TEXT_BASE 0x17800000 | 83 | #define CONFIG_SYS_TEXT_BASE 0x17800000 |
72 | 84 | ||
73 | /* MMC Configuration */ | 85 | /* MMC Configuration */ |
74 | #define CONFIG_FSL_ESDHC | 86 | #define CONFIG_FSL_ESDHC |
75 | #define CONFIG_FSL_USDHC | 87 | #define CONFIG_FSL_USDHC |
76 | #define CONFIG_SYS_FSL_ESDHC_ADDR 0 | 88 | #define CONFIG_SYS_FSL_ESDHC_ADDR 0 |
77 | 89 | ||
78 | #define CONFIG_MMC | 90 | #define CONFIG_MMC |
79 | #define CONFIG_CMD_MMC | 91 | #define CONFIG_CMD_MMC |
80 | #define CONFIG_GENERIC_MMC | 92 | #define CONFIG_GENERIC_MMC |
81 | #define CONFIG_BOUNCE_BUFFER | 93 | #define CONFIG_BOUNCE_BUFFER |
82 | #define CONFIG_CMD_EXT2 | 94 | #define CONFIG_CMD_EXT2 |
83 | #define CONFIG_CMD_FAT | 95 | #define CONFIG_CMD_FAT |
84 | #define CONFIG_DOS_PARTITION | 96 | #define CONFIG_DOS_PARTITION |
85 | 97 | ||
86 | #define CONFIG_DEFAULT_FDT_FILE "imx6q-udoo.dtb" | 98 | #define CONFIG_DEFAULT_FDT_FILE "imx6q-udoo.dtb" |
87 | 99 | ||
88 | #define CONFIG_EXTRA_ENV_SETTINGS \ | 100 | #define CONFIG_EXTRA_ENV_SETTINGS \ |
89 | "script=boot.scr\0" \ | 101 | "script=boot.scr\0" \ |
90 | "uimage=uImage\0" \ | 102 | "uimage=uImage\0" \ |
91 | "console=ttymxc1\0" \ | 103 | "console=ttymxc1\0" \ |
92 | "splashpos=m,m\0" \ | 104 | "splashpos=m,m\0" \ |
93 | "fdt_high=0xffffffff\0" \ | 105 | "fdt_high=0xffffffff\0" \ |
94 | "initrd_high=0xffffffff\0" \ | 106 | "initrd_high=0xffffffff\0" \ |
95 | "fdt_file=" CONFIG_DEFAULT_FDT_FILE "\0" \ | 107 | "fdt_file=" CONFIG_DEFAULT_FDT_FILE "\0" \ |
96 | "fdt_addr=0x11000000\0" \ | 108 | "fdt_addr=0x11000000\0" \ |
97 | "boot_fdt=try\0" \ | 109 | "boot_fdt=try\0" \ |
98 | "ip_dyn=yes\0" \ | 110 | "ip_dyn=yes\0" \ |
99 | "mmcdev=0\0" \ | 111 | "mmcdev=0\0" \ |
100 | "mmcpart=1\0" \ | 112 | "mmcpart=1\0" \ |
101 | "mmcroot=/dev/mmcblk0p2 rootwait rw\0" \ | 113 | "mmcroot=/dev/mmcblk0p2 rootwait rw\0" \ |
102 | "update_sd_firmware_filename=u-boot.imx\0" \ | 114 | "update_sd_firmware_filename=u-boot.imx\0" \ |
103 | "update_sd_firmware=" \ | 115 | "update_sd_firmware=" \ |
104 | "if test ${ip_dyn} = yes; then " \ | 116 | "if test ${ip_dyn} = yes; then " \ |
105 | "setenv get_cmd dhcp; " \ | 117 | "setenv get_cmd dhcp; " \ |
106 | "else " \ | 118 | "else " \ |
107 | "setenv get_cmd tftp; " \ | 119 | "setenv get_cmd tftp; " \ |
108 | "fi; " \ | 120 | "fi; " \ |
109 | "if mmc dev ${mmcdev}; then " \ | 121 | "if mmc dev ${mmcdev}; then " \ |
110 | "if ${get_cmd} ${update_sd_firmware_filename}; then " \ | 122 | "if ${get_cmd} ${update_sd_firmware_filename}; then " \ |
111 | "setexpr fw_sz ${filesize} / 0x200; " \ | 123 | "setexpr fw_sz ${filesize} / 0x200; " \ |
112 | "setexpr fw_sz ${fw_sz} + 1; " \ | 124 | "setexpr fw_sz ${fw_sz} + 1; " \ |
113 | "mmc write ${loadaddr} 0x2 ${fw_sz}; " \ | 125 | "mmc write ${loadaddr} 0x2 ${fw_sz}; " \ |
114 | "fi; " \ | 126 | "fi; " \ |
115 | "fi\0" \ | 127 | "fi\0" \ |
116 | "mmcargs=setenv bootargs console=${console},${baudrate} " \ | 128 | "mmcargs=setenv bootargs console=${console},${baudrate} " \ |
117 | "root=${mmcroot}\0" \ | 129 | "root=${mmcroot}\0" \ |
118 | "loadbootscript=" \ | 130 | "loadbootscript=" \ |
119 | "fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \ | 131 | "fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \ |
120 | "bootscript=echo Running bootscript from mmc ...; " \ | 132 | "bootscript=echo Running bootscript from mmc ...; " \ |
121 | "source\0" \ | 133 | "source\0" \ |
122 | "loaduimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${uimage}\0" \ | 134 | "loaduimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${uimage}\0" \ |
123 | "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \ | 135 | "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \ |
124 | "mmcboot=echo Booting from mmc ...; " \ | 136 | "mmcboot=echo Booting from mmc ...; " \ |
125 | "run mmcargs; " \ | 137 | "run mmcargs; " \ |
126 | "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ | 138 | "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ |
127 | "if run loadfdt; then " \ | 139 | "if run loadfdt; then " \ |
128 | "bootm ${loadaddr} - ${fdt_addr}; " \ | 140 | "bootm ${loadaddr} - ${fdt_addr}; " \ |
129 | "else " \ | 141 | "else " \ |
130 | "if test ${boot_fdt} = try; then " \ | 142 | "if test ${boot_fdt} = try; then " \ |
131 | "bootm; " \ | 143 | "bootm; " \ |
132 | "else " \ | 144 | "else " \ |
133 | "echo WARN: Cannot load the DT; " \ | 145 | "echo WARN: Cannot load the DT; " \ |
134 | "fi; " \ | 146 | "fi; " \ |
135 | "fi; " \ | 147 | "fi; " \ |
136 | "else " \ | 148 | "else " \ |
137 | "bootm; " \ | 149 | "bootm; " \ |
138 | "fi;\0" \ | 150 | "fi;\0" \ |
139 | "netargs=setenv bootargs console=${console},${baudrate} " \ | 151 | "netargs=setenv bootargs console=${console},${baudrate} " \ |
140 | "root=/dev/nfs " \ | 152 | "root=/dev/nfs " \ |
141 | "ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \ | 153 | "ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \ |
142 | "netboot=echo Booting from net ...; " \ | 154 | "netboot=echo Booting from net ...; " \ |
143 | "run netargs; " \ | 155 | "run netargs; " \ |
144 | "if test ${ip_dyn} = yes; then " \ | 156 | "if test ${ip_dyn} = yes; then " \ |
145 | "setenv get_cmd dhcp; " \ | 157 | "setenv get_cmd dhcp; " \ |
146 | "else " \ | 158 | "else " \ |
147 | "setenv get_cmd tftp; " \ | 159 | "setenv get_cmd tftp; " \ |
148 | "fi; " \ | 160 | "fi; " \ |
149 | "${get_cmd} ${uimage}; " \ | 161 | "${get_cmd} ${uimage}; " \ |
150 | "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ | 162 | "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ |
151 | "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \ | 163 | "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \ |
152 | "bootm ${loadaddr} - ${fdt_addr}; " \ | 164 | "bootm ${loadaddr} - ${fdt_addr}; " \ |
153 | "else " \ | 165 | "else " \ |
154 | "if test ${boot_fdt} = try; then " \ | 166 | "if test ${boot_fdt} = try; then " \ |
155 | "bootm; " \ | 167 | "bootm; " \ |
156 | "else " \ | 168 | "else " \ |
157 | "echo WARN: Cannot load the DT; " \ | 169 | "echo WARN: Cannot load the DT; " \ |
158 | "fi; " \ | 170 | "fi; " \ |
159 | "fi; " \ | 171 | "fi; " \ |
160 | "else " \ | 172 | "else " \ |
161 | "bootm; " \ | 173 | "bootm; " \ |
162 | "fi;\0" | 174 | "fi;\0" |
163 | 175 | ||
164 | #define CONFIG_BOOTCOMMAND \ | 176 | #define CONFIG_BOOTCOMMAND \ |
165 | "mmc dev ${mmcdev}; if mmc rescan; then " \ | 177 | "mmc dev ${mmcdev}; if mmc rescan; then " \ |
166 | "if run loadbootscript; then " \ | 178 | "if run loadbootscript; then " \ |
167 | "run bootscript; " \ | 179 | "run bootscript; " \ |
168 | "else " \ | 180 | "else " \ |
169 | "if run loaduimage; then " \ | 181 | "if run loaduimage; then " \ |
170 | "run mmcboot; " \ | 182 | "run mmcboot; " \ |
171 | "else run netboot; " \ | 183 | "else run netboot; " \ |
172 | "fi; " \ | 184 | "fi; " \ |
173 | "fi; " \ | 185 | "fi; " \ |
174 | "else run netboot; fi" | 186 | "else run netboot; fi" |
175 | 187 | ||
176 | /* Miscellaneous configurable options */ | 188 | /* Miscellaneous configurable options */ |
177 | #define CONFIG_SYS_LONGHELP | 189 | #define CONFIG_SYS_LONGHELP |
178 | #define CONFIG_SYS_HUSH_PARSER | 190 | #define CONFIG_SYS_HUSH_PARSER |
179 | #define CONFIG_SYS_PROMPT "=> " | 191 | #define CONFIG_SYS_PROMPT "=> " |
180 | #define CONFIG_AUTO_COMPLETE | 192 | #define CONFIG_AUTO_COMPLETE |
181 | #define CONFIG_SYS_CBSIZE 256 | 193 | #define CONFIG_SYS_CBSIZE 256 |
182 | 194 | ||
183 | /* Print Buffer Size */ | 195 | /* Print Buffer Size */ |
184 | #define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16) | 196 | #define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16) |
185 | #define CONFIG_SYS_MAXARGS 16 | 197 | #define CONFIG_SYS_MAXARGS 16 |
186 | #define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE | 198 | #define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE |
187 | 199 | ||
188 | #define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR | 200 | #define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR |
189 | #define CONFIG_SYS_HZ 1000 | 201 | #define CONFIG_SYS_HZ 1000 |
190 | 202 | ||
191 | #define CONFIG_CMDLINE_EDITING | 203 | #define CONFIG_CMDLINE_EDITING |
192 | 204 | ||
193 | /* Physical Memory Map */ | 205 | /* Physical Memory Map */ |
194 | #define CONFIG_NR_DRAM_BANKS 1 | 206 | #define CONFIG_NR_DRAM_BANKS 1 |
195 | #define PHYS_SDRAM MMDC0_ARB_BASE_ADDR | 207 | #define PHYS_SDRAM MMDC0_ARB_BASE_ADDR |
196 | 208 | ||
197 | #define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM | 209 | #define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM |
198 | #define CONFIG_SYS_INIT_RAM_ADDR IRAM_BASE_ADDR | 210 | #define CONFIG_SYS_INIT_RAM_ADDR IRAM_BASE_ADDR |
199 | #define CONFIG_SYS_INIT_RAM_SIZE IRAM_SIZE | 211 | #define CONFIG_SYS_INIT_RAM_SIZE IRAM_SIZE |
200 | 212 | ||
201 | #define CONFIG_SYS_INIT_SP_OFFSET \ | 213 | #define CONFIG_SYS_INIT_SP_OFFSET \ |
202 | (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE) | 214 | (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE) |
203 | #define CONFIG_SYS_INIT_SP_ADDR \ | 215 | #define CONFIG_SYS_INIT_SP_ADDR \ |
204 | (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET) | 216 | (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET) |
205 | 217 | ||
206 | /* FLASH and environment organization */ | 218 | /* FLASH and environment organization */ |
207 | #define CONFIG_SYS_NO_FLASH | 219 | #define CONFIG_SYS_NO_FLASH |
208 | 220 | ||
209 | #define CONFIG_ENV_SIZE (8 * 1024) | 221 | #define CONFIG_ENV_SIZE (8 * 1024) |
210 | 222 | ||
211 | #define CONFIG_ENV_IS_IN_MMC | 223 | #define CONFIG_ENV_IS_IN_MMC |
212 | #define CONFIG_ENV_OFFSET (6 * 64 * 1024) | 224 | #define CONFIG_ENV_OFFSET (6 * 64 * 1024) |
213 | #define CONFIG_SYS_MMC_ENV_DEV 0 | 225 | #define CONFIG_SYS_MMC_ENV_DEV 0 |
214 | 226 | ||
215 | #define CONFIG_OF_LIBFDT | 227 | #define CONFIG_OF_LIBFDT |
216 | #define CONFIG_CMD_BOOTZ | 228 | #define CONFIG_CMD_BOOTZ |
217 | 229 | ||
218 | #ifndef CONFIG_SYS_DCACHE_OFF | 230 | #ifndef CONFIG_SYS_DCACHE_OFF |
219 | #define CONFIG_CMD_CACHE | 231 | #define CONFIG_CMD_CACHE |
220 | #endif | 232 | #endif |
221 | 233 | ||
222 | #endif /* __CONFIG_H * */ | 234 | #endif /* __CONFIG_H * */ |
223 | 235 |