This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Upper bits [27:17] of GPMC address bus are stucked to '1' with DM8148

Other Parts Discussed in Thread: SYSCONFIG

Hi,

  I am using the GPMC bus to transfer datas between the DM8148 and my FPGA.  The bus is used in NOR type with single synchronous access.  The lower parts of the addr [15:0] is multiplexed with the data bus.  I'm using only CS0 and the config is as followed :

writel(0x00000008, &gpmc_cfg->sysconfig);         
writel(0x00000000, &gpmc_cfg->irqstatus);         
writel(0x00000000, &gpmc_cfg->irqenable); 
writel(0x000001F1, &gpmc_cfg->timeout_control);        
writel(0x00000012, &gpmc_cfg->config);       

GPMC_CONFIG1  0x28401200   
GPMC_CONFIG2  0x20300      
GPMC_CONFIG3  0x10100      
GPMC_CONFIG4  0x2010301    
GPMC_CONFIG5  0x20203      
GPMC_CONFIG6  0x10101C0    
GPMC_CONFIG7  0xF41        

Doing read or write accesses to the memory location where my FPGA is mapped seems to work fine except for the upper address bits which are on bits [27:17].  No matter what the base address or the mask is and if it is a write or a read access, those upper bits are always stuck to '1' (bus equal to "3FF").

As an example :

   CS0 base addr = 0x1000000 and Mask = 16Mb

Writing to 0x1000000 a 32bits data = 0xFFFFFFFF leads to ADDR/DATA [15:0] = 0x0 during ALE and 0xFFFF during WE but ADDR[27:17] = 0x3FF....

Writing to addr = 0x100000 should have displayed ADDR/DATA[15:0] = 0x0 and ADDR[27:17] = 0x40...

Can someone help me with this...?!

Regards!

Seb