Module Name: src
Committed By: khorben
Date: Tue Dec 11 01:54:43 UTC 2012
Modified Files:
src/sys/arch/arm/omap: files.omap2 omap2_gpio.c omap2_gpmcreg.h
omap2_obio.c omap2_obioreg.h omap2_reg.h omap3_sdhc.c
omap3_sdmmcreg.h
src/sys/arch/evbarm/beagle: beagle.h beagle_machdep.c
src/sys/arch/evbarm/conf: N900
Log Message:
Added kernel option OMAP_3430 to allow easy differentiation between the
BEAGLEBOARD and N900 kernels; otherwise no real change.
Resulting N900 kernel tested with no visible regression.
<gimpy> go for it
To generate a diff of this commit:
cvs rdiff -u -r1.15 -r1.16 src/sys/arch/arm/omap/files.omap2 \
src/sys/arch/arm/omap/omap2_obio.c
cvs rdiff -u -r1.12 -r1.13 src/sys/arch/arm/omap/omap2_gpio.c
cvs rdiff -u -r1.8 -r1.9 src/sys/arch/arm/omap/omap2_gpmcreg.h
cvs rdiff -u -r1.6 -r1.7 src/sys/arch/arm/omap/omap2_obioreg.h
cvs rdiff -u -r1.11 -r1.12 src/sys/arch/arm/omap/omap2_reg.h
cvs rdiff -u -r1.2 -r1.3 src/sys/arch/arm/omap/omap3_sdhc.c \
src/sys/arch/arm/omap/omap3_sdmmcreg.h
cvs rdiff -u -r1.7 -r1.8 src/sys/arch/evbarm/beagle/beagle.h
cvs rdiff -u -r1.22 -r1.23 src/sys/arch/evbarm/beagle/beagle_machdep.c
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/evbarm/conf/N900
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/arm/omap/files.omap2
diff -u src/sys/arch/arm/omap/files.omap2:1.15 src/sys/arch/arm/omap/files.omap2:1.16
--- src/sys/arch/arm/omap/files.omap2:1.15 Wed Sep 5 00:19:59 2012
+++ src/sys/arch/arm/omap/files.omap2 Tue Dec 11 01:54:41 2012
@@ -1,4 +1,4 @@
-# $NetBSD: files.omap2,v 1.15 2012/09/05 00:19:59 matt Exp $
+# $NetBSD: files.omap2,v 1.16 2012/12/11 01:54:41 khorben Exp $
#
# Configuration info for Texas Instruments OMAP2/OMAP3 CPU support
# Based on xscale/files.pxa2x0
@@ -18,6 +18,7 @@ defflag opt_omap.h OMAP3: OMAP2
defflag opt_omap.h OMAP4: OMAP3
defflag opt_omap.h OMAP_2430: OMAP2
defflag opt_omap.h OMAP_2420: OMAP2
+defflag opt_omap.h OMAP_3430: OMAP3
defflag opt_omap.h OMAP_3530: OMAP3
defflag opt_omap.h OMAP_4430: OMAP4
defflag opt_omap.h TI_AM335X: OMAP3
Index: src/sys/arch/arm/omap/omap2_obio.c
diff -u src/sys/arch/arm/omap/omap2_obio.c:1.15 src/sys/arch/arm/omap/omap2_obio.c:1.16
--- src/sys/arch/arm/omap/omap2_obio.c:1.15 Tue Dec 11 01:33:32 2012
+++ src/sys/arch/arm/omap/omap2_obio.c Tue Dec 11 01:54:42 2012
@@ -1,7 +1,7 @@
-/* $Id: omap2_obio.c,v 1.15 2012/12/11 01:33:32 matt Exp $ */
+/* $Id: omap2_obio.c,v 1.16 2012/12/11 01:54:42 khorben Exp $ */
/* adapted from: */
-/* $NetBSD: omap2_obio.c,v 1.15 2012/12/11 01:33:32 matt Exp $ */
+/* $NetBSD: omap2_obio.c,v 1.16 2012/12/11 01:54:42 khorben Exp $ */
/*
@@ -103,7 +103,7 @@
#include "opt_omap.h"
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: omap2_obio.c,v 1.15 2012/12/11 01:33:32 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: omap2_obio.c,v 1.16 2012/12/11 01:54:42 khorben Exp $");
#include "locators.h"
#include "obio.h"
@@ -352,6 +352,9 @@ static const struct {
#if defined(OMAP_2430) || defined(OMAP_2420)
{ .name = "avic", .addr = INTC_BASE, .required = true },
#endif
+#if defined(OMAP_3430)
+ { .name = "avic", .addr = INTC_BASE_3430, .required = true },
+#endif
#if defined(OMAP_3530)
{ .name = "avic", .addr = INTC_BASE_3530, .required = true },
#endif
Index: src/sys/arch/arm/omap/omap2_gpio.c
diff -u src/sys/arch/arm/omap/omap2_gpio.c:1.12 src/sys/arch/arm/omap/omap2_gpio.c:1.13
--- src/sys/arch/arm/omap/omap2_gpio.c:1.12 Sat Oct 27 17:17:40 2012
+++ src/sys/arch/arm/omap/omap2_gpio.c Tue Dec 11 01:54:42 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: omap2_gpio.c,v 1.12 2012/10/27 17:17:40 chs Exp $ */
+/* $NetBSD: omap2_gpio.c,v 1.13 2012/12/11 01:54:42 khorben Exp $ */
/*-
* Copyright (c) 2007 The NetBSD Foundation, Inc.
* All rights reserved.
@@ -28,7 +28,7 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: omap2_gpio.c,v 1.12 2012/10/27 17:17:40 chs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: omap2_gpio.c,v 1.13 2012/12/11 01:54:42 khorben Exp $");
#define _INTR_PRIVATE
@@ -339,6 +339,16 @@ gpio_match(device_t parent, cfdata_t cfd
return 1;
#endif
+#ifdef OMAP_3430
+ if (oa->obio_addr == GPIO1_BASE_3430
+ || oa->obio_addr == GPIO2_BASE_3430
+ || oa->obio_addr == GPIO3_BASE_3430
+ || oa->obio_addr == GPIO4_BASE_3430
+ || oa->obio_addr == GPIO5_BASE_3430
+ || oa->obio_addr == GPIO6_BASE_3430)
+ return 1;
+#endif
+
#ifdef OMAP_3530
if (oa->obio_addr == GPIO1_BASE_3530
|| oa->obio_addr == GPIO2_BASE_3530
Index: src/sys/arch/arm/omap/omap2_gpmcreg.h
diff -u src/sys/arch/arm/omap/omap2_gpmcreg.h:1.8 src/sys/arch/arm/omap/omap2_gpmcreg.h:1.9
--- src/sys/arch/arm/omap/omap2_gpmcreg.h:1.8 Wed Aug 29 17:48:17 2012
+++ src/sys/arch/arm/omap/omap2_gpmcreg.h Tue Dec 11 01:54:42 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: omap2_gpmcreg.h,v 1.8 2012/08/29 17:48:17 matt Exp $ */
+/* $NetBSD: omap2_gpmcreg.h,v 1.9 2012/12/11 01:54:42 khorben Exp $ */
/*
* Copyright (c) 2007 Microsoft
* All rights reserved.
@@ -44,6 +44,9 @@
#ifdef OMAP_2420
#define GPMC_BASE 0x6800a000
#endif
+#ifdef OMAP_3430
+#define GPMC_BASE 0x6e000000
+#endif
#ifdef OMAP_3530
#define GPMC_BASE 0x6e000000
#endif
Index: src/sys/arch/arm/omap/omap2_obioreg.h
diff -u src/sys/arch/arm/omap/omap2_obioreg.h:1.6 src/sys/arch/arm/omap/omap2_obioreg.h:1.7
--- src/sys/arch/arm/omap/omap2_obioreg.h:1.6 Wed Aug 29 17:48:17 2012
+++ src/sys/arch/arm/omap/omap2_obioreg.h Tue Dec 11 01:54:42 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: omap2_obioreg.h,v 1.6 2012/08/29 17:48:17 matt Exp $ */
+/* $NetBSD: omap2_obioreg.h,v 1.7 2012/12/11 01:54:42 khorben Exp $ */
/*
* Copyright (c) 2007 Microsoft
@@ -56,6 +56,27 @@
#define GPIO5_BASE GPIO5_BASE_2430
#endif
+#if defined(OMAP_3430)
+#define OMAP2_OBIO_0_BASE OMAP3430_L4_CORE_BASE
+#define OMAP2_OBIO_0_SIZE OMAP3430_L4_CORE_SIZE
+
+#define OMAP2_OBIO_1_BASE OMAP3430_L4_WAKEUP_BASE
+#define OMAP2_OBIO_1_SIZE OMAP3430_L4_WAKEUP_SIZE
+
+#define OMAP2_OBIO_2_BASE OMAP3430_L4_PERIPHERAL_BASE
+#define OMAP2_OBIO_2_SIZE OMAP3430_L4_PERIPHERAL_SIZE
+
+#define OMAP2_OBIO_3_BASE OMAP3430_L4_EMULATION_BASE
+#define OMAP2_OBIO_3_SIZE OMAP3430_L4_EMULATION_SIZE
+
+#define GPIO1_BASE GPIO1_BASE_3430
+#define GPIO2_BASE GPIO2_BASE_3430
+#define GPIO3_BASE GPIO3_BASE_3430
+#define GPIO4_BASE GPIO4_BASE_3430
+#define GPIO5_BASE GPIO5_BASE_3430
+#define GPIO6_BASE GPIO6_BASE_3430
+#endif
+
#if defined(OMAP_3530)
#define OMAP2_OBIO_0_BASE OMAP3530_L4_CORE_BASE
#define OMAP2_OBIO_0_SIZE OMAP3530_L4_CORE_SIZE
Index: src/sys/arch/arm/omap/omap2_reg.h
diff -u src/sys/arch/arm/omap/omap2_reg.h:1.11 src/sys/arch/arm/omap/omap2_reg.h:1.12
--- src/sys/arch/arm/omap/omap2_reg.h:1.11 Wed Sep 5 00:19:59 2012
+++ src/sys/arch/arm/omap/omap2_reg.h Tue Dec 11 01:54:42 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: omap2_reg.h,v 1.11 2012/09/05 00:19:59 matt Exp $ */
+/* $NetBSD: omap2_reg.h,v 1.12 2012/12/11 01:54:42 khorben Exp $ */
/*
* Copyright (c) 2007 Microsoft
@@ -45,11 +45,23 @@
#define OMAP2430_L4_WAKEUP_BASE 0x49000000
#define OMAP2430_L4_WAKEUP_SIZE (8 << 20) /* 8 MB */
+#define OMAP3430_L4_CORE_BASE 0x48000000
+#define OMAP3430_L4_CORE_SIZE 0x01000000 /* 16 MB */
+
#define OMAP3530_L4_CORE_BASE 0x48000000
#define OMAP3530_L4_CORE_SIZE 0x01000000 /* 16 MB */
/* OMAP3 processors */
+#define OMAP3430_L4_WAKEUP_BASE 0x48300000
+#define OMAP3430_L4_WAKEUP_SIZE 0x00040000 /* 256KB */
+
+#define OMAP3430_L4_PERIPHERAL_BASE 0x49000000
+#define OMAP3430_L4_PERIPHERAL_SIZE 0x00100000 /* 1MB */
+
+#define OMAP3430_L4_EMULATION_BASE 0x54000000
+#define OMAP3430_L4_EMULATION_SIZE 0x00800000 /* 8MB */
+
#define OMAP3530_L4_WAKEUP_BASE 0x48300000
#define OMAP3530_L4_WAKEUP_SIZE 0x00040000 /* 256KB */
@@ -107,6 +119,9 @@
#ifdef OMAP_2420
#define OMAP2_CM_BASE 0x48008000
#endif
+#ifdef OMAP_3430
+#define OMAP2_CM_BASE (OMAP3430_L4_CORE_BASE + 0x04000)
+#endif
#ifdef OMAP_3530
#define OMAP2_CM_BASE (OMAP3530_L4_CORE_BASE + 0x04000)
#endif
@@ -304,6 +319,9 @@
/*
* Power Management registers base, offsets, and size
*/
+#ifdef OMAP_3430
+#define OMAP2_PRM_BASE 0x48306000
+#endif
#ifdef OMAP_3530
#define OMAP2_PRM_BASE 0x48306000
#endif
@@ -513,6 +531,7 @@
* Interrupts
*/
#define INTC_BASE 0x480FE000
+#define INTC_BASE_3430 0x48200000
#define INTC_BASE_3530 0x48200000 /* Also TI_AM335X and TI_DM37XX */
#define INTC_REVISISON 0x0000
#define INTC_SYSCONFIG 0x0010
@@ -554,7 +573,7 @@
/*
* GPT - General Purpose Timers
*/
-#if defined(OMAP_3530) || defined(TI_DM37XX)
+#if defined(OMAP_3430) || defined(OMAP_3530) || defined(TI_DM37XX)
#define GPT1_BASE 0x48318000
#define GPT2_BASE 0x49032000
#define GPT3_BASE 0x49034000
@@ -566,6 +585,9 @@
#define GPT9_BASE 0x49040000
#define GPT10_BASE 0x48086000
#define GPT11_BASE 0x48088000
+#if defined(OMAP_3430)
+#define GPT12_BASE 0x48304000
+#endif
#if defined(OMAP_3530)
#define GPT12_BASE 0x48304000
#endif
@@ -609,6 +631,13 @@
#define GPIO3_BASE_2420 0x4801c000
#define GPIO4_BASE_2420 0x4801e000
+#define GPIO1_BASE_3430 0x48310000
+#define GPIO2_BASE_3430 0x49050000
+#define GPIO3_BASE_3430 0x49052000
+#define GPIO4_BASE_3430 0x49054000
+#define GPIO5_BASE_3430 0x49056000
+#define GPIO6_BASE_3430 0x49058000
+
#define GPIO1_BASE_3530 0x48310000
#define GPIO2_BASE_3530 0x49050000
#define GPIO3_BASE_3530 0x49052000
@@ -664,6 +693,9 @@
*/
#define OHCI1_BASE_2430 0x4805e000
+#define OHCI1_BASE_3430 0x48064400
+#define EHCI1_BASE_3430 0x48064800
+
#define OHCI1_BASE_3530 0x48064400
#define EHCI1_BASE_3530 0x48064800
Index: src/sys/arch/arm/omap/omap3_sdhc.c
diff -u src/sys/arch/arm/omap/omap3_sdhc.c:1.2 src/sys/arch/arm/omap/omap3_sdhc.c:1.3
--- src/sys/arch/arm/omap/omap3_sdhc.c:1.2 Mon Oct 29 13:30:25 2012
+++ src/sys/arch/arm/omap/omap3_sdhc.c Tue Dec 11 01:54:42 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: omap3_sdhc.c,v 1.2 2012/10/29 13:30:25 kiyohara Exp $ */
+/* $NetBSD: omap3_sdhc.c,v 1.3 2012/12/11 01:54:42 khorben Exp $ */
/*-
* Copyright (c) 2011 The NetBSD Foundation, Inc.
* All rights reserved.
@@ -29,7 +29,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: omap3_sdhc.c,v 1.2 2012/10/29 13:30:25 kiyohara Exp $");
+__KERNEL_RCSID(0, "$NetBSD: omap3_sdhc.c,v 1.3 2012/12/11 01:54:42 khorben Exp $");
#include "opt_omap.h"
@@ -78,11 +78,16 @@ CFATTACH_DECL_NEW(obiosdhc, sizeof(struc
static int
obiosdhc_match(device_t parent, cfdata_t cf, void *aux)
{
-#ifdef OMAP_3530
+#if defined(OMAP_3430) || defined(OMAP_3530)
struct obio_attach_args * const oa = aux;
#endif
-#ifdef OMAP_3530
+#if defined(OMAP_3430)
+ if (oa->obio_addr == SDMMC1_BASE_3430
+ || oa->obio_addr == SDMMC2_BASE_3430
+ || oa->obio_addr == SDMMC3_BASE_3430)
+ return 1;
+#elif defined(OMAP_3530)
if (oa->obio_addr == SDMMC1_BASE_3530
|| oa->obio_addr == SDMMC2_BASE_3530
|| oa->obio_addr == SDMMC3_BASE_3530)
Index: src/sys/arch/arm/omap/omap3_sdmmcreg.h
diff -u src/sys/arch/arm/omap/omap3_sdmmcreg.h:1.2 src/sys/arch/arm/omap/omap3_sdmmcreg.h:1.3
--- src/sys/arch/arm/omap/omap3_sdmmcreg.h:1.2 Mon Oct 29 13:30:25 2012
+++ src/sys/arch/arm/omap/omap3_sdmmcreg.h Tue Dec 11 01:54:43 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: omap3_sdmmcreg.h,v 1.2 2012/10/29 13:30:25 kiyohara Exp $ */
+/* $NetBSD: omap3_sdmmcreg.h,v 1.3 2012/12/11 01:54:43 khorben Exp $ */
/*-
* Copyright (c) 2012 The NetBSD Foundation, Inc.
* All rights reserved.
@@ -31,6 +31,10 @@
#ifndef _ARM_OMAP_OMAP3_SDMMCREG_H_
#define _ARM_OMAP_OMAP3_SDMMCREG_H_
+#define SDMMC1_BASE_3430 0x4809C000
+#define SDMMC2_BASE_3430 0x480B4000
+#define SDMMC3_BASE_3430 0x480AD000
+
#define SDMMC1_BASE_3530 0x4809C000
#define SDMMC2_BASE_3530 0x480B4000
#define SDMMC3_BASE_3530 0x480AD000
Index: src/sys/arch/evbarm/beagle/beagle.h
diff -u src/sys/arch/evbarm/beagle/beagle.h:1.7 src/sys/arch/evbarm/beagle/beagle.h:1.8
--- src/sys/arch/evbarm/beagle/beagle.h:1.7 Wed Aug 29 18:05:41 2012
+++ src/sys/arch/evbarm/beagle/beagle.h Tue Dec 11 01:54:43 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: beagle.h,v 1.7 2012/08/29 18:05:41 matt Exp $ */
+/* $NetBSD: beagle.h,v 1.8 2012/12/11 01:54:43 khorben Exp $ */
/*
* Copyright (c) 2007 Microsoft
* All rights reserved.
@@ -40,6 +40,15 @@
#define KERNEL_VM_BASE 0xc0000000
#define KERNEL_VM_SIZE 0x20000000
+#ifdef OMAP_3430
+#define OMAP_L4_CORE_BASE OMAP3430_L4_CORE_BASE
+#define OMAP_L4_CORE_SIZE OMAP3430_L4_CORE_SIZE
+#define OMAP_L4_PERIPHERAL_BASE OMAP3430_L4_PERIPHERAL_BASE
+#define OMAP_L4_PERIPHERAL_SIZE OMAP3430_L4_PERIPHERAL_SIZE
+#define OMAP_L4_WAKEUP_BASE OMAP3430_L4_WAKEUP_BASE
+#define OMAP_L4_WAKEUP_SIZE OMAP3430_L4_WAKEUP_SIZE
+#endif
+
#ifdef OMAP_3530
#define OMAP_L4_CORE_BASE OMAP3530_L4_CORE_BASE
#define OMAP_L4_CORE_SIZE OMAP3530_L4_CORE_SIZE
@@ -82,7 +91,7 @@
* We devmap IO starting at KERNEL_VM_BASE + KERNEL_VM_SIZE
*/
#define OMAP_KERNEL_IO_VBASE (KERNEL_VM_BASE + KERNEL_VM_SIZE)
-#if defined(OMAP_3530)
+#if defined(OMAP_3430) || defined(OMAP_3530)
#define OMAP_L4_CORE_VBASE OMAP_KERNEL_IO_VBASE
#define OMAP_L4_PERIPHERAL_VBASE (OMAP_L4_CORE_VBASE + OMAP_L4_CORE_SIZE)
#define OMAP_L4_WAKEUP_VBASE (OMAP_L4_PERIPHERAL_VBASE + OMAP_L4_PERIPHERAL_SIZE)
Index: src/sys/arch/evbarm/beagle/beagle_machdep.c
diff -u src/sys/arch/evbarm/beagle/beagle_machdep.c:1.22 src/sys/arch/evbarm/beagle/beagle_machdep.c:1.23
--- src/sys/arch/evbarm/beagle/beagle_machdep.c:1.22 Wed Sep 5 00:06:21 2012
+++ src/sys/arch/evbarm/beagle/beagle_machdep.c Tue Dec 11 01:54:43 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: beagle_machdep.c,v 1.22 2012/09/05 00:06:21 matt Exp $ */
+/* $NetBSD: beagle_machdep.c,v 1.23 2012/12/11 01:54:43 khorben Exp $ */
/*
* Machine dependent functions for kernel setup for TI OSK5912 board.
@@ -125,7 +125,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: beagle_machdep.c,v 1.22 2012/09/05 00:06:21 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: beagle_machdep.c,v 1.23 2012/12/11 01:54:43 khorben Exp $");
#include "opt_machdep.h"
#include "opt_ddb.h"
@@ -207,7 +207,7 @@ static void kgdb_port_init(void);
static void init_clocks(void);
static void beagle_device_register(device_t, void *);
static void beagle_reset(void);
-#if defined(OMAP_3530) || defined(TI_DM37XX)
+#if defined(OMAP_3430) || defined(OMAP_3530) || defined(TI_DM37XX)
static void omap3_cpu_clk(void);
#endif
#if defined(OMAP_4430)
@@ -369,7 +369,7 @@ initarm(void *arg)
* peripherals and SDRAM. The temporary first level translation table
* is at the end of SDRAM.
*/
-#if defined(OMAP_3530) || defined(TI_DM37XX)
+#if defined(OMAP_3430) || defined(OMAP_3530) || defined(TI_DM37XX)
omap3_cpu_clk(); // find our CPU speed.
#endif
#if defined(OMAP_4430)
@@ -542,7 +542,7 @@ static kgdb_port_init(void)
}
#endif
-#if defined(OMAP_3530) || defined(TI_DM37XX)
+#if defined(OMAP_3430) || defined(OMAP_3530) || defined(TI_DM37XX)
void
omap3_cpu_clk(void)
{
@@ -562,7 +562,7 @@ omap3_cpu_clk(void)
*/
curcpu()->ci_data.cpu_cc_freq = ((sys_clk * m) / ((n + 1) * m2 * 2)) * OMAP3_PRM_CLKSEL_MULT;
}
-#endif /* OMAP_3530 || TI_DM37XX */
+#endif /* OMAP_3430 || OMAP_3530 || TI_DM37XX */
#if defined(OMAP_4430)
void
Index: src/sys/arch/evbarm/conf/N900
diff -u src/sys/arch/evbarm/conf/N900:1.1 src/sys/arch/evbarm/conf/N900:1.2
--- src/sys/arch/evbarm/conf/N900:1.1 Fri Dec 7 00:02:36 2012
+++ src/sys/arch/evbarm/conf/N900 Tue Dec 11 01:54:43 2012
@@ -1,5 +1,5 @@
#
-# $NetBSD: N900,v 1.1 2012/12/07 00:02:36 khorben Exp $
+# $NetBSD: N900,v 1.2 2012/12/11 01:54:43 khorben Exp $
#
# N900 -- Nokia N900 Kernel
#
@@ -18,7 +18,7 @@ options RTC_OFFSET=0 # hardware clock i
# CPU options
options CPU_CORTEXA8
-options OMAP_3530
+options OMAP_3430
options PMAPCOUNTERS
# Architecture options