summaryrefslogtreecommitdiff
path: root/board
diff options
context:
space:
mode:
authorYe.Li <B37916@freescale.com>2015-05-20 17:19:44 +0800
committerYe.Li <B37916@freescale.com>2015-05-20 18:05:33 +0800
commitf7775862aa7eb6d5e978f9059e981f57f7f76f1a (patch)
treecded4b1d5fde87dfe45f151f934432b2567c4fe5 /board
parent7ae2b544aedaf79c59c54a8cfd917da76eac4d73 (diff)
downloadu-boot-imx-f7775862aa7eb6d5e978f9059e981f57f7f76f1a.zip
u-boot-imx-f7775862aa7eb6d5e978f9059e981f57f7f76f1a.tar.gz
u-boot-imx-f7775862aa7eb6d5e978f9059e981f57f7f76f1a.tar.bz2
MLK-10936 imx: mx7d: Change to use bootrom_sw_info for getting boot deviceimx_3.14.38_6ul_engr
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')
-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 225539a..3f5dcf5 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 0770818..5ecc8e4 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 a746cc9..6fbde13 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 f0706eb..74a0581 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 4db309f..0f1a0c4 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--;