diff mbox

Ecovec (SH7724) board doesn't work on latest linus tree

Message ID 871uy5f9kg.wl%kuninori.morimoto.gx@renesas.com (mailing list archive)
State Rejected
Headers show

Commit Message

Kuninori Morimoto July 5, 2011, 7:52 a.m. UTC
Dear Paul

Ecovec board still doesn't work on latest linus tree.
Because of below commit.

----------------
commit 3f9b8520b06013939ad247ba08b69529b5f14be1
Author: Paul Mundt <lethal@linux-sh.org>
Date:   Tue May 31 14:38:29 2011 +0900

    sh64: Move from P1SEG to CAC_ADDR for consistent sync.
    
    sh64 doesn't define a P1SEGADDR, resulting in a build failure. The proper
    mapping can be attained for both sh32 and 64 via the CAC_ADDR macro, so
    switch to that instead.
    
    Signed-off-by: Paul Mundt <lethal@linux-sh.org>
----------------

The output of below patch was 

dma_cache_sync: vaddr 8e000000, CAC 6e000000, P1SEG 8e000000       

------


Best regards
---
Kuninori Morimoto
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Yutaro Ebihara Aug. 31, 2011, 3:07 p.m. UTC | #1
hello.

i think you can run linux-3.0.4 kernel on your Ecovec (SH7724) board 
in this debug-code.


 void dma_cache_sync(struct device *dev, void *vaddr, size_t size,
                     enum dma_data_direction direction)
 {
         void *addr;
 
         addr = __in_29bit_mode() ?
-               (void *)CAC_ADDR((unsigned long)vaddr) : vaddr;
+               (void *)P1SEGADDR((unsigned long)vaddr) : vaddr;



CAC_ADDR((unsigned long)vaddr) : vaddr; 
must be fail.



>@@ -84,6 +84,10 @@ void dma_cache_sync(struct device *dev, void *vaddr, 
>size_t size,
> 	addr = __in_29bit_mode() ?
> 	       (void *)CAC_ADDR((unsigned long)vaddr) : vaddr;



>
>Dear Paul
>
>Ecovec board still doesn't work on latest linus tree.
>Because of below commit.
>
>----------------
>commit 3f9b8520b06013939ad247ba08b69529b5f14be1
>Author: Paul Mundt <lethal@linux-sh.org>
>Date:   Tue May 31 14:38:29 2011 +0900
>
>    sh64: Move from P1SEG to CAC_ADDR for consistent sync.
>    
>    sh64 doesn't define a P1SEGADDR, resulting in a build failure. The proper
>    mapping can be attained for both sh32 and 64 via the CAC_ADDR macro, so
>    switch to that instead.
>    
>    Signed-off-by: Paul Mundt <lethal@linux-sh.org>
>----------------
>
>The output of below patch was 
>
>dma_cache_sync: vaddr 8e000000, CAC 6e000000, P1SEG 8e000000       
>
>------
>diff --git a/arch/sh/mm/consistent.c b/arch/sh/mm/consistent.c
>index f251b5f..01bb4ee 100644
>--- a/arch/sh/mm/consistent.c
>+++ b/arch/sh/mm/consistent.c
>@@ -84,6 +84,10 @@ void dma_cache_sync(struct device *dev, void *vaddr, 
>size_t size,
> 	addr = __in_29bit_mode() ?
> 	       (void *)CAC_ADDR((unsigned long)vaddr) : vaddr;
> 
>+	printk_once("%s: vaddr %p, CAC %08lx, P1SEG %08lx\n", __func__, vaddr,
>+		CAC_ADDR((unsigned long)vaddr),
>+		P1SEGADDR((unsigned long)vaddr));
>+
> 	switch (direction) {
> 	case DMA_FROM_DEVICE:		/* invalidate only */
> 		__flush_invalidate_region(addr, size);
>
>
>Best regards
>---
>Kuninori Morimoto
>--
>To unsubscribe from this list: send the line "unsubscribe linux-sh" in
>the body of a message to majordomo@vger.kernel.org
>More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-sh" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/arch/sh/mm/consistent.c b/arch/sh/mm/consistent.c
index f251b5f..01bb4ee 100644
--- a/arch/sh/mm/consistent.c
+++ b/arch/sh/mm/consistent.c
@@ -84,6 +84,10 @@  void dma_cache_sync(struct device *dev, void *vaddr, size_t size,
 	addr = __in_29bit_mode() ?
 	       (void *)CAC_ADDR((unsigned long)vaddr) : vaddr;
 
+	printk_once("%s: vaddr %p, CAC %08lx, P1SEG %08lx\n", __func__, vaddr,
+		CAC_ADDR((unsigned long)vaddr),
+		P1SEGADDR((unsigned long)vaddr));
+
 	switch (direction) {
 	case DMA_FROM_DEVICE:		/* invalidate only */
 		__flush_invalidate_region(addr, size);