35 struct device *pciePort[6];
36 int i, slot_number = 1;
39 for (i = 0; i < 6; ++i) {
43 die(
" is not listed in devicetree.\n");
49 for (i = 5; (i >= 0) && !pciePort[i]->
enabled; --i) {
55 for (i = 0; i < 6; ++i) {
56 struct device *
const dev = pciePort[i];
58 if (
info->pcie_slot_implemented & (1 << i))
64 if (
info->pcie_slot_implemented & (1 << i)) {
66 slcap &= ~(0x1fff << 19);
67 slcap |= (slot_number++ << 19);
68 slcap &= ~(0x0003 << 16);
69 slcap |= (
info->pcie_power_limits[i].scale << 16);
70 slcap &= ~(0x00ff << 7);
71 slcap |= (
info->pcie_power_limits[i].value << 7);
77 for (i = 0; i < 6; ++i)
85 die(
"EHCI controller (00:1d.7) not listed in devicetree.\n");
88 die(
"EHCI controller (00:1a.7) not listed in devicetree.\n");
96 (1 << 29) | (1 << 17) | (2 << 2));
99 (1 << 29) | (1 << 17) | (2 << 2));
107 "PCI device 00:%x.%x",
109 die(
" is not listed in devicetree.\n");
154 reg32 |= functions[i].
mask;
162 for (i = 0; i < 6; ++i) {
164 reg32 |= (1 << ((i * 4) + 3));
190 #if !CONFIG(HAVE_SMI_HANDLER)
197 CHIP_NAME(
"Intel ICH10 (82801Jx) Series Southbridge")
#define printk(level,...)
void __noreturn die(const char *fmt,...)
void outw(u16 val, u16 port)
DEVTREE_CONST struct device * pcidev_path_on_root(pci_devfn_t devfn)
DEVTREE_CONST struct device * pcidev_on_root(uint8_t dev, uint8_t fn)
static struct smmstore_params_info info
static void i82801jx_pcie_init(const config_t *const info)
static void i82801jx_early_settings(const config_t *const info)
static void i82801jx_hide_functions(void)
struct chip_operations southbridge_intel_i82801jx_ops
static void i82801jx_init(void *chip_info)
static void i82801jx_enable_device(struct device *dev)
static int i82801jx_function_disabled(const unsigned int devfn)
static void i82801jx_ehci_init(void)
static __always_inline void pci_or_config32(const struct device *dev, u16 reg, u32 ormask)
static __always_inline void pci_write_config32(const struct device *dev, u16 reg, u32 val)
static __always_inline void pci_update_config32(const struct device *dev, u16 reg, u32 mask, u32 or)
static __always_inline void pci_or_config16(const struct device *dev, u16 reg, u16 ormask)
static __always_inline u32 pci_read_config32(const struct device *dev, u16 reg)
static __always_inline void pci_write_config8(const struct device *dev, u16 reg, u8 val)
#define BIOS_DEBUG
BIOS_DEBUG - Verbose output.
#define BIOS_EMERG
BIOS_EMERG - Emergency / Fatal.
#define PCI_DEVFN(slot, func)
#define PCI_EXP_FLAGS_SLOT