mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-09-28 23:50:26 +09:00
ARM: uniphier: add sdscript, sdboot, sdupdate environment variables
Add handy macros: - sdscript: source boot.scr in the file system of the SD media - sdboot : boot the kernel using the images in the file system of the SD media - sdscript: update the boot firmware in the SD media (in raw block sectors) Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
This commit is contained in:
parent
8b912fbb8c
commit
ef5c7d6d5c
@ -9,13 +9,14 @@
|
|||||||
#include <mmc.h>
|
#include <mmc.h>
|
||||||
#include <linux/errno.h>
|
#include <linux/errno.h>
|
||||||
|
|
||||||
static int find_first_mmc_device(void)
|
static int find_first_mmc_device(bool is_sd)
|
||||||
{
|
{
|
||||||
struct mmc *mmc;
|
struct mmc *mmc;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; (mmc = find_mmc_device(i)); i++) {
|
for (i = 0; (mmc = find_mmc_device(i)); i++) {
|
||||||
if (!mmc_init(mmc) && IS_MMC(mmc))
|
if (!mmc_init(mmc) &&
|
||||||
|
((is_sd && IS_SD(mmc)) || (!is_sd && IS_MMC(mmc))))
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -24,14 +25,14 @@ static int find_first_mmc_device(void)
|
|||||||
|
|
||||||
int mmc_get_env_dev(void)
|
int mmc_get_env_dev(void)
|
||||||
{
|
{
|
||||||
return find_first_mmc_device();
|
return find_first_mmc_device(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int do_mmcsetn(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
static int do_mmcsetn(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||||
{
|
{
|
||||||
int dev;
|
int dev;
|
||||||
|
|
||||||
dev = find_first_mmc_device();
|
dev = find_first_mmc_device(false);
|
||||||
if (dev < 0)
|
if (dev < 0)
|
||||||
return CMD_RET_FAILURE;
|
return CMD_RET_FAILURE;
|
||||||
|
|
||||||
@ -44,3 +45,21 @@ U_BOOT_CMD(
|
|||||||
"Set the first MMC (not SD) dev number to \"mmc_first_dev\" environment",
|
"Set the first MMC (not SD) dev number to \"mmc_first_dev\" environment",
|
||||||
""
|
""
|
||||||
);
|
);
|
||||||
|
|
||||||
|
static int do_sdsetn(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
|
||||||
|
{
|
||||||
|
int dev;
|
||||||
|
|
||||||
|
dev = find_first_mmc_device(true);
|
||||||
|
if (dev < 0)
|
||||||
|
return CMD_RET_FAILURE;
|
||||||
|
|
||||||
|
env_set_ulong("sd_first_dev", dev);
|
||||||
|
return CMD_RET_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
U_BOOT_CMD(
|
||||||
|
sdsetn, 1, 1, do_sdsetn,
|
||||||
|
"Set the first SD dev number to \"sd_first_dev\" environment",
|
||||||
|
""
|
||||||
|
);
|
||||||
|
@ -160,6 +160,7 @@
|
|||||||
"emmcboot=mmcsetn && run bootcmd_mmc${mmc_first_dev}\0" \
|
"emmcboot=mmcsetn && run bootcmd_mmc${mmc_first_dev}\0" \
|
||||||
"nandboot=run bootcmd_ubifs0\0" \
|
"nandboot=run bootcmd_ubifs0\0" \
|
||||||
"norboot=run tftpboot\0" \
|
"norboot=run tftpboot\0" \
|
||||||
|
"sdboot=sdsetn && run bootcmd_mmc${sd_first_dev}\0" \
|
||||||
"usbboot=run bootcmd_usb0\0" \
|
"usbboot=run bootcmd_usb0\0" \
|
||||||
"emmcscript=setenv devtype mmc && " \
|
"emmcscript=setenv devtype mmc && " \
|
||||||
"mmcsetn && " \
|
"mmcsetn && " \
|
||||||
@ -170,6 +171,10 @@
|
|||||||
"ubifsmount ubi0:boot && " \
|
"ubifsmount ubi0:boot && " \
|
||||||
"ubifsload ${loadaddr} ${script} && " \
|
"ubifsload ${loadaddr} ${script} && " \
|
||||||
"source $loadaddr\0" \
|
"source $loadaddr\0" \
|
||||||
|
"sdscript=setenv devtype mmc && " \
|
||||||
|
"sdsetn && " \
|
||||||
|
"setenv devnum ${sd_first_dev} && " \
|
||||||
|
"run loadscript_fat\0" \
|
||||||
"norscript=echo Running ${script} from tftp ... && " \
|
"norscript=echo Running ${script} from tftp ... && " \
|
||||||
"tftpboot ${script} &&" \
|
"tftpboot ${script} &&" \
|
||||||
"source $loadaddr\0" \
|
"source $loadaddr\0" \
|
||||||
@ -196,6 +201,12 @@
|
|||||||
"nand write $loadaddr 0 0x00020000 && " \
|
"nand write $loadaddr 0 0x00020000 && " \
|
||||||
"tftpboot $third_image && " \
|
"tftpboot $third_image && " \
|
||||||
"nand write $loadaddr 0x00020000 0x001e0000\0" \
|
"nand write $loadaddr 0x00020000 0x001e0000\0" \
|
||||||
|
"sdupdate=sdsetn &&" \
|
||||||
|
"mmc dev $sd_first_dev &&" \
|
||||||
|
"tftpboot $second_image && " \
|
||||||
|
"mmc write $loadaddr 0 100 && " \
|
||||||
|
"tftpboot $third_image && " \
|
||||||
|
"mmc write $loadaddr 100 f00\0" \
|
||||||
"usbupdate=usb start &&" \
|
"usbupdate=usb start &&" \
|
||||||
"tftpboot $second_image && " \
|
"tftpboot $second_image && " \
|
||||||
"usb write $loadaddr 0 100 && " \
|
"usb write $loadaddr 0 100 && " \
|
||||||
|
Loading…
Reference in New Issue
Block a user