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/6f5c6babdab3
branches: trunk
changeset: 329414:6f5c6babdab3
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 b948d2055225 -r 6f5c6babdab3 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 b948d2055225 -r 6f5c6babdab3 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 b948d2055225 -r 6f5c6babdab3 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 b948d2055225 -r 6f5c6babdab3 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