
Dear "mazen.e",
In message 1401191218533-180832.post@n7.nabble.com you wrote:
On the other hand, according to my basic understanding (Please correct me if I am wrong), U-boot can pass through the bootargs env variable information about available memory in the platform. For instance, bootargs mem=512M@0xA0000000 .. instructs the kernel that the available memory is 512 MB starting @ 0xA0000000, in such case the rest of the platform memory is not even visible to the kernel and its MMU. Is this conclusion true?
Actually, today we use the device tree to pass this information.
And it is not correct that any memory outside the specification of "mem=" is not _visible_ to the kernel. Please understand that it is really up to the kernel (or whatever program you boot) to set up hiw own memory map. In case of the Linux, it is the Linux kernel itself which implements the "mem=" ABI - and if you use it, it choses to _ignore_ any other possibly existing memory regions. But this is totally voluntary, and done only in Linux. There is nothing that U-Boot does here, so the term "not visible" is only true in the sense "because the kernel decides to close both eyes and never will even attempt to look in that direction".
Best regards,
Wolfgang Denk