
On 08/04/2011 06:37 AM, shawn Bai wrote:
When enlarging Nor Flash to 4GiB, the AM in OR0 is 0x0000_0, where the number of zero is 17.
According to what is said in datasheet, if the bit value of some bit in address mask is 0, then the corresponding bit in address will be masked.
So, the higher 17 bits in address will be masked, is it right ?
If so, the range accessed in flash is just 32KBytes from the BA in BR0. Is that right ? But Not the same with what you mean.
The address mask applies only to matching a chip select. Once it's been matched, the full address goes to the device -- minus the bits that the device does not implement. An bit whose address mask is zero is treated the same as the least-significant 15 bits.
And from what you replied before in this question, may I say the 32KBytes will repeat through 4GiB address space ? not 8MBytes ?
No.
then, what is the effect of CONFIG_SYS_MONITOR_BASE in this ABSOLUTE branch as uboot comment indicates ?
The effect is that the program counter contains "CONFIG_SYS_MONITOR_BASE + in_flash", so that when the code later shrinks the chipselect it will still be executing from flash.
-Scott