Can someone please help me understand what is happening here:
1. Putty into my Intel Edison board (With Arduino breakout)
2. After logging in, I enter the command "i2cdetect -r 6"
3. Receive this output:
root@Sherlock:~# i2cdetect -r 6
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-6 using read byte commands.
I will probe address range 0x03-0x77.
Continue? [Y/n] Y
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: [ 62.369474] i2c-designware-pci 0000:00:09.1: ===== REGISTER DUMP (i2c) =====
[ 62.369572] i2c-designware-pci 0000:00:09.1: DW_IC_CON: 0x63
[ 62.369647] i2c-designware-pci 0000:00:09.1: DW_IC_TAR: 0x3
[ 62.369719] i2c-designware-pci 0000:00:09.1: DW_IC_SS_SCL_HCNT: 0x2f8
[ 62.369791] i2c-designware-pci 0000:00:09.1: DW_IC_SS_SCL_LCNT: 0x37b
[ 62.369864] i2c-designware-pci 0000:00:09.1: DW_IC_FS_SCL_HCNT: 0x87
[ 62.369935] i2c-designware-pci 0000:00:09.1: DW_IC_FS_SCL_LCNT: 0x10a
[ 62.370007] i2c-designware-pci 0000:00:09.1: DW_IC_INTR_STAT: 0x0
[ 62.370079] i2c-designware-pci 0000:00:09.1: DW_IC_INTR_MASK: 0x246
[ 62.370151] i2c-designware-pci 0000:00:09.1: DW_IC_RAW_INTR_STAT: 0x10
[ 62.370222] i2c-designware-pci 0000:00:09.1: DW_IC_RX_TL: 0x20
[ 62.370294] i2c-designware-pci 0000:00:09.1: DW_IC_TX_TL: 0x20
[ 62.370365] i2c-designware-pci 0000:00:09.1: DW_IC_ENABLE: 0x1
[ 62.370436] i2c-designware-pci 0000:00:09.1: DW_IC_STATUS: 0x2
[ 62.370507] i2c-designware-pci 0000:00:09.1: DW_IC_TXFLR: 0x1
[ 62.370578] i2c-designware-pci 0000:00:09.1: DW_IC_RXFLR: 0x0
[ 62.370648] i2c-designware-pci 0000:00:09.1: DW_IC_TX_ABRT_SOURCE: 0x0
[ 62.370719] i2c-designware-pci 0000:00:09.1: DW_IC_DATA_CMD: 0x0
[ 62.370789] i2c-designware-pci 0000:00:09.1: ===============================
[ 62.370891] CPU: 0 PID: 342 Comm: i2cdetect Tainted: G W O 3.10.17-poky-edison+ # 1
[ 62.370896] Hardware name: Intel Corporation Merrifield/BODEGA BAY, BIOS 542 2015.01.21:18.19.48
[ 62.370903] task: f5d8e9b0 ti: f5170000 task.ti: f5170000
[ 62.370964] Stack:
[ 62.371033] Call Trace:
[ 62.371480] Code: b3 ff ff 89 f8 09 d0 80 ce 04 83 ff 02 0f 44 c2 8b 15 54 4b ba c1 89 82 00 b3 ff ff f7 c6 00 02 00 00 74 14 e8 e7 f8 0a 00 56 9d <83> c4 04 5b 5e 5f 5d c3 90 8d 74 26 00 56 9d e8 d1 f4 0a 00 83
[ 62.371505] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G W O 3.10.17-poky-edison+ # 1
[ 62.371510] Hardware name: Intel Corporation Merrifield/BODEGA BAY, BIOS 542 2015.01.21:18.19.48
[ 62.371518] task: f6c83d30 ti: f6e1e000 task.ti: f6e1e000
[ 62.371580] Stack:
[ 62.371648] Call Trace:
[ 62.371857] Code: 8b 42 08 a8 08 75 24 31 c9 8d 42 08 89 ca 0f 01 c8 0f ae f0 89 f6 89 e0 25 00 e0 ff ff 8b 40 08 a8 08 75 07 b1 01 89 f0 0f 01 c9 <85> 1d 18 b4 bd c1 75 0d 8d 55 f0 b8 05 00 00 00 e8 cd 45 d8 ff
[ 62.372489] i2c-6: recovery ignore
I am not able to understand what is happening here, or what these messages are trying to tell me.
Thanks for your interest in the Intel® Edison Platform.
We'd love to help you that issue, first, we would like to know if you have configured the I2C, in order to it, we'd recommend you to follow the steps in the http://www.intel.com/content/dam/support/us/en/documents/edison/sb/edisonarduino_hg_331191007.pdf Intel® Edison Kit for Arduino*, 11.6 section "Configure IO18/IO19 for I 2C connectivity", additionally, please be sure to power the Edison with a DC power supply, some cases if the Edison doesn't have enough power could cause some issues in its interfaces.
Please try these suggestion and let us know your results.
For "we would like to know if you have configured the I2C, in order to it, we'd recommend you to follow the steps in the http://www.intel.com/content/dam/support/us/en/documents/edison/sb/edisonarduino_hg_331191007.pdf Intel® Edison Kit for Arduino*, 11.6 section "Configure IO18/IO19 for I 2C connectivity",":
> I am using the Arduino breakout board which has the SCL and SDA connected to IO28/IO27. I configure the I2C bus with the following command "echo std > /sys/devices/pci0000:00/0000:00:09.1/i2c_dw_sysnode/mode" which is loaded into a shell file and called with every boot by a service.
For "be sure to power the Edison with a DC power supply, some cases if the Edison doesn't have enough power could cause some issues in its interfaces."
> These outputs can be found on multiple Edisons and all have been powered by DC Jacks (Voltages have been measured and checked both from source and from the intel Edison) or USB.
Are you able to help me understand what these messages are trying to say or what they mean?
*Edit 1:* A new output has been seen,
[ 98.256561] i2c-designware-pci 0000:00:09.1: i2c_dw_handle_tx_abort: lost arbitration
Any advice on what this error code means would be appreciated.
I had the same issue.
I think the kernel dumped those messages because this command monkeys with its reading i2c devices it needs to have elusive access to.
I notice that if I do i2cdump on either i2c-1 or i2c-6 (not used by the kernel but available to us) I don't see these messages.
I would refrain from issuing a command that would affect other than bus one and six.
The I2C-6 in the Edison Arduino breakout board is connected to A4/A5 – analog headers and SDA/SCL – digital header and according to the http://www.intel.com/content/dam/support/us/en/documents/edison/sb/edisonarduino_hg_331191007.pdf Shield pin GPIO mapping, the shield pin I2C_6_SDA is IO18 and I2C_6_SCL is IO19, as well as the Linux GPIO pin GP28 is SDA and GP27 is SCL. Also, the command you are using "echo std > /sys/devices/pci0000:00/0000:00:09.1/i2c_dw_sysnode/mode" is for changing the I2C speed to standard, so, we suggest you to follow the steps in the http://www.intel.com/content/dam/support/us/en/documents/edison/sb/edisonarduino_hg_331191007.pdf Intel® Edison Kit for Arduino*, 11.6 section "Configure IO18/IO19 for I 2C connectivity", and please let know your results after that configuration.
Additionally, regarding the DC power supply, we recommend to power the Edison through the power jack since you have connected devices to the Edison, the power supply through USB might not be enough to work properly.
Hope this information helps.