Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
  • early-display
  • variant-emmc-nvme-boot
  • 2023-01-25
  • v3
  • variant-emmc-nvme-boot
  • 2020-06-01
7 results

quark.c

Blame
  • Forked from Reform / reform-boundary-uboot
    Source project has a limited visibility.
    • Bin Meng's avatar
      aa09505b
      x86: quark: Avoid chicken and egg problem · aa09505b
      Bin Meng authored
      
      If we convert to use driver model pci on quark, we will encounter
      some chicken and egg problems like below:
      
      - To enable PCIe root ports, we need program some registers on the
        message bus via pci bus. With driver model, the first time to
        access pci bus, the pci enumeration process will be triggered.
        But without first enabling PCIe root ports, pci enumeration
        just hangs when scanning PCIe root ports.
      - Similar situation happens when trying to access GPIO from the
        PCIe enabling codes, as GPIO requires its block base address
        to be assigned via a pci configuration register in the bridge.
      
      To avoid such dilemma, replace all pci calls in the quark codes
      to use the local version which does not go through driver model.
      
      Signed-off-by: default avatarBin Meng <bmeng.cn@gmail.com>
      Acked-by: default avatarSimon Glass <sjg@chromium.org>
      aa09505b
      History
      x86: quark: Avoid chicken and egg problem
      Bin Meng authored
      
      If we convert to use driver model pci on quark, we will encounter
      some chicken and egg problems like below:
      
      - To enable PCIe root ports, we need program some registers on the
        message bus via pci bus. With driver model, the first time to
        access pci bus, the pci enumeration process will be triggered.
        But without first enabling PCIe root ports, pci enumeration
        just hangs when scanning PCIe root ports.
      - Similar situation happens when trying to access GPIO from the
        PCIe enabling codes, as GPIO requires its block base address
        to be assigned via a pci configuration register in the bridge.
      
      To avoid such dilemma, replace all pci calls in the quark codes
      to use the local version which does not go through driver model.
      
      Signed-off-by: default avatarBin Meng <bmeng.cn@gmail.com>
      Acked-by: default avatarSimon Glass <sjg@chromium.org>