From: Albert ARIBAUD <albert.u.boot@aribaud.net>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v8 31/31] arm: Remove duplicated start.S code
Date: Fri, 1 Mar 2013 22:56:50 +0100 [thread overview]
Message-ID: <20130301225650.5d3f7f93@lilith> (raw)
In-Reply-To: <1818681530.215073.1362153044809.JavaMail.root@advansee.com>
Hi Beno?t,
On Fri, 1 Mar 2013 16:50:44 +0100 (CET), Beno?t Th?baudeau
<benoit.thebaudeau@advansee.com> wrote:
> Hi Albert,
>
> On Friday, March 1, 2013 4:46:07 PM, Albert ARIBAUD wrote:
> > Hi Beno?t,
> >
> > On Fri, 1 Mar 2013 13:10:40 +0100, Beno?t Th?baudeau
> > <benoit.thebaudeau@advansee.com> wrote:
> >
> > > Factorize start.S code as much as possible.
> > >
> > > Functions that may need to be customized for some start.S are defined weak
> > > for
> > > that purpose.
> > >
> > > relocate_code_prepare() and relocate_code_finish() are introduced as hooks
> > > to be
> > > executed at the beginning and at the end of relocate_code() if needed by
> > > some
> > > start.S, e.g. for special cache or MMU operations.
> >
> > NAK.
> >
> > 1. I don't like this idea of planting hooks inside relocate-code().
> > This function is about relocating code, not about MMU stuff. If there
> > are any MMU steps to be performed between calls to board_init_f(),
> > relocate_code() or board_init_r(), I want them laid out as calls of
> > their own right in crt0.S.
>
> I also don't like it. The finish hook was used by SMDK6400 before it was
> removed, and the prepare hook is still used by pxa.
>
> So is it OK for you if I just drop relocate_code_finish() and move and
> rename the call to relocate_code_prepare() to crt0.S?
Fine, except for the name: "prepare for relocation" is what every
instruction does from board_init_f() return to relocate_code() entry.
This 'hook' does only a small part, if at all, of preparing for
relocation, and this part must get a less improper name. If we are
enabling the I-cache here, then let's name the function accordingly.
Better yet, let us find out if we do need to enable the instruction
cache here at all.
> > 2. If we're going to factorize out relocate_code() from the various
> > start.S files, I want it moved not in crt0.S but in its own file.
>
> It is not in crt0.S, but in arch/arm/include/asm/start_marco.S, which is
> almost its own file apart from another macro.
I do not want it as a macro. It is and should stay a function.
Regarding your added comment:
Actually, I'd stopped dead at the relocate_code() changes, but the
other macros I don't like much either; I don't see the point of it.
To be faire, I don't see the point of the whole patch wrt the
objective.
> And in case you ask, with relocate_code() as a function in its own
> file instead of a macro called from start.S, it does not work because
> of the _start-relative word values that require relocate_code() to be
> in _start's section.
How does it "not work" exactly?
> > This
> > way, i) people can easily create binaries which use crt0.S but do not
> > relocate, ii) people who want to make relocate_code() a C function
> > will have it easier, and iii) crt0.S keeps being the ugly ASM glue
> > needed for flash inits, relocation and RAM inits to have a C proper
> > run-time environment.
>
> Which is already the case with this implementation?
Not with relocate_code() as a macro, though.
This whole thing/way of "factorizing" start.S using macros feels wrong
to me; this departs from what I have started with crt0.S, where code
is actually really factorized in a single file which is actually a
compilation unit, not a helper file.
Do you need patch 31/31 in your series?
> > Incidentally, CC:ing Simon:
> >
> > > Signed-off-by: Beno?t Th?baudeau <benoit.thebaudeau@advansee.com>
> > > ---
> > > Changes in v8:
> > > - New patch.
> > >
> > > Changes in v7: None
> > > Changes in v6: None
> > > Changes in v5: None
> > > Changes in v4: None
> > > Changes in v3: None
> > > Changes in v2: None
> >
> > Is this produced by patman?
>
> Yes [...]
Ok, then, don't bother to fix patman's behavior manually in your
own patches -- I'll try and see if I can submit a patch to fix patman
itself.
> Best regards,
> Beno?t
Amicalement,
--
Albert.
next prev parent reply other threads:[~2013-03-01 21:56 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-01 12:10 [U-Boot] [PATCH v8 01/31] mtd: nand: Introduce CONFIG_SYS_NAND_BUSWIDTH_16BIT Benoît Thébaudeau
2013-03-01 12:10 ` [U-Boot] [PATCH v8 02/31] mtd: nand: mxc_nand: Fix is_16bit_nand() Benoît Thébaudeau
2013-03-01 12:10 ` [U-Boot] [PATCH v8 03/31] nand: mxc: Prepare to add support for i.MX5 Benoît Thébaudeau
2013-03-01 12:10 ` [U-Boot] [PATCH v8 04/31] nand: mxc: Add " Benoît Thébaudeau
2013-03-01 15:33 ` Fabio Estevam
2013-03-01 15:30 ` Benoît Thébaudeau
2013-03-01 12:10 ` [U-Boot] [PATCH v8 05/31] imx: mx5: lowlevel_init: Simplify code Benoît Thébaudeau
2013-03-01 12:10 ` [U-Boot] [PATCH v8 06/31] imx: mx53ard: Add support for NAND Flash Benoît Thébaudeau
2013-03-01 12:10 ` [U-Boot] [PATCH v8 07/31] nand: mxc: Fix debug trace in mxc_nand_read_oob_syndrome() Benoît Thébaudeau
2013-03-01 12:10 ` [U-Boot] [PATCH v8 08/31] nand: mxc: Use appropriate page number in syndrome functions Benoît Thébaudeau
2013-03-01 12:10 ` [U-Boot] [PATCH v8 09/31] arm: start.S: Fix _TEXT_BASE for SPL Benoît Thébaudeau
2013-03-01 21:17 ` Tom Rini
2013-03-01 12:10 ` [U-Boot] [PATCH v8 10/31] arm: relocate_code() is no longer noreturn Benoît Thébaudeau
2013-03-01 12:10 ` [U-Boot] [PATCH v8 11/31] arm1136: Remove redundant relocate_code() return Benoît Thébaudeau
2013-03-01 12:10 ` [U-Boot] [PATCH v8 12/31] arm: relocate_code(): Remove useless relocation offset computation Benoît Thébaudeau
2013-03-01 12:10 ` [U-Boot] [PATCH v8 13/31] arm: relocate_code(): Use __image_copy_end for end of relocation Benoît Thébaudeau
2013-03-01 12:10 ` [U-Boot] [PATCH v8 14/31] arm: crt0.S: Remove bogus .globl Benoît Thébaudeau
2013-03-01 12:10 ` [U-Boot] [PATCH v8 15/31] autoconfig.mk: Make it possible to define configs from other configs Benoît Thébaudeau
2013-03-01 21:20 ` Tom Rini
2013-03-01 21:30 ` Benoît Thébaudeau
2013-03-01 12:10 ` [U-Boot] [PATCH v8 16/31] Makefile: Change CONFIG_SPL_PAD_TO to image offset Benoît Thébaudeau
2013-03-01 12:10 ` [U-Boot] [PATCH v8 17/31] imx: Fix automatic make targets for imx images Benoît Thébaudeau
2013-03-01 12:10 ` [U-Boot] [PATCH v8 18/31] nand: mxc: Switch NAND SPL to generic SPL Benoît Thébaudeau
2013-03-01 12:10 ` [U-Boot] [PATCH v8 19/31] arm926ejs: Remove deprecated and now unused NAND SPL Benoît Thébaudeau
2013-03-01 12:10 ` [U-Boot] [PATCH v8 20/31] arm: Remove unused relocate_code() parameters Benoît Thébaudeau
2013-03-01 12:10 ` [U-Boot] [PATCH v8 21/31] Makefile: Move SHELL setup to config.mk Benoît Thébaudeau
2013-03-01 21:26 ` Tom Rini
2013-03-01 12:10 ` [U-Boot] [PATCH v8 22/31] .gitignore: Add /SPL Benoît Thébaudeau
2013-03-01 12:10 ` [U-Boot] [PATCH v8 23/31] imx: Add u-boot-with-spl.imx make target Benoît Thébaudeau
2013-03-01 12:10 ` [U-Boot] [PATCH v8 24/31] imx: Add u-boot-with-nand-spl.imx " Benoît Thébaudeau
2013-03-01 12:10 ` [U-Boot] [PATCH v8 25/31] arm: Remove support for smdk6400 Benoît Thébaudeau
2013-03-01 12:10 ` [U-Boot] [PATCH v8 26/31] Revert "mkconfig: start deprecating Makefile config targets" Benoît Thébaudeau
2013-03-01 12:10 ` [U-Boot] [PATCH v8 27/31] arm: Remove support for unused s3c64xx Benoît Thébaudeau
2013-03-01 12:10 ` [U-Boot] [PATCH v8 28/31] arm: Remove deprecated and now unused NAND SPL Benoît Thébaudeau
2013-03-01 12:10 ` [U-Boot] [PATCH v8 29/31] arm1176: Remove unused MMU setup from start.S Benoît Thébaudeau
2013-03-01 15:25 ` Albert ARIBAUD
2013-03-01 15:23 ` Benoît Thébaudeau
2013-03-01 12:10 ` [U-Boot] [PATCH v8 30/31] arm: Make all linker scripts compatible with per-symbol sections Benoît Thébaudeau
2013-03-01 12:10 ` [U-Boot] [PATCH v8 31/31] arm: Remove duplicated start.S code Benoît Thébaudeau
2013-03-01 15:46 ` Albert ARIBAUD
2013-03-01 15:50 ` Benoît Thébaudeau
2013-03-01 16:33 ` Benoît Thébaudeau
2013-03-01 21:56 ` Albert ARIBAUD [this message]
2013-03-01 22:02 ` Albert ARIBAUD
2013-03-01 22:54 ` Benoît Thébaudeau
2013-03-02 0:22 ` Simon Glass
2013-03-02 1:10 ` Benoît Thébaudeau
2013-03-02 6:45 ` Albert ARIBAUD
2013-03-02 13:42 ` Benoît Thébaudeau
2013-03-03 8:14 ` Albert ARIBAUD
2013-03-01 15:33 ` [U-Boot] [PATCH v8 01/31] mtd: nand: Introduce CONFIG_SYS_NAND_BUSWIDTH_16BIT Benoît Thébaudeau
2013-03-01 15:39 ` Fabio Estevam
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=20130301225650.5d3f7f93@lilith \
--to=albert.u.boot@aribaud.net \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox