Reply
Thread Tools
Posts: 58 | Thanked: 8 times | Joined on Aug 2010
#1
Hi, in Linux kernel 2.6.28, which is used by N900, I am trying to understand 'head.S' and have a question now. In 'head.S', there is a macro 'PHYS_OFFSET', and I can find its definition in file below.
arch/arm/plat-omap/include/mach/memory.h
Code:
#if defined(CONFIG_ARCH_OMAP1)
#define PHYS_OFFSET		UL(0x10000000)
#elif defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3)
#define PHYS_OFFSET		UL(0x80000000)
#endif
And I found below in file '.config', that means PHYS_OFFSET = UL(0x80000000) = 2G, but why? Does this mean that in N900's hardware design, the address pins are also connected as this way so that the physical address starts from 2G? From ARM's website, I found some hint that it seems that it is predefined that OMAP processor(ARM core inside) starts its adress from 2G. Who can further clarify it? Thanks!
Code:
# CONFIG_ARCH_OMAP1 is not set
# CONFIG_ARCH_OMAP2 is not set
CONFIG_ARCH_OMAP3=y
 
Posts: 303 | Thanked: 146 times | Joined on Aug 2009
#2
Stuff like this is common on ARM CPUs.
Different memory ranges are used for different things, like some are used for the ROM, some for the RAM, some for different buffers or DMA and some for MMIO. Why it's 2G it can be anyone's guess, not sure what the exact reason is, but it shouldn't matter.
 

The Following User Says Thank You to Radu For This Useful Post:
Posts: 58 | Thanked: 8 times | Joined on Aug 2010
#3
Originally Posted by Radu View Post
Stuff like this is common on ARM CPUs.
Different memory ranges are used for different things, like some are used for the ROM, some for the RAM, some for different buffers or DMA and some for MMIO. Why it's 2G it can be anyone's guess, not sure what the exact reason is, but it shouldn't matter.
Thank you! You are right
 
Reply


 
Forum Jump


All times are GMT. The time now is 07:55.