We are trying to communicate from beagleboneblack (ARM) to c674x(DSP) in omapl138evm over the HPI interface through the GPMC lines.
We are able to update the controls registers like HPIC, HPIAW, HPIAR ..etc in the DSP.
We followed the procedures for read/write as specified in the TRM(tms320c6746).
Still we are not able to read/write to a specific memory location in DSP.
We are following the procedures given below.
HCNTL[1:0] = 00
HR/Wn = 0
HPIC = 0x00000101
For Writing :
HCNTL[1:0] = 10
HR/Wn = 0
HHWIL = 0
HPIAW = 0x00000004
HHWIL = 1
HPIAW = 0xC0000004
HCNTL[1:0] = 11
HR/Wn = 0
HHWIL = 0
HD = 0x5678 //Expected first half data to be written
HHWIL = 1
HD = 0x1234 //Expected second half data to be written
Result: expected result in the address 0xc0000004 is 0x12345678. But it remains at the default value.
For Reading:
HCNTL[1:0] = 10
HR/Wn = 0
HHWIL = 0
HPIAW = 0x00000004
HHWIL = 1
HPIAW = 0xC0000004
HCNTL[1:0] = 11
HR/Wn = 1
HHWIL = 0
//Reading First half of data
HHWIL = 1
//Reading second half of data
Result: expected result was 0x12345678. But we are getting 0x00000000
Please help us to solve this.