Skip to content
Snippets Groups Projects
Commit 3f397782 authored by Stephen Warren's avatar Stephen Warren Committed by Albert ARIBAUD
Browse files

ARM: rpi_b: use bcm2835 mbox driver to get memory size


The firmware running on the bcm2835 SoC's VideoCore CPU determines how
much of the system RAM is available for use by the ARM CPU. Previously,
U-Boot assumed that only 128MB was available, since this was the
smallest value configured by any public firmware. However, we can now
query the actual value at run-time from the firmware using the mbox
property protocol.

Signed-off-by: default avatarStephen Warren <swarren@wwwdotorg.org>
parent 88077280
No related branches found
No related tags found
No related merge requests found
......@@ -15,13 +15,32 @@
*/
#include <common.h>
#include <asm/arch/mbox.h>
#include <asm/global_data.h>
DECLARE_GLOBAL_DATA_PTR;
struct msg_get_arm_mem {
struct bcm2835_mbox_hdr hdr;
struct bcm2835_mbox_tag_get_arm_mem get_arm_mem;
u32 end_tag;
};
int dram_init(void)
{
gd->ram_size = CONFIG_SYS_SDRAM_SIZE;
ALLOC_ALIGN_BUFFER(struct msg_get_arm_mem, msg, 1, 16);
int ret;
BCM2835_MBOX_INIT_HDR(msg);
BCM2835_MBOX_INIT_TAG(&msg->get_arm_mem, GET_ARM_MEMORY);
ret = bcm2835_mbox_call_prop(BCM2835_MBOX_PROP_CHAN, &msg->hdr);
if (ret) {
printf("bcm2835: Could not query ARM memory size\n");
return -1;
}
gd->ram_size = msg->get_arm_mem.body.resp.mem_size;
return 0;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment