- posted
15 years ago
2.6 kernel DISCONTIGMEM issue There is a trouble wanted to ask for help,in linux 2.6, On ARM9 board, the physical memory DDR-SDRAM have four banks, it's total 256MB,decode of hw as follow.... DDR2-SDRAM Memory 1 0x3C00_0000 0x3FFF_FFFF - 64MB DDR2-SDRAM Memory 2 0x3400_0000 0x37FF_FFFF - 64MB DDR2-SDRAM Memory 3 0xC000_0000 0xC3FF_FFFF - 64MB DDR2-SDRAM Memory 4 0xC400_0000 0xC7FF_FFFF - 64MB Set to flat memory,it can be choose each bank1~4,but limited to
64MB, now I want to set all memory for OS or AP,except HW usage to buffer, will left... DDR2-SDRAM Memory 1 0x3E20_0000 0x3FFF_FFFF - 30MB DDR2-SDRAM Memory 2 0x35A0_0000 0x37FF_FFFF - 38MB DDR2-SDRAM Memory 3 0xC200_0000 0xC3FF_FFFF - 32MB DDR2-SDRAM Memory 4 0xC400_0000 0xC5FF_FFFF - 32MB On HW requirement, it should start OS from 4th bank (C400_0000), then bank 4->3->1->2,I will get 132MBmemory for Linux kernel,I have been search about KERNEL ~kernel_home/include/asm-arm/memory.h shown method of DISCONTIGMEM to process the issue,but follow by others example on kernel,by different decode,but still sight to continues,like kernel_home\include\asm-arm\arch-aaec2000 as follow: #ifdef CONFIG_DISCONTIGMEM /* * The nodes are the followings: * * node 0: 0xf000.0000 - 0xf3ff.ffff * node 1: 0xf400.0000 - 0xf7ff.ffff * node 2: 0xf800.0000 - 0xfbff.ffff * node 3: 0xfc00.0000 - 0xffff.ffff */ It's large different to my problem,I don't know how to solve this problem, And ask for help,In linux kernel, How can I port the needed code for discounting memory usage on physical memory that can set to use for Linuxsystem & AP, thanks a lots!!