On Thursday, 29 October 2015 07:54:51 UTC+1, Stefan St wrote:
>
> Is it possible to boot the Black, load a PRU binary, start it, shutdown 
> the Main CPU again and keep a PRU Running?
>

The hardware can do this without any problem. Be sure to use a recent -ti 
kernel rather than a -bone kernel to ensure you have the latest power 
management features available. However, since it is not one of the standard 
power modes implemented in software, some patching or workarounds will be 
needed...

At face value, entering standby 
<http://processors.wiki.ti.com/index.php/AM335x_Power_Management_Standby_User's_Guide>
 
should in principle do almost what you're asking: it powers down the CPU 
while keeping the peripheral domain powered. One issue is that it normally 
puts all PLLs in bypass, which means PRUSS and the L3 interconnect would be 
clocked at 24 MHz instead of 200 MHz. Assuming that's not desirable, you'd 
either need to locate the code responsible and patch it, or have PRU 
reenable the PLL(s) you need after entry into standby is complete.

It's also quite possible that some code will try to be helpful by noticing 
PRUSS is being used and either block entry into suspend, or disable PRUSS 
prior to entering suspend. In that case you'll need to hunt that down and 
kill it. ;-)

Would this reduce energy consumption? Can sb. approximate by which factor?
>

It would obviously reduce energy consumption, but I have no idea how much. 
If you want to keep PRU at full performance you obviously won't save as 
much as standby mode normally would. Note btw that if you're okay with 
slower L3/L4 interconnects it's possible to use the display PLL instead of 
the core PLL as clock source for PRUSS, and allow the core PLL to go into 
bypass. Obviously the LCD controller would need to be disabled for this. 
(If you need the display when not in standby you could probably make a 
switchover, but that would be yet another complication.)

Is it possible to start the Main System agein and read the Results or Logs 
> from PRU work out of the memory again?
>

The "wakeup via gpio" method could be used, with PRU toggling the GPIO (or 
just manually setting the irq bit to make it look like it toggled). PRU may 
also be able to directly signal the cortex-M3 to wake up the system, though 
its firmware would need to be examined (or changed) for that.

The cortex-M3 then proceeds to power up the cortex-A8. Boot ROM notices the 
power up is due to resume rather cold power up and jumps to the resume 
address in on-chip SRAM, where linux has put the resume-from-suspend code.

BTW, now that you mention memory: the external DDR3 memory would normally 
be put into self-refresh mode when in standby, so if you need access to it 
that would be one more thing to prevent or undo.

Anyhow, the summary is: yes, it is absolutely possible, but tinkering will 
be required to get it to work.

References:

   - chapter 8 (PRCM) of the AM335x TRM, especially section 8.1.4.6
   - the cortex-M3 firmware 
   <http://arago-project.org/git/projects/?p=am33x-cm3.git;a=summary>
   - various bits of the linux source tree:
      - arch/arm/mach-omap2/pm33xx.c and sleep33xx.c
      - search for files named wkup_m3_*
   

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to