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

Koen Kooi koen at dominion.thruhere.net
Thu Apr 12 13:21:14 PDT 2012


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.

regards,

Koen


More information about the meta-ti mailing list