mirror of
https://git.codelinaro.org/clo/qsdk/oss/boot/u-boot-2016.git
synced 2025-12-10 07:44:53 +01:00
Revert "ipq806x: use proper partition for env varibales in eMMC"
This reverts commit 6345e2888c.
This commit is contained in:
parent
de84bbb6b5
commit
8e2326232d
4 changed files with 63 additions and 39 deletions
|
|
@ -26,7 +26,6 @@ extern int sf_env_init(void);
|
||||||
#ifdef CONFIG_QCA_MMC
|
#ifdef CONFIG_QCA_MMC
|
||||||
extern int mmc_env_init(void);
|
extern int mmc_env_init(void);
|
||||||
extern void mmc_env_relocate_spec(void);
|
extern void mmc_env_relocate_spec(void);
|
||||||
extern int mmc_init(struct mmc *mmc);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -85,35 +84,3 @@ void env_relocate_spec(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef CONFIG_QCA_MMC
|
|
||||||
int board_mmc_env_init(qca_mmc mmc_host)
|
|
||||||
{
|
|
||||||
block_dev_desc_t *blk_dev;
|
|
||||||
disk_partition_t disk_info;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
if (mmc_init(mmc_host.mmc)) {
|
|
||||||
/* The HS mode command(cmd6) is getting timed out. So mmc card is
|
|
||||||
* not getting initialized properly. Since the env partition is not
|
|
||||||
* visible, the env default values are writing into the default
|
|
||||||
* partition (start of the mmc device). So do a reset again.
|
|
||||||
*/
|
|
||||||
if (mmc_init(mmc_host.mmc)) {
|
|
||||||
printf("MMC init failed \n");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
blk_dev = mmc_get_dev(mmc_host.dev_num);
|
|
||||||
ret = get_partition_info_efi_by_name(blk_dev,
|
|
||||||
"0:APPSBLENV", &disk_info);
|
|
||||||
|
|
||||||
if (ret == 0) {
|
|
||||||
board_env_offset = disk_info.start * disk_info.blksz;
|
|
||||||
board_env_size = disk_info.size * disk_info.blksz;
|
|
||||||
board_env_range = board_env_size;
|
|
||||||
BUG_ON(board_env_size > CONFIG_ENV_SIZE_MAX);
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
|
||||||
|
|
@ -219,6 +219,36 @@ int board_eth_init(bd_t *bis)
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_QCA_MMC
|
#ifdef CONFIG_QCA_MMC
|
||||||
|
int board_mmc_env_init(void)
|
||||||
|
{
|
||||||
|
block_dev_desc_t *blk_dev;
|
||||||
|
disk_partition_t disk_info;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
if (mmc_init(mmc_host.mmc)) {
|
||||||
|
/* The HS mode command(cmd6) is getting timed out. So mmc card is
|
||||||
|
* not getting initialized properly. Since the env partition is not
|
||||||
|
* visible, the env default values are writing into the default
|
||||||
|
* partition (start of the mmc device). So do a reset again.
|
||||||
|
*/
|
||||||
|
if (mmc_init(mmc_host.mmc)) {
|
||||||
|
printf("MMC init failed \n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
blk_dev = mmc_get_dev(mmc_host.dev_num);
|
||||||
|
ret = get_partition_info_efi_by_name(blk_dev,
|
||||||
|
"0:APPSBLENV", &disk_info);
|
||||||
|
|
||||||
|
if (ret == 0) {
|
||||||
|
board_env_offset = disk_info.start * disk_info.blksz;
|
||||||
|
board_env_size = disk_info.size * disk_info.blksz;
|
||||||
|
board_env_range = board_env_size;
|
||||||
|
BUG_ON(board_env_size > CONFIG_ENV_SIZE_MAX);
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
int board_mmc_init(bd_t *bis)
|
int board_mmc_init(bd_t *bis)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
@ -248,7 +278,7 @@ int board_mmc_init(bd_t *bis)
|
||||||
ret = qca_mmc_init(bis, &mmc_host);
|
ret = qca_mmc_init(bis, &mmc_host);
|
||||||
|
|
||||||
if (!ret && sfi->flash_type == SMEM_BOOT_MMC_FLASH) {
|
if (!ret && sfi->flash_type == SMEM_BOOT_MMC_FLASH) {
|
||||||
ret = board_mmc_env_init(mmc_host);
|
ret = board_mmc_env_init();
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
|
||||||
|
|
@ -174,7 +174,6 @@ int board_mmc_init(bd_t *bis)
|
||||||
int ret = -ENODEV;
|
int ret = -ENODEV;
|
||||||
u32 *emmc_base;
|
u32 *emmc_base;
|
||||||
int len;
|
int len;
|
||||||
qca_smem_flash_info_t *sfi = &qca_smem_flash_info;
|
|
||||||
|
|
||||||
node = fdt_path_offset(gd->fdt_blob, "sdcc");
|
node = fdt_path_offset(gd->fdt_blob, "sdcc");
|
||||||
|
|
||||||
|
|
@ -200,9 +199,6 @@ int board_mmc_init(bd_t *bis)
|
||||||
ret = qca_mmc_init(bis, &mmc_host);
|
ret = qca_mmc_init(bis, &mmc_host);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ret && sfi->flash_type == SMEM_BOOT_MMC_FLASH) {
|
|
||||||
ret = board_mmc_env_init(mmc_host);
|
|
||||||
}
|
|
||||||
out:
|
out:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -388,6 +388,37 @@ int board_eth_init(bd_t *bis)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int board_mmc_env_init(void)
|
||||||
|
{
|
||||||
|
block_dev_desc_t *blk_dev;
|
||||||
|
disk_partition_t disk_info;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
if (mmc_init(mmc_host.mmc)) {
|
||||||
|
/* The HS mode command(cmd6) is getting timed out. So mmc card
|
||||||
|
* is not getting initialized properly. Since the env partition
|
||||||
|
* is not visible, the env default values are writing into the
|
||||||
|
* default partition (start of the mmc device).
|
||||||
|
* So do a reset again.
|
||||||
|
*/
|
||||||
|
if (mmc_init(mmc_host.mmc)) {
|
||||||
|
printf("MMC init failed \n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
blk_dev = mmc_get_dev(mmc_host.dev_num);
|
||||||
|
ret = get_partition_info_efi_by_name(blk_dev,
|
||||||
|
"0:APPSBLENV", &disk_info);
|
||||||
|
|
||||||
|
if (ret == 0) {
|
||||||
|
board_env_offset = disk_info.start * disk_info.blksz;
|
||||||
|
board_env_size = disk_info.size * disk_info.blksz;
|
||||||
|
board_env_range = board_env_size;
|
||||||
|
BUG_ON(board_env_size > CONFIG_ENV_SIZE_MAX);
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
int board_mmc_init(bd_t *bis)
|
int board_mmc_init(bd_t *bis)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
@ -419,7 +450,7 @@ int board_mmc_init(bd_t *bis)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (!ret && sfi->flash_type == SMEM_BOOT_MMC_FLASH) {
|
if (!ret && sfi->flash_type == SMEM_BOOT_MMC_FLASH) {
|
||||||
ret = board_mmc_env_init(mmc_host);
|
ret = board_mmc_env_init();
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue