CVS commit: src/sys/arch/evbarm/imx31

2020-11-28 Thread Nick Hudson
Module Name:src
Committed By:   skrll
Date:   Sat Nov 28 14:29:31 UTC 2020

Modified Files:
src/sys/arch/evbarm/imx31: imx31lk_start.S

Log Message:
Build fix


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 src/sys/arch/evbarm/imx31/imx31lk_start.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/evbarm/imx31/imx31lk_start.S
diff -u src/sys/arch/evbarm/imx31/imx31lk_start.S:1.6 src/sys/arch/evbarm/imx31/imx31lk_start.S:1.7
--- src/sys/arch/evbarm/imx31/imx31lk_start.S:1.6	Mon Oct 15 16:54:54 2018
+++ src/sys/arch/evbarm/imx31/imx31lk_start.S	Sat Nov 28 14:29:31 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: imx31lk_start.S,v 1.6 2018/10/15 16:54:54 skrll Exp $	*/
+/*	$NetBSD: imx31lk_start.S,v 1.7 2020/11/28 14:29:31 skrll Exp $	*/
 /*-
  * Copyright (c) 2011 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -32,7 +32,7 @@
 #include 
 #include "assym.h"
 
-RCSID("$NetBSD: imx31lk_start.S,v 1.6 2018/10/15 16:54:54 skrll Exp $")
+RCSID("$NetBSD: imx31lk_start.S,v 1.7 2020/11/28 14:29:31 skrll Exp $")
 
 #ifndef SDRAM_START
 #define SDRAM_START 0x8000
@@ -46,7 +46,8 @@ RCSID("$NetBSD: imx31lk_start.S,v 1.6 20
 	.text
 
 	.global _C_LABEL(imx31lk_start)
-_C_LABEL(imx31lk_start):
+
+ENTRY_NP(imx31lk_start)
 	cpsid	if, #PSR_SVC32_MODE
 
 	/*
@@ -60,7 +61,8 @@ _C_LABEL(imx31lk_start):
 	mcr	p15, 0, r3, c2, c0, 2		/* set TTBCR to enable TTBR1 */
 #endif
 
-	mov	r1, #(KERNEL_BASE >> L1_S_SHIFT)
+	ldr	r1, =KERNEL_BASE
+	lsr	r1, r1, L1_S_SHIFT
 	add	r2, r1, #0x80			/* 128 1MB entries */
 	ldr	r3, .Lsdram_pde
 1:



CVS commit: src/sys/arch/evbarm/imx31

2018-03-13 Thread Ryo Shimizu
Module Name:src
Committed By:   ryo
Date:   Tue Mar 13 06:18:17 UTC 2018

Modified Files:
src/sys/arch/evbarm/imx31: imx31lk_machdep.c

Log Message:
fix compile error (printf format)


To generate a diff of this commit:
cvs rdiff -u -r1.19 -r1.20 src/sys/arch/evbarm/imx31/imx31lk_machdep.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/evbarm/imx31/imx31lk_machdep.c
diff -u src/sys/arch/evbarm/imx31/imx31lk_machdep.c:1.19 src/sys/arch/evbarm/imx31/imx31lk_machdep.c:1.20
--- src/sys/arch/evbarm/imx31/imx31lk_machdep.c:1.19	Thu Dec 22 14:47:55 2016
+++ src/sys/arch/evbarm/imx31/imx31lk_machdep.c	Tue Mar 13 06:18:17 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: imx31lk_machdep.c,v 1.19 2016/12/22 14:47:55 cherry Exp $ */
+/* $NetBSD: imx31lk_machdep.c,v 1.20 2018/03/13 06:18:17 ryo Exp $ */
 
 /*
  * Startup routines for the ZOOM iMX31 LITEKIT.
@@ -110,7 +110,7 @@
  */
 
 #include 
-__KERNEL_RCSID(0, "$NetBSD: imx31lk_machdep.c,v 1.19 2016/12/22 14:47:55 cherry Exp $");
+__KERNEL_RCSID(0, "$NetBSD: imx31lk_machdep.c,v 1.20 2018/03/13 06:18:17 ryo Exp $");
 
 #include "opt_ddb.h"
 #include "opt_kgdb.h"
@@ -417,7 +417,7 @@ initarm(void *arg)
 
 #ifdef VERBOSE_INIT_ARM
 	/* Tell the user about the memory */
-	printf("physmemory: %d pages at 0x%08lx -> 0x%08lx\n", physmem,
+	printf("physmemory: %"PRIuPSIZE" pages at 0x%08lx -> 0x%08lx\n", physmem,
 	physical_start, physical_end - 1);
 #endif
 



CVS commit: src/sys/arch/evbarm/imx31

2014-03-30 Thread Matt Thomas
Module Name:src
Committed By:   matt
Date:   Sun Mar 30 23:12:26 UTC 2014

Modified Files:
src/sys/arch/evbarm/imx31: imx31lk_start.S

Log Message:
Deal with ARM_MMU_EXTENDED.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/sys/arch/evbarm/imx31/imx31lk_start.S

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/evbarm/imx31/imx31lk_start.S
diff -u src/sys/arch/evbarm/imx31/imx31lk_start.S:1.4 src/sys/arch/evbarm/imx31/imx31lk_start.S:1.5
--- src/sys/arch/evbarm/imx31/imx31lk_start.S:1.4	Mon Jan 31 06:28:03 2011
+++ src/sys/arch/evbarm/imx31/imx31lk_start.S	Sun Mar 30 23:12:26 2014
@@ -1,4 +1,4 @@
-/*	$NetBSD: imx31lk_start.S,v 1.4 2011/01/31 06:28:03 matt Exp $	*/
+/*	$NetBSD: imx31lk_start.S,v 1.5 2014/03/30 23:12:26 matt Exp $	*/
 /*-
  * Copyright (c) 2011 The NetBSD Foundation, Inc.
  * All rights reserved.
@@ -32,26 +32,12 @@
 #include arm/armreg.h
 #include assym.h
 
-RCSID($NetBSD: imx31lk_start.S,v 1.4 2011/01/31 06:28:03 matt Exp $)
-
-/*
- */
-
-#define CPWAIT_BRANCH			 \
-	sub	pc, pc, #4
-
-#define CPWAIT(tmp)			 \
-	mrc	p15, 0, tmp, c2, c0, 0  /* arbitrary read of CP15 */	;\
-	mov	tmp, tmp		/* wait for it to complete */	;\
-	CPWAIT_BRANCH			/* branch to next insn */
-
+RCSID($NetBSD: imx31lk_start.S,v 1.5 2014/03/30 23:12:26 matt Exp $)
 
 #ifndef SDRAM_START
 #define SDRAM_START 0x8000
 #endif
 
-#define IMX31_DCACHE_SIZE 0x4000	/* 16KB L1 */
-
 /*
  * L1 == Level One == first-level
  * L2 == Level Two == second-level
@@ -61,76 +47,54 @@ RCSID($NetBSD: imx31lk_start.S,v 1.4 20
 
 	.global _C_LABEL(imx31lk_start)
 _C_LABEL(imx31lk_start):
-	/* Figure out where we want to jump to when the time comes */
-	adr	r8, .Lstart
-	ldr	r8, [r8]
-
-	/*
-	 * set up virtual address space mapping
-	 * for initial bootstrap.
-	 */
-	mov r2, #(L1_S_SIZE)		/* 1MB chunks */
+	cpsid	if, #PSR_SVC32_MODE
 
 	/*
 	 * Firmware already mapped SDRAM VA == PA. at 0x800..
 	 * now map SDRAM also at VA 0x800...
 	 */
 	mrc	p15, 0, r0, c2, c0, 0		/* L1 table addr into r0 */
-	add	r0, r0, #(0x800 * 4)		/* offset to 0x8000 */
-
-	mov	r3, #SDRAM_START		/* map to 0x800.. */
-	orr	r3, r3, #(L1_S_AP_KRW)		/* the usual perms  stuff */
-	orr	r3, r3, #(L1_TYPE_S)
-	orr	r3, r3, #(L1_S_DOM_KERNEL)
+#ifdef ARM_MMU_EXTENDED
+	mcr	p15, 0, r0, c2, c0, 1		/* copy it to TTBR1 */
+	mov	r3, #TTBCR_S_N_1
+	mcr	p15, 0, r3, c2, c0, 2		/* set TTBCR to enable TTBR1 */
+#endif
 
-	mov	r1, #0x80			/* 128 1MB entries */
+	mov	r1, #(KERNEL_BASE_EXT  L1_S_SHIFT)
+	add	r2, r1, #0x80			/* 128 1MB entries */
+	ldr	r3, .Lsdram_pde
 1:
 	/* and looplooploop */
-	str	r3, [r0], #4
-	add	r3, r3, r2
-	subs	r1, r1, #1
-	bgt	1b
+	str	r3, [r0, r1, lsl #2]
+	add	r3, r3, #L1_S_SIZE
+	add	r1, r1, #1
+	cmp	r1, r2
+	blt	1b
 
 	/*
 	 * Map an L1 section for each device to make this easy.
 	 */
 	/* UART1 */
-	mrc	p15, 0, r0, c2, c0, 0		/* L1 table addr into r0 */
-	add	r0, r0, #(0xfd0 * 4)		/* offset to 0xfd00 */
+	mov	r1, #0xfd0			/* offset to 0xfd00 */
 
-	mov	r3,	#0x4300	
-	orr	r3, r3,	#0x00f0	
-	orr	r3, r3, #(L1_S_AP_KRW)
-	orr	r3, r3, #(L1_TYPE_S)
-	orr	r3, r3, #(L1_S_DOM_KERNEL)
-	str	r3, [r0], #4			/* note autoinc */
+	ldr	r3, .Lio_pde
+	str	r3, [r0, r1, lsl #2]
 
 	/* etc, TBD... */
 
 	/*
 	 * Make domain control go full art.
 	 */
-	mov	r0, #0x
+	mov	r0, #((DOMAIN_CLIENT  (PMAP_DOMAIN_KERNEL * 2))|DOMAIN_CLIENT)
 	mcr	p15, 0, r0, c3, c0, 0
 
 	/*
-	 * Now let's clean the cache again to make sure everything
-	 * is in place.
-	 *
-	 * XXX: should this take into account the XScale cache clean bug?
+	 * Now let's clean the cache again to make sure everything is in place.
 	 */
-	mov	r3, #(IMX31_DCACHE_SIZE)
-	subs	r3, r3, #32
-1:
-	mcr	p15, 0, r3, c7, c10, 2
-	subs	r3, r3, #32
-	bne	1b
-	CPWAIT(r3)
-
-	/* Drain write buffer */
-	mcr	p15, 0, r6, c7, c10, 4
+	bl	_C_LABEL(arm11x6_idcache_wbinv_all)
 
 	/* Invalidate TLBs just to be sure */
+	mov	r0, #0
 	mcr p15, 0, r0, c8, c7, 0
 
 	/*
@@ -138,19 +102,26 @@ _C_LABEL(imx31lk_start):
 	 * Unspeakable cruelty and harm lurk down there. --More--
 	 * Are you sure you want to enter?
 	 */
-	adr	r8, .Lstart
-	ldr	r8, [r8]
-	mov	pc, r8/* So be it */
+#ifdef KERNEL_BASES_EQUAL
+	b	start
+#else
+	adr	r0, .Lstart
+	ldr	ip, [r0]
+	bx	ip
+#endif
 
 /* symbol to use for address calculation in the right VA */
+#ifndef KERNEL_BASES_EQUAL
 .Lstart:
 	.word	start
+#endif
 
+#if L1_S_DOM_KERNEL
+#error kernel domain (L1_S_DOM_KERNEL) is not 0
+#endif
 
-/*
- * Calculate size of kernel to copy.  Don't bother to copy bss,
- * although I guess the CPU could use the warmup exercise ...
- */
-.Lcopy_size:
-.word _edata - _C_LABEL(imx31lk_start)
-
+.Lsdram_pde:
+	.word	0x8000|L1_S_AP_KRW|L1_S_C|L1_S_B|L1_TYPE_S
+.Lio_pde:
+	.word	0x43f0|L1_S_AP_KRW|L1_TYPE_S
+END(imx31lk_start)



CVS commit: src/sys/arch/evbarm/imx31

2010-11-12 Thread Hiroyuki Bessho
Module Name:src
Committed By:   bsh
Date:   Sat Nov 13 06:29:12 UTC 2010

Modified Files:
src/sys/arch/evbarm/imx31: imx31lk_machdep.c

Log Message:
make this compile again.  Need to revisit for UART support.


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 src/sys/arch/evbarm/imx31/imx31lk_machdep.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/evbarm/imx31/imx31lk_machdep.c
diff -u src/sys/arch/evbarm/imx31/imx31lk_machdep.c:1.9 src/sys/arch/evbarm/imx31/imx31lk_machdep.c:1.10
--- src/sys/arch/evbarm/imx31/imx31lk_machdep.c:1.9	Sat Dec 26 16:01:24 2009
+++ src/sys/arch/evbarm/imx31/imx31lk_machdep.c	Sat Nov 13 06:29:12 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: imx31lk_machdep.c,v 1.9 2009/12/26 16:01:24 uebayasi Exp $ */
+/* $NetBSD: imx31lk_machdep.c,v 1.10 2010/11/13 06:29:12 bsh Exp $ */
 
 /*
  * Startup routines for the ZOOM iMX31 LITEKIT.
@@ -110,7 +110,7 @@
  */
 
 #include sys/cdefs.h
-__KERNEL_RCSID(0, $NetBSD: imx31lk_machdep.c,v 1.9 2009/12/26 16:01:24 uebayasi Exp $);
+__KERNEL_RCSID(0, $NetBSD: imx31lk_machdep.c,v 1.10 2010/11/13 06:29:12 bsh Exp $);
 
 #include opt_ddb.h
 #include opt_kgdb.h
@@ -153,6 +153,7 @@
 #include arm/arm32/pte.h
 #include arm/arm32/machdep.h
 
+#include arm/imx/imx31reg.h
 #include arm/imx/imxuartreg.h
 #include arm/imx/imxuartvar.h
 #include evbarm/imx31/imx31lk_reg.h
@@ -340,7 +341,7 @@
 static const struct pmap_devmap imx31lk_devmap[] = {
 {
 	IMX31LITEKIT_UART1_VBASE,
-	_A(IMX_UART1_BASE),
+	_A(UART1_BASE),
 	_S(L1_S_SIZE),
 	VM_PROT_READ|VM_PROT_WRITE,
 	PTE_NOCACHE,
@@ -398,7 +399,7 @@
 	/* Calibrate the delay loop. */
 #endif
 
-	imx31lk_consinit(1);
+	consinit();
 
 #ifdef KGDB
 	kgdb_port_init();
@@ -672,7 +673,7 @@
 	cpu_setttb(kernel_l1pt.pv_pa);
 	cpu_tlb_flushID();
 	cpu_domains(DOMAIN_CLIENT  (PMAP_DOMAIN_KERNEL*2));
-	imx31lk_consinit(2);
+	//imx31lk_consinit(2);
 
 	/*
 	 * Moved from cpu_startup() as data_abort_handler() references
@@ -809,6 +810,7 @@
 #endif /* KGDB */
 
 
+#if 0
 void
 imx31lk_consinit(int phase)
 {
@@ -819,39 +821,22 @@
 		ophase = phase;
 		switch (phase) {
 		case 1:
-			imxuart_init(0, IMX_UART1_BASE);
+			imxuart_init(0, UART1_BASE);
 			break;
 		case 2:
 			bh = IMX31LITEKIT_UART1_VBASE;
-			bh |= (IMX_UART1_BASE  ~_A(IMX_UART1_BASE));
+			bh |= (UART1_BASE  ~_A(UART1_BASE));
 			imxuart_init(0, bh);
 			break;
 		}
 	}
 }
+#endif
 
 void
 consinit(void)
 {
-	imx31lk_consinit(2);
-}
-
-void consinit_test(void);
-void
-consinit_test(void)
-{
-	imxuart_softc_t *sc, softc;
-	extern int imxuart_puts(imxuart_softc_t *sc, const char *s);
-
-	printf(\n%s start\n, __func__);
-	sc = softc;
-	sc-sc_init_cnt = 0;
-	imxuart_init(sc, IMX_UART1_BASE);
-	imxuart_puts(sc, test1\r\n);
-	imxuart_init(sc,
-	IMX31LITEKIT_UART1_VBASE|(IMX_UART1_BASE  ~_A(IMX_UART1_BASE)));
-	imxuart_puts(sc, test2\r\n);
-	printf(%s done\n, __func__);
+	// imx31lk_consinit(2);
 }
 
 #ifdef KGDB