[U-Boot] [PATCH] pci: Fix expansion ROM programming for multi-function devices

Bin Meng bmeng.cn at gmail.com
Wed Oct 7 11:14:02 CEST 2015


Hi Tom,

On Wed, Oct 7, 2015 at 5:13 PM, Bin Meng <bmeng.cn at gmail.com> wrote:
> PCI_HEADER_TYPE register (offset 0x0e) bit 7 is an indicator
> for multi-function devices. We should mask it off before using
> it as the header type.
>
> Signed-off-by: Bin Meng <bmeng.cn at gmail.com>
> ---
>
>  drivers/pci/pci_auto.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/pci/pci_auto.c b/drivers/pci/pci_auto.c
> index 41d5447..79f27c7 100644
> --- a/drivers/pci/pci_auto.c
> +++ b/drivers/pci/pci_auto.c
> @@ -185,6 +185,7 @@ void pciauto_setup_device(struct pci_controller *hose,
>  #ifndef CONFIG_PCI_ENUM_ONLY
>         /* Configure the expansion ROM address */
>         pci_hose_read_config_byte(hose, dev, PCI_HEADER_TYPE, &header_type);
> +       header_type &= 0x7f;
>         if (header_type != PCI_HEADER_TYPE_CARDBUS) {
>                 rom_addr = (header_type == PCI_HEADER_TYPE_NORMAL) ?
>                            PCI_ROM_ADDRESS : PCI_ROM_ADDRESS1;
> --

I think we should get this patch in v2015.10 as it's a bug fix
otherwise multi-function devices won't get ROM address assigned.

Regards,
Bin


More information about the U-Boot mailing list