summaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)Author
2020-10-12mmc: sdhci: move the ADMA2 table handling into own moduleMichael Walle
There are other (non-SDHCI) controllers which supports ADMA2 descriptor tables, namely the Freescale eSDHC. Instead of copying the code, move it into an own module. Signed-off-by: Michael Walle <[email protected]>
2020-10-12mmc: fsl_esdhc: support eMMC HS400 modeYangbo Lu
The process for eMMC HS400 mode for eSDHC is, 1. Perform the Tuning Process at the HS400 target operating frequency. Latched the clock division value. 2. if read transaction, then set the SDTIMNGCTL[FLW_CTL_BG]. 3. Switch to High Speed mode and then set the card clock frequency to a value not greater than 52Mhz 4. Clear TBCTL[TB_EN],tuning block enable bit. 5. Change to 8 bit DDR Mode 6. Switch the card to HS400 mode. 7. Set TBCTL[TB_EN], tuning block enable bit. 8. Clear SYSCTL[SDCLKEN] 9. Wait for PRSSTAT[SDSTB] to be set 10. Change the clock division to latched value.Set TBCTL[HS 400 mode] and Set SDCLKCTL[CMD_CLK_CTRL] 11. Set SYSCTL[SDCLKEN] 12. Wait for PRSSTAT[SDSTB] to be set 13. Set DLLCFG0[DLL_ENABLE] and DLLCFG0[DLL_FREQ_SEL]. 14. Wait for delay chain to lock. 15. Set TBCTL[HS400_WNDW_ADJUST] 16. Again clear SYSCTL[SDCLKEN] 17. Wait for PRSSTAT[SDSTB] to be set 18. Set ESDHCCTL[FAF] 19. Wait for ESDHCCTL[FAF] to be cleared 20. Set SYSCTL[SDCLKEN] 21. Wait for PRSSTAT[SDSTB] to be set. Signed-off-by: Yangbo Lu <[email protected]>
2020-10-12mmc: add a mmc_hs400_prepare_ddr() interfaceYangbo Lu
Add a mmc_hs400_prepare_ddr() interface for controllers which needs preparation before switching to DDR mode for HS400 mode. Signed-off-by: Yangbo Lu <[email protected]>
2020-10-12mmc: add a hs400_tuning flagYangbo Lu
Some controllers may have difference between HS200 tuning and HS400 tuning, such as different registers setting, different procedure, or different errata. This patch is to add a hs400_tuning flag to identify the tuning for HS400 mode. Signed-off-by: Yangbo Lu <[email protected]>
2020-10-12mmc: fsl_esdhc: support tuning for eMMC HS200Yangbo Lu
Support tuning process for eMMC HS200 for eSDHC. Signed-off-by: Yangbo Lu <[email protected]>
2020-10-12mmc: add a reinit() APIYangbo Lu
For DM_MMC, the controller re-initialization is needed to clear old configuration for mmc rescan. Signed-off-by: Yangbo Lu <[email protected]> Reviewed-by: Jaehoon Chung <[email protected]>
2020-10-12configs: am65x_evm: Use DEFAULT_LINUX_BOOT_ENV and remove overlayaddrNishanth Menon
Use DEFAULT_LINUX_BOOT_ENV to define the standard addresses used in rest of TI platforms as defined in ti_armv7_common.h This avoids the standard pitfalls we've had with kernel images and fdt addresses stomping on each other. As part of this process, redefine overlayaddr to be dtboaddr (defined in ti_armv7_common.h for this very purpose) and get rid of the definition of overlayaddr.. Signed-off-by: Nishanth Menon <[email protected]>
2020-10-12configs: j721e_evm: Get rid of overlayaddrNishanth Menon
Now that we dont have any further users of overlayaddr, get rid of it. Signed-off-by: Nishanth Menon <[email protected]>
2020-10-12env: ti: ufs: Use dtboaddr instead of overlayaddrNishanth Menon
Use dtboaddr to define the overlay address common to all TI platforms instead of creating a new overlayaddr for the purpose. Signed-off-by: Nishanth Menon <[email protected]>
2020-10-12configs: j721e_evm: Use DEFAULT_LINUX_BOOT_ENVNishanth Menon
Use DEFAULT_LINUX_BOOT_ENV to define the standard addresses used in rest of TI platforms as defined in ti_armv7_common.h This avoids the standard pitfalls we've had with kernel images and fdt addresses stomping on each other. As part of this process, redefine overlayaddr to be dtboaddr (defined in ti_armv7_common.h for this very purpose).. we will get rid of overlayaddr later in the series. Signed-off-by: Nishanth Menon <[email protected]>
2020-10-10net: Expose some errors generated in net_initSean Anderson
net_init does not always succeed, and there is no existing mechanism to discover errors. This patch allows callers of net_init (such as net_init) to handle errors. The root issue is that eth_get_dev can fail, but net_init_loop doesn't expose that. The ideal way to fix eth_get_dev would be to return an error with ERR_PTR, but there are a lot of callers, and all of them just check if it's NULL. Another approach would be to change the signature to something like int eth_get_dev(struct udevice **pdev) but that would require rewriting all of the many callers. Signed-off-by: Sean Anderson <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2020-10-10log: Add a way to enable/disable a log deviceSimon Glass
At present all log devices are enabled by default. Add a function to allow devices to be disabled or enabled at runtime. Signed-off-by: Simon Glass <[email protected]>
2020-10-10log: Add a flag to enable log driversSimon Glass
At present there is no way to disable a log driver. But the syslog driver causes (attempted) network traffic in sandbox every time a log message is printed, which is often. Add a flag to enable a log driver. Adjust struct log_device to use a short for next_filter_num so that no more memory is used for devices. Also fix a missing line in the struct log_driver comment while here. To maintain compatibility, enable it for all drivers for now. Signed-off-by: Simon Glass <[email protected]>
2020-10-10log: Allow LOG_DEBUG to always enable log outputSimon Glass
At present if CONFIG_LOG enabled, putting LOG_DEBUG at the top of a file (before log.h inclusion) causes _log() to be executed for every log() call, regardless of the build- or run-time logging level. However there is no guarantee that the log record will actually be displayed. If the current log level is lower than LOGL_DEBUG then it will not be. Add a way to signal that the log record should always be displayed and update log_passes_filters() to handle this. With the new behaviour, log_debug() will always log if LOG_DEBUG is enabled. Move log_test_syslog_nodebug() into its own file since it cannot be made to work where it is, with LOG_DEBUG defined. Signed-off-by: Simon Glass <[email protected]>
2020-10-09fpga: altera: Rename Stratix10 FPGA to Intel FPGA SDM MailboxChee Hong Ang
Rename Stratix10 FPGA driver to Intel FPGA SDM Mailbox driver because it is using generic SDM (Secure Device Manager) Mailbox interface shared by other platform (e.g. Agilex) as well. Signed-off-by: Chee Hong Ang <[email protected]> Reviewed-by: Ley Foon Tan <[email protected]>
2020-10-08qemu-arm: Remove need to specify flash banksAndre Przywara
Currently we hard-code the number and initial addresses of QEMU's flash banks, even though our code is perfectly able to gather the same information from the DTB provided by QEMU. This is especially annoying, since we have two slightly different U-Boot configurations ("bare-metal" vs. loaded via Arm Trusted Firmware), which need to be selected at build time. Drop the two hard coded alternatives, and use CONFIG_SYS_MAX_FLASH_BANKS_DETECT instead, which relies on the DTB to figure out the actual flash configuration at runtime. Signed-off-by: Andre Przywara <[email protected]>
2020-10-08pinctrl: Add support for Kendryte K210 FPIOASean Anderson
The Fully-Programmable Input/Output Array (FPIOA) device controls pin multiplexing on the K210. The FPIOA can remap any supported function to any multifunctional IO pin. It can also perform basic GPIO functions, such as reading the current value of a pin. However, GPIO functionality remains largely unimplemented (in favor of the dedicated GPIO peripherals). Signed-off-by: Sean Anderson <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2020-10-08test: pinmux: Add test for pin muxingSean Anderson
This extends the pinctrl-sandbox driver to support pin muxing, and adds a test for that behaviour. The test is done in C and not python (like the existing tests for the pinctrl uclass) because it needs to call pinctrl_select_state. Another option could be to add a command that invokes pinctrl_select_state and then test everything in test/py/tests/test_pinmux.py. The pinctrl-sandbox driver now mimics the way that many pinmux devices work. There are two groups of pins which are muxed together, as well as four pins which are muxed individually. I have tried to test all normal paths. However, very few error cases are explicitly checked for. Signed-off-by: Sean Anderson <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2020-10-08pinctrl: Reformat documentation in dm/pinctrl.hSean Anderson
This normalizes the documentation to conform to kernel-doc style [1]. It also moves the documentation for pinctrl_ops inline, and adds argument and return-value documentation. I have kept the usual function style for these comments. I could not find any existing examples of function documentation inside structs. [1] https://www.kernel.org/doc/html/latest/doc-guide/kernel-doc.html Signed-off-by: Sean Anderson <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2020-10-08pinctrl: Add pinmux property support to pinctrl-genericSean Anderson
The pinmux property allows for smaller and more compact device trees, especially when there are many pins which need to be assigned individually. Instead of specifying an array of strings to be parsed as pins and a function property, the pinmux property contains an array of integers representing pinmux groups. A pinmux group consists of the pin identifier and mux settings represented as a single integer or an array of integers. Each individual pin controller driver specifies the exact format of a pinmux group. As specified in the Linux documentation, a pinmux group may be multiple integers long. However, no existing drivers use multi-integer pinmux groups, so I have chosen to omit this feature. This makes the implementation easier, since there is no need to allocate a buffer to do endian conversions. Support for the pinmux property is done differently than in Linux. As far as I can tell, inversion of control is used when implementing support for the pins and groups properties to avoid allocating. This results in some duplication of effort; every property in a config node is parsed once for each pin in that node. This is not such an overhead with pins and groups properties, since having multiple pins in one config node does not occur especially often. However, the semantics of the pinmux property make such a configuration much more appealing. A future patch could parse all config properties at once and store them in an array. This would make it easier to create drivers which do not function solely as callbacks from pinctrl-generic. This commit increases the size of the sandbox build by approximately 48 bytes. However, it also decreases the size of the K210 device tree by 2 KiB from the previous version of this series. The documentation has been updated from the last Linux commit before it was split off into yaml files. Signed-off-by: Sean Anderson <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2020-10-07Merge tag 'mips-pull-2020-10-07' of ↵Tom Rini
https://gitlab.denx.de/u-boot/custodians/u-boot-mips - mips: octeon: add support for DDR4 memory controller - mips: octeon: add support for DWC3 USB - mips: octeon: add support for booting Linux
2020-10-07mips: octeon: octeon_common.h: Increase CONFIG_SYS_BOOTM_LENStefan Roese
Increase CONFIG_SYS_BOOTM_LEN to 64MiB for Linux kernel booting. Signed-off-by: Stefan Roese <[email protected]>
2020-10-07mips: octeon: octeon_ebb7304: Add DDR4 supportStefan Roese
This patch adds the board specific configuration (struct) for the Octeon 3 EBB7304 EVK. This struct is ported from the 2013er Cavium / Marvell U-Boot repository. Also, the Octeon RAM driver is enabled in the board defconfig for its usage. Tested with one and two DIMMs on the EBB7304 EVK (8 & 16 GiB). Signed-off-by: Stefan Roese <[email protected]>
2020-10-06Merge tag 'dm-pull-6oct20' of git://git.denx.de/u-boot-dmTom Rini
bloblist enhancement for alignment Update ofnode/dev_read phandle function sandbox keyboard enhancements and fixes
2020-10-06dm: add cells_count parameter in *_count_phandle_with_argsPatrick Delaunay
The cell_count argument is required when cells_name is NULL. This patch adds this parameter in live tree API - of_count_phandle_with_args - ofnode_count_phandle_with_args - dev_count_phandle_with_args This parameter solves issue when these API is used to count the number of element of a cell without cell name. This parameter allow to force the size cell. For example: count = dev_count_phandle_with_args(dev, "array", NULL, 3); Signed-off-by: Patrick Delaunay <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2020-10-06dm: update test on of_offset in ofnode_validPatrick Delaunay
Update the test for node.of_offset because an invalid offset is not always set to -1 because the return value of the libfdt functions are: + an error with a value < 0 + a valid offset with value >=0 For example, in ofnode_get_by_phandle() function, we have: node.of_offset = fdt_node_offset_by_phandle(gd->fdt_blob, phandle); and this function can return -FDT_ERR_BADPHANDLE (-6). Without this patch, the added test dm_test_ofnode_get_by_phandle failed. Signed-off-by: Patrick Delaunay <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2020-10-06dm: ofnode: Fix compile breakage with OF_CHECKS enabledStefan Roese
Include missing log.h and change _ofnode_to_np() to ofnode_to_np() so that compiling with OF_CHECKS enabled does not break. Signed-off-by: Stefan Roese <[email protected]> Cc: Simon Glass <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2020-10-06bloblist: Fix up a few commentsSimon Glass
Adjust a few comments to make the meaning clearer. Signed-off-by: Simon Glass <[email protected]>
2020-10-06bloblist: Allow custom alignment for blobsSimon Glass
Some blobs need a larger alignment than the default. For example, ACPI tables often start at a 4KB boundary. Add support for this. Update the size of the test blob to allow these larger records. Signed-off-by: Simon Glass <[email protected]>
2020-10-06bloblist: Compare addresses rather than pointers in testsSimon Glass
When running these tests on sandbox any failures result in very large or long pointer values which are a pain to work with. Map them to an address so it is easier to diagnose failures. Signed-off-by: Simon Glass <[email protected]>
2020-10-06bloblist: Add a commandSimon Glass
It is helpful to be able to see basic statistics about the bloblist and also to list its contents. Add a 'bloblist' command to handle this. Put the display functions in the bloblist modules rather than in the command code itself. That allows showing a list from SPL, where commands are not available. Also make bloblist_first/next_blob() static as they are not used outside this file. Signed-off-by: Simon Glass <[email protected]>
2020-10-06Merge tag 'efi-2021-01-rc1' of ↵Tom Rini
https://gitlab.denx.de/u-boot/custodians/u-boot-efi Pull request for UEFI sub-system for efi-2021-01-rc1 The following bugs in the UEFI system are resolved: * illegal free in EFI_LOAD_FILE2_PROTOCOL implementation * incorrect documentation of EFI_LOAD_FILE2_PROTOCOL implementation * output of CRC32 as decimal instead hexadecimal in unit test * use EfiReservedMemoryType for no-map reserved memory * avoid unnecessary resets in UEFI unit tests * call EFI bootmgr even without having /EFI/boot
2020-10-06Merge tag 'u-boot-amlogic-20201005' of ↵Tom Rini
https://gitlab.denx.de/u-boot/custodians/u-boot-amlogic - generate unique mac address from SoC serial on S400 board - Add USB support for GXL and AXG SoCs - Update Gadget code to use the new GXL and AXG USB glue driver - Add a VIM3 board support to add dynamic PCIe enable in OS DT - Fix AXG pinmux with requesting GPIOs - Add missing GPIOA_18 for AXG pinctrl - Add Amlogic PWM driver
2020-10-06distro_bootcmd: call EFI bootmgr even without having /EFI/bootMichael Walle
Currently, the EFI bootmgr is only called if there is a EFI binary inside the path for removable media is found, i.e. /EFI/boot/. This doesn't make sense. It is the duty of the bootmgr to find out the path and name of the EFI binary to boot. It should be called even if there is no /EFI/boot directory. Thus, call the bootmgr before we try to boot the EFI binary inside the removable media path. Also remove the ${fdtcontroladdr} parameter because the fallback is handled in cmd/bootefi.c and that already takes care of correct settings if the board has ACPI and thus no device tree at all. Signed-off-by: Michael Walle <[email protected]> Reviewed-by: Heinrich Schuchardt <[email protected]>
2020-10-05Merge branch 'next'Tom Rini
Bring in the assorted changes that have been staged in the 'next' branch prior to release. Signed-off-by: Tom Rini <[email protected]>
2020-10-05ARM: dts: sync amlogic G12A/SM1 DT from Linux 5.9-rc1Neil Armstrong
This imports the G12A & SM1 SoC and boards DT changes from the Linux commit 9123e3a74ec7 ("Linux 5.9-rc1"). Signed-off-by: Neil Armstrong <[email protected]> Reviewed-by: Kevin Hilman <[email protected]> Tested-by: Kevin Hilman <[email protected]> Signed-off-by: Neil Armstrong <[email protected]>
2020-10-05ARM: dts: sync amlogic AXG/GXL/GXM DT from Linux 5.8-rc1Neil Armstrong
This imports the AXG, GXL & GXM SoC and boards DT changes from the Linux commit b3a9e3b9622a ("Linux 5.8-rc1"). This change also removes GXL & GXM u-boot.dtsi hacks for USB gadget. Signed-off-by: Neil Armstrong <[email protected]>
2020-10-05Merge tag 'u-boot-atmel-2021.01-a' of ↵Tom Rini
https://gitlab.denx.de/u-boot/custodians/u-boot-atmel into next First set of u-boot-atmel features for 2021.01 cycle: This feature set includes a new CPU driver for at91 family, new driver for PIT64B hardware timer, support for new at91 family SoC named sama7g5 which adds: clock support, including conversion of the clock tree to CCF; SoC support in mach-at91, pinctrl and mmc drivers update. The feature set also includes updates for mmc driver and some other minor fixes and features regarding building without the old Atmel PIT and the possibility to read a secondary MAC address from a second i2c EEPROM.
2020-10-02board: tbs2910: Use recommended distroboot addressesSoeren Moch
According to doc/README.distro fdt_addr must not be set when DTB is not available from hardware. So remove this entry. Use address 32MB above the start of DRAM for kernel_addr_r. This way we likely can avoid the self-relocation of the compressed kernel image before it decompresses to offset 0x8000 from start of DRAM. Use address 128MB above the start of DRAM for fdt_addr_r, since this is the maximum location for the end of the kernel. So we avoid overwriting the DTB. Use 512k above that for ramdisk_addr_r. This should be enough for the DTB, rest of DRAM can be used for initrd. Place boot script / extlinux.conf at offset 0 / 1MB from start of DRAM. This space is available for processing in U-Boot. Signed-off-by: Soeren Moch <[email protected]> Reviewed-by: Fabio Estevam <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2020-10-01Merge branch 'next' of git://git.denx.de/u-boot-usb into nextTom Rini
- Assorted XHCI improvements
2020-10-01usb: xhci: use macros with parameter to fill ep_info2Chunfeng Yun
Use macros with parameter to fill ep_info2, then some macros for MASK and SHIFT can be removed Signed-off-by: Chunfeng Yun <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2020-10-01usb: xhci: convert to TRB_TX_TYPE()Chunfeng Yun
Use TRB_TX_TYPE() instead of (TRB_DATA_OUT/IN << TRB_TX_TYPE_SHIFT) Signed-off-by: Chunfeng Yun <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2020-10-01usb: xhci: convert to TRB_LEN() and TRB_INTR_TARGET()Chunfeng Yun
For normal TRB fields: use TRB_LEN(x) instead of ((x) & TRB_LEN_MASK); and use TRB_INTR_TARGET(x) instead of (((x) & TRB_INTR_TARGET_MASK) << TRB_INTR_TARGET_SHIFT) Signed-off-by: Chunfeng Yun <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2020-10-01usb: xhci: convert to TRB_TYPE()Chunfeng Yun
Use TRB_TYPE(p) instead of ((p) << TRB_TYPE_SHIFT) Signed-off-by: Chunfeng Yun <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2020-10-01usb: xhci: convert to HCS_MAX_PORTS()Chunfeng Yun
Use HCS_MAX_PORTS(p) instead of ((p & HCS_MAX_PORTS_MASK) >> HCS_MAX_PORTS_SHIFT) Signed-off-by: Chunfeng Yun <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2020-10-01usb: xhci: add quirks flag to support MediaTek xHCI 0.96Chunfeng Yun
There some vendor quirks for MTK xHCI 0.96 host controller: 1. It defines some extra SW scheduling parameters for HW to minimize the scheduling effort for synchronous and interrupt endpoints. The parameters are put into reserved DWs of slot context and endpoint context. 2. Its TDS in Normal TRB defines a number of packets that remains to be transferred for a TD after processing all Max packets in all previous TRBs. Signed-off-by: Chunfeng Yun <[email protected]> Tested-by: Frank Wunderlich <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2020-10-01usb: xhci: create one unified function to calculate TRB TD remainderChunfeng Yun
xhci versions 1.0 and later report the untransferred data remaining in a TD a bit differently than older hosts. We used to have separate functions for these, and needed to check host version before calling the right function. Now Mediatek host has an additional quirk on how it uses the TD Size field for remaining data. To prevent yet another function for calculating remainder we instead want to make one quirk friendly unified function. Porting from the Linux: c840d6ce772d("xhci: create one unified function to calculate TRB TD remainder.") 124c39371114("xhci: use boolean to indicate last trb in td remainder calculation") Signed-off-by: Chunfeng Yun <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2020-10-01usb: xhci: add a member hci_version in xhci_ctrl structChunfeng Yun
Add a member to save xHCI version, it's used some times. Signed-off-by: Chunfeng Yun <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2020-10-01Merge branch 'next' of git://git.denx.de/u-boot-sh into nextTom Rini
2020-10-01Merge branch '2020-09-30-assorted-network-improvements' into nextTom Rini
- Generic UDP framework - TFTP fixes - dwc_eth_qos, smc911x, smc911x and mscc phy fixes