From 6ffdb4e9c4638455a88bcc05a95cbece47d38fbf Mon Sep 17 00:00:00 2001 From: "xinxin.li" Date: Wed, 23 Aug 2023 16:29:08 +0800 Subject: [PATCH] modify arm csu bug, UCP4008-SL-EVB, Bug#1004 --- driver/arm_csu/src/arm_csu.c | 33 ++++++++++++++++++++++----------- driver/rfic | 2 +- 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/driver/arm_csu/src/arm_csu.c b/driver/arm_csu/src/arm_csu.c index 2c70797..ab2e8a5 100644 --- a/driver/arm_csu/src/arm_csu.c +++ b/driver/arm_csu/src/arm_csu.c @@ -136,13 +136,22 @@ int arm_csu_wait_all_done(void) //CmdFIFO 0 1 2 3 //tag 0 1 2 3 reg_group = 0(0->1) -//tag 4 5 6 7 1(2->3) -//tag 8 9 10 11 2(4->5) -//tag 12 13 14 15 3(6->7) -//tag 16 17 18 19 4(8->9) -//tag 20 21 22 23 5(10->11) -//tag 24 25 26 27 6(12->13) -//tag 28 29 30 31 7(14->15) +//tag 4 5 6 7 1(2->3) +//tag 8 9 10 11 2(4->5) +//tag 12 13 14 15 3(6->7) +//tag 16 17 18 19 4(8->9) +//tag 20 21 22 23 5(10->11) +//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<>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; diff --git a/driver/rfic b/driver/rfic index 8ea4378..089a57e 160000 --- a/driver/rfic +++ b/driver/rfic @@ -1 +1 @@ -Subproject commit 8ea437815106d50f2230e0b3989f7f7174ac0fed +Subproject commit 089a57ea572f30331b34103b1ed5429682856c75