public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Stefan Roese <sr@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] cfi_flash: Make all flash access functions weak
Date: Mon, 17 Nov 2008 10:34:03 +0100	[thread overview]
Message-ID: <200811171034.03928.sr@denx.de> (raw)
In-Reply-To: <20081117100145.3fe0c4b2@hskinnemo-gx745.norway.atmel.com>

On Monday 17 November 2008, Haavard Skinnemoen wrote:
> Stefan Roese <sr@denx.de> wrote:
> > Old version without weak aliases:
> >    text    data     bss     dec     hex filename
> >  280964   20232   50788  351984   55ef0 ./u-boot
> >
> > New version with weak aliases:
> >    text    data     bss     dec     hex filename
> >  280520   20232   50788  351540   55d34 ./u-boot
> >
> > So the difference is 444 bytes (with gcc 4.2.2). I have to admit that
> > this is more than I thought. If necessary I could make this weak change
> > conditionally of course. I just didn't want to "pollute" to the source
> > with more #ifdef's.
>
> Looks like it's 444 bytes _smaller_ with weak functions...that's a bit
> surprising. From you comment, it sounds like it's really 444 bytes
> larger. Did you mix up the numbers?

Yes.

> If it's really 444 bytes larger, I think that's a bit much for
> something as simple as memory accessors. Ideally, they should boil down
> to a single instruction each.
>
> Perhaps you could allow overriding them in the board header by doing
> something like
>
> #ifndef flash_write8
> # #define flash_write8(value, addr)	__raw_writeb(value, addr)
> ...
>
> in cfi_flash.c?

I could do it this way, sure. But how about this version:

static void __flash_write8(u8 value, void *addr)
{
	__raw_writeb(value, addr);
}
...

#ifdef CONFIG_CFI_FLASH_USE_WEAK_ACCESSORS
void flash_write8(u8 value, void *addr)__attribute__((weak, alias("__flash_write8")));
...
#else
#define flash_read8	__flash_read8
...
#endif

We would still have the original accessor functions this way. And the
resulting source code looks a little "better" to me (less #ifdef's).

Best regards,
Stefan

=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: office at denx.de
=====================================================================

  reply	other threads:[~2008-11-17  9:34 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-12 12:31 [U-Boot] [PATCH] cfi_flash: Make all flash access functions weak Stefan Roese
2008-11-13  8:18 ` Haavard Skinnemoen
2008-11-17  8:45   ` Stefan Roese
2008-11-17  8:54     ` Stefan Roese
2008-11-17  9:01     ` Haavard Skinnemoen
2008-11-17  9:34       ` Stefan Roese [this message]
2008-11-17  9:40         ` Haavard Skinnemoen
2008-11-17  9:49           ` Stefan Roese

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=200811171034.03928.sr@denx.de \
    --to=sr@denx.de \
    --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