Changeset 6f07226 in mainline


Ignore:
Timestamp:
2012-10-14T15:49:23Z (12 years ago)
Author:
Maurizio Lombardi <m.lombardi85@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
5de9ff9
Parents:
42f2a45
Message:

beaglebone: use the DMTIMER0 for the preemptive scheduler

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • HelenOS.config

    r42f2a45 r6f07226  
    483483! [(CONFIG_HID_OUT=generic|CONFIG_HID_OUT=serial)&PLATFORM=arm32&MACHINE=beaglebone] CONFIG_AM335X_UART (y/n)
    484484
     485% Support for TI AM335x timers support
     486! [PLATFORM=arm32&MACHINE=beaglebone] CONFIG_AM335X_TIMERS (y)
     487
    485488% Support for TI AMDM37x on-chip UART
    486489! [(CONFIG_HID_OUT=generic|CONFIG_HID_OUT=serial)&PLATFORM=arm32&MACHINE=beagleboardxm] CONFIG_AMDM37X_UART (y/n)
  • kernel/arch/arm32/src/mach/beaglebone/beaglebone.c

    r42f2a45 r6f07226  
    3737#include <genarch/drivers/am335x/irc.h>
    3838#include <genarch/drivers/am335x/uart.h>
     39#include <genarch/drivers/am335x/timer.h>
    3940#include <genarch/srln/srln.h>
    4041#include <interrupt.h>
     
    5657static struct beaglebone {
    5758        am335x_irc_regs_t *irc_addr;
     59        am335x_timer_t timer;
    5860        am335x_uart_t uart;
    5961} bbone;
     
    8183}
    8284
     85static irq_ownership_t bbone_timer_irq_claim(irq_t *irq)
     86{
     87        return IRQ_ACCEPT;
     88}
     89
     90static void bbone_timer_irq_handler(irq_t *irq)
     91{
     92        am335x_timer_intr_ack(&bbone.timer);
     93        spinlock_unlock(&irq->lock);
     94        clock();
     95        spinlock_lock(&irq->lock);
     96}
     97
    8398static void bbone_timer_irq_start(void)
    8499{
     100        /* Initialize the IRQ */
     101        static irq_t timer_irq;
     102        irq_initialize(&timer_irq);
     103        timer_irq.devno = device_assign_devno();
     104        timer_irq.inr = AM335x_DMTIMER0_IRQ;
     105        timer_irq.claim = bbone_timer_irq_claim;
     106        timer_irq.handler = bbone_timer_irq_handler;
     107        irq_register(&timer_irq);
     108
     109        /* Initialize the DMTIMER0 */
     110        am335x_timer_init(&bbone.timer, DMTIMER0, HZ);
     111        /* Enable the interrupt */
     112        am335x_irc_enable(bbone.irc_addr, AM335x_DMTIMER0_IRQ);
     113        /* Start the timer */
     114        am335x_timer_start(&bbone.timer);
    85115}
    86116
    87117static void bbone_cpu_halt(void)
    88118{
     119        while (1);
    89120}
    90121
Note: See TracChangeset for help on using the changeset viewer.