Date: Fri, 28 May 2010 22:50:55 GMT From: Jakub Wojciech Klama <jceel@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 178943 for review Message-ID: <201005282250.o4SMot7A023097@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://p4web.freebsd.org/@@178943?ac=10 Change 178943 by jceel@jceel on 2010/05/28 22:49:59 Provide first proof-of-concept of DMA engine framework. This code includes: * early interface for DMA engine drivers, * early, but working DaVinci EDMA driver, * char device driver to test some transfers Affected files ... .. //depot/projects/soc2010/jceel_dma/sys/arm/conf/DAVINCI#2 edit .. //depot/projects/soc2010/jceel_dma/sys/arm/davinci/davinci_devices.c#2 edit .. //depot/projects/soc2010/jceel_dma/sys/arm/davinci/davinci_edma.c#1 add .. //depot/projects/soc2010/jceel_dma/sys/arm/davinci/davinci_edmareg.h#2 edit .. //depot/projects/soc2010/jceel_dma/sys/arm/davinci/davincireg.h#2 edit .. //depot/projects/soc2010/jceel_dma/sys/arm/davinci/files.davinci#2 edit .. //depot/projects/soc2010/jceel_dma/sys/conf/files#2 edit .. //depot/projects/soc2010/jceel_dma/sys/dev/dmae/dmae.c#1 add .. //depot/projects/soc2010/jceel_dma/sys/dev/dmae/dmae.h#1 add .. //depot/projects/soc2010/jceel_dma/sys/dev/dmae/dmae_cdev.c#1 add .. //depot/projects/soc2010/jceel_dma/sys/dev/dmae/dmae_cdev.h#1 add .. //depot/projects/soc2010/jceel_dma/sys/dev/dmae/dmae_if.m#1 add .. //depot/projects/soc2010/jceel_dma/sys/dev/dmae/dmae_sw.c#1 add Differences ... ==== //depot/projects/soc2010/jceel_dma/sys/arm/conf/DAVINCI#2 (text+ko) ==== @@ -69,7 +69,10 @@ # Storage device ata device atadisk -#device dvata # broken device mmc device mmcsd device dvmmc + +# DMAE +device dmae +device edma ==== //depot/projects/soc2010/jceel_dma/sys/arm/davinci/davinci_devices.c#2 (text+ko) ==== @@ -63,6 +63,12 @@ { DAVINCI_MMCINT, -1 }, { DAVINCI_PSC_MMC_IDX, -1 }, }, + { "edma", DAVINCI_EDMA_BASE, DAVINCI_EDMA_SIZE, + { DAVINCI_EDMA3CC_INT0, DAVINCI_EDMA3CC_ERRINT, + DAVINCI_EDMA3TC_ERRINT0, DAVINCI_EDMA3TC_ERRINT1, -1 }, + { DAVINCI_PSC_EDMACC_IDX, DAVINCI_PSC_EDMATC0_IDX, + DAVINCI_PSC_EDMATC1_IDX, -1 }, + }, { .od_name = NULL, } }; ==== //depot/projects/soc2010/jceel_dma/sys/arm/davinci/davinci_edmareg.h#2 (text+ko) ==== @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2010 Semihalf, Jakub Klama + * Copyright (c) 2010 Jakub Wojciech Klama <jceel@FreeBSD.org> * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -22,22 +22,26 @@ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. + * */ #ifndef _ARM_DAVINCI_DAVINCI_EDMAREG_H #define _ARM_DAVINCI_DAVINCI_EDMAREG_H +#define DAVINCI_EDMA_NCHANNELS 64 + +#define DAVINCI_EDMACC_BASE 0x0 #define DAVINCI_EDMACC_PID 0x00 #define DAVINCI_EDMACC_CCCFG 0x04 #define DAVINCI_EDMACC_QCHMAP0 0x200 #define DAVINCI_EDMACC_QCHMAPn(_n) (DAVINCI_EDMACC_QCHMAP0 + (_n * 4)) #define DAVINCI_EDMACC_DMAQNUM0 0x240 -#define DAVINCI_EDMACC_DMAQNUMn(_n) DAVINCI_EDMACC_DMAQNUM0 + (_n * 4)) +#define DAVINCI_EDMACC_DMAQNUMn(_n) (DAVINCI_EDMACC_DMAQNUM0 + (_n * 4)) #define DAVINCI_EDMACC_QDMAQNUM 0x260 #define DAVINCI_EDMACC_QUEPRI 0x284 #define DAVINCI_EDMACC_EMR 0x300 #define DAVINCI_EDMACC_EMRH 0x304 -#define DAVINCI_EDMACC_EMRC 0x308 +#define DAVINCI_EDMACC_EMCR 0x308 #define DAVINCI_EDMACC_EMCRH 0x30C #define DAVINCI_EDMACC_QEMR 0x310 #define DAVINCI_EDMACC_QEMCR 0x314 @@ -64,7 +68,7 @@ #define DAVINCI_EDMACC_ER 0x1000 #define DAVINCI_EDMACC_ERH 0x1004 #define DAVINCI_EDMACC_ECR 0x1008 -#define DAVINCI_EDMACC_ECRH 0X100C +#define DAVINCI_EDMACC_ECRH 0x100C #define DAVINCI_EDMACC_ESR 0x1010 #define DAVINCI_EDMACC_ESRH 0x1014 #define DAVINCI_EDMACC_CER 0x1018 @@ -73,7 +77,7 @@ #define DAVINCI_EDMACC_CEERH 0x1024 #define DAVINCI_EDMACC_EECR 0x1028 #define DAVINCI_EDMACC_EECRH 0x102C -#define DAVINCI_EDMACC_EESR 0X1030 +#define DAVINCI_EDMACC_EESR 0x1030 #define DAVINCI_EDMACC_EESRH 0x1034 #define DAVINCI_EDMACC_SER 0x1038 #define DAVINCI_EDMACC_SERH 0x103C @@ -86,7 +90,7 @@ #define DAVINCI_EDMACC_IESR 0x1060 #define DAVINCI_EDMACC_IESRH 0x1064 #define DAVINCI_EDMACC_IPR 0x1068 -#define DAVINCI_EDMACC_IPRH 0X106C +#define DAVINCI_EDMACC_IPRH 0x106C #define DAVINCI_EDMACC_ICR 0x1070 #define DAVINCI_EDMACC_ICRH 0x1074 #define DAVINCI_EDMACC_IEVAL 0x1078 @@ -97,6 +101,8 @@ #define DAVINCI_EDMACC_QSER 0x1090 #define DAVINCI_EDMACC_QSECR 0x1094 +#define DAVINCI_EDMATC0_BASE 0x10000 +#define DAVINCI_EDMATC1_BASE 0x10400 #define DAVINCI_EDMATC_PID 0x00 #define DAVINCI_EDMATC_TCCFG 0x04 #define DAVINCI_EDMATC_TCSTAT 0x100 @@ -131,6 +137,9 @@ uint32_t edma_link; uint32_t edma_cidx; uint32_t edma_ccnt; -}; +} __packed; + +#define DAVINCI_EDMA_PARAM_BASE 0x4000 +#define DAVINCI_EDMA_PARAM(_n) (DAVINCI_EDMA_PARAM_BASE + (_n * sizeof(struct davinci_edma_desc))) #endif /* _ARM_DAVINCI_DAVINCI_EDMAREG_H */ ==== //depot/projects/soc2010/jceel_dma/sys/arm/davinci/davincireg.h#2 (text+ko) ==== @@ -36,9 +36,6 @@ * (page 21) */ #define DAVINCI_EDMA_BASE (DAVINCI_CFGBUS_BASE + 0x0) -#define DAVINCI_EDMACC_BASE (DAVINCI_CFGBUS_BASE + 0x0) -#define DAVINCI_EDMATC0_BASE (DAVINCI_CFGBUS_BASE + 0x10000) -#define DAVINCI_EDMATC1_BASE (DAVINCI_CFGBUS_BASE + 0x10400) #define DAVINCI_EDMA_SIZE 0x10800 #define DAVINCI_UART0_BASE (DAVINCI_CFGBUS_BASE + 0x20000) ==== //depot/projects/soc2010/jceel_dma/sys/arm/davinci/files.davinci#2 (text+ko) ==== @@ -17,3 +17,4 @@ arm/davinci/if_dve.c optional dve arm/davinci/davinci_ata.c optional dvata arm/davinci/davinci_mmc.c optional dvmmc +arm/davinci/davinci_edma.c optional edma ==== //depot/projects/soc2010/jceel_dma/sys/conf/files#2 (text+ko) ==== @@ -838,6 +838,9 @@ dev/digi/digi.c optional digi dev/digi/digi_isa.c optional digi isa dev/digi/digi_pci.c optional digi pci +dev/dmae/dmae.c optional dmae +dev/dmae/dmae_cdev.c optional dmae +dev/dmae/dmae_if.m optional dmae dev/dpt/dpt_eisa.c optional dpt eisa dev/dpt/dpt_pci.c optional dpt pci dev/dpt/dpt_scsi.c optional dpt
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201005282250.o4SMot7A023097>