summaryrefslogtreecommitdiff
path: root/openpicc/os/boot/boot.s
diff options
context:
space:
mode:
authorhenryk <henryk@6dc7ffe9-61d6-0310-9af1-9938baff3ed1>2007-12-09 06:10:56 +0000
committerhenryk <henryk@6dc7ffe9-61d6-0310-9af1-9938baff3ed1>2007-12-09 06:10:56 +0000
commitceb643380b02d0d8289e3ad75a495123414ace8c (patch)
treecf37628d2b07d7cebc2a4f04d5f8ea2488eb9d57 /openpicc/os/boot/boot.s
parentbdc39aadd1a26d7709ff15722be90c016be2057a (diff)
Prevent late frames by spinning in SSC CP0 IRQ till end of short frame reception
Fix tc_cdiv_set_divider. again. Reverse the polarity! (of the ssc transmit clock) git-svn-id: https://svn.openpcd.org:2342/trunk@381 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
Diffstat (limited to 'openpicc/os/boot/boot.s')
-rw-r--r--openpicc/os/boot/boot.s10
1 files changed, 9 insertions, 1 deletions
diff --git a/openpicc/os/boot/boot.s b/openpicc/os/boot/boot.s
index e709b94..95bc130 100644
--- a/openpicc/os/boot/boot.s
+++ b/openpicc/os/boot/boot.s
@@ -52,6 +52,7 @@
.equ AT91C_TC_SWTRG, (1 << 2)
.equ AT91C_TC_CLKEN, (1 << 0)
.equ PIO_DATA, (1 << 27)
+.equ PIO_FRAME, (1 << 20)
.equ PIO_SSC_TF, (1 << 15)
.equ PIOA_SODR, 0x30
.equ PIOA_CODR, 0x34
@@ -222,7 +223,14 @@ my_fiq_handler:
movne r11, #PIO_DATA
strne r11, [r10, #PIOA_IDR] /* disable further PIO_DATA FIQ */
-
+ beq .no_pio_data
+/* .loop_high:
+ ldr r11, [r10, #PIOA_PDSR]
+ tst r11, #PIO_DATA
+ bne .loop_high
+ str r9, [r12, #TC_CCR] /* software trigger */
+
+.no_pio_data:
tst r8, #PIO_SSC_TF /* check for SSC Transmit Frame signal */
ldrne r11, [r10, #PIOA_PDSR]
tstne r11, #PIO_SSC_TF /* check for SSC_TF == 1 */
personal git repositories of Harald Welte. Your mileage may vary