public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
  • * [U-Boot] [PATCH] ARMv8: fix bug for flush data cache by set/way
           [not found] <1396228307-30882-1-git-send-email-leoy@marvell.com>
           [not found] ` <533A35A2.00C5E2.32003@APP8.CORPEASE.NET>
    @ 2014-04-01 10:47 ` FengHua
      1 sibling, 0 replies; 6+ messages in thread
    From: FengHua @ 2014-04-01 10:47 UTC (permalink / raw)
      To: u-boot
    
    
    
    
    > -----Original Messages-----
    > From: "Leo Yan" <leoy@marvell.com>
    > Sent Time: 2014-03-31 09:11:47 (Monday)
    > To: u-boot at lists.denx.de, "David Feng" <fenghua@phytium.com.cn>, "Scott Wood" <scottwood@freescale.com>
    > Cc: "Leo Yan" <leoy@marvell.com>
    > Subject: [PATCH] ARMv8: fix bug for flush data cache by set/way
    > 
    > When flush the d$ with set/way instruction, it need calculate the way's
    > offset = log2(Associativity); but in current uboot's code, it use below
    > formula to calculate the offset: log2(Associativity * 2 - 1), so finally
    > it cannot flush data cache properly.
    > 
    > Signed-off-by: Leo Yan <leoy@marvell.com>
    > ---
    >  arch/arm/cpu/armv8/cache.S |    4 +---
    >  1 file changed, 1 insertion(+), 3 deletions(-)
    > 
    > diff --git a/arch/arm/cpu/armv8/cache.S b/arch/arm/cpu/armv8/cache.S
    > index 546a83e..256d2e2 100644
    > --- a/arch/arm/cpu/armv8/cache.S
    > +++ b/arch/arm/cpu/armv8/cache.S
    > @@ -30,9 +30,7 @@ ENTRY(__asm_flush_dcache_level)
    >  	add	x2, x2, #4		/* x2 <- log2(cache line size) */
    >  	mov	x3, #0x3ff
    >  	and	x3, x3, x6, lsr #3	/* x3 <- max number of #ways */
    > -	add	w4, w3, w3
    > -	sub	w4, w4, 1		/* round up log2(#ways + 1) */
    > -	clz	w5, w4			/* bit position of #ways */
    > +	clz	w5, w3			/* bit position of #ways */
    >  	mov	x4, #0x7fff
    >  	and	x4, x4, x6, lsr #13	/* x4 <- max number of #sets */
    >  	/* x1 <- cache level << 1 */
    > -- 
    > 1.7.9.5
    > 
    
    Acked-by: David.Feng <fenghua@phytium.com.cn>
    
    Thank you.
    
    Best Wishes.
    
    ^ permalink raw reply	[flat|nested] 6+ messages in thread
  • * [U-Boot] [PATCH] ARMv8: fix bug for flush data cache by set/way
    @ 2014-03-31  1:50 Leo Yan
      2014-04-07 20:28 ` Albert ARIBAUD
      2014-04-07 22:24 ` Scott Wood
      0 siblings, 2 replies; 6+ messages in thread
    From: Leo Yan @ 2014-03-31  1:50 UTC (permalink / raw)
      To: u-boot
    
    When flush the d$ with set/way instruction, it need calculate the way's
    offset = log2(Associativity); but in current uboot's code, it use below
    formula to calculate the offset: log2(Associativity * 2 - 1), so finally
    it cannot flush data cache properly.
    
    Signed-off-by: Leo Yan <leoy@marvell.com>
    ---
     arch/arm/cpu/armv8/cache.S |    4 +---
     1 file changed, 1 insertion(+), 3 deletions(-)
    
    diff --git a/arch/arm/cpu/armv8/cache.S b/arch/arm/cpu/armv8/cache.S
    index 546a83e..256d2e2 100644
    --- a/arch/arm/cpu/armv8/cache.S
    +++ b/arch/arm/cpu/armv8/cache.S
    @@ -30,9 +30,7 @@ ENTRY(__asm_flush_dcache_level)
     	add	x2, x2, #4		/* x2 <- log2(cache line size) */
     	mov	x3, #0x3ff
     	and	x3, x3, x6, lsr #3	/* x3 <- max number of #ways */
    -	add	w4, w3, w3
    -	sub	w4, w4, 1		/* round up log2(#ways + 1) */
    -	clz	w5, w4			/* bit position of #ways */
    +	clz	w5, w3			/* bit position of #ways */
     	mov	x4, #0x7fff
     	and	x4, x4, x6, lsr #13	/* x4 <- max number of #sets */
     	/* x1 <- cache level << 1 */
    -- 
    1.7.9.5
    
    ^ permalink raw reply related	[flat|nested] 6+ messages in thread

    end of thread, other threads:[~2014-04-07 22:24 UTC | newest]
    
    Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
    -- links below jump to the message on this page --
         [not found] <1396228307-30882-1-git-send-email-leoy@marvell.com>
         [not found] ` <533A35A2.00C5E2.32003@APP8.CORPEASE.NET>
    2014-04-01  7:20   ` [U-Boot] [PATCH] ARMv8: fix bug for flush data cache by set/way Leo Yan
    2014-04-01  7:41     ` Leo Yan
    2014-04-01 10:47 ` FengHua
    2014-03-31  1:50 Leo Yan
    2014-04-07 20:28 ` Albert ARIBAUD
    2014-04-07 22:24 ` Scott Wood
    

    This is a public inbox, see mirroring instructions
    for how to clone and mirror all data and code used for this inbox