diff options
author | Aswath Govindraju <a-govindraju@ti.com> | 2021-03-25 17:09:02 +0000 |
---|---|---|
committer | Praneeth Bajjuri <praneeth@ti.com> | 2021-03-30 22:12:58 -0500 |
commit | 05a01e52d2503195ed4137d6258e26cda6e06f4f (patch) | |
tree | 12955e58f439702dea7ed80b6dedc412c17bb094 | |
parent | fa08136b73b184ee50eba6123771d91ec6c27e8f (diff) |
arm: mach-k3: am642_init: Add support for USB boot mode
Add support for identifying USB host and device boot modes
Signed-off-by: Aswath Govindraju <a-govindraju@ti.com>
-rw-r--r-- | arch/arm/mach-k3/am642_init.c | 13 | ||||
-rw-r--r-- | arch/arm/mach-k3/include/mach/am64_hardware.h | 5 | ||||
-rw-r--r-- | arch/arm/mach-k3/include/mach/am64_spl.h | 6 |
3 files changed, 20 insertions, 4 deletions
diff --git a/arch/arm/mach-k3/am642_init.c b/arch/arm/mach-k3/am642_init.c index 179fb7face..91fb689e0b 100644 --- a/arch/arm/mach-k3/am642_init.c +++ b/arch/arm/mach-k3/am642_init.c @@ -166,8 +166,11 @@ static u32 __get_backup_bootmedia(u32 main_devstat) case BACKUP_BOOT_DEVICE_UART: return BOOT_DEVICE_UART; - case BACKUP_BOOT_DEVICE_USB: - return BOOT_DEVICE_USB; + case BACKUP_BOOT_DEVICE_DFU: + if (bkup_bootmode_cfg & MAIN_DEVSTAT_BACKUP_USB_MODE_MASK) + return BOOT_DEVICE_USB; + return BOOT_DEVICE_DFU; + case BACKUP_BOOT_DEVICE_ETHERNET: return BOOT_DEVICE_ETHERNET; @@ -220,6 +223,12 @@ static u32 __get_primary_bootmedia(u32 main_devstat) return BOOT_DEVICE_MMC2; return BOOT_DEVICE_MMC1; + case BOOT_DEVICE_DFU: + if ((bootmode_cfg & MAIN_DEVSTAT_PRIMARY_USB_MODE_MASK) >> + MAIN_DEVSTAT_PRIMARY_USB_MODE_SHIFT) + return BOOT_DEVICE_USB; + return BOOT_DEVICE_DFU; + case BOOT_DEVICE_NOBOOT: return BOOT_DEVICE_RAM; } diff --git a/arch/arm/mach-k3/include/mach/am64_hardware.h b/arch/arm/mach-k3/include/mach/am64_hardware.h index c440685e60..295f8043f0 100644 --- a/arch/arm/mach-k3/include/mach/am64_hardware.h +++ b/arch/arm/mach-k3/include/mach/am64_hardware.h @@ -30,6 +30,11 @@ #define MAIN_DEVSTAT_PRIMARY_MMC_PORT_SHIFT 2 #define MAIN_DEVSTAT_PRIMARY_MMC_PORT_MASK 0x04 +#define MAIN_DEVSTAT_PRIMARY_USB_MODE_SHIFT 1 +#define MAIN_DEVSTAT_PRIMARY_USB_MODE_MASK 0x02 + +#define MAIN_DEVSTAT_BACKUP_USB_MODE_MASK 0x01 + /* * The CTRL_MMR and PADCFG_MMR memory space is divided into several * equally-spaced partitions, so defining the partition size allows us to diff --git a/arch/arm/mach-k3/include/mach/am64_spl.h b/arch/arm/mach-k3/include/mach/am64_spl.h index a3de4e70fc..b8de821d9d 100644 --- a/arch/arm/mach-k3/include/mach/am64_spl.h +++ b/arch/arm/mach-k3/include/mach/am64_spl.h @@ -19,7 +19,8 @@ #define BOOT_DEVICE_MMC 0x08 #define BOOT_DEVICE_EMMC 0x09 -#define BOOT_DEVICE_USB 0x0A +#define BOOT_DEVICE_USB 0x2A +#define BOOT_DEVICE_DFU 0x0A #define BOOT_DEVICE_GPMC_NOR 0x0C #define BOOT_DEVICE_PCIE 0x0D #define BOOT_DEVICE_XSPI 0x0E @@ -32,12 +33,13 @@ #define BOOT_DEVICE_MMC2_2 0x1F /* Backup BootMode devices */ -#define BACKUP_BOOT_DEVICE_USB 0x01 +#define BACKUP_BOOT_DEVICE_DFU 0x01 #define BACKUP_BOOT_DEVICE_UART 0x03 #define BACKUP_BOOT_DEVICE_ETHERNET 0x04 #define BACKUP_BOOT_DEVICE_MMC 0x05 #define BACKUP_BOOT_DEVICE_SPI 0x06 #define BACKUP_BOOT_DEVICE_I2C 0x07 +#define BACKUP_BOOT_DEVICE_USB 0x09 #define K3_PRIMARY_BOOTMODE 0x0 |