The cpufreq subsystem is a Linux kernel subsystem responsible for managing the CPU frequency. It's commonly used in laptops to reduce power usage when idle.
On the S3C2410, adjusting the CPU frequency changes the clocks for almost all devices on the chip. This means that, to write a cpufreq driver for the S3C2410, you have to also adjust some values on almost all devices.
This project aims to implement the cpufreq driver (which manages the CPU frequency transitions) and a cpufreq notifier for all the affected drivers (to do two things: quiesce the device before the change, and adjust the frequency after the change).
The most recent version of the code can be found at http://repo.or.cz/w/linux-2.6/s3c2410-cpufreq.git on the branches s3c2410-cpufreq (for code which applies on top of the upstream "git HEAD" kernel) and s3c2410-cpufreq-gta01 (for code which applies on top of the OpenMoko patched kernel).
|NOTE: Do not run on real hardware, unless you really know what you are doing.|
You need a fully built OpenMoko tree for the cross-compiler and uboot tools.
- Checkout the s3c2410-cpufreq-gta01 branch
- Copy the defconfig file from branches/src/target/kernel/2.6.24.x/config on the OpenMoko svn as the
- Set the PATH to the correct value (check the run.* temporary files bitbake generates to find out the correct value)
make ARCH=arm CROSS_COMPILE=arm-angstrom-linux-gnueabi- oldconfigand answer correctly the questions
make ARCH=arm CROSS_COMPILE=arm-angstrom-linux-gnueabi- uImage
- The last line of the output tells you the correct file which should be flashed on the emulator.