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

Denys Dmytriyenko denis at denix.org
Thu Apr 12 13:09:41 PDT 2012


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? 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?

-- 
Denys



More information about the meta-ti mailing list