Changes in / [d216142:b933ec2] in mainline


Ignore:
Files:
13 added
6 deleted
4 edited

Legend:

Unmodified
Added
Removed
  • HelenOS.config

    rd216142 rb933ec2  
    420420% Output device class
    421421@ "generic" Monitor or serial line
    422 ! [PLATFORM=arm32&(MACHINE=gta02|MACHINE=integratorcp|MACHINE=beagleboardxm)] CONFIG_HID_OUT (choice)
     422! [PLATFORM=arm32&(MACHINE=gta02|MACHINE=integratorcp|MACHINE=beagleboardxm|MACHINE=beaglebone)] CONFIG_HID_OUT (choice)
    423423
    424424% Output device class
     
    480480! [PLATFORM=arm32&MACHINE=gta02] CONFIG_S3C24XX_IRQC (y)
    481481
    482 % Support for TI AMDM37X on-chip UART
     482% Support for TI AM335x on-chip UART
     483! [(CONFIG_HID_OUT=generic|CONFIG_HID_OUT=serial)&PLATFORM=arm32&MACHINE=beaglebone] CONFIG_AM335X_UART (y/n)
     484
     485% Support for TI AM335x timers support
     486! [PLATFORM=arm32&MACHINE=beaglebone] CONFIG_AM335X_TIMERS (y)
     487
     488% Support for TI AMDM37x on-chip UART
    483489! [(CONFIG_HID_OUT=generic|CONFIG_HID_OUT=serial)&PLATFORM=arm32&MACHINE=beagleboardxm] CONFIG_AMDM37X_UART (y/n)
    484490
     
    502508
    503509% Serial line input module
    504 ! [CONFIG_DSRLNIN=y|(PLATFORM=arm32&MACHINE=gta02)|(PLATFORM=arm32&MACHINE=integratorcp&CONFIG_ARM926_UART=y)|(PLATFORM=arm32&MACHINE=beagleboardxm&CONFIG_AMDM37X_UART=y)|(PLATFORM=ia64&MACHINE=i460GX&CONFIG_NS16550=y)|(PLATFORM=ia64&MACHINE=ski)|(PLATFORM=sparc64&PROCESSOR=sun4v)] CONFIG_SRLN (y)
     510! [CONFIG_DSRLNIN=y|(PLATFORM=arm32&MACHINE=gta02)|(PLATFORM=arm32&MACHINE=integratorcp&CONFIG_ARM926_UART=y)|(PLATFORM=arm32&MACHINE=beaglebone&CONFIG_AM335X_UART=y)|(PLATFORM=arm32&MACHINE=beagleboardxm&CONFIG_AMDM37X_UART=y)|(PLATFORM=ia64&MACHINE=i460GX&CONFIG_NS16550=y)|(PLATFORM=ia64&MACHINE=ski)|(PLATFORM=sparc64&PROCESSOR=sun4v)] CONFIG_SRLN (y)
    505511
    506512% EGA support
  • kernel/arch/arm32/src/mach/beagleboardxm/beagleboardxm.c

    rd216142 rb933ec2  
    3535#include <arch/exception.h>
    3636#include <arch/mach/beagleboardxm/beagleboardxm.h>
    37 #include <genarch/drivers/amdm37x_irc/amdm37x_irc.h>
    38 #include <genarch/drivers/amdm37x_uart/amdm37x_uart.h>
    39 #include <genarch/drivers/amdm37x_gpt/amdm37x_gpt.h>
    40 #include <genarch/drivers/amdm37x_dispc/amdm37x_dispc.h>
     37#include <genarch/drivers/amdm37x/uart.h>
     38#include <genarch/drivers/amdm37x/irc.h>
     39#include <genarch/drivers/amdm37x/gpt.h>
     40#include <genarch/drivers/amdm37x/dispc.h>
    4141#include <genarch/fb/fb.h>
    4242#include <genarch/srln/srln.h>
  • kernel/arch/arm32/src/mach/beaglebone/beaglebone.c

    rd216142 rb933ec2  
    3535#include <arch/exception.h>
    3636#include <arch/mach/beaglebone/beaglebone.h>
    37 #include <genarch/drivers/am335x_irc/am335x_irc.h>
     37#include <genarch/drivers/am335x/irc.h>
     38#include <genarch/drivers/am335x/uart.h>
     39#include <genarch/drivers/am335x/timer.h>
     40#include <genarch/srln/srln.h>
    3841#include <interrupt.h>
    3942#include <ddi/ddi.h>
     
    5457static struct beaglebone {
    5558        am335x_irc_regs_t *irc_addr;
     59        am335x_timer_t timer;
     60        am335x_uart_t uart;
    5661} bbone;
    5762
    5863struct arm_machine_ops bbone_machine_ops = {
    59         bbone_init,
    60         bbone_timer_irq_start,
    61         bbone_cpu_halt,
    62         bbone_get_memory_extents,
    63         bbone_irq_exception,
    64         bbone_frame_init,
    65         bbone_output_init,
    66         bbone_input_init,
    67         bbone_get_irq_count,
    68         bbone_get_platform_name
     64        .machine_init = bbone_init,
     65        .machine_timer_irq_start = bbone_timer_irq_start,
     66        .machine_cpu_halt = bbone_cpu_halt,
     67        .machine_get_memory_extents = bbone_get_memory_extents,
     68        .machine_irq_exception = bbone_irq_exception,
     69        .machine_frame_init = bbone_frame_init,
     70        .machine_output_init = bbone_output_init,
     71        .machine_input_init = bbone_input_init,
     72        .machine_get_irq_count = bbone_get_irq_count,
     73        .machine_get_platform_name = bbone_get_platform_name,
    6974};
    7075
     
    7883}
    7984
     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
    8098static void bbone_timer_irq_start(void)
    8199{
     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);
    82115}
    83116
    84117static void bbone_cpu_halt(void)
    85118{
     119        while (1);
    86120}
    87121
     
    105139static void bbone_output_init(void)
    106140{
     141        const bool ok = am335x_uart_init(&bbone.uart,
     142            AM335x_UART0_IRQ, AM335x_UART0_BASE_ADDRESS,
     143            AM335x_UART0_SIZE);
     144
     145        if (ok)
     146                stdout_wire(&bbone.uart.outdev);
    107147}
    108148
    109149static void bbone_input_init(void)
    110150{
     151        srln_instance_t *srln_instance = srln_init();
     152        if (srln_instance) {
     153                indev_t *sink = stdin_wire();
     154                indev_t *srln = srln_wire(srln_instance, sink);
     155                am335x_uart_input_wire(&bbone.uart, srln);
     156                am335x_irc_enable(bbone.irc_addr, AM335x_UART0_IRQ);
     157        }
    111158}
    112159
    113160size_t bbone_get_irq_count(void)
    114161{
    115         return 0;
     162        return AM335x_IRC_IRQ_COUNT;
    116163}
    117164
  • kernel/genarch/Makefile.inc

    rd216142 rb933ec2  
    106106endif
    107107
     108ifeq ($(CONFIG_AM335X_UART),y)
     109        GENARCH_SOURCES += \
     110                genarch/src/drivers/am335x/uart.c
     111endif
     112
     113ifeq ($(CONFIG_AM335X_TIMERS),y)
     114        GENARCH_SOURCES += \
     115                genarch/src/drivers/am335x/timer.c
     116endif
     117
    108118ifeq ($(CONFIG_AMDM37X_UART),y)
    109119        GENARCH_SOURCES += \
    110                 genarch/src/drivers/amdm37x_uart/amdm37x_uart.c
     120                genarch/src/drivers/amdm37x/uart.c
    111121endif
    112122
Note: See TracChangeset for help on using the changeset viewer.