Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/sys/arch



On 10/17/15 8:30 AM, Manuel Bouyer wrote:
Module Name:	src
Committed By:	bouyer
Date:		Sat Oct 17 15:30:14 UTC 2015

Modified Files:
	src/sys/arch/arm/allwinner: awin_board.c awin_reg.h awin_var.h
	src/sys/arch/evbarm/awin: awin_machdep.c
	src/sys/arch/evbarm/conf: BPI CUBIEBOARD

Log Message:
Implement CPU frequency switching for A20.
This requires adjusting the CPU voltage, so enable the axp20x driver for
A20 boards.
In evbarm/awin/awin_machdep.c, the DCDC powering up the CPU cores needs to
be defined for each board. The board machine-dependant code (at this time,
only awin_machdep.c) has to provide a awin_set_mpu_volt() function
which calls the right PMU driver to change the CPU core voltage.

The CPU frequency/voltage table in awin_board.c comes from various
sources: linux kernel, device tree and fex scripts, and experiments on
olimex lime2 and cubieboard 2.
The following sysctls are provided (compatible with estd):
machdep.frequency.min,machdep.frequency.max: writable lower and upper
    bounds of the useable frequencies. Affects machdep.frequency.available.
    Lower bound defaults to 700Mhz, as does linux.
    Upper bound defaults to 960Mhz, which is the boot frequency
    on the boards I tested. There is a 1008Mhz entry available,
    but requires an out of spec CPU voltage (more than 1.4V) so it's
    not available by default.
machdep.frequency.available: list of available frequencies. This is
    the CPU frequency/voltage table, bound by machdep.frequency.{min,max}.
machdep.frequency.current: current CPU speed. Write a new value to change
   the CPU speed, only values from machdep.frequency.available are
   accepted.




You broke kernel compiles for some of the other allwinner kernels with this commit; ALLWINNER_A80, for example:

awin_machdep.o: In function `awin_set_mpu_volt':
awin_machdep.c:(.text+0x870): undefined reference to `axp20x_set_dcdc'

It's not clear to me whether the A80 has the axp20x device, but not having it in the kernel config has meant no arm builds for a few days...

Can you fix this, please?

Thanks,
+j




Home | Main Index | Thread Index | Old Index