[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