Port-arm archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: beaglebone: changing cpu frequency
On Aug 1, 2013, at 3:06, Matt Thomas <matt%3am-software.com@localhost> wrote:
> On Jul 31, 2013, at 11:54 PM, Radoslaw Kujawa
> <radoslaw.kujawa%c0ff33.net@localhost> wrote:
>
>>
>> On 1 Aug 2013, at 3:03 AM, Matt Thomas <matt%3am-software.com@localhost>
>> wrote:
>>
>>> I still need a good method to get the powersource from the tps65217pmic so
>>> I can limit the frequencies when power is limited.
>>
>>
>> The power source is checked in the driver, but it's only used to print the
>> current source during attachment. The value of this register is never
>> checked again later.
>>
>> I think we have at least two ways to do it:
...
>
> I think the system should automatically drop cpu speed to 550MHz to be safe.
> Then let powerd figure out if it should be increased.
>
> Maybe add a PMFE_POWER_CHANGED event and I can use pmf_event_register to
> monitor
> for it when your driver does a pmf_event_inject with it.
Note, however, that for the BB Black, the SRM has a power consumption test with
the CPU
running at 1000 MHz with the HDMI active, the USB port driving a hub and with
the other
USB port and the SD card slot in use, which found the maximum current draw to be
485 mA. The BB Black doesn't necessarily need the CPU frequency dropped when
running
on USB peripheral power, only the BB does, but I'm not sure how one would tell
them apart
in software.
On the other hand, it is also possible to have a big enough peripheral taking
power from
the USB host port (assuming there's a driver for it some day) or the expansion
connectors
that there is no way to run at all on the power available from the USB port.
There doesn't
seem to be a way for software to know this either. In the end I think the only
way to manage
this is to start as conservatively as possible in all cases and then let the
user configure what
is appropriate for the particular board and configuration.
There is also the fact that not all use cases are the same. I am thinking of
implementing
a couple of boot options to allow the CPU frequency to be set to a user
specified value
very early in the boot process and to disallow any subsequent changes to the
value. The
reason I want this is that I want to use the CPU cycle counter as a system
clock source,
but only if there is no possible way for its frequency to change once the clock
is configured,
so I'd like the one boot option to set the frequency appropriately and the
other to indicate
that configuring a time counter based on the cycle counter won't end up causing
misery.
This is a good way to use this particular board since the SoC also includes
hardware
timestamp capture peripherals which can maybe capture the PPS timing output of a
GPS receiver with +/- 5 ns precision, plus IEEE 1588 hardware support to use to
calibrate
the Ethernet, and that plus the precise system clock source is the raw material
needed to
build the very most accurate NTP server that $80 can buy.
It wouldn't be good to do too much frequency fiddling automatically since that
would screw
applications which need the frequency to be a constant.
Dennis Ferguson
Home |
Main Index |
Thread Index |
Old Index