Hemanth, I might be missing something but please see below: > > >Hemanth, > Why do you want the split? Do you have physical mem > 1G >in your system? > >We want to fit 512MB RAM on 2.6.27 Kernel which doesnot have highmem option. >We also donot want to disturb the current I/O memory map [Romit] As long as your physical memory is slightly less than 1GB, I do not think highmem is necessary. For I/O map: Kernel virtual addresses start from 0xC0000000. Adding 512M to it gives 0xE0000000. So the virtual memory for IO space needs to be after this. Currently the IO Map is #define L4_WK_34XX_PHYS L4_WK_34XX_BASE /* 0x48300000 */ #define L4_WK_34XX_VIRT 0xd8300000 #define L4_WK_34XX_SIZE SZ_1M #define L4_PER_34XX_VIRT 0xd9000000 #define L4_PER_34XX_SIZE SZ_1M #define L4_EMU_34XX_VIRT 0xe4000000 #define L4_EMU_34XX_SIZE SZ_64M #define OMAP34XX_GPMC_PHYS OMAP34XX_GPMC_BASE /* 0x6E000000 */ #define OMAP34XX_GPMC_VIRT 0xFE000000 #define OMAP34XX_GPMC_SIZE SZ_1M #define OMAP343X_SMS_VIRT 0xFC000000 #define OMAP343X_SMS_SIZE SZ_1M #define OMAP343X_SDRC_PHYS OMAP343X_SDRC_BASE /* 0x6D000000 */ #define OMAP343X_SDRC_VIRT 0xFD000000 #define OMAP343X_SDRC_SIZE SZ_1M This is a problem as the existing virtual memory maps for I/O space would overlap with 512M SDRAM. So, we need to redefine the virtual mapping after 0xe0000000. The IO_OFFSET is 0x90000000 currently. For L4_WK_34XX_VIRT we need a minimum of 0xe0000000 - 0x48300000 i.e. 0x97D00000 as the new IO_OFFSET. But using this new IO_OFFSET for mapping OMAP343x_GPMC_VIRT would result in an overflow(0x6E000000 + 0x97D00000 = 0x105D00000). Using ioremap for these regions might help. But this needs changes to most drivers. In that case these static mappings could go away and I think they should. Some ARM kernel expert may comment! -Romit -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html