u-boot-brain/drivers
Pali Rohár 127dbec39a arm: a37xx: pci: Don't put link into LTSSM Recovery state during probe
During our debugging of the Aardvark driver in Linux we have discovered
that the PCIE_CORE_LINK_CTRL_STAT_REG register in fact controls standard
PCIe Link Control Register for PCIe Root Bridge. This led us to discover
that the name of the PCIE_CORE_LINK_TRAINING macro and the corresponding
comment by this macro's usage is misleading; this bit in fact controls
Retrain Link, which, according to PCIe base spec is defined as:

  A write of 1b to this bit initiates Link retraining by directing the
  Physical Layer LTSSM to the Recovery state. If the LTSSM is already in
  Recovery or Configuration, re-entering Recovery is permitted but not
  required.

Entering Recovery state is normally done from LTSSM L0, L0s and L1 states.
But since the pci-aardvark.c driver enables Link Training just a few lines
above, the controller is not in L0 ready state yet. So setting aardvark bit
PCIE_CORE_LINK_TRAINING does not actually enter Recovery state at this
place.

Moreover, trying to enter LTSSM Recovery state without other configuration
is causing issues for some cards (e.g. Atheros AR9xxx and QCA9xxx). Since
Recovery state is not entered, these issues are not triggered.

Remove code which tries to enter LTSSM Recovery state completely.

Signed-off-by: Pali Rohár <pali@kernel.org>
Reviewed-by: Marek Behún <marek.behun@nic.cz>
Reviewed-by: Stefan Roese <sr@denx.de>
2021-06-04 11:32:41 +02:00
..
adc adc: meson-saradc: add support for getting reference voltage value 2021-02-18 11:37:26 +01:00
ata ata: ahci: fix ahci_link_up() type mismatch for LTO 2021-05-24 14:21:30 -04:00
axi dm: treewide: Rename auto_alloc_size members to be shorter 2020-12-13 08:00:25 -07:00
bios_emulator treewide: Convert macro and uses of __section(foo) to __section("foo") 2021-05-24 14:21:30 -04:00
block Fix IDE commands issued, fix endian issues, fix non MMIO 2021-04-20 07:31:12 -04:00
bootcount common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
bus bus: ti-sysc: change in a normal driver 2021-03-22 19:23:27 +13:00
button button: adc: fix treshold typo 2021-03-08 10:32:34 +01:00
cache common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
clk drivers: clk: add fu740 support 2021-05-31 16:35:54 +08:00
core regmap: fix a serious pointer casting bug 2021-05-24 14:21:30 -04:00
cpu common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
crypto crypto: fsl: refactor for 32 bit version CAAM support on ARM64 2021-04-08 20:29:53 +02:00
ddr ppc: Remove Cyrus_P5020 and P5040 boards 2021-04-10 08:05:07 -04:00
demo common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
dfu dfu: dfu_mtd: remove the mtd_block_op error when mtd_lock is not supported 2021-05-28 11:21:51 +02:00
dma dma: ti: k3-udma: Add BCDMA and PKTDMA support 2021-05-12 16:36:38 +05:30
fastboot fastboot: Fix possible buffer overrun 2021-04-12 17:44:55 -04:00
firmware firmware: ti_sci: Update ti_sci_msg_req_reboot to include domain 2021-05-27 14:53:14 +05:30
fpga arm: socfpga: Move Stratix10 and Agilex to use TARGET_SOCFPGA_SOC64 2021-03-08 10:59:10 +08:00
gpio gpio: renesas: Pass struct udevice to rcar_gpio_set_direction() 2021-05-21 15:00:17 +02:00
hwspinlock common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
i2c gpio: i2c-gpio: Drop use of dm_gpio_set_dir() 2021-04-12 17:45:40 -04:00
input common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
led dm: treewide: Rename ..._platdata variables to just ..._plat 2020-12-13 16:51:09 -07:00
mailbox mailbox: k3-sec-proxy: Extend valid thread IDs 2021-05-12 16:27:57 +05:30
memory memory: stm32-fmc2: migrate trace to dev and log macro 2021-01-13 09:52:58 +01:00
misc misc: make CONFIG_IRQ selectable for all platforms 2021-04-20 07:31:12 -04:00
mmc Merge tag 'ti-v2021.07-rc3' of https://source.denx.de/u-boot/custodians/u-boot-ti 2021-05-12 10:07:21 -04:00
mtd ARM: fix LTO for apf27 2021-05-24 14:21:30 -04:00
mux dm: Use access methods for dev/uclass private data 2021-01-05 12:24:40 -07:00
net net: Remove ne2000 driver 2021-05-25 12:40:16 -04:00
nvme nvme: Elaborate on cache maintenance operation in get/set_features 2021-03-19 10:36:55 -04:00
pch dm: treewide: Rename auto_alloc_size members to be shorter 2020-12-13 08:00:25 -07:00
pci arm: a37xx: pci: Don't put link into LTSSM Recovery state during probe 2021-06-04 11:32:41 +02:00
pci_endpoint common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
phy phy: marvell: utmi: update utmi config which fixes usb2.0 instability 2021-04-29 07:45:24 +02:00
pinctrl pinctrl: single: Fix probe failure getting register area size 2021-05-26 17:26:07 -04:00
power treewide: Convert macro and uses of __section(foo) to __section("foo") 2021-05-24 14:21:30 -04:00
pwm pwm: sifive: make set_config() and set_enable() work properly 2021-05-14 16:25:42 +08:00
qe ppc: Remove TARGET_T1040QDS references 2021-04-10 08:04:42 -04:00
ram drivers: ram: sifive: rename fu540_ddr and add fu740 support 2021-05-31 16:35:54 +08:00
remoteproc Merge branch '2021-02-02-drop-asm_global_data-when-unused' 2021-02-15 10:16:45 -05:00
reset board: sifive: add HiFive Unmatched board support 2021-05-31 16:35:55 +08:00
rng rng: iproc_rng200: Enable support for RPi4 armv7 2021-03-02 13:53:48 +01:00
rtc rtc: add support for rv3028 rtc 2021-04-12 17:44:55 -04:00
scsi scsi: Add ata_swap_buf_le16() to support big-endian platforms 2021-04-28 10:05:12 +02:00
serial treewide: Convert macro and uses of __section(foo) to __section("foo") 2021-05-24 14:21:30 -04:00
smem Merge branch '2021-02-02-drop-asm_global_data-when-unused' 2021-02-15 10:16:45 -05:00
soc soc: ti: k3-navss-ringacc: Remove unused ring modes 2021-05-12 16:36:38 +05:30
sound tegra: i2c: Drop LOG_DEBUG 2021-03-27 13:59:36 +13:00
spi spi: kirkwood: prevent limiting speed to 0 2021-05-16 06:48:45 +02:00
spmi common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
sysinfo sysinfo: Add gpio-sysinfo driver 2021-05-04 07:57:18 -04:00
sysreset sysreset: provide type of reset in do_reset cmd 2021-04-20 07:31:12 -04:00
tee tee: optee: Change printing during optee_probe 2021-04-12 17:44:55 -04:00
thermal thermal: imx_tmu: enable monitoring and default alert/critical 2021-03-01 10:21:36 +01:00
timer riscv: Split SiFive CLINT support between SPL and U-Boot proper 2021-05-17 16:42:24 +08:00
tpm tpm: Correct warning on 32-bit build 2021-03-13 13:14:52 -05:00
ufs dm: treewide: Rename ..._platdata variables to just ..._plat 2020-12-13 16:51:09 -07:00
usb usb: dwc3-generic: Disable host driver definition if gadget only 2021-05-16 19:01:45 +02:00
video video: sunxi: de2: switch to public uclass functions 2021-04-24 13:45:03 +02:00
virtio virtio: Fix VirtIO BLK driver dependency 2021-03-05 10:25:43 +05:30
w1 w1: replace dt detection by automatic detection 2021-05-13 13:09:09 -04:00
w1-eeprom w1: replace dt detection by automatic detection 2021-05-13 13:09:09 -04:00
watchdog watchdog: use time_after_eq() in watchdog_reset() 2021-04-28 10:05:13 +02:00
xen common: Drop asm/global_data.h from common header 2021-02-02 15:33:42 -05:00
Kconfig board: Rename uclass to sysinfo 2020-11-06 10:18:20 +08:00
Makefile cpu: Rename SPL_CPU_SUPPORT to SPL_CPU 2021-03-27 15:04:31 +13:00