[U-Boot] [PATCH 14/23] x86: Move common FSP functions into a common file

Bin Meng bmeng.cn at gmail.com
Wed Jan 28 02:12:03 CET 2015


Hi Simon,

On Tue, Jan 27, 2015 at 11:15 PM, Simon Glass <sjg at chromium.org> wrote:
> Hi Bin,
>
> On 27 January 2015 at 05:20, Bin Meng <bmeng.cn at gmail.com> wrote:
>> Hi Simon,
>>
>> On Tue, Jan 27, 2015 at 9:23 AM, Simon Glass <sjg at chromium.org> wrote:
>>> Since these board functions seem to be the same for all boards which use
>>> FSP, move them into a common file. We can adjust this later if future FSPs
>>> need more flexibility.
>>>
>>> Signed-off-by: Simon Glass <sjg at chromium.org>
>>> ---
>>>
>>>  arch/x86/cpu/queensbay/tnc.c      | 27 ------------
>>>  arch/x86/cpu/queensbay/tnc_pci.c  | 15 -------
>>>  arch/x86/cpu/queensbay/topcliff.c | 32 +-------------
>>>  arch/x86/include/asm/u-boot-x86.h | 17 ++++++++
>>>  arch/x86/lib/fsp/Makefile         |  1 +
>>>  arch/x86/lib/fsp/fsp_common.c     | 88 +++++++++++++++++++++++++++++++++++++++
>>>  6 files changed, 108 insertions(+), 72 deletions(-)
>>>  create mode 100644 arch/x86/lib/fsp/fsp_common.c
>>>
>>> diff --git a/arch/x86/cpu/queensbay/tnc.c b/arch/x86/cpu/queensbay/tnc.c
>>> index f9b3bfa..30ab725 100644
>>> --- a/arch/x86/cpu/queensbay/tnc.c
>>> +++ b/arch/x86/cpu/queensbay/tnc.c
>>> @@ -43,30 +43,3 @@ int arch_cpu_init(void)
>>>
>>>         return 0;
>>>  }
>>> -
>>> -int print_cpuinfo(void)
>>> -{
>>> -       post_code(POST_CPU_INFO);
>>> -       return default_print_cpuinfo();
>>> -}
>>> -
>>> -void reset_cpu(ulong addr)
>>> -{
>>> -       /* cold reset */
>>> -       outb(0x06, PORT_RESET);
>>> -}
>>> -
>>> -void board_final_cleanup(void)
>>> -{
>>> -       u32 status;
>>> -
>>> -       /* call into FspNotify */
>>> -       debug("Calling into FSP (notify phase INIT_PHASE_BOOT): ");
>>> -       status = fsp_notify(NULL, INIT_PHASE_BOOT);
>>> -       if (status != FSP_SUCCESS)
>>> -               debug("fail, error code %x\n", status);
>>> -       else
>>> -               debug("OK\n");
>>> -
>>> -       return;
>>> -}
>>> diff --git a/arch/x86/cpu/queensbay/tnc_pci.c b/arch/x86/cpu/queensbay/tnc_pci.c
>>> index 9b0b725..6c291f9 100644
>>> --- a/arch/x86/cpu/queensbay/tnc_pci.c
>>> +++ b/arch/x86/cpu/queensbay/tnc_pci.c
>>> @@ -44,18 +44,3 @@ void board_pci_setup_hose(struct pci_controller *hose)
>>>
>>>         hose->region_count = 4;
>>>  }
>>> -
>>> -int board_pci_post_scan(struct pci_controller *hose)
>>> -{
>>> -       u32 status;
>>> -
>>> -       /* call into FspNotify */
>>> -       debug("Calling into FSP (notify phase INIT_PHASE_PCI): ");
>>> -       status = fsp_notify(NULL, INIT_PHASE_PCI);
>>> -       if (status != FSP_SUCCESS)
>>> -               debug("fail, error code %x\n", status);
>>> -       else
>>> -               debug("OK\n");
>>> -
>>> -       return 0;
>>> -}
>>> diff --git a/arch/x86/cpu/queensbay/topcliff.c b/arch/x86/cpu/queensbay/topcliff.c
>>> index b01422a..25032cc 100644
>>> --- a/arch/x86/cpu/queensbay/topcliff.c
>>> +++ b/arch/x86/cpu/queensbay/topcliff.c
>>> @@ -5,43 +5,15 @@
>>>   */
>>>
>>>  #include <common.h>
>>> -#include <errno.h>
>>> -#include <malloc.h>
>>> -#include <pci.h>
>>>  #include <pci_ids.h>
>>> -#include <sdhci.h>
>>>
>>>  static struct pci_device_id mmc_supported[] = {
>>>         { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_TCF_SDIO_0 },
>>>         { PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_TCF_SDIO_1 },
>>> -       { }
>>>  };
>>>
>>>  int cpu_mmc_init(bd_t *bis)
>>>  {
>>> -       struct sdhci_host *mmc_host;
>>> -       pci_dev_t devbusfn;
>>> -       u32 iobase;
>>> -       int ret;
>>> -       int i;
>>> -
>>> -       for (i = 0; i < ARRAY_SIZE(mmc_supported); i++) {
>>> -               devbusfn =  pci_find_devices(mmc_supported, i);
>>> -               if (devbusfn == -1)
>>> -                       return -ENODEV;
>>> -
>>> -               mmc_host = (struct sdhci_host *)malloc(sizeof(struct sdhci_host));
>>> -               if (!mmc_host)
>>> -                       return -ENOMEM;
>>> -
>>> -               mmc_host->name = "Topcliff SDHCI";
>>> -               pci_read_config_dword(devbusfn, PCI_BASE_ADDRESS_0, &iobase);
>>> -               mmc_host->ioaddr = (void *)iobase;
>>> -               mmc_host->quirks = 0;
>>> -               ret = add_sdhci(mmc_host, 0, 0);
>>> -               if (ret)
>>> -                       return ret;
>>> -       }
>>> -
>>> -       return 0;
>>> +       return fsp_cpu_mmc_init("Topcliff SDHCI", mmc_supported,
>>> +                               ARRAY_SIZE(mmc_supported));
>>>  }
>>
>> I don't think this function should be moved to fsp_common.c as it has
>> nothing related to FSP. We can move this whole function to
>> drivers/mmc/, something like intel_mmc.c or intel_sdhc.c.
>
> How about pci_mmc.c if it is generic to PCI?
>

Sounds good.

[snip]

Regards,
Bin


More information about the U-Boot mailing list