All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 1/7] common/board_f: add setup of initial stack frame for MIPS
Date: Thu, 20 Nov 2014 17:54:35 +0100	[thread overview]
Message-ID: <546E1CCB.7030208@gmail.com> (raw)
In-Reply-To: <CAPnjgZ2bsUCR9FKcQdYxZmM6_=+1yqmN4uYz-0gEoU3kkjQZvw@mail.gmail.com>



On 19.11.2014 23:22, Simon Glass wrote:
> Hi Daniel,
> 
> On 19 November 2014 16:59, Daniel Schwierzeck
> <daniel.schwierzeck@gmail.com> wrote:
>> Hi Simon,
>>
>> On 17.11.2014 07:24, Simon Glass wrote:
>>> Hi Daniel,
>>>
>>> On 15 November 2014 22:46, Daniel Schwierzeck
>>> <daniel.schwierzeck@gmail.com> wrote:
>>>> The MIPS specific setup of the initial stack frame was not
>>>> ported to generic board_f.
>>>>
>>>> Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
>>>>
>>>> ---
>>>>
>>>>  common/board_f.c | 8 +++++++-
>>>>  1 file changed, 7 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/common/board_f.c b/common/board_f.c
>>>> index b5bebc9..57e8a67 100644
>>>> --- a/common/board_f.c
>>>> +++ b/common/board_f.c
>>>> @@ -579,7 +579,7 @@ static int reserve_stacks(void)
>>>>         gd->irq_sp = gd->start_addr_sp;
>>>>  # endif
>>>>  #else
>>>> -# ifdef CONFIG_PPC
>>>> +# if defined(CONFIG_PPC) || defined(CONFIG_MIPS)
>>>>         ulong *s;
>>>>  # endif
>>>>
>>>> @@ -609,6 +609,12 @@ static int reserve_stacks(void)
>>>>         s = (ulong *) gd->start_addr_sp;
>>>>         *s = 0; /* Terminate back chain */
>>>>         *++s = 0; /* NULL return address */
>>>> +# elif defined(CONFIG_MIPS)
>>>> +       /* Clear initial stack frame */
>>>> +       s = (ulong *) gd->start_addr_sp;
>>>> +       *s-- = 0;
>>>> +       *s-- = 0;
>>>> +       gd->start_addr_sp = (ulong) s;
>>>>  # endif /* Architecture specific code */
>>>
>>> Great to see this happening.
>>>
>>> There is a comment in the code here:
>>>
>>> /*
>>> * Handle architecture-specific things here
>>> * TODO(sjg at chromium.org): Perhaps create arch_reserve_stack()
>>> * to handle this and put in arch/xxx/lib/stack.c
>>> */
>>>
>>> Perhaps we should do this. You could create a weak function which is
>>> called for all archs, and implement it just for MIPS at present. I'm
>>> not sure about a good prototype. Perhaps pass it gd and comment that
>>> it is allowed to change memory to set up the stack, and adjust
>>> gd->start_addr_sp and other stack-related values.
>>>
>>> Also while I see that PPC writes above the stack pointer, I'm not sure
>>> why it is valid. Should you in fact use:
>>>
>>> *--s = 0;
>>> *--s = 0;
>>
>> I'd like to have those patches merged for 2015.01. So I want to keep the
>> current code to not break anything. Maybe this is not necessary at all.
>> The MIPS Malta board already uses generic board and does not seem to
>> have any problems.
> 
> I don't see a problem with merging this for 2015.01. Are you saying
> you don't think it is needed but can't be sure? So you want to merge
> it and see what people report?

that code is taken unmodified from arch/mips/lib/board.c to not change
or break anything. But that code is old and maybe copied from PowerPC in
the early phases of U-Boot. I'm only saying that I need to investigate
if that code could be dropped or not. But that is a task for the next
merge window.

> 
> In that case I think you should add a comment to that effect, but also
> do the function as I mentioned above. We are trying to remove the
> arch-specific code in this file and certainly don't want to add more.
> 

ok I'll send an updated patch.

-- 
- Daniel

  reply	other threads:[~2014-11-20 16:54 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-15 22:46 [U-Boot] [PATCH 0/7] MIPS: convert all boards to generic-board Daniel Schwierzeck
2014-11-15 22:46 ` [U-Boot] [PATCH 1/7] common/board_f: add setup of initial stack frame for MIPS Daniel Schwierzeck
2014-11-17  6:24   ` Simon Glass
2014-11-19 16:59     ` Daniel Schwierzeck
2014-11-19 22:22       ` Simon Glass
2014-11-20 16:54         ` Daniel Schwierzeck [this message]
2014-11-20 17:22           ` Simon Glass
2014-11-21 20:46             ` Daniel Schwierzeck
2014-11-21 22:22               ` Simon Glass
2014-11-24 22:20               ` Tom Rini
2014-11-25 13:32                 ` Daniel Schwierzeck
2014-11-24 22:12   ` [U-Boot] [U-Boot, " Tom Rini
2014-11-15 22:46 ` [U-Boot] [PATCH 2/7] common/board_f: fix gcc warning on MIPS64 Daniel Schwierzeck
2014-11-17  6:26   ` Simon Glass
2014-11-24 22:12   ` [U-Boot] [U-Boot, " Tom Rini
2014-11-15 22:46 ` [U-Boot] [PATCH 3/7] MIPS: dbau1x00: switch to generic board Daniel Schwierzeck
2014-11-15 22:46 ` [U-Boot] [PATCH 4/7] MIPS: pb1x00: " Daniel Schwierzeck
2014-11-15 22:46 ` [U-Boot] [PATCH 5/7] MIPS: qemu_mips: " Daniel Schwierzeck
2014-11-15 22:46 ` [U-Boot] [PATCH 6/7] MIPS: vct: " Daniel Schwierzeck
2014-11-16  9:17   ` Stefan Roese
2014-11-15 22:46 ` [U-Boot] [PATCH 7/7] MIPS: remove board.c Daniel Schwierzeck

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=546E1CCB.7030208@gmail.com \
    --to=daniel.schwierzeck@gmail.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.