]>
Commit | Line | Data |
---|---|---|
ac880e77 JT |
1 | /* |
2 | * Copyright (C) 2016 Amarula Solutions B.V. | |
3 | * Copyright (C) 2016 Engicam S.r.l. | |
4 | * Author: Jagan Teki <jagan@amarulasolutions.com> | |
5 | * | |
6 | * SPDX-License-Identifier: GPL-2.0+ | |
7 | */ | |
8 | ||
9 | #include <common.h> | |
10 | #include <mmc.h> | |
11 | #include <asm/arch/sys_proto.h> | |
12 | ||
13 | #include "board.h" | |
14 | ||
15 | DECLARE_GLOBAL_DATA_PTR; | |
16 | ||
17 | #ifdef CONFIG_ENV_IS_IN_MMC | |
f9247569 | 18 | static void mmc_late_init(void) |
ac880e77 JT |
19 | { |
20 | char cmd[32]; | |
21 | char mmcblk[32]; | |
22 | u32 dev_no = mmc_get_env_dev(); | |
23 | ||
018f5303 | 24 | env_set_ulong("mmcdev", dev_no); |
ac880e77 JT |
25 | |
26 | /* Set mmcblk env */ | |
27 | sprintf(mmcblk, "/dev/mmcblk%dp2 rootwait rw", dev_no); | |
382bee57 | 28 | env_set("mmcroot", mmcblk); |
ac880e77 JT |
29 | |
30 | sprintf(cmd, "mmc dev %d", dev_no); | |
31 | run_command(cmd, 0); | |
32 | } | |
33 | #endif | |
34 | ||
409b16d3 JT |
35 | static void setenv_fdt_file(void) |
36 | { | |
37 | const char *cmp_dtb = CONFIG_DEFAULT_DEVICE_TREE; | |
38 | ||
39 | if (!strcmp(cmp_dtb, "imx6q-icore")) { | |
40 | if (is_mx6dq()) | |
41 | env_set("fdt_file", "imx6q-icore.dtb"); | |
42 | else if(is_mx6dl() || is_mx6solo()) | |
43 | env_set("fdt_file", "imx6dl-icore.dtb"); | |
44 | } else if (!strcmp(cmp_dtb, "imx6q-icore-rqs")) { | |
45 | if (is_mx6dq()) | |
46 | env_set("fdt_file", "imx6q-icore-rqs.dtb"); | |
47 | else if(is_mx6dl() || is_mx6solo()) | |
48 | env_set("fdt_file", "imx6dl-icore-rqs.dtb"); | |
49 | } else if (!strcmp(cmp_dtb, "imx6ul-geam-kit")) | |
50 | env_set("fdt_file", "imx6ul-geam-kit.dtb"); | |
51 | else if (!strcmp(cmp_dtb, "imx6ul-isiot-mmc")) | |
52aaddd6 | 52 | env_set("fdt_file", "imx6ul-isiot-emmc.dtb"); |
409b16d3 JT |
53 | else if (!strcmp(cmp_dtb, "imx6ul-isiot-emmc")) |
54 | env_set("fdt_file", "imx6ul-isiot-emmc.dtb"); | |
55 | else if (!strcmp(cmp_dtb, "imx6ul-isiot-nand")) | |
56 | env_set("fdt_file", "imx6ul-isiot-nand.dtb"); | |
57 | } | |
58 | ||
f9247569 JT |
59 | int board_late_init(void) |
60 | { | |
61 | switch ((imx6_src_get_boot_mode() & IMX6_BMODE_MASK) >> | |
62 | IMX6_BMODE_SHIFT) { | |
63 | case IMX6_BMODE_SD: | |
64 | case IMX6_BMODE_ESD: | |
65 | case IMX6_BMODE_MMC: | |
66 | case IMX6_BMODE_EMMC: | |
67 | #ifdef CONFIG_ENV_IS_IN_MMC | |
68 | mmc_late_init(); | |
69 | #endif | |
382bee57 | 70 | env_set("modeboot", "mmcboot"); |
f9247569 | 71 | break; |
af104ae5 | 72 | case IMX6_BMODE_NAND_MIN ... IMX6_BMODE_NAND_MAX: |
382bee57 | 73 | env_set("modeboot", "nandboot"); |
f9247569 JT |
74 | break; |
75 | default: | |
382bee57 | 76 | env_set("modeboot", ""); |
f9247569 JT |
77 | break; |
78 | } | |
79 | ||
46f9c839 | 80 | if (is_mx6ul()) |
382bee57 | 81 | env_set("console", "ttymxc0"); |
46f9c839 | 82 | else |
382bee57 | 83 | env_set("console", "ttymxc3"); |
46f9c839 | 84 | |
f9247569 JT |
85 | setenv_fdt_file(); |
86 | ||
87 | return 0; | |
88 | } | |
89 | ||
ac880e77 JT |
90 | int board_init(void) |
91 | { | |
92 | /* Address of boot parameters */ | |
93 | gd->bd->bi_boot_params = PHYS_SDRAM + 0x100; | |
94 | ||
95 | #ifdef CONFIG_NAND_MXS | |
96 | setup_gpmi_nand(); | |
97 | #endif | |
98 | ||
99 | #ifdef CONFIG_VIDEO_IPUV3 | |
100 | setup_display(); | |
101 | #endif | |
102 | ||
103 | return 0; | |
104 | } | |
105 | ||
106 | int dram_init(void) | |
107 | { | |
108 | gd->ram_size = imx_ddr_size(); | |
109 | ||
110 | return 0; | |
111 | } |