mail archive of the barebox mailing list
 help / color / mirror / Atom feed
* [PATCH 00/15] MIPS: ar9331: use cache and fix gpio
@ 2016-03-07 13:30 Antony Pavlov
  2016-03-07 13:30 ` [PATCH 01/15] MIPS: probe_scache(): use MIPS_CONF_M linux kernel macro Antony Pavlov
                   ` (15 more replies)
  0 siblings, 16 replies; 23+ messages in thread
From: Antony Pavlov @ 2016-03-07 13:30 UTC (permalink / raw)
  To: barebox

This patchseries introduces initial MIPS cache support.
Though the cache code is usable for many MIPS-based chips
at the moment the code is tested mostly on AR9331 SoC.
So I have decided to submit only AR9331-related cache
patches and add AR9331 GPIO-related patches to the series.


Antony Pavlov (13):
  MIPS: probe_scache(): use MIPS_CONF_M linux kernel macro
  MIPS: pbl: import cache init code from U-Boot v2016.01-212-ga3ab2ae
  MIPS: black-swift: pbl: init cache
  MIPS: tplink-mr3020: pbl: init cache
  MIPS: add initial R4000-style cache support
  MIPS: flush cache on shutdown
  MIPS: tplink-mr3020_defconfig: use cached memory region
  MIPS: black-swift_defconfig: use cached memory region
  MIPS: ath79: pbl: add pbl_ar9331_mdio_gpio_enable macro
  MIPS: black-swift: enable GPIO LED
  MIPS: black-swift: enable GPIO key
  MIPS: black-swift_defconfig: enable gpio-related stuff
  MIPS: tplink-mr3020: fix "WPS" and "3G" LEDs

Peter Mamonov (2):
  MIPS: implement dma_sync_* functions
  MIPS: dtb: register only one memory bank

 arch/mips/Kconfig                                  |   1 +
 .../black-swift/include/board/board_pbl_start.h    |  12 ++
 .../tplink-mr3020/include/board/board_pbl_start.h  |  12 ++
 arch/mips/boot/dtb.c                               |  12 +-
 arch/mips/configs/black-swift_defconfig            |   8 ++
 arch/mips/configs/tplink-mr3020_defconfig          |   2 +
 arch/mips/dts/black-swift.dts                      |  26 ++++
 arch/mips/include/asm/cache.h                      |   6 +
 arch/mips/include/asm/cacheops.h                   |  36 ++++++
 arch/mips/include/asm/dma-mapping.h                |  11 +-
 arch/mips/include/asm/io.h                         |   3 +
 arch/mips/include/asm/mipsregs.h                   |   8 ++
 arch/mips/include/asm/pbl_macros.h                 | 133 +++++++++++++++++++++
 arch/mips/lib/Makefile                             |   2 +
 arch/mips/lib/c-r4k.c                              |  76 +++++++++++-
 arch/mips/lib/dma-default.c                        |  57 +++++++++
 arch/mips/lib/shutdown.c                           |  12 ++
 arch/mips/mach-ath79/Kconfig                       |   1 +
 arch/mips/mach-ath79/include/mach/pbl_macros.h     |   8 ++
 19 files changed, 417 insertions(+), 9 deletions(-)
 create mode 100644 arch/mips/include/asm/cache.h
 create mode 100644 arch/mips/include/asm/cacheops.h
 create mode 100644 arch/mips/lib/dma-default.c
 create mode 100644 arch/mips/lib/shutdown.c

-- 
2.7.0


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH 01/15] MIPS: probe_scache(): use MIPS_CONF_M linux kernel macro
  2016-03-07 13:30 [PATCH 00/15] MIPS: ar9331: use cache and fix gpio Antony Pavlov
@ 2016-03-07 13:30 ` Antony Pavlov
  2016-03-07 13:30 ` [PATCH 02/15] MIPS: pbl: import cache init code from U-Boot v2016.01-212-ga3ab2ae Antony Pavlov
                   ` (14 subsequent siblings)
  15 siblings, 0 replies; 23+ messages in thread
From: Antony Pavlov @ 2016-03-07 13:30 UTC (permalink / raw)
  To: barebox; +Cc: Peter Mamonov

We already have MIPS_CONF_M macro in <asm/mipsregs.h> so
we have no need in homebrew CONFIG_M macro.

Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
Cc: Peter Mamonov <pmamonov@gmail.com>
---
 arch/mips/lib/c-r4k.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/arch/mips/lib/c-r4k.c b/arch/mips/lib/c-r4k.c
index 0a9dd0e..ff68677 100644
--- a/arch/mips/lib/c-r4k.c
+++ b/arch/mips/lib/c-r4k.c
@@ -91,7 +91,6 @@ static void probe_pcache(void)
 	}
 }
 
-#define CONFIG_M	(1 << 31)
 #define CONFIG2_SS_OFFSET	8
 #define CONFIG2_SL_OFFSET	4
 #define CONFIG2_SA_OFFSET	0
@@ -101,10 +100,10 @@ static void probe_scache(void)
 	unsigned int config2, config1, config = read_c0_config();
 	unsigned int ss, sl, sa;
 
-	if ((config & CONFIG_M) == 0)
+	if ((config & MIPS_CONF_M) == 0)
 		goto noscache;
 	config1 = read_c0_config1();
-	if ((config1 & CONFIG_M) == 0)
+	if ((config1 & MIPS_CONF_M) == 0)
 		goto noscache;
 	config2 = read_c0_config2();
 	ss = 0xf & (config2 >> CONFIG2_SS_OFFSET);
-- 
2.7.0


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH 02/15] MIPS: pbl: import cache init code from U-Boot v2016.01-212-ga3ab2ae
  2016-03-07 13:30 [PATCH 00/15] MIPS: ar9331: use cache and fix gpio Antony Pavlov
  2016-03-07 13:30 ` [PATCH 01/15] MIPS: probe_scache(): use MIPS_CONF_M linux kernel macro Antony Pavlov
@ 2016-03-07 13:30 ` Antony Pavlov
  2016-03-07 13:30 ` [PATCH 03/15] MIPS: black-swift: pbl: init cache Antony Pavlov
                   ` (13 subsequent siblings)
  15 siblings, 0 replies; 23+ messages in thread
From: Antony Pavlov @ 2016-03-07 13:30 UTC (permalink / raw)
  To: barebox

Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
---
 arch/mips/include/asm/cacheops.h   |  29 ++++++++
 arch/mips/include/asm/mipsregs.h   |   8 +++
 arch/mips/include/asm/pbl_macros.h | 133 +++++++++++++++++++++++++++++++++++++
 3 files changed, 170 insertions(+)

diff --git a/arch/mips/include/asm/cacheops.h b/arch/mips/include/asm/cacheops.h
new file mode 100644
index 0000000..5bd44d5
--- /dev/null
+++ b/arch/mips/include/asm/cacheops.h
@@ -0,0 +1,29 @@
+/*
+ * Cache operations for the cache instruction.
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License.  See the file "COPYING" in the main directory of this archive
+ * for more details.
+ *
+ * (C) Copyright 1996, 97, 99, 2002, 03 Ralf Baechle
+ * (C) Copyright 1999 Silicon Graphics, Inc.
+ */
+#ifndef __ASM_CACHEOPS_H
+#define __ASM_CACHEOPS_H
+
+/*
+ * Most cache ops are split into a 2 bit field identifying the cache, and a 3
+ * bit field identifying the cache operation.
+ */
+#define Cache_I				0x00
+#define Cache_D				0x01
+
+#define Index_Store_Tag			0x08
+
+/*
+ * Cache Operations available on all MIPS processors with R4000-style caches
+ */
+#define Index_Store_Tag_I		(Cache_I | Index_Store_Tag)
+#define Index_Store_Tag_D		(Cache_D | Index_Store_Tag)
+
+#endif	/* __ASM_CACHEOPS_H */
diff --git a/arch/mips/include/asm/mipsregs.h b/arch/mips/include/asm/mipsregs.h
index f923860..30262e6 100644
--- a/arch/mips/include/asm/mipsregs.h
+++ b/arch/mips/include/asm/mipsregs.h
@@ -409,6 +409,14 @@
 #define MIPS_CONF1_PC		(_ULCAST_(1) <<  4)
 #define MIPS_CONF1_MD		(_ULCAST_(1) <<  5)
 #define MIPS_CONF1_C2		(_ULCAST_(1) <<  6)
+#define MIPS_CONF1_DA_SHF	7
+#define MIPS_CONF1_DA		(_ULCAST_(7) <<  7)
+#define MIPS_CONF1_DL_SHF	10
+#define MIPS_CONF1_DL		(_ULCAST_(7) << 10)
+#define MIPS_CONF1_DS_SHF	13
+#define MIPS_CONF1_DS		(_ULCAST_(7) << 13)
+#define MIPS_CONF1_IA_SHF	16
+
 #define MIPS_CONF1_DA		(_ULCAST_(7) <<  7)
 #define MIPS_CONF1_DL		(_ULCAST_(7) << 10)
 #define MIPS_CONF1_DS		(_ULCAST_(7) << 13)
diff --git a/arch/mips/include/asm/pbl_macros.h b/arch/mips/include/asm/pbl_macros.h
index dbe3410..37b150a 100644
--- a/arch/mips/include/asm/pbl_macros.h
+++ b/arch/mips/include/asm/pbl_macros.h
@@ -27,6 +27,8 @@
 #include <asm-generic/memory_layout.h>
 #include <generated/compile.h>
 #include <generated/utsrelease.h>
+#include <asm/addrspace.h>
+#include <asm/cacheops.h>
 
 	.macro	pbl_reg_writel val addr
 	.set push
@@ -212,4 +214,135 @@ copy_loop_exit:
 	.set	pop
 	.endm
 
+#ifndef CONFIG_SYS_MIPS_CACHE_MODE
+#define CONFIG_SYS_MIPS_CACHE_MODE CONF_CM_CACHABLE_NONCOHERENT
+#endif
+
+#define INDEX_BASE	CKSEG0
+
+	.macro	f_fill64 dst, offset, val
+	LONG_S	\val, (\offset +  0 * LONGSIZE)(\dst)
+	LONG_S	\val, (\offset +  1 * LONGSIZE)(\dst)
+	LONG_S	\val, (\offset +  2 * LONGSIZE)(\dst)
+	LONG_S	\val, (\offset +  3 * LONGSIZE)(\dst)
+	LONG_S	\val, (\offset +  4 * LONGSIZE)(\dst)
+	LONG_S	\val, (\offset +  5 * LONGSIZE)(\dst)
+	LONG_S	\val, (\offset +  6 * LONGSIZE)(\dst)
+	LONG_S	\val, (\offset +  7 * LONGSIZE)(\dst)
+#if LONGSIZE == 4
+	LONG_S	\val, (\offset +  8 * LONGSIZE)(\dst)
+	LONG_S	\val, (\offset +  9 * LONGSIZE)(\dst)
+	LONG_S	\val, (\offset + 10 * LONGSIZE)(\dst)
+	LONG_S	\val, (\offset + 11 * LONGSIZE)(\dst)
+	LONG_S	\val, (\offset + 12 * LONGSIZE)(\dst)
+	LONG_S	\val, (\offset + 13 * LONGSIZE)(\dst)
+	LONG_S	\val, (\offset + 14 * LONGSIZE)(\dst)
+	LONG_S	\val, (\offset + 15 * LONGSIZE)(\dst)
+#endif
+	.endm
+
+	.macro cache_loop	curr, end, line_sz, op
+10:	cache		\op, 0(\curr)
+	PTR_ADDU	\curr, \curr, \line_sz
+	bne		\curr, \end, 10b
+	.endm
+
+	.macro	l1_info		sz, line_sz, off
+	.set	push
+	.set	noat
+
+	mfc0	$1, CP0_CONFIG, 1
+
+	/* detect line size */
+	srl	\line_sz, $1, \off + MIPS_CONF1_DL_SHF - MIPS_CONF1_DA_SHF
+	andi	\line_sz, \line_sz, (MIPS_CONF1_DL >> MIPS_CONF1_DL_SHF)
+	move	\sz, zero
+	beqz	\line_sz, 10f
+	li	\sz, 2
+	sllv	\line_sz, \sz, \line_sz
+
+	/* detect associativity */
+	srl	\sz, $1, \off + MIPS_CONF1_DA_SHF - MIPS_CONF1_DA_SHF
+	andi	\sz, \sz, (MIPS_CONF1_DA >> MIPS_CONF1_DA_SHF)
+	addi	\sz, \sz, 1
+
+	/* sz *= line_sz */
+	mul	\sz, \sz, \line_sz
+
+	/* detect log32(sets) */
+	srl	$1, $1, \off + MIPS_CONF1_DS_SHF - MIPS_CONF1_DA_SHF
+	andi	$1, $1, (MIPS_CONF1_DS >> MIPS_CONF1_DS_SHF)
+	addiu	$1, $1, 1
+	andi	$1, $1, 0x7
+
+	/* sz <<= log32(sets) */
+	sllv	\sz, \sz, $1
+
+	/* sz *= 32 */
+	li	$1, 32
+	mul	\sz, \sz, $1
+10:
+	.set	pop
+	.endm
+
+/*
+ * mips_cache_reset - low level initialisation of the primary caches
+ *
+ * This routine initialises the primary caches to ensure that they have good
+ * parity.  It must be called by the ROM before any cached locations are used
+ * to prevent the possibility of data with bad parity being written to memory.
+ *
+ * To initialise the instruction cache it is essential that a source of data
+ * with good parity is available. This routine will initialise an area of
+ * memory starting at location zero to be used as a source of parity.
+ *
+ */
+	.macro	mips_cache_reset
+
+	l1_info	t2, t8, MIPS_CONF1_IA_SHF
+	l1_info	t3, t9, MIPS_CONF1_DA_SHF
+
+	/*
+	 * The TagLo registers used depend upon the CPU implementation, but the
+	 * architecture requires that it is safe for software to write to both
+	 * TagLo selects 0 & 2 covering supported cases.
+	 */
+	mtc0	zero, CP0_TAGLO
+	mtc0	zero, CP0_TAGLO, 2
+
+	/*
+	 * The caches are probably in an indeterminate state, so we force good
+	 * parity into them by doing an invalidate for each line.
+	 */
+
+	/*
+	 * Initialize the I-cache first,
+	 */
+	blez		t2, 1f
+	PTR_LI		t0, INDEX_BASE
+	PTR_ADDU	t1, t0, t2
+	/* clear tag to invalidate */
+	cache_loop	t0, t1, t8, Index_Store_Tag_I
+
+	/*
+	 * then initialize D-cache.
+	 */
+1:	blez		t3, 3f
+	PTR_LI		t0, INDEX_BASE
+	PTR_ADDU	t1, t0, t3
+	/* clear all tags */
+	cache_loop	t0, t1, t9, Index_Store_Tag_D
+
+3:	nop
+
+	.endm
+
+	.macro	dcache_enable
+	mfc0	t0, CP0_CONFIG
+	ori	t0, CONF_CM_CMASK
+	xori	t0, CONF_CM_CMASK
+	ori	t0, CONFIG_SYS_MIPS_CACHE_MODE
+	mtc0	t0, CP0_CONFIG
+	.endm
+
 #endif /* __ASM_PBL_MACROS_H */
-- 
2.7.0


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH 03/15] MIPS: black-swift: pbl: init cache
  2016-03-07 13:30 [PATCH 00/15] MIPS: ar9331: use cache and fix gpio Antony Pavlov
  2016-03-07 13:30 ` [PATCH 01/15] MIPS: probe_scache(): use MIPS_CONF_M linux kernel macro Antony Pavlov
  2016-03-07 13:30 ` [PATCH 02/15] MIPS: pbl: import cache init code from U-Boot v2016.01-212-ga3ab2ae Antony Pavlov
@ 2016-03-07 13:30 ` Antony Pavlov
  2016-03-07 13:30 ` [PATCH 04/15] MIPS: tplink-mr3020: " Antony Pavlov
                   ` (12 subsequent siblings)
  15 siblings, 0 replies; 23+ messages in thread
From: Antony Pavlov @ 2016-03-07 13:30 UTC (permalink / raw)
  To: barebox

Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
---
 arch/mips/boards/black-swift/include/board/board_pbl_start.h | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/mips/boards/black-swift/include/board/board_pbl_start.h b/arch/mips/boards/black-swift/include/board/board_pbl_start.h
index 3f2caa0..0d68004 100644
--- a/arch/mips/boards/black-swift/include/board/board_pbl_start.h
+++ b/arch/mips/boards/black-swift/include/board/board_pbl_start.h
@@ -35,6 +35,12 @@
 	pbl_ar9331_pll
 	pbl_ar9331_ddr2_config
 
+	/* Initialize caches... */
+	mips_cache_reset
+
+	/* ... and enable them */
+	dcache_enable
+
 skip_pll_ram_config:
 	pbl_ar9331_uart_enable
 	debug_ll_ar9331_init
-- 
2.7.0


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH 04/15] MIPS: tplink-mr3020: pbl: init cache
  2016-03-07 13:30 [PATCH 00/15] MIPS: ar9331: use cache and fix gpio Antony Pavlov
                   ` (2 preceding siblings ...)
  2016-03-07 13:30 ` [PATCH 03/15] MIPS: black-swift: pbl: init cache Antony Pavlov
@ 2016-03-07 13:30 ` Antony Pavlov
  2016-03-07 13:30 ` [PATCH 05/15] MIPS: add initial R4000-style cache support Antony Pavlov
                   ` (11 subsequent siblings)
  15 siblings, 0 replies; 23+ messages in thread
From: Antony Pavlov @ 2016-03-07 13:30 UTC (permalink / raw)
  To: barebox

Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
---
 arch/mips/boards/tplink-mr3020/include/board/board_pbl_start.h | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/mips/boards/tplink-mr3020/include/board/board_pbl_start.h b/arch/mips/boards/tplink-mr3020/include/board/board_pbl_start.h
index ae548c9..2400015 100644
--- a/arch/mips/boards/tplink-mr3020/include/board/board_pbl_start.h
+++ b/arch/mips/boards/tplink-mr3020/include/board/board_pbl_start.h
@@ -35,6 +35,12 @@
 	pbl_ar9331_pll
 	pbl_ar9331_ddr1_config
 
+	/* Initialize caches... */
+	mips_cache_reset
+
+	/* ... and enable them */
+	dcache_enable
+
 skip_pll_ram_config:
 	pbl_ar9331_uart_enable
 	debug_ll_ar9331_init
-- 
2.7.0


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH 05/15] MIPS: add initial R4000-style cache support
  2016-03-07 13:30 [PATCH 00/15] MIPS: ar9331: use cache and fix gpio Antony Pavlov
                   ` (3 preceding siblings ...)
  2016-03-07 13:30 ` [PATCH 04/15] MIPS: tplink-mr3020: " Antony Pavlov
@ 2016-03-07 13:30 ` Antony Pavlov
  2016-03-09 13:28   ` Sascha Hauer
  2016-03-07 13:30 ` [PATCH 06/15] MIPS: flush cache on shutdown Antony Pavlov
                   ` (10 subsequent siblings)
  15 siblings, 1 reply; 23+ messages in thread
From: Antony Pavlov @ 2016-03-07 13:30 UTC (permalink / raw)
  To: barebox; +Cc: Peter Mamonov

Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
Signed-off-by: Peter Mamonov <pmamonov@gmail.com>
---
 arch/mips/include/asm/cacheops.h |  7 ++++++
 arch/mips/include/asm/io.h       |  3 +++
 arch/mips/lib/c-r4k.c            | 48 ++++++++++++++++++++++++++++++++++++++++
 3 files changed, 58 insertions(+)

diff --git a/arch/mips/include/asm/cacheops.h b/arch/mips/include/asm/cacheops.h
index 5bd44d5..3bc5852 100644
--- a/arch/mips/include/asm/cacheops.h
+++ b/arch/mips/include/asm/cacheops.h
@@ -18,12 +18,19 @@
 #define Cache_I				0x00
 #define Cache_D				0x01
 
+#define Index_Writeback_Inv		0x00
 #define Index_Store_Tag			0x08
+#define Hit_Invalidate			0x10
+#define Hit_Writeback_Inv		0x14	/* not with Cache_I though */
 
 /*
  * Cache Operations available on all MIPS processors with R4000-style caches
  */
+#define Index_Invalidate_I		(Cache_I | Index_Writeback_Inv)
+#define Index_Writeback_Inv_D		(Cache_D | Index_Writeback_Inv)
 #define Index_Store_Tag_I		(Cache_I | Index_Store_Tag)
 #define Index_Store_Tag_D		(Cache_D | Index_Store_Tag)
+#define Hit_Invalidate_D		(Cache_D | Hit_Invalidate)
+#define Hit_Writeback_Inv_D		(Cache_D | Hit_Writeback_Inv)
 
 #endif	/* __ASM_CACHEOPS_H */
diff --git a/arch/mips/include/asm/io.h b/arch/mips/include/asm/io.h
index 4832be6..4bee591 100644
--- a/arch/mips/include/asm/io.h
+++ b/arch/mips/include/asm/io.h
@@ -14,6 +14,9 @@
 #include <asm/types.h>
 #include <asm/byteorder.h>
 
+void dma_flush_range(unsigned long, unsigned long);
+void dma_inv_range(unsigned long, unsigned long);
+
 #define	IO_SPACE_LIMIT	0
 
 /*****************************************************************************/
diff --git a/arch/mips/lib/c-r4k.c b/arch/mips/lib/c-r4k.c
index ff68677..4fe046a 100644
--- a/arch/mips/lib/c-r4k.c
+++ b/arch/mips/lib/c-r4k.c
@@ -10,10 +10,58 @@
 #include <common.h>
 #include <asm/io.h>
 #include <asm/mipsregs.h>
+#include <asm/cache.h>
+#include <asm/cacheops.h>
 #include <asm/cpu.h>
 #include <asm/cpu-info.h>
 #include <asm/bitops.h>
 
+#define cache_op(op,addr)						\
+	__asm__ __volatile__(						\
+	"	.set	push					\n"	\
+	"	.set	noreorder				\n"	\
+	"	.set	mips3\n\t				\n"	\
+	"	cache	%0, %1					\n"	\
+	"	.set	pop					\n"	\
+	:								\
+	: "i" (op), "R" (*(unsigned char *)(addr)))
+
+#define __BUILD_BLAST_CACHE_RANGE(pfx, desc, hitop)			\
+static inline void blast_##pfx##cache##_range(unsigned long start,	\
+					      unsigned long end)	\
+{									\
+	unsigned long lsize = current_cpu_data.desc.linesz;		\
+	unsigned long addr = start & ~(lsize - 1);			\
+	unsigned long aend = (end - 1) & ~(lsize - 1);			\
+									\
+	if (current_cpu_data.desc.flags & MIPS_CACHE_NOT_PRESENT)	\
+		return;							\
+									\
+	while (1) {							\
+		cache_op(hitop, addr);					\
+		if (addr == aend)					\
+			break;						\
+		addr += lsize;						\
+	}								\
+}
+
+__BUILD_BLAST_CACHE_RANGE(d, dcache, Hit_Writeback_Inv_D)
+__BUILD_BLAST_CACHE_RANGE(inv_d, dcache, Hit_Invalidate_D)
+
+void dma_flush_range(unsigned long start, unsigned long end)
+{
+	blast_dcache_range(start, end);
+
+	/* secondatory cache skipped */
+}
+
+void dma_inv_range(unsigned long start, unsigned long end)
+{
+	blast_inv_dcache_range(start, end);
+
+	/* secondatory cache skipped */
+}
+
 void r4k_cache_init(void);
 
 static void probe_pcache(void)
-- 
2.7.0


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH 06/15] MIPS: flush cache on shutdown
  2016-03-07 13:30 [PATCH 00/15] MIPS: ar9331: use cache and fix gpio Antony Pavlov
                   ` (4 preceding siblings ...)
  2016-03-07 13:30 ` [PATCH 05/15] MIPS: add initial R4000-style cache support Antony Pavlov
@ 2016-03-07 13:30 ` Antony Pavlov
  2016-03-07 13:30 ` [PATCH 07/15] MIPS: implement dma_sync_* functions Antony Pavlov
                   ` (9 subsequent siblings)
  15 siblings, 0 replies; 23+ messages in thread
From: Antony Pavlov @ 2016-03-07 13:30 UTC (permalink / raw)
  To: barebox; +Cc: Peter Mamonov

Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
Signed-off-by: Peter Mamonov <pmamonov@gmail.com>
---
 arch/mips/include/asm/cache.h |  6 ++++++
 arch/mips/lib/Makefile        |  1 +
 arch/mips/lib/c-r4k.c         | 23 +++++++++++++++++++++++
 arch/mips/lib/shutdown.c      | 12 ++++++++++++
 4 files changed, 42 insertions(+)

diff --git a/arch/mips/include/asm/cache.h b/arch/mips/include/asm/cache.h
new file mode 100644
index 0000000..cceba0a
--- /dev/null
+++ b/arch/mips/include/asm/cache.h
@@ -0,0 +1,6 @@
+#ifndef _ASM_MIPS_CACHE_H
+#define _ASM_MIPS_CACHE_H
+
+void flush_cache_all(void);
+
+#endif /* _ASM_MIPS_CACHE_H */
diff --git a/arch/mips/lib/Makefile b/arch/mips/lib/Makefile
index 02ee189..43f7af7 100644
--- a/arch/mips/lib/Makefile
+++ b/arch/mips/lib/Makefile
@@ -6,6 +6,7 @@ obj-y += ashrdi3.o
 obj-y += cpu-probe.o
 obj-y += traps.o
 obj-y += genex.o
+obj-y += shutdown.o
 
 obj-$(CONFIG_MIPS_OPTIMIZED_STRING_FUNCTIONS) += memcpy.o
 obj-$(CONFIG_MIPS_OPTIMIZED_STRING_FUNCTIONS) += memset.o
diff --git a/arch/mips/lib/c-r4k.c b/arch/mips/lib/c-r4k.c
index 4fe046a..1502058 100644
--- a/arch/mips/lib/c-r4k.c
+++ b/arch/mips/lib/c-r4k.c
@@ -48,6 +48,29 @@ static inline void blast_##pfx##cache##_range(unsigned long start,	\
 __BUILD_BLAST_CACHE_RANGE(d, dcache, Hit_Writeback_Inv_D)
 __BUILD_BLAST_CACHE_RANGE(inv_d, dcache, Hit_Invalidate_D)
 
+void flush_cache_all(void)
+{
+	struct cpuinfo_mips *c = &current_cpu_data;
+	unsigned long lsize;
+	unsigned long addr;
+	unsigned long aend;
+	unsigned int icache_size, dcache_size;
+
+	dcache_size = c->dcache.waysize * c->dcache.ways;
+	lsize = c->dcache.linesz;
+	aend = (KSEG0 + dcache_size - 1) & ~(lsize - 1);
+	for (addr = KSEG0; addr <= aend; addr += lsize)
+		cache_op(Index_Writeback_Inv_D, addr);
+
+	icache_size = c->icache.waysize * c->icache.ways;
+	lsize = c->icache.linesz;
+	aend = (KSEG0 + icache_size - 1) & ~(lsize - 1);
+	for (addr = KSEG0; addr <= aend; addr += lsize)
+		cache_op(Index_Invalidate_I, addr);
+
+	/* secondatory cache skipped */
+}
+
 void dma_flush_range(unsigned long start, unsigned long end)
 {
 	blast_dcache_range(start, end);
diff --git a/arch/mips/lib/shutdown.c b/arch/mips/lib/shutdown.c
new file mode 100644
index 0000000..973cd23
--- /dev/null
+++ b/arch/mips/lib/shutdown.c
@@ -0,0 +1,12 @@
+/**
+ * This function is called by shutdown_barebox to get a clean
+ * memory/cache state.
+ */
+#include <init.h>
+#include <asm/cache.h>
+
+static void arch_shutdown(void)
+{
+	flush_cache_all();
+}
+archshutdown_exitcall(arch_shutdown);
-- 
2.7.0


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH 07/15] MIPS: implement dma_sync_* functions
  2016-03-07 13:30 [PATCH 00/15] MIPS: ar9331: use cache and fix gpio Antony Pavlov
                   ` (5 preceding siblings ...)
  2016-03-07 13:30 ` [PATCH 06/15] MIPS: flush cache on shutdown Antony Pavlov
@ 2016-03-07 13:30 ` Antony Pavlov
  2016-03-07 13:30 ` [PATCH 08/15] MIPS: dtb: register only one memory bank Antony Pavlov
                   ` (8 subsequent siblings)
  15 siblings, 0 replies; 23+ messages in thread
From: Antony Pavlov @ 2016-03-07 13:30 UTC (permalink / raw)
  To: barebox; +Cc: Peter Mamonov

From: Peter Mamonov <pmamonov@gmail.com>

Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
Signed-off-by: Peter Mamonov <pmamonov@gmail.com>
---
 arch/mips/Kconfig                   |  1 +
 arch/mips/include/asm/dma-mapping.h | 11 ++++++-
 arch/mips/lib/Makefile              |  1 +
 arch/mips/lib/dma-default.c         | 57 +++++++++++++++++++++++++++++++++++++
 4 files changed, 69 insertions(+), 1 deletion(-)

diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index fdf62e8..06a516d 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -6,6 +6,7 @@ config MIPS
 	select HAS_KALLSYMS
 	select HAVE_CONFIGURABLE_MEMORY_LAYOUT
 	select HAVE_CONFIGURABLE_TEXT_BASE
+	select HAS_DMA
 	default y
 
 config SYS_SUPPORTS_BIG_ENDIAN
diff --git a/arch/mips/include/asm/dma-mapping.h b/arch/mips/include/asm/dma-mapping.h
index 6395112..c71a087 100644
--- a/arch/mips/include/asm/dma-mapping.h
+++ b/arch/mips/include/asm/dma-mapping.h
@@ -1,10 +1,12 @@
 #ifndef _ASM_DMA_MAPPING_H
 #define _ASM_DMA_MAPPING_H
 
+#include <common.h>
 #include <xfuncs.h>
 #include <asm/addrspace.h>
 #include <asm/types.h>
 #include <malloc.h>
+#include <asm/io.h>
 
 static inline void *dma_alloc_coherent(size_t size, dma_addr_t *dma_handle)
 {
@@ -12,16 +14,23 @@ static inline void *dma_alloc_coherent(size_t size, dma_addr_t *dma_handle)
 
 	ret = xmemalign(PAGE_SIZE, size);
 
+	memset(ret, 0, size);
+
 	if (dma_handle)
 		*dma_handle = CPHYSADDR(ret);
 
+	dma_flush_range((unsigned long)ret, (unsigned long)(ret + size));
+
 	return (void *)CKSEG1ADDR(ret);
 }
 
 static inline void dma_free_coherent(void *vaddr, dma_addr_t dma_handle,
 				     size_t size)
 {
-	free(vaddr);
+	if (IS_ENABLED(CONFIG_MMU))
+		free((void *)CKSEG0ADDR(vaddr));
+	else
+		free(vaddr);
 }
 
 #endif /* _ASM_DMA_MAPPING_H */
diff --git a/arch/mips/lib/Makefile b/arch/mips/lib/Makefile
index 43f7af7..d25d096 100644
--- a/arch/mips/lib/Makefile
+++ b/arch/mips/lib/Makefile
@@ -7,6 +7,7 @@ obj-y += cpu-probe.o
 obj-y += traps.o
 obj-y += genex.o
 obj-y += shutdown.o
+obj-y += dma-default.o
 
 obj-$(CONFIG_MIPS_OPTIMIZED_STRING_FUNCTIONS) += memcpy.o
 obj-$(CONFIG_MIPS_OPTIMIZED_STRING_FUNCTIONS) += memset.o
diff --git a/arch/mips/lib/dma-default.c b/arch/mips/lib/dma-default.c
new file mode 100644
index 0000000..9b2fe7d
--- /dev/null
+++ b/arch/mips/lib/dma-default.c
@@ -0,0 +1,57 @@
+/*
+ * (C) Copyright 2015, 2016 Peter Mamonov <pmamonov@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#include <dma.h>
+#include <asm/io.h>
+
+#if defined(CONFIG_CPU_MIPS32) || \
+	defined(CONFIG_CPU_MIPS64)
+static inline void __dma_sync_mips(unsigned long addr, size_t size,
+				   enum dma_data_direction direction)
+{
+	switch (direction) {
+	case DMA_TO_DEVICE:
+		dma_flush_range(addr, addr + size);
+		break;
+
+	case DMA_FROM_DEVICE:
+		dma_inv_range(addr, addr + size);
+		break;
+
+	case DMA_BIDIRECTIONAL:
+		dma_flush_range(addr, addr + size);
+		break;
+
+	default:
+		BUG();
+	}
+}
+#else
+static inline void __dma_sync_mips(void *addr, size_t size,
+	enum dma_data_direction direction)
+{
+}
+#endif
+
+void dma_sync_single_for_cpu(unsigned long address, size_t size,
+			     enum dma_data_direction dir)
+{
+	__dma_sync_mips(address, size, dir);
+}
+
+void dma_sync_single_for_device(unsigned long address, size_t size,
+				enum dma_data_direction dir)
+{
+	__dma_sync_mips(address, size, dir);
+}
-- 
2.7.0


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH 08/15] MIPS: dtb: register only one memory bank
  2016-03-07 13:30 [PATCH 00/15] MIPS: ar9331: use cache and fix gpio Antony Pavlov
                   ` (6 preceding siblings ...)
  2016-03-07 13:30 ` [PATCH 07/15] MIPS: implement dma_sync_* functions Antony Pavlov
@ 2016-03-07 13:30 ` Antony Pavlov
  2016-03-07 13:30 ` [PATCH 09/15] MIPS: tplink-mr3020_defconfig: use cached memory region Antony Pavlov
                   ` (7 subsequent siblings)
  15 siblings, 0 replies; 23+ messages in thread
From: Antony Pavlov @ 2016-03-07 13:30 UTC (permalink / raw)
  To: barebox; +Cc: Peter Mamonov

From: Peter Mamonov <pmamonov@gmail.com>

Signed-off-by: Peter Mamonov <pmamonov@gmail.com>
Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
---
 arch/mips/boot/dtb.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/arch/mips/boot/dtb.c b/arch/mips/boot/dtb.c
index 23d8979..977c837 100644
--- a/arch/mips/boot/dtb.c
+++ b/arch/mips/boot/dtb.c
@@ -28,11 +28,13 @@ void of_add_memory_bank(struct device_node *node, bool dump, int r,
 {
 	static char str[12];
 
-	sprintf(str, "kseg0_ram%d", r);
-	barebox_add_memory_bank(str, KSEG0 | base, size);
-
-	sprintf(str, "kseg1_ram%d", r);
-	barebox_add_memory_bank(str, KSEG1 | base, size);
+	if (IS_ENABLED(CONFIG_MMU)) {
+		sprintf(str, "kseg0_ram%d", r);
+		barebox_add_memory_bank(str, KSEG0 | base, size);
+	} else {
+		sprintf(str, "kseg1_ram%d", r);
+		barebox_add_memory_bank(str, KSEG1 | base, size);
+	}
 
 	if (dump)
 		pr_info("%s: %s: 0x%llx@0x%llx\n", node->name, str, size, base);
-- 
2.7.0


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH 09/15] MIPS: tplink-mr3020_defconfig: use cached memory region
  2016-03-07 13:30 [PATCH 00/15] MIPS: ar9331: use cache and fix gpio Antony Pavlov
                   ` (7 preceding siblings ...)
  2016-03-07 13:30 ` [PATCH 08/15] MIPS: dtb: register only one memory bank Antony Pavlov
@ 2016-03-07 13:30 ` Antony Pavlov
  2016-03-07 13:30 ` [PATCH 10/15] MIPS: black-swift_defconfig: " Antony Pavlov
                   ` (6 subsequent siblings)
  15 siblings, 0 replies; 23+ messages in thread
From: Antony Pavlov @ 2016-03-07 13:30 UTC (permalink / raw)
  To: barebox

Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
---
 arch/mips/configs/tplink-mr3020_defconfig | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/mips/configs/tplink-mr3020_defconfig b/arch/mips/configs/tplink-mr3020_defconfig
index f2ba2da..93fb10d 100644
--- a/arch/mips/configs/tplink-mr3020_defconfig
+++ b/arch/mips/configs/tplink-mr3020_defconfig
@@ -3,6 +3,8 @@ CONFIG_BUILTIN_DTB_NAME="tplink-mr3020"
 CONFIG_MACH_MIPS_ATH79=y
 CONFIG_PBL_IMAGE=y
 CONFIG_IMAGE_COMPRESSION_XZKERN=y
+CONFIG_MMU=y
+CONFIG_TEXT_BASE=0x81000000
 CONFIG_MALLOC_TLSF=y
 CONFIG_CMDLINE_EDITING=y
 CONFIG_AUTO_COMPLETE=y
-- 
2.7.0


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH 10/15] MIPS: black-swift_defconfig: use cached memory region
  2016-03-07 13:30 [PATCH 00/15] MIPS: ar9331: use cache and fix gpio Antony Pavlov
                   ` (8 preceding siblings ...)
  2016-03-07 13:30 ` [PATCH 09/15] MIPS: tplink-mr3020_defconfig: use cached memory region Antony Pavlov
@ 2016-03-07 13:30 ` Antony Pavlov
  2016-03-07 13:30 ` [PATCH 11/15] MIPS: ath79: pbl: add pbl_ar9331_mdio_gpio_enable macro Antony Pavlov
                   ` (5 subsequent siblings)
  15 siblings, 0 replies; 23+ messages in thread
From: Antony Pavlov @ 2016-03-07 13:30 UTC (permalink / raw)
  To: barebox

Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
---
 arch/mips/configs/black-swift_defconfig | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/mips/configs/black-swift_defconfig b/arch/mips/configs/black-swift_defconfig
index 7444968..dda863d 100644
--- a/arch/mips/configs/black-swift_defconfig
+++ b/arch/mips/configs/black-swift_defconfig
@@ -9,6 +9,8 @@ CONFIG_NMON_USER_START_DELAY=0x5
 CONFIG_NMON_HELP=y
 CONFIG_PBL_IMAGE=y
 CONFIG_IMAGE_COMPRESSION_XZKERN=y
+CONFIG_MMU=y
+CONFIG_TEXT_BASE=0x82000000
 CONFIG_MALLOC_TLSF=y
 CONFIG_CMDLINE_EDITING=y
 CONFIG_AUTO_COMPLETE=y
-- 
2.7.0


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH 11/15] MIPS: ath79: pbl: add pbl_ar9331_mdio_gpio_enable macro
  2016-03-07 13:30 [PATCH 00/15] MIPS: ar9331: use cache and fix gpio Antony Pavlov
                   ` (9 preceding siblings ...)
  2016-03-07 13:30 ` [PATCH 10/15] MIPS: black-swift_defconfig: " Antony Pavlov
@ 2016-03-07 13:30 ` Antony Pavlov
  2016-03-07 13:30 ` [PATCH 12/15] MIPS: black-swift: enable GPIO LED Antony Pavlov
                   ` (4 subsequent siblings)
  15 siblings, 0 replies; 23+ messages in thread
From: Antony Pavlov @ 2016-03-07 13:30 UTC (permalink / raw)
  To: barebox

Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
---
 arch/mips/mach-ath79/include/mach/pbl_macros.h | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/arch/mips/mach-ath79/include/mach/pbl_macros.h b/arch/mips/mach-ath79/include/mach/pbl_macros.h
index 24cfd60..8f4d09a 100644
--- a/arch/mips/mach-ath79/include/mach/pbl_macros.h
+++ b/arch/mips/mach-ath79/include/mach/pbl_macros.h
@@ -179,6 +179,14 @@
 			| AR933X_GPIO_FUNC_RSRV15, GPIO_FUNC
 .endm
 
+#define RESET_REG_BOOTSTRAP	((KSEG1 | AR71XX_RESET_BASE) \
+					| AR933X_RESET_REG_BOOTSTRAP)
+
+.macro	pbl_ar9331_mdio_gpio_enable
+	/* Bit 18 enables MDC and MDIO function on GPIO26 and GPIO28 */
+	pbl_reg_set (1 << 18), RESET_REG_BOOTSTRAP
+.endm
+
 .macro	hornet_mips24k_cp0_setup
 	.set push
 	.set noreorder
-- 
2.7.0


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH 12/15] MIPS: black-swift: enable GPIO LED
  2016-03-07 13:30 [PATCH 00/15] MIPS: ar9331: use cache and fix gpio Antony Pavlov
                   ` (10 preceding siblings ...)
  2016-03-07 13:30 ` [PATCH 11/15] MIPS: ath79: pbl: add pbl_ar9331_mdio_gpio_enable macro Antony Pavlov
@ 2016-03-07 13:30 ` Antony Pavlov
  2016-03-07 13:30 ` [PATCH 13/15] MIPS: black-swift: enable GPIO key Antony Pavlov
                   ` (3 subsequent siblings)
  15 siblings, 0 replies; 23+ messages in thread
From: Antony Pavlov @ 2016-03-07 13:30 UTC (permalink / raw)
  To: barebox

Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
---
 .../boards/black-swift/include/board/board_pbl_start.h    |  6 ++++++
 arch/mips/dts/black-swift.dts                             | 15 +++++++++++++++
 2 files changed, 21 insertions(+)

diff --git a/arch/mips/boards/black-swift/include/board/board_pbl_start.h b/arch/mips/boards/black-swift/include/board/board_pbl_start.h
index 0d68004..ee21a85 100644
--- a/arch/mips/boards/black-swift/include/board/board_pbl_start.h
+++ b/arch/mips/boards/black-swift/include/board/board_pbl_start.h
@@ -46,6 +46,12 @@ skip_pll_ram_config:
 	debug_ll_ar9331_init
 	mips_nmon
 
+	/*
+	 * It is amazing but we have to enable MDIO on GPIO
+	 * to use GPIO27 for LED1.
+	 */
+	pbl_ar9331_mdio_gpio_enable
+
 	copy_to_link_location	pbl_start
 
 	.set	pop
diff --git a/arch/mips/dts/black-swift.dts b/arch/mips/dts/black-swift.dts
index 270374d..b0fa3b0 100644
--- a/arch/mips/dts/black-swift.dts
+++ b/arch/mips/dts/black-swift.dts
@@ -1,6 +1,7 @@
 /dts-v1/;
 
 #include "ar9331.dtsi"
+#include <dt-bindings/gpio/gpio.h>
 
 / {
 	model = "Black Swift";
@@ -13,12 +14,26 @@
 	aliases {
 		spiflash = &spiflash;
 	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		s1 {
+			label = "LED1";
+			gpios = <&gpio 27 GPIO_ACTIVE_LOW>;
+			default-state = "off";
+		};
+	};
 };
 
 &serial0 {
 	status = "okay";
 };
 
+&gpio {
+	status = "okay";
+};
+
 &spi {
 	num-chipselects = <1>;
 	status = "okay";
-- 
2.7.0


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH 13/15] MIPS: black-swift: enable GPIO key
  2016-03-07 13:30 [PATCH 00/15] MIPS: ar9331: use cache and fix gpio Antony Pavlov
                   ` (11 preceding siblings ...)
  2016-03-07 13:30 ` [PATCH 12/15] MIPS: black-swift: enable GPIO LED Antony Pavlov
@ 2016-03-07 13:30 ` Antony Pavlov
  2016-03-07 13:30 ` [PATCH 14/15] MIPS: black-swift_defconfig: enable gpio-related stuff Antony Pavlov
                   ` (2 subsequent siblings)
  15 siblings, 0 replies; 23+ messages in thread
From: Antony Pavlov @ 2016-03-07 13:30 UTC (permalink / raw)
  To: barebox

Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
---
 arch/mips/dts/black-swift.dts | 11 +++++++++++
 arch/mips/mach-ath79/Kconfig  |  1 +
 2 files changed, 12 insertions(+)

diff --git a/arch/mips/dts/black-swift.dts b/arch/mips/dts/black-swift.dts
index b0fa3b0..d19c381 100644
--- a/arch/mips/dts/black-swift.dts
+++ b/arch/mips/dts/black-swift.dts
@@ -2,6 +2,7 @@
 
 #include "ar9331.dtsi"
 #include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
 
 / {
 	model = "Black Swift";
@@ -15,6 +16,16 @@
 		spiflash = &spiflash;
 	};
 
+	buttons {
+		compatible = "gpio-keys";
+
+		s1 {
+			label = "S1";
+			gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_RESTART>;
+		};
+	};
+
 	leds {
 		compatible = "gpio-leds";
 
diff --git a/arch/mips/mach-ath79/Kconfig b/arch/mips/mach-ath79/Kconfig
index 9b8e394..374d722 100644
--- a/arch/mips/mach-ath79/Kconfig
+++ b/arch/mips/mach-ath79/Kconfig
@@ -18,6 +18,7 @@ config BOARD_BLACK_SWIFT
 	select HAVE_PBL_IMAGE
 	select HAVE_IMAGE_COMPRESSION
 	select HAS_NMON
+	select INPUT
 
 endchoice
 
-- 
2.7.0


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH 14/15] MIPS: black-swift_defconfig: enable gpio-related stuff
  2016-03-07 13:30 [PATCH 00/15] MIPS: ar9331: use cache and fix gpio Antony Pavlov
                   ` (12 preceding siblings ...)
  2016-03-07 13:30 ` [PATCH 13/15] MIPS: black-swift: enable GPIO key Antony Pavlov
@ 2016-03-07 13:30 ` Antony Pavlov
  2016-03-07 13:30 ` [PATCH 15/15] MIPS: tplink-mr3020: fix "WPS" and "3G" LEDs Antony Pavlov
  2016-03-09  7:31 ` [PATCH 00/15] MIPS: ar9331: use cache and fix gpio Sascha Hauer
  15 siblings, 0 replies; 23+ messages in thread
From: Antony Pavlov @ 2016-03-07 13:30 UTC (permalink / raw)
  To: barebox

Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
---
 arch/mips/configs/black-swift_defconfig | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/mips/configs/black-swift_defconfig b/arch/mips/configs/black-swift_defconfig
index dda863d..1a72cfb 100644
--- a/arch/mips/configs/black-swift_defconfig
+++ b/arch/mips/configs/black-swift_defconfig
@@ -34,6 +34,8 @@ CONFIG_CMD_EDIT=y
 CONFIG_CMD_MM=y
 CONFIG_CMD_CLK=y
 CONFIG_CMD_FLASH=y
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_LED=y
 CONFIG_CMD_SPI=y
 CONFIG_CMD_OF_NODE=y
 CONFIG_CMD_OF_PROPERTY=y
@@ -44,5 +46,9 @@ CONFIG_DRIVER_SPI_ATH79=y
 CONFIG_MTD=y
 # CONFIG_MTD_OOB_DEVICE is not set
 CONFIG_MTD_M25P80=y
+CONFIG_LED=y
+CONFIG_LED_GPIO=y
+CONFIG_LED_GPIO_OF=y
+CONFIG_KEYBOARD_GPIO=y
 CONFIG_DIGEST_SHA224_GENERIC=y
 CONFIG_DIGEST_SHA256_GENERIC=y
-- 
2.7.0


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH 15/15] MIPS: tplink-mr3020: fix "WPS" and "3G" LEDs
  2016-03-07 13:30 [PATCH 00/15] MIPS: ar9331: use cache and fix gpio Antony Pavlov
                   ` (13 preceding siblings ...)
  2016-03-07 13:30 ` [PATCH 14/15] MIPS: black-swift_defconfig: enable gpio-related stuff Antony Pavlov
@ 2016-03-07 13:30 ` Antony Pavlov
  2016-03-09  7:31 ` [PATCH 00/15] MIPS: ar9331: use cache and fix gpio Sascha Hauer
  15 siblings, 0 replies; 23+ messages in thread
From: Antony Pavlov @ 2016-03-07 13:30 UTC (permalink / raw)
  To: barebox

Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
---
 arch/mips/boards/tplink-mr3020/include/board/board_pbl_start.h | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/mips/boards/tplink-mr3020/include/board/board_pbl_start.h b/arch/mips/boards/tplink-mr3020/include/board/board_pbl_start.h
index 2400015..ef0d36d 100644
--- a/arch/mips/boards/tplink-mr3020/include/board/board_pbl_start.h
+++ b/arch/mips/boards/tplink-mr3020/include/board/board_pbl_start.h
@@ -46,6 +46,12 @@ skip_pll_ram_config:
 	debug_ll_ar9331_init
 	mips_nmon
 
+	/*
+	 * It is amazing but we have to enable MDIO on GPIO
+	 * to use GPIO26 for the "WPS" LED and GPIO27 for the "3G" LED.
+	 */
+	pbl_ar9331_mdio_gpio_enable
+
 	copy_to_link_location	pbl_start
 
 	.set	pop
-- 
2.7.0


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 00/15] MIPS: ar9331: use cache and fix gpio
  2016-03-07 13:30 [PATCH 00/15] MIPS: ar9331: use cache and fix gpio Antony Pavlov
                   ` (14 preceding siblings ...)
  2016-03-07 13:30 ` [PATCH 15/15] MIPS: tplink-mr3020: fix "WPS" and "3G" LEDs Antony Pavlov
@ 2016-03-09  7:31 ` Sascha Hauer
  2016-03-09  8:45   ` Yegor Yefremov
  15 siblings, 1 reply; 23+ messages in thread
From: Sascha Hauer @ 2016-03-09  7:31 UTC (permalink / raw)
  To: Antony Pavlov; +Cc: barebox

Hi Antony,

On Mon, Mar 07, 2016 at 04:30:11PM +0300, Antony Pavlov wrote:
> This patchseries introduces initial MIPS cache support.
> Though the cache code is usable for many MIPS-based chips
> at the moment the code is tested mostly on AR9331 SoC.
> So I have decided to submit only AR9331-related cache
> patches and add AR9331 GPIO-related patches to the series.

This series probably deserves a better review than I have given it, but
my knowledge of Mips is nearly not existent. I just applied it.

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 00/15] MIPS: ar9331: use cache and fix gpio
  2016-03-09  7:31 ` [PATCH 00/15] MIPS: ar9331: use cache and fix gpio Sascha Hauer
@ 2016-03-09  8:45   ` Yegor Yefremov
  2016-03-09 10:34     ` Antony Pavlov
  0 siblings, 1 reply; 23+ messages in thread
From: Yegor Yefremov @ 2016-03-09  8:45 UTC (permalink / raw)
  To: Sascha Hauer; +Cc: barebox

On Wed, Mar 9, 2016 at 8:31 AM, Sascha Hauer <s.hauer@pengutronix.de> wrote:
> Hi Antony,
>
> On Mon, Mar 07, 2016 at 04:30:11PM +0300, Antony Pavlov wrote:
>> This patchseries introduces initial MIPS cache support.
>> Though the cache code is usable for many MIPS-based chips
>> at the moment the code is tested mostly on AR9331 SoC.
>> So I have decided to submit only AR9331-related cache
>> patches and add AR9331 GPIO-related patches to the series.
>
> This series probably deserves a better review than I have given it, but
> my knowledge of Mips is nearly not existent. I just applied it.

I haven't got my hands on this series, but I have used the previous
one. SquashFS patches were developed using the previous version
(Antony's GItHub branch).

Yegor

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 00/15] MIPS: ar9331: use cache and fix gpio
  2016-03-09  8:45   ` Yegor Yefremov
@ 2016-03-09 10:34     ` Antony Pavlov
  0 siblings, 0 replies; 23+ messages in thread
From: Antony Pavlov @ 2016-03-09 10:34 UTC (permalink / raw)
  To: Sascha Hauer, Yegor Yefremov; +Cc: barebox

On Wed, 9 Mar 2016 09:45:11 +0100
Yegor Yefremov <yegorslists@googlemail.com> wrote:

> On Wed, Mar 9, 2016 at 8:31 AM, Sascha Hauer <s.hauer@pengutronix.de> wrote:
> > Hi Antony,
> >
> > On Mon, Mar 07, 2016 at 04:30:11PM +0300, Antony Pavlov wrote:
> >> This patchseries introduces initial MIPS cache support.
> >> Though the cache code is usable for many MIPS-based chips
> >> at the moment the code is tested mostly on AR9331 SoC.
> >> So I have decided to submit only AR9331-related cache
> >> patches and add AR9331 GPIO-related patches to the series.
> >
> > This series probably deserves a better review than I have given it, but
> > my knowledge of Mips is nearly not existent. I just applied it.
> 
> I haven't got my hands on this series, but I have used the previous
> one. SquashFS patches were developed using the previous version
> (Antony's GItHub branch).

Actually there are only very few cosmetic differences between the maillist series and my github branch.
 
-- 
Best regards,
  Antony Pavlov

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 05/15] MIPS: add initial R4000-style cache support
  2016-03-07 13:30 ` [PATCH 05/15] MIPS: add initial R4000-style cache support Antony Pavlov
@ 2016-03-09 13:28   ` Sascha Hauer
  2016-03-09 14:23     ` Antony Pavlov
  0 siblings, 1 reply; 23+ messages in thread
From: Sascha Hauer @ 2016-03-09 13:28 UTC (permalink / raw)
  To: Antony Pavlov; +Cc: barebox, Peter Mamonov

Hi Antony,

On Mon, Mar 07, 2016 at 04:30:16PM +0300, Antony Pavlov wrote:
> Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
> Signed-off-by: Peter Mamonov <pmamonov@gmail.com>
> ---
>  arch/mips/include/asm/cacheops.h |  7 ++++++
>  arch/mips/include/asm/io.h       |  3 +++
>  arch/mips/lib/c-r4k.c            | 48 ++++++++++++++++++++++++++++++++++++++++
>  3 files changed, 58 insertions(+)
> 
> index ff68677..4fe046a 100644
> --- a/arch/mips/lib/c-r4k.c
> +++ b/arch/mips/lib/c-r4k.c
> @@ -10,10 +10,58 @@
>  #include <common.h>
>  #include <asm/io.h>
>  #include <asm/mipsregs.h>
> +#include <asm/cache.h>

This breaks bisectibility. asm/cache.h is introduced with the next.
patch. I tried swapping the patches but got merge conflicts. Shall I
squash both patches or do you have another preferred solution?

Sascha


-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 05/15] MIPS: add initial R4000-style cache support
  2016-03-09 13:28   ` Sascha Hauer
@ 2016-03-09 14:23     ` Antony Pavlov
  2016-03-09 16:12       ` Antony Pavlov
  0 siblings, 1 reply; 23+ messages in thread
From: Antony Pavlov @ 2016-03-09 14:23 UTC (permalink / raw)
  To: Sascha Hauer; +Cc: barebox, Peter Mamonov

On Wed, 9 Mar 2016 14:28:14 +0100
Sascha Hauer <s.hauer@pengutronix.de> wrote:

> Hi Antony,
> 
> On Mon, Mar 07, 2016 at 04:30:16PM +0300, Antony Pavlov wrote:
> > Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
> > Signed-off-by: Peter Mamonov <pmamonov@gmail.com>
> > ---
> >  arch/mips/include/asm/cacheops.h |  7 ++++++
> >  arch/mips/include/asm/io.h       |  3 +++
> >  arch/mips/lib/c-r4k.c            | 48 ++++++++++++++++++++++++++++++++++++++++
> >  3 files changed, 58 insertions(+)
> > 
> > index ff68677..4fe046a 100644
> > --- a/arch/mips/lib/c-r4k.c
> > +++ b/arch/mips/lib/c-r4k.c
> > @@ -10,10 +10,58 @@
> >  #include <common.h>
> >  #include <asm/io.h>
> >  #include <asm/mipsregs.h>
> > +#include <asm/cache.h>
> 
> This breaks bisectibility. asm/cache.h is introduced with the next.
> patch. I tried swapping the patches but got merge conflicts. Shall I
> squash both patches or do you have another preferred solution?

I'm so sorry!
I'll fix it by myself and resend the series.

-- 
Best regards,
  Antony Pavlov

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 05/15] MIPS: add initial R4000-style cache support
  2016-03-09 14:23     ` Antony Pavlov
@ 2016-03-09 16:12       ` Antony Pavlov
  2016-03-10  8:44         ` Sascha Hauer
  0 siblings, 1 reply; 23+ messages in thread
From: Antony Pavlov @ 2016-03-09 16:12 UTC (permalink / raw)
  To: Sascha Hauer, Peter Mamonov; +Cc: barebox

On Wed, 9 Mar 2016 17:23:24 +0300
Antony Pavlov <antonynpavlov@gmail.com> wrote:

> On Wed, 9 Mar 2016 14:28:14 +0100
> Sascha Hauer <s.hauer@pengutronix.de> wrote:
> 
> > Hi Antony,
> > 
> > On Mon, Mar 07, 2016 at 04:30:16PM +0300, Antony Pavlov wrote:
> > > Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
> > > Signed-off-by: Peter Mamonov <pmamonov@gmail.com>
> > > ---
> > >  arch/mips/include/asm/cacheops.h |  7 ++++++
> > >  arch/mips/include/asm/io.h       |  3 +++
> > >  arch/mips/lib/c-r4k.c            | 48 ++++++++++++++++++++++++++++++++++++++++
> > >  3 files changed, 58 insertions(+)
> > > 
> > > index ff68677..4fe046a 100644
> > > --- a/arch/mips/lib/c-r4k.c
> > > +++ b/arch/mips/lib/c-r4k.c
> > > @@ -10,10 +10,58 @@
> > >  #include <common.h>
> > >  #include <asm/io.h>
> > >  #include <asm/mipsregs.h>
> > > +#include <asm/cache.h>
> > 
> > This breaks bisectibility. asm/cache.h is introduced with the next.
> > patch. I tried swapping the patches but got merge conflicts. Shall I
> > squash both patches or do you have another preferred solution?
> 
> I'm so sorry!
> I'll fix it by myself and resend the series.

Hmmm. It look like the patchseries is in the next branch.

So I just send fixups.


-- 
Best regards,
  Antony Pavlov

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 05/15] MIPS: add initial R4000-style cache support
  2016-03-09 16:12       ` Antony Pavlov
@ 2016-03-10  8:44         ` Sascha Hauer
  0 siblings, 0 replies; 23+ messages in thread
From: Sascha Hauer @ 2016-03-10  8:44 UTC (permalink / raw)
  To: Antony Pavlov; +Cc: barebox, Peter Mamonov

On Wed, Mar 09, 2016 at 07:12:01PM +0300, Antony Pavlov wrote:
> On Wed, 9 Mar 2016 17:23:24 +0300
> Antony Pavlov <antonynpavlov@gmail.com> wrote:
> 
> > On Wed, 9 Mar 2016 14:28:14 +0100
> > Sascha Hauer <s.hauer@pengutronix.de> wrote:
> > 
> > > Hi Antony,
> > > 
> > > On Mon, Mar 07, 2016 at 04:30:16PM +0300, Antony Pavlov wrote:
> > > > Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
> > > > Signed-off-by: Peter Mamonov <pmamonov@gmail.com>
> > > > ---
> > > >  arch/mips/include/asm/cacheops.h |  7 ++++++
> > > >  arch/mips/include/asm/io.h       |  3 +++
> > > >  arch/mips/lib/c-r4k.c            | 48 ++++++++++++++++++++++++++++++++++++++++
> > > >  3 files changed, 58 insertions(+)
> > > > 
> > > > index ff68677..4fe046a 100644
> > > > --- a/arch/mips/lib/c-r4k.c
> > > > +++ b/arch/mips/lib/c-r4k.c
> > > > @@ -10,10 +10,58 @@
> > > >  #include <common.h>
> > > >  #include <asm/io.h>
> > > >  #include <asm/mipsregs.h>
> > > > +#include <asm/cache.h>
> > > 
> > > This breaks bisectibility. asm/cache.h is introduced with the next.
> > > patch. I tried swapping the patches but got merge conflicts. Shall I
> > > squash both patches or do you have another preferred solution?
> > 
> > I'm so sorry!
> > I'll fix it by myself and resend the series.
> 
> Hmmm. It look like the patchseries is in the next branch.
> 
> So I just send fixups.

Thanks, just applied.

Sascha


-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2016-03-10  8:45 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-03-07 13:30 [PATCH 00/15] MIPS: ar9331: use cache and fix gpio Antony Pavlov
2016-03-07 13:30 ` [PATCH 01/15] MIPS: probe_scache(): use MIPS_CONF_M linux kernel macro Antony Pavlov
2016-03-07 13:30 ` [PATCH 02/15] MIPS: pbl: import cache init code from U-Boot v2016.01-212-ga3ab2ae Antony Pavlov
2016-03-07 13:30 ` [PATCH 03/15] MIPS: black-swift: pbl: init cache Antony Pavlov
2016-03-07 13:30 ` [PATCH 04/15] MIPS: tplink-mr3020: " Antony Pavlov
2016-03-07 13:30 ` [PATCH 05/15] MIPS: add initial R4000-style cache support Antony Pavlov
2016-03-09 13:28   ` Sascha Hauer
2016-03-09 14:23     ` Antony Pavlov
2016-03-09 16:12       ` Antony Pavlov
2016-03-10  8:44         ` Sascha Hauer
2016-03-07 13:30 ` [PATCH 06/15] MIPS: flush cache on shutdown Antony Pavlov
2016-03-07 13:30 ` [PATCH 07/15] MIPS: implement dma_sync_* functions Antony Pavlov
2016-03-07 13:30 ` [PATCH 08/15] MIPS: dtb: register only one memory bank Antony Pavlov
2016-03-07 13:30 ` [PATCH 09/15] MIPS: tplink-mr3020_defconfig: use cached memory region Antony Pavlov
2016-03-07 13:30 ` [PATCH 10/15] MIPS: black-swift_defconfig: " Antony Pavlov
2016-03-07 13:30 ` [PATCH 11/15] MIPS: ath79: pbl: add pbl_ar9331_mdio_gpio_enable macro Antony Pavlov
2016-03-07 13:30 ` [PATCH 12/15] MIPS: black-swift: enable GPIO LED Antony Pavlov
2016-03-07 13:30 ` [PATCH 13/15] MIPS: black-swift: enable GPIO key Antony Pavlov
2016-03-07 13:30 ` [PATCH 14/15] MIPS: black-swift_defconfig: enable gpio-related stuff Antony Pavlov
2016-03-07 13:30 ` [PATCH 15/15] MIPS: tplink-mr3020: fix "WPS" and "3G" LEDs Antony Pavlov
2016-03-09  7:31 ` [PATCH 00/15] MIPS: ar9331: use cache and fix gpio Sascha Hauer
2016-03-09  8:45   ` Yegor Yefremov
2016-03-09 10:34     ` Antony Pavlov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox