Valentine Barshak wrote:
According to the AMCC 440EPX/GRX user manual,
the Chip Select width is always fixed at 1 bit no matter
what is actually read from register DDR_10.

Well, from my point of view original kernel code is correct in this part.

Adding one bit into memory address means multiplying memory size by 2 i.e. cs=2. The question is: is Chip Select bit used in memory address. ChipSelect input of memory chip enables or disabled it, so if we have only one BankSel installed/connected (DDR0_10[22:23] is 01 or 10) there's no need to use Chip Select bit in an address. On the contrary, if both BankSel lines are connected (DDR0_10[22:23] is 11), to let memory controller know which memory rank to use, Chip Select bit is added into memory address. (and yes, if DDR0_10[22:23] is 00 - no ranks installed, memory size is 0, cs=0)

Original kernel code use exactly the same logic as I described above. Please suggest if it's wrong.

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-dev

Reply via email to