summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-04-14usb: return 0 from usb_stor_get_info even if removable mediaTroy Kisky
This fixes a regression caused by commit 07b2b78ce4bc8ae25e066c65245eaf58c0d9a67c dm: usb: Convert USB storage to use driver-model for block devs which caused part_init to be called when it was not previously. Without this patch, the following happens when a USB sd card reader is used. => usb start starting USB... USB0: Port not available. USB1: USB EHCI 1.00 scanning bus 1 for devices... 3 USB Device(s) found scanning usb for storage devices... Device NOT ready Request Sense returned 02 3A 00 ### ERROR ### Please RESET the board ### This happens because dev_desc->blksz is 0. Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
2017-04-14usb: dwc2: invalidate the dcache before starting the DMAEddie Cai
We should invalidate the dcache before starting the DMA. In case there are any dirty lines from the DMA buffer in the cache, subsequent cache-line replacements may corrupt the buffer in memory while the DMA is still going on. Cache-line replacement can happen if the CPU tries to bring some other memory locations into the cache while the DMA is going on. Signed-off-by: Eddie Cai <eddie.cai.linux@gmail.com> Reviewed-by: Stefan Brüns <stefan.bruens@rwth-aachen.de>
2017-04-14usb: dwc3: gadget: make cache-maintenance on event buffers more robustPhilipp Tomsich
Merely using dma_alloc_coherent does not ensure that there is no stale data left in the caches for the allocated DMA buffer (i.e. that the affected cacheline may still be dirty). The original code was doing the following (on AArch64, which translates a 'flush' into a 'clean + invalidate'): # during initialisation: 1. allocate buffers via memalign => buffers may still be modified (cached, dirty) # during interrupt processing 2. clean + invalidate buffers => may commit stale data from a modified cacheline 3. read from buffers This could lead to garbage info being written to buffers before reading them during even-processing. To make the event processing more robust, we use the following sequence for the cache-maintenance: # during initialisation: 1. allocate buffers via memalign 2. clean + invalidate buffers (we only need the 'invalidate' part, but dwc3_flush_cache() always performs a 'clean + invalidate') # during interrupt processing 3. read the buffers (we know these lines are not cached, due to the previous invalidation and no other code touching them in-between) 4. clean + invalidate buffers => writes back any modification we may have made during event processing and ensures that the lines are not in the cache the next time we enter interrupt processing Note that with the original sequence, we observe reproducible (depending on the cache state: i.e. running dhcp/usb start before will upset caches to get us around this) issues in the event processing (a fatal synchronous abort in dwc3_gadget_uboot_handle_interrupt on the first time interrupt handling is invoked) when running USB mass storage emulation on our RK3399-Q7 with data-caches on. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
2017-04-14usb: dwc3: ensure consistent types for dwc3_flush_cachePhilipp Tomsich
The dwc3_flush_cache() call was declared and used inconsistently: * The declaration assumed 'int' for addresses (a potential issue when running in a LP64 memory model). * The invocation cast the address to 'long'. This change ensures that both the declaration and usage of this function consistently uses 'uintptr_t' for correct behaviour even when the allocated buffers (to be flushed) reside outside of the lower 32bits of memory. Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
2017-04-14usb: gadget: g_dnl: don't set iProduct nor iSerialNumberFelipe Balbi
Both these numbers are calculated in runtime and dynamically assigned to the device descriptor during bind(). Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
2017-04-14usb: gadget: g_dnl: only set iSerialNumber if we have a serial#Felipe Balbi
We don't want to claim that we support a serial number string and later return nothing. Because of that, if g_dnl_serial is an empty string, let's skip setting iSerialNumber to a valid number. Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
2017-04-14usb: gadget: g_dnl: hold maximum string descriptorFelipe Balbi
A USB String descriptor can be up to 255 characters long and it's not NULL terminated according to the USB spec. This means our MAX_STRING_SERIAL should be 256 (to cope with NULL terminator). Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
2017-04-14usb: dwc2: add support for external vbus supplyKever Yang
Some board do not use the dwc2 internal VBUS_DRV signal, but use a gpio pin to enable the 5.0V VBUS power, add interface to enable the power in dwc2 driver. Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Signed-off-by: Simon Glass <sjg@chromium.org>
2017-04-11ARCv2: SLC: Make sure busy bit is set properly on SLC flushingAlexey Brodkin
As reported in STAR 9001165532, an SLC control reg read (for checking busy state) right after SLC invalidate command may incorrectly return NOT busy causing software to NOT spin-wait while operation is underway. (and for some reason this only happens if L1 cache is also disabled - as required by IOC programming model) Suggested workaround is to do an additional Control Reg read, which ensures the 2nd read gets the right status. Same fix made in Linux kernel: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c70c473396cbdec1168a6eff60e13029c0916854 Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
2017-04-10libfdt: fix build with Python 3Stefan Agner
For some reason Python 3 seems to think it does not need to build the library. Using the --force parameter makes sure that the library gets built always. This is especially important since we move the library in the next step of the Makefile, hence forcing a rebuild every time the higher level Makefile triggers a rebuild is required to make sure the library is always there. Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Acked-by: Simon Glass <sjg@chromium.org>
2017-04-10fdt: Bring in changes from v1.4.4Simon Glass
This a few minor changes down from upstream since the last sync. Signed-off-by: Simon Glass <sjg@chromium.org>
2017-04-10Merge git://git.denx.de/u-boot-x86Tom Rini
2017-04-10Makefile: Fix linking with modern binutilsJoel Stanley
Since Binutils 1a9ccd70f9a7[1] u-boot will not link targets that set CONFIG_SYS_TEXT_BASE=0 with the following error: LD u-boot arm-linux-gnueabi-ld.bfd: u-boot: Not enough room for program headers, try linking with -N arm-linux-gnueabi-ld.bfd: final link failed: Bad value The issue can be reproduced with the bad binutils and the rock2_defconfig target. This issue was also encountered by the powerpc kernel[2], with the fix being to pass --no-dynamic-linker for linkers newer than 2.26 when this flag was introduced. The option tells ld that the PIE or shared lib does not need loaded program headers. Ubuntu Zesty's Binutils 2.27.51.20161202 hits this error. [1] https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;a=commit;h=1a9ccd70f9a7 [2] https://git.kernel.org/cgit/linux/kernel/git/powerpc/linux.git/commit/?h=next&id=ff45000fcb56b5b0f1a14a865d3541746d838a0a Signed-off-by: Joel Stanley <joel@jms.id.au> [AF: Apply to LDFLAGS_$(SPL_BIN) as well, suggested by Tom Rini] Signed-off-by: Andreas Färber <afaerber@suse.de>
2017-04-10travis-ci: OrangePi PC2 only links with gcc-5.x or laterTom Rini
We disable this specific board as it does not link with the gcc-4.9.x that we use today in travis-ci. Signed-off-by: Tom Rini <trini@konsulko.com>
2017-04-10x86: Introduce minimal PMU driver for Intel MID platformsAndy Shevchenko
This simple PMU driver allows to tyrn power on and off for selected devices. In particularly Intel Tangier needs to power on SDHCI controllers in order to access to them during board initialization. In the future it might be expanded to cover other Intel MID platforms, that's why it's located under arch/x86/lib and called pmu.c. Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2017-04-10x86: Add SCU IPC driver for Intel MID platformsFelipe Balbi
Intel MID platforms have few microcontrollers inside SoC, one of them is so called System Controller Unit (SCU). Here is the driver to communicate with microcontroller. Signed-off-by: Vincent Tinelli <vincent.tinelli@intel.com> Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Acked-by: Simon Glass <sjg@chromium.org>
2017-04-10serial: Add serial driver for Intel MIDAndy Shevchenko
Add a specific serial driver for Intel MID platforms. It has special fractional divider which can be programmed via UART_PS, UART_MUL, and UART_DIV registers. The UART clock is calculated as UART clock = XTAL * UART_MUL / UART_DIV The baudrate is calculated as baud rate = UART clock / UART_PS / DLAB Initialize fractional divider correctly for Intel Edison platform. For backward compatibility we have to set initial DLAB value to 16 and speed to 115200 baud, where initial frequency is 29491200Hz, and XTAL frequency is 38.4MHz. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
2017-04-10tools: binman: Add missing filenames for various x86 rom testsBin Meng
With recent changes, some x86-specific rom tests of binman fail to run. Fix it by adding missing filenames in corresponding entries. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2017-04-10x86: bootm: Fix FIT image booting on x86Stefan Roese
Checking 'is_zimage' at this time will always fail and therefore booting a FIT style image will always lead to this error message: "## Kernel loading failed (missing x86 kernel setup) ..." This change now removes this check and booting of FIT images works just fine. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Simon Glass <sjg@chromium.org> Cc: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
2017-04-10binman: Remove hard-coded file name for x86 flash-descriptor & intel-meStefan Roese
Now that we have added file names from Kconfig in x86 u-boot.dtsi, update binman to avoid using hard-coded names. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Bin Meng <bmeng.cn@gmail.com> Cc: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
2017-04-10x86: Add file names from Kconfig in descriptor/intel-me nodes in u-boot.dtsiStefan Roese
Since we now have the file names configurable via Kconfig for the flash descriptor and intel-me files, add these from Kconfig in the corresponding dts nodes. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Bin Meng <bmeng.cn@gmail.com> Cc: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
2017-04-10x86: Kconfig: Add options to configure the descriptor.bin / me.bin filenamesStefan Roese
This introduces two Kconfig options to enable board specific filenames for the Intel binary blobs to be used to generate the SPI flash image. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Bin Meng <bmeng.cn@gmail.com> Cc: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
2017-04-10dm: rtc: Add 16-bit read/write supportBin Meng
At present there are only 8-bit and 32-bit read/write routines in the rtc uclass driver. This adds the 16-bit support. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2017-04-10x86: Remove unused optionAndy Shevchenko
There is option which is not used: CONFIG_ZBOOT_32 Remove it from default x86 config and from whitelist. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
2017-04-09defconfigs: am57xx_hs_evm: Move OPTEE load address to avoid overlapsAndrew F. Davis
Move the OPTEE load address to 0xbdb00000 in order to avoid overlap with the memory regions used in radio and RVC usecases. Signed-off-by: Andrew F. Davis <afd@ti.com>
2017-04-09defconfigs: dra7xx_hs_evm: Move OPTEE load address to avoid overlapsMisael Lopez Cruz
Move the OPTEE load address to 0xbdb00000 in order to avoid overlap with the memory regions used in radio and RVC usecases. Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com> Signed-off-by: Andrew F. Davis <afd@ti.com>
2017-04-08defconfigs: am43xx_hs_evm: Add USB Host boot mode supportAndrew F. Davis
Enable SPL_USB_HOST_SUPPORT in the default defconfig to allow booting from USB peripherals. Unlike the non-HS boards, we already load SPL to a 0x4030_0000+ address, so no other changes are needed. Signed-off-by: Andrew F. Davis <afd@ti.com>
2017-04-08defconfigs: am43xx_hs_evm: Add USB client boot mode supportAndrew F. Davis
Enable CONFIG_SPL_USBETH_SUPPORT in the default defconfig to allow booting as a USB RNDIS peripheral. Signed-off-by: Andrew F. Davis <afd@ti.com>
2017-04-08defconfigs: am43xx_hs_evm: Add Net boot mode supportAndrew F. Davis
Enable Eth/Net boot support in the default defconfig to allow network booting. Signed-off-by: Andrew F. Davis <afd@ti.com>
2017-04-08defconfigs: dra7xx_hs_evm: Sync HS and non-HS defconfigsAndrew F. Davis
Additions have been made to the non-HS defconfig without the same being made to the HS defconfig, sync them. Signed-off-by: Andrew F. Davis <afd@ti.com>
2017-04-08defconfigs: am57xx_hs_evm: Sync HS and non-HS defconfigsAndrew F. Davis
Additions have been made to the non-HS defconfig without the same being made to the HS defconfig, sync them. Signed-off-by: Andrew F. Davis <afd@ti.com>
2017-04-08defconfigs: am43xx_hs_evm: Sync HS and non-HS defconfigsAndrew F. Davis
Additions have been made to the non-HS defconfig without the same being made to the HS defconfig, sync them. Signed-off-by: Andrew F. Davis <afd@ti.com>
2017-04-08defconfigs: am335x_hs_evm: Sync HS and non-HS defconfigsAndrew F. Davis
Sync new additions to non-HS defconfig with HS defconfig. Also add SPL NAND support, this was disabled before due to size constraints, enable this now at the expense of the less used GPT partition support. Signed-off-by: Andrew F. Davis <afd@ti.com>
2017-04-08spl: net: Add FIT image support over network bootAndrew F. Davis
FIT support in the net boot case is much like the RAM boot case in that we load our image to "load_addr" and pass a dummy read function into "spl_load_simple_fit()". As the load address is no longer hard-coded to the final execution address, legacy image loading will require load_addr to be set correctly in the image header. Signed-off-by: Andrew F. Davis <afd@ti.com>
2017-04-08defconfig: k2g_hs_evm: Add k2g_hs_evm_defconfigAndrew F. Davis
TI K2G secure devices have to be built with TI_SECURE_DEVICE, FIT, and FIT_IMAGE_POST_PROCESS enabled. Add a dedicated defconfig for this. Signed-off-by: Andrew F. Davis <afd@ti.com>
2017-04-08defconfig: k2hk_hs_evm: Add k2hk_hs_evm_defconfigAndrew F. Davis
TI K2HK secure devices have to be built with TI_SECURE_DEVICE, FIT, and FIT_IMAGE_POST_PROCESS enabled. Add a dedicated defconfig for this. Signed-off-by: Andrew F. Davis <afd@ti.com>
2017-04-08defconfig: k2e_hs_evm: Add k2e_hs_evm_defconfigVitaly Andrianov
TI K2E secure devices have to be built with TI_SECURE_DEVICE, FIT, and FIT_IMAGE_POST_PROCESS enabled. Add a dedicated defconfig for this. Signed-off-by: Vitaly Andrianov <vitalya@ti.com> Signed-off-by: Madan Srinivas <madans@ti.com> Signed-off-by: Andrew F. Davis <afd@ti.com> Reviewed-by: Simon Glass <sjg@chromium.org>
2017-04-08Kconfig: Adds SYS_TEXT_BASE config option for Keystone2Madan Srinivas
This patch makes SYS_TEXT_BASE a config option for Keystone2 so that it can be used to load u-boot at different addresses on secure and non-secure Keystone2 devices. Signed-off-by: Madan Srinivas <madans@ti.com> Signed-off-by: Andrew F. Davis <afd@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com> Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
2017-04-08doc: Updates info on using Keystone2 secure devicesMadan Srinivas
Add a section describing the secure boot image used on Keystone2 secure devices. Signed-off-by: Madan Srinivas <madans@ti.com> Signed-off-by: Andrew F. Davis <afd@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com> Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
2017-04-08ARM: Keystone2: Build secure images for K2Madan Srinivas
Adds an additional image type needed for supporting secure keystone devices. The build generates u-boot_HS_MLO which can be used to boot from all media on secure keystone devices. Signed-off-by: Madan Srinivas <madans@ti.com> Signed-off-by: Andrew F. Davis <afd@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com> Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
2017-04-08arm: mach-omap2: Add secure image name common to OMAP and keystoneMadan Srinivas
As K2 can directly boot U-Boot, add u-boot_HS_MLO as the secure image name for secure K2 devices, for all boot modes other than SPI flash. Signed-off-by: Madan Srinivas <madans@ti.com> Signed-off-by: Andrew F. Davis <afd@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com> Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
2017-04-08arm: mach-omap2: Enable Kconfig support for K2 HS devicesVitaly Andrianov
Like the OMAP54xx, AM43xx, & AM33xx family SoCs, the keystone family of SoCs also have high security enabled models. Allow K2E devices to be built with HS Device Type Support. Signed-off-by: Vitaly Andrianov <vitalya@ti.com> Signed-off-by: Madan Srinivas <madans@ti.com> Signed-off-by: Andrew F. Davis <afd@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com> Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
2017-04-08arm: mach-keystone: Implements FIT post-processing call for keystone SoCsVitaly Andrianov
This commit implements the board_fit_image_post_process() function for the keystone architecture. This function calls into the secure boot monitor for secure authentication/decryption of the image. All needed work is handled by the boot monitor and, depending on the keystone platform, the security functions may be offloaded to other secure processing elements in the SoC. The boot monitor acts as the gateway to these secure functions and the boot monitor for secure devices is available as part of the SECDEV package for KS2. For more details refer doc/README.ti-secure Signed-off-by: Vitaly Andrianov <vitalya@ti.com> Signed-off-by: Madan Srinivas <madans@ti.com> Signed-off-by: Andrew F. Davis <afd@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com> Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
2017-04-08image: Fixes build warning with CONFIG_FIT_IMAGE_POST_PROCESSMadan Srinivas
The function 'board_fit_image_post_process' is defined only when the config option CONFIG_FIT_IMAGE_POST_PROCESS is enabled. For secure systems that do not use SPL but do use FIT kernel images, only CONFIG_FIT_IMAGE_POST_PROCESS will be defined, which will result in an implicit declaration of function 'board_fit_image_post_process' warning while building u-boot. Fix this warning. Signed-off-by: Madan Srinivas <madans@ti.com> Signed-off-by: Andrew F. Davis <afd@ti.com> Reviewed-by: Tom Rini <trini@konsulko.com> Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
2017-04-08ti_armv7_common: env: Change FIT image name to match build nameAndrew F. Davis
The most common name for a FIT image containing a bootable kernel is "fitImage", as our builds now use this name also, change this to the default in our U-Boot environment. Signed-off-by: Andrew F. Davis <afd@ti.com>
2017-04-08mtd: nand: am335x_spl_bch: Incorporate tWB delay in nand_command functionCooper Jr., Franklin
Various commands to NAND flash results in the NAND flash becoming busy. For those commands the SoC should wait until the NAND indicates it is no longer busy before sending further commands. However, there is a delay between the time the SoC sends its last command and when the NAND flash sets its Ready/Busy Pin. This delay (tWB) must be respected or the SoC may falsely assume the flash is ready when in reality it just hasn't had enough time to indicate that it is busy. Properly delaying by tWB is already done for nand_command/nand_command_lp in nand_base.c including the version of it in the Linux kernel. Therefore, this patch brings the handling of tWB delay inline to nand_base.c Signed-off-by: Franklin S Cooper Jr <fcooper@ti.com> [trini: Reformat comments slightly] Signed-off-by: Tom Rini <trini@konsulko.com>
2017-04-08davinci: omapl138_lcdk: switch to using common mmc argsSekhar Nori
Now that we have common MMC/SD boot environment variables that can be used across TI platforms, switch OMAP-L138 LCDK to use them. As a nice side-effect, we get support for using uEnv.txt on this platform. Signed-off-by: Sekhar Nori <nsekhar@ti.com> Reviewed-by: Lukasz Majewski <lukma@denx.de> Reviewed-by: Tom Rini <trini@konsulko.com>
2017-04-08ARM: ti: consolidate mmc environment variablesSekhar Nori
Introduce include/environment/ti/mmc.h that consolidates environment variable definitions for various TI boards that support MMC/SD. This allows reuse of same environment variables on non-ARMv7 TI platforms like OMAP-L138 for example. While at it, move DFU-related environment variable includes to only non-SPL builds for AM335x and AM437x since they are not really used for SPL today. Signed-off-by: Sekhar Nori <nsekhar@ti.com> Reviewed-by: Lukasz Majewski <lukma@denx.de> Reviewed-by: Tom Rini <trini@konsulko.com>
2017-04-08davinci: omapl138_lcdk: use environment variables for memory addressesSekhar Nori
Use environment variables for various memory addresses used on OMAP-L138 LCDK board. This makes it easy to customize the boot process. Signed-off-by: Sekhar Nori <nsekhar@ti.com> Reviewed-by: Lukasz Majewski <lukma@denx.de> Reviewed-by: Tom Rini <trini@konsulko.com>
2017-04-08davinci: omapl138_lcdk: enable some filesystem related commandsSekhar Nori
Enable some generic filesystem commands as well as disk partition related commands for OMAP-L138 LCDK board. These help in booting Linux from MMC/SD, for example. Signed-off-by: Sekhar Nori <nsekhar@ti.com> Reviewed-by: Lukasz Majewski <lukma@denx.de> Reviewed-by: Tom Rini <trini@konsulko.com>