13 Feb, 2020

1 commit

  • Currently the size of pci_addr_t and pci_size_t depends on
    CONFIG_SYS_PCI_64BIT. For qemu_arm64_defconfig with 4 GiB RAM this leads
    to an error

    pci_hose_phys_to_bus: invalid physical address

    which is due to the truncation of the bus address in _dm_pci_phys_to_bus.

    Defining CONFIG_SYS_PCI_64BIT is not a solution as this results in an error

    PCI: Failed autoconfig bar 10

    So let's use unsigned long for pci_addr_t and pci_size_t if
    CONFIG_SYS_PCI_64BIT is not defined.

    Considering that 32bit U-Boot is used to launch some 64bit x86 systems we
    cannot do without CONFIG_SYS_PCI_64BIT requiring u64 as type.

    Signed-off-by: Heinrich Schuchardt
    Reviewed-by: Simon Glass

    Heinrich Schuchardt
     

06 Feb, 2020

2 commits


15 Dec, 2019

2 commits

  • Early in boot it is necessary to decode the PCI device/function values for
    particular peripherals in the device tree or of-platdata. This is needed
    in TPL where CONFIG_PCI is not defined.

    To handle this, move pci_get_devfn() into a file that is built even when
    CONFIG_PCI is not defined.

    Also add a function for use by of-platdata, to convert a reg property to
    a pci_dev_t.

    Signed-off-by: Simon Glass
    Reviewed-by: Bin Meng

    Simon Glass
     
  • At present PCI auto-configuration happens in U-Boot both before and after
    relocation. This is a waste of time and may mess up static addresses used
    in board_init_f(). Adjust the code to supporting doing auto-configuration
    once, after relocation, under control of a device-tree property.

    This is needed for Apollo Lake for debugging the silicon-init code. Once
    the UART is moved to a different MMIO address the debug UART does not work
    and any debug output in Apollo Lake's arch_fsp_init_r() causes a hang.

    Signed-off-by: Simon Glass
    Reviewed-by: Bin Meng

    Simon Glass
     

11 Oct, 2019

1 commit

  • Add a field to the PCI emulator per-device data which records which device
    is being emulated. This is useful when the emulator needs to check the
    device for something.

    Signed-off-by: Simon Glass
    Reviewed-by: Bin Meng
    Tested-by: Bin Meng
    [bmeng: rebase the patch against u-boot-x86/master to get it applied cleanly]
    Signed-off-by: Bin Meng

    Simon Glass
     

08 Oct, 2019

3 commits


11 Jul, 2019

3 commits


08 May, 2019

1 commit

  • This reverts commit aec4298ccb337106fd0115b91d846a022fdf301d.

    Unfortunately this has a dramatic impact on the pre-relocation memory
    used on x86 platforms (increasing it by 2KB) since it increases the
    overhead for each PCI device from 220 bytes to 412 bytes.

    The offending line is in UCLASS_DRIVER(pci):

    .per_device_auto_alloc_size = sizeof(struct pci_controller),

    This means that all PCI devices have the controller struct associated
    with them. The solution is to move the regions[] member out of the array,
    makes its size dynamic, or split UCLASS_PCI into controllers and
    non-controllers, as the comment suggests.

    For now, revert the commit to get things running again.

    Signed-off-by: Simon Glass
    Reviewed-by: Bin Meng

    Simon Glass
     

25 Apr, 2019

1 commit


24 Apr, 2019

2 commits


23 Mar, 2019

1 commit


20 Feb, 2019

2 commits


05 Feb, 2019

1 commit


15 Nov, 2018

1 commit


08 Aug, 2018

4 commits


27 May, 2018

2 commits


07 May, 2018

1 commit

  • When U-Boot started using SPDX tags we were among the early adopters and
    there weren't a lot of other examples to borrow from. So we picked the
    area of the file that usually had a full license text and replaced it
    with an appropriate SPDX-License-Identifier: entry. Since then, the
    Linux Kernel has adopted SPDX tags and they place it as the very first
    line in a file (except where shebangs are used, then it's second line)
    and with slightly different comment styles than us.

    In part due to community overlap, in part due to better tag visibility
    and in part for other minor reasons, switch over to that style.

    This commit changes all instances where we have a single declared
    license in the tag as both the before and after are identical in tag
    contents. There's also a few places where I found we did not have a tag
    and have introduced one.

    Signed-off-by: Tom Rini

    Tom Rini
     

20 Mar, 2018

1 commit


06 Oct, 2017

1 commit


31 May, 2017

1 commit

  • There is no dedicated reset signal wired up for the MX6QDL thus if the
    bootloader enables the link we need some special handling to get the core
    back into a state where it is safe to touch it for configuration.

    While there has been some special handling in the Linux kernel to do this,
    it was removed in 4.11 thus we need to do it properly in the bootloader
    and therefore without this if you enable PCI in the bootloader you will hang
    while booting the 4.11 kernel.

    This puts the PCIe controller back into a safe state for the kernel driver
    before launching the kernel.

    Signed-off-by: Tim Harvey
    Reviewed-by: Fabio Estevam
    Tested-by: Peter Senna Tschudin

    Tim Harvey
     

22 Mar, 2016

1 commit


17 Mar, 2016

2 commits


05 Feb, 2016

1 commit


24 Jan, 2016

1 commit


13 Jan, 2016

4 commits