Merge branch 'dev_ck_v2.1_bug#1004#' into 'dev_ck_v2.1'
modify arm csu bug, UCP4008-SL-EVB, Bug#1004 See merge request ucp/driver/ucp4008_platform_arm!18
This commit is contained in:
commit
262f302ca7
@ -144,6 +144,15 @@ int arm_csu_wait_all_done(void)
|
||||
//tag 24 25 26 27 6(12->13)
|
||||
//tag 28 29 30 31 7(14->15)
|
||||
|
||||
//tag 0 8 16 24 reg_group = 0(0->1) CmdFIFO =0
|
||||
//tag 1 9 17 25 1(2->3) 1
|
||||
//tag 2 10 18 26 2(4->5) 2
|
||||
//tag 3 11 19 27 3(6->7) 3
|
||||
//tag 4 12 20 28 4(8->9) 0
|
||||
//tag 5 13 21 29 5(10->11) 1
|
||||
//tag 6 14 22 30 6(12->13) 2
|
||||
//tag 7 15 23 31 7(14->15) 3
|
||||
|
||||
// get unused register group according to tag number
|
||||
int get_free_reg_group(uint8_t tag)
|
||||
{
|
||||
@ -152,10 +161,12 @@ int get_free_reg_group(uint8_t tag)
|
||||
return -1;
|
||||
}
|
||||
|
||||
uint8_t fifoNum = tag & 0x3; // tag % 4;
|
||||
uint8_t regGroup = tag & 0x7; // tag / 4;
|
||||
uint32_t bitMap = (0x01010101<<regGroup);
|
||||
uint32_t dmaStatus = VIR_ADDR_VAL(virMemAddr, AP_CSU_DMASTATUS);
|
||||
uint8_t fifoNum = tag % 4;
|
||||
uint8_t regGroup = tag / 4;
|
||||
if (0 == (dmaStatus & (0xF<<regGroup)))
|
||||
//if (0 == (dmaStatus & (0xF<<regGroup)))
|
||||
if (bitMap != (dmaStatus & bitMap))
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
@ -204,7 +215,7 @@ int arm_csu_dma_1D_transfer(uint64_t addrSrc, uint64_t addrDst, uint32_t dataLen
|
||||
fifoNum = (temp>>8) & 0xFF;
|
||||
tag = (temp>>16)&0xFF;
|
||||
|
||||
uint8_t offset = regGroup << 6;
|
||||
uint16_t offset = regGroup << 6;
|
||||
// src reg
|
||||
VIR_ADDR_VAL(virMemAddr, AP_CSU_DMAADDRL0 + offset) = addrSrc & 0xFFFFFFFF;
|
||||
VIR_ADDR_VAL(virMemAddr, AP_CSU_DMAADDRH0 + offset) = addrSrc >> 32;
|
||||
|
@ -1 +1 @@
|
||||
Subproject commit 8ea437815106d50f2230e0b3989f7f7174ac0fed
|
||||
Subproject commit 089a57ea572f30331b34103b1ed5429682856c75
|
Loading…
x
Reference in New Issue
Block a user