Sign up ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. It's 100% free, no registration required.

I'm currently working on embedded arm linux with smdk2416(s3c2416)

The kernel is working on the 64MRAM. Recently, I need to increase the RAM from 64M to 128MB with 64MB on bank0 and 64MB on bank1.

bank0's physical address is at 0x30000000  
bank1's physical address is at 0x38000000  

I have successfully mapped bank0 from 0x30000000 to 0xc0000000, and bank1 from 0x38000000 to 0xc4000000 in U-Boot.

I have tried a memory test on these addresses (both banks' physical and virtual addr) under U-Boot.

When I'm booting the linux kernel with bootarg memory tag mem=128M, and run a simple program which use memory beyond 64MB. Then the system crashed with the "kernel NULL pointer dereference" message.

I found there is a CONFIG_DISCONTIGMEM defined in src/include/asm-arm/memory.h, but when I look into "Kernel Features/Memory model" in make menuconfig, there is only "Flat Memory" option.

How and where should I modify the config/code to make the Linux kernel works on the full 128MB?

share|improve this question
Welcome to Unix & Linux. I think this question is sufficiently on-topic (we can help you with U-Boot and configuration options, though writing new C code is outside our normal activities), but I'm afraid it's a bit out of our usual expertise. If you don't get a response here, you could try asking for your question to be migrated to Electrical Engineering or Stack Overflow (don't repost: reply to this comment and I can flag a moderator to have the question moved), but there too it would be borderline at best. – Gilles Jan 31 '13 at 23:32
I think the ideal site for such questions would be the newly proposed Embedded Programming and Design site. Unfortunately, it'll be a while before the site has enough momentum to start. Nonetheless, since you're interested in this topic, consider joining the proposal. – Gilles Jan 31 '13 at 23:33

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.