Commit b357503f1cdedade6d31991fa6aabb4174f92989

Authored by Ye.Li
Committed by Stefano Babic
1 parent febae49a2b

imx: mx6dlarm2: Add support for i.MX6DL arm2 DDR3 board

This patch adds the i.MX6DL arm2 board support. The i.MX6DL ARM2
shared the same board with i.MX6Q ARM2 board since the i.MX6DL is
pin-pin compatible with i.MX6Q.

The patch also support the DDR 32-BIT mode option. Please define
CONFIG_DDR_32BIT in the board configure file to enable DDR 32-BIT
mode.But due to the board design, it's 64bit DDR buswidth physically,
so, if you CONFIG_DDR_32BIT, the DDR memory size will be half of it.

Signed-off-by: Ye.Li <B37916@freescale.com>

Showing 6 changed files with 157 additions and 2 deletions Inline Diff

board/freescale/mx6qarm2/MAINTAINERS
1 MX6QARM2 BOARD 1 MX6QARM2 BOARD
2 M: Jason Liu <r64343@freescale.com> 2 M: Jason Liu <r64343@freescale.com>
3 M: Ye Li <b37916@freescale.com>
3 S: Maintained 4 S: Maintained
4 F: board/freescale/mx6qarm2/ 5 F: board/freescale/mx6qarm2/
5 F: include/configs/mx6qarm2.h 6 F: include/configs/mx6qarm2.h
6 F: configs/mx6qarm2_defconfig 7 F: configs/mx6qarm2_defconfig
8 F: configs/mx6dlarm2_defconfig
7 9
board/freescale/mx6qarm2/imximage_mx6dl.cfg
File was created 1 /*
2 * Copyright (C) 2014 Freescale Semiconductor, Inc.
3 * Jason Liu <r64343@freescale.com>
4 *
5 * SPDX-License-Identifier: GPL-2.0+
6 *
7 * Refer doc/README.imximage for more details about how-to configure
8 * and create imximage boot image
9 *
10 * The syntax is taken as close as possible with the kwbimage
11 */
12
13 /* image version */
14 IMAGE_VERSION 2
15
16 /*
17 * Boot Device : one of
18 * spi, sd (the board has no nand neither onenand)
19 */
20 BOOT_FROM sd
21
22 /*
23 * Device Configuration Data (DCD)
24 *
25 * Each entry must have the format:
26 * Addr-type Address Value
27 *
28 * where:
29 * Addr-type register length (1,2 or 4 bytes)
30 * Address absolute address of the register
31 * value value to be stored in the register
32 */
33 DATA 4 0x020e0798 0x000c0000
34 DATA 4 0x020e0758 0x00000000
35 DATA 4 0x020e0588 0x00000030
36 DATA 4 0x020e0594 0x00000030
37 DATA 4 0x020e056c 0x00000030
38 DATA 4 0x020e0578 0x00000030
39 DATA 4 0x020e074c 0x00000030
40 DATA 4 0x020e057c 0x00000030
41 DATA 4 0x020e0590 0x00003000
42 DATA 4 0x020e0598 0x00003000
43 DATA 4 0x020e058c 0x00000000
44 DATA 4 0x020e059c 0x00003030
45 DATA 4 0x020e05a0 0x00003030
46 DATA 4 0x020e078c 0x00000030
47 DATA 4 0x020e0750 0x00020000
48 DATA 4 0x020e05a8 0x00000030
49 DATA 4 0x020e05b0 0x00000030
50 DATA 4 0x020e0524 0x00000030
51 DATA 4 0x020e051c 0x00000030
52 DATA 4 0x020e0518 0x00000030
53 DATA 4 0x020e050c 0x00000030
54 DATA 4 0x020e05b8 0x00000030
55 DATA 4 0x020e05c0 0x00000030
56 DATA 4 0x020e0774 0x00020000
57 DATA 4 0x020e0784 0x00000030
58 DATA 4 0x020e0788 0x00000030
59 DATA 4 0x020e0794 0x00000030
60 DATA 4 0x020e079c 0x00000030
61 DATA 4 0x020e07a0 0x00000030
62 DATA 4 0x020e07a4 0x00000030
63 DATA 4 0x020e07a8 0x00000030
64 DATA 4 0x020e0748 0x00000030
65 DATA 4 0x020e05ac 0x00000030
66 DATA 4 0x020e05b4 0x00000030
67 DATA 4 0x020e0528 0x00000030
68 DATA 4 0x020e0520 0x00000030
69 DATA 4 0x020e0514 0x00000030
70 DATA 4 0x020e0510 0x00000030
71 DATA 4 0x020e05bc 0x00000030
72 DATA 4 0x020e05c4 0x00000030
73
74 DATA 4 0x021b0800 0xa1390003
75 DATA 4 0x021b4800 0xa1390003
76 DATA 4 0x021b080c 0x001F001F
77 DATA 4 0x021b0810 0x001F001F
78 DATA 4 0x021b480c 0x00370037
79 DATA 4 0x021b4810 0x00370037
80 DATA 4 0x021b083c 0x422f0220
81 DATA 4 0x021b0840 0x021f0219
82 DATA 4 0x021b483C 0x422f0220
83 DATA 4 0x021b4840 0x022d022f
84 DATA 4 0x021b0848 0x47494b49
85 DATA 4 0x021b4848 0x48484c47
86 DATA 4 0x021b0850 0x39382b2f
87 DATA 4 0x021b4850 0x2f35312c
88 DATA 4 0x021b081c 0x33333333
89 DATA 4 0x021b0820 0x33333333
90 DATA 4 0x021b0824 0x33333333
91 DATA 4 0x021b0828 0x33333333
92 DATA 4 0x021b481c 0x33333333
93 DATA 4 0x021b4820 0x33333333
94 DATA 4 0x021b4824 0x33333333
95 DATA 4 0x021b4828 0x33333333
96 DATA 4 0x021b08b8 0x00000800
97 DATA 4 0x021b48b8 0x00000800
98 DATA 4 0x021b0004 0x0002002d
99 DATA 4 0x021b0008 0x00333030
100
101 DATA 4 0x021b000c 0x40445323
102 DATA 4 0x021b0010 0xb66e8c63
103
104 DATA 4 0x021b0014 0x01ff00db
105 DATA 4 0x021b0018 0x00081740
106 DATA 4 0x021b001c 0x00008000
107 DATA 4 0x021b002c 0x000026d2
108 DATA 4 0x021b0030 0x00440e21
109 #ifdef CONFIG_DDR_32BIT
110 DATA 4 0x021b0040 0x00000017
111 DATA 4 0x021b0000 0xc3190000
112 #else
113 DATA 4 0x021b0040 0x00000027
114 DATA 4 0x021b0000 0xc31a0000
115 #endif
116 DATA 4 0x021b001c 0x04008032
117 DATA 4 0x021b001c 0x0400803a
118 DATA 4 0x021b001c 0x00008033
119 DATA 4 0x021b001c 0x0000803b
120 DATA 4 0x021b001c 0x00428031
121 DATA 4 0x021b001c 0x00428039
122 DATA 4 0x021b001c 0x07208030
123 DATA 4 0x021b001c 0x07208038
124 DATA 4 0x021b001c 0x04008040
125 DATA 4 0x021b001c 0x04008048
126 DATA 4 0x021b0020 0x00005800
127 DATA 4 0x021b0818 0x00000007
128 DATA 4 0x021b4818 0x00000007
129 DATA 4 0x021b0004 0x0002556d
130 DATA 4 0x021b4004 0x00011006
131 DATA 4 0x021b001c 0x00000000
132
133 DATA 4 0x020c4068 0x00C03F3F
134 DATA 4 0x020c406c 0x0030FC03
135 DATA 4 0x020c4070 0x0FFFC000
136 DATA 4 0x020c4074 0x3FF00000
137 DATA 4 0x020c4078 0x00FFF300
138 DATA 4 0x020c407c 0x0F0000C3
139 DATA 4 0x020c4080 0x000003FF
140
141 DATA 4 0x020e0010 0xF00000CF
142 DATA 4 0x020e0018 0x007F007F
143 DATA 4 0x020e001c 0x007F007F
144
board/freescale/mx6qarm2/mx6qarm2.c
1 /* 1 /*
2 * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. 2 * Copyright (C) 2010-2011 Freescale Semiconductor, Inc.
3 * 3 *
4 * SPDX-License-Identifier: GPL-2.0+ 4 * SPDX-License-Identifier: GPL-2.0+
5 */ 5 */
6 6
7 #include <common.h> 7 #include <common.h>
8 #include <asm/io.h> 8 #include <asm/io.h>
9 #include <asm/arch/imx-regs.h> 9 #include <asm/arch/imx-regs.h>
10 #include <asm/arch/mx6-pins.h> 10 #include <asm/arch/mx6-pins.h>
11 #include <asm/arch/clock.h> 11 #include <asm/arch/clock.h>
12 #include <asm/errno.h> 12 #include <asm/errno.h>
13 #include <asm/gpio.h> 13 #include <asm/gpio.h>
14 #include <asm/imx-common/iomux-v3.h> 14 #include <asm/imx-common/iomux-v3.h>
15 #include <mmc.h> 15 #include <mmc.h>
16 #include <fsl_esdhc.h> 16 #include <fsl_esdhc.h>
17 #include <miiphy.h> 17 #include <miiphy.h>
18 #include <netdev.h> 18 #include <netdev.h>
19 19
20 DECLARE_GLOBAL_DATA_PTR; 20 DECLARE_GLOBAL_DATA_PTR;
21 21
22 #define UART_PAD_CTRL (PAD_CTL_PUS_100K_UP | \ 22 #define UART_PAD_CTRL (PAD_CTL_PUS_100K_UP | \
23 PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | \ 23 PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | \
24 PAD_CTL_SRE_FAST | PAD_CTL_HYS) 24 PAD_CTL_SRE_FAST | PAD_CTL_HYS)
25 25
26 #define USDHC_PAD_CTRL (PAD_CTL_PUS_47K_UP | \ 26 #define USDHC_PAD_CTRL (PAD_CTL_PUS_47K_UP | \
27 PAD_CTL_SPEED_LOW | PAD_CTL_DSE_80ohm | \ 27 PAD_CTL_SPEED_LOW | PAD_CTL_DSE_80ohm | \
28 PAD_CTL_SRE_FAST | PAD_CTL_HYS) 28 PAD_CTL_SRE_FAST | PAD_CTL_HYS)
29 29
30 #define ENET_PAD_CTRL (PAD_CTL_PUS_100K_UP | \ 30 #define ENET_PAD_CTRL (PAD_CTL_PUS_100K_UP | \
31 PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS) 31 PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
32 32
33 int dram_init(void) 33 int dram_init(void)
34 { 34 {
35 gd->ram_size = get_ram_size((void *)PHYS_SDRAM, PHYS_SDRAM_SIZE); 35 gd->ram_size = get_ram_size((void *)PHYS_SDRAM, PHYS_SDRAM_SIZE);
36 36
37 return 0; 37 return 0;
38 } 38 }
39 39
40 iomux_v3_cfg_t const uart4_pads[] = { 40 iomux_v3_cfg_t const uart4_pads[] = {
41 MX6_PAD_KEY_COL0__UART4_TX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL), 41 MX6_PAD_KEY_COL0__UART4_TX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL),
42 MX6_PAD_KEY_ROW0__UART4_RX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL), 42 MX6_PAD_KEY_ROW0__UART4_RX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL),
43 }; 43 };
44 44
45 iomux_v3_cfg_t const usdhc3_pads[] = { 45 iomux_v3_cfg_t const usdhc3_pads[] = {
46 MX6_PAD_SD3_CLK__SD3_CLK | MUX_PAD_CTRL(USDHC_PAD_CTRL), 46 MX6_PAD_SD3_CLK__SD3_CLK | MUX_PAD_CTRL(USDHC_PAD_CTRL),
47 MX6_PAD_SD3_CMD__SD3_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL), 47 MX6_PAD_SD3_CMD__SD3_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL),
48 MX6_PAD_SD3_DAT0__SD3_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL), 48 MX6_PAD_SD3_DAT0__SD3_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
49 MX6_PAD_SD3_DAT1__SD3_DATA1 | MUX_PAD_CTRL(USDHC_PAD_CTRL), 49 MX6_PAD_SD3_DAT1__SD3_DATA1 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
50 MX6_PAD_SD3_DAT2__SD3_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL), 50 MX6_PAD_SD3_DAT2__SD3_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
51 MX6_PAD_SD3_DAT3__SD3_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL), 51 MX6_PAD_SD3_DAT3__SD3_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
52 MX6_PAD_SD3_DAT4__SD3_DATA4 | MUX_PAD_CTRL(USDHC_PAD_CTRL), 52 MX6_PAD_SD3_DAT4__SD3_DATA4 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
53 MX6_PAD_SD3_DAT5__SD3_DATA5 | MUX_PAD_CTRL(USDHC_PAD_CTRL), 53 MX6_PAD_SD3_DAT5__SD3_DATA5 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
54 MX6_PAD_SD3_DAT6__SD3_DATA6 | MUX_PAD_CTRL(USDHC_PAD_CTRL), 54 MX6_PAD_SD3_DAT6__SD3_DATA6 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
55 MX6_PAD_SD3_DAT7__SD3_DATA7 | MUX_PAD_CTRL(USDHC_PAD_CTRL), 55 MX6_PAD_SD3_DAT7__SD3_DATA7 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
56 MX6_PAD_NANDF_CS0__GPIO6_IO11 | MUX_PAD_CTRL(NO_PAD_CTRL), /* CD */ 56 MX6_PAD_NANDF_CS0__GPIO6_IO11 | MUX_PAD_CTRL(NO_PAD_CTRL), /* CD */
57 }; 57 };
58 58
59 iomux_v3_cfg_t const usdhc4_pads[] = { 59 iomux_v3_cfg_t const usdhc4_pads[] = {
60 MX6_PAD_SD4_CLK__SD4_CLK | MUX_PAD_CTRL(USDHC_PAD_CTRL), 60 MX6_PAD_SD4_CLK__SD4_CLK | MUX_PAD_CTRL(USDHC_PAD_CTRL),
61 MX6_PAD_SD4_CMD__SD4_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL), 61 MX6_PAD_SD4_CMD__SD4_CMD | MUX_PAD_CTRL(USDHC_PAD_CTRL),
62 MX6_PAD_SD4_DAT0__SD4_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL), 62 MX6_PAD_SD4_DAT0__SD4_DATA0 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
63 MX6_PAD_SD4_DAT1__SD4_DATA1 | MUX_PAD_CTRL(USDHC_PAD_CTRL), 63 MX6_PAD_SD4_DAT1__SD4_DATA1 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
64 MX6_PAD_SD4_DAT2__SD4_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL), 64 MX6_PAD_SD4_DAT2__SD4_DATA2 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
65 MX6_PAD_SD4_DAT3__SD4_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL), 65 MX6_PAD_SD4_DAT3__SD4_DATA3 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
66 MX6_PAD_SD4_DAT4__SD4_DATA4 | MUX_PAD_CTRL(USDHC_PAD_CTRL), 66 MX6_PAD_SD4_DAT4__SD4_DATA4 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
67 MX6_PAD_SD4_DAT5__SD4_DATA5 | MUX_PAD_CTRL(USDHC_PAD_CTRL), 67 MX6_PAD_SD4_DAT5__SD4_DATA5 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
68 MX6_PAD_SD4_DAT6__SD4_DATA6 | MUX_PAD_CTRL(USDHC_PAD_CTRL), 68 MX6_PAD_SD4_DAT6__SD4_DATA6 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
69 MX6_PAD_SD4_DAT7__SD4_DATA7 | MUX_PAD_CTRL(USDHC_PAD_CTRL), 69 MX6_PAD_SD4_DAT7__SD4_DATA7 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
70 }; 70 };
71 71
72 iomux_v3_cfg_t const enet_pads[] = { 72 iomux_v3_cfg_t const enet_pads[] = {
73 MX6_PAD_KEY_COL1__ENET_MDIO | MUX_PAD_CTRL(ENET_PAD_CTRL), 73 MX6_PAD_KEY_COL1__ENET_MDIO | MUX_PAD_CTRL(ENET_PAD_CTRL),
74 MX6_PAD_KEY_COL2__ENET_MDC | MUX_PAD_CTRL(ENET_PAD_CTRL), 74 MX6_PAD_KEY_COL2__ENET_MDC | MUX_PAD_CTRL(ENET_PAD_CTRL),
75 MX6_PAD_RGMII_TXC__RGMII_TXC | MUX_PAD_CTRL(ENET_PAD_CTRL), 75 MX6_PAD_RGMII_TXC__RGMII_TXC | MUX_PAD_CTRL(ENET_PAD_CTRL),
76 MX6_PAD_RGMII_TD0__RGMII_TD0 | MUX_PAD_CTRL(ENET_PAD_CTRL), 76 MX6_PAD_RGMII_TD0__RGMII_TD0 | MUX_PAD_CTRL(ENET_PAD_CTRL),
77 MX6_PAD_RGMII_TD1__RGMII_TD1 | MUX_PAD_CTRL(ENET_PAD_CTRL), 77 MX6_PAD_RGMII_TD1__RGMII_TD1 | MUX_PAD_CTRL(ENET_PAD_CTRL),
78 MX6_PAD_RGMII_TD2__RGMII_TD2 | MUX_PAD_CTRL(ENET_PAD_CTRL), 78 MX6_PAD_RGMII_TD2__RGMII_TD2 | MUX_PAD_CTRL(ENET_PAD_CTRL),
79 MX6_PAD_RGMII_TD3__RGMII_TD3 | MUX_PAD_CTRL(ENET_PAD_CTRL), 79 MX6_PAD_RGMII_TD3__RGMII_TD3 | MUX_PAD_CTRL(ENET_PAD_CTRL),
80 MX6_PAD_RGMII_TX_CTL__RGMII_TX_CTL | MUX_PAD_CTRL(ENET_PAD_CTRL), 80 MX6_PAD_RGMII_TX_CTL__RGMII_TX_CTL | MUX_PAD_CTRL(ENET_PAD_CTRL),
81 MX6_PAD_ENET_REF_CLK__ENET_TX_CLK | MUX_PAD_CTRL(ENET_PAD_CTRL), 81 MX6_PAD_ENET_REF_CLK__ENET_TX_CLK | MUX_PAD_CTRL(ENET_PAD_CTRL),
82 MX6_PAD_RGMII_RXC__RGMII_RXC | MUX_PAD_CTRL(ENET_PAD_CTRL), 82 MX6_PAD_RGMII_RXC__RGMII_RXC | MUX_PAD_CTRL(ENET_PAD_CTRL),
83 MX6_PAD_RGMII_RD0__RGMII_RD0 | MUX_PAD_CTRL(ENET_PAD_CTRL), 83 MX6_PAD_RGMII_RD0__RGMII_RD0 | MUX_PAD_CTRL(ENET_PAD_CTRL),
84 MX6_PAD_RGMII_RD1__RGMII_RD1 | MUX_PAD_CTRL(ENET_PAD_CTRL), 84 MX6_PAD_RGMII_RD1__RGMII_RD1 | MUX_PAD_CTRL(ENET_PAD_CTRL),
85 MX6_PAD_RGMII_RD2__RGMII_RD2 | MUX_PAD_CTRL(ENET_PAD_CTRL), 85 MX6_PAD_RGMII_RD2__RGMII_RD2 | MUX_PAD_CTRL(ENET_PAD_CTRL),
86 MX6_PAD_RGMII_RD3__RGMII_RD3 | MUX_PAD_CTRL(ENET_PAD_CTRL), 86 MX6_PAD_RGMII_RD3__RGMII_RD3 | MUX_PAD_CTRL(ENET_PAD_CTRL),
87 MX6_PAD_RGMII_RX_CTL__RGMII_RX_CTL | MUX_PAD_CTRL(ENET_PAD_CTRL), 87 MX6_PAD_RGMII_RX_CTL__RGMII_RX_CTL | MUX_PAD_CTRL(ENET_PAD_CTRL),
88 }; 88 };
89 89
90 90
91 static void setup_iomux_uart(void) 91 static void setup_iomux_uart(void)
92 { 92 {
93 imx_iomux_v3_setup_multiple_pads(uart4_pads, ARRAY_SIZE(uart4_pads)); 93 imx_iomux_v3_setup_multiple_pads(uart4_pads, ARRAY_SIZE(uart4_pads));
94 } 94 }
95 95
96 static void setup_iomux_enet(void) 96 static void setup_iomux_enet(void)
97 { 97 {
98 imx_iomux_v3_setup_multiple_pads(enet_pads, ARRAY_SIZE(enet_pads)); 98 imx_iomux_v3_setup_multiple_pads(enet_pads, ARRAY_SIZE(enet_pads));
99 } 99 }
100 100
101 #ifdef CONFIG_FSL_ESDHC 101 #ifdef CONFIG_FSL_ESDHC
102 struct fsl_esdhc_cfg usdhc_cfg[2] = { 102 struct fsl_esdhc_cfg usdhc_cfg[2] = {
103 {USDHC3_BASE_ADDR}, 103 {USDHC3_BASE_ADDR},
104 {USDHC4_BASE_ADDR}, 104 {USDHC4_BASE_ADDR},
105 }; 105 };
106 106
107 int board_mmc_getcd(struct mmc *mmc) 107 int board_mmc_getcd(struct mmc *mmc)
108 { 108 {
109 struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv; 109 struct fsl_esdhc_cfg *cfg = (struct fsl_esdhc_cfg *)mmc->priv;
110 int ret; 110 int ret;
111 111
112 if (cfg->esdhc_base == USDHC3_BASE_ADDR) { 112 if (cfg->esdhc_base == USDHC3_BASE_ADDR) {
113 gpio_direction_input(IMX_GPIO_NR(6, 11)); 113 gpio_direction_input(IMX_GPIO_NR(6, 11));
114 ret = !gpio_get_value(IMX_GPIO_NR(6, 11)); 114 ret = !gpio_get_value(IMX_GPIO_NR(6, 11));
115 } else /* Don't have the CD GPIO pin on board */ 115 } else /* Don't have the CD GPIO pin on board */
116 ret = 1; 116 ret = 1;
117 117
118 return ret; 118 return ret;
119 } 119 }
120 120
121 int board_mmc_init(bd_t *bis) 121 int board_mmc_init(bd_t *bis)
122 { 122 {
123 s32 status = 0; 123 s32 status = 0;
124 u32 index = 0; 124 u32 index = 0;
125 125
126 usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC3_CLK); 126 usdhc_cfg[0].sdhc_clk = mxc_get_clock(MXC_ESDHC3_CLK);
127 usdhc_cfg[1].sdhc_clk = mxc_get_clock(MXC_ESDHC4_CLK); 127 usdhc_cfg[1].sdhc_clk = mxc_get_clock(MXC_ESDHC4_CLK);
128 128
129 for (index = 0; index < CONFIG_SYS_FSL_USDHC_NUM; ++index) { 129 for (index = 0; index < CONFIG_SYS_FSL_USDHC_NUM; ++index) {
130 switch (index) { 130 switch (index) {
131 case 0: 131 case 0:
132 imx_iomux_v3_setup_multiple_pads( 132 imx_iomux_v3_setup_multiple_pads(
133 usdhc3_pads, ARRAY_SIZE(usdhc3_pads)); 133 usdhc3_pads, ARRAY_SIZE(usdhc3_pads));
134 break; 134 break;
135 case 1: 135 case 1:
136 imx_iomux_v3_setup_multiple_pads( 136 imx_iomux_v3_setup_multiple_pads(
137 usdhc4_pads, ARRAY_SIZE(usdhc4_pads)); 137 usdhc4_pads, ARRAY_SIZE(usdhc4_pads));
138 break; 138 break;
139 default: 139 default:
140 printf("Warning: you configured more USDHC controllers" 140 printf("Warning: you configured more USDHC controllers"
141 "(%d) then supported by the board (%d)\n", 141 "(%d) then supported by the board (%d)\n",
142 index + 1, CONFIG_SYS_FSL_USDHC_NUM); 142 index + 1, CONFIG_SYS_FSL_USDHC_NUM);
143 return status; 143 return status;
144 } 144 }
145 145
146 status |= fsl_esdhc_initialize(bis, &usdhc_cfg[index]); 146 status |= fsl_esdhc_initialize(bis, &usdhc_cfg[index]);
147 } 147 }
148 148
149 return status; 149 return status;
150 } 150 }
151 #endif 151 #endif
152 152
153 #define MII_MMD_ACCESS_CTRL_REG 0xd 153 #define MII_MMD_ACCESS_CTRL_REG 0xd
154 #define MII_MMD_ACCESS_ADDR_DATA_REG 0xe 154 #define MII_MMD_ACCESS_ADDR_DATA_REG 0xe
155 #define MII_DBG_PORT_REG 0x1d 155 #define MII_DBG_PORT_REG 0x1d
156 #define MII_DBG_PORT2_REG 0x1e 156 #define MII_DBG_PORT2_REG 0x1e
157 157
158 int fecmxc_mii_postcall(int phy) 158 int fecmxc_mii_postcall(int phy)
159 { 159 {
160 unsigned short val; 160 unsigned short val;
161 161
162 /* 162 /*
163 * Due to the i.MX6Q Armadillo2 board HW design,there is 163 * Due to the i.MX6Q Armadillo2 board HW design,there is
164 * no 125Mhz clock input from SOC. In order to use RGMII, 164 * no 125Mhz clock input from SOC. In order to use RGMII,
165 * We need enable AR8031 ouput a 125MHz clk from CLK_25M 165 * We need enable AR8031 ouput a 125MHz clk from CLK_25M
166 */ 166 */
167 miiphy_write("FEC", phy, MII_MMD_ACCESS_CTRL_REG, 0x7); 167 miiphy_write("FEC", phy, MII_MMD_ACCESS_CTRL_REG, 0x7);
168 miiphy_write("FEC", phy, MII_MMD_ACCESS_ADDR_DATA_REG, 0x8016); 168 miiphy_write("FEC", phy, MII_MMD_ACCESS_ADDR_DATA_REG, 0x8016);
169 miiphy_write("FEC", phy, MII_MMD_ACCESS_CTRL_REG, 0x4007); 169 miiphy_write("FEC", phy, MII_MMD_ACCESS_CTRL_REG, 0x4007);
170 miiphy_read("FEC", phy, MII_MMD_ACCESS_ADDR_DATA_REG, &val); 170 miiphy_read("FEC", phy, MII_MMD_ACCESS_ADDR_DATA_REG, &val);
171 val &= 0xffe3; 171 val &= 0xffe3;
172 val |= 0x18; 172 val |= 0x18;
173 miiphy_write("FEC", phy, MII_MMD_ACCESS_ADDR_DATA_REG, val); 173 miiphy_write("FEC", phy, MII_MMD_ACCESS_ADDR_DATA_REG, val);
174 174
175 /* For the RGMII phy, we need enable tx clock delay */ 175 /* For the RGMII phy, we need enable tx clock delay */
176 miiphy_write("FEC", phy, MII_DBG_PORT_REG, 0x5); 176 miiphy_write("FEC", phy, MII_DBG_PORT_REG, 0x5);
177 miiphy_read("FEC", phy, MII_DBG_PORT2_REG, &val); 177 miiphy_read("FEC", phy, MII_DBG_PORT2_REG, &val);
178 val |= 0x0100; 178 val |= 0x0100;
179 miiphy_write("FEC", phy, MII_DBG_PORT2_REG, val); 179 miiphy_write("FEC", phy, MII_DBG_PORT2_REG, val);
180 180
181 miiphy_write("FEC", phy, MII_BMCR, 0xa100); 181 miiphy_write("FEC", phy, MII_BMCR, 0xa100);
182 182
183 return 0; 183 return 0;
184 } 184 }
185 185
186 int board_eth_init(bd_t *bis) 186 int board_eth_init(bd_t *bis)
187 { 187 {
188 struct eth_device *dev; 188 struct eth_device *dev;
189 int ret = cpu_eth_init(bis); 189 int ret = cpu_eth_init(bis);
190 190
191 if (ret) 191 if (ret)
192 return ret; 192 return ret;
193 193
194 dev = eth_get_dev_by_name("FEC"); 194 dev = eth_get_dev_by_name("FEC");
195 if (!dev) { 195 if (!dev) {
196 printf("FEC MXC: Unable to get FEC device entry\n"); 196 printf("FEC MXC: Unable to get FEC device entry\n");
197 return -EINVAL; 197 return -EINVAL;
198 } 198 }
199 199
200 ret = fecmxc_register_mii_postcall(dev, fecmxc_mii_postcall); 200 ret = fecmxc_register_mii_postcall(dev, fecmxc_mii_postcall);
201 if (ret) { 201 if (ret) {
202 printf("FEC MXC: Unable to register FEC mii postcall\n"); 202 printf("FEC MXC: Unable to register FEC mii postcall\n");
203 return ret; 203 return ret;
204 } 204 }
205 205
206 return 0; 206 return 0;
207 } 207 }
208 208
209 int board_early_init_f(void) 209 int board_early_init_f(void)
210 { 210 {
211 setup_iomux_uart(); 211 setup_iomux_uart();
212 setup_iomux_enet(); 212 setup_iomux_enet();
213 213
214 return 0; 214 return 0;
215 } 215 }
216 216
217 int board_init(void) 217 int board_init(void)
218 { 218 {
219 /* address of boot parameters */ 219 /* address of boot parameters */
220 gd->bd->bi_boot_params = PHYS_SDRAM + 0x100; 220 gd->bd->bi_boot_params = PHYS_SDRAM + 0x100;
221 221
222 return 0; 222 return 0;
223 } 223 }
224 224
225 int checkboard(void) 225 int checkboard(void)
226 { 226 {
227 #ifdef CONFIG_MX6DL
228 puts("Board: MX6DL-Armadillo2\n");
229 #else
227 puts("Board: MX6Q-Armadillo2\n"); 230 puts("Board: MX6Q-Armadillo2\n");
231 #endif
228 232
229 return 0; 233 return 0;
230 } 234 }
231 235
configs/mx6dlarm2_defconfig
File was created 1 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6qarm2/imximage_mx6dl.cfg,MX6DL"
2 CONFIG_ARM=y
3 CONFIG_TARGET_MX6QARM2=y
4
configs/mx6qarm2_defconfig
1 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6qarm2/imximage.cfg" 1 CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx6qarm2/imximage.cfg,MX6Q"
2 CONFIG_ARM=y 2 CONFIG_ARM=y
3 CONFIG_TARGET_MX6QARM2=y 3 CONFIG_TARGET_MX6QARM2=y
4 4
include/configs/mx6qarm2.h
1 /* 1 /*
2 * Copyright (C) 2010-2011 Freescale Semiconductor, Inc. 2 * Copyright (C) 2010-2011 Freescale Semiconductor, Inc.
3 * 3 *
4 * Configuration settings for the Freescale i.MX6Q Armadillo2 board. 4 * Configuration settings for the Freescale i.MX6Q Armadillo2 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 #define CONFIG_MX6 12 #define CONFIG_MX6
13 #define CONFIG_MX6Q
14 13
15 #include "mx6_common.h" 14 #include "mx6_common.h"
16 15
17 #define CONFIG_DISPLAY_CPUINFO 16 #define CONFIG_DISPLAY_CPUINFO
18 #define CONFIG_DISPLAY_BOARDINFO 17 #define CONFIG_DISPLAY_BOARDINFO
19 18
20 #include <asm/arch/imx-regs.h> 19 #include <asm/arch/imx-regs.h>
21 20
22 #define CONFIG_CMDLINE_TAG 21 #define CONFIG_CMDLINE_TAG
23 #define CONFIG_SETUP_MEMORY_TAGS 22 #define CONFIG_SETUP_MEMORY_TAGS
24 #define CONFIG_INITRD_TAG 23 #define CONFIG_INITRD_TAG
25 24
26 #define CONFIG_SYS_GENERIC_BOARD 25 #define CONFIG_SYS_GENERIC_BOARD
27 26
28 /* Size of malloc() pool */ 27 /* Size of malloc() pool */
29 #define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + 2 * 1024 * 1024) 28 #define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE + 2 * 1024 * 1024)
30 29
31 #define CONFIG_BOARD_EARLY_INIT_F 30 #define CONFIG_BOARD_EARLY_INIT_F
32 #define CONFIG_MXC_GPIO 31 #define CONFIG_MXC_GPIO
33 32
34 #define CONFIG_MXC_UART 33 #define CONFIG_MXC_UART
35 #define CONFIG_MXC_UART_BASE UART4_BASE 34 #define CONFIG_MXC_UART_BASE UART4_BASE
36 35
37 /* MMC Configs */ 36 /* MMC Configs */
38 #define CONFIG_FSL_ESDHC 37 #define CONFIG_FSL_ESDHC
39 #define CONFIG_FSL_USDHC 38 #define CONFIG_FSL_USDHC
40 #define CONFIG_SYS_FSL_ESDHC_ADDR USDHC4_BASE_ADDR 39 #define CONFIG_SYS_FSL_ESDHC_ADDR USDHC4_BASE_ADDR
41 #define CONFIG_SYS_FSL_USDHC_NUM 2 40 #define CONFIG_SYS_FSL_USDHC_NUM 2
42 41
43 #define CONFIG_MMC 42 #define CONFIG_MMC
44 #define CONFIG_CMD_MMC 43 #define CONFIG_CMD_MMC
45 #define CONFIG_GENERIC_MMC 44 #define CONFIG_GENERIC_MMC
46 #define CONFIG_BOUNCE_BUFFER 45 #define CONFIG_BOUNCE_BUFFER
47 #define CONFIG_CMD_FAT 46 #define CONFIG_CMD_FAT
48 #define CONFIG_DOS_PARTITION 47 #define CONFIG_DOS_PARTITION
49 48
50 #define CONFIG_CMD_PING 49 #define CONFIG_CMD_PING
51 #define CONFIG_CMD_DHCP 50 #define CONFIG_CMD_DHCP
52 #define CONFIG_CMD_MII 51 #define CONFIG_CMD_MII
53 #define CONFIG_CMD_NET 52 #define CONFIG_CMD_NET
54 #define CONFIG_FEC_MXC 53 #define CONFIG_FEC_MXC
55 #define CONFIG_MII 54 #define CONFIG_MII
56 #define IMX_FEC_BASE ENET_BASE_ADDR 55 #define IMX_FEC_BASE ENET_BASE_ADDR
57 #define CONFIG_FEC_XCV_TYPE RGMII 56 #define CONFIG_FEC_XCV_TYPE RGMII
58 #define CONFIG_FEC_MXC_PHYADDR 0 57 #define CONFIG_FEC_MXC_PHYADDR 0
59 58
60 /* allow to overwrite serial and ethaddr */ 59 /* allow to overwrite serial and ethaddr */
61 #define CONFIG_ENV_OVERWRITE 60 #define CONFIG_ENV_OVERWRITE
62 #define CONFIG_CONS_INDEX 1 61 #define CONFIG_CONS_INDEX 1
63 #define CONFIG_BAUDRATE 115200 62 #define CONFIG_BAUDRATE 115200
64 63
65 /* Command definition */ 64 /* Command definition */
66 #include <config_cmd_default.h> 65 #include <config_cmd_default.h>
67 66
68 #undef CONFIG_CMD_IMLS 67 #undef CONFIG_CMD_IMLS
69 68
70 #define CONFIG_BOOTDELAY 3 69 #define CONFIG_BOOTDELAY 3
71 70
72 #define CONFIG_LOADADDR 0x12000000 71 #define CONFIG_LOADADDR 0x12000000
73 #define CONFIG_SYS_TEXT_BASE 0x17800000 72 #define CONFIG_SYS_TEXT_BASE 0x17800000
74 73
75 #define CONFIG_EXTRA_ENV_SETTINGS \ 74 #define CONFIG_EXTRA_ENV_SETTINGS \
76 "script=boot.scr\0" \ 75 "script=boot.scr\0" \
77 "image=zImage\0" \ 76 "image=zImage\0" \
78 "console=ttymxc3\0" \ 77 "console=ttymxc3\0" \
79 "fdt_file=imx6q-arm2.dtb\0" \ 78 "fdt_file=imx6q-arm2.dtb\0" \
80 "fdt_addr=0x18000000\0" \ 79 "fdt_addr=0x18000000\0" \
81 "fdt_high=0xffffffff\0" \ 80 "fdt_high=0xffffffff\0" \
82 "initrd_high=0xffffffff\0" \ 81 "initrd_high=0xffffffff\0" \
83 "boot_fdt=try\0" \ 82 "boot_fdt=try\0" \
84 "ip_dyn=yes\0" \ 83 "ip_dyn=yes\0" \
85 "mmcdev=1\0" \ 84 "mmcdev=1\0" \
86 "mmcpart=1\0" \ 85 "mmcpart=1\0" \
87 "mmcroot=/dev/mmcblk0p2 rootwait rw\0" \ 86 "mmcroot=/dev/mmcblk0p2 rootwait rw\0" \
88 "mmcargs=setenv bootargs console=${console},${baudrate} " \ 87 "mmcargs=setenv bootargs console=${console},${baudrate} " \
89 "root=${mmcroot}\0" \ 88 "root=${mmcroot}\0" \
90 "loadbootscript=" \ 89 "loadbootscript=" \
91 "fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \ 90 "fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \
92 "bootscript=echo Running bootscript from mmc ...; " \ 91 "bootscript=echo Running bootscript from mmc ...; " \
93 "source\0" \ 92 "source\0" \
94 "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \ 93 "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \
95 "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \ 94 "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \
96 "mmcboot=echo Booting from mmc ...; " \ 95 "mmcboot=echo Booting from mmc ...; " \
97 "run mmcargs; " \ 96 "run mmcargs; " \
98 "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ 97 "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
99 "if run loadfdt; then " \ 98 "if run loadfdt; then " \
100 "bootz ${loadaddr} - ${fdt_addr}; " \ 99 "bootz ${loadaddr} - ${fdt_addr}; " \
101 "else " \ 100 "else " \
102 "if test ${boot_fdt} = try; then " \ 101 "if test ${boot_fdt} = try; then " \
103 "bootz; " \ 102 "bootz; " \
104 "else " \ 103 "else " \
105 "echo WARN: Cannot load the DT; " \ 104 "echo WARN: Cannot load the DT; " \
106 "fi; " \ 105 "fi; " \
107 "fi; " \ 106 "fi; " \
108 "else " \ 107 "else " \
109 "bootz; " \ 108 "bootz; " \
110 "fi;\0" \ 109 "fi;\0" \
111 "netargs=setenv bootargs console=${console},${baudrate} " \ 110 "netargs=setenv bootargs console=${console},${baudrate} " \
112 "root=/dev/nfs " \ 111 "root=/dev/nfs " \
113 "ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \ 112 "ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \
114 "netboot=echo Booting from net ...; " \ 113 "netboot=echo Booting from net ...; " \
115 "run netargs; " \ 114 "run netargs; " \
116 "if test ${ip_dyn} = yes; then " \ 115 "if test ${ip_dyn} = yes; then " \
117 "setenv get_cmd dhcp; " \ 116 "setenv get_cmd dhcp; " \
118 "else " \ 117 "else " \
119 "setenv get_cmd tftp; " \ 118 "setenv get_cmd tftp; " \
120 "fi; " \ 119 "fi; " \
121 "${get_cmd} ${image}; " \ 120 "${get_cmd} ${image}; " \
122 "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ 121 "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \
123 "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \ 122 "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \
124 "bootz ${loadaddr} - ${fdt_addr}; " \ 123 "bootz ${loadaddr} - ${fdt_addr}; " \
125 "else " \ 124 "else " \
126 "if test ${boot_fdt} = try; then " \ 125 "if test ${boot_fdt} = try; then " \
127 "bootz; " \ 126 "bootz; " \
128 "else " \ 127 "else " \
129 "echo WARN: Cannot load the DT; " \ 128 "echo WARN: Cannot load the DT; " \
130 "fi; " \ 129 "fi; " \
131 "fi; " \ 130 "fi; " \
132 "else " \ 131 "else " \
133 "bootz; " \ 132 "bootz; " \
134 "fi;\0" 133 "fi;\0"
135 134
136 #define CONFIG_BOOTCOMMAND \ 135 #define CONFIG_BOOTCOMMAND \
137 "mmc dev ${mmcdev};" \ 136 "mmc dev ${mmcdev};" \
138 "mmc dev ${mmcdev}; if mmc rescan; then " \ 137 "mmc dev ${mmcdev}; if mmc rescan; then " \
139 "if run loadbootscript; then " \ 138 "if run loadbootscript; then " \
140 "run bootscript; " \ 139 "run bootscript; " \
141 "else " \ 140 "else " \
142 "if run loadimage; then " \ 141 "if run loadimage; then " \
143 "run mmcboot; " \ 142 "run mmcboot; " \
144 "else run netboot; " \ 143 "else run netboot; " \
145 "fi; " \ 144 "fi; " \
146 "fi; " \ 145 "fi; " \
147 "else run netboot; fi" 146 "else run netboot; fi"
148 147
149 #define CONFIG_ARP_TIMEOUT 200UL 148 #define CONFIG_ARP_TIMEOUT 200UL
150 149
151 /* Miscellaneous configurable options */ 150 /* Miscellaneous configurable options */
152 #define CONFIG_SYS_LONGHELP 151 #define CONFIG_SYS_LONGHELP
153 #define CONFIG_SYS_HUSH_PARSER 152 #define CONFIG_SYS_HUSH_PARSER
154 #define CONFIG_AUTO_COMPLETE 153 #define CONFIG_AUTO_COMPLETE
155 #define CONFIG_SYS_CBSIZE 256 154 #define CONFIG_SYS_CBSIZE 256
156 155
157 /* Print Buffer Size */ 156 /* Print Buffer Size */
158 #define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16) 157 #define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16)
159 #define CONFIG_SYS_MAXARGS 16 158 #define CONFIG_SYS_MAXARGS 16
160 #define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE 159 #define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE
161 160
162 #define CONFIG_SYS_MEMTEST_START 0x10000000 161 #define CONFIG_SYS_MEMTEST_START 0x10000000
163 #define CONFIG_SYS_MEMTEST_END 0x10010000 162 #define CONFIG_SYS_MEMTEST_END 0x10010000
164 163
165 #define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR 164 #define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR
166 165
167 #define CONFIG_CMDLINE_EDITING 166 #define CONFIG_CMDLINE_EDITING
168 167
169 /* Physical Memory Map */ 168 /* Physical Memory Map */
170 #define CONFIG_NR_DRAM_BANKS 1 169 #define CONFIG_NR_DRAM_BANKS 1
171 #define PHYS_SDRAM MMDC0_ARB_BASE_ADDR 170 #define PHYS_SDRAM MMDC0_ARB_BASE_ADDR
171 #ifdef CONFIG_DDR_32BIT
172 #define PHYS_SDRAM_SIZE (1u * 1024 * 1024 * 1024)
173 #else
172 #define PHYS_SDRAM_SIZE (2u * 1024 * 1024 * 1024) 174 #define PHYS_SDRAM_SIZE (2u * 1024 * 1024 * 1024)
175 #endif
173 176
174 #define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM 177 #define CONFIG_SYS_SDRAM_BASE PHYS_SDRAM
175 #define CONFIG_SYS_INIT_RAM_ADDR IRAM_BASE_ADDR 178 #define CONFIG_SYS_INIT_RAM_ADDR IRAM_BASE_ADDR
176 #define CONFIG_SYS_INIT_RAM_SIZE IRAM_SIZE 179 #define CONFIG_SYS_INIT_RAM_SIZE IRAM_SIZE
177 180
178 #define CONFIG_SYS_INIT_SP_OFFSET \ 181 #define CONFIG_SYS_INIT_SP_OFFSET \
179 (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE) 182 (CONFIG_SYS_INIT_RAM_SIZE - GENERATED_GBL_DATA_SIZE)
180 #define CONFIG_SYS_INIT_SP_ADDR \ 183 #define CONFIG_SYS_INIT_SP_ADDR \
181 (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET) 184 (CONFIG_SYS_INIT_RAM_ADDR + CONFIG_SYS_INIT_SP_OFFSET)
182 185
183 /* FLASH and environment organization */ 186 /* FLASH and environment organization */
184 #define CONFIG_SYS_NO_FLASH 187 #define CONFIG_SYS_NO_FLASH
185 188
186 #define CONFIG_ENV_OFFSET (6 * 64 * 1024) 189 #define CONFIG_ENV_OFFSET (6 * 64 * 1024)
187 #define CONFIG_ENV_SIZE (8 * 1024) 190 #define CONFIG_ENV_SIZE (8 * 1024)
188 #define CONFIG_ENV_IS_IN_MMC 191 #define CONFIG_ENV_IS_IN_MMC
189 #define CONFIG_SYS_MMC_ENV_DEV 1 192 #define CONFIG_SYS_MMC_ENV_DEV 1
190 193
191 #define CONFIG_OF_LIBFDT 194 #define CONFIG_OF_LIBFDT
192 #define CONFIG_CMD_BOOTZ 195 #define CONFIG_CMD_BOOTZ
193 196
194 #endif /* __CONFIG_H */ 197 #endif /* __CONFIG_H */