Masahiro Yamada
be462bd970
MIPS: boot: merge build rules of vmlinux.*.itb by using pattern rule
...
Merge the build rule of vmlinux.{gz,bz2,lzma,lzo}.itb, and also move
'targets' close to the related code.
[paul.burton@mips.com:
- Remove leading tabs from assignments to itb_addr_cells, since after
this patch moves the additions to the 'targets' variable the
assignments to itb_addr_cells wound up being treated as part of the
uImage rule above them, causing the .its to incorrectly be generated
with empty ADDR_CELLS.]
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Patchwork: https://patchwork.linux-mips.org/patch/19095/
Signed-off-by: Paul Burton <paul.burton@mips.com >
Cc: Kees Cook <keescook@chromium.org >
Cc: linux-kernel@vger.kernel.org
2018-06-24 09:27:27 -07:00
Masahiro Yamada
92b34a9763
MIPS: boot: add missing targets for vmlinux.*.its
...
The build rule of vmlinux.*.its is invoked by $(call if_changed,...)
but it always rebuilds the target needlessly due to missing targets.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com >
Patchwork: https://patchwork.linux-mips.org/patch/19092/
Signed-off-by: Paul Burton <paul.burton@mips.com >
Cc: Kees Cook <keescook@chromium.org >
Cc: linux-kernel@vger.kernel.org
2018-06-24 09:27:27 -07:00
Masahiro Yamada
67e09db507
MIPS: boot: fix build rule of vmlinux.its.S
...
As Documentation/kbuild/makefile.txt says, it is a typical mistake
to forget the FORCE prerequisite for the rule invoked by if_changed.
Add the FORCE to the prerequisite, but it must be filtered-out from
the files passed to the 'cat' command. Because this rule generates
.vmlinux.its.S.cmd, vmlinux.its.S must be specified as targets so
that the .cmd file is included.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com >
Patchwork: https://patchwork.linux-mips.org/patch/19097/
Signed-off-by: Paul Burton <paul.burton@mips.com >
Cc: Kees Cook <keescook@chromium.org >
Cc: linux-kernel@vger.kernel.org
2018-06-24 09:27:27 -07:00
Masahiro Yamada
321f95b643
MIPS: boot: do not include $(cpp_flags) for preprocessing ITS
...
$(CPP) is used here to perform macro replacement in ITS. Do not
pass $(cpp_flags) because it pulls in more options for dependency
file generation etc. but none of which is necessary here. ITS files
do not include any header file, so $(call if_change,...) is enough.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com >
Patchwork: https://patchwork.linux-mips.org/patch/19093/
Signed-off-by: Paul Burton <paul.burton@mips.com >
Cc: Kees Cook <keescook@chromium.org >
Cc: linux-kernel@vger.kernel.org
2018-06-24 09:27:27 -07:00
Masahiro Yamada
902b923da6
Revert "MIPS: boot: Define __ASSEMBLY__ for its.S build"
...
This reverts commit 0f9da844d8 .
It is true that commit 0f9da844d8 ("MIPS: boot: Define __ASSEMBLY__
for its.S build") fixed the build error, but it should not have
defined __ASSEMBLY__ just for textual substitution in arbitrary data.
The file is image tree source in this case, but the purpose of using
CPP is to replace some macros.
I merged a better solution, commit a95b37e20d ("kbuild: get
<linux/compiler_types.h> out of <linux/kconfig.h>"). The original
fix-up is no longer needed.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com >
Patchwork: https://patchwork.linux-mips.org/patch/19096/
Signed-off-by: Paul Burton <paul.burton@mips.com >
Cc: Kees Cook <keescook@chromium.org >
Cc: linux-kernel@vger.kernel.org
2018-06-24 09:27:27 -07:00
Nicholas Mc Guire
7896de7bd7
MIPS: Octeon: assign bool true/false not 1/0
...
Booleans should be assigned true/false not 1/0 as comparison is not needed
Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org >
Patchwork: https://patchwork.linux-mips.org/patch/19559/
Signed-off-by: Paul Burton <paul.burton@mips.com >
Cc: James Hogan <jhogan@kernel.org >
Cc: David Daney <david.daney@cavium.com >
Cc: "Steven J. Hill" <Steven.Hill@cavium.com >
Cc: Joe Perches <joe@perches.com >
Cc: Colin Ian King <colin.king@canonical.com >
Cc: linux-mips@linux-mips.org
Cc: linux-kernel@vger.kernel.org
2018-06-24 09:27:27 -07:00
Christoph Hellwig
803ad26eed
MIPS: remove unneeded includes from dma-mapping.h
...
Keep this file as light as possible as it gets pulled into every
driver using dma mapping APIs.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Patchwork: https://patchwork.linux-mips.org/patch/19552/
Signed-off-by: Paul Burton <paul.burton@mips.com >
Cc: Florian Fainelli <f.fainelli@gmail.com >
Cc: David Daney <david.daney@cavium.com >
Cc: Kevin Cernekee <cernekee@gmail.com >
Cc: Jiaxun Yang <jiaxun.yang@flygoat.com >
Cc: Tom Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Huacai Chen <chenhc@lemote.com >
Cc: iommu@lists.linux-foundation.org
Cc: linux-mips@linux-mips.org
2018-06-24 09:27:27 -07:00
Christoph Hellwig
28f512d9cb
MIPS: remove the old dma-default implementation
...
Now unused.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Patchwork: https://patchwork.linux-mips.org/patch/19551/
Signed-off-by: Paul Burton <paul.burton@mips.com >
Cc: Florian Fainelli <f.fainelli@gmail.com >
Cc: David Daney <david.daney@cavium.com >
Cc: Kevin Cernekee <cernekee@gmail.com >
Cc: Jiaxun Yang <jiaxun.yang@flygoat.com >
Cc: Tom Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Huacai Chen <chenhc@lemote.com >
Cc: iommu@lists.linux-foundation.org
Cc: linux-mips@linux-mips.org
2018-06-24 09:27:27 -07:00
Christoph Hellwig
d59098a0e9
MIPS: bmips: use generic dma noncoherent ops
...
Provide phys_to_dma/dma_to_phys helpers, and the special
arch_sync_dma_for_cpu_all hook, everything else is generic
Signed-off-by: Christoph Hellwig <hch@lst.de >
Patchwork: https://patchwork.linux-mips.org/patch/19550/
Signed-off-by: Paul Burton <paul.burton@mips.com >
Cc: Florian Fainelli <f.fainelli@gmail.com >
Cc: David Daney <david.daney@cavium.com >
Cc: Kevin Cernekee <cernekee@gmail.com >
Cc: Jiaxun Yang <jiaxun.yang@flygoat.com >
Cc: Tom Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Huacai Chen <chenhc@lemote.com >
Cc: iommu@lists.linux-foundation.org
Cc: linux-mips@linux-mips.org
2018-06-24 09:27:27 -07:00
Christoph Hellwig
faef87723a
dma-noncoherent: add a arch_sync_dma_for_cpu_all hook
...
The MIPS bmips platform needs a global flush when transferring ownership
back to the CPU. Add a hook for that to the dma-noncoherent
implementation.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Patchwork: https://patchwork.linux-mips.org/patch/19549/
Signed-off-by: Paul Burton <paul.burton@mips.com >
Cc: Florian Fainelli <f.fainelli@gmail.com >
Cc: David Daney <david.daney@cavium.com >
Cc: Kevin Cernekee <cernekee@gmail.com >
Cc: Jiaxun Yang <jiaxun.yang@flygoat.com >
Cc: Tom Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Huacai Chen <chenhc@lemote.com >
Cc: iommu@lists.linux-foundation.org
Cc: linux-mips@linux-mips.org
2018-06-24 09:27:27 -07:00
Christoph Hellwig
c5e2bbb45d
MIPS: jazz: split dma mapping operations from dma-default
...
Jazz actually has a very basic IOMMU, so split the ops into a separate
implementation from the generic default support (which is about to go
away anyway).
Signed-off-by: Christoph Hellwig <hch@lst.de >
Patchwork: https://patchwork.linux-mips.org/patch/19548/
Signed-off-by: Paul Burton <paul.burton@mips.com >
Cc: Florian Fainelli <f.fainelli@gmail.com >
Cc: David Daney <david.daney@cavium.com >
Cc: Kevin Cernekee <cernekee@gmail.com >
Cc: Jiaxun Yang <jiaxun.yang@flygoat.com >
Cc: Tom Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Huacai Chen <chenhc@lemote.com >
Cc: iommu@lists.linux-foundation.org
Cc: linux-mips@linux-mips.org
2018-06-24 09:27:27 -07:00
Christoph Hellwig
d1f2564a56
MIPS: ath25: use generic dma noncoherent ops
...
Provide phys_to_dma/dma_to_phys helpers only if PCI support is
enabled, everything else is generic.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Patchwork: https://patchwork.linux-mips.org/patch/19547/
Signed-off-by: Paul Burton <paul.burton@mips.com >
Cc: Florian Fainelli <f.fainelli@gmail.com >
Cc: David Daney <david.daney@cavium.com >
Cc: Kevin Cernekee <cernekee@gmail.com >
Cc: Jiaxun Yang <jiaxun.yang@flygoat.com >
Cc: Tom Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Huacai Chen <chenhc@lemote.com >
Cc: iommu@lists.linux-foundation.org
Cc: linux-mips@linux-mips.org
2018-06-24 09:27:27 -07:00
Christoph Hellwig
03df8229a8
MIPS: IP32: use generic dma noncoherent ops
...
Provide phys_to_dma/dma_to_phys helpers, everything else is generic.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Patchwork: https://patchwork.linux-mips.org/patch/19546/
Signed-off-by: Paul Burton <paul.burton@mips.com >
Cc: Florian Fainelli <f.fainelli@gmail.com >
Cc: David Daney <david.daney@cavium.com >
Cc: Kevin Cernekee <cernekee@gmail.com >
Cc: Jiaxun Yang <jiaxun.yang@flygoat.com >
Cc: Tom Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Huacai Chen <chenhc@lemote.com >
Cc: iommu@lists.linux-foundation.org
Cc: linux-mips@linux-mips.org
2018-06-24 09:27:27 -07:00
Christoph Hellwig
e905086e6b
MIPS: loongson64: use generic dma noncoherent ops
...
Provide phys_to_dma/dma_to_phys helpers, everything else is generic.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Patchwork: https://patchwork.linux-mips.org/patch/19545/
Signed-off-by: Paul Burton <paul.burton@mips.com >
Cc: Florian Fainelli <f.fainelli@gmail.com >
Cc: David Daney <david.daney@cavium.com >
Cc: Kevin Cernekee <cernekee@gmail.com >
Cc: Jiaxun Yang <jiaxun.yang@flygoat.com >
Cc: Tom Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Huacai Chen <chenhc@lemote.com >
Cc: iommu@lists.linux-foundation.org
Cc: linux-mips@linux-mips.org
2018-06-24 09:27:27 -07:00
Christoph Hellwig
f8c55dc6e8
MIPS: use generic dma noncoherent ops for simple noncoherent platforms
...
Convert everything not overriding dma-coherence.h to the generic
noncoherent ops. The new dma-noncoherent.c file duplicates a lot of
the code in dma-default.c, but that file will be gone by the end of
this series.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Patchwork: https://patchwork.linux-mips.org/patch/19544/
Signed-off-by: Paul Burton <paul.burton@mips.com >
Cc: Florian Fainelli <f.fainelli@gmail.com >
Cc: David Daney <david.daney@cavium.com >
Cc: Kevin Cernekee <cernekee@gmail.com >
Cc: Jiaxun Yang <jiaxun.yang@flygoat.com >
Cc: Tom Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Huacai Chen <chenhc@lemote.com >
Cc: iommu@lists.linux-foundation.org
Cc: linux-mips@linux-mips.org
2018-06-24 09:26:05 -07:00
Christoph Hellwig
aa4db77595
MIPS: move coherentio setup to setup.c
...
We want to be able to use it even when not building dma-default.c
in the near future.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Patchwork: https://patchwork.linux-mips.org/patch/19543/
Signed-off-by: Paul Burton <paul.burton@mips.com >
Cc: Florian Fainelli <f.fainelli@gmail.com >
Cc: David Daney <david.daney@cavium.com >
Cc: Kevin Cernekee <cernekee@gmail.com >
Cc: Jiaxun Yang <jiaxun.yang@flygoat.com >
Cc: Tom Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Huacai Chen <chenhc@lemote.com >
Cc: iommu@lists.linux-foundation.org
Cc: linux-mips@linux-mips.org
2018-06-24 09:26:04 -07:00
Christoph Hellwig
54aed4dd35
MIPS: IP27: use dma_direct_ops
...
IP27 is coherent and has a reasonably direct mapping, just with a little
per-bus offset added into the dma address.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Patchwork: https://patchwork.linux-mips.org/patch/19542/
Signed-off-by: Paul Burton <paul.burton@mips.com >
Cc: Florian Fainelli <f.fainelli@gmail.com >
Cc: David Daney <david.daney@cavium.com >
Cc: Kevin Cernekee <cernekee@gmail.com >
Cc: Jiaxun Yang <jiaxun.yang@flygoat.com >
Cc: Tom Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Huacai Chen <chenhc@lemote.com >
Cc: iommu@lists.linux-foundation.org
Cc: linux-mips@linux-mips.org
2018-06-24 09:26:04 -07:00
Christoph Hellwig
dffbfde758
MIPS: use dma_direct_ops for coherent I/O
...
Switch the simple cache coherent architectures that don't require any
DMA address translation to dma_direct_ops.
We'll soon use at least parts of the direct DMA ops implementation for
all platforms, so select the symbol globally.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Patchwork: https://patchwork.linux-mips.org/patch/19540/
Signed-off-by: Paul Burton <paul.burton@mips.com >
Cc: Florian Fainelli <f.fainelli@gmail.com >
Cc: David Daney <david.daney@cavium.com >
Cc: Kevin Cernekee <cernekee@gmail.com >
Cc: Jiaxun Yang <jiaxun.yang@flygoat.com >
Cc: Tom Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Huacai Chen <chenhc@lemote.com >
Cc: iommu@lists.linux-foundation.org
Cc: linux-mips@linux-mips.org
2018-06-24 09:26:04 -07:00
Christoph Hellwig
d7e64bf949
MIPS: loongson: remove loongson-3 handling from dma-coherence.h
...
Loongson3 is dma coherent and uses swiotlb, so it will never used any
of these helpers.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Patchwork: https://patchwork.linux-mips.org/patch/19541/
Signed-off-by: Paul Burton <paul.burton@mips.com >
Cc: Florian Fainelli <f.fainelli@gmail.com >
Cc: David Daney <david.daney@cavium.com >
Cc: Kevin Cernekee <cernekee@gmail.com >
Cc: Jiaxun Yang <jiaxun.yang@flygoat.com >
Cc: Tom Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Huacai Chen <chenhc@lemote.com >
Cc: iommu@lists.linux-foundation.org
Cc: linux-mips@linux-mips.org
2018-06-24 09:26:04 -07:00
Christoph Hellwig
d3bc81befc
MIPS: loongson: untangle dma implementations
...
Only loongson-3 is DMA coherent and uses swiotlb. So move the dma
address translations stubs directly to the loongson-3 code, and remove
a few Kconfig indirections.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Patchwork: https://patchwork.linux-mips.org/patch/19539/
Signed-off-by: Paul Burton <paul.burton@mips.com >
Cc: Florian Fainelli <f.fainelli@gmail.com >
Cc: David Daney <david.daney@cavium.com >
Cc: Kevin Cernekee <cernekee@gmail.com >
Cc: Jiaxun Yang <jiaxun.yang@flygoat.com >
Cc: Tom Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Huacai Chen <chenhc@lemote.com >
Cc: iommu@lists.linux-foundation.org
Cc: linux-mips@linux-mips.org
2018-06-24 09:26:04 -07:00
Christoph Hellwig
a330a9c59b
MIPS: Octeon: move swiotlb declarations out of dma-coherence.h
...
No need to pull them into a global header.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Patchwork: https://patchwork.linux-mips.org/patch/19538/
Signed-off-by: Paul Burton <paul.burton@mips.com >
Cc: Florian Fainelli <f.fainelli@gmail.com >
Cc: David Daney <david.daney@cavium.com >
Cc: Kevin Cernekee <cernekee@gmail.com >
Cc: Jiaxun Yang <jiaxun.yang@flygoat.com >
Cc: Tom Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Huacai Chen <chenhc@lemote.com >
Cc: iommu@lists.linux-foundation.org
Cc: linux-mips@linux-mips.org
2018-06-24 09:26:03 -07:00
Christoph Hellwig
1f99e4b13b
MIPS: Octeon: remove mips dma-default stubs
...
Octeon doesn't use the dma-default code, and now doesn't built it either,
so these stubs can be removed.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Patchwork: https://patchwork.linux-mips.org/patch/19537/
Signed-off-by: Paul Burton <paul.burton@mips.com >
Cc: Florian Fainelli <f.fainelli@gmail.com >
Cc: David Daney <david.daney@cavium.com >
Cc: Kevin Cernekee <cernekee@gmail.com >
Cc: Jiaxun Yang <jiaxun.yang@flygoat.com >
Cc: Tom Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Huacai Chen <chenhc@lemote.com >
Cc: iommu@lists.linux-foundation.org
Cc: linux-mips@linux-mips.org
2018-06-24 09:26:03 -07:00
Christoph Hellwig
3369ddb62a
MIPS: make the default mips dma implementation optional
...
Octeon and loonson64 already don't use it at all, and we're going to
migrate more plaforms away from it.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Patchwork: https://patchwork.linux-mips.org/patch/19536/
Signed-off-by: Paul Burton <paul.burton@mips.com >
Cc: Florian Fainelli <f.fainelli@gmail.com >
Cc: David Daney <david.daney@cavium.com >
Cc: Kevin Cernekee <cernekee@gmail.com >
Cc: Jiaxun Yang <jiaxun.yang@flygoat.com >
Cc: Tom Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Huacai Chen <chenhc@lemote.com >
Cc: iommu@lists.linux-foundation.org
Cc: linux-mips@linux-mips.org
2018-06-24 09:26:03 -07:00
Christoph Hellwig
d3b83dcc7f
MIPS: remove the mips_dma_map_ops indirection
...
And use mips_default_dma_map_ops directly.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Patchwork: https://patchwork.linux-mips.org/patch/19535/
Signed-off-by: Paul Burton <paul.burton@mips.com >
Cc: Florian Fainelli <f.fainelli@gmail.com >
Cc: David Daney <david.daney@cavium.com >
Cc: Kevin Cernekee <cernekee@gmail.com >
Cc: Jiaxun Yang <jiaxun.yang@flygoat.com >
Cc: Tom Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Huacai Chen <chenhc@lemote.com >
Cc: iommu@lists.linux-foundation.org
Cc: linux-mips@linux-mips.org
2018-06-24 09:26:03 -07:00
Christoph Hellwig
f6d302e33d
MIPS: consolidate the swiotlb implementations
...
Octeon and Loongson share exactly the same code, move it into a common
implementation, and use that implementation directly from get_arch_dma_ops.
Also provide the expected dma-direct.h helpers directly instead of
delegating to platform dma-coherence.h headers.
Signed-off-by: Christoph Hellwig <hch@lst.de >
Patchwork: https://patchwork.linux-mips.org/patch/19534/
Signed-off-by: Paul Burton <paul.burton@mips.com >
Cc: Florian Fainelli <f.fainelli@gmail.com >
Cc: David Daney <david.daney@cavium.com >
Cc: Kevin Cernekee <cernekee@gmail.com >
Cc: Jiaxun Yang <jiaxun.yang@flygoat.com >
Cc: Tom Bogendoerfer <tsbogend@alpha.franken.de >
Cc: Huacai Chen <chenhc@lemote.com >
Cc: iommu@lists.linux-foundation.org
Cc: linux-mips@linux-mips.org
2018-06-24 09:26:03 -07:00