CVS commit: src/sys/arch/evbarm/imx31
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
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
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
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