/openbmc/linux/drivers/char/ipmi/ |
H A D | ipmi_kcs_sm.c | 5 * State machine for handling IPMI KCS interfaces. 43 /* The states the KCS driver may be in. */ 45 /* The KCS interface is currently doing nothing. */ 125 static unsigned int init_kcs_data_with_state(struct si_sm_data *kcs, in init_kcs_data_with_state() argument 128 kcs->state = state; in init_kcs_data_with_state() 129 kcs->io = io; in init_kcs_data_with_state() 130 kcs->write_pos = 0; in init_kcs_data_with_state() 131 kcs->write_count = 0; in init_kcs_data_with_state() 132 kcs->orig_write_count = 0; in init_kcs_data_with_state() 133 kcs->read_pos = 0; in init_kcs_data_with_state() [all …]
|
H A D | Kconfig | 66 Provides a driver for System Interfaces (KCS, SMIC, BT). 67 Currently, only KCS and SMIC are supported. If 113 tristate "Aspeed KCS IPMI BMC driver" 115 Provides a driver for the KCS (Keyboard Controller Style) IPMI 118 The driver implements the BMC side of the KCS contorller, it 119 provides the access of KCS IO space for BMC side. 125 tristate "NPCM KCS IPMI BMC driver" 127 Provides a driver for the KCS (Keyboard Controller Style) IPMI 130 The driver implements the BMC side of the KCS contorller, it 131 provides the access of KCS IO space for BMC side. [all …]
|
H A D | kcs_bmc_npcm7xx.c | 7 #define pr_fmt(fmt) "nuvoton-kcs-bmc: " fmt 22 #define DEVICE_NAME "npcm-kcs-bmc" 50 * 7.2.4 Core KCS Registers 54 * sts: KCS Channel n Status Register (KCSnST). 55 * dob: KCS Channel n Data Out Buffer Register (KCSnDO). 56 * dib: KCS Channel n Data In Buffer Register (KCSnDI). 57 * ctl: KCS Channel n Control Register (KCSnCTL). 58 * ie : KCS Channel n Interrupt Enable Register (KCSnIE). 235 { .compatible = "nuvoton,npcm750-kcs-bmc" }, 253 MODULE_DESCRIPTION("NPCM7xx device interface to the KCS BMC device");
|
H A D | kcs_bmc.c | 120 dev_err(kcs_bmc->dev, "Failed to add chardev for KCS channel %d: %d", in kcs_bmc_add_device() 140 dev_err(kcs_bmc->dev, "Failed to remove chardev for KCS channel %d: %d", in kcs_bmc_remove_device() 157 dev_err(kcs_bmc->dev, "Failed to add driver for KCS channel %d: %d", in kcs_bmc_register_driver() 174 dev_err(kcs_bmc->dev, "Failed to remove driver for KCS channel %d: %d", in kcs_bmc_unregister_driver() 190 MODULE_DESCRIPTION("KCS BMC to handle the IPMI request from system software");
|
H A D | kcs_bmc_cdev_ipmi.c | 6 #define pr_fmt(fmt) "kcs-bmc: " fmt 22 /* Different phases of the KCS BMC module. 60 /* IPMI 2.0 - Table 9-4, KCS Interface Status Codes */ 94 #define DEVICE_NAME "ipmi-kcs" 100 /* IPMI 2.0 - Table 9-1, KCS Interface Status Register Bits */ 108 /* IPMI 2.0 - Table 9-2, KCS Interface State Bits */ 116 /* IPMI 2.0 - Table 9-3, KCS Interface Control Codes */ 568 MODULE_DESCRIPTION("KCS BMC to handle the IPMI request from system software");
|
/openbmc/libmctp/tests/ |
H A D | test_astlpc.c | 41 uint8_t (*kcs)[2]; member 56 uint8_t kcs[2]; member 72 *val = (*mmio->kcs)[reg]; in mctp_astlpc_mmio_kcs_read() 79 (*mmio->kcs)[MCTP_ASTLPC_KCS_REG_STATUS] &= ~flag; in mctp_astlpc_mmio_kcs_read() 97 (*mmio->kcs)[MCTP_ASTLPC_KCS_REG_STATUS] |= flag; in mctp_astlpc_mmio_kcs_write() 100 regp = &(*mmio->kcs)[reg]; in mctp_astlpc_mmio_kcs_write() 172 uint8_t mode, uint32_t mtu, uint8_t (*kcs)[2], in endpoint_init() 176 * Configure the direction of the KCS interface so we know whether to in endpoint_init() 184 /* Inject KCS registers */ in endpoint_init() 185 ep->mmio.kcs = kcs; in endpoint_init() [all …]
|
/openbmc/qemu/hw/ipmi/ |
H A D | isa_ipmi_kcs.c | 2 * QEMU ISA IPMI KCS emulation 36 #define TYPE_ISA_IPMI_KCS "isa-ipmi-kcs" 43 IPMIKCS kcs; member 51 ipmi_kcs_get_fwinfo(&iik->kcs, info); in isa_ipmi_kcs_get_fwinfo() 80 VMSTATE_VSTRUCT_TEST(kcs, ISAIPMIKCSDevice, vmstate_kcs_before_version2, 82 VMSTATE_VSTRUCT_V(kcs, ISAIPMIKCSDevice, 2, vmstate_IPMIKCS, 96 if (!iik->kcs.bmc) { in ipmi_isa_realize() 103 iik->kcs.bmc->intf = ii; in ipmi_isa_realize() 104 iik->kcs.opaque = iik; in ipmi_isa_realize() 114 iik->kcs.use_irq = 1; in ipmi_isa_realize() [all …]
|
H A D | pci_ipmi_kcs.c | 2 * QEMU PCI IPMI KCS emulation 31 #define TYPE_PCI_IPMI_KCS "pci-ipmi-kcs" 36 IPMIKCS kcs; member 62 if (!pik->kcs.bmc) { in pci_ipmi_kcs_realize() 69 pik->kcs.bmc->intf = ii; in pci_ipmi_kcs_realize() 70 pik->kcs.opaque = pik; in pci_ipmi_kcs_realize() 72 pci_config_set_prog_interface(pd->config, 0x01); /* KCS */ in pci_ipmi_kcs_realize() 74 pik->kcs.use_irq = 1; in pci_ipmi_kcs_realize() 75 pik->kcs.raise_irq = pci_ipmi_raise_irq; in pci_ipmi_kcs_realize() 76 pik->kcs.lower_irq = pci_ipmi_lower_irq; in pci_ipmi_kcs_realize() [all …]
|
/openbmc/linux/Documentation/devicetree/bindings/ipmi/ |
H A D | aspeed,ast2400-kcs-bmc.yaml | 4 $id: http://devicetree.org/schemas/ipmi/aspeed,ast2400-kcs-bmc.yaml# 7 title: ASPEED BMC KCS Devices 13 The Aspeed BMC SoCs typically use the Keyboard-Controller-Style (KCS) 22 - aspeed,ast2400-kcs-bmc-v2 23 - aspeed,ast2500-kcs-bmc-v2 24 - aspeed,ast2600-kcs-bmc 30 - aspeed,ast2400-kcs-bmc 31 - aspeed,ast2500-kcs-bmc 86 - aspeed,ast2400-kcs-bmc 87 - aspeed,ast2500-kcs-bmc [all …]
|
H A D | npcm7xx-kcs-bmc.txt | 1 * Nuvoton NPCM KCS (Keyboard Controller Style) IPMI interface 4 (Baseboard Management Controllers) and the KCS interface can be 9 "nuvoton,npcm750-kcs-bmc" 10 "nuvoton,npcm845-kcs-bmc", "nuvoton,npcm750-kcs-bmc" 12 - kcs_chan : The KCS channel number in the controller 17 compatible = "nuvoton,npcm750-lpc-kcs", "simple-mfd", "syscon"; 26 compatible = "nuvoton,npcm750-kcs-bmc"; 34 compatible = "nuvoton,npcm750-kcs-bmc";
|
/openbmc/openbmc/meta-google/recipes-google/bare-metal-ipmi-kcs/ |
H A D | bare-metal-ipmi-kcs.bb | 1 SUMMARY = "Disable ipmi kcs while in Guest Os" 2 DESCRIPTION = "Disable ipmi kcs while an untrusted host OS is running" 11 file://disable-ipmi-kcs.service.in \ 22 disable-ipmi-kcs.service \ 25 # This should be aligned with the phosphor-ipmi-kcs and override per platform 30 sed ${UNPACKDIR}/disable-ipmi-kcs.service.in \ 32 > ${UNPACKDIR}/disable-ipmi-kcs.service 35 install -m 0644 ${UNPACKDIR}/disable-ipmi-kcs.service ${D}${systemd_system_unitdir}
|
/openbmc/openbmc-test-automation/ipmi/ |
H A D | test_ipmi_kcs.robot | 3 Documentation To Verify KCS interface. 21 Verify KCS interface 22 [Documentation] Verify KCS interface. 25 Verify KCS Interface Commands 28 Verify KCS Raw IPMI Multiple Times 29 [Documentation] Verify KCS interface raw ipmi command for multiple times. 32 Repeat Keyword ${LOOP_COUNT} times Verify KCS Interface Commands
|
/openbmc/kcsbridge/src/ |
H A D | server.cpp | 17 void setAttention(sdbusplus::message_t& m, stdplus::Fd& kcs) in setAttention() argument 19 stdplus::fd::ioctl(kcs, IPMI_BMC_IOCTL_SET_SMS_ATN, nullptr); in setAttention() 23 void clearAttention(sdbusplus::message_t& m, stdplus::Fd& kcs) in clearAttention() argument 25 stdplus::fd::ioctl(kcs, IPMI_BMC_IOCTL_CLEAR_SMS_ATN, nullptr); in clearAttention() 29 void forceAbort(sdbusplus::message_t& m, stdplus::Fd& kcs) in forceAbort() argument 31 stdplus::fd::ioctl(kcs, IPMI_BMC_IOCTL_FORCE_ABORT, nullptr); in forceAbort() 66 sdbusplus::bus_t& bus, const char* obj, stdplus::Fd& kcs) in createSMSHandler() argument 70 dbusMethods<stdplus::Fd>, reinterpret_cast<stdplus::Fd*>(&kcs)); in createSMSHandler()
|
H A D | cmd.cpp | 29 void write(stdplus::Fd& kcs, message_t&& m) in write() argument 45 // Based on the IPMI KCS spec Figure 9-2 in write() 46 // netfn needs to be changed to odd in KCS responses in write() 65 stdplus::fd::writeExact(kcs, out); in write() 68 void read(stdplus::Fd& kcs, bus_t& bus, slot_t& outstanding) in read() argument 71 auto in = stdplus::fd::read(kcs, buffer); in read() 90 // Based on the IPMI KCS spec Figure 9-1 in read() 94 stdplus::exception::ignore([&outstanding, &kcs](message_t&& m) { in read() 96 write(kcs, std::move(m)); in read()
|
H A D | main.cpp | 49 // Open an FD for the KCS channel in execute() 50 stdplus::ManagedFd kcs = stdplus::fd::open( in execute() local 57 event, kcs.get(), EPOLLIN | EPOLLET, in execute() 58 stdplus::exception::ignore([&kcs, &bus, &slot](IO&, int, uint32_t) { in execute() 59 read(kcs, bus, slot); in execute() 67 auto intf = createSMSHandler(bus, obj.c_str(), kcs); in execute()
|
/openbmc/libmctp/docs/bindings/ |
H A D | vendor-ibm-astlpc.md | 33 A hardware-defined flag bit in a KCS device's Status Register (STR). The IBF 39 One of the three register interfaces exposed by a KCS device. The IDR is a one 42 ### KCS: Keyboard-Controller-Style 49 microcontrollers. Data is transferred across the KCS interface using a per-byte 72 A hardware-defined flag bit in a KCS device's Status Register (STR). The OBF 78 One of the three register interfaces exposed by a KCS device. The ODR is a one 83 One of the three register interfaces exposed by a KCS device. STR is a 100 - An interrupt mechanism using the IPMI KCS interface 110 2. Trigger an interrupt on the remote side, by writing to the KCS data buffer 114 1. Read from the KCS status register, which shows that the single-byte KCS data [all …]
|
/openbmc/linux/Documentation/ABI/testing/ |
H A D | dev-raw-kcs | 1 What: /dev/raw-kcs* 7 Description: ``/dev/raw-kcs*`` exposes to userspace the data and 8 status registers of Keyboard-Controller-Style (KCS) IPMI 12 over the device. A typical approach is to use KCS
|
/openbmc/openbmc/meta-google/recipes-google/bare-metal-ipmi-kcs/bare-metal-ipmi-kcs/ |
H A D | disable-ipmi-kcs.service.in | 2 Description=Disable ipmi kcs 9 ExecStart=/bin/sh -c 'systemctl stop phosphor-ipmi-kcs@@KCS_DEV@' 10 ExecStop=/bin/sh -c 'systemctl start phosphor-ipmi-kcs@@KCS_DEV@'
|
/openbmc/linux/drivers/s390/crypto/ |
H A D | pkey_api.c | 1362 struct pkey_clr2seck kcs; in pkey_unlocked_ioctl() local 1364 if (copy_from_user(&kcs, ucs, sizeof(kcs))) in pkey_unlocked_ioctl() 1366 rc = cca_clr2seckey(kcs.cardnr, kcs.domain, kcs.keytype, in pkey_unlocked_ioctl() 1367 kcs.clrkey.clrkey, kcs.seckey.seckey); in pkey_unlocked_ioctl() 1369 if (!rc && copy_to_user(ucs, &kcs, sizeof(kcs))) in pkey_unlocked_ioctl() 1371 memzero_explicit(&kcs, sizeof(kcs)); in pkey_unlocked_ioctl() 1547 struct pkey_clr2seck2 kcs; in pkey_unlocked_ioctl() local 1551 if (copy_from_user(&kcs, ucs, sizeof(kcs))) in pkey_unlocked_ioctl() 1553 apqns = _copy_apqns_from_user(kcs.apqns, kcs.apqn_entries); in pkey_unlocked_ioctl() 1555 memzero_explicit(&kcs, sizeof(kcs)); in pkey_unlocked_ioctl() [all …]
|
/openbmc/linux/fs/proc/ |
H A D | uptime.c | 22 struct kernel_cpustat kcs; in uptime_proc_show() local 24 kcpustat_cpu_fetch(&kcs, i); in uptime_proc_show() 25 idle_nsec += get_idle_time(&kcs, i); in uptime_proc_show()
|
/openbmc/openbmc-test-automation/lib/ |
H A D | ipmi_utils.robot | 3 Documentation Keywords for KCS and Lanplus interface command. 14 Verify KCS Interface Commands 15 [Documentation] Execute set of IPMI raw KCS interface commands and verify it is 27 ## Waiting time to get KCS interface enabled.
|
/openbmc/docs/designs/ |
H A D | bmc-service-failure-debug-and-recovery.md | 256 4. A KCS device for a vendor-defined MCTP LPC binding 263 3. An otherwise unused KCS device 277 This draws us towards the use of a KCS device, which is best aligned with the 278 simple need of generating an IRQ on the BMC. AST2600 has at least 4 KCS devices 307 #### A Idealised KCS-based Protocol for Power10 Platforms 354 The host must be prepared to handle LPC SYNC errors when accessing the KCS 356 that the KCS device will remain available during BMC resets. 366 The layout of the KCS Status Register (STR) is as follows: 379 #### A Real-World Implementation of the KCS Protocol for Power10 Platforms 405 https://github.com/amboar/linux/compare/2dbb5aeba6e55e2a97e150f8371ffc1cc4d18180...for/openbmc/kcs-… [all …]
|
/openbmc/debug-trigger/udev/rules.d/ |
H A D | debug-trigger-kcs1.rules | 1 ACTION=="add", DEVPATH=="*/1e789024.kcs/*", SUBSYSTEM=="serio", RUN{program}+="/bin/sh -c 'echo -n … 2 ACTION=="add", DEVPATH=="*/1e789024.kcs/*", SUBSYSTEMS=="serio", SUBSYSTEM=="misc", TAG+="systemd",…
|
H A D | debug-trigger-kcs2.rules | 1 ACTION=="add", DEVPATH=="*/1e789028.kcs/*", SUBSYSTEM=="serio", RUN{program}+="/bin/sh -c 'echo -n … 2 ACTION=="add", DEVPATH=="*/1e789028.kcs/*", SUBSYSTEMS=="serio", SUBSYSTEM=="misc", TAG+="systemd",…
|
H A D | debug-trigger-kcs4.rules | 1 ACTION=="add", DEVPATH=="*/1e789114.kcs/*", SUBSYSTEM=="serio", RUN{program}+="/bin/sh -c 'echo -n … 2 ACTION=="add", DEVPATH=="*/1e789114.kcs/*", SUBSYSTEMS=="serio", SUBSYSTEM=="misc", TAG+="systemd",…
|