Module Name: src Committed By: matt Date: Fri Apr 18 06:53:13 UTC 2014
Modified Files: src/sys/arch/evbarm/cubie: cubie_machdep.c cubie_start.S Log Message: Use KERNEL_BASE_VOFFSET. s/bbs/bss Move temp_l1_table to last 16KB before 128mb after kernel_base. To generate a diff of this commit: cvs rdiff -u -r1.16 -r1.17 src/sys/arch/evbarm/cubie/cubie_machdep.c cvs rdiff -u -r1.8 -r1.9 src/sys/arch/evbarm/cubie/cubie_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/cubie/cubie_machdep.c diff -u src/sys/arch/evbarm/cubie/cubie_machdep.c:1.16 src/sys/arch/evbarm/cubie/cubie_machdep.c:1.17 --- src/sys/arch/evbarm/cubie/cubie_machdep.c:1.16 Fri Apr 11 04:19:48 2014 +++ src/sys/arch/evbarm/cubie/cubie_machdep.c Fri Apr 18 06:53:13 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: cubie_machdep.c,v 1.16 2014/04/11 04:19:48 matt Exp $ */ +/* $NetBSD: cubie_machdep.c,v 1.17 2014/04/18 06:53:13 matt Exp $ */ /* * Machine dependent functions for kernel setup for TI OSK5912 board. @@ -125,7 +125,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: cubie_machdep.c,v 1.16 2014/04/11 04:19:48 matt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: cubie_machdep.c,v 1.17 2014/04/18 06:53:13 matt Exp $"); #include "opt_machdep.h" #include "opt_ddb.h" @@ -194,7 +194,7 @@ char *boot_file = NULL; bool cubietruck_p; /* * uboot_args are filled in by cubie_start.S and must be in .data - * and not .bbs since .bss is cleared after uboot_args are filled in. + * and not .bss since .bss is cleared after uboot_args are filled in. */ uintptr_t uboot_args[4] = { 0 }; @@ -216,11 +216,6 @@ int use_fb_console = true; * kernel address space. *Not* for general use. */ #define KERNEL_BASE_PHYS ((paddr_t)KERNEL_BASE_phys) -#ifdef KERNEL_BASES_EQUAL -#define KERNEL_PHYS_VOFFSET 0 -#else -#define KERNEL_PHYS_VOFFSET (KERNEL_BASE - AWIN_SDRAM_PBASE) -#endif #define AWIN_CORE_VOFFSET (AWIN_CORE_VBASE - AWIN_CORE_PBASE) /* Prototypes */ @@ -405,7 +400,7 @@ initarm(void *arg) */ if (uboot_args[3] - AWIN_SDRAM_PBASE < ram_size) { const char * const args = (const char *) - (uboot_args[3] + KERNEL_PHYS_VOFFSET); + (uboot_args[3] + KERNEL_BASE_VOFFSET); strlcpy(bootargs, args, sizeof(bootargs)); } } Index: src/sys/arch/evbarm/cubie/cubie_start.S diff -u src/sys/arch/evbarm/cubie/cubie_start.S:1.8 src/sys/arch/evbarm/cubie/cubie_start.S:1.9 --- src/sys/arch/evbarm/cubie/cubie_start.S:1.8 Fri Apr 11 04:19:48 2014 +++ src/sys/arch/evbarm/cubie/cubie_start.S Fri Apr 18 06:53:13 2014 @@ -40,11 +40,11 @@ #include <arm/allwinner/awin_reg.h> #include <evbarm/cubie/platform.h> -RCSID("$NetBSD: cubie_start.S,v 1.8 2014/04/11 04:19:48 matt Exp $") +RCSID("$NetBSD: cubie_start.S,v 1.9 2014/04/18 06:53:13 matt Exp $") #if defined(VERBOSE_INIT_ARM) #define XPUTC(n) mov r0, n; bl xputc -#ifdef KERNEL_BASES_EQUAL +#if KERNEL_BASE_VOFFSET == 0 #define XPUTC2(n) mov r0, n; bl xputc #else #define XPUTC2(n) mov r0, n; blx r11 @@ -60,7 +60,7 @@ RCSID("$NetBSD: cubie_start.S,v 1.8 2014 #endif #define INIT_MEMSIZE 128 -#define TEMP_L1_TABLE (AWIN_SDRAM_PBASE + INIT_MEMSIZE * 0x100000 - L1_TABLE_SIZE) +#define TEMP_L1_TABLE (KERNEL_BASE - KERNEL_BASE_VOFFSET + INIT_MEMSIZE * L1_S_SIZE - L1_TABLE_SIZE) #define MD_CPU_HATCH _C_LABEL(awin_cpu_hatch) @@ -90,7 +90,7 @@ _C_LABEL(cubie_start): */ movw r4, #:lower16:uboot_args movt r4, #:upper16:uboot_args -#ifndef KERNEL_BASES_EQUAL +#if KERNEL_BASE_VOFFSET != 0 /* * But since .start is at 0x40000000 and .text is at 0x8000000, we * can't directly use the address that the linker gave us directly. @@ -123,7 +123,7 @@ _C_LABEL(cubie_start): */ movw r0, #:lower16:TEMP_L1_TABLE movt r0, #:upper16:TEMP_L1_TABLE -#ifdef KERNEL_BASES_EQUAL +#if KERNEL_BASE_VOFFSET == 0 bl arm_cpuinit #else /* @@ -131,7 +131,7 @@ _C_LABEL(cubie_start): * so setup the lr to be in .text. Cache the address for xputc * before we go. */ -#ifdef VERBOSE_INIT_ARM +#if defined(VERBOSE_INIT_ARM) adr r11, xputc @ for XPUTC2 #endif movw lr, #:lower16:1f @@ -252,19 +252,11 @@ ASEND(a20_mpinit) #endif /* MULTIPROCESSOR */ .Lmmu_init_table: -#ifdef KERNEL_BASES_EQUAL - /* Map memory 1:1 VA to PA, write-back cacheable, shareable */ - MMU_INIT(KERNEL_BASE, KERNEL_BASE, INIT_MEMSIZE, - L1_S_PROTO_armv7 | L1_S_APv7_KRW | L1_S_CACHEABLE) - - /* Map temp L1 table 1:1 VA to PA, write-back cacheable, shareable */ - MMU_INIT(TEMP_L1_TABLE, TEMP_L1_TABLE, INIT_MEMSIZE, - L1_S_PROTO_armv7 | L1_S_APv7_KRW | L1_S_CACHEABLE) -#else /* Map KERNEL_BASE VA to SDRAM PA, write-back cacheable, shareable */ MMU_INIT(KERNEL_BASE, KERNEL_BASE - KERNEL_BASE_VOFFSET, INIT_MEMSIZE, L1_S_PROTO_armv7 | L1_S_APv7_KRW | L1_S_CACHEABLE) +#if KERNEL_BASE_VOFFSET != 0 /* Map memory 1:1 VA to PA, write-back cacheable, shareable */ MMU_INIT(KERNEL_BASE - KERNEL_BASE_VOFFSET, KERNEL_BASE - KERNEL_BASE_VOFFSET, INIT_MEMSIZE,