1*e3067793SAndy Yan /* 2*e3067793SAndy Yan * (C) Copyright 2016 Rockchip Electronics Co., Ltd 3*e3067793SAndy Yan * 4*e3067793SAndy Yan * SPDX-License-Identifier: GPL-2.0+ 5*e3067793SAndy Yan */ 6*e3067793SAndy Yan 7*e3067793SAndy Yan #include <common.h> 8*e3067793SAndy Yan #include <asm/io.h> 9*e3067793SAndy Yan #include <asm/arch/boot_mode.h> 10*e3067793SAndy Yan 11*e3067793SAndy Yan int setup_boot_mode(void) 12*e3067793SAndy Yan { 13*e3067793SAndy Yan void *reg = (void *)CONFIG_ROCKCHIP_BOOT_MODE_REG; 14*e3067793SAndy Yan int boot_mode = readl(reg); 15*e3067793SAndy Yan 16*e3067793SAndy Yan debug("boot mode %x.\n", boot_mode); 17*e3067793SAndy Yan 18*e3067793SAndy Yan /* Clear boot mode */ 19*e3067793SAndy Yan writel(BOOT_NORMAL, reg); 20*e3067793SAndy Yan 21*e3067793SAndy Yan switch (boot_mode) { 22*e3067793SAndy Yan case BOOT_FASTBOOT: 23*e3067793SAndy Yan printf("enter fastboot!\n"); 24*e3067793SAndy Yan env_set("preboot", "setenv preboot; fastboot usb0"); 25*e3067793SAndy Yan break; 26*e3067793SAndy Yan case BOOT_UMS: 27*e3067793SAndy Yan printf("enter UMS!\n"); 28*e3067793SAndy Yan env_set("preboot", "setenv preboot; ums mmc 0"); 29*e3067793SAndy Yan break; 30*e3067793SAndy Yan } 31*e3067793SAndy Yan 32*e3067793SAndy Yan return 0; 33*e3067793SAndy Yan } 34