i.MX7ULP: evk: Modify FDT file to disable SD3.0 for usb boot

Since the SD3.0 kernel driver needs M4 image support, this causes
problem for usb boot booting into kernel.  To decouple the relationship,
we modify the FDT file in u-boot to disable SD3.0.
So the kernel won't depend on M4 image.

Signed-off-by: Peng Fan <peng.fan@nxp.com>
This commit is contained in:
Peng Fan 2019-07-22 01:24:39 +00:00 committed by Stefano Babic
parent e92fca66a3
commit bd1cc6ae6f
2 changed files with 48 additions and 0 deletions

View File

@ -4,10 +4,12 @@
*/
#include <common.h>
#include <fdt_support.h>
#include <asm/io.h>
#include <asm/arch/sys_proto.h>
#include <asm/arch/mx7ulp-pins.h>
#include <asm/arch/iomux.h>
#include <asm/mach-imx/boot_mode.h>
DECLARE_GLOBAL_DATA_PTR;
@ -45,3 +47,48 @@ int board_init(void)
return 0;
}
#if IS_ENABLED(CONFIG_OF_BOARD_SETUP)
int ft_board_setup(void *blob, bd_t *bd)
{
const char *path;
int rc, nodeoff;
if (get_boot_device() == USB_BOOT) {
path = fdt_get_alias(blob, "mmc0");
if (!path) {
puts("Not found mmc0\n");
return 0;
}
nodeoff = fdt_path_offset(blob, path);
if (nodeoff < 0)
return 0;
printf("Found usdhc0 node\n");
if (fdt_get_property(blob, nodeoff, "vqmmc-supply",
NULL) != NULL) {
rc = fdt_delprop(blob, nodeoff, "vqmmc-supply");
if (!rc) {
puts("Removed vqmmc-supply property\n");
add:
rc = fdt_setprop(blob, nodeoff,
"no-1-8-v", NULL, 0);
if (rc == -FDT_ERR_NOSPACE) {
rc = fdt_increase_size(blob, 32);
if (!rc)
goto add;
} else if (rc) {
printf("Failed to add no-1-8-v property, %d\n", rc);
} else {
puts("Added no-1-8-v property\n");
}
} else {
printf("Failed to remove vqmmc-supply property, %d\n", rc);
}
}
}
return 0;
}
#endif

View File

@ -3,6 +3,7 @@ CONFIG_ARCH_MX7ULP=y
CONFIG_SYS_TEXT_BASE=0x67800000
CONFIG_TARGET_MX7ULP_EVK=y
CONFIG_NR_DRAM_BANKS=1
CONFIG_OF_BOARD_SETUP=y
CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/freescale/mx7ulp_evk/imximage.cfg"
CONFIG_BOUNCE_BUFFER=y
CONFIG_HUSH_PARSER=y