mirror of
				https://xff.cz/git/u-boot/
				synced 2025-10-31 10:26:10 +01:00 
			
		
		
		
	board: phycore-am62x: Extend for better environment handling
Select environment location based on the device we boot from. Also, introduce a "boot" variable that represents the current boot device and can be used by scripts. Signed-off-by: Wadim Egorov <w.egorov@phytec.de>
This commit is contained in:
		| @@ -57,3 +57,67 @@ void spl_board_init(void) | |||||||
| 	       MCU_CTRL_DEVICE_CLKOUT_32K_CTRL); | 	       MCU_CTRL_DEVICE_CLKOUT_32K_CTRL); | ||||||
| } | } | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|  | #if IS_ENABLED(CONFIG_ENV_IS_IN_FAT) || IS_ENABLED(CONFIG_ENV_IS_IN_MMC) | ||||||
|  | int mmc_get_env_dev(void) | ||||||
|  | { | ||||||
|  | 	u32 boot_device = get_boot_device(); | ||||||
|  |  | ||||||
|  | 	switch (boot_device) { | ||||||
|  | 	case BOOT_DEVICE_MMC1: | ||||||
|  | 		return 0; | ||||||
|  | 	case BOOT_DEVICE_MMC2: | ||||||
|  | 		return 1; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	return CONFIG_SYS_MMC_ENV_DEV; | ||||||
|  | } | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | enum env_location env_get_location(enum env_operation op, int prio) | ||||||
|  | { | ||||||
|  | 	u32 boot_device = get_boot_device(); | ||||||
|  |  | ||||||
|  | 	if (prio) | ||||||
|  | 		return ENVL_UNKNOWN; | ||||||
|  |  | ||||||
|  | 	switch (boot_device) { | ||||||
|  | 	case BOOT_DEVICE_MMC1: | ||||||
|  | 	case BOOT_DEVICE_MMC2: | ||||||
|  | 		if (CONFIG_IS_ENABLED(ENV_IS_IN_FAT)) | ||||||
|  | 			return ENVL_FAT; | ||||||
|  | 		if (CONFIG_IS_ENABLED(ENV_IS_IN_MMC)) | ||||||
|  | 			return ENVL_MMC; | ||||||
|  | 	case BOOT_DEVICE_SPI: | ||||||
|  | 		if (CONFIG_IS_ENABLED(ENV_IS_IN_SPI_FLASH)) | ||||||
|  | 			return ENVL_SPI_FLASH; | ||||||
|  | 	default: | ||||||
|  | 		return ENVL_NOWHERE; | ||||||
|  | 	}; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | #if IS_ENABLED(CONFIG_BOARD_LATE_INIT) | ||||||
|  | int board_late_init(void) | ||||||
|  | { | ||||||
|  | 	u32 boot_device = get_boot_device(); | ||||||
|  |  | ||||||
|  | 	switch (boot_device) { | ||||||
|  | 	case BOOT_DEVICE_MMC1: | ||||||
|  | 		env_set_ulong("mmcdev", 0); | ||||||
|  | 		env_set("boot", "mmc"); | ||||||
|  | 		break; | ||||||
|  | 	case BOOT_DEVICE_MMC2: | ||||||
|  | 		env_set_ulong("mmcdev", 1); | ||||||
|  | 		env_set("boot", "mmc"); | ||||||
|  | 		break; | ||||||
|  | 	case BOOT_DEVICE_SPI: | ||||||
|  | 		env_set("boot", "spi"); | ||||||
|  | 		break; | ||||||
|  | 	case BOOT_DEVICE_ETHERNET: | ||||||
|  | 		env_set("boot", "net"); | ||||||
|  | 		break; | ||||||
|  | 	}; | ||||||
|  |  | ||||||
|  | 	return 0; | ||||||
|  | } | ||||||
|  | #endif | ||||||
|   | |||||||
| @@ -33,6 +33,7 @@ CONFIG_BOOTSTD_FULL=y | |||||||
| CONFIG_SYS_BOOTM_LEN=0x800000 | CONFIG_SYS_BOOTM_LEN=0x800000 | ||||||
| CONFIG_BOOTCOMMAND="run mmcboot; bootflow scan -lb" | CONFIG_BOOTCOMMAND="run mmcboot; bootflow scan -lb" | ||||||
| CONFIG_DEFAULT_FDT_FILE="oftree" | CONFIG_DEFAULT_FDT_FILE="oftree" | ||||||
|  | CONFIG_BOARD_LATE_INIT=y | ||||||
| CONFIG_SPL_MAX_SIZE=0x58000 | CONFIG_SPL_MAX_SIZE=0x58000 | ||||||
| CONFIG_SPL_HAS_BSS_LINKER_SECTION=y | CONFIG_SPL_HAS_BSS_LINKER_SECTION=y | ||||||
| CONFIG_SPL_BSS_START_ADDR=0x80c80000 | CONFIG_SPL_BSS_START_ADDR=0x80c80000 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user