All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michal Simek <monstr@monstr.eu>
To: u-boot@lists.denx.de
Subject: [U-Boot] Microblaze stack clobbered in d4e8ada0f6d51e0e3b80790fb9375ac8910f5352 (Consolidate arch-specific mem_malloc_init() implementations)
Date: Mon, 07 Dec 2009 11:12:07 +0100	[thread overview]
Message-ID: <4B1CD4F7.10702@monstr.eu> (raw)
In-Reply-To: <4B199475.3020104@ece.ubc.ca>

Hi Graeme,

Graeme Smecher wrote:
> Hi Michal,
> 
> It appears there's a problem with the default memory map in u-boot's 
> "microblaze-generic" configuration. We have (from 
> include/configs/microblaze-generic.h):
> 
> 
>    /* ddr sdram - main memory */
>    #define    CONFIG_SYS_SDRAM_BASE        XILINX_RAM_START
>    #define    CONFIG_SYS_SDRAM_SIZE        XILINX_RAM_SIZE
>    #define    CONFIG_SYS_MEMTEST_START    CONFIG_SYS_SDRAM_BASE
>    #define    CONFIG_SYS_MEMTEST_END        (CONFIG_SYS_SDRAM_BASE + 
> 0x1000)
> 
>    /* global pointer */
>    #define    CONFIG_SYS_GBL_DATA_SIZE    128 /* size of global data */
>    /* start of global data */
>    #define    CONFIG_SYS_GBL_DATA_OFFSET    (CONFIG_SYS_SDRAM_BASE + 
> CONFIG_SYS_SDRAM_SIZE - CONFIG_SYS_GBL_DATA_SIZE)
> 
>    /* monitor code */
>    #define    SIZE            0x40000
>    #define    CONFIG_SYS_MONITOR_LEN        (SIZE - 
> CONFIG_SYS_GBL_DATA_SIZE)
>    #define    CONFIG_SYS_MONITOR_BASE    (CONFIG_SYS_GBL_DATA_OFFSET - 
> CONFIG_SYS_MONITOR_LEN)
>    #define    CONFIG_SYS_MONITOR_END        (CONFIG_SYS_MONITOR_BASE + 
> CONFIG_SYS_MONITOR_LEN)
>    #define    CONFIG_SYS_MALLOC_LEN        SIZE
>    #define    CONFIG_SYS_MALLOC_BASE        (CONFIG_SYS_MONITOR_BASE - 
> CONFIG_SYS_MALLOC_LEN)
> 
>    /* stack */
>    #define    CONFIG_SYS_INIT_SP_OFFSET    CONFIG_SYS_MONITOR_BASE
> 
> 
> This builds a memory map like the following:
> 
>    0x47f80000 - 0x47fbffff: malloc region
>    0x47fc0000 - 0x47ffff7f: monitor
>    0x47ffff80 - 0x47ffffff: globals
> 
> The initial SP is set to 0x47fc0000. This collides with the malloc 
> region, and when the malloc region is cleared during mem_malloc_init(), 
> the stack is wiped out. This includes the return address from 
> mem_malloc_init(), among other things.
> 
> Can you confirm that CONFIG_SYS_INIT_SP_OFFSET should be 
> CONFIG_SYS_MALLOC_BASE instead of CONFIG_SYS_MONITOR_BASE? That agrees 
> with your memory diagram at include/configs/microblaze-generic.h:103.

yes, you are correct.
Please create proper patch and I will add it to mainline.

Thanks,
Michal


> 
> thanks,
> Graeme


-- 
Michal Simek, Ing. (M.Eng)
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel 2.6 Microblaze Linux - http://www.monstr.eu/fdt/
Microblaze U-BOOT custodian

      reply	other threads:[~2009-12-07 10:12 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-12-04 23:00 [U-Boot] Microblaze stack clobbered in d4e8ada0f6d51e0e3b80790fb9375ac8910f5352 (Consolidate arch-specific mem_malloc_init() implementations) Graeme Smecher
2009-12-07 10:12 ` Michal Simek [this message]

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=4B1CD4F7.10702@monstr.eu \
    --to=monstr@monstr.eu \
    --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.