899bfd15 | 15-Apr-2020 |
Chalapathi <chalapathix.venkataramashetty@intel.com> |
OemCommands: Update biosObjPath to match Settings
Update biosObjPath to /xyz/openbmc_project/software/bios_active.
Tested: 1. Verified the BIOS version in Redfish with this change. Request: GET: ht
OemCommands: Update biosObjPath to match Settings
Update biosObjPath to /xyz/openbmc_project/software/bios_active.
Tested: 1. Verified the BIOS version in Redfish with this change. Request: GET: https://<BMC_IP>/redfish/v1/UpdateService/FirmwareInventory/ bios_active
Response: { "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/ bios_active", "@odata.type": "#SoftwareInventory.v1_1_0.SoftwareInventory", "Description": "Host image", "Id": "bios_active", "Members@odata.count": 1, "Name": "Software Inventory", "RelatedItem": [ { "@odata.id": "/redfish/v1/Systems/system/Bios" } ], "Status": { "Health": "OK", "HealthRollup": "OK", "State": "Enabled" }, "Updateable": false, "Version": "WLYDCRB1.SYS.0015.D33.2002210105" }
2. Get OEM Device info. Command: ipmitool raw 0x30 0x27 0x00 0xFF 0x00 Response: 20 57 4c 59 44 43 52 42 31 2e 53 59 53 2e 30 30 31 35 2e 44 33 33 2e 32 30 30 32 32 31 30 31 30 35 ASCII - WLYDCRB1.SYS.0015.D33.2002210105
Signed-off-by: Chalapathi <chalapathix.venkataramashetty@intel.com> Change-Id: I719f14b6b7679e4386ef449adfb3d4e65b16f30f
show more ...
|
a4cea1ae | 18-Mar-2020 |
Arun P. Mohanan <arun.p.m@linux.intel.com> |
Add CoreBiosDone signal support
Add support to monitor CoreBiosDone and filter IPMI commands accordingly. All IPMI commands will be allowed over system interface channels until CoreBiosDone or postC
Add CoreBiosDone signal support
Add support to monitor CoreBiosDone and filter IPMI commands accordingly. All IPMI commands will be allowed over system interface channels until CoreBiosDone or postCompleted signal is received.
Tested: 1. Verified no IPMI commands from system interface are getting filtered until CoreBiosDone or postCompleted signal is received. 2. Verified different channel restriction modes are working as expected after CoreBiosDone. 3. Verified the same by executing IPMI commands(having different channel privilages) over system interface under different restriction modes.
Signed-off-by: Arun P. Mohanan <arun.p.m@linux.intel.com> Change-Id: I9449b1e8b475f13af7175fe86b43ae50976a3b6b
show more ...
|
d2220ccd | 17-Apr-2020 |
Agnieszka Szlendak <agnieszka.szlendak@intel.com> |
Translating ME Health Sensor Platform Events to Redfish Events
Following code implements parsing logic for all ME Health Sensor Platform Events. It is built in similar manner to existing implementat
Translating ME Health Sensor Platform Events to Redfish Events
Following code implements parsing logic for all ME Health Sensor Platform Events. It is built in similar manner to existing implementation of BIOS SEL events parsing and follows the same principles: - try to parse event, store id and params as Redfish Event on success, - if event is unparsable - store raw IPMI frame as generic SEL event.
As there exists many events which would share exactly the same parsing logic, some higher level function (genericMessageHook) and some helper functions were introduced. Idea of this is that for events which are easily parsable (like mapping byte to concrete event) should be handled by metadata-driven algorithm. For more complex events ability to specify lower-level parser methods was introduced.
In general flow looks like the following: 1) event is recognized as originating from ME, me::messageHook is called 2) event comes from me::HealthSensor, health_event::messageHook is called 3) based on Platform Event offset byte either fw_status or smbus_failure event messageHook is called 4a) for smbus_failure : simple function called
.....
4b) for fw_status: map is used, deciding further processing based on event.eventData2 5) map[event.eventData2] contains : MessageId and instructions on further processing. It might be: a) empty - no extra processing, b) map - maps eventData3 to string value and adds it to MessageParams, b) function - specialized parsing routines for given eventData2.
Testing: - injected all possible events with busctl call (faking ME) - tested on actual platform with manually triggered events by actual ME
Signed-off-by: Agnieszka Szlendak <Agnieszka.Szlendak@intel.com> Change-Id: Ib13e4ace10b6382ea0800d34241e98a73b6626b3
show more ...
|
2b664d5a | 23-Mar-2020 |
Rajashekar Gade Reddy <raja.sekhar.reddy.gade@linux.intel.com> |
Add slot ipmb command
Added slot ipmb command which is used to send commands to add-in cards. BMC will act as a bridge and forwards the data to the add-in card and returns the response from the add-
Add slot ipmb command
Added slot ipmb command which is used to send commands to add-in cards. BMC will act as a bridge and forwards the data to the add-in card and returns the response from the add-in card.
Tested:
ipmitool raw 0x3e 0x51 <address_type> <slot_num> <slave_addr> <net_fun> <cmd> 00 //success
ipmitool raw 0x3e 0x51 <address_type> <invalid_slot_num> <slave_addr> <net_fun> <cmd> 0xce //Command response could not be provided
ipmitool raw 0x3e 0x51 <address_type> <slot_num> <invalid_slave_addr> <net_fun> <cmd> 0xce //Command response could not be provided
Tested the command from the shell using cmdtool via KCS interface and it works fine.
Signed-off-by: Rajashekar Gade Reddy <raja.sekhar.reddy.gade@linux.intel.com> Change-Id: Ic772e169569ee91328315a02633089d3894e1b0f
show more ...
|
abd11ca3 | 12-Jun-2019 |
NITIN SHARMA <nitin1x.sharma@intel.com> |
oemcommands: move GetLedStatus to new API
Rewrite "GetLedStatus" command to use the newly introduced IPMI provider API.
Tested: verified using ipmitool raw commands. Command: ipmitool raw 0x30 0xB0
oemcommands: move GetLedStatus to new API
Rewrite "GetLedStatus" command to use the newly introduced IPMI provider API.
Tested: verified using ipmitool raw commands. Command: ipmitool raw 0x30 0xB0 //get led status Response: 10
Signed-off-by: NITIN SHARMA <nitin1x.sharma@intel.com> Signed-off-by: jayaprakash Mutyala <mutyalax.jayaprakash@intel.com> Change-Id: I7dcdc794f03ed585c51331c3117a7828a3030690
show more ...
|
eaeb6cb0 | 09-Mar-2020 |
Yong Li <yong.b.li@linux.intel.com> |
Change CPLD clear cmos command register is changed to 0x61
New CPLD FW changed this register to 0x61
Tested: Run the below command in MFG mode, the system will restart and perform the clear CMOS ac
Change CPLD clear cmos command register is changed to 0x61
New CPLD FW changed this register to 0x61
Tested: Run the below command in MFG mode, the system will restart and perform the clear CMOS action: ipmitoo raw 0x32 0x91
Signed-off-by: Yong Li <yong.b.li@linux.intel.com> Change-Id: I859804a09f71d50bb4b7066497e195165f9b4f6e
show more ...
|
edbb4081 | 06-Mar-2020 |
Yong Li <yong.b.li@linux.intel.com> |
Enable sensitive ME commands in MFG mode
If the system is in manufacturing mode, do not block these commands.
Tested: In normal mode, command failed with 0xD4 ipmitool -H $BMCIP -U root -P 0penBmc
Enable sensitive ME commands in MFG mode
If the system is in manufacturing mode, do not block these commands.
Tested: In normal mode, command failed with 0xD4 ipmitool -H $BMCIP -U root -P 0penBmc -C 17 -I lanplus \ -t 0x2c -b 6 raw 0x2E 0x40 0x57 0x01 0x00 0 x30 0 0 Unable to send RAW command(channel=0x6 netfn=0x2e lun=0x0 cmd=0x40 rsp=0xd4) Insufficient privilege level
Change to MFG mode, the above command get proper response: 57 01 00
Signed-off-by: Yong Li <yong.b.li@linux.intel.com> Change-Id: I6b1d1f85a1258b24ba9734891e6a7085a23d6694
show more ...
|
32825a23 | 17-Jan-2020 |
AppaRao Puli <apparao.puli@linux.intel.com> |
Get ME version using functional association
Get ME version by checking the functional association endpoints. Firmware versions are now retrieved using identical methods.
Tested: Tested Get OEM Devi
Get ME version using functional association
Get ME version by checking the functional association endpoints. Firmware versions are now retrieved using identical methods.
Tested: Tested Get OEM Device info ipmi command and it works.
Change-Id: I6dda7fff52e1018e8cbd30718c5e1ab4ae2d3ed4 Signed-off-by: AppaRao Puli <apparao.puli@linux.intel.com>
show more ...
|
6c6cec48 | 26-Feb-2020 |
AppaRao Puli <apparao.puli@linux.intel.com> |
Move get bmc device state api to yield calls
Get BMC current state in getDeviceID IPMI command is using blocking D-Bus calls. Also every GetDeviceID is making 2 D-Bus calls which is overhead conside
Move get bmc device state api to yield calls
Get BMC current state in getDeviceID IPMI command is using blocking D-Bus calls. Also every GetDeviceID is making 2 D-Bus calls which is overhead considering number of GetDeviceID calls from client.
- Moved the blocking D-Bus calls to yield method calls. - Added signal for catching CurrentBMCState change during run time and update value instead of multiple D-Bus calls on every IPMI command request.
Tested: GetDeviceID works fine in both cases(BMC busy and ready).
Change-Id: Ie81192e6b2d7d66d5fe2a3eb705323c6bec79749 Signed-off-by: AppaRao Puli <apparao.puli@linux.intel.com>
show more ...
|
e99e7ed3 | 17-Jan-2020 |
AppaRao Puli <apparao.puli@linux.intel.com> |
Implement generic function to get active versions
Current logic to get the Active BMC firmware version is not synchronizing with bmcweb code. To get the active firmware version, we are using functio
Implement generic function to get active versions
Current logic to get the Active BMC firmware version is not synchronizing with bmcweb code. To get the active firmware version, we are using functional association endpoints. Endpoints will provide all the functional firmware objects and we retrive version information depending on given version purpose(component). This is the same logic followed in redfish and with change, both ipmi and redfish pulls version with same logic.
Tested: - Get device id command works fine. - Get OEM Device information commands works fine.
Change-Id: I16ac2c52a4fadbffdc8c870cd738683435d56b1f Signed-off-by: AppaRao Puli <apparao.puli@linux.intel.com>
show more ...
|
54a502ba | 06-Feb-2020 |
Vernon Mauery <vernon.mauery@linux.intel.com> |
Remove wildcard handlers
There is no need for wildcard handlers that simply print that they were called and then return.
Change-Id: I61716951a09a21f003f0211c92bb905c8f6f4619 Signed-off-by: Vernon M
Remove wildcard handlers
There is no need for wildcard handlers that simply print that they were called and then return.
Change-Id: I61716951a09a21f003f0211c92bb905c8f6f4619 Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
show more ...
|
9210838e | 27-Feb-2020 |
srikanta mondal <srikantax.mondal@intel.com> |
Correct completion code for read FRU data command
Returning proper completion code when inventory offset value exceeding fru cache size
Tested: Before: Command: ipmitool raw 0x0a 0x11 0x00 0x00 0x3
Correct completion code for read FRU data command
Returning proper completion code when inventory offset value exceeding fru cache size
Tested: Before: Command: ipmitool raw 0x0a 0x11 0x00 0x00 0x30 0x08 //Read fru data Response: Unable to send RAW command (channel=0x0 netfn=0xa lun=0x0 cmd=0x11 rsp=0xcc): Invalid data field in request After: Command: ipmitool raw 0x0a 0x11 0x00 0x00 0x30 0x08 Response: Unable to send RAW command (channel=0x0 netfn=0xa lun=0x0 cmd=0x11 rsp=0xc8): Request data field length limit exceeded
Signed-off-by: srikanta mondal <srikantax.mondal@intel.com> Change-Id: If1f106daf3ae23eb5ffc5d15c30ab099986b4793
show more ...
|
4b1552d8 | 11-Feb-2020 |
jayaprakash Mutyala <mutyalax.jayaprakash@intel.com> |
oemcommands: fan control profile correction
Corrected default fan control profile for get fan control configuration
Tested: Validate using below raw command. Command: ipmitool raw 0x30 0x8a 0x00 Re
oemcommands: fan control profile correction
Corrected default fan control profile for get fan control configuration
Tested: Validate using below raw command. Command: ipmitool raw 0x30 0x8a 0x00 Response: 80 00 04 00 00 00 00
Signed-off-by: jayaprakash Mutyala <mutyalax.jayaprakash@intel.com> Change-Id: I240626160a1fd71c3907fe5db9335b0d19b8248d
show more ...
|
849c319f | 12-Feb-2020 |
arun-pm <arun.p.m@linux.intel.com> |
Adding KCS-SMM channel restriction
Added support to filter the SMM commands as per the updated whitelist conf.
Tested: When RestrictionMode is Provisioning Executed a blocked command on SMM and S
Adding KCS-SMM channel restriction
Added support to filter the SMM commands as per the updated whitelist conf.
Tested: When RestrictionMode is Provisioning Executed a blocked command on SMM and SystemInterface(Success). When RestrictionMode is ProvisionedHostWhitelist Verified following condition over SMM channel 1) Executed a command whitlisted on SMM channel(Success). 2) Executed a command blocked on SMM channel(Denied with CC D5). Verified following condition over SystemInterface 3) Executed a command whitlisted on SystemInterface(Success). 4) Executed a command blocked on SystemInterface(Denied with CC D5). When RestrictionMode is ProvisionedHostDisabled Executed an allowed command on both SMM and SystemInterface (Denied with CC D5).
Change-Id: If99fd90ea9faf1d3440d10ecfc385ab3c907c736 Signed-off-by: Arun P. Mohanan <arun.p.m@linux.intel.com>
show more ...
|
619186db | 27-Jan-2020 |
Joshi-Mansi <mansi.joshi@linux.intel.com> |
oemcommand: Issue with set fan control config cmd
Issue: Set fan control configuration command (89h) did not have last few optional bytes i.e. DIMM Group Id (CPU Num) and DIMM presence bit-map so it
oemcommand: Issue with set fan control config cmd
Issue: Set fan control configuration command (89h) did not have last few optional bytes i.e. DIMM Group Id (CPU Num) and DIMM presence bit-map so it was giving error "Request data lenght invalid //0xC7" while passing these parameters
Fix: Added these bytes as optional and added checks for CPU Presence.
Tested: ipmitool raw 0x30 0x89 0x07 0xc0 0x00 0x00 0x00 0x00 0x00 //Success
ipmitool raw 0x30 0x89 0x07 0xc0 //Success
ipmitool raw 0x30 0x89 0x07 0xc0 0x01 ////0xCC - CPU_2 is not present Unable to send RAW command (channel=0x0 netfn=0x30 lun=0x0 cmd=0x8a rsp=0xcc): Invalid data field in request
Signed-off-by: Joshi-Mansi <mansi.joshi@linux.intel.com> Change-Id: I0b8d27e4ad5ba2c54a1074054ca1da8587f0295e
show more ...
|
e319ecf5 | 10-Feb-2020 |
Terry S. Duncan <terry.s.duncan@linux.intel.com> |
Allow Get Execution Context to run in early boot
BIOS needs execution context before the DBUS resource is available for the partition pointer. In this early boot stage, BIOS does not care about part
Allow Get Execution Context to run in early boot
BIOS needs execution context before the DBUS resource is available for the partition pointer. In this early boot stage, BIOS does not care about partition pointer so return success with an undefined partition pointer when not ready.
Change-Id: Idcf30682aea3de2f5cdfcb4dce2ab41a574b4483 Signed-off-by: Terry S. Duncan <terry.s.duncan@linux.intel.com>
show more ...
|
0d0cd16e | 31-Jan-2020 |
Vernon Mauery <vernon.mauery@linux.intel.com> |
Create an OEM Intel IPMI whitelist filter
This is a derivative of the upstream whitelist filter that also tracks the host state as part of the filtering information.
In addition, the filter underst
Create an OEM Intel IPMI whitelist filter
This is a derivative of the upstream whitelist filter that also tracks the host state as part of the filtering information.
In addition, the filter understands per-channel filtering, so a command can be filtered out on a per-channel basis.
Tested: With the upstream filter disabled, and this filter enabled, run several checks: 1) execute a command prior to host POST completete over kcs (OK) 2) execute a command after host POST complete (denied) 3) execute a command filtered on a lan interface 4) execute a command whitelisted on a lan interface
Change-Id: I9b6755f4bf2c9b9e30de0289f1fed68b3709dea0 Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
show more ...
|
963a95b6 | 27-Jan-2020 |
Rashmi RV <rashmi.r.v@linux.intel.com> |
Corrected threshold readingmasks for Type01sensors
Issue: The upper and lower threshold reading mask(Byte 16,18) in SDR Type01 sensors are not set under any conditions.
Fix: Setting the threshold m
Corrected threshold readingmasks for Type01sensors
Issue: The upper and lower threshold reading mask(Byte 16,18) in SDR Type01 sensors are not set under any conditions.
Fix: Setting the threshold mask based on its respective threshold conditions.
Tested: 1.Issue Get SDR command for [u,l][c,nc] sensors. 2.Check theresponse for the bits 5,4 of Byte 16 and 18 (lower and upper) are set correctly for respective sensors.
Signed-off-by: Rashmi RV <rashmi.r.v@linux.intel.com> Change-Id: I119560b937bf24c0173acb72cb95aa56d3311314
show more ...
|
b8f2bf95 | 27-Jan-2020 |
jayaprakash Mutyala <mutyalax.jayaprakash@intel.com> |
firmware-update: Fix for firmware update status
Issue: Get firmware update status shows as 95% instead 100%
Fix: Provided fix to show correct status of firmware update status
Tested: 1. Updated BM
firmware-update: Fix for firmware update status
Issue: Get firmware update status shows as 95% instead 100%
Fix: Provided fix to show correct status of firmware update status
Tested: 1. Updated BMC firmware using fwpiaupd.efi utility >fwpiaupd.efi -ni -u -o -b -pia <Binary file> 2. Get firmware update status Command: ipmitool raw 0x08 0x2a Response: 03 64 00
Signed-off-by: jayaprakash Mutyala <mutyalax.jayaprakash@intel.com> Change-Id: I7376c924cc3dc09169d001e358fb0bba69fa6ab7
show more ...
|
d46cb42b | 21-Jan-2020 |
AppaRao Puli <apparao.puli@linux.intel.com> |
Fix minor issues in Get OEM Device Info
Minor fixes in get OEM device information command - As per spec, Byte 2 and Byte 3 are valid only if Byte 1 is selected as BIOS. So corrected the code
Fix minor issues in Get OEM Device Info
Minor fixes in get OEM device information command - As per spec, Byte 2 and Byte 3 are valid only if Byte 1 is selected as BIOS. So corrected the code to make Byte 2 and Byte 3 as optional and checking as per spec. - Corrected the ME object path which is resulting in command failure.
Tested: Get OEM device information command works fine for all BIOS, Management controller and SDR as specified in spec.
Change-Id: If5a5edbaf0464b7253fba2ef9fa0595878c12062 Signed-off-by: AppaRao Puli <apparao.puli@linux.intel.com>
show more ...
|
e2cddf68 | 30-Jan-2020 |
AppaRao Puli <apparao.puli@linux.intel.com> |
PFR build error fix
PFR build is failing due to unavailability of checkIPMBChannel() function. This wasn't exposed earlier due to PFR compile flag. Moved checkIPMBChannel() function to top.
Tested:
PFR build error fix
PFR build is failing due to unavailability of checkIPMBChannel() function. This wasn't exposed earlier due to PFR compile flag. Moved checkIPMBChannel() function to top.
Tested: PFR build successful
Change-Id: I02a353e2b059a6e62b350c5872c23ec489f5696d Signed-off-by: AppaRao Puli <apparao.puli@linux.intel.com>
show more ...
|
5b1988b1 | 18-Dec-2019 |
Rajashekar Gade Reddy <raja.sekhar.reddy.gade@linux.intel.com> |
Blocking firmware update via IPMB
Updated few firmware update commands to return command not available when they are executed via ipmb
Tested:
Tested the commands using FTF tool(which uses IPMB as
Blocking firmware update via IPMB
Updated few firmware update commands to return command not available when they are executed via ipmb
Tested:
Tested the commands using FTF tool(which uses IPMB as the medium) returns proper error code 0xD5(command not available).
Tested the commands from uefi, BMC terminal and remote commands are working fine.
Firmware update using fwupdapi.efi is working fine.
Signed-off-by: Rajashekar Gade Reddy <raja.sekhar.reddy.gade@linux.intel.com> Change-Id: Ibaaf1f6a82567b1f3e7d6c9681e74b8c544a9c51
show more ...
|
c59391ff | 19-Nov-2019 |
Peter Lundgren <peterlundgren@google.com> |
Support the MultiRecord section in FRUs
Add support for FRUs containing a MultiRecord section to ipmiStorageWriteFruData().
Before this patch, the presence of a MultiRecord section was ignored. las
Support the MultiRecord section in FRUs
Add support for FRUs containing a MultiRecord section to ipmiStorageWriteFruData().
Before this patch, the presence of a MultiRecord section was ignored. lastRecordStart would point to the last section populated before the MultiRecord section (e.g. the Product section).
Now, if there is a MultiRecord section, walk the MultiRecord headers to find the last one and set lastRecordStart appropriately.
Tested: I have a system with an eeprom containing a MultiRecord section with two records. Writes to that FRU work after this change. Signed-off-by: Peter Lundgren <peterlundgren@google.com> Change-Id: Iea269ad386b1cbc7b4876ddeb9cfac3b9e83f541
show more ...
|
fee5e4c7 | 17-Jan-2020 |
Yong Li <yong.b.li@linux.intel.com> |
Add NM discovery SDR support
NM discovery is an Intel OEM SDR, it is used by external SW to check the NM functionality
Tested: ipmitool sdr dump sdr.bin The new added sdr is included at the end of
Add NM discovery SDR support
NM discovery is an Intel OEM SDR, it is used by external SW to check the NM functionality
Tested: ipmitool sdr dump sdr.bin The new added sdr is included at the end of the .bin file: 51 c0 0b 57 01 00 0d 01 2c 60 19 18 1a 1b
Signed-off-by: Yong Li <yong.b.li@linux.intel.com> Change-Id: I2b7e8059908791dcc6853be5ba2b9e22210eb736
show more ...
|
36f05ce6 | 14-Jan-2020 |
Joshi-Mansi <mansi.joshi@linux.intel.com> |
Fix for get fan control configuration command CC
Issue: Get Fan Control Configuration (8Ah) command returns response for DIMM Group ID (CPU Number) when CPU is not present. It should return error re
Fix for get fan control configuration command CC
Issue: Get Fan Control Configuration (8Ah) command returns response for DIMM Group ID (CPU Number) when CPU is not present. It should return error response code.
Fix: Added checks for CPUPresent w.r.t. dimmGroupId.
Tested: ipmitool raw 0x30 0x8a 0 //Success - CPU_1 present
ipmitool raw 0x30 0x8a 1 //0xCC - CPU_2 is not present Unable to send RAW command (channel=0x0 netfn=0x30 lun=0x0 cmd=0x8a rsp=0xcc): Invalid data field in request
Signed-off-by: Joshi-Mansi <mansi.joshi@linux.intel.com> Change-Id: Ic68bbd6d175b0e803e10af3d759590c0b44ac72f
show more ...
|