DDR Controller data abort recovery?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

DDR Controller data abort recovery?

Jump to solution
1,042 Views
johnballance
Contributor III

Hi

is there anything I need to do with the DDR controller after it has caused a data abort through accessing non existent addresses?  It seems happy on writes, but seems to give a data abort on reads.

Thanks

John

Labels (6)
0 Kudos
Reply
1 Solution
820 Views
Yuri
NXP Employee
NXP Employee

  According to the i.MX6 Reference Manual :

“The following registers in the MMDC define the DDR address space:

• MDMISC[DDR_4_BANK]—Defines either 4 or 8 banks in the DDR device

• MDCTL[DSIZ]—Defines the DDR data bus width of x16, x32 or x64

• MDMISC[BI]—Defines whether bank interleaving is on or off

• MDCTL[COL]—Defines the column size of the DDR device

• MDCTL[ROW]—Defines the row size of the DDR device”.

Also, “It is optional to configure the partition between the chip selects through

MDASP[CS0_END]”.

  Generally for an access to an address, which is not used (non-covered) by internal
i.MX6 modules, we can expect ARM data abort exception, but the following  

statement (NOTE) may be considered as recommendation to avoid such accesses :

“In cases where this is an access to a non-initialized or disconnected chip select,

behavior may be unexpected”.

If it is required to define memory size – it makes sense to test it without checking

addresses, that are out of range. It is enough to test (quite accessible) memory region

via writing and consequent reading data, assuming they are equal for real memory. 

View solution in original post

0 Kudos
Reply
1 Reply
821 Views
Yuri
NXP Employee
NXP Employee

  According to the i.MX6 Reference Manual :

“The following registers in the MMDC define the DDR address space:

• MDMISC[DDR_4_BANK]—Defines either 4 or 8 banks in the DDR device

• MDCTL[DSIZ]—Defines the DDR data bus width of x16, x32 or x64

• MDMISC[BI]—Defines whether bank interleaving is on or off

• MDCTL[COL]—Defines the column size of the DDR device

• MDCTL[ROW]—Defines the row size of the DDR device”.

Also, “It is optional to configure the partition between the chip selects through

MDASP[CS0_END]”.

  Generally for an access to an address, which is not used (non-covered) by internal
i.MX6 modules, we can expect ARM data abort exception, but the following  

statement (NOTE) may be considered as recommendation to avoid such accesses :

“In cases where this is an access to a non-initialized or disconnected chip select,

behavior may be unexpected”.

If it is required to define memory size – it makes sense to test it without checking

addresses, that are out of range. It is enough to test (quite accessible) memory region

via writing and consequent reading data, assuming they are equal for real memory. 

0 Kudos
Reply