Module Name:    src
Committed By:   matt
Date:           Mon Aug 20 12:38:29 UTC 2012

Modified Files:
        src/sys/arch/arm/omap: files.omap2 omap2_gpio.c omap2_gpmcreg.h
            omap2_icu.c omap2_obio.c omap2_obioreg.h omap2_reg.h
            omap_nobyteacc_io.S

Log Message:
Add support for the TI AM335x (beaglebone) and the OMAP4430 (pandaboard)


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/sys/arch/arm/omap/files.omap2
cvs rdiff -u -r1.8 -r1.9 src/sys/arch/arm/omap/omap2_gpio.c \
    src/sys/arch/arm/omap/omap2_icu.c
cvs rdiff -u -r1.5 -r1.6 src/sys/arch/arm/omap/omap2_gpmcreg.h \
    src/sys/arch/arm/omap/omap2_reg.h
cvs rdiff -u -r1.12 -r1.13 src/sys/arch/arm/omap/omap2_obio.c
cvs rdiff -u -r1.3 -r1.4 src/sys/arch/arm/omap/omap2_obioreg.h
cvs rdiff -u -r1.1 -r1.2 src/sys/arch/arm/omap/omap_nobyteacc_io.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/arm/omap/files.omap2
diff -u src/sys/arch/arm/omap/files.omap2:1.11 src/sys/arch/arm/omap/files.omap2:1.12
--- src/sys/arch/arm/omap/files.omap2:1.11	Thu Jul 12 03:30:29 2012
+++ src/sys/arch/arm/omap/files.omap2	Mon Aug 20 12:38:28 2012
@@ -1,4 +1,4 @@
-#	$NetBSD: files.omap2,v 1.11 2012/07/12 03:30:29 matt Exp $
+#	$NetBSD: files.omap2,v 1.12 2012/08/20 12:38:28 matt Exp $
 #
 # Configuration info for Texas Instruments OMAP2/OMAP3 CPU support
 # Based on xscale/files.pxa2x0
@@ -19,6 +19,7 @@ defflag	opt_omap.h				OMAP_2430: OMAP2
 defflag opt_omap.h				OMAP_2420: OMAP2
 defflag opt_omap.h				OMAP_3530: OMAP3
 defflag opt_omap.h				OMAP_4430: OMAP4
+defflag opt_omap.h				TI_AM335X: OMAP3
 
 # OBIO just an attach point
 device	obio { [addr=-1], [size=0], [intr=-1], [mult=1], [intrbase=-1], [nobyteacc=0]

Index: src/sys/arch/arm/omap/omap2_gpio.c
diff -u src/sys/arch/arm/omap/omap2_gpio.c:1.8 src/sys/arch/arm/omap/omap2_gpio.c:1.9
--- src/sys/arch/arm/omap/omap2_gpio.c:1.8	Fri Jul  1 20:30:21 2011
+++ src/sys/arch/arm/omap/omap2_gpio.c	Mon Aug 20 12:38:28 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: omap2_gpio.c,v 1.8 2011/07/01 20:30:21 dyoung Exp $	*/
+/*	$NetBSD: omap2_gpio.c,v 1.9 2012/08/20 12:38:28 matt 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.8 2011/07/01 20:30:21 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: omap2_gpio.c,v 1.9 2012/08/20 12:38:28 matt Exp $");
 
 #define _INTR_PRIVATE
 
@@ -348,6 +348,13 @@ gpio_match(device_t parent, cfdata_t cfd
 	    || oa->obio_addr == GPIO6_BASE_3530)
 		return 1;
 #endif
+#ifdef TI_AM335X
+	if (oa->obio_addr == GPIO0_BASE_TI_AM335X
+	    || oa->obio_addr == GPIO1_BASE_TI_AM335X
+	    || oa->obio_addr == GPIO2_BASE_TI_AM335X
+	    || oa->obio_addr == GPIO3_BASE_TI_AM335X)
+		return 1;
+#endif
 
 	return 0;
 }
Index: src/sys/arch/arm/omap/omap2_icu.c
diff -u src/sys/arch/arm/omap/omap2_icu.c:1.8 src/sys/arch/arm/omap/omap2_icu.c:1.9
--- src/sys/arch/arm/omap/omap2_icu.c:1.8	Fri Jul  1 20:30:21 2011
+++ src/sys/arch/arm/omap/omap2_icu.c	Mon Aug 20 12:38:28 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: omap2_icu.c,v 1.8 2011/07/01 20:30:21 dyoung Exp $	*/
+/*	$NetBSD: omap2_icu.c,v 1.9 2012/08/20 12:38:28 matt Exp $	*/
 /*
  * Define the SDP2430 specific information and then include the generic OMAP
  * interrupt header.
@@ -30,7 +30,7 @@
 #define _INTR_PRIVATE
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: omap2_icu.c,v 1.8 2011/07/01 20:30:21 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: omap2_icu.c,v 1.9 2012/08/20 12:38:28 matt Exp $");
 
 #include <sys/param.h>
 #include <sys/evcnt.h>
@@ -172,7 +172,7 @@ omap2icu_match(device_t parent, cfdata_t
 
 #if defined(OMAP_2430) || defined(OMAP_2420)
 	return oa->obio_addr == INTC_BASE;
-#elif defined(OMAP_3530)
+#elif defined(OMAP3)
 	return oa->obio_addr == INTC_BASE_3530;
 #else
 #error unsupported OMAP variant

Index: src/sys/arch/arm/omap/omap2_gpmcreg.h
diff -u src/sys/arch/arm/omap/omap2_gpmcreg.h:1.5 src/sys/arch/arm/omap/omap2_gpmcreg.h:1.6
--- src/sys/arch/arm/omap/omap2_gpmcreg.h:1.5	Mon Feb  7 23:22:18 2011
+++ src/sys/arch/arm/omap/omap2_gpmcreg.h	Mon Aug 20 12:38:28 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: omap2_gpmcreg.h,v 1.5 2011/02/07 23:22:18 ahoka Exp $	*/
+/*	$NetBSD: omap2_gpmcreg.h,v 1.6 2012/08/20 12:38:28 matt Exp $	*/
 /*
  * Copyright (c) 2007 Microsoft
  * All rights reserved.
@@ -47,6 +47,9 @@
 #ifdef OMAP_3530
 #define GPMC_BASE			0x6e000000
 #endif
+#ifdef TI_AM335X
+#define GPMC_BASE			0x50000000
+#endif
 
 #define GPMC_REVISION			0x000
 #define GPMC_SYSCONFIG			0x010
Index: src/sys/arch/arm/omap/omap2_reg.h
diff -u src/sys/arch/arm/omap/omap2_reg.h:1.5 src/sys/arch/arm/omap/omap2_reg.h:1.6
--- src/sys/arch/arm/omap/omap2_reg.h:1.5	Thu Jul 12 03:38:25 2012
+++ src/sys/arch/arm/omap/omap2_reg.h	Mon Aug 20 12:38:29 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: omap2_reg.h,v 1.5 2012/07/12 03:38:25 matt Exp $ */
+/* $NetBSD: omap2_reg.h,v 1.6 2012/08/20 12:38:29 matt Exp $ */
 
 /*
  * Copyright (c) 2007 Microsoft
@@ -33,7 +33,7 @@
 #define _ARM_OMAP_OMAP2_REG_H_
 
 /*
- * Header for misc. omap2430 registers
+ * Header for misc. omap2/3/4 registers
  */
 
 /*
@@ -48,29 +48,62 @@
 #define OMAP3530_L4_CORE_BASE		0x48000000
 #define OMAP3530_L4_CORE_SIZE		0x01000000	/* 16 MB */
 
-#define	OMAP3530_L4_WAKEUP_BASE		0x48300000
-#define	OMAP3530_L4_WAKEUP_SIZE		0x00040000	/* 256KB */
+/* OMAP3 processors */
 
-#define	OMAP3530_L4_PERIPHERAL_BASE	0x49000000
-#define	OMAP3530_L4_PERIPHERAL_SIZE	0x00100000	/* 1MB */
+#define OMAP3530_L4_WAKEUP_BASE		0x48300000
+#define OMAP3530_L4_WAKEUP_SIZE		0x00040000	/* 256KB */
 
-#define	OMAP3530_L4_EMULATION_BASE	0x54000000
-#define	OMAP3530_L4_EMULATION_SIZE	0x00800000	/* 8MB */
+#define OMAP3530_L4_PERIPHERAL_BASE	0x49000000
+#define OMAP3530_L4_PERIPHERAL_SIZE	0x00100000	/* 1MB */
+
+#define OMAP3530_L4_EMULATION_BASE	0x54000000
+#define OMAP3530_L4_EMULATION_SIZE	0x00800000	/* 8MB */
+
+/* OMAP4 processors */
+
+#define OMAP4430_L4_CORE_BASE		0x48000000
+#define OMAP4430_L4_CORE_SIZE		0x01000000	/* 16 MB */
+
+#define OMAP4430_L4_WAKEUP_BASE		0x4A300000
+#define OMAP4430_L4_WAKEUP_SIZE		0x00040000	/* 256KB */
+
+#define OMAP4430_L4_PERIPHERAL_BASE	0x49000000
+#define OMAP4430_L4_PERIPHERAL_SIZE	0x00100000	/* 1MB of 16MB */
+
+#define OMAP4430_L4_EMULATION_BASE	0x54000000	/* Actually L3 */
+#define OMAP4430_L4_EMULATION_SIZE	0x00800000	/* 8MB */
+
+/* TI Sitara AM335x (OMAP like) */
+
+#define TI_AM335X_L4_WAKEUP_BASE	0x44C00000
+#define TI_AM335X_L4_WAKEUP_SIZE	0x00400000	/* 4MB */
+
+#define TI_AM335X_L4_PERIPHERAL_BASE	0x48000000
+#define TI_AM335X_L4_PERIPHERAL_SIZE	0x01000000	/* 16MB */
+
+#define TI_AM335X_L4_FAST_BASE		0x4A000000
+#define TI_AM335X_L4_FAST_SIZE		0x01000000	/* 16MB */
 
 /*
  * Clock Management registers base, offsets, and size
  */
 #ifdef OMAP_2430
-#define	OMAP2_CM_BASE			0x49006000
+#define OMAP2_CM_BASE			0x49006000
 #endif
 #ifdef OMAP_2420
-#define	OMAP2_CM_BASE			0x48008000
+#define OMAP2_CM_BASE			0x48008000
 #endif
 #ifdef OMAP_3530
-#define	OMAP2_CM_BASE			0x48004000
+#define OMAP2_CM_BASE			0x48004000
+#endif
+#ifdef OMAP_4430
+#define OMAP2_CM_BASE			(OMAP4430_L4_CORE_BASE + 0x04000)
+#endif
+#ifdef TI_AM335X
+#define OMAP2_CM_BASE			TI_AM335X_L4_WAKEUP_BASE
 #endif
 
-#define	OMAP2_CM_CLKSEL_MPU		0x140
+#define	OMAP2_CM_CLKSEL_MPU	0x140
 #define	OMAP2_CM_FCLKEN1_CORE	0x200
 #define	OMAP2_CM_FCLKEN2_CORE	0x204
 #define	OMAP2_CM_ICLKEN1_CORE	0x210
@@ -236,6 +269,12 @@
 #ifdef OMAP_3530
 #define	OMAP2_PRM_BASE			0x48306000
 #endif
+#ifdef OMAP_4430
+#define	OMAP2_PRM_BASE			0x4A306000
+#endif
+#ifdef TI_AM335X
+#define	OMAP2_PRM_BASE			0x48306000
+#endif
 
 #define OMAP2_PRM_SIZE			0x00002000 /* 8k */
 
@@ -418,7 +457,7 @@
  * Interrupts
  */
 #define	INTC_BASE		0x480FE000
-#define	INTC_BASE_3530		0x48200000
+#define	INTC_BASE_3530		0x48200000	/* Also TI_AM335X */
 #define	INTC_REVISISON		0x0000
 #define	INTC_SYSCONFIG		0x0010
 #define	INTC_SYSSTATUS		0x0014
@@ -508,6 +547,11 @@
 #define	GPIO5_BASE_3530			0x49056000
 #define	GPIO6_BASE_3530			0x49058000
 
+#define	GPIO0_BASE_TI_AM335X		0x44e07000
+#define	GPIO1_BASE_TI_AM335X		0x4804c000
+#define	GPIO2_BASE_TI_AM335X		0x481ac000
+#define	GPIO3_BASE_TI_AM335X		0x481ae000
+
 #define	GPIO_IRQSTATUS1			0x018
 #define	GPIO_IRQENABLE1			0x01c
 #define	GPIO_WAKEUPENABLE		0x020

Index: src/sys/arch/arm/omap/omap2_obio.c
diff -u src/sys/arch/arm/omap/omap2_obio.c:1.12 src/sys/arch/arm/omap/omap2_obio.c:1.13
--- src/sys/arch/arm/omap/omap2_obio.c:1.12	Fri Jul  1 20:30:21 2011
+++ src/sys/arch/arm/omap/omap2_obio.c	Mon Aug 20 12:38:28 2012
@@ -1,7 +1,7 @@
-/*	$Id: omap2_obio.c,v 1.12 2011/07/01 20:30:21 dyoung Exp $	*/
+/*	$Id: omap2_obio.c,v 1.13 2012/08/20 12:38:28 matt Exp $	*/
 
 /* adapted from: */
-/*	$NetBSD: omap2_obio.c,v 1.12 2011/07/01 20:30:21 dyoung Exp $ */
+/*	$NetBSD: omap2_obio.c,v 1.13 2012/08/20 12:38:28 matt Exp $ */
 
 
 /*
@@ -103,7 +103,7 @@
 
 #include "opt_omap.h"
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: omap2_obio.c,v 1.12 2011/07/01 20:30:21 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: omap2_obio.c,v 1.13 2012/08/20 12:38:28 matt Exp $");
 
 #include "locators.h"
 #include "obio.h"
@@ -348,7 +348,7 @@ static const struct {
 	bus_addr_t addr;
 	bool required;
 } critical_devs[] = {
-#ifdef OMAP_3530
+#ifdef OMAP3
 	{ .name = "avic", .addr = INTC_BASE_3530, .required = true },
 #else
 	{ .name = "avic", .addr = INTC_BASE, .required = true },

Index: src/sys/arch/arm/omap/omap2_obioreg.h
diff -u src/sys/arch/arm/omap/omap2_obioreg.h:1.3 src/sys/arch/arm/omap/omap2_obioreg.h:1.4
--- src/sys/arch/arm/omap/omap2_obioreg.h:1.3	Wed Oct 22 10:45:47 2008
+++ src/sys/arch/arm/omap/omap2_obioreg.h	Mon Aug 20 12:38:29 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: omap2_obioreg.h,v 1.3 2008/10/22 10:45:47 matt Exp $	*/
+/*	$NetBSD: omap2_obioreg.h,v 1.4 2012/08/20 12:38:29 matt Exp $	*/
 
 /*
  * Copyright (c) 2007 Microsoft
@@ -76,4 +76,19 @@
 #define	GPIO5_BASE		GPIO5_BASE_3530
 #endif
 
+#if defined(TI_AM335X)
+#define	OMAP2_OBIO_0_BASE	TI_AM335X_L4_WAKEUP_BASE
+#define	OMAP2_OBIO_0_SIZE	TI_AM335X_L4_WAKEUP_SIZE
+
+#define	OMAP2_OBIO_1_BASE	TI_AM335X_L4_PERIPHERAL_BASE
+#define	OMAP2_OBIO_1_SIZE	TI_AM335X_L4_PERIPHERAL_SIZE
+
+#define	OMAP2_OBIO_2_BASE	TI_AM335X_L4_FAST_BASE
+#define	OMAP2_OBIO_2_SIZE	TI_AM335X_L4_FAST_SIZE
+
+#define	GPIO1_BASE		GPIO1_BASE_TI_AM335X
+#define	GPIO2_BASE		GPIO2_BASE_TI_AM335X
+#define	GPIO3_BASE		GPIO3_BASE_TI_AM335X
+#endif
+
 #endif	/* _ARM_OMAP_OMAP2_OBIOREG_H_ */

Index: src/sys/arch/arm/omap/omap_nobyteacc_io.S
diff -u src/sys/arch/arm/omap/omap_nobyteacc_io.S:1.1 src/sys/arch/arm/omap/omap_nobyteacc_io.S:1.2
--- src/sys/arch/arm/omap/omap_nobyteacc_io.S:1.1	Sat Jan  6 00:29:52 2007
+++ src/sys/arch/arm/omap/omap_nobyteacc_io.S	Mon Aug 20 12:38:29 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: omap_nobyteacc_io.S,v 1.1 2007/01/06 00:29:52 christos Exp $ */
+/*	$NetBSD: omap_nobyteacc_io.S,v 1.2 2012/08/20 12:38:29 matt Exp $ */
 
 /*
  * Redistribution and use in source and binary forms, with or without
@@ -45,5 +45,5 @@ ENTRY(nobyteacc_bs_w_1)
 	orrne	r0, r0, r3, lsl #8	/* odd: or data shifted to hi byte */
 	strh	r0, [r1]		/* store back halfword */
 	msr	cpsr, r2		/* restore interrupts */
-	mov	pc, lr
-
+	RET
+END(nobyteacc_bs_w_1)

Reply via email to