From: "\"Seunghyeon Rhee (이승현)\"" <seunghyeon@lpmtec.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] S3C6400/SMDK6400: fix stack_setup in start.S
Date: Mon, 02 Nov 2009 11:46:05 +0900 [thread overview]
Message-ID: <4AEE47ED.7030504@lpmtec.com> (raw)
Dear Minkyu Kang,
2009/11/2 Minkyu Kang <promsoft@gmail.com>:
> Dear Seunghyeon Rhee
>
> 2009/10/31 "Seunghyeon Rhee (???)" <seunghyeon@lpmtec.com>:
>> stack_setup is modified to initialize the stack on the correct address in
>> DRAM accroding to the typical memory configuration described in
>> README and the related CONFIG_* macro definitions. This makes macro
>> CONFIG_MEMORY_UPPER_CODE no longer necessry. This was introduced
>> and used only by this board for some unclear reason. The definition of
>> this macro is removed because it's not referenced elsewhere.
>>
>> Signed-off-by: Seunghyeon Rhee <seunghyeon@lpmtec.com>
>> ---
>> cpu/arm1176/start.S | 7 +------
>> include/configs/smdk6400.h | 2 --
>> 2 files changed, 1 insertions(+), 8 deletions(-)
>>
>> diff --git a/cpu/arm1176/start.S b/cpu/arm1176/start.S
>> index cb891df..1ecb3b9 100644
>> --- a/cpu/arm1176/start.S
>> +++ b/cpu/arm1176/start.S
>> @@ -241,16 +241,11 @@ mmu_enable:
>> skip_hw_init:
>> /* Set up the stack */
>> stack_setup:
>> -#ifdef CONFIG_MEMORY_UPPER_CODE
>> - ldr sp, =(CONFIG_SYS_UBOOT_BASE + CONFIG_SYS_UBOOT_SIZE - 0xc)
>> -#else
>> - ldr r0, _TEXT_BASE /* upper 128 KiB: relocated uboot */
>> + ldr r0, =CONFIG_SYS_UBOOT_BASE /* base of copy in
DRAM */
>
> this change is unnecessary, TEXT_BASE and CONFIG_SYS_UBOOT_BASE must
be same.
That's true for the body of U-Boot but not for SPL, where TEXT_BASE is
defined to be '0'.
Please refer to board/samsung/smdk6400/config.mk. On the other hand,
CONFIG_SYS_UBOOT_BASE is always dependent on DRAM's base.
In SPL, the base of the code should be '0' (the steppingstone memory)
and then the stack
is located below '0' - not a valid area. If SPL itself requires no
stack, it should be no
problem. But start.S calls nand_boot function right after the stack is
badly set up in the air.
My test results are like the following:
with CONFIG_MEMORY_UPPER_CODE defined : OK
with CONFIG_MEMORY_UPPER_CODE undefined :
- SPL bypassed (U-Boot downloaded to DRAM directly by USB monitor
program) : OK
- through SPL : Not OK (seems to fail for SPL downloading the code to DRAM)
I think CONFIG_MEMORY_UPPER_CODE was tested for the case it's defined
but not
enough for the case it's not defined. Would you check it again?
> btw, is there need CONFIG_SYS_UBOOT_BASE define?
>
If you are not sure, why did you use CONFIG_SYS_UBOOT_BASE for the
case CONFIG_MEMORY_UPPER_CODE is defined while you use TEXT_BASE
otherwise? I think the unnecessary macro definition here is not
CONFIG_..._BASE but
CONFIG_..._CODE. TEXT_BASE and CONFIG_..._BASE have their own meanings and
so both are necessary.
Best regards,
Seunghyeon
>> sub r0, r0, #CONFIG_SYS_MALLOC_LEN /* malloc
>> area */
>> sub r0, r0, #CONFIG_SYS_GBL_DATA_SIZE /*
>> bdinfo */
>> sub sp, r0, #12 /* leave 3 words for abort-stack */
>>
>> -#endif
>> -
>> clear_bss:
>> ldr r0, _bss_start /* find start of bss segment */
>> ldr r1, _bss_end /* stop here */
>> diff --git a/include/configs/smdk6400.h b/include/configs/smdk6400.h
>> index f6e1221..f644cd2 100644
>> --- a/include/configs/smdk6400.h
>> +++ b/include/configs/smdk6400.h
>> @@ -49,8 +49,6 @@
>> #define CONFIG_ENABLE_MMU
>> #endif
>>
>> -#define CONFIG_MEMORY_UPPER_CODE
>> -
>> #define CONFIG_SETUP_MEMORY_TAGS
>> #define CONFIG_CMDLINE_TAG
>> #define CONFIG_INITRD_TAG
>> --
>> 1.6.2.5
>>
>>
>> --
>> Seunghyeon Rhee, Ph.D. / Director
>> LPM Technology Inc.
>> T +82-70-8255-6007 F +82-2-6442-6462
>> M +82-10-2790-0657
>> _______________________________________________
>> U-Boot mailing list
>> U-Boot at lists.denx.de
>> http://lists.denx.de/mailman/listinfo/u-boot
>>
>
> Thanks for patch :)
> Minkyu Kang
> --
> from. prom.
> www.promsoft.net
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
>
--
Seunghyeon Rhee, Ph.D. / Director
LPM Technology Inc.
T +82-70-8255-6007 F +82-2-6442-6462
M +82-10-2790-0657
next reply other threads:[~2009-11-02 2:46 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-11-02 2:46 "Seunghyeon Rhee (이승현)" [this message]
2009-11-10 10:58 ` [U-Boot] [PATCH] S3C6400/SMDK6400: fix stack_setup in start.S Minkyu Kang
2009-11-13 7:35 ` Minkyu Kang
2009-11-13 7:49 ` 이승현
2009-11-13 9:29 ` Minkyu Kang
-- strict thread matches above, loose matches on Subject: below --
2009-10-31 3:03 "Seunghyeon Rhee (이승현)"
2009-11-02 1:12 ` Minkyu Kang
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=4AEE47ED.7030504@lpmtec.com \
--to=seunghyeon@lpmtec.com \
--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.