xref: /openbmc/u-boot/arch/x86/cpu/pci.c (revision 7430f108)
1d188b18fSSimon Glass /*
2d188b18fSSimon Glass  * Copyright (c) 2011 The Chromium OS Authors.
3d188b18fSSimon Glass  * (C) Copyright 2008,2009
4d188b18fSSimon Glass  * Graeme Russ, <graeme.russ@gmail.com>
5d188b18fSSimon Glass  *
6d188b18fSSimon Glass  * (C) Copyright 2002
7d188b18fSSimon Glass  * Daniel Engström, Omicron Ceti AB, <daniel@omicron.se>
8d188b18fSSimon Glass  *
9d188b18fSSimon Glass  * SPDX-License-Identifier:	GPL-2.0+
10d188b18fSSimon Glass  */
11d188b18fSSimon Glass 
12d188b18fSSimon Glass #include <common.h>
13*7430f108SSimon Glass #include <errno.h>
14*7430f108SSimon Glass #include <malloc.h>
15d188b18fSSimon Glass #include <pci.h>
16d188b18fSSimon Glass #include <asm/pci.h>
17d188b18fSSimon Glass 
18d188b18fSSimon Glass static struct pci_controller x86_hose;
19d188b18fSSimon Glass 
20*7430f108SSimon Glass int pci_early_init_hose(struct pci_controller **hosep)
21*7430f108SSimon Glass {
22*7430f108SSimon Glass 	struct pci_controller *hose;
23*7430f108SSimon Glass 
24*7430f108SSimon Glass 	hose = calloc(1, sizeof(struct pci_controller));
25*7430f108SSimon Glass 	if (!hose)
26*7430f108SSimon Glass 		return -ENOMEM;
27*7430f108SSimon Glass 
28*7430f108SSimon Glass 	board_pci_setup_hose(hose);
29*7430f108SSimon Glass 	pci_setup_type1(hose);
30*7430f108SSimon Glass 	gd->arch.hose = hose;
31*7430f108SSimon Glass 	*hosep = hose;
32*7430f108SSimon Glass 
33*7430f108SSimon Glass 	return 0;
34*7430f108SSimon Glass }
35*7430f108SSimon Glass 
36d188b18fSSimon Glass void pci_init_board(void)
37d188b18fSSimon Glass {
38d188b18fSSimon Glass 	struct pci_controller *hose = &x86_hose;
39d188b18fSSimon Glass 
40*7430f108SSimon Glass 	/* Stop using the early hose */
41*7430f108SSimon Glass 	gd->arch.hose = NULL;
42*7430f108SSimon Glass 
43d188b18fSSimon Glass 	board_pci_setup_hose(hose);
44d188b18fSSimon Glass 	pci_setup_type1(hose);
45d188b18fSSimon Glass 	pci_register_hose(hose);
46d188b18fSSimon Glass 
47d188b18fSSimon Glass 	hose->last_busno = pci_hose_scan(hose);
48d188b18fSSimon Glass }
49