summaryrefslogtreecommitdiff
path: root/board/freescale
diff options
context:
space:
mode:
authorYe.Li <B37916@freescale.com>2015-05-20 17:19:44 +0800
committerMax Krummenacher <max.krummenacher@toradex.com>2016-03-09 14:42:35 +0100
commite164a9cc09421907353ce94a52d68af3d5da46cb (patch)
treeef8d548798cc6fbaa89af208181709998b79ec41 /board/freescale
parent4c1248c22476295ac173b2786b70d7d824ae7d19 (diff)
MLK-10936 imx: mx7d: Change to use bootrom_sw_info for getting boot device
On MX7D, boot rom can provide some boot information such as boot device, arm freq, axi freq, etc. (see the structure below) Offset Byte4 | Byte3 | Byte2 | Byte1 0x0 Reserved | Boot Device Type | Boot Device Instance | Reserved 0x4 ARM core frequency(in Hz) 0x8 AXI bus frequency(in Hz) 0x0C DDR frequency(in Hz) 0x10 GPT1 input clock frequency(in Hz) 0x14 Reserved 0x18 0x1C The boot information can be accessed by get the pointer at 0x1E8. This patch changes the u-boot to use the new approach. When manufacture boot, the info recorded is the actual SD port, not the failed device. Signed-off-by: Ye.Li <B37916@freescale.com>
Diffstat (limited to 'board/freescale')
-rw-r--r--board/freescale/mx7d_12x12_ddr3_arm2/mx7d_12x12_ddr3_arm2.c13
-rw-r--r--board/freescale/mx7d_12x12_lpddr3_arm2/mx7d_12x12_lpddr3_arm2.c13
-rw-r--r--board/freescale/mx7d_19x19_ddr3_arm2/mx7d_19x19_ddr3_arm2.c13
-rw-r--r--board/freescale/mx7d_19x19_lpddr3_arm2/mx7d_19x19_lpddr3_arm2.c13
-rw-r--r--board/freescale/mx7dsabresd/mx7dsabresd.c13
5 files changed, 25 insertions, 40 deletions
diff --git a/board/freescale/mx7d_12x12_ddr3_arm2/mx7d_12x12_ddr3_arm2.c b/board/freescale/mx7d_12x12_ddr3_arm2/mx7d_12x12_ddr3_arm2.c
index 225539a17d..3f5dcf5f3d 100644
--- a/board/freescale/mx7d_12x12_ddr3_arm2/mx7d_12x12_ddr3_arm2.c
+++ b/board/freescale/mx7d_12x12_ddr3_arm2/mx7d_12x12_ddr3_arm2.c
@@ -130,19 +130,16 @@ static struct fsl_esdhc_cfg usdhc_cfg[2] = {
int mmc_get_env_devno(void)
{
- u32 soc_sbmr = readl(SRC_BASE_ADDR + 0x58);
- u32 dev_no;
- u32 bootsel;
+ struct bootrom_sw_info **p =
+ (struct bootrom_sw_info **)ROM_SW_INFO_ADDR;
- bootsel = (soc_sbmr & 0x0000F000) >> 12;
+ u8 boot_type = (*p)->boot_dev_type;
+ u8 dev_no = (*p)->boot_dev_instance;
/* If not boot from sd/mmc, use default value */
- if ((bootsel != BOOT_TYPE_SD) && (bootsel != BOOT_TYPE_MMC))
+ if ((boot_type != BOOT_TYPE_SD) && (boot_type != BOOT_TYPE_MMC))
return CONFIG_SYS_MMC_ENV_DEV;
- /* BOOT_CFG2[2] and BOOT_CFG2[3] */
- dev_no = (soc_sbmr & 0x00000C00) >> 10;
-
return dev_no - 1;
}
diff --git a/board/freescale/mx7d_12x12_lpddr3_arm2/mx7d_12x12_lpddr3_arm2.c b/board/freescale/mx7d_12x12_lpddr3_arm2/mx7d_12x12_lpddr3_arm2.c
index 0770818e98..5ecc8e4b31 100644
--- a/board/freescale/mx7d_12x12_lpddr3_arm2/mx7d_12x12_lpddr3_arm2.c
+++ b/board/freescale/mx7d_12x12_lpddr3_arm2/mx7d_12x12_lpddr3_arm2.c
@@ -355,19 +355,16 @@ static struct fsl_esdhc_cfg usdhc_cfg[3] = {
int mmc_get_env_devno(void)
{
- u32 soc_sbmr = readl(SRC_BASE_ADDR + 0x58);
- u32 dev_no;
- u32 bootsel;
+ struct bootrom_sw_info **p =
+ (struct bootrom_sw_info **)ROM_SW_INFO_ADDR;
- bootsel = (soc_sbmr & 0x0000F000) >> 12;
+ u8 boot_type = (*p)->boot_dev_type;
+ u8 dev_no = (*p)->boot_dev_instance;
/* If not boot from sd/mmc, use default value */
- if ((bootsel != BOOT_TYPE_SD) && (bootsel != BOOT_TYPE_MMC))
+ if ((boot_type != BOOT_TYPE_SD) && (boot_type != BOOT_TYPE_MMC))
return CONFIG_SYS_MMC_ENV_DEV;
- /* BOOT_CFG2[2] and BOOT_CFG2[3] */
- dev_no = (soc_sbmr & 0x00000C00) >> 10;
-
return dev_no;
}
diff --git a/board/freescale/mx7d_19x19_ddr3_arm2/mx7d_19x19_ddr3_arm2.c b/board/freescale/mx7d_19x19_ddr3_arm2/mx7d_19x19_ddr3_arm2.c
index a746cc9aab..6fbde13a9e 100644
--- a/board/freescale/mx7d_19x19_ddr3_arm2/mx7d_19x19_ddr3_arm2.c
+++ b/board/freescale/mx7d_19x19_ddr3_arm2/mx7d_19x19_ddr3_arm2.c
@@ -356,19 +356,16 @@ static struct fsl_esdhc_cfg usdhc_cfg[3] = {
int mmc_get_env_devno(void)
{
- u32 soc_sbmr = readl(SRC_BASE_ADDR + 0x58);
- u32 dev_no;
- u32 bootsel;
+ struct bootrom_sw_info **p =
+ (struct bootrom_sw_info **)ROM_SW_INFO_ADDR;
- bootsel = (soc_sbmr & 0x0000F000) >> 12;
+ u8 boot_type = (*p)->boot_dev_type;
+ u8 dev_no = (*p)->boot_dev_instance;
/* If not boot from sd/mmc, use default value */
- if ((bootsel != BOOT_TYPE_SD) && (bootsel != BOOT_TYPE_MMC))
+ if ((boot_type != BOOT_TYPE_SD) && (boot_type != BOOT_TYPE_MMC))
return CONFIG_SYS_MMC_ENV_DEV;
- /* BOOT_CFG2[2] and BOOT_CFG2[3] */
- dev_no = (soc_sbmr & 0x00000C00) >> 10;
-
return dev_no;
}
diff --git a/board/freescale/mx7d_19x19_lpddr3_arm2/mx7d_19x19_lpddr3_arm2.c b/board/freescale/mx7d_19x19_lpddr3_arm2/mx7d_19x19_lpddr3_arm2.c
index f0706ebcba..74a0581bf4 100644
--- a/board/freescale/mx7d_19x19_lpddr3_arm2/mx7d_19x19_lpddr3_arm2.c
+++ b/board/freescale/mx7d_19x19_lpddr3_arm2/mx7d_19x19_lpddr3_arm2.c
@@ -318,19 +318,16 @@ static struct fsl_esdhc_cfg usdhc_cfg[1] = {
int mmc_get_env_devno(void)
{
- u32 soc_sbmr = readl(SRC_BASE_ADDR + 0x58);
- u32 dev_no;
- u32 bootsel;
+ struct bootrom_sw_info **p =
+ (struct bootrom_sw_info **)ROM_SW_INFO_ADDR;
- bootsel = (soc_sbmr & 0x0000F000) >> 12;
+ u8 boot_type = (*p)->boot_dev_type;
+ u8 dev_no = (*p)->boot_dev_instance;
/* If not boot from sd/mmc, use default value */
- if ((bootsel != BOOT_TYPE_SD) && (bootsel != BOOT_TYPE_MMC))
+ if ((boot_type != BOOT_TYPE_SD) && (boot_type != BOOT_TYPE_MMC))
return CONFIG_SYS_MMC_ENV_DEV;
- /* BOOT_CFG2[2] and BOOT_CFG2[3] */
- dev_no = (soc_sbmr & 0x00000C00) >> 10;
-
return dev_no;
}
diff --git a/board/freescale/mx7dsabresd/mx7dsabresd.c b/board/freescale/mx7dsabresd/mx7dsabresd.c
index 4db309ff08..0f1a0c4a21 100644
--- a/board/freescale/mx7dsabresd/mx7dsabresd.c
+++ b/board/freescale/mx7dsabresd/mx7dsabresd.c
@@ -500,19 +500,16 @@ static struct fsl_esdhc_cfg usdhc_cfg[3] = {
int mmc_get_env_devno(void)
{
- u32 soc_sbmr = readl(SRC_BASE_ADDR + 0x58);
- u32 dev_no;
- u32 bootsel;
+ struct bootrom_sw_info **p =
+ (struct bootrom_sw_info **)ROM_SW_INFO_ADDR;
- bootsel = (soc_sbmr & 0x0000F000) >> 12;
+ u8 boot_type = (*p)->boot_dev_type;
+ u8 dev_no = (*p)->boot_dev_instance;
/* If not boot from sd/mmc, use default value */
- if ((bootsel != BOOT_TYPE_SD) && (bootsel != BOOT_TYPE_MMC))
+ if ((boot_type != BOOT_TYPE_SD) && (boot_type != BOOT_TYPE_MMC))
return CONFIG_SYS_MMC_ENV_DEV;
- /* BOOT_CFG2[2] and BOOT_CFG2[3] */
- dev_no = (soc_sbmr & 0x00000C00) >> 10;
-
if (2 == dev_no)
dev_no--;