|
@@ -741,7 +741,7 @@ static void denali_setup_dma(struct denali_nand_info *denali, int op)
|
|
|
{
|
|
|
uint32_t mode;
|
|
|
const int page_count = 1;
|
|
|
- uint32_t addr = (uint32_t)denali->buf.dma_buf;
|
|
|
+ uint64_t addr = (unsigned long)denali->buf.dma_buf;
|
|
|
|
|
|
flush_dcache_range(addr, addr + sizeof(denali->buf.dma_buf));
|
|
|
|
|
@@ -759,7 +759,7 @@ static void denali_setup_dma(struct denali_nand_info *denali, int op)
|
|
|
index_addr(denali, mode, addr);
|
|
|
|
|
|
/* 3. set memory high address bits 64:32 */
|
|
|
- index_addr(denali, mode, 0);
|
|
|
+ index_addr(denali, mode, addr >> 32);
|
|
|
#else
|
|
|
mode = MODE_10 | BANK(denali->flash_bank);
|
|
|
|
|
@@ -769,7 +769,7 @@ static void denali_setup_dma(struct denali_nand_info *denali, int op)
|
|
|
index_addr(denali, mode | denali->page, 0x2000 | op | page_count);
|
|
|
|
|
|
/* 2. set memory high address bits 23:8 */
|
|
|
- index_addr(denali, mode | ((addr >> 16) << 8), 0x2200);
|
|
|
+ index_addr(denali, mode | (((addr >> 16) & 0xffff) << 8), 0x2200);
|
|
|
|
|
|
/* 3. set memory low address bits 23:8 */
|
|
|
index_addr(denali, mode | ((addr & 0xffff) << 8), 0x2300);
|