Commit b357503f1cdedade6d31991fa6aabb4174f92989
Committed by
Stefano Babic
1 parent
febae49a2b
Exists in
v2017.01-smarct4x
and in
37 other branches
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 */ |