From: Scott Wood <scottwood@freescale.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v5 01/23] ppc: Add initial memory barrier macros
Date: Tue, 12 Feb 2013 12:50:22 -0600 [thread overview]
Message-ID: <1360695022.24612.5@snotra> (raw)
In-Reply-To: <CAPnjgZ3c_PWdg3-J7eud-7-wVciCCK0YiKYSdRb3SbmFfbOv_A@mail.gmail.com> (from sjg@chromium.org on Tue Feb 12 12:44:16 2013)
On 02/12/2013 12:44:16 PM, Simon Glass wrote:
> Hi Scott,
>
> On Mon, Feb 11, 2013 at 11:52 AM, Scott Wood
> <scottwood@freescale.com> wrote:
> > On 02/08/2013 09:11:57 AM, Simon Glass wrote:
> >>
> >> These are available on other architectures, so add them on ppc.
> >>
> >> Signed-off-by: Simon Glass <sjg@chromium.org>
> >> ---
> >> Changes in v5: None
> >> Changes in v4: None
> >> Changes in v3: None
> >> Changes in v2: None
> >>
> >> arch/powerpc/include/asm/io.h | 8 ++++++++
> >> 1 file changed, 8 insertions(+)
> >>
> >> diff --git a/arch/powerpc/include/asm/io.h
> b/arch/powerpc/include/asm/io.h
> >> index 1f12c29..1bf12f5 100644
> >> --- a/arch/powerpc/include/asm/io.h
> >> +++ b/arch/powerpc/include/asm/io.h
> >> @@ -317,4 +317,12 @@ static inline phys_addr_t virt_to_phys(void *
> vaddr)
> >> #endif
> >> }
> >>
> >> +/*
> >> + * TODO: The kernel offers some more advanced versions of
> barriers, it
> >> might
> >> + * have some advantages to use them instead of the simple one
> here.
> >> + */
> >> +#define dmb() __asm__ __volatile__ ("" : : : "memory")
> >> +#define __iormb() dmb()
> >> +#define __iowmb() dmb()
> >
> >
> > What is the definition of these? Given that we already have an
> > architecture-independent barrier(), I assume this is meant to be an
> actual
> > hardware barrier rather than a compiler barrier, so this is not a
> correct
> > implementation.
>
> They were introduced in ARM in commit 3c0659b5, so I am really just
> following along with that. Yes the naming doesn't make a lot of sense,
> but on the other hand I don't think we necessarily want an actual
> hardware barrier in our writel()s.
We do have a hardware barrier in writel() on PPC (ignoring the broken
never-used little-endian implementation, which should just be removed),
and it should stay that way.
I do not think we should be introducing anything that looks like a
hardware barrier but isn't, unless the semantics of a particular
barrier are guaranteed by a particular platform without needing a
barrier instruction. And in that case there had better be a document
somewhere that explains what the semantics are.
> This at least makes sure that the
> compiler writes in the right order - perhaps the intent is that that
> rest is best left to the hardware?
Regardless of what one might think is "best", it isn't left to hardware
on many platforms, including PPC.
-Scott
next prev parent reply other threads:[~2013-02-12 18:50 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-08 15:11 [U-Boot] [PATCH v5 0/23] Create generic board init for ARM, x86, PPC Simon Glass
2013-02-08 15:11 ` [U-Boot] [PATCH v5 01/23] ppc: Add initial memory barrier macros Simon Glass
2013-02-11 19:52 ` Scott Wood
2013-02-12 18:44 ` Simon Glass
2013-02-12 18:50 ` Scott Wood [this message]
2013-02-12 18:55 ` Simon Glass
2013-02-12 19:04 ` Scott Wood
2013-02-12 19:06 ` Simon Glass
2013-02-08 15:11 ` [U-Boot] [PATCH v5 02/23] Introduce generic u-boot.h file Simon Glass
2013-02-08 15:11 ` [U-Boot] [PATCH v5 03/23] Replace __bss_end__ with __bss_end Simon Glass
2013-02-18 20:13 ` Tom Rini
2013-02-18 21:40 ` Otavio Salvador
2013-02-19 0:23 ` Simon Glass
2013-02-19 0:30 ` Otavio Salvador
2013-02-19 0:32 ` Simon Glass
2013-02-18 23:20 ` Andy Fleming
2013-02-08 15:12 ` [U-Boot] [PATCH v5 04/23] Introduce generic link section.h symbol files Simon Glass
2013-02-18 20:12 ` Tom Rini
2013-02-08 15:12 ` [U-Boot] [PATCH v5 05/23] arm: Use sections header to obtain link symbols Simon Glass
2013-02-08 15:12 ` [U-Boot] [PATCH v5 06/23] x86: nds32: Change stub example to use asm-generic/sections.h Simon Glass
2013-02-08 15:12 ` [U-Boot] [PATCH v5 07/23] Introduce a basic initcall implementation Simon Glass
2013-02-08 15:12 ` [U-Boot] [PATCH v5 08/23] Define CONFIG_SYS_LEGACY_BOARD everywhere Simon Glass
2013-02-08 15:12 ` [U-Boot] [PATCH v5 09/23] Declare watchdog functions in watchdog.h Simon Glass
2013-02-08 15:12 ` [U-Boot] [PATCH v5 10/23] Introduce generic pre-relocation board_f.c Simon Glass
2013-02-08 15:12 ` [U-Boot] [PATCH v5 11/23] Introduce generic post-relocation board_r.c Simon Glass
2013-02-08 15:12 ` [U-Boot] [PATCH v5 12/23] Add spl load feature Simon Glass
2013-02-12 20:29 ` Scott Wood
2013-02-12 22:23 ` Simon Glass
2013-02-12 22:34 ` Scott Wood
2013-03-02 23:39 ` Simon Glass
2013-02-08 15:12 ` [U-Boot] [PATCH v5 13/23] arm: Remove use of board_early_init_r/last_stage_init() Simon Glass
2013-02-08 15:12 ` [U-Boot] [PATCH v5 14/23] arm: Enable generic board support Simon Glass
2013-02-08 15:12 ` [U-Boot] [PATCH v5 15/23] Add CONFIG_SYS_SYM_OFFSETS to support offset symbols Simon Glass
2013-02-08 15:12 ` [U-Boot] [PATCH v5 16/23] Adjust board_f.c for ppc Simon Glass
2013-02-12 22:32 ` Scott Wood
2013-02-12 22:41 ` Simon Glass
2013-02-12 22:48 ` Scott Wood
2013-02-08 15:12 ` [U-Boot] [PATCH v5 17/23] Adjust board_r.c " Simon Glass
2013-02-08 15:12 ` [U-Boot] [PATCH v5 18/23] ppc: Enable generic board support Simon Glass
2013-02-12 20:38 ` Scott Wood
2013-02-12 22:29 ` Simon Glass
2013-02-12 22:40 ` Scott Wood
2013-02-08 15:12 ` [U-Boot] [PATCH v5 19/23] x86: Adjust board_f.c for x86 Simon Glass
2013-02-08 15:12 ` [U-Boot] [PATCH v5 20/23] x86: Adjust board_r.c " Simon Glass
2013-02-08 15:12 ` [U-Boot] [PATCH v5 21/23] x86: Use sections header to obtain link symbols Simon Glass
2013-02-08 15:12 ` [U-Boot] [PATCH v5 22/23] x86: Enable generic board support Simon Glass
2013-02-08 15:12 ` [U-Boot] [PATCH v5 23/23] tegra: Enable generic board for Seaboard Simon Glass
2013-02-08 17:23 ` Stephen Warren
2013-02-08 18:10 ` Simon Glass
2013-02-08 19:12 ` Stephen Warren
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=1360695022.24612.5@snotra \
--to=scottwood@freescale.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.