[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