[<<][am335x][>>][..]
Mon May 21 08:22:20 EDT 2018

Beaglelogic PRU1 startup

Analysis of beaglelogic control flow.

- PRU1 goes into infinite loop.  How does it exit?

beaglelogic.c
beaglelogic_stop:
  beaglelogic_request_stop
  wait_event_interruptible  (->state == STATE_BL_INITIALIZED)


STATE_BL_INITIALIZED is set in:
- beaglelogic_serve_irq
- beaglelogic_probe

beaglelogic_request_stop = pruss_intc_trigger(bldev->to_bl_irq)

This is set up as: bldev->to_bl_irq = platform_get_irq_byname(pdev, "to_bl");
From DTS:
		interrupts = <22>, <23>, <24>;
		interrupt-names = "from_bl_1", "to_bl", "from_bl_2";

PRU0 checks R31 bit 31: PRU interrupt 1 from INTC.

What is INTC?  PRU interrupt controller.
http://processors.wiki.ti.com/index.php/PRU_Interrupt_Controller

How does PRU1 get stopped?  It is reset by PRU0
PCTRL_OTHER(0x0000) &= (uint16_t)~CONTROL_SOFT_RST_N;






[Reply][About]
[<<][am335x][>>][..]