summaryrefslogtreecommitdiffstats
path: root/sys/arm/at91/at91.c
diff options
context:
space:
mode:
authorcognet <cognet@FreeBSD.org>2006-05-13 23:41:16 +0000
committercognet <cognet@FreeBSD.org>2006-05-13 23:41:16 +0000
commit2e58b619628d5c8e5ecbe445140aade714d9c2f3 (patch)
treead2cd12970015c6c1b03b6f9f087319ea6f2e34f /sys/arm/at91/at91.c
parent456f2593a536e19a6666580ad6ede280d3e7459e (diff)
downloadFreeBSD-src-2e58b619628d5c8e5ecbe445140aade714d9c2f3.zip
FreeBSD-src-2e58b619628d5c8e5ecbe445140aade714d9c2f3.tar.gz
Resurrect Skyeye support :
Add a new option, SKYEYE_WORKAROUNDS, which as the name suggests adds workarounds for things skyeye doesn't simulate. Specifically : - Use USART0 instead of DBGU as the console, make it not use DMA, and manually provoke an interrupt when we're done in the transmit function. - Skyeye maintains an internal counter for clock, but apparently there's no way to access it, so hack the timecounter code to return a value which is increased at every clock interrupts. This is gross, but I didn't find a better way to implement timecounters without hacking Skyeye to get the counter value. - Force the write-back of PTEs once we're done writing them, even if they are supposed to be write-through. I don't know why I have to do that.
Diffstat (limited to 'sys/arm/at91/at91.c')
-rw-r--r--sys/arm/at91/at91.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/arm/at91/at91.c b/sys/arm/at91/at91.c
index 928faa9..8f9177b 100644
--- a/sys/arm/at91/at91.c
+++ b/sys/arm/at91/at91.c
@@ -314,6 +314,7 @@ struct cpu_devs at91rm9200_devs[] =
AT91RM92_BASE + AT91RM92_EMAC_BASE, AT91RM92_EMAC_SIZE,
AT91RM92_IRQ_EMAC
},
+#ifndef SKYEYE_WORKAROUNDS
{
"uart", 0,
AT91RM92_BASE + AT91RM92_DBGU_BASE, AT91RM92_DBGU_SIZE,
@@ -339,6 +340,13 @@ struct cpu_devs at91rm9200_devs[] =
AT91RM92_BASE + AT91RM92_USART3_BASE, AT91RM92_USART_SIZE,
AT91RM92_IRQ_USART3
},
+#else
+ {
+ "uart", 0,
+ AT91RM92_BASE + AT91RM92_USART0_BASE, AT91RM92_USART_SIZE,
+ AT91RM92_IRQ_USART0
+ },
+#endif
{
"at91_ssc", 0,
AT91RM92_BASE + AT91RM92_SSC0_BASE, AT91RM92_SSC_SIZE,
OpenPOWER on IntegriCloud