summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Seek to file offset 0 after reading error fileVishwanatha Subbanna2017-09-021-1/+14
| | | | | | | | | | | | | | | | For a fd watching for data in sysfs file, a poll would return immediately after read unless file is closed and re-opened OR stream is seeked to 0. This commit chooses latter. From stackoverflow: Once poll/select indicates that the value has changed, you need to close and re-open the file, or seek to 0 and read again. Also, use EPOLLPRI | EPOLLERR than EPOLLIN as needed by sysfs_inotify Change-Id: I243cdfd9a09c567eac5e52abd9980ebf90b94f89 Signed-off-by: Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com>
* Change signature of getServiceVishwanatha Subbanna2017-09-012-5/+5
| | | | | | | | | | | | | getService() has [bus, interface, path] as parameter and the caller invoked it with [bus, path, interface] and that resulted in a failure. Although the fix can be put into the caller to pass the right arguments, better fix would be to change the signature of getService() to receive path and then the interface as that is what has been followed all over and the deviation resulted in this bug. Change-Id: I3efe7f4f0a2d0bceb7e6e801cd68de6b2624fbe0 Signed-off-by: Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com>
* Add unit tests for utils and refactor MakefilesLei YU2017-08-284-28/+196
| | | | | | | | | | | 1. Add unit tests for utils; 2. Put the common code shared by app and utest into a library, and link the library to app and utest. This eliminates the duplicated compiled objects. 3. Update .gitignore Change-Id: I05ee93c2b23748a1e038eeec3534d49b94911366 Signed-off-by: Lei YU <mine260309@gmail.com>
* Add I2C OCC support for P8 systemsLei YU2017-08-288-4/+211
| | | | | | | | | | | | | | P8 system uses I2C OCC and it uses different driver for occ-hwmon. Add `--enable-i2c-occ` configure option to enable the support. It searches i2c device names in sysfs to get all occ-hwmon devices and use the i2c device name to bind/unbind the driver. The occ control object path for I2C OCC hwmon becomes something like /org/open_power/control/3_0050, where 3_0050 is the i2c address. Change-Id: I8b9d8d4429c563528dc88fb2679b265c53d7a2d5 Signed-off-by: Lei YU <mine260309@gmail.com>
* Only consider CPUs that are Present and FunctionalVishwanatha Subbanna2017-08-233-9/+123
| | | | | | | | | | | | | | | OCC control application looks at CPU inventory and creates D-Bus objects. In some of the cases, hostboot marks the CPU as Not Present but also marks Functional and this results in creating an OCC object for the CPU which is not present. Need to filter CPUs based on Present and Functional properties to address the issue and this commit adds that support. Fixes openbmc/openbmc#2024 Change-Id: I58a06bfd09131bc3deba8f132547095c53bde5e1 Signed-off-by: Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com>
* Remove creating sdbusplus handler in occ_finderVishwanatha Subbanna2017-08-233-4/+6
| | | | | | | | | | occ finder was creating a separate sdbusplus handler to access the Inventory instead of using the one which is already available. This commit will enforce using the bus which is already created. Change-Id: Ic256f185b67c661ba551139d5e057eee3ac67c7e Signed-off-by: Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com>
* Enable OCC error monitoringVishwanatha Subbanna2017-08-235-25/+118
| | | | | | | Fixes openbmc/openbmc#2165 Change-Id: I93f317a32c910f279003fa0fce6ae2d597f90312 Signed-off-by: Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com>
* Reset hub scan variable when OCC goes inactiveAndrew Geissler2017-08-161-0/+3
| | | | | | | | | | Need to re-scan the second processors hub chip on every boot of the system Resolves openbmc/openbmc#2161 Change-Id: I089140333462d83f66a0ad207fecb679cba79210 Signed-off-by: Andrew Geissler <andrewg@us.ibm.com>
* Delay opening OCC device until bindVishwanatha Subbanna2017-08-113-18/+80
| | | | | | | Fixes openbmc/openbmc#2118 Change-Id: If9e2610fe7443daa2196b0e5989f81bc544266b2 Signed-off-by: Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com>
* Call Hub FSI scan service prior to doing OCC bindVishwanatha Subbanna2017-08-113-2/+41
| | | | | | | | | | This is needed to make sure that the /dev/occ files are created that are needed to communicate with OCC device. Also, calling to this service is needed only when the first call to do OCC bind is received. Change-Id: I40466b8b74753b2f2366be385a8b066e912b32e4 Signed-off-by: Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com>
* Reset OCC on error conditionVishwanatha Subbanna2017-08-026-3/+182
| | | | | | | | | | After detecting the error in the OCC, invokes OccReset command in Host Control dbus object with the sensor ID of the failing OCC Fixes openbmc/openbmc#1363 Change-Id: I608dbbb943d3b39d0709d6f350ab799e771a13e9 Signed-off-by: Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com>
* Use generated occ to sensor ID mapVishwanatha Subbanna2017-08-027-2/+108
| | | | | Change-Id: I948cc33ef05c2c49353277f4d5df958012a9801f Signed-off-by: Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com>
* Reconstruct OCC objects on app restartDeepak Kodihalli2017-08-015-18/+151
| | | | | | | | | | | | | The OCC objects would get created when corresponding CPU inventory items get added. This doesn't cover a scenario where the OCC app restarts. If the CPU inventory is already present when the app starts, construct OCC objects as well. Resolves openbmc/openbmc#1824. Change-Id: I4994d93ba6f528ca67977604ccb1da717563092a Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
* Add support to watch for OCC errorsVishwanatha Subbanna2017-07-2917-816/+987
| | | | | Change-Id: I98d95020a2d01e281e5c8efa825d6b4bd4c6c160 Signed-off-by: Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com>
* Fix master occ name in openpower-occ-controlAndrew Geissler2017-07-211-1/+1
| | | | | | | Resolves openbmc/openbmc#2005 Change-Id: I3ce16566f442872b11b10d8db752a29bf803d1e4 Signed-off-by: Andrew Geissler <andrewg@us.ibm.com>
* Notify OCC of pcap setting changesAndrew Geissler2017-07-183-3/+40
| | | | | | | Resolves openbmc/openbmc#948 Change-Id: I03193b07ddaf380468bd0c0e62a41220bdeaecce Signed-off-by: Andrew Geissler <andrewg@us.ibm.com>
* Determine pcap value to send to occAndrew Geissler2017-07-187-2/+110
| | | | | Change-Id: Ie60aac151f5fd8ce091020ce756834e4877cbc93 Signed-off-by: Andrew Geissler <andrewg@us.ibm.com>
* Create pcap object and log monitored eventsAndrew Geissler2017-07-173-2/+166
| | | | | Change-Id: I2d7b3a449e2c9c1d5a0627161f8e85dcaca1e087 Signed-off-by: Andrew Geissler <andrewg@us.ibm.com>
* Register callbacks for pcap property changesAndrew Geissler2017-07-173-2/+111
| | | | | Change-Id: I39b38a931ffdf260d9ee45f02cdd31e9e884b04d Signed-off-by: Andrew Geissler <andrewg@us.ibm.com>
* Add .gitignore for openpower-occ-control repoAndrew Geissler2017-07-061-0/+48
| | | | | Change-Id: I0637558da8f984af7628fcb44c6d1a2eb6bce4de Signed-off-by: Andrew Geissler <andrewg@us.ibm.com>
* Add Support to do device bind and unbind based on OCC statusVishwanatha Subbanna2017-07-066-1/+129
| | | | | | | Fixes openbmc/openbmc#1698 Change-Id: Iaa33c3065b0358b62e3ec7e39d4b57c6b9d181e1 Signed-off-by: Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com>
* Implement OCC status interfaceVishwanatha Subbanna2017-07-044-5/+77
| | | | | Change-Id: I43822cb28bc2d23398fb09352c9876e169c666f7 Signed-off-by: Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com>
* Change occ control service nameVishwanatha Subbanna2017-07-046-109/+102
| | | | | | | | | | | | Currently, only thing that OCC controller does is create PassThrough objects. However, there is a need now to create OCC Status objects and hence some restructuring is needed to consume that. Since OCC control now is doing more than one thing, service name is changed to map to that. Change-Id: I466979a873d6f14385eb59d0e9d9f3a8b3f95a9b Signed-off-by: Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com>
* Create OCC pass-through objectsDeepak Kodihalli2017-06-137-138/+109
| | | | | | | | | | Create OCC pass-through d-bus objects when corresponding CPU objects are created in the inventory. Resolves openbmc/openbmc#1450. Change-Id: I8da879f51ebef8dcc3d25358def81c5e0dce0617 Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
* Use /dev/occ instead of /dev/occfifoVishwanatha Subbanna2017-06-011-1/+1
| | | | | | | | | | Initially, the occ fifo devices were named as /dev/occfifo1..N but it has been renamed to /dev/occ1..N. Fixes openbmc/openbmc#1696 Change-Id: Ibf37cc3f61a85a46accd678a55e1b2b6019bd6e5 Signed-off-by: Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com>
* Fix data format used in OCC communicationVishwanatha Subbanna2017-05-191-4/+12
| | | | | | | | | | | | | | Amester and OCC understand only the sequence that is in bytes. Current OCC pass-through was sending chunk of 4 bytes and that was breaking the protocol. Since the REST server only handles 4 bytes, OCC pass-through needs to convert array of 4 bytes into array of 2 bytes prior to sending to OCC driver. Similarly, pass-through reader now needs to read one byte at a time than 4 bytes. Change-Id: Ifc24636f6b1dfb0cc0052362d2982ecfa652fec5 Signed-off-by: Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com>
* Commit errorlog and exit the application on error scenariosVishwanatha Subbanna2017-04-267-15/+1949
| | | | | | | | | | | This application interacts with OCC driver and hence its good to terminate when there is an error during IO since it would mostly mean a faulty hardware. Fixes openbmc/openbmc#1428 Change-Id: I48bc7b2cf19922a7a53dbab78cdd4f2338a7431b Signed-off-by: Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com>
* Write payload to OCC and read it backVishwanatha Subbanna2017-04-261-1/+46
| | | | | | | | This will utilize the OCC driver to send Amester payload to OCC and does a read to get the contents of OCC-SRAM and passes it back. Change-Id: I68627b21665256df6fabad7768bb139dd6d1b99b Signed-off-by: Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com>
* Open device and populate file descriptorVishwanatha Subbanna2017-04-263-20/+77
| | | | | Change-Id: I8159f71ff3dd087f10cdf3b013e1acb60d4758fb Signed-off-by: Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com>
* Populate device entry based on positionVishwanatha Subbanna2017-04-172-2/+10
| | | | | | | | | | | | | | | | | | | | Communicating to OCC from BMC in PassThrough mode involves 2 drivers, namely; 1) SBE FIFO driver --> Used to communicate with SBE 2) OCC driver --> Which uses FIFO driver to write data to OCC at a predefined address and reads it back from a predefined OCC address. Device entry that is of interest here belongs to #2 above. This will map occ0 to fifo1, occ2 to fifo2 and so on. Until the udev rules are in place to make sure that a particular entry always maps to correct device not caring the probing order, this change here is a best guess that cpu0 and cpu1 would mostly in all cases be probed in that order. Change-Id: I485e0ea4eab1b4c6f59ee4b68c0725f9633cd933 Signed-off-by: Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com>
* Remove dead code during sdbus object creationVishwanatha Subbanna2017-04-131-1/+1
| | | | | | | | | | | As part of object creation, Interface added signal gets broadcasted by default unless told not to do so. Current code uses the default behavior and also makes an explicit call to broadcast a signal. Although it does not send a signal again, its un-necessary code that gets executed and should be removed. Change-Id: I438d6f54eeea9ea930525e956c26a69510ccf83d Signed-off-by: Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com>
* Implement org.open_power.OCC.PassThrough.SendDeepak Kodihalli2017-03-301-1/+21
| | | | | | | | | | The Send method accepts a command as an array of hex strings, and returns the response as an another array of hex strings. For now, Send just logs the command array to the journal. Change-Id: Iff288d36075833b8c615cdb18b78395839e1e2da Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
* Implement org.open_power.OCC.PassThroughDeepak Kodihalli2017-03-304-11/+136
| | | | | | | | This d-bus interface is implemented by the open_power::occ::pass_through::PassThrough class. Change-Id: I6bce9e609b7b977418bcfee15e97432cb7d9e6b3 Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
* Find OCC objectsDeepak Kodihalli2017-03-303-0/+96
| | | | | | | | | | For now, map OCC object per POWER processor. Add a method that returns a list of OCC objects that need to be on the bus, based on the processor inventory. Change-Id: I1dd36b96f71684a1d5866876e4ca9aa0283ef8b0 Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
* Add main applicationDeepak Kodihalli2017-03-304-0/+101
| | | | | Change-Id: I294529f08dcf65594e735ee5aeefdb37a2920b01 Signed-off-by: Deepak Kodihalli <dkodihal@in.ibm.com>
* Initial commitPatrick Williams2017-03-161-0/+201
OpenPOWER on IntegriCloud