/openbmc/qemu/hw/ipmi/ |
H A D | pci_ipmi_bt.c | 2 * QEMU PCI IPMI BT emulation 27 #include "hw/ipmi/ipmi_bt.h" 31 #define TYPE_PCI_IPMI_BT "pci-ipmi-bt" 36 IPMIBT bt; member 43 PCIIPMIBTDevice *pik = ik->opaque; in pci_ipmi_raise_irq() 45 pci_set_irq(&pik->dev, true); in pci_ipmi_raise_irq() 50 PCIIPMIBTDevice *pik = ik->opaque; in pci_ipmi_lower_irq() 52 pci_set_irq(&pik->dev, false); in pci_ipmi_lower_irq() 62 if (!pik->bt.bmc) { in pci_ipmi_bt_realize() 63 error_setg(errp, "IPMI device requires a bmc attribute to be set"); in pci_ipmi_bt_realize() [all …]
|
H A D | isa_ipmi_bt.c | 2 * QEMU ISA IPMI BT emulation 29 #include "hw/ipmi/ipmi_bt.h" 31 #include "hw/qdev-properties.h" 34 #include "hw/acpi/ipmi.h" 36 #define TYPE_ISA_IPMI_BT "isa-ipmi-bt" 43 IPMIBT bt; member 51 ipmi_bt_get_fwinfo(&iib->bt, info); in isa_ipmi_bt_get_fwinfo() 52 info->interrupt_number = iib->isairq; in isa_ipmi_bt_get_fwinfo() 53 info->i2c_slave_address = iib->bt.bmc->slave_addr; in isa_ipmi_bt_get_fwinfo() 54 info->uuid = iib->uuid; in isa_ipmi_bt_get_fwinfo() [all …]
|
H A D | ipmi_bt.c | 2 * QEMU IPMI BT emulation 28 #include "hw/ipmi/ipmi_bt.h" 83 if (ib->use_irq && ib->irqs_enabled && ib->raise_irq) { in ipmi_bt_raise_irq() 84 ib->raise_irq(ib); in ipmi_bt_raise_irq() 90 if (ib->lower_irq) { in ipmi_bt_lower_irq() 91 ib->lower_irq(ib); in ipmi_bt_lower_irq() 98 IPMIBT *ib = iic->get_backend_data(ii); in ipmi_bt_handle_event() 100 if (ib->inlen < 4) { in ipmi_bt_handle_event() 104 if (ib->inmsg[0] != (ib->inlen - 1)) { in ipmi_bt_handle_event() 106 IPMI_BT_SET_BBUSY(ib->control_reg, 1); in ipmi_bt_handle_event() [all …]
|
/openbmc/linux/drivers/char/ipmi/ |
H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 3 # IPMI device configuration 7 tristate 'IPMI top-level message handler' 11 This enables the central IPMI message handler, required for IPMI 14 IPMI is a standard for managing sensors (temperature, 17 See <file:Documentation/driver-api/ipmi.rst> for more details on the driver. 33 When a panic occurs, this will cause the IPMI message handler to, 34 by default, generate an IPMI event describing the panic to each 44 When a panic occurs, this will cause the IPMI message handler to, 45 by default, generate IPMI OEM type f0 events holding the IPMB [all …]
|
H A D | ipmi_bt_sm.c | 1 // SPDX-License-Identifier: GPL-2.0+ 5 * The state machine for an Open IPMI BT sub-driver under ipmi_si.c, part 35 * Typical "Get BT Capabilities" values are 2-3 retries, 5-10 seconds, 38 * Since the Open IPMI architecture is single-message oriented at this 39 * stage, the queue depth of BT is of no concern. 48 * multiple rows of the state table discussion in the IPMI spec. 64 BT_STATE_LONG_BUSY /* BT doesn't get hosed :-) */ 72 #define BT_STATE_CHANGE(X, Y) { bt->state = X; return Y; } 78 unsigned char seq; /* BT sequence number */ 93 #define BT_CLR_WR_PTR 0x01 /* See IPMI 1.5 table 11.6.4 */ [all …]
|
H A D | ipmi_si_hardcode.c | 1 // SPDX-License-Identifier: GPL-2.0+ 36 …e types are 'kcs', 'smic', and 'bt'. For example si_type=kcs,bt will set the first interface to k… 51 …fic IPMI register in bytes. This should generally be 1, 2, 4, or 8 for an 8-bit, 16-bit, 32-bit, o… 54 …e data read from the. IPMI register, in bits. For instance, if the data is read from a 32-bit wor… 73 t = match_string(si_to_str, -1, si_type_str); in ipmi_hardcode_init_one() 90 ipmi_platform_add("hardcode-ipmi-si", i, &p); in ipmi_hardcode_init_one() 129 ipmi_remove_platform_device_by_name("hardcode-ipmi-si"); in ipmi_si_hardcode_exit()
|
H A D | ipmi_si_hotmod.c | 1 // SPDX-License-Identifier: GPL-2.0+ 5 * Handling for dynamically adding/removing IPMI devices through 12 #include <linux/ipmi.h> 21 …"Add and remove interfaces. See Documentation/driver-api/ipmi.rst in the kernel sources for the g… 25 * add|remove,kcs|bt|smic,mem|i/o,<address>[,<opt1>[,<opt2>[,...]]] 48 { "bt", SI_BT }, 67 return -EINVAL; in parse_str() 80 return -EINVAL; in parse_str() 91 return -EINVAL; in check_hotmod_int_op() 96 return -EINVAL; in check_hotmod_int_op() [all …]
|
H A D | ipmi_si_platform.c | 1 // SPDX-License-Identifier: GPL-2.0+ 5 * Handling for platform devices in IPMI (ACPI, OF, and things 56 /* For GPE-type interrupts. */ 62 ipmi_si_irq_handler(io->irq, io->irq_handler_data); in ipmi_acpi_gpe() 68 if (!io->irq) in acpi_gpe_irq_cleanup() 72 acpi_remove_gpe_handler(NULL, io->irq, &ipmi_acpi_gpe); in acpi_gpe_irq_cleanup() 79 if (!io->irq) in acpi_gpe_irq_setup() 83 io->irq, in acpi_gpe_irq_setup() 88 dev_warn(io->dev, in acpi_gpe_irq_setup() 90 io->irq); in acpi_gpe_irq_setup() [all …]
|
H A D | bt-bmc.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 * Copyright (c) 2015-2016, IBM Corporation. 7 #include <linux/bt-bmc.h> 22 #define DEVICE_NAME "ipmi-bt-host" 71 return readb(bt_bmc->base + reg); in bt_inb() 76 writeb(data, bt_bmc->base + reg); in bt_outb() 146 return container_of(file->private_data, struct bt_bmc, miscdev); in file_bt_bmc() 159 return -EBUSY; in bt_bmc_open() 163 * The BT (Block Transfer) interface means that entire messages are 169 * BT Message format : [all …]
|
/openbmc/openbmc-test-automation/data/ |
H A D | ipmi_variable.py | 4 Contains channel-related constants. 10 "ICMB v1.0": "icmb-v1.0", 11 "ICMB v0.9": "icmb-v0.9", 12 "802.3 LAN": "lan-802.3", 14 "Other LAN": "other-lan", 15 "PCI SMBus": "pci-smbus", 16 "SMBus v1.0/v1.1": "smbus-v1.0", 17 "SMBus v2.0": "smbus-v2.0", 18 "USB 1.x": "usb-1x", 19 "USB 2.x": "usb-2x", [all …]
|
/openbmc/openbmc/meta-phosphor/recipes-phosphor/ipmi/ |
H A D | phosphor-ipmi-bt_git.bb | 1 SUMMARY = "Phosphor OpenBMC BT to DBUS" 2 DESCRIPTION = "Phosphor OpenBMC BT to DBUS." 3 LICENSE = "Apache-2.0" 6 PROVIDES += "virtual/obmc-host-ipmi-hw" 16 inherit obmc-phosphor-dbus-service 18 RRECOMMENDS:${PN} += "phosphor-ipmi-host" 20 RPROVIDES:${PN} += "virtual-obmc-host-ipmi-hw"
|
/openbmc/linux/Documentation/devicetree/bindings/ipmi/ |
H A D | aspeed,ast2400-ibt-bmc.txt | 1 * Aspeed BT (Block Transfer) IPMI interface 4 (BaseBoard Management Controllers) and the BT interface can be used to 5 perform in-band IPMI communication with their host. 9 - compatible : should be one of 10 "aspeed,ast2400-ibt-bmc" 11 "aspeed,ast2500-ibt-bmc" 12 "aspeed,ast2600-ibt-bmc" 13 - reg: physical address and size of the registers 14 - clocks: clock for the device 18 - interrupts: interrupt generated by the BT interface. without an [all …]
|
H A D | ipmi-smic.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/ipmi/ipmi-smic.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: IPMI device 9 description: IPMI device bindings 12 - Corey Minyard <cminyard@mvista.com> 17 - ipmi-kcs 18 - ipmi-smic 19 - ipmi-bt [all …]
|
/openbmc/docs/architecture/ |
H A D | ipmi-architecture.md | 1 # IPMI Architecture 3 IPMI is made up of commands and channels. Commands are provided by providers and 6 command handlers via the main IPMI daemon. 8 ## High-Level Overview 10 IPMI is all about commands and responses. Channels provide a mechanism for 12 layer, but ultimately, the highest level data is a raw IPMI command consisting 15 and the IPMI queue. 18 /------------------\ 19 /----------------------------\ | | 20 | KCS/BT - Host | <-All IPMI cmds-> | | [all …]
|
/openbmc/linux/include/uapi/linux/ |
H A D | ipmi_msgdefs.h | 1 /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ 5 * MontaVista IPMI system management interface 18 /* Various definitions for IPMI messages used by almost everything in 19 the IPMI stack. */ 21 /* NetFNs and commands used inside the IPMI stack. */ 58 /* The BT interface on high-end HP systems supports up to 255 bytes in 62 * on the results of the "Get BT Capabilities" command. */ 74 #define IPMI_NOT_IN_MY_STATE_ERR 0xd5 /* IPMI 2.0 */
|
/openbmc/linux/Documentation/driver-api/ |
H A D | ipmi.rst | 2 The Linux IPMI Driver 7 The Intelligent Platform Management Interface, or IPMI, is a 12 standardized database for field-replaceable units (FRUs) and a watchdog 15 To use this, you need an interface to an IPMI controller in your 17 management software that can use the IPMI system. 19 This document describes how to use the IPMI driver for Linux. If you 20 are not familiar with IPMI itself, see the web site at 21 https://www.intel.com/design/servers/ipmi/index.htm. IPMI is a big 25 ------------- 27 The Linux IPMI driver is modular, which means you have to pick several [all …]
|
/openbmc/openbmc/meta-quanta/meta-q71l/conf/machine/ |
H A D | quanta-q71l.conf | 2 KERNEL_DEVICETREE = "aspeed/${KMACHINE}-bmc-${MACHINE}.dtb" 5 require conf/machine/include/obmc-bsp-common.inc 7 PREFERRED_PROVIDER_virtual/bootloader = "u-boot-aspeed" 8 PREFERRED_PROVIDER_u-boot = "u-boot-aspeed" 9 PREFERRED_PROVIDER_u-boot-fw-utils = "u-boot-fw-utils-aspeed" 19 # obmc-phosphor-fan-mgmt \ 20 # obmc-phosphor-chassis-mgmt \ 21 # obmc-phosphor-flash-mgmt \ 22 # obmc-host-ipmi \ 23 # obmc-host-state-mgmt \ [all …]
|
/openbmc/linux/Documentation/devicetree/bindings/arm/hisilicon/ |
H A D | low-pin-count.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/arm/hisilicon/low-pin-count.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Wei Xu <xuwei5@hisilicon.com> 21 pattern: '^isa@[0-9a-f]+$' 28 - hisilicon,hip06-lpc 29 - hisilicon,hip07-lpc 34 '#address-cells': 37 '#size-cells': [all …]
|
/openbmc/openbmc/meta-openpower/conf/machine/include/ |
H A D | openpower.inc | 2 obmc-phosphor-fan-mgmt \ 3 obmc-phosphor-chassis-mgmt \ 4 obmc-phosphor-flash-mgmt \ 5 obmc-host-ipmi \ 6 obmc-host-ctl \ 7 obmc-host-state-mgmt \ 8 obmc-chassis-state-mgmt \ 9 obmc-bmc-state-mgmt \ 13 VIRTUAL-RUNTIME_phosphor-ipmi-providers:append:df-openpower = " \ 14 openpower-ipmi-oem \ [all …]
|
/openbmc/qemu/docs/system/ppc/ |
H A D | powernv.rst | 4 PowerNV (as Non-Virtualized) is the "bare metal" platform using the 16 ----------------- 24 * Simple OCC is an on-chip micro-controller used for power management tasks. 30 --------------- 44 -------- 49 GitHub <https://github.com/open-power>`_. 52 `OpenPOWER <https://github.com/open-power/op-build/releases/>`__ site. 58 --------------------------- 60 KVM acceleration in Linux Power hosts is provided by the kvm-hv and 61 kvm-pr modules. kvm-hv is adherent to PAPR and it's not compliant with [all …]
|
/openbmc/phosphor-host-ipmid/docs/ |
H A D | oem-extension-numbering.md | 8 - Briefly recap OEM Extension layout as described in IPMI Specification. 9 - Enumerate Command codes allocated for use with the OpenBMC OEM Number. 10 - For each such code, describe the associated messages, including 16 [IPMI Specification](http://www.intel.com/content/www/us/en/servers/ipmi/ipmi-second-gen-interface-… 17 To keep it both simple and concrete, only BT Tansport is described. Please 22 Per section 11.1 of IPMI Spec 25 | :-----: | ---: | :------- | :---: | :---------------------------------------- | 26 | 0 | | Length\* | - | Number of bytes to follow in this request | 28 | 1 | 0:1 | LUN | - | Allow any LUN | 29 | 2 | | Seq\* | - | Per section 11.3 of IPMI Spec | [all …]
|
/openbmc/qemu/hw/misc/ |
H A D | aspeed_ibt.c | 4 * Copyright (c) 2016-2021 Cédric Le Goater, IBM Corporation. 7 * the COPYING file in the top-level directory. 16 #include "qemu/error-report.h" 18 #include "hw/qdev-properties.h" 19 #include "hw/qdev-properties-system.h" 57 * VM IPMI defines 83 * These routines are inspired by the 'ipmi-bmc-extern' model and by 92 for (; size > 0; size--, data++) { in ipmb_checksum() 122 n += snprintf(tmp + n, size - n, "%02x:", msg[i]); in aspeed_ibt_dump_msg() 124 tmp[size - 1] = 0; in aspeed_ibt_dump_msg() [all …]
|
/openbmc/docs/designs/ |
H A D | firmware-update-via-blobs.md | 1 # In-Band Update of BMC Firmware (and others) using OEM IPMI Blob Transport 5 Created: 2018-10-18 15 BMC hardware provides at a minimum some interface for sending and receiving IPMI 19 update mechanism that can be done in-band between the host and the BMC. 21 In-band here refers to a communications channel that is directly connected 25 1. IPMI over LPC 26 1. IPMI over i2c 27 1. LPC Memory-Mapped Region 32 Please read the IPMI BLOB protocol design as primer 33 [here](https://github.com/openbmc/phosphor-ipmi-blobs/blob/master/README.md). [all …]
|
/openbmc/docs/designs/mctp/ |
H A D | mctp.md | 8 BMC. This is primarily IPMI-based, but also includes a few hardware-specific 9 side-channels, like hiomap. On OpenPOWER hardware at least, we've definitely 10 started to hit some of the limitations of IPMI (for example, we have need 11 for >255 sensors), as well as the hardware channels that IPMI typically uses. 17 encountered with IPMI. 22 allows us to design these parts separately. Currently, IPMI defines both of 23 these; we currently have BT and KCS (both defined as part of the IPMI 2.0 24 standard) as the transports, and IPMI itself as the messaging protocol. 26 Some efforts of improving the hardware transport mechanism of IPMI have been 27 attempted, but not in a cross-implementation manner so far. This does not [all …]
|
/openbmc/openbmc/meta-phosphor/recipes-phosphor/ipmi/phosphor-ipmi-bt/ |
H A D | org.openbmc.HostIpmi.service | 2 Description=Phosphor IPMI BT DBus Bridge 12 WantedBy=multi-user.target
|