[meta-ti] [PATCH] am33x-cm3: add firmware for am33x suspend/resume

Koen Kooi koen at beagleboard.org
Tue Apr 17 00:49:07 PDT 2012


Op 12 apr. 2012, om 22:21 heeft Koen Kooi het volgende geschreven:

> 
> Op 12 apr. 2012, om 22:09 heeft Denys Dmytriyenko het volgende geschreven:
> 
>> Koen,
>> 
>> I'm commenting on both of your patches together...
>> 
>> am33x-cm3:
>>> +++ b/recipes-bsp/ti/am33x-cm3_git.bb
>>> 
>>> +do_install() {
>>> +	install -d ${D}${base_libdir}/firmware
>>> +	install -m 0644 bin/am335x-pm-firmware.bin ${D}${base_libdir}/firmware/
>>> +}
>> 
>> 
>> linux-ti33x-psp:
>>> This fixes most PM operations: cpufreq, cpuidle and suspend. Resume does not 
>>> work on beaglebone, but 3 out of 4 ain't bad :)
>>> 
>>> The M3 firmware needed for suspend/resume is used as a binary, building it 
>>> from source and including it from sysroots is planned for future commits.
>>> 
>>> +++ b/recipes-kernel/linux/linux-ti33x-psp_3.2.bb
>>> 
>>> +do_compile_prepend() {
>>> +       cp ${WORKDIR}/am335x-pm-firmware.bin ${S}/firmware/
>>> +}
>> 
>> 
>> Have you looked at how it's done in Arago/AM-SDK?
> 
> No, I only looked at meta-ti :)
> 
>> The firmware is staged in 
>> the sysroots and gets picked up by the kernel:
>> 
>> do_install() {
>>   install -d ${STAGING_FIRMWARE_DIR}/am33x-cm3
>>   install ${S}/bin/am335x-pm-firmware.bin {STAGING_FIRMWARE_DIR}/am33x-cm3/
>> }
>> 
>> Where the kernel then copies it to ${S}/firmware:
>> 
>> # Copy the am33x-cm3 firmware if it is available
>> do_compile_prepend() {
>>   if [ -e "${STAGING_FIRMWARE_DIR}/am33x-cm3/am335x-pm-firmware.bin" ]
>>   then
>>       cp "${STAGING_FIRMWARE_DIR}/am33x-cm3/am335x-pm-firmware.bin" ${S}/firmware"
>>   fi
>> }
>> 
>> It's not the most elegant solution either, but at least it gets around the 
>> need to keep the binary version of the firmware in the repository with the 
>> kernel recipe...
>> 
>> Do you want me to make similar changes to your patches? Or do you have any 
>> arguments against this approach?
> 
> Yes, you're not allowed to touch sysroots from inside do_install since that will break sstate, which is why I added regular recipes first to get it working and fix it properly later.
> 
> It's a bit academic at this point, since you need to get lucky in the silicon bingo to have suspend/resume working on am335x anyway. I can disable CONFIG_SUSPEND and remove the copying bits if you want.

ping


More information about the meta-ti mailing list