Module Name: src
Committed By: kiyohara
Date: Mon Jul 4 15:45:38 UTC 2016
Modified Files:
src/sys/arch/arm/omap: omap3_sdhc.c omap3_sdmmcreg.h
src/sys/arch/evbarm/conf: BEAGLEBONE
Log Message:
AM335x's sdhc@obio use offset 0x100.
Oops this space maybe use HL registers? OMAP4430 use this space.
To generate a diff of this commit:
cvs rdiff -u -r1.20 -r1.21 src/sys/arch/arm/omap/omap3_sdhc.c
cvs rdiff -u -r1.7 -r1.8 src/sys/arch/arm/omap/omap3_sdmmcreg.h
cvs rdiff -u -r1.35 -r1.36 src/sys/arch/evbarm/conf/BEAGLEBONE
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/omap3_sdhc.c
diff -u src/sys/arch/arm/omap/omap3_sdhc.c:1.20 src/sys/arch/arm/omap/omap3_sdhc.c:1.21
--- src/sys/arch/arm/omap/omap3_sdhc.c:1.20 Mon Apr 25 13:20:42 2016
+++ src/sys/arch/arm/omap/omap3_sdhc.c Mon Jul 4 15:45:37 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: omap3_sdhc.c,v 1.20 2016/04/25 13:20:42 kiyohara Exp $ */
+/* $NetBSD: omap3_sdhc.c,v 1.21 2016/07/04 15:45:37 kiyohara 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.20 2016/04/25 13:20:42 kiyohara Exp $");
+__KERNEL_RCSID(0, "$NetBSD: omap3_sdhc.c,v 1.21 2016/07/04 15:45:37 kiyohara Exp $");
#include "opt_omap.h"
#include "edma.h"
@@ -243,8 +243,13 @@ obiosdhc_attach(device_t parent, device_
clksft = ffs(sc->sc.sc_clkmsk) - 1;
+#if defined(TI_AM335X)
+ error = bus_space_map(sc->sc_bst, oa->obio_addr + OMAP4_SDMMC_HL_SIZE,
+ oa->obio_size - OMAP4_SDMMC_HL_SIZE, 0, &sc->sc_bsh);
+#else
error = bus_space_map(sc->sc_bst, oa->obio_addr, oa->obio_size, 0,
&sc->sc_bsh);
+#endif
if (error) {
aprint_error_dev(self,
"can't map registers: %d\n", error);
@@ -261,7 +266,7 @@ obiosdhc_attach(device_t parent, device_
cv_init(&sc->sc_edma_cv, "sdhcedma");
sc->sc_edma_fifo = oa->obio_addr +
- OMAP3_SDMMC_SDHC_OFFSET + SDHC_DATA;
+ OMAP4_SDMMC_HL_SIZE + OMAP3_SDMMC_SDHC_OFFSET + SDHC_DATA;
sc->sc.sc_flags |= SDHC_FLAG_USE_DMA;
sc->sc.sc_flags |= SDHC_FLAG_EXTERNAL_DMA;
sc->sc.sc_flags |= SDHC_FLAG_EXTDMA_DMAEN;
Index: src/sys/arch/arm/omap/omap3_sdmmcreg.h
diff -u src/sys/arch/arm/omap/omap3_sdmmcreg.h:1.7 src/sys/arch/arm/omap/omap3_sdmmcreg.h:1.8
--- src/sys/arch/arm/omap/omap3_sdmmcreg.h:1.7 Sat Jul 27 17:10:28 2013
+++ src/sys/arch/arm/omap/omap3_sdmmcreg.h Mon Jul 4 15:45:37 2016
@@ -1,4 +1,4 @@
-/* $NetBSD: omap3_sdmmcreg.h,v 1.7 2013/07/27 17:10:28 jklos Exp $ */
+/* $NetBSD: omap3_sdmmcreg.h,v 1.8 2016/07/04 15:45:37 kiyohara Exp $ */
/*-
* Copyright (c) 2012 The NetBSD Foundation, Inc.
* All rights reserved.
@@ -45,13 +45,15 @@
#define SDMMC4_BASE_4430 0x480D1000 // same for omap5
#define SDMMC5_BASE_4430 0x480D5000 // same for omap5
-#define SDMMC1_BASE_TIAM335X 0x48060100
-#define SDMMC2_BASE_TIAM335X 0x481d8100
-#define SDMMC3_BASE_TIAM335X 0x47810100
+#define SDMMC1_BASE_TIAM335X 0x48060000
+#define SDMMC2_BASE_TIAM335X 0x481d8000
+#define SDMMC3_BASE_TIAM335X 0x47810000
#define OMAP3_SDMMC_SDHC_OFFSET 0x100
#define OMAP3_SDMMC_SDHC_SIZE 0x100
+#define OMAP4_SDMMC_HL_SIZE 0x100
+
#define MMCHS_SYSCONFIG 0x010 /* System Configuration */
# define SYSCONFIG_CLOCKACTIVITY_MASK (3 << 8)
# define SYSCONFIG_CLOCKACTIVITY_FCLK (2 << 8)
Index: src/sys/arch/evbarm/conf/BEAGLEBONE
diff -u src/sys/arch/evbarm/conf/BEAGLEBONE:1.35 src/sys/arch/evbarm/conf/BEAGLEBONE:1.36
--- src/sys/arch/evbarm/conf/BEAGLEBONE:1.35 Mon Jul 4 15:35:55 2016
+++ src/sys/arch/evbarm/conf/BEAGLEBONE Mon Jul 4 15:45:38 2016
@@ -1,5 +1,5 @@
#
-# $NetBSD: BEAGLEBONE,v 1.35 2016/07/04 15:35:55 kiyohara Exp $
+# $NetBSD: BEAGLEBONE,v 1.36 2016/07/04 15:45:38 kiyohara Exp $
#
# BEAGLEBONE -- TI AM335x board Kernel
#
@@ -196,16 +196,13 @@ prcm0 at obio0 addr 0x44e00000 size 0x2
sitaracm0 at obio0 addr 0x44e10000 size 0x2000
# SDHC controllers
-# XXX Kludge -- the am335x's mmc registers start at an offset of #x100
-# from other omap3. (What about omap4?) Need to adapt the omap sdhc
-# driver to handle this.
-sdhc0 at obio1 addr 0x48060100 size 0x0f00 intr 64 edmabase 24
+sdhc0 at obio1 addr 0x48060000 size 0x1000 intr 64 edmabase 24
sdmmc0 at sdhc0
ld0 at sdmmc0
-sdhc1 at obio1 addr 0x481d8100 size 0x0f00 intr 28 edmabase 2 # BB Black
+sdhc1 at obio1 addr 0x481d8000 size 0x1000 intr 28 edmabase 2 # BB Black
sdmmc1 at sdhc1
ld1 at sdmmc1
-#sdhc2 at obio0 addr 0x47810100 size 0xff00 intr 29
+#sdhc2 at obio0 addr 0x47810000 size 0x1000 intr 29
#sdmmc2 at sdhc2
#ld2 at sdmmc2
sdmmc* at sdhc? # SD/MMC bus