Ignore:
Timestamp:
2013-10-20T21:51:39Z (11 years ago)
Author:
Jakub Klama <jakub.klama@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
817d939
Parents:
13c94f7
Message:

Finally plug in IRQMP and UART kernel drivers.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/genarch/src/drivers/grlib_irqmp/grlib_irqmp.c

    r13c94f7 rd783145  
    4545            PAGE_NOT_CACHEABLE);
    4646
     47        printf("irqmp regs: %p\n", irqc->regs);
     48
    4749        /* Mask all interrupts */
    48         pio_write_32((void *)&irqc->regs + GRLIB_IRQMP_MASK_OFFSET, 0);
     50        pio_write_32((void *)irqc->regs + GRLIB_IRQMP_MASK_OFFSET, 0);
    4951}
    5052
     
    6466void grlib_irqmp_clear(grlib_irqmp_t *irqc, int inum)
    6567{
     68        inum++;
    6669        pio_write_32(&irqc->regs->clear, (1 << inum));
    6770}
     
    6972void grlib_irqmp_mask(grlib_irqmp_t *irqc, int src)
    7073{
    71         uint32_t mask = pio_read_32((void *)&irqc->regs + GRLIB_IRQMP_MASK_OFFSET);
     74        uint32_t mask = pio_read_32((void *)irqc->regs + GRLIB_IRQMP_MASK_OFFSET);
    7275
     76        src++;
    7377        mask &= ~(1 << src);
    7478
    75         pio_write_32((void *)&irqc->regs + GRLIB_IRQMP_MASK_OFFSET, mask);
     79        pio_write_32((void *)irqc->regs + GRLIB_IRQMP_MASK_OFFSET, mask);
    7680}
    7781
    7882void grlib_irqmp_unmask(grlib_irqmp_t *irqc, int src)
    7983{
    80         uint32_t mask = pio_read_32((void *)&irqc->regs + GRLIB_IRQMP_MASK_OFFSET);
     84        uint32_t mask = pio_read_32((void *)irqc->regs + GRLIB_IRQMP_MASK_OFFSET);
    8185
     86        src++;
    8287        mask |= (1 << src);
    8388
    84         pio_write_32((void *)&irqc->regs + GRLIB_IRQMP_MASK_OFFSET, mask);
     89        pio_write_32((void *)irqc->regs + GRLIB_IRQMP_MASK_OFFSET, mask);
    8590}
    8691
Note: See TracChangeset for help on using the changeset viewer.