[PATCH 10/14] arm: reimplement startup code in C
Shinya Kuribayashi
shinya.kuribayashi.px at renesas.com
Mon Apr 26 21:45:37 EDT 2010
Sashca,
On 4/23/2010 6:03 PM, Sascha Hauer wrote:
> Lets translate the startup code to a language we all understand better.
> Tested on pcm038 (arm v5) and pcm043 (arm v6).
>
> Signed-off-by: Sascha Hauer<s.hauer at pengutronix.de>
> ---
> arch/arm/cpu/Makefile | 6 +-
> arch/arm/cpu/start-arm.S | 248 ------------------------------------
> arch/arm/cpu/start.c | 107 ++++++++++++++++
> arch/arm/include/asm/barebox-arm.h | 3 +
> arch/arm/lib/barebox.lds.S | 2 +-
> 5 files changed, 112 insertions(+), 254 deletions(-)
> delete mode 100644 arch/arm/cpu/start-arm.S
> create mode 100644 arch/arm/cpu/start.c
Some random comments:
* Even though I'm an ARM newbie, but with some training I've found
that the existing startup code originating from U-Boot is
reasonably simple and easy to read.
Current code is not as bad as you ARM experts feel it is ;-)
* I also agree that C version tells us a lot nicer than aseemblers
about what's going on in the sequence, especially
board_init_lowlevel_return() part looks quite easy-to-follow.
* That said, I don't think implementing startup code using inline
assemblers _with_Extended_ASM_ is easy to maintain. Are you
really happy with such core parts implemented in 'C'?
This patch has proved that we could write even the startup seq-
ences with 'C' (with extended asm.), but that doesn't necessarily
means that's the way to go.
* I don't think that all startup sequences necessarily need to be
impelmented in 'C'.
Board_init_lowlevel() is worth trying 'C' as it does a bunch of
machine-specific register operations, which are easy-to-follow
if they're implemented in 'C'. Patch 12/14 and 14/14 look very
nice!
Board_init_lowlevel_return() is also worth trying as well.
However, having ASM and C code for the startup sequences might be
slightly a mess, hmm.
* Leaving good comments, for example describing C version of start-
up code somewhere in the tree, might suffice.
Note that I'm not objecting these changes. I'm all for your changes
in the project, especially on steering ARM area.
--
Shinya Kuribayashi
Renesas Electronics
More information about the barebox
mailing list