On 07/31/2017 12:50 PM, tien.fong.c...@intel.com wrote: > From: Tien Fong Chee <tien.fong.c...@intel.com> > > Function for checking boot device type, which is required for locating > flash where U-boot image, FPGA design are stored. > > Signed-off-by: Tien Fong Chee <tien.fong.c...@intel.com> > --- > arch/arm/mach-socfpga/include/mach/misc.h | 19 +++++++++++++++++++ > arch/arm/mach-socfpga/misc_arria10.c | 22 ++++++++++++++++++++++ > 2 files changed, 41 insertions(+), 0 deletions(-) > > diff --git a/arch/arm/mach-socfpga/include/mach/misc.h > b/arch/arm/mach-socfpga/include/mach/misc.h > index 0b65783..b219aac 100644 > --- a/arch/arm/mach-socfpga/include/mach/misc.h > +++ b/arch/arm/mach-socfpga/include/mach/misc.h > @@ -14,6 +14,24 @@ struct bsel { > const char *name; > }; > > +enum { > + BOOT_DEVICE_RAM, > + BOOT_DEVICE_MMC1, > + BOOT_DEVICE_MMC2, > + BOOT_DEVICE_MMC2_2, > + BOOT_DEVICE_NAND, > + BOOT_DEVICE_ONENAND, > + BOOT_DEVICE_NOR, > + BOOT_DEVICE_UART, > + BOOT_DEVICE_SPI, > + BOOT_DEVICE_USB, > + BOOT_DEVICE_SATA, > + BOOT_DEVICE_I2C, > + BOOT_DEVICE_BOARD, > + BOOT_DEVICE_DFU, > + BOOT_DEVICE_NONE
Why do you have so many bootdevices here if half of them aren't supported/used ? > +}; > + > extern struct bsel bsel_str[]; > > #ifdef CONFIG_FPGA > @@ -26,6 +44,7 @@ static inline void socfpga_fpga_add(void) {} > unsigned int dedicated_uart_com_port(const void *blob); > unsigned int shared_uart_com_port(const void *blob); > unsigned int uart_com_port(const void *blob); > +u32 boot_device(void); > #endif > > #endif /* _MISC_H_ */ > diff --git a/arch/arm/mach-socfpga/misc_arria10.c > b/arch/arm/mach-socfpga/misc_arria10.c > index 9d751f6..069a0a6 100644 > --- a/arch/arm/mach-socfpga/misc_arria10.c > +++ b/arch/arm/mach-socfpga/misc_arria10.c > @@ -235,6 +235,28 @@ unsigned int uart_com_port(const void *blob) > return shared_uart_com_port(blob); > } > > +u32 boot_device(void) > +{ > + const u32 bsel = readl(&sysmgr_regs->bootinfo); > + > + switch (SYSMGR_GET_BOOTINFO_BSEL(bsel)) { This looks very similar to what is on Gen5 ? > + case 0x1: /* FPGA (HPS2FPGA Bridge) */ > + return BOOT_DEVICE_RAM; > + case 0x2: /* NAND Flash (1.8V) */ > + case 0x3: /* NAND Flash (3.0V) */ > + return BOOT_DEVICE_NAND; > + case 0x4: /* SD/MMC External Transceiver (1.8V) */ > + case 0x5: /* SD/MMC Internal Transceiver (3.0V) */ > + return BOOT_DEVICE_MMC1; > + case 0x6: /* QSPI Flash (1.8V) */ > + case 0x7: /* QSPI Flash (3.0V) */ > + return BOOT_DEVICE_SPI; > + default: > + printf("Invalid boot device (bsel=%08x)!\n", bsel); > + hang(); > + } > +} > + > /* > * Print CPU information > */ > -- Best regards, Marek Vasut _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot