Changes in / [d216142:b933ec2] in mainline
- Files:
-
- 13 added
- 6 deleted
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
HelenOS.config
rd216142 rb933ec2 420 420 % Output device class 421 421 @ "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) 423 423 424 424 % Output device class … … 480 480 ! [PLATFORM=arm32&MACHINE=gta02] CONFIG_S3C24XX_IRQC (y) 481 481 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 483 489 ! [(CONFIG_HID_OUT=generic|CONFIG_HID_OUT=serial)&PLATFORM=arm32&MACHINE=beagleboardxm] CONFIG_AMDM37X_UART (y/n) 484 490 … … 502 508 503 509 % Serial line input module 504 ! [CONFIG_DSRLNIN=y|(PLATFORM=arm32&MACHINE=gta02)|(PLATFORM=arm32&MACHINE=integratorcp&CONFIG_ARM926_UART=y)|(PLATFORM=arm32&MACHINE=beaglebo ardxm&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) 505 511 506 512 % EGA support -
kernel/arch/arm32/src/mach/beagleboardxm/beagleboardxm.c
rd216142 rb933ec2 35 35 #include <arch/exception.h> 36 36 #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> 41 41 #include <genarch/fb/fb.h> 42 42 #include <genarch/srln/srln.h> -
kernel/arch/arm32/src/mach/beaglebone/beaglebone.c
rd216142 rb933ec2 35 35 #include <arch/exception.h> 36 36 #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> 38 41 #include <interrupt.h> 39 42 #include <ddi/ddi.h> … … 54 57 static struct beaglebone { 55 58 am335x_irc_regs_t *irc_addr; 59 am335x_timer_t timer; 60 am335x_uart_t uart; 56 61 } bbone; 57 62 58 63 struct 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_name64 .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, 69 74 }; 70 75 … … 78 83 } 79 84 85 static irq_ownership_t bbone_timer_irq_claim(irq_t *irq) 86 { 87 return IRQ_ACCEPT; 88 } 89 90 static 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 80 98 static void bbone_timer_irq_start(void) 81 99 { 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); 82 115 } 83 116 84 117 static void bbone_cpu_halt(void) 85 118 { 119 while (1); 86 120 } 87 121 … … 105 139 static void bbone_output_init(void) 106 140 { 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); 107 147 } 108 148 109 149 static void bbone_input_init(void) 110 150 { 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 } 111 158 } 112 159 113 160 size_t bbone_get_irq_count(void) 114 161 { 115 return 0;162 return AM335x_IRC_IRQ_COUNT; 116 163 } 117 164 -
kernel/genarch/Makefile.inc
rd216142 rb933ec2 106 106 endif 107 107 108 ifeq ($(CONFIG_AM335X_UART),y) 109 GENARCH_SOURCES += \ 110 genarch/src/drivers/am335x/uart.c 111 endif 112 113 ifeq ($(CONFIG_AM335X_TIMERS),y) 114 GENARCH_SOURCES += \ 115 genarch/src/drivers/am335x/timer.c 116 endif 117 108 118 ifeq ($(CONFIG_AMDM37X_UART),y) 109 119 GENARCH_SOURCES += \ 110 genarch/src/drivers/amdm37x _uart/amdm37x_uart.c120 genarch/src/drivers/amdm37x/uart.c 111 121 endif 112 122
Note:
See TracChangeset
for help on using the changeset viewer.