Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/evbarm Call arm32_*_init() and initarm_common().



details:   https://anonhg.NetBSD.org/src/rev/12ef70cb15c7
branches:  trunk
changeset: 796175:12ef70cb15c7
user:      kiyohara <kiyohara%NetBSD.org@localhost>
date:      Fri May 23 13:56:18 2014 +0000

description:
Call arm32_*_init() and initarm_common().
OVERO work fine.  GUMSTIX build only now.

diffstat:

 sys/arch/evbarm/conf/OVERO                |    5 +-
 sys/arch/evbarm/conf/files.gumstix        |    6 +-
 sys/arch/evbarm/conf/files.overo          |    6 +-
 sys/arch/evbarm/gumstix/gumstix_machdep.c |  554 ++---------------------------
 sys/arch/evbarm/gumstix/gumstix_start.S   |   12 +-
 5 files changed, 62 insertions(+), 521 deletions(-)

diffs (truncated from 758 to 300 lines):

diff -r 880f2d6af6eb -r 12ef70cb15c7 sys/arch/evbarm/conf/OVERO
--- a/sys/arch/evbarm/conf/OVERO        Fri May 23 13:35:26 2014 +0000
+++ b/sys/arch/evbarm/conf/OVERO        Fri May 23 13:56:18 2014 +0000
@@ -1,5 +1,5 @@
 #
-#      $NetBSD: OVERO,v 1.34 2014/04/05 23:45:11 khorben Exp $
+#      $NetBSD: OVERO,v 1.35 2014/05/23 13:56:18 kiyohara Exp $
 #
 #      OVERO -- Gumstix. Inc. Overo COMS platforms kernel
 #
@@ -16,7 +16,10 @@
 
 options        CPU_CORTEXA8
 options        OMAP_3530
+options        FPU_VFP
 options        PMAPCOUNTERS
+options        ARM_HAS_VBAR
+options        __HAVE_MM_MD_DIRECT_MAPPED_PHYS
 makeoptions    CPUFLAGS="-mcpu=cortex-a8 -mfpu=neon"
 
 # Architecture options
diff -r 880f2d6af6eb -r 12ef70cb15c7 sys/arch/evbarm/conf/files.gumstix
--- a/sys/arch/evbarm/conf/files.gumstix        Fri May 23 13:35:26 2014 +0000
+++ b/sys/arch/evbarm/conf/files.gumstix        Fri May 23 13:56:18 2014 +0000
@@ -1,8 +1,12 @@
-#      $NetBSD: files.gumstix,v 1.17 2010/09/23 07:08:57 kiyohara Exp $
+#      $NetBSD: files.gumstix,v 1.18 2014/05/23 13:56:18 kiyohara Exp $
 #
 # Gumstix. Inc. Gumstix boards configuration info
 #
 
+file   arch/arm/arm32/arm32_boot.c
+file   arch/arm/arm32/arm32_kvminit.c
+file   arch/arm/arm32/arm32_reboot.c
+
 file   arch/evbarm/gumstix/gumstix_machdep.c
 defflag opt_gumstix.h                          GUMSTIX
                                                GUMSTIX_NETBSD_ARGS_BUSHEADER
diff -r 880f2d6af6eb -r 12ef70cb15c7 sys/arch/evbarm/conf/files.overo
--- a/sys/arch/evbarm/conf/files.overo  Fri May 23 13:35:26 2014 +0000
+++ b/sys/arch/evbarm/conf/files.overo  Fri May 23 13:56:18 2014 +0000
@@ -1,8 +1,12 @@
-#      $NetBSD: files.overo,v 1.4 2011/03/06 02:22:27 jakllsch Exp $
+#      $NetBSD: files.overo,v 1.5 2014/05/23 13:56:18 kiyohara Exp $
 #
 # Gumstix. Inc. Overo boards configuration info
 #
 
+file   arch/arm/arm32/arm32_boot.c
+file   arch/arm/arm32/arm32_kvminit.c
+file   arch/arm/arm32/arm32_reboot.c
+
 file   arch/evbarm/gumstix/gumstix_machdep.c
 defflag opt_gumstix.h                          OVERO
                                                GUMSTIX_NETBSD_ARGS_EXPANSION
diff -r 880f2d6af6eb -r 12ef70cb15c7 sys/arch/evbarm/gumstix/gumstix_machdep.c
--- a/sys/arch/evbarm/gumstix/gumstix_machdep.c Fri May 23 13:35:26 2014 +0000
+++ b/sys/arch/evbarm/gumstix/gumstix_machdep.c Fri May 23 13:56:18 2014 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: gumstix_machdep.c,v 1.48 2013/09/26 16:14:34 kiyohara Exp $ */
+/*     $NetBSD: gumstix_machdep.c,v 1.49 2014/05/23 13:56:18 kiyohara Exp $ */
 /*
  * Copyright (C) 2005, 2006, 2007  WIDE Project and SOUM Corporation.
  * All rights reserved.
@@ -144,11 +144,8 @@
 #include "opt_omap.h"
 #include "prcm.h"
 #endif
-#include "opt_ddb.h"
 #include "opt_kgdb.h"
 #include "opt_pmap_debug.h"
-#include "opt_md.h"
-#include "opt_modular.h"
 #include "opt_com.h"
 
 #include <sys/param.h>
@@ -156,8 +153,6 @@
 #include <sys/device.h>
 #include <sys/exec.h>
 #include <sys/kernel.h>
-#include <sys/ksyms.h>
-#include <sys/msgbuf.h>
 #include <sys/proc.h>
 #include <sys/reboot.h>
 #include <sys/systm.h>
@@ -165,11 +160,11 @@
 #include <sys/bus.h>
 #include <sys/cpu.h>
 
+#include <uvm/uvm_extern.h>
+
 #include <machine/autoconf.h>
 #include <machine/bootconfig.h>
-#include <machine/db_machdep.h>
 #include <arm/locore.h>
-#include <arm/undefined.h>
 
 #include <arm/arm32/machdep.h>
 #ifdef OVERO
@@ -185,28 +180,20 @@
 #include <evbarm/gumstix/gumstixreg.h>
 #include <evbarm/gumstix/gumstixvar.h>
 
-#include <uvm/uvm_extern.h>
+#include <dev/cons.h>
 
-#include <dev/cons.h>
-#include <dev/md.h>
-
-#include <ddb/db_sym.h>
-#include <ddb/db_extern.h>
 #ifdef KGDB
 #include <sys/kgdb.h>
 #endif
 
-/* Kernel text starts 2MB in from the bottom of the kernel address space. */
-#define        KERNEL_TEXT_BASE        (KERNEL_BASE + 0x00200000)
-#ifndef KERNEL_VM_BASE
-#define        KERNEL_VM_BASE          (KERNEL_BASE + 0x01000000)
-#endif
-
 /*
- * The range 0xc1000000 - 0xccffffff is available for kernel VM space
+ * The range 0xc1000000 - 0xcfffffff is available for kernel VM space
  * Core-logic registers and I/O mappings occupy 0xfd000000 - 0xffffffff
  */
-#define KERNEL_VM_SIZE         0x0C000000
+#ifndef KERNEL_VM_BASE
+#define        KERNEL_VM_BASE          0xc1000000
+#endif
+#define KERNEL_VM_SIZE         0x0f000000
 
 BootConfig bootconfig;         /* Boot config storage */
 static char bootargs[MAX_BOOT_STRING];
@@ -216,39 +203,11 @@
 uint32_t system_serial_high;
 uint32_t system_serial_low;
 
-vm_offset_t physical_start;
-vm_offset_t physical_freestart;
-vm_offset_t physical_freeend;
-vm_offset_t physical_end;
-u_int free_pages;
-
-/*int debug_flags;*/
-#ifndef PMAP_STATIC_L1S
-int max_processes = 64;                        /* Default number */
-#endif /* !PMAP_STATIC_L1S */
-
-pv_addr_t minidataclean;
-
-vm_offset_t msgbufphys;
-
-#ifdef PMAP_DEBUG
-extern int pmap_debug_level;
-#endif
-
-#define KERNEL_PT_SYS          0       /* Page table for mapping proc0 zero page */
-#define KERNEL_PT_KERNEL       1       /* Page table for mapping kernel */
-#define        KERNEL_PT_KERNEL_NUM    ((KERNEL_VM_BASE - KERNEL_BASE) >> 22)
-#define KERNEL_PT_VMDATA       (KERNEL_PT_KERNEL+KERNEL_PT_KERNEL_NUM)
-                                       /* Page tables for mapping kernel VM */
-#define        KERNEL_PT_VMDATA_NUM    4       /* start with 16MB of KVM */
-#define NUM_KERNEL_PTS         (KERNEL_PT_VMDATA + KERNEL_PT_VMDATA_NUM)
-
-pv_addr_t kernel_pt_table[NUM_KERNEL_PTS];
-
 /* Prototypes */
 #if defined(GUMSTIX)
 static void    read_system_serial(void);
 #elif defined(OVERO)
+static void    overo_reset(void);
 static void    find_cpu_clock(void);
 #endif
 static void    process_kernel_args(int, char *[]);
@@ -287,77 +246,6 @@
 extern void gxio_config_pin(void);
 extern void gxio_config_expansion(char *);
 
-/*
- * void cpu_reboot(int howto, char *bootstr)
- *
- * Deal with any syncing, unmounting, dumping and shutdown hooks,
- * then reset the CPU.
- */
-void
-cpu_reboot(int howto, char *bootstr)
-{
-
-#ifdef DIAGNOSTIC
-       /* info */
-       printf("boot: howto=%08x curproc=%p\n", howto, curproc);
-#endif
-
-       /*
-        * If we are still cold then hit the air brakes
-        * and crash to earth fast
-        */
-       if (cold) {
-               doshutdownhooks();
-               pmf_system_shutdown(boothowto);
-               printf("The operating system has halted.\n");
-               printf("Please press any key to reboot.\n\n");
-               cngetc();
-               printf("rebooting...\n");
-#if defined(OMAP_3530) && NPRCM > 0
-               prcm_cold_reset();
-#endif
-               cpu_reset();
-               /*NOTREACHED*/
-       }
-
-       /*
-        * If RB_NOSYNC was not specified sync the discs.
-        * Note: Unless cold is set to 1 here, syslogd will die during the
-        * unmount.  It looks like syslogd is getting woken up only to find
-        * that it cannot page part of the binary in as the filesystem has
-        * been unmounted.
-        */
-       if (!(howto & RB_NOSYNC))
-               bootsync();
-
-       /* Say NO to interrupts */
-       splhigh();
-
-       /* Do a dump if requested. */
-       if ((howto & (RB_DUMP | RB_HALT)) == RB_DUMP)
-               dumpsys();
-
-       /* Run any shutdown hooks */
-       doshutdownhooks();
-
-       pmf_system_shutdown(boothowto);
-
-       /* Make sure IRQ's are disabled */
-       IRQdisable;
-
-       if (howto & RB_HALT) {
-               printf("The operating system has halted.\n");
-               printf("Please press any key to reboot.\n\n");
-               cngetc();
-       }
-
-       printf("rebooting...\n");
-#if defined(OMAP_3530) && NPRCM > 0
-       prcm_cold_reset();
-#endif
-       cpu_reset();
-       /*NOTREACHED*/
-}
 
 static inline pd_entry_t *
 read_ttb(void)
@@ -484,20 +372,10 @@
 u_int
 initarm(void *arg)
 {
-#if defined(CPU_XSCALE_PXA250) || defined(CPU_XSCALE_PXA270)
-#ifdef DIAGNOSTIC
-       extern vsize_t xscale_minidata_clean_size; /* used in KASSERT */
-#endif
-       extern vaddr_t xscale_cache_clean_addr;
-#endif
+       extern char KERNEL_BASE_phys[];
        extern uint32_t *u_boot_args[];
        extern uint32_t ram_size;
        enum { r0 = 0, r1 = 1, r2 = 2, r3 = 3 }; /* args from u-boot */
-       int loop;
-       int loop1;
-       u_int l1pagetable;
-       paddr_t memstart;
-       psize_t memsize;
 
        /*
         * We mapped PA == VA in gumstix_start.S.
@@ -514,11 +392,15 @@
         * Overo:
         * Physical Address Range     Description
         * -----------------------    ----------------------------------
-        * 0x80000000 - 0x8fffffff    SDRAM Bank 0 (256MB, 512MB or 1024MB)
+        * 0x80000000 - 0x8fffffff    SDRAM Bank 0 (256MB or 512MB)
         * 0x80000000 - 0x83ffffff    KERNEL_BASE
         */
 
-#if defined(OVERO)
+#if defined(GUMSTIX)
+       cpu_reset_address = NULL;
+#elif defined(OVERO)
+       cpu_reset_address = overo_reset;
+
        find_cpu_clock();       // find our CPU speed.
 #endif
 
@@ -592,9 +474,6 @@
        read_system_serial();
 #endif
 
-       memstart = SDRAM_START;
-       memsize = ram_size;
-



Home | Main Index | Thread Index | Old Index