45 (1 << 7) | (1 << 6) | ((21 - 17) << 2) | (0 << 0));
46 #if !CONFIG(SERIRQ_CONTINUOUS_MODE)
48 (1 << 7) | (0 << 6) | ((21 - 17) << 2) | (0 << 0));
84 const u8 pirq_routing = 11;
114 const struct southbridge_intel_ibexpeak_config *
config = dev->
chip_info;
120 reg32 |= (
config->gpi0_routing & 0x03) << 0;
121 reg32 |= (
config->gpi1_routing & 0x03) << 2;
122 reg32 |= (
config->gpi2_routing & 0x03) << 4;
123 reg32 |= (
config->gpi3_routing & 0x03) << 6;
124 reg32 |= (
config->gpi4_routing & 0x03) << 8;
125 reg32 |= (
config->gpi5_routing & 0x03) << 10;
126 reg32 |= (
config->gpi6_routing & 0x03) << 12;
127 reg32 |= (
config->gpi7_routing & 0x03) << 14;
128 reg32 |= (
config->gpi8_routing & 0x03) << 16;
129 reg32 |= (
config->gpi9_routing & 0x03) << 18;
130 reg32 |= (
config->gpi10_routing & 0x03) << 20;
131 reg32 |= (
config->gpi11_routing & 0x03) << 22;
132 reg32 |= (
config->gpi12_routing & 0x03) << 24;
133 reg32 |= (
config->gpi13_routing & 0x03) << 26;
134 reg32 |= (
config->gpi14_routing & 0x03) << 28;
135 reg32 |= (
config->gpi15_routing & 0x03) << 30;
147 const struct southbridge_intel_ibexpeak_config *
config = dev->
chip_info;
156 CONFIG_MAINBOARD_POWER_FAILURE_STATE);
171 state =
"state keep";
211 if (
CONFIG(DEBUG_PERIODIC_SMI))
231 reg32 |= (1 << 5) | (1 << 4) | (1 << 0);
264 RCBA32(0x1d44) = 0x00000000;
266 RCBA32(0x1d48) = 0x00030000;
268 RCBA32(0x1e80) = 0x000c0801;
270 RCBA32(0x1e84) = 0x000200f0;
273 const u32 rcba2010[] = {
274 0x00188200, 0x14000016, 0xbc4abcb5, 0x00000000,
275 0xf0c9605b, 0x13683040, 0x04c8f16e, 0x09e90170
278 RCBA32(0x2010 + 4 * i) = rcba2010[i];
282 RCBA32(0x2100) = 0x00000000;
284 RCBA32(0x2104) = 0x00000757;
286 RCBA32(0x2108) = 0x00170001;
289 RCBA32(0x211c) = 0x00000000;
291 RCBA32(0x2120) = 0x00010000;
294 RCBA32(0x21fc) = 0x00000000;
296 RCBA32(0x2200) = 0x20000044;
298 RCBA32(0x2204) = 0x00000001;
300 RCBA32(0x2208) = 0x00003457;
303 const u32 rcba2210[] = {
304 0x00000000, 0x00000001, 0xa0fff210, 0x0000df00,
305 0x00e30880, 0x00000070, 0x00004000, 0x00000000,
306 0x00e30880, 0x00000070, 0x00004000, 0x00000000,
307 0x00002301, 0x36000000, 0x00010107, 0x00160000,
308 0x00001b01, 0x36000000, 0x00010107, 0x00160000,
309 0x00000601, 0x16000000, 0x00010107, 0x00160000,
310 0x00001c01, 0x16000000, 0x00010107, 0x00160000
314 RCBA32(0x2210 + 4 * i) = rcba2210[i];
318 const u32 rcba2300[] = {
319 0x00000000, 0x40000000, 0x4646827b, 0x6e803131,
320 0x32c77887, 0x00077733, 0x00007447, 0x00000040,
321 0xcccc0cfc, 0x0fbb0fff
325 RCBA32(0x2300 + 4 * i) = rcba2300[i];
329 RCBA32(0x37fc) = 0x00000000;
331 RCBA32(0x3dfc) = 0x00000000;
333 RCBA32(0x3e7c) = 0xffffffff;
335 RCBA32(0x3efc) = 0x00000000;
337 RCBA32(0x3f00) = 0x0000010b;
363 reg16 |= (1 << 2) | (1 << 11);
368 reg32 |= (1 << 29) | (1 << 28);
369 reg32 |= (1 << 27) | (1 << 26) | (1 << 25) | (1 << 24);
447 const struct southbridge_intel_ibexpeak_config *
config = dev->
chip_info;
461 res->
base = 0xff800000;
462 res->
size = 0x00800000;
468 res->
size = 0x00001000;
472 if ((
config->gen1_dec & 0xFFFC) > 0x1000) {
480 if ((
config->gen2_dec & 0xFFFC) > 0x1000) {
488 if ((
config->gen3_dec & 0xFFFC) > 0x1000) {
496 if ((
config->gen4_dec & 0xFFFC) > 0x1000) {
522 struct southbridge_intel_ibexpeak_config *
chip = dev->
chip_info;
533 if (
CONFIG(INTEL_CHIPSET_LOCKDOWN) ||
unsigned long acpi_write_hpet(const struct device *device, unsigned long current, acpi_rsdp_t *rsdp)
static int acpi_is_wakeup_s3(void)
static void write32(void *addr, uint32_t val)
static uint32_t read32(const void *addr)
void setup_ioapic(void *ioapic_base, u8 ioapic_id)
void ioapic_lock_max_vectors(void *ioapic_base)
#define MAINBOARD_POWER_ON
#define MAINBOARD_POWER_OFF
#define MAINBOARD_POWER_KEEP
#define ELOG_TYPE_RTC_RESET
#define printk(level,...)
void outb(u8 val, u16 port)
void outl(u32 val, u16 port)
void outw(u16 val, u16 port)
DEVTREE_CONST struct device *DEVTREE_CONST all_devices
Linked list of ALL devices.
DEVTREE_CONST struct device * pcidev_on_root(uint8_t dev, uint8_t fn)
struct resource * new_resource(struct device *dev, unsigned int index)
See if a resource structure already exists for a given index and if not allocate one.
int elog_add_event(u8 event_type)
static struct tpm_chip chip
void i8259_configure_irq_trigger(int int_num, int is_level_triggered)
Configure IRQ triggering in the i8259 compatible Interrupt Controller.
#define APM_CNT_ACPI_DISABLE
static __always_inline void pci_write_config32(const struct device *dev, u16 reg, u32 val)
static __always_inline u16 pci_read_config16(const struct device *dev, u16 reg)
static __always_inline u8 pci_read_config8(const struct device *dev, u16 reg)
static __always_inline void pci_write_config16(const struct device *dev, u16 reg, u16 val)
static __always_inline void pci_write_config8(const struct device *dev, u16 reg, u8 val)
#define BIOS_INFO
BIOS_INFO - Expected events.
#define BIOS_DEBUG
BIOS_DEBUG - Verbose output.
void cmos_init(bool invalid)
unsigned int get_uint_option(const char *name, const unsigned int fallback)
#define PCI_INTERRUPT_PIN
#define PCI_INTERRUPT_LINE
void pci_dev_enable_resources(struct device *dev)
void pci_dev_read_resources(struct device *dev)
struct pci_operations pci_dev_ops_pci
Default device operation for PCI devices.
void pci_dev_set_resources(struct device *dev)
#define PCI_DID_INTEL_IBEXPEAK_LPC_3400
#define PCI_DID_INTEL_IBEXPEAK_LPC_H57
#define PCI_DID_INTEL_IBEXPEAK_LPC_Q57
#define PCI_DID_INTEL_IBEXPEAK_LPC_P55
#define PCI_DID_INTEL_IBEXPEAK_LPC_HM55
#define PCI_DID_INTEL_IBEXPEAK_LPC_HM57
#define PCI_DID_INTEL_IBEXPEAK_LPC_PM55
#define PCI_DID_INTEL_IBEXPEAK_LPC_QM57
#define PCI_DID_INTEL_IBEXPEAK_LPC_3450
#define PCI_DID_INTEL_IBEXPEAK_LPC_QS57
#define PCI_DID_INTEL_IBEXPEAK_LPC_H55
#define PCI_DID_INTEL_IBEXPEAK_LPC_3420
void intel_acpi_pcie_hotplug_generator(u8 *hotplug_map, int port_number)
void intel_acpi_gen_def_acpi_pirq(const struct device *lpc)
#define IORESOURCE_SUBTRACTIVE
#define IORESOURCE_ASSIGNED
#define IOINDEX_SUBTRACTIVE(IDX, LINK)
void scan_static_bus(struct device *bus)
static int rtc_failed(uint32_t gen_pmcon_b)
void pch_enable(struct device *dev)
#define RCBA32_AND_OR(x, and, or)
void spi_finalize_ops(void)
static void enable_hpet(void)
static void pch_power_options(struct device *dev)
static void lpc_final(struct device *dev)
static const char * lpc_acpi_name(const struct device *dev)
static struct device_operations device_ops
static void pch_lpc_read_resources(struct device *dev)
static void southbridge_fill_ssdt(const struct device *device)
static void pch_enable_serial_irqs(struct device *dev)
static void enable_clock_gating(struct device *dev)
static void pch_rtc_init(struct device *dev)
static void pch_set_acpi_mode(void)
static void lpc_init(struct device *dev)
static const struct pci_driver pch_lpc __pci_driver
static const unsigned short pci_device_ids[]
static void pch_lpc_enable(struct device *dev)
static void pch_enable_ioapic(struct device *dev)
Set miscellaneous static southbridge features.
static void pch_pirq_init(struct device *dev)
static void pch_fixups(struct device *dev)
static void mobile5_pm_init(struct device *dev)
static void pch_gpi_routing(struct device *dev)
void(* read_resources)(struct device *dev)
enum device_path_type type
DEVTREE_CONST struct device * next
DEVTREE_CONST void * chip_info
typedef void(X86APIP X86EMU_intrFuncs)(int num)