All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matthias Weisser <weisserm@arcor.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [[PATCH V2]] sandbox: Add improved RAM simulation
Date: Thu, 03 Nov 2011 18:55:12 +0100	[thread overview]
Message-ID: <4EB2D580.4010405@arcor.de> (raw)
In-Reply-To: <CAPnjgZ3MfWE=xk45132vgLUXDB_4om5UKaB21LTkmK21LSNMVw@mail.gmail.com>

Am 02.11.2011 21:56, schrieb Simon Glass:
> On Wed, Nov 2, 2011 at 1:12 PM, Matthias Weisser <weisserm@arcor.de> wrote:
>> Using mmap to allocate memory from the OS for RAM simulation we can use
>> u-boots own malloc implementation.
>>
>> Signed-off-by: Matthias Weisser <weisserm@arcor.de>
>> ---
>> Changes in V2:
>>  Removed the address hint for mmap
>>  Removed the special handling of dlmalloc in common
>>  Set gd->bd->bi_dram[0].start to 0 again
>>
>>  arch/sandbox/cpu/os.c    |    7 +++++++
>>  arch/sandbox/lib/board.c |   17 ++++++++++-------
>>  common/Makefile          |    2 --
>>  include/os.h             |    8 ++++++++
>>  4 files changed, 25 insertions(+), 9 deletions(-)
>>
>> diff --git a/arch/sandbox/cpu/os.c b/arch/sandbox/cpu/os.c
>> index 6c175d4..05f91f2 100644
>> --- a/arch/sandbox/cpu/os.c
>> +++ b/arch/sandbox/cpu/os.c
>> @@ -24,6 +24,7 @@
>>  #include <unistd.h>
>>  #include <sys/types.h>
>>  #include <sys/stat.h>
>> +#include <sys/mman.h>
>>
>>  #include <os.h>
>>
>> @@ -53,3 +54,9 @@ void os_exit(int exit_code)
>>  {
>>        exit(exit_code);
>>  }
>> +
>> +void *os_malloc(size_t length)
>> +{
>> +       return mmap(NULL, length, PROT_READ | PROT_WRITE,
>> +                       MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
>> +}
>> diff --git a/arch/sandbox/lib/board.c b/arch/sandbox/lib/board.c
>> index ae5a517..d71cd6f 100644
>> --- a/arch/sandbox/lib/board.c
>> +++ b/arch/sandbox/lib/board.c
>> @@ -45,8 +45,12 @@
>>  #include <version.h>
>>  #include <serial.h>
>>
>> +#include <os.h>
>> +
>>  DECLARE_GLOBAL_DATA_PTR;
>>
>> +static gd_t gd_mem;
>> +
>>  /************************************************************************
>>  * Init Utilities                                                      *
>>  ************************************************************************
>> @@ -147,7 +151,7 @@ void board_init_f(ulong bootflag)
>>        uchar *mem;
>>        unsigned long addr_sp, addr, size;
>>
>> -       gd = malloc(sizeof(gd_t));
>> +       gd = &gd_mem;
>>        assert(gd);
>>
>>        memset((void *)gd, 0, sizeof(gd_t));
>> @@ -158,7 +162,8 @@ void board_init_f(ulong bootflag)
>>        }
>>
>>        size = CONFIG_SYS_SDRAM_SIZE;
>> -       mem = malloc(size);
>> +       mem = os_malloc(CONFIG_SYS_SDRAM_SIZE);
>> +
> 
> Just a suggestion if you like: perhaps also assert that
> CONFIG_SYS_SDRAM_SIZE is greater than TOTAL_MALLOC_LEN. Or assert
> lower down at the end of board_init_f() that addr_sp is still greatrer
> than mem?

I will leave out this point for a separate patch.

>>        assert(mem);
>>        gd->ram_buf = mem;
>>        addr = (ulong)(mem + size);
>> @@ -214,11 +219,9 @@ void board_init_r(gd_t *id, ulong dest_addr)
>>        post_output_backlog();
>>  #endif
>>
>> -#if 0 /* Sandbox uses system malloc for now */
>> -       /* The Malloc area is immediately below the monitor copy in DRAM */
>> -       malloc_start = dest_addr - TOTAL_MALLOC_LEN;
>> -       mem_malloc_init(malloc_start, TOTAL_MALLOC_LEN);
>> -#endif
>> +       /* The Malloc area is at the top of simulated DRAM */
>> +       mem_malloc_init(gd->ram_buf + gd->ram_size - TOTAL_MALLOC_LEN,
>> +                       TOTAL_MALLOC_LEN);
> 
> I get:
> 
> board.c:224:4: warning: passing argument 1 of ?mem_malloc_init? makes
> integer from pointer without a cast [enabled by default]

Fixed. Will send an updated version.

>>
>>        /* initialize environment */
>>        env_relocate();
>> diff --git a/common/Makefile b/common/Makefile
>> index 1b672ad..919be42 100644
>> --- a/common/Makefile
>> +++ b/common/Makefile
>> @@ -29,9 +29,7 @@ LIB   = $(obj)libcommon.o
>>  ifndef CONFIG_SPL_BUILD
>>  COBJS-y += main.o
>>  COBJS-y += command.o
>> -ifndef CONFIG_SANDBOX
>>  COBJS-y += dlmalloc.o
>> -endif
> 
> I think this can be removed. It was added unconditionally lower down
> in the Makefile by this commit:
> 
> 2d01dd9 omap: spl: fix build break due to changes in FAT
> 
> (incidentally this is what has broken sandbox).

Will do.

Matthias

  reply	other threads:[~2011-11-03 17:55 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-01 14:07 [U-Boot] [PATCH] sandbox: Add improved RAM simulation Matthias Weisser
2011-11-01 15:28 ` Mike Frysinger
2011-11-01 16:05   ` Matthias Weisser
2011-11-01 16:45     ` Simon Glass
2011-11-01 18:37       ` Matthias Weisser
2011-11-01 18:52         ` Mike Frysinger
2011-11-01 19:01           ` Matthias Weisser
2011-11-01 20:10             ` Mike Frysinger
2011-11-02 18:35               ` Matthias Weisser
2011-11-02 19:20                 ` Mike Frysinger
2011-11-01 17:12     ` Mike Frysinger
2011-11-01 16:42 ` Simon Glass
2011-11-02 20:12 ` [U-Boot] [[PATCH V2]] " Matthias Weisser
2011-11-02 20:39   ` Mike Frysinger
2011-11-02 20:56   ` Simon Glass
2011-11-03 17:55     ` Matthias Weisser [this message]
2011-11-03 18:02 ` [U-Boot] [PATCH V3] " Matthias Weisser
2011-11-03 18:05   ` Mike Frysinger
2011-11-03 22:55   ` Simon Glass
2011-11-05 10:40 ` [U-Boot] [PATCH V4] " Matthias Weisser
2011-11-05 15:05   ` Simon Glass
2011-11-05 16:47   ` Mike Frysinger
2011-12-02 17:08   ` Mike Frysinger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4EB2D580.4010405@arcor.de \
    --to=weisserm@arcor.de \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.