diff --git a/arch/arm/boards/embedsky-e9/defaultenv-e9/boot/mmc1 b/arch/arm/boards/embedsky-e9/defaultenv-e9/boot/mmc1 index 0177e6c..a54b777 100644 --- a/arch/arm/boards/embedsky-e9/defaultenv-e9/boot/mmc1 +++ b/arch/arm/boards/embedsky-e9/defaultenv-e9/boot/mmc1 @@ -3,4 +3,5 @@ mount /dev/mmc1.0 global.bootm.image=/mnt/mmc1.0/zImage +global.bootm.oftree=/mnt/mmc1.0/imx6q-embedsky-e9.dtb global.linux.bootargs.dyn.root="root=/dev/mmcblk0p2 rootwait" diff --git a/arch/arm/boards/embedsky-e9/defaultenv-e9/boot/mmc3 b/arch/arm/boards/embedsky-e9/defaultenv-e9/boot/mmc3 index f6cb529..154cef9 100644 --- a/arch/arm/boards/embedsky-e9/defaultenv-e9/boot/mmc3 +++ b/arch/arm/boards/embedsky-e9/defaultenv-e9/boot/mmc3 @@ -3,4 +3,5 @@ mount /dev/mmc3.0 global.bootm.image=/mnt/mmc3.0/zImage +global.bootm.oftree=/mnt/mmc3.0/imx6q-embedsky-e9.dtb global.linux.bootargs.dyn.root="root=/dev/mmcblk0p2 rootwait" diff --git a/arch/arm/boards/embedsky-e9/defaultenv-e9/nv/boot.default b/arch/arm/boards/embedsky-e9/defaultenv-e9/nv/boot.default new file mode 100644 index 0000000..da22886 --- /dev/null +++ b/arch/arm/boards/embedsky-e9/defaultenv-e9/nv/boot.default @@ -0,0 +1 @@ +mmc1 mmc3 diff --git a/arch/arm/mach-mvebu/common.c b/arch/arm/mach-mvebu/common.c index 06bfb72..fa971da 100644 --- a/arch/arm/mach-mvebu/common.c +++ b/arch/arm/mach-mvebu/common.c @@ -47,7 +47,7 @@ #define ARMADA_370_XP_SDRAM_BASE (IOMEM(MVEBU_REMAP_INT_REG_BASE) + 0x20000) #define ARMADA_370_XP_DDR_SIZE_CSn(n) (0x184 + ((n) * 0x8)) #define ARMADA_370_XP_DDR_SIZE_ENABLED BIT(0) -#define ARMADA_370_XP_DDR_SIZE_MASK 0xff000000 +#define ARMADA_370_XP_DDR_SIZE_MASK 0xffff0000 /* * Marvell MVEBU SoC id and revision can be read from any PCIe diff --git a/arch/arm/mach-omap/omap_generic.c b/arch/arm/mach-omap/omap_generic.c index 1d03eac..694c951 100644 --- a/arch/arm/mach-omap/omap_generic.c +++ b/arch/arm/mach-omap/omap_generic.c @@ -113,12 +113,15 @@ } #if defined(CONFIG_ENV_HANDLING) -#define ENV_PATH "/boot/barebox.env" +static char *envpath = "/mnt/mmc0.0/barebox.env"; + static int omap_env_init(void) { - char *partname; - const char *diskdev; int ret; + const char *diskdev; + char *partname; + struct cdev *cdev; + const char *rootpath; if (bootsource_get() != BOOTSOURCE_MMC) return 0; @@ -129,18 +132,29 @@ diskdev = "disk0"; device_detect_by_name(diskdev); - - partname = basprintf("/dev/%s.0", diskdev); - - mkdir("/boot", 0666); - ret = mount(partname, "fat", "/boot", NULL); - if (ret) { - pr_err("Failed to load environment: mount %s failed (%d)\n", partname, ret); + partname = basprintf("%s.0", diskdev); + cdev = cdev_by_name(partname); + if (cdev == NULL) { + pr_err("Failed to get device %s\n", partname); goto out; } - pr_debug("Loading default env from %s on device %s\n", ENV_PATH, partname); - default_environment_path_set(ENV_PATH); + rootpath = cdev_mount_default(cdev, NULL); + if (IS_ERR(rootpath)) { + pr_err("Failed to load environment: mount %s failed (%d)\n", + cdev->name, IS_ERR(rootpath)); + goto out; + } + ret = symlink(rootpath, "/boot"); + if (ret < 0) + pr_warn("Failed to create symlink from %s to %s\n", rootpath + , "/boot"); + + envpath = basprintf("%s/barebox.env", rootpath); + + pr_debug("Loading default env from %s on device %s\n", envpath, + partname); + default_environment_path_set(envpath); out: free(partname);