All of lore.kernel.org
 help / color / mirror / Atom feed
From: Guo Ren <ren_guo@c-sky.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: linux-arch <linux-arch@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Daniel Lezcano <daniel.lezcano@linaro.org>,
	Jason Cooper <jason@lakedaemon.net>,
	c-sky_gcc_upstream@c-sky.com, gnu-csky@mentor.com,
	Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
	wbx@uclibc-ng.org, Greentime Hu <green.hu@gmail.com>
Subject: Re: [PATCH V3 06/26] csky: Cache and TLB routines
Date: Fri, 7 Sep 2018 11:04:49 +0800	[thread overview]
Message-ID: <20180907030447.GA10434@guoren-Inspiron-7460> (raw)
In-Reply-To: <CAK8P3a1fYM0X=F+9yD6BVLq=57eJeFWXCvywjQOFwEHz7oAhcg@mail.gmail.com>

On Thu, Sep 06, 2018 at 04:31:16PM +0200, Arnd Bergmann wrote:
> On Wed, Sep 5, 2018 at 2:08 PM Guo Ren <ren_guo@c-sky.com> wrote:
> 
> > diff --git a/arch/csky/include/asm/io.h b/arch/csky/include/asm/io.h
> > new file mode 100644
> > index 0000000..fcb2142
> > --- /dev/null
> > +++ b/arch/csky/include/asm/io.h
> > @@ -0,0 +1,23 @@
> > +// SPDX-License-Identifier: GPL-2.0
> > +// Copyright (C) 2018 Hangzhou C-SKY Microsystems co.,ltd.
> > +#ifndef __ASM_CSKY_IO_H
> > +#define __ASM_CSKY_IO_H
> > +
> > +#include <abi/pgtable-bits.h>
> > +#include <linux/types.h>
> > +#include <linux/version.h>
> > +
> > +extern void __iomem *ioremap(phys_addr_t offset, size_t size);
> > +
> > +extern void iounmap(void *addr);
> > +
> > +extern int remap_area_pages(unsigned long address, phys_addr_t phys_addr,
> > +               size_t size, unsigned long flags);
> > +
> > +#define ioremap_nocache(phy, sz)       ioremap(phy, sz)
> > +#define ioremap_wc ioremap_nocache
> > +#define ioremap_wt ioremap_nocache
> > +
> > +#include <asm-generic/io.h>
> 
> It is very unusual for an architecture to not need special handling in asm/io.h,
> to do the proper barriers etc.
> 
> Can you describe how C-Sky hardware implements MMIO?
Our mmio is uncachable and strong-order address, so there is no need
barriers for access these io addr.

 #define ioremap_wc ioremap_nocache
 #define ioremap_wt ioremap_nocache

Current ioremap_wc and ioremap_wt implementation are too simple and
we'll improve it in future.

> In particular:
> 
> - Is a read from uncached memory always serialized with DMA, and with
>   other CPUs doing MMIO access to a different address?
CPU use ld.w to get data from uncached strong order memory.
Other CPUs use the same mmio vaddr to access the uncachable strong order
memory paddr.

> - How does endianess work? Are there any buses that flip bytes around
>   when running big-endian, or do you always do that in software?
Currently we only support little-endian and soc will follow it.

 Guo Ren

  reply	other threads:[~2018-09-07  3:05 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-05 12:07 [PATCH V3 00/26] C-SKY(csky) Linux Kernel Port Guo Ren
2018-09-05 12:07 ` [PATCH V3 01/26] csky: Build infrastructure Guo Ren
2018-09-05 12:07 ` [PATCH V3 02/26] csky: defconfig Guo Ren
2018-09-06 13:58   ` Arnd Bergmann
2018-09-07  1:43     ` Guo Ren
2018-09-05 12:07 ` [PATCH V3 03/26] csky: Kernel booting Guo Ren
2018-09-05 12:07 ` [PATCH V3 04/26] csky: Exception handling Guo Ren
2018-09-05 12:07 ` [PATCH V3 05/26] csky: System Call Guo Ren
2018-09-06 14:10   ` Arnd Bergmann
2018-09-07  1:47     ` Guo Ren
2018-09-05 12:07 ` [PATCH V3 06/26] csky: Cache and TLB routines Guo Ren
2018-09-06 14:31   ` Arnd Bergmann
2018-09-07  3:04     ` Guo Ren [this message]
2018-09-07  8:14       ` Arnd Bergmann
2018-09-07 12:55         ` Guo Ren
2018-09-07 14:13           ` Arnd Bergmann
2018-09-08  2:20             ` Guo Ren
2018-09-05 12:07 ` [PATCH V3 07/26] csky: MMU and page table management Guo Ren
2018-09-05 12:07 ` [PATCH V3 08/26] csky: Process management and Signal Guo Ren
2018-09-05 12:07 ` [PATCH V3 09/26] csky: VDSO and rt_sigreturn Guo Ren
2018-09-06 14:02   ` Arnd Bergmann
2018-09-07  3:07     ` Guo Ren
2018-09-05 12:07 ` [PATCH V3 10/26] csky: IRQ handling Guo Ren
2018-09-06 13:39   ` Thomas Gleixner
2018-09-10  7:30     ` Guo Ren
2018-09-05 12:07 ` [PATCH V3 11/26] csky: Atomic operations Guo Ren
2018-09-05 12:07 ` [PATCH V3 12/26] csky: ELF and module probe Guo Ren
2018-09-05 12:07 ` [PATCH V3 13/26] csky: Library functions Guo Ren
2018-09-06 14:24   ` Arnd Bergmann
2018-09-06 15:50     ` Geert Uytterhoeven
2018-09-07  5:14       ` Guo Ren
2018-09-07  5:08     ` Guo Ren
2018-09-05 12:07 ` [PATCH V3 14/26] csky: User access Guo Ren
2018-09-05 12:07 ` [PATCH V3 15/26] csky: Debug and Ptrace GDB Guo Ren
2018-09-05 12:07 ` [PATCH V3 16/26] csky: SMP support Guo Ren
2018-09-05 12:07 ` [PATCH V3 17/26] csky: Misc headers Guo Ren
2018-09-06 14:16   ` Arnd Bergmann
2018-09-07  5:17     ` Guo Ren
2018-09-07  8:01       ` Arnd Bergmann
2018-09-07  8:08         ` Guo Ren
2018-09-05 12:07 ` [PATCH V3 18/26] dt-bindings: csky CPU Bindings Guo Ren
2018-09-06  0:37   ` Rob Herring
2018-09-06  1:49     ` Guo Ren
2018-09-05 12:07 ` [PATCH V3 19/26] dt-bindings: timer: gx6605s SOC timer Guo Ren
2018-09-06  0:47   ` Rob Herring
2018-09-06  2:02     ` Guo Ren
2018-09-07  6:41       ` Guo Ren
2018-09-05 12:07 ` [PATCH V3 20/26] dt-bindings: timer: C-SKY Multi-processor timer Guo Ren
2018-09-05 12:08 ` [PATCH V3 21/26] dt-bindings: interrupt-controller: C-SKY APB intc Guo Ren
2018-09-06  0:43   ` Rob Herring
2018-09-06  2:12     ` Guo Ren
2018-09-06 13:05       ` Arnd Bergmann
2018-09-07  5:40         ` Guo Ren
2018-09-07 15:13         ` Rob Herring
2018-09-07 15:13           ` Rob Herring
2018-09-08  2:05           ` Guo Ren
2018-09-08  2:05             ` Guo Ren
2018-09-05 12:08 ` [PATCH V3 22/26] dt-bindings: interrupt-controller: C-SKY SMP intc Guo Ren
2018-09-06  0:45   ` Rob Herring
2018-09-06  2:23     ` Guo Ren
2018-09-06 13:03       ` Arnd Bergmann
2018-09-07  6:07         ` Guo Ren
2018-09-05 12:08 ` [PATCH V3 23/26] clocksource: add gx6605s SOC system timer Guo Ren
2018-09-05 12:08 ` [PATCH V3 24/26] clocksource: add C-SKY SMP timer Guo Ren
2018-09-05 12:08 ` [PATCH V3 25/26] clocksource: add C-SKY timers' build infrastructure Guo Ren
2018-09-05 12:08 ` [PATCH V3 26/26] irqchip: add C-SKY irqchip drivers Guo Ren
2018-09-06 14:35 ` [PATCH V3 00/26] C-SKY(csky) Linux Kernel Port Arnd Bergmann
2018-09-07  2:08 ` Guenter Roeck
2018-09-07  6:40   ` Guo Ren

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=20180907030447.GA10434@guoren-Inspiron-7460 \
    --to=ren_guo@c-sky.com \
    --cc=arnd@arndb.de \
    --cc=c-sky_gcc_upstream@c-sky.com \
    --cc=daniel.lezcano@linaro.org \
    --cc=gnu-csky@mentor.com \
    --cc=green.hu@gmail.com \
    --cc=jason@lakedaemon.net \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tglx@linutronix.de \
    --cc=thomas.petazzoni@bootlin.com \
    --cc=wbx@uclibc-ng.org \
    /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.