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
@ -136,13 +136,22 @@ int arm_csu_wait_all_done(void)
|
|||||||
|
|
||||||
//CmdFIFO 0 1 2 3
|
//CmdFIFO 0 1 2 3
|
||||||
//tag 0 1 2 3 reg_group = 0(0->1)
|
//tag 0 1 2 3 reg_group = 0(0->1)
|
||||||
//tag 4 5 6 7 1(2->3)
|
//tag 4 5 6 7 1(2->3)
|
||||||
//tag 8 9 10 11 2(4->5)
|
//tag 8 9 10 11 2(4->5)
|
||||||
//tag 12 13 14 15 3(6->7)
|
//tag 12 13 14 15 3(6->7)
|
||||||
//tag 16 17 18 19 4(8->9)
|
//tag 16 17 18 19 4(8->9)
|
||||||
//tag 20 21 22 23 5(10->11)
|
//tag 20 21 22 23 5(10->11)
|
||||||
//tag 24 25 26 27 6(12->13)
|
//tag 24 25 26 27 6(12->13)
|
||||||
//tag 28 29 30 31 7(14->15)
|
//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
|
// get unused register group according to tag number
|
||||||
int get_free_reg_group(uint8_t tag)
|
int get_free_reg_group(uint8_t tag)
|
||||||
@ -152,10 +161,12 @@ int get_free_reg_group(uint8_t tag)
|
|||||||
return -1;
|
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);
|
uint32_t dmaStatus = VIR_ADDR_VAL(virMemAddr, AP_CSU_DMASTATUS);
|
||||||
uint8_t fifoNum = tag % 4;
|
//if (0 == (dmaStatus & (0xF<<regGroup)))
|
||||||
uint8_t regGroup = tag / 4;
|
if (bitMap != (dmaStatus & bitMap))
|
||||||
if (0 == (dmaStatus & (0xF<<regGroup)))
|
|
||||||
{
|
{
|
||||||
return -1;
|
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;
|
fifoNum = (temp>>8) & 0xFF;
|
||||||
tag = (temp>>16)&0xFF;
|
tag = (temp>>16)&0xFF;
|
||||||
|
|
||||||
uint8_t offset = regGroup << 6;
|
uint16_t offset = regGroup << 6;
|
||||||
// src reg
|
// src reg
|
||||||
VIR_ADDR_VAL(virMemAddr, AP_CSU_DMAADDRL0 + offset) = addrSrc & 0xFFFFFFFF;
|
VIR_ADDR_VAL(virMemAddr, AP_CSU_DMAADDRL0 + offset) = addrSrc & 0xFFFFFFFF;
|
||||||
VIR_ADDR_VAL(virMemAddr, AP_CSU_DMAADDRH0 + offset) = addrSrc >> 32;
|
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