mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-11-03 21:48:15 +00:00 
			
		
		
		
	ARM: uniphier: add a command to find the first MMC (non-SD) device
UniPhier SoC family supports both (e)MMC boot and SD card boot; however, both of them are handled in the same uclass. When booting from the eMMC, we want to know the device number of the (e)MMC, not SD. This command is useful to find the first MMC (non-SD) device. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
This commit is contained in:
		
							parent
							
								
									a55d9feeec
								
							
						
					
					
						commit
						569e4be172
					
				@ -7,6 +7,7 @@
 | 
				
			|||||||
#include <common.h>
 | 
					#include <common.h>
 | 
				
			||||||
#include <mmc.h>
 | 
					#include <mmc.h>
 | 
				
			||||||
#include <spl.h>
 | 
					#include <spl.h>
 | 
				
			||||||
 | 
					#include <linux/err.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "../sbc/sbc-regs.h"
 | 
					#include "../sbc/sbc-regs.h"
 | 
				
			||||||
#include "../soc-info.h"
 | 
					#include "../soc-info.h"
 | 
				
			||||||
@ -77,3 +78,36 @@ u32 spl_boot_mode(void)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	return MMCSD_MODE_EMMCBOOT;
 | 
						return MMCSD_MODE_EMMCBOOT;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(CONFIG_DM_MMC) && !defined(CONFIG_SPL_BUILD)
 | 
				
			||||||
 | 
					static int find_first_mmc_device(void)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						struct mmc *mmc;
 | 
				
			||||||
 | 
						int i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						for (i = 0; (mmc = find_mmc_device(i)); i++) {
 | 
				
			||||||
 | 
							if (!mmc_init(mmc) && IS_MMC(mmc))
 | 
				
			||||||
 | 
								return i;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return -ENODEV;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static int do_mmcsetn(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						int dev;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						dev = find_first_mmc_device();
 | 
				
			||||||
 | 
						if (dev < 0)
 | 
				
			||||||
 | 
							return CMD_RET_FAILURE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						setenv_ulong("mmc_first_dev", dev);
 | 
				
			||||||
 | 
						return CMD_RET_SUCCESS;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					U_BOOT_CMD(
 | 
				
			||||||
 | 
						   mmcsetn,	1,	1,	do_mmcsetn,
 | 
				
			||||||
 | 
						"Set the first MMC (not SD) dev number to \"mmc_first_dev\" enviroment",
 | 
				
			||||||
 | 
						""
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user