Changeset 44b2b78 in mainline


Ignore:
Timestamp:
2013-04-01T15:19:28Z (11 years ago)
Author:
Beniamino Galvani <b.galvani@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
409a996
Parents:
c882505
Message:

Detect amount of available memory using mailbox

Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • HelenOS.config

    rc882505 r44b2b78  
    505505! [(CONFIG_HID_OUT=generic|CONFIG_HID_OUT=serial)&PLATFORM=arm32&MACHINE=beagleboardxm] CONFIG_AMDM37X_UART (y/n)
    506506
     507% Support for BCM2835 mailbox
     508! [PLATFORM=arm32&MACHINE=raspberrypi] CONFIG_BCM2835_MAILBOX (y/n)
     509
    507510% Support for i8042 controller
    508511! [CONFIG_PC_KBD=y] CONFIG_I8042 (y)
  • kernel/arch/arm32/src/mach/raspberrypi/raspberrypi.c

    rc882505 r44b2b78  
    3939#include <genarch/drivers/bcm2835/irc.h>
    4040#include <genarch/drivers/bcm2835/timer.h>
     41#include <genarch/drivers/bcm2835/mbox.h>
    4142#include <arch/mm/page.h>
    4243#include <mm/page.h>
     
    5051#include <ddi/device.h>
    5152
    52 #define RPI_MEMORY_START 0
    53 /*
    54  * TODO: size of available memory depends on hw model and
    55  * bootloader configuration, we should detect it somehow.
    56  * 128MB should be a safe value for now.
    57  * */
    58 #define RPI_MEMORY_SIZE  0x08000000
    59 #define RPI_MEMORY_SKIP  0x8000
     53#define RPI_DEFAULT_MEMORY_START        0
     54#define RPI_DEFAULT_MEMORY_SIZE         0x08000000
     55#define RPI_MEMORY_SKIP                 0x8000
    6056
    6157static void raspberrypi_init(void);
     
    143139static void raspberrypi_get_memory_extents(uintptr_t *start, size_t *size)
    144140{
    145         *start = RPI_MEMORY_START + RPI_MEMORY_SKIP;
    146         *size  = RPI_MEMORY_SIZE - RPI_MEMORY_SKIP;
     141        uint32_t mbase, msize;
     142
     143        if (bcm2835_prop_get_memory(&mbase, &msize)) {
     144                *start = mbase + RPI_MEMORY_SKIP;
     145                *size  = msize - RPI_MEMORY_SKIP;
     146        } else {
     147                /* Stick to safe default values */
     148                *start = RPI_DEFAULT_MEMORY_START + RPI_MEMORY_SKIP;
     149                *size  = RPI_DEFAULT_MEMORY_SIZE - RPI_MEMORY_SKIP;
     150        }
    147151}
    148152
  • kernel/genarch/Makefile.inc

    rc882505 r44b2b78  
    121121endif
    122122
     123ifeq ($(CONFIG_BCM2835_MAILBOX),y)
     124        GENARCH_SOURCES += \
     125                genarch/src/drivers/bcm2835/mbox.c
     126endif
     127
    123128ifeq ($(CONFIG_VIA_CUDA),y)
    124129        GENARCH_SOURCES += \
Note: See TracChangeset for help on using the changeset viewer.