Lines Matching +full:io +full:- +full:width

23  * Contributions after 2012-01-13 are licensed under the terms of the
41 #include "hw/mem/pc-dimm.h"
47 acpi_update_sci(&pm->acpi_regs, pm->irq); in ich9_pm_update_sci_fn()
50 static uint64_t ich9_gpe_readb(void *opaque, hwaddr addr, unsigned width) in ich9_gpe_readb() argument
53 return acpi_gpe_ioport_readb(&pm->acpi_regs, addr); in ich9_gpe_readb()
57 unsigned width) in ich9_gpe_writeb() argument
60 acpi_gpe_ioport_writeb(&pm->acpi_regs, addr, val); in ich9_gpe_writeb()
61 acpi_update_sci(&pm->acpi_regs, pm->irq); in ich9_gpe_writeb()
74 static uint64_t ich9_smi_readl(void *opaque, hwaddr addr, unsigned width) in ich9_smi_readl() argument
79 return pm->smi_en; in ich9_smi_readl()
81 return pm->smi_sts; in ich9_smi_readl()
88 unsigned width) in ich9_smi_writel() argument
91 TCOIORegs *tr = &pm->tco_regs; in ich9_smi_writel()
96 tco_en = pm->smi_en & ICH9_PMIO_SMI_EN_TCO_EN; in ich9_smi_writel()
98 if (tr->tco.cnt1 & TCO_LOCK) { in ich9_smi_writel()
101 pm->smi_en &= ~pm->smi_en_wmask; in ich9_smi_writel()
102 pm->smi_en |= (val & pm->smi_en_wmask); in ich9_smi_writel()
103 if (pm->swsmi_timer_enabled) { in ich9_smi_writel()
104 ich9_pm_update_swsmi_timer(pm, pm->smi_en & in ich9_smi_writel()
107 if (pm->periodic_timer_enabled) { in ich9_smi_writel()
108 ich9_pm_update_periodic_timer(pm, pm->smi_en & in ich9_smi_writel()
113 pm->smi_sts &= ~pm->smi_sts_wmask; in ich9_smi_writel()
114 pm->smi_sts |= (val & pm->smi_sts_wmask); in ich9_smi_writel()
131 pm->pm_io_base = pm_io_base; in ich9_pm_iospace_update()
133 memory_region_set_enabled(&pm->io, pm->pm_io_base != 0); in ich9_pm_iospace_update()
134 memory_region_set_address(&pm->io, pm->pm_io_base); in ich9_pm_iospace_update()
141 uint32_t pm_io_base = pm->pm_io_base; in ich9_pm_post_load()
142 pm->pm_io_base = 0; in ich9_pm_post_load()
171 return s->enable_tco; in vmstate_test_use_tco()
189 return !s->cpu_hotplug_legacy; in vmstate_test_use_cpuhp()
195 Object *obj = OBJECT(s->gpe_cpu.device); in vmstate_cpuhp_pre_load()
196 object_property_set_bool(obj, "cpu-hotplug-legacy", false, &error_abort); in vmstate_cpuhp_pre_load()
216 return s->acpi_pci_hotplug.use_acpi_hotplug_bridge; in vmstate_test_use_pcihp()
263 acpi_pm1_evt_reset(&pm->acpi_regs); in pm_reset()
264 acpi_pm1_cnt_reset(&pm->acpi_regs); in pm_reset()
265 acpi_pm_tmr_reset(&pm->acpi_regs); in pm_reset()
266 acpi_gpe_reset(&pm->acpi_regs); in pm_reset()
268 pm->smi_en = 0; in pm_reset()
269 if (!pm->smm_enabled) { in pm_reset()
271 pm->smi_en |= ICH9_PMIO_SMI_EN_APMC_EN; in pm_reset()
273 pm->smi_en_wmask = ~0; in pm_reset()
275 if (pm->acpi_pci_hotplug.use_acpi_hotplug_bridge) { in pm_reset()
276 acpi_pcihp_reset(&pm->acpi_pci_hotplug); in pm_reset()
279 acpi_update_sci(&pm->acpi_regs, pm->irq); in pm_reset()
286 acpi_pm1_evt_power_down(&pm->acpi_regs); in pm_powerdown_req()
291 pm->smi_sts_wmask = 0; in ich9_pm_init()
293 memory_region_init(&pm->io, OBJECT(lpc_pci), "ich9-pm", ICH9_PMIO_SIZE); in ich9_pm_init()
294 memory_region_set_enabled(&pm->io, false); in ich9_pm_init()
296 0, &pm->io); in ich9_pm_init()
298 acpi_pm_tmr_init(&pm->acpi_regs, ich9_pm_update_sci_fn, &pm->io); in ich9_pm_init()
299 acpi_pm1_evt_init(&pm->acpi_regs, ich9_pm_update_sci_fn, &pm->io); in ich9_pm_init()
300 acpi_pm1_cnt_init(&pm->acpi_regs, &pm->io, pm->disable_s3, pm->disable_s4, in ich9_pm_init()
301 pm->s4_val, !pm->smm_compat && !pm->smm_enabled); in ich9_pm_init()
303 acpi_gpe_init(&pm->acpi_regs, ICH9_PMIO_GPE0_LEN); in ich9_pm_init()
304 memory_region_init_io(&pm->io_gpe, OBJECT(lpc_pci), &ich9_gpe_ops, pm, in ich9_pm_init()
305 "acpi-gpe0", ICH9_PMIO_GPE0_LEN); in ich9_pm_init()
306 memory_region_add_subregion(&pm->io, ICH9_PMIO_GPE0_STS, &pm->io_gpe); in ich9_pm_init()
308 memory_region_init_io(&pm->io_smi, OBJECT(lpc_pci), &ich9_smi_ops, pm, in ich9_pm_init()
309 "acpi-smi", 8); in ich9_pm_init()
310 memory_region_add_subregion(&pm->io, ICH9_PMIO_SMI_EN, &pm->io_smi); in ich9_pm_init()
312 if (pm->swsmi_timer_enabled) { in ich9_pm_init()
316 if (pm->periodic_timer_enabled) { in ich9_pm_init()
320 if (pm->enable_tco) { in ich9_pm_init()
321 acpi_pm_tco_init(&pm->tco_regs, &pm->io); in ich9_pm_init()
324 if (pm->acpi_pci_hotplug.use_acpi_hotplug_bridge) { in ich9_pm_init()
326 &pm->acpi_pci_hotplug, in ich9_pm_init()
335 pm->irq = sci_irq; in ich9_pm_init()
337 pm->powerdown_notifier.notify = pm_powerdown_req; in ich9_pm_init()
338 qemu_register_powerdown_notifier(&pm->powerdown_notifier); in ich9_pm_init()
341 OBJECT(lpc_pci), &pm->gpe_cpu, ICH9_CPU_HOTPLUG_IO_BASE); in ich9_pm_init()
344 &pm->acpi_memory_hotplug, in ich9_pm_init()
352 uint32_t value = pm->pm_io_base + ICH9_PMIO_GPE0_STS; in ich9_pm_get_gpe0_blk()
361 return s->pm.cpu_hotplug_legacy; in ich9_pm_get_cpu_hotplug_legacy()
370 if (s->pm.cpu_hotplug_legacy && value == false) { in ich9_pm_set_cpu_hotplug_legacy()
371 acpi_switch_to_modern_cphp(&s->pm.gpe_cpu, &s->pm.cpuhp_state, in ich9_pm_set_cpu_hotplug_legacy()
374 s->pm.cpu_hotplug_legacy = value; in ich9_pm_set_cpu_hotplug_legacy()
380 return s->pm.enable_tco; in ich9_pm_get_enable_tco()
386 s->pm.enable_tco = value; in ich9_pm_set_enable_tco()
393 return s->pm.acpi_pci_hotplug.use_acpi_hotplug_bridge; in ich9_pm_get_acpi_pci_hotplug()
400 s->pm.acpi_pci_hotplug.use_acpi_hotplug_bridge = value; in ich9_pm_set_acpi_pci_hotplug()
407 return s->pm.keep_pci_slot_hpc; in ich9_pm_get_keep_pci_slot_hpc()
414 s->pm.keep_pci_slot_hpc = value; in ich9_pm_set_keep_pci_slot_hpc()
420 pm->acpi_memory_hotplug.is_enabled = true; in ich9_pm_add_properties()
421 pm->cpu_hotplug_legacy = true; in ich9_pm_add_properties()
422 pm->disable_s3 = 0; in ich9_pm_add_properties()
423 pm->disable_s4 = 0; in ich9_pm_add_properties()
424 pm->s4_val = 2; in ich9_pm_add_properties()
425 pm->acpi_pci_hotplug.use_acpi_hotplug_bridge = true; in ich9_pm_add_properties()
426 pm->keep_pci_slot_hpc = true; in ich9_pm_add_properties()
427 pm->enable_tco = true; in ich9_pm_add_properties()
430 &pm->pm_io_base, OBJ_PROP_FLAG_READ); in ich9_pm_add_properties()
436 object_property_add_bool(obj, "cpu-hotplug-legacy", in ich9_pm_add_properties()
440 &pm->disable_s3, OBJ_PROP_FLAG_READWRITE); in ich9_pm_add_properties()
442 &pm->disable_s4, OBJ_PROP_FLAG_READWRITE); in ich9_pm_add_properties()
444 &pm->s4_val, OBJ_PROP_FLAG_READWRITE); in ich9_pm_add_properties()
451 object_property_add_bool(obj, "x-keep-pci-slot-hpc", in ich9_pm_add_properties()
467 uint64_t negotiated = lpc->smi_negotiated_features; in ich9_pm_device_pre_plug_cb()
487 acpi_memory_plug_cb(hotplug_dev, &lpc->pm.acpi_memory_hotplug, in ich9_pm_device_plug_cb()
491 if (lpc->pm.cpu_hotplug_legacy) { in ich9_pm_device_plug_cb()
492 legacy_acpi_cpu_plug_cb(hotplug_dev, &lpc->pm.gpe_cpu, dev, errp); in ich9_pm_device_plug_cb()
494 acpi_cpu_plug_cb(hotplug_dev, &lpc->pm.cpuhp_state, dev, errp); in ich9_pm_device_plug_cb()
497 acpi_pcihp_device_plug_cb(hotplug_dev, &lpc->pm.acpi_pci_hotplug, in ich9_pm_device_plug_cb()
512 &lpc->pm.acpi_memory_hotplug, dev, in ich9_pm_device_unplug_request_cb()
515 !lpc->pm.cpu_hotplug_legacy) { in ich9_pm_device_unplug_request_cb()
516 uint64_t negotiated = lpc->smi_negotiated_features; in ich9_pm_device_unplug_request_cb()
520 error_setg(errp, "cpu hot-unplug with SMI wasn't enabled " in ich9_pm_device_unplug_request_cb()
523 "x-smi-cpu-hotunplug=on and firmware that " in ich9_pm_device_unplug_request_cb()
524 "supports CPU hot-unplug with SMM"); in ich9_pm_device_unplug_request_cb()
528 acpi_cpu_unplug_request_cb(hotplug_dev, &lpc->pm.cpuhp_state, in ich9_pm_device_unplug_request_cb()
532 &lpc->pm.acpi_pci_hotplug, in ich9_pm_device_unplug_request_cb()
546 acpi_memory_unplug_cb(&lpc->pm.acpi_memory_hotplug, dev, errp); in ich9_pm_device_unplug_cb()
548 !lpc->pm.cpu_hotplug_legacy) { in ich9_pm_device_unplug_cb()
549 acpi_cpu_unplug_cb(&lpc->pm.cpuhp_state, dev, errp); in ich9_pm_device_unplug_cb()
551 acpi_pcihp_device_unplug_cb(hotplug_dev, &lpc->pm.acpi_pci_hotplug, in ich9_pm_device_unplug_cb()
562 return acpi_pcihp_is_hotpluggable_bus(&lpc->pm.acpi_pci_hotplug, bus); in ich9_pm_is_hotpluggable_bus()
569 acpi_memory_ospm_status(&s->pm.acpi_memory_hotplug, list); in ich9_pm_ospm_status()
570 if (!s->pm.cpu_hotplug_legacy) { in ich9_pm_ospm_status()
571 acpi_cpu_ospm_status(&s->pm.cpuhp_state, list); in ich9_pm_ospm_status()