imx: mx7: SPL support for i.MX7
Add configuration file and spl_boot_device function for the i.MX7 SPL. Signed-off-by: Uri Mashiach <uri.mashiach@compulab.co.il>
This commit is contained in:
		
							parent
							
								
									258bad41ac
								
							
						
					
					
						commit
						c5c6f37a04
					
				|  | @ -7,3 +7,4 @@ | |||
| #include <asm/mach-imx/sys_proto.h> | ||||
| 
 | ||||
| void set_wdog_reset(struct wdog_regs *wdog); | ||||
| enum boot_device get_boot_device(void); | ||||
|  |  | |||
|  | @ -14,6 +14,7 @@ | |||
| #include <asm/spl.h> | ||||
| #include <spl.h> | ||||
| #include <asm/mach-imx/hab.h> | ||||
| #include <asm/mach-imx/boot_mode.h> | ||||
| #include <g_dnl.h> | ||||
| 
 | ||||
| DECLARE_GLOBAL_DATA_PTR; | ||||
|  | @ -96,6 +97,27 @@ u32 spl_boot_device(void) | |||
| 	return BOOT_DEVICE_NONE; | ||||
| } | ||||
| 
 | ||||
| #elif defined(CONFIG_MX7) | ||||
| /* Translate iMX7 boot device to the SPL boot device enumeration */ | ||||
| u32 spl_boot_device(void) | ||||
| { | ||||
| 	enum boot_device boot_device_spl = get_boot_device(); | ||||
| 
 | ||||
| 	switch (boot_device_spl) { | ||||
| 	case SD1_BOOT: | ||||
| 	case MMC1_BOOT: | ||||
| 		return BOOT_DEVICE_MMC1; | ||||
| 	case SD2_BOOT: | ||||
| 	case MMC2_BOOT: | ||||
| 		return BOOT_DEVICE_MMC2; | ||||
| 	case SPI_NOR_BOOT: | ||||
| 		return BOOT_DEVICE_SPI; | ||||
| 	default: | ||||
| 		return BOOT_DEVICE_NONE; | ||||
| 	} | ||||
| } | ||||
| #endif /* CONFIG_MX6 || CONFIG_MX7 */ | ||||
| 
 | ||||
| #ifdef CONFIG_SPL_USB_GADGET_SUPPORT | ||||
| int g_dnl_bind_fixup(struct usb_device_descriptor *dev, const char *name) | ||||
| { | ||||
|  | @ -104,7 +126,6 @@ int g_dnl_bind_fixup(struct usb_device_descriptor *dev, const char *name) | |||
| 	return 0; | ||||
| } | ||||
| #endif | ||||
| #endif | ||||
| 
 | ||||
| #if defined(CONFIG_SPL_MMC_SUPPORT) | ||||
| /* called from spl_mmc to see type of boot mode for storage (RAW or FAT) */ | ||||
|  |  | |||
|  | @ -0,0 +1,67 @@ | |||
| /*
 | ||||
|  * SPL definitions for the i.MX7 SPL | ||||
|  * | ||||
|  * (C) Copyright 2017 CompuLab, Ltd. http://www.compulab.com
 | ||||
|  * | ||||
|  * Author: Uri Mashiach <uri.mashiach@compulab.co.il> | ||||
|  * | ||||
|  * SPDX-License-Identifier:	GPL-2.0+ | ||||
|  */ | ||||
| 
 | ||||
| #ifndef __IMX7_SPL_CONFIG_H | ||||
| #define __IMX7_SPL_CONFIG_H | ||||
| 
 | ||||
| #ifdef CONFIG_SPL | ||||
| 
 | ||||
| #define CONFIG_SPL_FRAMEWORK | ||||
| 
 | ||||
| /*
 | ||||
|  * see figure 6-22 in i.MX 7Dual/Solo Reference manuals: | ||||
|  *  - IMX7D/S OCRAM free area RAM (OCRAM) is from 0x00910000 to | ||||
|  *    0x00946C00. | ||||
|  *  - Set the stack at the end of the free area section, at 0x00946BB8. | ||||
|  *  - The BOOT ROM loads what they consider the firmware image | ||||
|  *    which consists of a 4K header in front of us that contains the IVT, DCD | ||||
|  *    and some padding thus 'our' max size is really 0x00946BB8 - 0x00911000. | ||||
|  *    64KB is more then enough for the SPL. | ||||
|  */ | ||||
| #define CONFIG_SPL_TEXT_BASE		0x00911000 | ||||
| #define CONFIG_SPL_MAX_SIZE		0x10000 | ||||
| #define CONFIG_SPL_STACK		0x00946BB8 | ||||
| /*
 | ||||
|  * Pad SPL to 68KB (4KB header + 64KB max size). This allows to write the | ||||
|  * SPL/U-Boot combination generated with u-boot-with-spl.imx directly to a | ||||
|  * boot media (given that boot media specific offset is configured properly). | ||||
|  */ | ||||
| #define CONFIG_SPL_PAD_TO		0x11000 | ||||
| 
 | ||||
| /* MMC support */ | ||||
| #if defined(CONFIG_SPL_MMC_SUPPORT) | ||||
| #define CONFIG_SYS_MMCSD_FS_BOOT_PARTITION	1 | ||||
| #define CONFIG_SYS_MONITOR_LEN			409600	/* 400 KB */ | ||||
| #endif | ||||
| 
 | ||||
| /* SATA support */ | ||||
| #if defined(CONFIG_SPL_SATA_SUPPORT) | ||||
| #define CONFIG_SPL_SATA_BOOT_DEVICE		0 | ||||
| #define CONFIG_SYS_SATA_FAT_BOOT_PARTITION	1 | ||||
| #endif | ||||
| 
 | ||||
| /* Define the payload for FAT/EXT support */ | ||||
| #if defined(CONFIG_SPL_FAT_SUPPORT) || defined(CONFIG_SPL_EXT_SUPPORT) | ||||
| # ifdef CONFIG_OF_CONTROL | ||||
| #  define CONFIG_SPL_FS_LOAD_PAYLOAD_NAME	"u-boot-dtb.img" | ||||
| # else | ||||
| #  define CONFIG_SPL_FS_LOAD_PAYLOAD_NAME	"u-boot.img" | ||||
| # endif | ||||
| #endif | ||||
| 
 | ||||
| #define CONFIG_SPL_BSS_START_ADDR      0x88200000 | ||||
| #define CONFIG_SPL_BSS_MAX_SIZE        0x100000		/* 1 MB */ | ||||
| #define CONFIG_SYS_SPL_MALLOC_START    0x88300000 | ||||
| #define CONFIG_SYS_SPL_MALLOC_SIZE     0x100000		/* 1 MB */ | ||||
| #define CONFIG_SYS_TEXT_BASE           0x87800000 | ||||
| 
 | ||||
| #endif /* CONFIG_SPL */ | ||||
| 
 | ||||
| #endif /* __IMX7_SPL_CONFIG_H */ | ||||
		Loading…
	
		Reference in New Issue