Hi Pavel, I have the latest GIT master synced and have cherry-picked my changes on top of that.
Regarding the change you have suggested : DMA : https://github.com/spark1729/rtems/commits/DMA_RPI Mailbox : https://github.com/spark1729/rtems/commits/MAILBOX_RPI Is this what you suggested right ? I have updated the blog with the information regarding the patches submitted : Blog <http://rtemsgsoc2016-mudit.blogspot.in/> This also has information on the status as well as the plan of action in the future. Blog Posts : Regarding DMA : Link <http://rtemsgsoc2016-mudit.blogspot.in/2016/08/dma-direct-memory-access-for-rpi.html?view=flipcard> Regarding SD card Driver : Link <http://rtemsgsoc2016-mudit.blogspot.in/2016/08/porting-sd-card-driver-from-freebsd-to.html?view=flipcard> Regarding Mailbox : Link <http://rtemsgsoc2016-mudit.blogspot.in/2016/08/mailbox-interface-for-rpi.html?view=flipcard> Thanks Mudit Jain On Mon, Aug 22, 2016 at 3:47 AM, Pavel Pisa <ppisa4li...@pikron.com> wrote: > Hello Mudit, > > please, send information what is RTEMS GIT revision are > your changes based on. See comment below > > On Saturday 20 of August 2016 17:04:19 Mudit Jain wrote: > > Added macros for DMA channels 0-12 > > Added interrupt handlers for DMA 0, 1 & 2 > > > > The added IRQs are in accordance with the > > BCM Peripherals Datasheet and also have been verified > > with the linux source code for RPi > > --- > > c/src/lib/libbsp/arm/raspberrypi/include/irq.h | 17 ++++++++++ > > c/src/lib/libbsp/arm/raspberrypi/irq/irq.c | 45 > > ++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) > > > > diff --git a/c/src/lib/libbsp/arm/raspberrypi/include/irq.h > > b/c/src/lib/libbsp/arm/raspberrypi/include/irq.h index 8436c2d..50616e1 > > 100644 > > --- a/c/src/lib/libbsp/arm/raspberrypi/include/irq.h > > +++ b/c/src/lib/libbsp/arm/raspberrypi/include/irq.h > > @@ -35,6 +35,23 @@ > > > > #define BCM2835_INTC_TOTAL_IRQ 64 + 8 > > > > +/* DMA Interrupt is routed to IRQ 16 for DMA Channel 0, > > + IRQ 17 for Channel 1, and so on till IRQ 28 for Channel 12. > > + */ > > + > > +#define BCM2835_IRQ_ID_DMA_CH0 16 > > +#define BCM2835_IRQ_ID_DMA_CH1 17 > > +#define BCM2835_IRQ_ID_DMA_CH2 18 > > +#define BCM2835_IRQ_ID_DMA_CH3 19 > > +#define BCM2835_IRQ_ID_DMA_CH4 20 > > +#define BCM2835_IRQ_ID_DMA_CH5 21 > > +#define BCM2835_IRQ_ID_DMA_CH6 22 > > +#define BCM2835_IRQ_ID_DMA_CH7 23 > > +#define BCM2835_IRQ_ID_DMA_CH8 24 > > +#define BCM2835_IRQ_ID_DMA_CH9 25 > > +#define BCM2835_IRQ_ID_DMA_CH10 26 > > +#define BCM2835_IRQ_ID_DMA_CH11 27 > > +#define BCM2835_IRQ_ID_DMA_CH12 28 > > > > #define BCM2835_IRQ_ID_AUX 29 > > #define BCM2835_IRQ_ID_SPI_SLAVE 43 > > diff --git a/c/src/lib/libbsp/arm/raspberrypi/irq/irq.c > > b/c/src/lib/libbsp/arm/raspberrypi/irq/irq.c index 7b3b2be..3279b35 > 100644 > > --- a/c/src/lib/libbsp/arm/raspberrypi/irq/irq.c > > +++ b/c/src/lib/libbsp/arm/raspberrypi/irq/irq.c > > @@ -64,6 +64,21 @@ void bsp_interrupt_dispatch(void) > > { > > vector = BCM2835_IRQ_ID_UART; > > } > > + /* DMA 0 */ > > + else if ( BCM2835_REG(BCM2835_IRQ_PENDING1) & BCM2835_BIT(16) ) > > + { > > + vector = BCM2835_IRQ_ID_DMA_CH0; > > + } > > + /* DMA 1 */ > > + else if ( BCM2835_REG(BCM2835_IRQ_PENDING1) & BCM2835_BIT(17) ) > > + { > > + vector = BCM2835_IRQ_ID_DMA_CH1; > > + } > > + /* DMA 2 */ > > + else if ( BCM2835_REG(BCM2835_IRQ_PENDING1) & BCM2835_BIT(18) ) > > + { > > + vector = BCM2835_IRQ_ID_DMA_CH2; > > + } > > I hope, I have eliminated need for all these individual peripherals > specific code in raspberrypi/irq/irq.c . > See the commit > > https://git.rtems.org/rtems/commit/c/src/lib/libbsp/arm/ > raspberrypi/irq/irq.c?id=d216c5d6a2325551accb836429a6ac9cc2b2f4b7 > > Try rebase your changes for other files to actual RTEMS GIT master. > If there is some problem which prevents to your code to run > with master then it is necessary to find what is broken > on master. I try to help with it. > > May it be that there is some problem with irq.c code, I have > tested it only by timer IRQ because other are not used by mater yet. > But code written the way that it should be fully generic by now. > It should support all 72 interrupt sources. > > > /* GPIO 0*/ > > else if ( BCM2835_REG(BCM2835_IRQ_PENDING2) & BCM2835_BIT(17) ) > > { > > @@ -114,6 +129,21 @@ rtems_status_code > > bsp_interrupt_vector_enable(rtems_vector_number vector) { > > BCM2835_REG(BCM2835_IRQ_ENABLE2) = BCM2835_BIT(25); > > } > > + /* DMA 0 */ > > + else if ( vector == BCM2835_IRQ_ID_DMA_CH0 ) > > + { > > + BCM2835_REG(BCM2835_IRQ_ENABLE1) = BCM2835_BIT(16); > > + } > > + /* DMA 1 */ > > + else if ( vector == BCM2835_IRQ_ID_DMA_CH1 ) > > + { > > + BCM2835_REG(BCM2835_IRQ_ENABLE1) = BCM2835_BIT(17); > > + } > > + /* DMA 2 */ > > + else if ( vector == BCM2835_IRQ_ID_DMA_CH2 ) > > + { > > + BCM2835_REG(BCM2835_IRQ_ENABLE1) = BCM2835_BIT(18); > > + } > > Should be solved by master already. > > > /* GPIO 0 */ > > else if ( vector == BCM2835_IRQ_ID_GPIO_0 ) > > { > > @@ -164,6 +194,21 @@ rtems_status_code > > bsp_interrupt_vector_disable(rtems_vector_number vector) { > > BCM2835_REG(BCM2835_IRQ_DISABLE2) = BCM2835_BIT(25); > > } > > + /* DMA 0 */ > > + else if ( vector == BCM2835_IRQ_ID_DMA_CH0 ) > > + { > > + BCM2835_REG(BCM2835_IRQ_DISABLE1) = BCM2835_BIT(16); > > + } > > + /* DMA 1 */ > > + else if ( vector == BCM2835_IRQ_ID_DMA_CH1 ) > > + { > > + BCM2835_REG(BCM2835_IRQ_DISABLE1) = BCM2835_BIT(17); > > + } > > + /* DMA 2 */ > > + else if ( vector == BCM2835_IRQ_ID_DMA_CH2 ) > > + { > > + BCM2835_REG(BCM2835_IRQ_DISABLE1) = BCM2835_BIT(18); > > + } > > Should be solved by master already. > > > /* GPIO 0 */ > > else if ( vector == BCM2835_IRQ_ID_GPIO_0 ) > > { > > If you have problem with rebase then you can format patch, > use editor to delete parts concerning files which should > be untouched, then reset some branch back before patch series > or to master and then apply modified patches. > Again, I can help. > > I would be happy if you write some summary about testing, which > attempts has been done, what worked, what failed and what has > not been tested. Ideally, it should be done for work > on your branch before rebase and after rebase to master. > > Best wishes, > > Pavel >
_______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel