[meta-ti,dunfell,v2] ti-graphics: gpu enable and move all platforms to ddk 1.15

Message ID 20220323193707.28162-1-detheridge@ti.com
State Accepted
Delegated to: Ryan Eatmon
Headers show
Series [meta-ti,dunfell,v2] ti-graphics: gpu enable and move all platforms to ddk 1.15 | expand

Commit Message

Etheridge, Darren March 23, 2022, 7:37 p.m. UTC
Enable the GPU for am62xx and j721s2 and use IMG DDK 1.15

Migrate Imagination DDK 1.13 to DDK 1.15 for J721e

Signed-off-by: Darren Etheridge <detheridge@ti.com>
---

No changes in the content of the patch, however I regenerated it with the 
similarity threshold reduced as requested by Denys.

 conf/machine/am62xx-evm.conf                  |  2 ++
 conf/machine/j721s2-evm.conf                  |  2 ++
 ...bb => ti-img-rogue-driver_1.15.6133109.bb} | 20 +++++++++++--------
 ...bb => ti-img-rogue-umlibs_1.15.6133109.bb} | 13 ++++++------
 4 files changed, 23 insertions(+), 14 deletions(-)
 rename recipes-bsp/powervr-drivers/{ti-img-rogue-driver_1.13.5776728.bb => ti-img-rogue-driver_1.15.6133109.bb} (48%)
 rename recipes-graphics/libgles/{ti-img-rogue-umlibs_1.13.5776728.bb => ti-img-rogue-umlibs_1.15.6133109.bb} (84%)

Comments

Denys Dmytriyenko March 25, 2022, 8:10 p.m. UTC | #1
On Wed, Mar 23, 2022 at 02:37:07PM -0500, Darren Etheridge wrote:
> Enable the GPU for am62xx and j721s2 and use IMG DDK 1.15
> 
> Migrate Imagination DDK 1.13 to DDK 1.15 for J721e

Overall looks good, please see inline below.


> Signed-off-by: Darren Etheridge <detheridge@ti.com>
> ---
> 
> No changes in the content of the patch, however I regenerated it with the 
> similarity threshold reduced as requested by Denys.
> 
>  conf/machine/am62xx-evm.conf                  |  2 ++
>  conf/machine/j721s2-evm.conf                  |  2 ++
>  ...bb => ti-img-rogue-driver_1.15.6133109.bb} | 20 +++++++++++--------
>  ...bb => ti-img-rogue-umlibs_1.15.6133109.bb} | 13 ++++++------
>  4 files changed, 23 insertions(+), 14 deletions(-)
>  rename recipes-bsp/powervr-drivers/{ti-img-rogue-driver_1.13.5776728.bb => ti-img-rogue-driver_1.15.6133109.bb} (48%)
>  rename recipes-graphics/libgles/{ti-img-rogue-umlibs_1.13.5776728.bb => ti-img-rogue-umlibs_1.15.6133109.bb} (84%)
> 
> diff --git a/conf/machine/am62xx-evm.conf b/conf/machine/am62xx-evm.conf
> index 600abb58..086e40e4 100644
> --- a/conf/machine/am62xx-evm.conf
> +++ b/conf/machine/am62xx-evm.conf
> @@ -4,6 +4,8 @@
>  
>  require conf/machine/include/am62xx.inc
>  
> +MACHINE_FEATURES += "gpu"
> +
>  KERNEL_DEVICETREE = " \
>      ti/k3-am625-sk.dtb \
>      ti/k3-am625-sk-lpmdemo.dtb \
> diff --git a/conf/machine/j721s2-evm.conf b/conf/machine/j721s2-evm.conf
> index 82fd33da..e5ed0b73 100644
> --- a/conf/machine/j721s2-evm.conf
> +++ b/conf/machine/j721s2-evm.conf
> @@ -4,6 +4,8 @@
>  
>  require conf/machine/include/j7.inc
>  
> +MACHINE_FEATURES += "gpu"
> +
>  SERIAL_CONSOLES = "115200;ttyS10"
>  SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
>  TFA_K3_USART = "0x8"
> diff --git a/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.13.5776728.bb b/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb
> similarity index 48%
> rename from recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.13.5776728.bb
> rename to recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb
> index a05de0f2..fbff6c51 100644
> --- a/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.13.5776728.bb
> +++ b/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb
> @@ -7,17 +7,17 @@ inherit module features_check
>  
>  REQUIRED_MACHINE_FEATURES = "gpu"
>  
> -MACHINE_KERNEL_PR_append = "b"
> +MACHINE_KERNEL_PR_append = "a"
>  PR = "${MACHINE_KERNEL_PR}"
>  
>  PACKAGE_ARCH = "${MACHINE_ARCH}"
> -COMPATIBLE_MACHINE = "j7"
> +COMPATIBLE_MACHINE = "j7-evm|j721s2-evm|am62xx"
>  
>  DEPENDS = "virtual/kernel"
>  
>  PROVIDES = "virtual/gpudriver"
>  
> -BRANCH = "1.13-5776728/linux-k5.10"
> +BRANCH = "linuxws/dunfell/k5.10/${PV}"
>  
>  SRC_URI = " \
>      git://git.ti.com/graphics/ti-img-rogue-driver.git;branch=${BRANCH} \
> @@ -26,15 +26,19 @@ SRC_URI = " \
>  
>  S = "${WORKDIR}/git"
>  
> -SRCREV = "35a25875ae8738f82c7cabc6b077ef992b0cca84"
> +SRCREV = "ee0674adccac16f5b2f7cb8d5d05948706080cb5"
>  
> -PVR_SOC = "j721e_linux"

I was actually thinking of keeping PVR_SOC variable and moving it to 
corresponding machine configs.


> -PVR_BVNC = "22.104.208.318"
> +TARGET_PRODUCT_j7-evm = "j721e_linux"
> +TARGET_PRODUCT_j721s2-evm = "j721s2_linux"
> +TARGET_PRODUCT_am62xx = "am62_linux"

E.g. instead of these 3 overrides in the recipe, those 3 machines will be 
setting their respective PVR_SOC variables, which is more descriptive than 
TARGET_PRODUCT.

Similar to how machine configs already set KERNEL_DEVICETREE, UBOOT_MACHINE, 
TFA_PLATFORM or OPTEEMACHINE.

I know SGX been using TARGET_PRODUCT historically, but outside of the recipe 
it won't make much sense.

But it may be too disruptive for Dunfell at this point. I can do such change 
in master when porting this patch over on top of Andrew's changes.


> +TARGET_BVNC_j7-evm = "22.104.208.318"
> +TARGET_BVNC_j721s2-evm = "36.53.104.796"
> +TARGET_BVNC_am62xx = "33.15.11.3"
>  PVR_BUILD = "release"
>  PVR_WS = "wayland"
>  
> -EXTRA_OEMAKE += 'KERNELDIR="${STAGING_KERNEL_DIR}" RGX_BVNC=${PVR_BVNC} BUILD=${PVR_BUILD} PVR_BUILD_DIR=${PVR_SOC} WINDOW_SYSTEM=${PVR_WS}'
> +EXTRA_OEMAKE += 'KERNELDIR="${STAGING_KERNEL_DIR}" RGX_BVNC=${TARGET_BVNC} BUILD=${PVR_BUILD} PVR_BUILD_DIR=${TARGET_PRODUCT} WINDOW_SYSTEM=${PVR_WS}'
>  
>  do_install() {
> -    make -C ${STAGING_KERNEL_DIR} M=${B}/binary_${PVR_SOC}_${PVR_WS}_${PVR_BUILD}/target_aarch64/kbuild INSTALL_MOD_PATH=${D}${root_prefix} PREFIX=${STAGING_DIR_HOST} modules_install
> +    make -C ${STAGING_KERNEL_DIR} M=${B}/binary_${TARGET_PRODUCT}_${PVR_WS}_${PVR_BUILD}/target_aarch64/kbuild INSTALL_MOD_PATH=${D}${root_prefix} PREFIX=${STAGING_DIR_HOST} modules_install
>  }
> diff --git a/recipes-graphics/libgles/ti-img-rogue-umlibs_1.13.5776728.bb b/recipes-graphics/libgles/ti-img-rogue-umlibs_1.15.6133109.bb
> similarity index 84%
> rename from recipes-graphics/libgles/ti-img-rogue-umlibs_1.13.5776728.bb
> rename to recipes-graphics/libgles/ti-img-rogue-umlibs_1.15.6133109.bb
> index 5194015e..e00dce99 100644
> --- a/recipes-graphics/libgles/ti-img-rogue-umlibs_1.13.5776728.bb
> +++ b/recipes-graphics/libgles/ti-img-rogue-umlibs_1.15.6133109.bb
> @@ -8,17 +8,18 @@ inherit features_check
>  REQUIRED_MACHINE_FEATURES = "gpu"
>  
>  PACKAGE_ARCH = "${MACHINE_ARCH}"
> -COMPATIBLE_MACHINE = "j7"
> +COMPATIBLE_MACHINE = "j7-evm|j721s2-evm|am62xx"
>  
> -PR = "r3"
> +PR = "r1"
>  
>  BRANCH = "linuxws/dunfell/k5.10/${PV}"
>  
>  SRC_URI = "git://git.ti.com/graphics/ti-img-rogue-umlibs.git;branch=${BRANCH}"
> +SRCREV = "47c3ffc44f2881397d45c8a2b5dfa7d6c58b79fb"
>  
> -SRCREV = "5ef38353c38d921a65ea6df75c7b6ce710b66034"
> -
> -PVR_SOC ?= "j721e_linux"
> +TARGET_PRODUCT_j7-evm = "j721e_linux"
> +TARGET_PRODUCT_j721s2-evm = "j721s2_linux"
> +TARGET_PRODUCT_am62xx = "am62_linux"

Same here.


>  PVR_BUILD ?= "release"
>  PVR_WS = "wayland"
>  
> @@ -50,7 +51,7 @@ RRECOMMENDS_${PN} += "ti-img-rogue-driver"
>  S = "${WORKDIR}/git"
>  
>  do_install () {
> -    oe_runmake install DESTDIR=${D} TARGET_PRODUCT=${PVR_SOC} BUILD=${PVR_BUILD} WINDOW_SYSTEM=${PVR_WS}
> +    oe_runmake install DESTDIR=${D} TARGET_PRODUCT=${TARGET_PRODUCT} BUILD=${PVR_BUILD} WINDOW_SYSTEM=${PVR_WS}
>      chown -R root:root ${D}
>  }
>  
> -- 
> 2.17.1
>
Andrew Davis March 25, 2022, 9:21 p.m. UTC | #2
On 3/25/22 3:10 PM, Denys Dmytriyenko wrote:
> On Wed, Mar 23, 2022 at 02:37:07PM -0500, Darren Etheridge wrote:
>> Enable the GPU for am62xx and j721s2 and use IMG DDK 1.15
>>
>> Migrate Imagination DDK 1.13 to DDK 1.15 for J721e
> 
> Overall looks good, please see inline below.
> 
> 
>> Signed-off-by: Darren Etheridge <detheridge@ti.com>
>> ---
>>
>> No changes in the content of the patch, however I regenerated it with the
>> similarity threshold reduced as requested by Denys.
>>
>>   conf/machine/am62xx-evm.conf                  |  2 ++
>>   conf/machine/j721s2-evm.conf                  |  2 ++
>>   ...bb => ti-img-rogue-driver_1.15.6133109.bb} | 20 +++++++++++--------
>>   ...bb => ti-img-rogue-umlibs_1.15.6133109.bb} | 13 ++++++------
>>   4 files changed, 23 insertions(+), 14 deletions(-)
>>   rename recipes-bsp/powervr-drivers/{ti-img-rogue-driver_1.13.5776728.bb => ti-img-rogue-driver_1.15.6133109.bb} (48%)
>>   rename recipes-graphics/libgles/{ti-img-rogue-umlibs_1.13.5776728.bb => ti-img-rogue-umlibs_1.15.6133109.bb} (84%)
>>
>> diff --git a/conf/machine/am62xx-evm.conf b/conf/machine/am62xx-evm.conf
>> index 600abb58..086e40e4 100644
>> --- a/conf/machine/am62xx-evm.conf
>> +++ b/conf/machine/am62xx-evm.conf
>> @@ -4,6 +4,8 @@
>>   
>>   require conf/machine/include/am62xx.inc
>>   
>> +MACHINE_FEATURES += "gpu"
>> +
>>   KERNEL_DEVICETREE = " \
>>       ti/k3-am625-sk.dtb \
>>       ti/k3-am625-sk-lpmdemo.dtb \
>> diff --git a/conf/machine/j721s2-evm.conf b/conf/machine/j721s2-evm.conf
>> index 82fd33da..e5ed0b73 100644
>> --- a/conf/machine/j721s2-evm.conf
>> +++ b/conf/machine/j721s2-evm.conf
>> @@ -4,6 +4,8 @@
>>   
>>   require conf/machine/include/j7.inc
>>   
>> +MACHINE_FEATURES += "gpu"
>> +
>>   SERIAL_CONSOLES = "115200;ttyS10"
>>   SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
>>   TFA_K3_USART = "0x8"
>> diff --git a/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.13.5776728.bb b/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb
>> similarity index 48%
>> rename from recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.13.5776728.bb
>> rename to recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb
>> index a05de0f2..fbff6c51 100644
>> --- a/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.13.5776728.bb
>> +++ b/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb
>> @@ -7,17 +7,17 @@ inherit module features_check
>>   
>>   REQUIRED_MACHINE_FEATURES = "gpu"
>>   
>> -MACHINE_KERNEL_PR_append = "b"
>> +MACHINE_KERNEL_PR_append = "a"
>>   PR = "${MACHINE_KERNEL_PR}"
>>   
>>   PACKAGE_ARCH = "${MACHINE_ARCH}"
>> -COMPATIBLE_MACHINE = "j7"
>> +COMPATIBLE_MACHINE = "j7-evm|j721s2-evm|am62xx"
>>   
>>   DEPENDS = "virtual/kernel"
>>   
>>   PROVIDES = "virtual/gpudriver"
>>   
>> -BRANCH = "1.13-5776728/linux-k5.10"
>> +BRANCH = "linuxws/dunfell/k5.10/${PV}"
>>   
>>   SRC_URI = " \
>>       git://git.ti.com/graphics/ti-img-rogue-driver.git;branch=${BRANCH} \
>> @@ -26,15 +26,19 @@ SRC_URI = " \
>>   
>>   S = "${WORKDIR}/git"
>>   
>> -SRCREV = "35a25875ae8738f82c7cabc6b077ef992b0cca84"
>> +SRCREV = "ee0674adccac16f5b2f7cb8d5d05948706080cb5"
>>   
>> -PVR_SOC = "j721e_linux"
> 
> I was actually thinking of keeping PVR_SOC variable and moving it to
> corresponding machine configs.
> 


PVR_SOC is a bit of a legacy name, especially since PVR is now IMG.

Thinking on this, the mapping between SoC family and the internal names
like "RGX_BVNC" and "TARGET_PRODUCT" are specific to the version of this
driver. For instance in the next DDK I may want the target name to
go from "am62_linux" to "axb_128_linux", I would have to
change things here (update the SRCREV) AND in the machine config.

Mapping here feels like the right spot to me. I'd even argue the same
for OPTEEMACHINE and the like, should go in the optee.bbappends with the
rest of our platform specific recipe fixups, etc.


> 
>> -PVR_BVNC = "22.104.208.318"
>> +TARGET_PRODUCT_j7-evm = "j721e_linux"
>> +TARGET_PRODUCT_j721s2-evm = "j721s2_linux"


The driver depends on the SoC, not the EVM. s/j721s2-evm/j721s2
I know you cant do that in dunfell but if my other series gets into
main it should be fixed there, where we have a SOC_FAMILY for these
SoCs.

Andrew


>> +TARGET_PRODUCT_am62xx = "am62_linux"
> 
> E.g. instead of these 3 overrides in the recipe, those 3 machines will be
> setting their respective PVR_SOC variables, which is more descriptive than
> TARGET_PRODUCT.
> 
> Similar to how machine configs already set KERNEL_DEVICETREE, UBOOT_MACHINE,
> TFA_PLATFORM or OPTEEMACHINE.
> 
> I know SGX been using TARGET_PRODUCT historically, but outside of the recipe
> it won't make much sense.
> 
> But it may be too disruptive for Dunfell at this point. I can do such change
> in master when porting this patch over on top of Andrew's changes.
> 
> 
>> +TARGET_BVNC_j7-evm = "22.104.208.318"
>> +TARGET_BVNC_j721s2-evm = "36.53.104.796"
>> +TARGET_BVNC_am62xx = "33.15.11.3"
>>   PVR_BUILD = "release"
>>   PVR_WS = "wayland"
>>   
>> -EXTRA_OEMAKE += 'KERNELDIR="${STAGING_KERNEL_DIR}" RGX_BVNC=${PVR_BVNC} BUILD=${PVR_BUILD} PVR_BUILD_DIR=${PVR_SOC} WINDOW_SYSTEM=${PVR_WS}'
>> +EXTRA_OEMAKE += 'KERNELDIR="${STAGING_KERNEL_DIR}" RGX_BVNC=${TARGET_BVNC} BUILD=${PVR_BUILD} PVR_BUILD_DIR=${TARGET_PRODUCT} WINDOW_SYSTEM=${PVR_WS}'
>>   
>>   do_install() {
>> -    make -C ${STAGING_KERNEL_DIR} M=${B}/binary_${PVR_SOC}_${PVR_WS}_${PVR_BUILD}/target_aarch64/kbuild INSTALL_MOD_PATH=${D}${root_prefix} PREFIX=${STAGING_DIR_HOST} modules_install
>> +    make -C ${STAGING_KERNEL_DIR} M=${B}/binary_${TARGET_PRODUCT}_${PVR_WS}_${PVR_BUILD}/target_aarch64/kbuild INSTALL_MOD_PATH=${D}${root_prefix} PREFIX=${STAGING_DIR_HOST} modules_install
>>   }
>> diff --git a/recipes-graphics/libgles/ti-img-rogue-umlibs_1.13.5776728.bb b/recipes-graphics/libgles/ti-img-rogue-umlibs_1.15.6133109.bb
>> similarity index 84%
>> rename from recipes-graphics/libgles/ti-img-rogue-umlibs_1.13.5776728.bb
>> rename to recipes-graphics/libgles/ti-img-rogue-umlibs_1.15.6133109.bb
>> index 5194015e..e00dce99 100644
>> --- a/recipes-graphics/libgles/ti-img-rogue-umlibs_1.13.5776728.bb
>> +++ b/recipes-graphics/libgles/ti-img-rogue-umlibs_1.15.6133109.bb
>> @@ -8,17 +8,18 @@ inherit features_check
>>   REQUIRED_MACHINE_FEATURES = "gpu"
>>   
>>   PACKAGE_ARCH = "${MACHINE_ARCH}"
>> -COMPATIBLE_MACHINE = "j7"
>> +COMPATIBLE_MACHINE = "j7-evm|j721s2-evm|am62xx"
>>   
>> -PR = "r3"
>> +PR = "r1"
>>   
>>   BRANCH = "linuxws/dunfell/k5.10/${PV}"
>>   
>>   SRC_URI = "git://git.ti.com/graphics/ti-img-rogue-umlibs.git;branch=${BRANCH}"
>> +SRCREV = "47c3ffc44f2881397d45c8a2b5dfa7d6c58b79fb"
>>   
>> -SRCREV = "5ef38353c38d921a65ea6df75c7b6ce710b66034"
>> -
>> -PVR_SOC ?= "j721e_linux"
>> +TARGET_PRODUCT_j7-evm = "j721e_linux"
>> +TARGET_PRODUCT_j721s2-evm = "j721s2_linux"
>> +TARGET_PRODUCT_am62xx = "am62_linux"
> 
> Same here.
> 
> 
>>   PVR_BUILD ?= "release"
>>   PVR_WS = "wayland"
>>   
>> @@ -50,7 +51,7 @@ RRECOMMENDS_${PN} += "ti-img-rogue-driver"
>>   S = "${WORKDIR}/git"
>>   
>>   do_install () {
>> -    oe_runmake install DESTDIR=${D} TARGET_PRODUCT=${PVR_SOC} BUILD=${PVR_BUILD} WINDOW_SYSTEM=${PVR_WS}
>> +    oe_runmake install DESTDIR=${D} TARGET_PRODUCT=${TARGET_PRODUCT} BUILD=${PVR_BUILD} WINDOW_SYSTEM=${PVR_WS}
>>       chown -R root:root ${D}
>>   }
>>   
>> -- 
>> 2.17.1
>>
Denys Dmytriyenko March 25, 2022, 9:38 p.m. UTC | #3
On Fri, Mar 25, 2022 at 04:21:38PM -0500, Andrew Davis wrote:
> On 3/25/22 3:10 PM, Denys Dmytriyenko wrote:
> >On Wed, Mar 23, 2022 at 02:37:07PM -0500, Darren Etheridge wrote:
> >>Enable the GPU for am62xx and j721s2 and use IMG DDK 1.15
> >>
> >>Migrate Imagination DDK 1.13 to DDK 1.15 for J721e
> >
> >Overall looks good, please see inline below.
> >
> >
> >>Signed-off-by: Darren Etheridge <detheridge@ti.com>
> >>---
> >>
> >>No changes in the content of the patch, however I regenerated it with the
> >>similarity threshold reduced as requested by Denys.
> >>
> >>  conf/machine/am62xx-evm.conf                  |  2 ++
> >>  conf/machine/j721s2-evm.conf                  |  2 ++
> >>  ...bb => ti-img-rogue-driver_1.15.6133109.bb} | 20 +++++++++++--------
> >>  ...bb => ti-img-rogue-umlibs_1.15.6133109.bb} | 13 ++++++------
> >>  4 files changed, 23 insertions(+), 14 deletions(-)
> >>  rename recipes-bsp/powervr-drivers/{ti-img-rogue-driver_1.13.5776728.bb => ti-img-rogue-driver_1.15.6133109.bb} (48%)
> >>  rename recipes-graphics/libgles/{ti-img-rogue-umlibs_1.13.5776728.bb => ti-img-rogue-umlibs_1.15.6133109.bb} (84%)
> >>
> >>diff --git a/conf/machine/am62xx-evm.conf b/conf/machine/am62xx-evm.conf
> >>index 600abb58..086e40e4 100644
> >>--- a/conf/machine/am62xx-evm.conf
> >>+++ b/conf/machine/am62xx-evm.conf
> >>@@ -4,6 +4,8 @@
> >>  require conf/machine/include/am62xx.inc
> >>+MACHINE_FEATURES += "gpu"
> >>+
> >>  KERNEL_DEVICETREE = " \
> >>      ti/k3-am625-sk.dtb \
> >>      ti/k3-am625-sk-lpmdemo.dtb \
> >>diff --git a/conf/machine/j721s2-evm.conf b/conf/machine/j721s2-evm.conf
> >>index 82fd33da..e5ed0b73 100644
> >>--- a/conf/machine/j721s2-evm.conf
> >>+++ b/conf/machine/j721s2-evm.conf
> >>@@ -4,6 +4,8 @@
> >>  require conf/machine/include/j7.inc
> >>+MACHINE_FEATURES += "gpu"
> >>+
> >>  SERIAL_CONSOLES = "115200;ttyS10"
> >>  SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
> >>  TFA_K3_USART = "0x8"
> >>diff --git a/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.13.5776728.bb b/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb
> >>similarity index 48%
> >>rename from recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.13.5776728.bb
> >>rename to recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb
> >>index a05de0f2..fbff6c51 100644
> >>--- a/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.13.5776728.bb
> >>+++ b/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb
> >>@@ -7,17 +7,17 @@ inherit module features_check
> >>  REQUIRED_MACHINE_FEATURES = "gpu"
> >>-MACHINE_KERNEL_PR_append = "b"
> >>+MACHINE_KERNEL_PR_append = "a"
> >>  PR = "${MACHINE_KERNEL_PR}"
> >>  PACKAGE_ARCH = "${MACHINE_ARCH}"
> >>-COMPATIBLE_MACHINE = "j7"
> >>+COMPATIBLE_MACHINE = "j7-evm|j721s2-evm|am62xx"
> >>  DEPENDS = "virtual/kernel"
> >>  PROVIDES = "virtual/gpudriver"
> >>-BRANCH = "1.13-5776728/linux-k5.10"
> >>+BRANCH = "linuxws/dunfell/k5.10/${PV}"
> >>  SRC_URI = " \
> >>      git://git.ti.com/graphics/ti-img-rogue-driver.git;branch=${BRANCH} \
> >>@@ -26,15 +26,19 @@ SRC_URI = " \
> >>  S = "${WORKDIR}/git"
> >>-SRCREV = "35a25875ae8738f82c7cabc6b077ef992b0cca84"
> >>+SRCREV = "ee0674adccac16f5b2f7cb8d5d05948706080cb5"
> >>-PVR_SOC = "j721e_linux"
> >
> >I was actually thinking of keeping PVR_SOC variable and moving it to
> >corresponding machine configs.
> >
> 
> 
> PVR_SOC is a bit of a legacy name, especially since PVR is now IMG.

PVR or PowerVR name is still used as an overall umbrella for all of 
Imagination's graphics, vision and AI chips, including SGX and Rogue/RGX:
https://en.wikipedia.org/wiki/PowerVR


> Thinking on this, the mapping between SoC family and the internal names
> like "RGX_BVNC" and "TARGET_PRODUCT" are specific to the version of this
> driver. For instance in the next DDK I may want the target name to
> go from "am62_linux" to "axb_128_linux", I would have to
> change things here (update the SRCREV) AND in the machine config.

1. I totally agree that "axb_128_linux" makes more sense than "am62_linux".
2. Changes like that happen very rarely.
3. You can call it PVR_MODEL or PVR_PRODUCT if you want, instead of PVR_SOC.


> Mapping here feels like the right spot to me. I'd even argue the same
> for OPTEEMACHINE and the like, should go in the optee.bbappends with the
> rest of our platform specific recipe fixups, etc.

The number of overrides in the recipe will keep on growing, as each new 
platform will need to add own config. That's the whole point of the machine 
configuration file to have those defined centrally.

The goal is to have a recipe as machine-agnostic and clean, as possible. Do 
not overwhelm it with tons of conditionals like that - any machine-specific 
configuration should be set in the machine config file.


> >>-PVR_BVNC = "22.104.208.318"
> >>+TARGET_PRODUCT_j7-evm = "j721e_linux"
> >>+TARGET_PRODUCT_j721s2-evm = "j721s2_linux"
> 
> 
> The driver depends on the SoC, not the EVM. s/j721s2-evm/j721s2
> I know you cant do that in dunfell but if my other series gets into
> main it should be fixed there, where we have a SOC_FAMILY for these
> SoCs.
> 
> Andrew
> 
> 
> >>+TARGET_PRODUCT_am62xx = "am62_linux"
> >
> >E.g. instead of these 3 overrides in the recipe, those 3 machines will be
> >setting their respective PVR_SOC variables, which is more descriptive than
> >TARGET_PRODUCT.
> >
> >Similar to how machine configs already set KERNEL_DEVICETREE, UBOOT_MACHINE,
> >TFA_PLATFORM or OPTEEMACHINE.
> >
> >I know SGX been using TARGET_PRODUCT historically, but outside of the recipe
> >it won't make much sense.
> >
> >But it may be too disruptive for Dunfell at this point. I can do such change
> >in master when porting this patch over on top of Andrew's changes.
> >
> >
> >>+TARGET_BVNC_j7-evm = "22.104.208.318"
> >>+TARGET_BVNC_j721s2-evm = "36.53.104.796"
> >>+TARGET_BVNC_am62xx = "33.15.11.3"
> >>  PVR_BUILD = "release"
> >>  PVR_WS = "wayland"
> >>-EXTRA_OEMAKE += 'KERNELDIR="${STAGING_KERNEL_DIR}" RGX_BVNC=${PVR_BVNC} BUILD=${PVR_BUILD} PVR_BUILD_DIR=${PVR_SOC} WINDOW_SYSTEM=${PVR_WS}'
> >>+EXTRA_OEMAKE += 'KERNELDIR="${STAGING_KERNEL_DIR}" RGX_BVNC=${TARGET_BVNC} BUILD=${PVR_BUILD} PVR_BUILD_DIR=${TARGET_PRODUCT} WINDOW_SYSTEM=${PVR_WS}'
> >>  do_install() {
> >>-    make -C ${STAGING_KERNEL_DIR} M=${B}/binary_${PVR_SOC}_${PVR_WS}_${PVR_BUILD}/target_aarch64/kbuild INSTALL_MOD_PATH=${D}${root_prefix} PREFIX=${STAGING_DIR_HOST} modules_install
> >>+    make -C ${STAGING_KERNEL_DIR} M=${B}/binary_${TARGET_PRODUCT}_${PVR_WS}_${PVR_BUILD}/target_aarch64/kbuild INSTALL_MOD_PATH=${D}${root_prefix} PREFIX=${STAGING_DIR_HOST} modules_install
> >>  }
> >>diff --git a/recipes-graphics/libgles/ti-img-rogue-umlibs_1.13.5776728.bb b/recipes-graphics/libgles/ti-img-rogue-umlibs_1.15.6133109.bb
> >>similarity index 84%
> >>rename from recipes-graphics/libgles/ti-img-rogue-umlibs_1.13.5776728.bb
> >>rename to recipes-graphics/libgles/ti-img-rogue-umlibs_1.15.6133109.bb
> >>index 5194015e..e00dce99 100644
> >>--- a/recipes-graphics/libgles/ti-img-rogue-umlibs_1.13.5776728.bb
> >>+++ b/recipes-graphics/libgles/ti-img-rogue-umlibs_1.15.6133109.bb
> >>@@ -8,17 +8,18 @@ inherit features_check
> >>  REQUIRED_MACHINE_FEATURES = "gpu"
> >>  PACKAGE_ARCH = "${MACHINE_ARCH}"
> >>-COMPATIBLE_MACHINE = "j7"
> >>+COMPATIBLE_MACHINE = "j7-evm|j721s2-evm|am62xx"
> >>-PR = "r3"
> >>+PR = "r1"
> >>  BRANCH = "linuxws/dunfell/k5.10/${PV}"
> >>  SRC_URI = "git://git.ti.com/graphics/ti-img-rogue-umlibs.git;branch=${BRANCH}"
> >>+SRCREV = "47c3ffc44f2881397d45c8a2b5dfa7d6c58b79fb"
> >>-SRCREV = "5ef38353c38d921a65ea6df75c7b6ce710b66034"
> >>-
> >>-PVR_SOC ?= "j721e_linux"
> >>+TARGET_PRODUCT_j7-evm = "j721e_linux"
> >>+TARGET_PRODUCT_j721s2-evm = "j721s2_linux"
> >>+TARGET_PRODUCT_am62xx = "am62_linux"
> >
> >Same here.
> >
> >
> >>  PVR_BUILD ?= "release"
> >>  PVR_WS = "wayland"
> >>@@ -50,7 +51,7 @@ RRECOMMENDS_${PN} += "ti-img-rogue-driver"
> >>  S = "${WORKDIR}/git"
> >>  do_install () {
> >>-    oe_runmake install DESTDIR=${D} TARGET_PRODUCT=${PVR_SOC} BUILD=${PVR_BUILD} WINDOW_SYSTEM=${PVR_WS}
> >>+    oe_runmake install DESTDIR=${D} TARGET_PRODUCT=${TARGET_PRODUCT} BUILD=${PVR_BUILD} WINDOW_SYSTEM=${PVR_WS}
> >>      chown -R root:root ${D}
> >>  }
> >>-- 
> >>2.17.1
> >>
>
Andrew Davis March 25, 2022, 9:54 p.m. UTC | #4
On 3/25/22 4:38 PM, Denys Dmytriyenko wrote:
> On Fri, Mar 25, 2022 at 04:21:38PM -0500, Andrew Davis wrote:
>> On 3/25/22 3:10 PM, Denys Dmytriyenko wrote:
>>> On Wed, Mar 23, 2022 at 02:37:07PM -0500, Darren Etheridge wrote:
>>>> Enable the GPU for am62xx and j721s2 and use IMG DDK 1.15
>>>>
>>>> Migrate Imagination DDK 1.13 to DDK 1.15 for J721e
>>>
>>> Overall looks good, please see inline below.
>>>
>>>
>>>> Signed-off-by: Darren Etheridge <detheridge@ti.com>
>>>> ---
>>>>
>>>> No changes in the content of the patch, however I regenerated it with the
>>>> similarity threshold reduced as requested by Denys.
>>>>
>>>>   conf/machine/am62xx-evm.conf                  |  2 ++
>>>>   conf/machine/j721s2-evm.conf                  |  2 ++
>>>>   ...bb => ti-img-rogue-driver_1.15.6133109.bb} | 20 +++++++++++--------
>>>>   ...bb => ti-img-rogue-umlibs_1.15.6133109.bb} | 13 ++++++------
>>>>   4 files changed, 23 insertions(+), 14 deletions(-)
>>>>   rename recipes-bsp/powervr-drivers/{ti-img-rogue-driver_1.13.5776728.bb => ti-img-rogue-driver_1.15.6133109.bb} (48%)
>>>>   rename recipes-graphics/libgles/{ti-img-rogue-umlibs_1.13.5776728.bb => ti-img-rogue-umlibs_1.15.6133109.bb} (84%)
>>>>
>>>> diff --git a/conf/machine/am62xx-evm.conf b/conf/machine/am62xx-evm.conf
>>>> index 600abb58..086e40e4 100644
>>>> --- a/conf/machine/am62xx-evm.conf
>>>> +++ b/conf/machine/am62xx-evm.conf
>>>> @@ -4,6 +4,8 @@
>>>>   require conf/machine/include/am62xx.inc
>>>> +MACHINE_FEATURES += "gpu"
>>>> +
>>>>   KERNEL_DEVICETREE = " \
>>>>       ti/k3-am625-sk.dtb \
>>>>       ti/k3-am625-sk-lpmdemo.dtb \
>>>> diff --git a/conf/machine/j721s2-evm.conf b/conf/machine/j721s2-evm.conf
>>>> index 82fd33da..e5ed0b73 100644
>>>> --- a/conf/machine/j721s2-evm.conf
>>>> +++ b/conf/machine/j721s2-evm.conf
>>>> @@ -4,6 +4,8 @@
>>>>   require conf/machine/include/j7.inc
>>>> +MACHINE_FEATURES += "gpu"
>>>> +
>>>>   SERIAL_CONSOLES = "115200;ttyS10"
>>>>   SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
>>>>   TFA_K3_USART = "0x8"
>>>> diff --git a/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.13.5776728.bb b/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb
>>>> similarity index 48%
>>>> rename from recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.13.5776728.bb
>>>> rename to recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb
>>>> index a05de0f2..fbff6c51 100644
>>>> --- a/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.13.5776728.bb
>>>> +++ b/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb
>>>> @@ -7,17 +7,17 @@ inherit module features_check
>>>>   REQUIRED_MACHINE_FEATURES = "gpu"
>>>> -MACHINE_KERNEL_PR_append = "b"
>>>> +MACHINE_KERNEL_PR_append = "a"
>>>>   PR = "${MACHINE_KERNEL_PR}"
>>>>   PACKAGE_ARCH = "${MACHINE_ARCH}"
>>>> -COMPATIBLE_MACHINE = "j7"
>>>> +COMPATIBLE_MACHINE = "j7-evm|j721s2-evm|am62xx"
>>>>   DEPENDS = "virtual/kernel"
>>>>   PROVIDES = "virtual/gpudriver"
>>>> -BRANCH = "1.13-5776728/linux-k5.10"
>>>> +BRANCH = "linuxws/dunfell/k5.10/${PV}"
>>>>   SRC_URI = " \
>>>>       git://git.ti.com/graphics/ti-img-rogue-driver.git;branch=${BRANCH} \
>>>> @@ -26,15 +26,19 @@ SRC_URI = " \
>>>>   S = "${WORKDIR}/git"
>>>> -SRCREV = "35a25875ae8738f82c7cabc6b077ef992b0cca84"
>>>> +SRCREV = "ee0674adccac16f5b2f7cb8d5d05948706080cb5"
>>>> -PVR_SOC = "j721e_linux"
>>>
>>> I was actually thinking of keeping PVR_SOC variable and moving it to
>>> corresponding machine configs.
>>>
>>
>>
>> PVR_SOC is a bit of a legacy name, especially since PVR is now IMG.
> 
> PVR or PowerVR name is still used as an overall umbrella for all of
> Imagination's graphics, vision and AI chips, including SGX and Rogue/RGX:
> https://en.wikipedia.org/wiki/PowerVR
> 


On the wiki page:

> These GPUs are no longer called PowerVR, they are called IMG.[58]

For their next gen GPUs they are distancing themselves from the PVR name,
the GPU in AM62xx is one such next gen GPU, so it's already not correct here
as is.


> 
>> Thinking on this, the mapping between SoC family and the internal names
>> like "RGX_BVNC" and "TARGET_PRODUCT" are specific to the version of this
>> driver. For instance in the next DDK I may want the target name to
>> go from "am62_linux" to "axb_128_linux", I would have to
>> change things here (update the SRCREV) AND in the machine config.
> 
> 1. I totally agree that "axb_128_linux" makes more sense than "am62_linux".
> 2. Changes like that happen very rarely.
> 3. You can call it PVR_MODEL or PVR_PRODUCT if you want, instead of PVR_SOC.
> 
> 
>> Mapping here feels like the right spot to me. I'd even argue the same
>> for OPTEEMACHINE and the like, should go in the optee.bbappends with the
>> rest of our platform specific recipe fixups, etc.
> 
> The number of overrides in the recipe will keep on growing, as each new
> platform will need to add own config. That's the whole point of the machine
> configuration file to have those defined centrally.
> 
> The goal is to have a recipe as machine-agnostic and clean, as possible. Do
> not overwhelm it with tons of conditionals like that - any machine-specific
> configuration should be set in the machine config file.
> 


Having all the fixups related to a package inside that package's definition sounds
more central to me, and easier to reason about. But I can see the argument both
ways.

Maybe the better solution would be to splitup this(and the SGX) recipe. So we
get a package per GPU type. It's already how the bins are organized/shipped. Then
we just pick the right GPU package for our SoC in arago-prefs.inc. (again like
we already do to select between SGX/RGX)

Andrew


> 
>>>> -PVR_BVNC = "22.104.208.318"
>>>> +TARGET_PRODUCT_j7-evm = "j721e_linux"
>>>> +TARGET_PRODUCT_j721s2-evm = "j721s2_linux"
>>
>>
>> The driver depends on the SoC, not the EVM. s/j721s2-evm/j721s2
>> I know you cant do that in dunfell but if my other series gets into
>> main it should be fixed there, where we have a SOC_FAMILY for these
>> SoCs.
>>
>> Andrew
>>
>>
>>>> +TARGET_PRODUCT_am62xx = "am62_linux"
>>>
>>> E.g. instead of these 3 overrides in the recipe, those 3 machines will be
>>> setting their respective PVR_SOC variables, which is more descriptive than
>>> TARGET_PRODUCT.
>>>
>>> Similar to how machine configs already set KERNEL_DEVICETREE, UBOOT_MACHINE,
>>> TFA_PLATFORM or OPTEEMACHINE.
>>>
>>> I know SGX been using TARGET_PRODUCT historically, but outside of the recipe
>>> it won't make much sense.
>>>
>>> But it may be too disruptive for Dunfell at this point. I can do such change
>>> in master when porting this patch over on top of Andrew's changes.
>>>
>>>
>>>> +TARGET_BVNC_j7-evm = "22.104.208.318"
>>>> +TARGET_BVNC_j721s2-evm = "36.53.104.796"
>>>> +TARGET_BVNC_am62xx = "33.15.11.3"
>>>>   PVR_BUILD = "release"
>>>>   PVR_WS = "wayland"
>>>> -EXTRA_OEMAKE += 'KERNELDIR="${STAGING_KERNEL_DIR}" RGX_BVNC=${PVR_BVNC} BUILD=${PVR_BUILD} PVR_BUILD_DIR=${PVR_SOC} WINDOW_SYSTEM=${PVR_WS}'
>>>> +EXTRA_OEMAKE += 'KERNELDIR="${STAGING_KERNEL_DIR}" RGX_BVNC=${TARGET_BVNC} BUILD=${PVR_BUILD} PVR_BUILD_DIR=${TARGET_PRODUCT} WINDOW_SYSTEM=${PVR_WS}'
>>>>   do_install() {
>>>> -    make -C ${STAGING_KERNEL_DIR} M=${B}/binary_${PVR_SOC}_${PVR_WS}_${PVR_BUILD}/target_aarch64/kbuild INSTALL_MOD_PATH=${D}${root_prefix} PREFIX=${STAGING_DIR_HOST} modules_install
>>>> +    make -C ${STAGING_KERNEL_DIR} M=${B}/binary_${TARGET_PRODUCT}_${PVR_WS}_${PVR_BUILD}/target_aarch64/kbuild INSTALL_MOD_PATH=${D}${root_prefix} PREFIX=${STAGING_DIR_HOST} modules_install
>>>>   }
>>>> diff --git a/recipes-graphics/libgles/ti-img-rogue-umlibs_1.13.5776728.bb b/recipes-graphics/libgles/ti-img-rogue-umlibs_1.15.6133109.bb
>>>> similarity index 84%
>>>> rename from recipes-graphics/libgles/ti-img-rogue-umlibs_1.13.5776728.bb
>>>> rename to recipes-graphics/libgles/ti-img-rogue-umlibs_1.15.6133109.bb
>>>> index 5194015e..e00dce99 100644
>>>> --- a/recipes-graphics/libgles/ti-img-rogue-umlibs_1.13.5776728.bb
>>>> +++ b/recipes-graphics/libgles/ti-img-rogue-umlibs_1.15.6133109.bb
>>>> @@ -8,17 +8,18 @@ inherit features_check
>>>>   REQUIRED_MACHINE_FEATURES = "gpu"
>>>>   PACKAGE_ARCH = "${MACHINE_ARCH}"
>>>> -COMPATIBLE_MACHINE = "j7"
>>>> +COMPATIBLE_MACHINE = "j7-evm|j721s2-evm|am62xx"
>>>> -PR = "r3"
>>>> +PR = "r1"
>>>>   BRANCH = "linuxws/dunfell/k5.10/${PV}"
>>>>   SRC_URI = "git://git.ti.com/graphics/ti-img-rogue-umlibs.git;branch=${BRANCH}"
>>>> +SRCREV = "47c3ffc44f2881397d45c8a2b5dfa7d6c58b79fb"
>>>> -SRCREV = "5ef38353c38d921a65ea6df75c7b6ce710b66034"
>>>> -
>>>> -PVR_SOC ?= "j721e_linux"
>>>> +TARGET_PRODUCT_j7-evm = "j721e_linux"
>>>> +TARGET_PRODUCT_j721s2-evm = "j721s2_linux"
>>>> +TARGET_PRODUCT_am62xx = "am62_linux"
>>>
>>> Same here.
>>>
>>>
>>>>   PVR_BUILD ?= "release"
>>>>   PVR_WS = "wayland"
>>>> @@ -50,7 +51,7 @@ RRECOMMENDS_${PN} += "ti-img-rogue-driver"
>>>>   S = "${WORKDIR}/git"
>>>>   do_install () {
>>>> -    oe_runmake install DESTDIR=${D} TARGET_PRODUCT=${PVR_SOC} BUILD=${PVR_BUILD} WINDOW_SYSTEM=${PVR_WS}
>>>> +    oe_runmake install DESTDIR=${D} TARGET_PRODUCT=${TARGET_PRODUCT} BUILD=${PVR_BUILD} WINDOW_SYSTEM=${PVR_WS}
>>>>       chown -R root:root ${D}
>>>>   }
>>>> -- 
>>>> 2.17.1
>>>>
>>
>
Denys Dmytriyenko March 25, 2022, 10:06 p.m. UTC | #5
On Fri, Mar 25, 2022 at 04:54:56PM -0500, Andrew F. Davis via lists.yoctoproject.org wrote:
> On 3/25/22 4:38 PM, Denys Dmytriyenko wrote:
> >On Fri, Mar 25, 2022 at 04:21:38PM -0500, Andrew Davis wrote:
> >>On 3/25/22 3:10 PM, Denys Dmytriyenko wrote:
> >>>On Wed, Mar 23, 2022 at 02:37:07PM -0500, Darren Etheridge wrote:
> >>>>Enable the GPU for am62xx and j721s2 and use IMG DDK 1.15
> >>>>
> >>>>Migrate Imagination DDK 1.13 to DDK 1.15 for J721e
> >>>
> >>>Overall looks good, please see inline below.
> >>>
> >>>
> >>>>Signed-off-by: Darren Etheridge <detheridge@ti.com>
> >>>>---
> >>>>
> >>>>rename from recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.13.5776728.bb
> >>>>rename to recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb
> >>>>index a05de0f2..fbff6c51 100644
> >>>>--- a/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.13.5776728.bb
> >>>>+++ b/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb
> >>>>@@ -7,17 +7,17 @@ inherit module features_check
> >>>>  REQUIRED_MACHINE_FEATURES = "gpu"
> >>>>-MACHINE_KERNEL_PR_append = "b"
> >>>>+MACHINE_KERNEL_PR_append = "a"
> >>>>  PR = "${MACHINE_KERNEL_PR}"
> >>>>  PACKAGE_ARCH = "${MACHINE_ARCH}"
> >>>>-COMPATIBLE_MACHINE = "j7"
> >>>>+COMPATIBLE_MACHINE = "j7-evm|j721s2-evm|am62xx"
> >>>>  DEPENDS = "virtual/kernel"
> >>>>  PROVIDES = "virtual/gpudriver"
> >>>>-BRANCH = "1.13-5776728/linux-k5.10"
> >>>>+BRANCH = "linuxws/dunfell/k5.10/${PV}"
> >>>>  SRC_URI = " \
> >>>>      git://git.ti.com/graphics/ti-img-rogue-driver.git;branch=${BRANCH} \
> >>>>@@ -26,15 +26,19 @@ SRC_URI = " \
> >>>>  S = "${WORKDIR}/git"
> >>>>-SRCREV = "35a25875ae8738f82c7cabc6b077ef992b0cca84"
> >>>>+SRCREV = "ee0674adccac16f5b2f7cb8d5d05948706080cb5"
> >>>>-PVR_SOC = "j721e_linux"
> >>>
> >>>I was actually thinking of keeping PVR_SOC variable and moving it to
> >>>corresponding machine configs.
> >>>
> >>
> >>
> >>PVR_SOC is a bit of a legacy name, especially since PVR is now IMG.
> >
> >PVR or PowerVR name is still used as an overall umbrella for all of
> >Imagination's graphics, vision and AI chips, including SGX and Rogue/RGX:
> >https://en.wikipedia.org/wiki/PowerVR
> >
> 
> 
> On the wiki page:
> 
> >These GPUs are no longer called PowerVR, they are called IMG.[58]
> 
> For their next gen GPUs they are distancing themselves from the PVR name,
> the GPU in AM62xx is one such next gen GPU, so it's already not correct here
> as is.

So, then why AM62xx is being added to Rogue driver/DDK? Should there be a 
separate Albiorix driver and DDK then?


> >>Thinking on this, the mapping between SoC family and the internal names
> >>like "RGX_BVNC" and "TARGET_PRODUCT" are specific to the version of this
> >>driver. For instance in the next DDK I may want the target name to
> >>go from "am62_linux" to "axb_128_linux", I would have to
> >>change things here (update the SRCREV) AND in the machine config.
> >
> >1. I totally agree that "axb_128_linux" makes more sense than "am62_linux".
> >2. Changes like that happen very rarely.
> >3. You can call it PVR_MODEL or PVR_PRODUCT if you want, instead of PVR_SOC.
> >
> >
> >>Mapping here feels like the right spot to me. I'd even argue the same
> >>for OPTEEMACHINE and the like, should go in the optee.bbappends with the
> >>rest of our platform specific recipe fixups, etc.
> >
> >The number of overrides in the recipe will keep on growing, as each new
> >platform will need to add own config. That's the whole point of the machine
> >configuration file to have those defined centrally.
> >
> >The goal is to have a recipe as machine-agnostic and clean, as possible. Do
> >not overwhelm it with tons of conditionals like that - any machine-specific
> >configuration should be set in the machine config file.
> >
> 
> 
> Having all the fixups related to a package inside that package's definition sounds
> more central to me, and easier to reason about. But I can see the argument both
> ways.
> 
> Maybe the better solution would be to splitup this(and the SGX) recipe. So we
> get a package per GPU type. It's already how the bins are organized/shipped. Then
> we just pick the right GPU package for our SoC in arago-prefs.inc. (again like
> we already do to select between SGX/RGX)

Yeah, I think keeping each series of GPU (SGX, Rogue, Albiorix) in their own 
separate recipes would be fine. Or are you suggesting splitting even further 
into separate recipes for SGX530 vs SGX540, etc?
Andrew Davis March 25, 2022, 10:30 p.m. UTC | #6
On 3/25/22 5:06 PM, Denys Dmytriyenko wrote:
> On Fri, Mar 25, 2022 at 04:54:56PM -0500, Andrew F. Davis via lists.yoctoproject.org wrote:
>> On 3/25/22 4:38 PM, Denys Dmytriyenko wrote:
>>> On Fri, Mar 25, 2022 at 04:21:38PM -0500, Andrew Davis wrote:
>>>> On 3/25/22 3:10 PM, Denys Dmytriyenko wrote:
>>>>> On Wed, Mar 23, 2022 at 02:37:07PM -0500, Darren Etheridge wrote:
>>>>>> Enable the GPU for am62xx and j721s2 and use IMG DDK 1.15
>>>>>>
>>>>>> Migrate Imagination DDK 1.13 to DDK 1.15 for J721e
>>>>>
>>>>> Overall looks good, please see inline below.
>>>>>
>>>>>
>>>>>> Signed-off-by: Darren Etheridge <detheridge@ti.com>
>>>>>> ---
>>>>>>
>>>>>> rename from recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.13.5776728.bb
>>>>>> rename to recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb
>>>>>> index a05de0f2..fbff6c51 100644
>>>>>> --- a/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.13.5776728.bb
>>>>>> +++ b/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb
>>>>>> @@ -7,17 +7,17 @@ inherit module features_check
>>>>>>   REQUIRED_MACHINE_FEATURES = "gpu"
>>>>>> -MACHINE_KERNEL_PR_append = "b"
>>>>>> +MACHINE_KERNEL_PR_append = "a"
>>>>>>   PR = "${MACHINE_KERNEL_PR}"
>>>>>>   PACKAGE_ARCH = "${MACHINE_ARCH}"
>>>>>> -COMPATIBLE_MACHINE = "j7"
>>>>>> +COMPATIBLE_MACHINE = "j7-evm|j721s2-evm|am62xx"
>>>>>>   DEPENDS = "virtual/kernel"
>>>>>>   PROVIDES = "virtual/gpudriver"
>>>>>> -BRANCH = "1.13-5776728/linux-k5.10"
>>>>>> +BRANCH = "linuxws/dunfell/k5.10/${PV}"
>>>>>>   SRC_URI = " \
>>>>>>       git://git.ti.com/graphics/ti-img-rogue-driver.git;branch=${BRANCH} \
>>>>>> @@ -26,15 +26,19 @@ SRC_URI = " \
>>>>>>   S = "${WORKDIR}/git"
>>>>>> -SRCREV = "35a25875ae8738f82c7cabc6b077ef992b0cca84"
>>>>>> +SRCREV = "ee0674adccac16f5b2f7cb8d5d05948706080cb5"
>>>>>> -PVR_SOC = "j721e_linux"
>>>>>
>>>>> I was actually thinking of keeping PVR_SOC variable and moving it to
>>>>> corresponding machine configs.
>>>>>
>>>>
>>>>
>>>> PVR_SOC is a bit of a legacy name, especially since PVR is now IMG.
>>>
>>> PVR or PowerVR name is still used as an overall umbrella for all of
>>> Imagination's graphics, vision and AI chips, including SGX and Rogue/RGX:
>>> https://en.wikipedia.org/wiki/PowerVR
>>>
>>
>>
>> On the wiki page:
>>
>>> These GPUs are no longer called PowerVR, they are called IMG.[58]
>>
>> For their next gen GPUs they are distancing themselves from the PVR name,
>> the GPU in AM62xx is one such next gen GPU, so it's already not correct here
>> as is.
> 
> So, then why AM62xx is being added to Rogue driver/DDK? Should there be a
> separate Albiorix driver and DDK then?
> 


We asked IMG very nicely to not fork the DDK for each new gen of device (like
what happened with SGX -> Rogue), so now we have he same driver code base
supporting multiple generations of GPU. The name "Rogue" just stuck around.
We should probably rename some of this stuff to also be more generic.


> 
>>>> Thinking on this, the mapping between SoC family and the internal names
>>>> like "RGX_BVNC" and "TARGET_PRODUCT" are specific to the version of this
>>>> driver. For instance in the next DDK I may want the target name to
>>>> go from "am62_linux" to "axb_128_linux", I would have to
>>>> change things here (update the SRCREV) AND in the machine config.
>>>
>>> 1. I totally agree that "axb_128_linux" makes more sense than "am62_linux".
>>> 2. Changes like that happen very rarely.
>>> 3. You can call it PVR_MODEL or PVR_PRODUCT if you want, instead of PVR_SOC.
>>>
>>>
>>>> Mapping here feels like the right spot to me. I'd even argue the same
>>>> for OPTEEMACHINE and the like, should go in the optee.bbappends with the
>>>> rest of our platform specific recipe fixups, etc.
>>>
>>> The number of overrides in the recipe will keep on growing, as each new
>>> platform will need to add own config. That's the whole point of the machine
>>> configuration file to have those defined centrally.
>>>
>>> The goal is to have a recipe as machine-agnostic and clean, as possible. Do
>>> not overwhelm it with tons of conditionals like that - any machine-specific
>>> configuration should be set in the machine config file.
>>>
>>
>>
>> Having all the fixups related to a package inside that package's definition sounds
>> more central to me, and easier to reason about. But I can see the argument both
>> ways.
>>
>> Maybe the better solution would be to splitup this(and the SGX) recipe. So we
>> get a package per GPU type. It's already how the bins are organized/shipped. Then
>> we just pick the right GPU package for our SoC in arago-prefs.inc. (again like
>> we already do to select between SGX/RGX)
> 
> Yeah, I think keeping each series of GPU (SGX, Rogue, Albiorix) in their own
> separate recipes would be fine. Or are you suggesting splitting even further
> into separate recipes for SGX530 vs SGX540, etc?
> 


I'm suggesting even further. The driver/package for SGX530 is not compatible
and conflicts with the driver package for SGX540. So lets not have a single named
package (ti-sgx-ddk-um) that can have very different contents, that's just confusing.

Andrew
Andrew Davis March 25, 2022, 10:36 p.m. UTC | #7
On 3/25/22 5:30 PM, Andrew F. Davis via lists.yoctoproject.org wrote:
> On 3/25/22 5:06 PM, Denys Dmytriyenko wrote:
>> On Fri, Mar 25, 2022 at 04:54:56PM -0500, Andrew F. Davis via lists.yoctoproject.org wrote:
>>> On 3/25/22 4:38 PM, Denys Dmytriyenko wrote:
>>>> On Fri, Mar 25, 2022 at 04:21:38PM -0500, Andrew Davis wrote:
>>>>> On 3/25/22 3:10 PM, Denys Dmytriyenko wrote:
>>>>>> On Wed, Mar 23, 2022 at 02:37:07PM -0500, Darren Etheridge wrote:
>>>>>>> Enable the GPU for am62xx and j721s2 and use IMG DDK 1.15
>>>>>>>
>>>>>>> Migrate Imagination DDK 1.13 to DDK 1.15 for J721e
>>>>>>
>>>>>> Overall looks good, please see inline below.
>>>>>>
>>>>>>
>>>>>>> Signed-off-by: Darren Etheridge <detheridge@ti.com>
>>>>>>> ---
>>>>>>>
>>>>>>> rename from recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.13.5776728.bb
>>>>>>> rename to recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb
>>>>>>> index a05de0f2..fbff6c51 100644
>>>>>>> --- a/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.13.5776728.bb
>>>>>>> +++ b/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb
>>>>>>> @@ -7,17 +7,17 @@ inherit module features_check
>>>>>>>   REQUIRED_MACHINE_FEATURES = "gpu"
>>>>>>> -MACHINE_KERNEL_PR_append = "b"
>>>>>>> +MACHINE_KERNEL_PR_append = "a"
>>>>>>>   PR = "${MACHINE_KERNEL_PR}"
>>>>>>>   PACKAGE_ARCH = "${MACHINE_ARCH}"
>>>>>>> -COMPATIBLE_MACHINE = "j7"
>>>>>>> +COMPATIBLE_MACHINE = "j7-evm|j721s2-evm|am62xx"
>>>>>>>   DEPENDS = "virtual/kernel"
>>>>>>>   PROVIDES = "virtual/gpudriver"
>>>>>>> -BRANCH = "1.13-5776728/linux-k5.10"
>>>>>>> +BRANCH = "linuxws/dunfell/k5.10/${PV}"
>>>>>>>   SRC_URI = " \
>>>>>>>       git://git.ti.com/graphics/ti-img-rogue-driver.git;branch=${BRANCH} \
>>>>>>> @@ -26,15 +26,19 @@ SRC_URI = " \
>>>>>>>   S = "${WORKDIR}/git"
>>>>>>> -SRCREV = "35a25875ae8738f82c7cabc6b077ef992b0cca84"
>>>>>>> +SRCREV = "ee0674adccac16f5b2f7cb8d5d05948706080cb5"
>>>>>>> -PVR_SOC = "j721e_linux"
>>>>>>
>>>>>> I was actually thinking of keeping PVR_SOC variable and moving it to
>>>>>> corresponding machine configs.
>>>>>>
>>>>>
>>>>>
>>>>> PVR_SOC is a bit of a legacy name, especially since PVR is now IMG.
>>>>
>>>> PVR or PowerVR name is still used as an overall umbrella for all of
>>>> Imagination's graphics, vision and AI chips, including SGX and Rogue/RGX:
>>>> https://en.wikipedia.org/wiki/PowerVR
>>>>
>>>
>>>
>>> On the wiki page:
>>>
>>>> These GPUs are no longer called PowerVR, they are called IMG.[58]
>>>
>>> For their next gen GPUs they are distancing themselves from the PVR name,
>>> the GPU in AM62xx is one such next gen GPU, so it's already not correct here
>>> as is.
>>
>> So, then why AM62xx is being added to Rogue driver/DDK? Should there be a
>> separate Albiorix driver and DDK then?
>>
> 
> 
> We asked IMG very nicely to not fork the DDK for each new gen of device (like
> what happened with SGX -> Rogue), so now we have he same driver code base
> supporting multiple generations of GPU. The name "Rogue" just stuck around.
> We should probably rename some of this stuff to also be more generic.
> 
> 
>>
>>>>> Thinking on this, the mapping between SoC family and the internal names
>>>>> like "RGX_BVNC" and "TARGET_PRODUCT" are specific to the version of this
>>>>> driver. For instance in the next DDK I may want the target name to
>>>>> go from "am62_linux" to "axb_128_linux", I would have to
>>>>> change things here (update the SRCREV) AND in the machine config.
>>>>
>>>> 1. I totally agree that "axb_128_linux" makes more sense than "am62_linux".
>>>> 2. Changes like that happen very rarely.
>>>> 3. You can call it PVR_MODEL or PVR_PRODUCT if you want, instead of PVR_SOC.
>>>>
>>>>
>>>>> Mapping here feels like the right spot to me. I'd even argue the same
>>>>> for OPTEEMACHINE and the like, should go in the optee.bbappends with the
>>>>> rest of our platform specific recipe fixups, etc.
>>>>
>>>> The number of overrides in the recipe will keep on growing, as each new
>>>> platform will need to add own config. That's the whole point of the machine
>>>> configuration file to have those defined centrally.
>>>>
>>>> The goal is to have a recipe as machine-agnostic and clean, as possible. Do
>>>> not overwhelm it with tons of conditionals like that - any machine-specific
>>>> configuration should be set in the machine config file.
>>>>
>>>
>>>
>>> Having all the fixups related to a package inside that package's definition sounds
>>> more central to me, and easier to reason about. But I can see the argument both
>>> ways.
>>>
>>> Maybe the better solution would be to splitup this(and the SGX) recipe. So we
>>> get a package per GPU type. It's already how the bins are organized/shipped. Then
>>> we just pick the right GPU package for our SoC in arago-prefs.inc. (again like
>>> we already do to select between SGX/RGX)
>>
>> Yeah, I think keeping each series of GPU (SGX, Rogue, Albiorix) in their own
>> separate recipes would be fine. Or are you suggesting splitting even further
>> into separate recipes for SGX530 vs SGX540, etc?
>>
> 
> 
> I'm suggesting even further. The driver/package for SGX530 is not compatible
> and conflicts with the driver package for SGX540. So lets not have a single named
> package (ti-sgx-ddk-um) that can have very different contents, that's just confusing.
> 


Oh, and not separate recipes, separate packages, they can all be provided
by the same one or two recipes.

ti-sgx-530-um
ti-sgx-544-um
ti-axe1-16m-um
etc..

Then:

PREFERRED_PROVIDER_virtual/libgles2:am62xx = "ti-axe1-16m-um"
...

Andrew


> Andrew
> 
> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#14562): https://lists.yoctoproject.org/g/meta-ti/message/14562
> Mute This Topic: https://lists.yoctoproject.org/mt/89983769/3619733
> Group Owner: meta-ti+owner@lists.yoctoproject.org
> Unsubscribe: https://lists.yoctoproject.org/g/meta-ti/unsub [afd@ti.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Denys Dmytriyenko March 29, 2022, 5:21 a.m. UTC | #8
On Fri, Mar 25, 2022 at 04:54:56PM -0500, Andrew F. Davis via lists.yoctoproject.org wrote:
> On 3/25/22 4:38 PM, Denys Dmytriyenko wrote:
> >On Fri, Mar 25, 2022 at 04:21:38PM -0500, Andrew Davis wrote:
> >>On 3/25/22 3:10 PM, Denys Dmytriyenko wrote:
> >>>On Wed, Mar 23, 2022 at 02:37:07PM -0500, Darren Etheridge wrote:
> >>>>Enable the GPU for am62xx and j721s2 and use IMG DDK 1.15
> >>>>
> >>>>Migrate Imagination DDK 1.13 to DDK 1.15 for J721e
> >>>
> >>>Overall looks good, please see inline below.
> 
> >
> >>Thinking on this, the mapping between SoC family and the internal names
> >>like "RGX_BVNC" and "TARGET_PRODUCT" are specific to the version of this
> >>driver. For instance in the next DDK I may want the target name to
> >>go from "am62_linux" to "axb_128_linux", I would have to
> >>change things here (update the SRCREV) AND in the machine config.
> >
> >1. I totally agree that "axb_128_linux" makes more sense than "am62_linux".
> >2. Changes like that happen very rarely.
> >3. You can call it PVR_MODEL or PVR_PRODUCT if you want, instead of PVR_SOC.
> >
> >
> >>Mapping here feels like the right spot to me. I'd even argue the same
> >>for OPTEEMACHINE and the like, should go in the optee.bbappends with the
> >>rest of our platform specific recipe fixups, etc.
> >
> >The number of overrides in the recipe will keep on growing, as each new
> >platform will need to add own config. That's the whole point of the machine
> >configuration file to have those defined centrally.
> >
> >The goal is to have a recipe as machine-agnostic and clean, as possible. Do
> >not overwhelm it with tons of conditionals like that - any machine-specific
> >configuration should be set in the machine config file.
> >
> 
> 
> Having all the fixups related to a package inside that package's definition sounds
> more central to me, and easier to reason about. But I can see the argument both
> ways.

Think of it from another perspective - if you keep all machine overrides for 
one varibale in the same recipe, a minor change to one specific override there 
will make the recipe as "modified" for all platforms and all builds would have 
to be redone.

But if that one variable is set in the machine config to a specific value, 
changing it for one platform won't affect other platforms and you'd only need 
to rebuild that changed platform.

For example - let's add a new .dtbo for am65xx-evm...

In first case you would modify an override in the kernel recipe:
recipes-kernel/linux/linux-ti-staging_5.10.bb:

 KERNEL_DEVICETREE_am64xx-evm = "..."
-KERNEL_DEVICETREE_am65xx-evm = "devtree.dtb overlay1.dtbo"
+KERNEL_DEVICETREE_am65xx-evm = "devtree.dtb overlay1.dtbo overlay2.dtbo"
 KERNEL_DEVICETREE_j721e-evm = "..."

So, you modified the kernel recipes, so now all platforms would have to 
rebuild the kernel and everything that depends on it. With all the variants 
(RT, non-RT, debug), brands and configs (nightly, RC, etc), that ends up in 
a lot of rebuilds in the farm (could be hundreds of rebuilds, if you count 
all permutations)!

In the second case, the .dtbo is added in the machine config:
conf/machine/am65xx-evm.conf:
-KERNEL_DEVICETREE = "devtree.dtb overlay1.dtbo"
+KERNEL_DEVICETREE = "devtree.dtb overlay1.dtbo overlay2.dtbo"

And the kernel recipe wasn't touched, so only am65xx-evm needs to be rebuilt. 
Even with permutations, it's just several rebuilds of the same platform.

The other point is that changes to the same variable more often happen one 
platform at a time (add a .dtbo, change defconfig or add a config fragment, 
even add a new platform), instead of changing globally for all platforms at 
the same time...


PS. There are some advanced Yocto techniques to remedy the above rebuilding 
of dependency tree to some extent, such as hash equivalence and such, but 
that's still a bit cutting edge, somewhat unstable and might not be ready for 
production yet.
Denys Dmytriyenko March 29, 2022, 5:28 a.m. UTC | #9
On Fri, Mar 25, 2022 at 05:36:47PM -0500, Andrew F. Davis via lists.yoctoproject.org wrote:
> On 3/25/22 5:30 PM, Andrew F. Davis via lists.yoctoproject.org wrote:
> >On 3/25/22 5:06 PM, Denys Dmytriyenko wrote:
> >>On Fri, Mar 25, 2022 at 04:54:56PM -0500, Andrew F. Davis via lists.yoctoproject.org wrote:
> >>>On 3/25/22 4:38 PM, Denys Dmytriyenko wrote:
> >>>>On Fri, Mar 25, 2022 at 04:21:38PM -0500, Andrew Davis wrote:
> >>>>>On 3/25/22 3:10 PM, Denys Dmytriyenko wrote:
> >>>>>>On Wed, Mar 23, 2022 at 02:37:07PM -0500, Darren Etheridge wrote:
> >>>>>>>Enable the GPU for am62xx and j721s2 and use IMG DDK 1.15
> >>>>>>>
> >>>>>>>Migrate Imagination DDK 1.13 to DDK 1.15 for J721e
> >>>>>>
> >>>>>>Overall looks good, please see inline below.

> >>Yeah, I think keeping each series of GPU (SGX, Rogue, Albiorix) in their own
> >>separate recipes would be fine. Or are you suggesting splitting even further
> >>into separate recipes for SGX530 vs SGX540, etc?
> >>
> >
> >
> >I'm suggesting even further. The driver/package for SGX530 is not compatible
> >and conflicts with the driver package for SGX540. So lets not have a single named
> >package (ti-sgx-ddk-um) that can have very different contents, that's just confusing.
> >
> 
> 
> Oh, and not separate recipes, separate packages, they can all be provided
> by the same one or two recipes.
> 
> ti-sgx-530-um
> ti-sgx-544-um
> ti-axe1-16m-um
> etc..
> 
> Then:
> 
> PREFERRED_PROVIDER_virtual/libgles2:am62xx = "ti-axe1-16m-um"

PREFERRED_PROVIDER specifies the build-time dependency, i.e. a recipe.
Etheridge, Darren March 29, 2022, 9:48 p.m. UTC | #10
On 3/25/2022 5:36 PM, Andrew Davis wrote:
> On 3/25/22 5:30 PM, Andrew F. Davis via lists.yoctoproject.org wrote:
>> On 3/25/22 5:06 PM, Denys Dmytriyenko wrote:
>>> On Fri, Mar 25, 2022 at 04:54:56PM -0500, Andrew F. Davis via 
>>> lists.yoctoproject.org wrote:
>>>> On 3/25/22 4:38 PM, Denys Dmytriyenko wrote:
>>>>> On Fri, Mar 25, 2022 at 04:21:38PM -0500, Andrew Davis wrote:
>>>>>> On 3/25/22 3:10 PM, Denys Dmytriyenko wrote:
>>>>>>> On Wed, Mar 23, 2022 at 02:37:07PM -0500, Darren Etheridge wrote:
>>>>>>>> Enable the GPU for am62xx and j721s2 and use IMG DDK 1.15
>>>>>>>>
>>>>>>>> Migrate Imagination DDK 1.13 to DDK 1.15 for J721e
>>>>>>>
>>>>>>> Overall looks good, please see inline below.
>>>>>>>
>>>>>>>
>>>>>>>> Signed-off-by: Darren Etheridge <detheridge@ti.com>
>>>>>>>> ---
>>>>>>>>
>>>>>>>> rename from 
>>>>>>>> recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.13.5776728.bb
>>>>>>>> rename to 
>>>>>>>> recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb
>>>>>>>> index a05de0f2..fbff6c51 100644
>>>>>>>> --- 
>>>>>>>> a/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.13.5776728.bb
>>>>>>>> +++ 
>>>>>>>> b/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb
>>>>>>>> @@ -7,17 +7,17 @@ inherit module features_check
>>>>>>>>   REQUIRED_MACHINE_FEATURES = "gpu"
>>>>>>>> -MACHINE_KERNEL_PR_append = "b"
>>>>>>>> +MACHINE_KERNEL_PR_append = "a"
>>>>>>>>   PR = "${MACHINE_KERNEL_PR}"
>>>>>>>>   PACKAGE_ARCH = "${MACHINE_ARCH}"
>>>>>>>> -COMPATIBLE_MACHINE = "j7"
>>>>>>>> +COMPATIBLE_MACHINE = "j7-evm|j721s2-evm|am62xx"
>>>>>>>>   DEPENDS = "virtual/kernel"
>>>>>>>>   PROVIDES = "virtual/gpudriver"
>>>>>>>> -BRANCH = "1.13-5776728/linux-k5.10"
>>>>>>>> +BRANCH = "linuxws/dunfell/k5.10/${PV}"
>>>>>>>>   SRC_URI = " \
>>>>>>>>       
>>>>>>>> git://git.ti.com/graphics/ti-img-rogue-driver.git;branch=${BRANCH} 
>>>>>>>> \
>>>>>>>> @@ -26,15 +26,19 @@ SRC_URI = " \
>>>>>>>>   S = "${WORKDIR}/git"
>>>>>>>> -SRCREV = "35a25875ae8738f82c7cabc6b077ef992b0cca84"
>>>>>>>> +SRCREV = "ee0674adccac16f5b2f7cb8d5d05948706080cb5"
>>>>>>>> -PVR_SOC = "j721e_linux"
>>>>>>>
>>>>>>> I was actually thinking of keeping PVR_SOC variable and moving it to
>>>>>>> corresponding machine configs.
>>>>>>>
>>>>>>
>>>>>>
>>>>>> PVR_SOC is a bit of a legacy name, especially since PVR is now IMG.
>>>>>
>>>>> PVR or PowerVR name is still used as an overall umbrella for all of
>>>>> Imagination's graphics, vision and AI chips, including SGX and 
>>>>> Rogue/RGX:
>>>>> https://en.wikipedia.org/wiki/PowerVR
>>>>>
>>>>
>>>>
>>>> On the wiki page:
>>>>
>>>>> These GPUs are no longer called PowerVR, they are called IMG.[58]
>>>>
>>>> For their next gen GPUs they are distancing themselves from the PVR 
>>>> name,
>>>> the GPU in AM62xx is one such next gen GPU, so it's already not 
>>>> correct here
>>>> as is.
>>>
>>> So, then why AM62xx is being added to Rogue driver/DDK? Should there 
>>> be a
>>> separate Albiorix driver and DDK then?
>>>
>>
>>
>> We asked IMG very nicely to not fork the DDK for each new gen of 
>> device (like
>> what happened with SGX -> Rogue), so now we have he same driver code base
>> supporting multiple generations of GPU. The name "Rogue" just stuck 
>> around.
>> We should probably rename some of this stuff to also be more generic.
>>
>>
>>>
>>>>>> Thinking on this, the mapping between SoC family and the internal 
>>>>>> names
>>>>>> like "RGX_BVNC" and "TARGET_PRODUCT" are specific to the version 
>>>>>> of this
>>>>>> driver. For instance in the next DDK I may want the target name to
>>>>>> go from "am62_linux" to "axb_128_linux", I would have to
>>>>>> change things here (update the SRCREV) AND in the machine config.
>>>>>
>>>>> 1. I totally agree that "axb_128_linux" makes more sense than 
>>>>> "am62_linux".
>>>>> 2. Changes like that happen very rarely.
>>>>> 3. You can call it PVR_MODEL or PVR_PRODUCT if you want, instead of 
>>>>> PVR_SOC.
>>>>>
>>>>>
>>>>>> Mapping here feels like the right spot to me. I'd even argue the same
>>>>>> for OPTEEMACHINE and the like, should go in the optee.bbappends 
>>>>>> with the
>>>>>> rest of our platform specific recipe fixups, etc.
>>>>>
>>>>> The number of overrides in the recipe will keep on growing, as each 
>>>>> new
>>>>> platform will need to add own config. That's the whole point of the 
>>>>> machine
>>>>> configuration file to have those defined centrally.
>>>>>
>>>>> The goal is to have a recipe as machine-agnostic and clean, as 
>>>>> possible. Do
>>>>> not overwhelm it with tons of conditionals like that - any 
>>>>> machine-specific
>>>>> configuration should be set in the machine config file.
>>>>>
>>>>
>>>>
>>>> Having all the fixups related to a package inside that package's 
>>>> definition sounds
>>>> more central to me, and easier to reason about. But I can see the 
>>>> argument both
>>>> ways.
>>>>
>>>> Maybe the better solution would be to splitup this(and the SGX) 
>>>> recipe. So we
>>>> get a package per GPU type. It's already how the bins are 
>>>> organized/shipped. Then
>>>> we just pick the right GPU package for our SoC in arago-prefs.inc. 
>>>> (again like
>>>> we already do to select between SGX/RGX)
>>>
>>> Yeah, I think keeping each series of GPU (SGX, Rogue, Albiorix) in 
>>> their own
>>> separate recipes would be fine. Or are you suggesting splitting even 
>>> further
>>> into separate recipes for SGX530 vs SGX540, etc?
>>>
>>
>>
>> I'm suggesting even further. The driver/package for SGX530 is not 
>> compatible
>> and conflicts with the driver package for SGX540. So lets not have a 
>> single named
>> package (ti-sgx-ddk-um) that can have very different contents, that's 
>> just confusing.
>>
> 
> 
> Oh, and not separate recipes, separate packages, they can all be provided
> by the same one or two recipes.
> 
> ti-sgx-530-um
> ti-sgx-544-um
> ti-axe1-16m-um
> etc..
> 
> Then:
> 
> PREFERRED_PROVIDER_virtual/libgles2:am62xx = "ti-axe1-16m-um"
> ...
> 
> Andrew

Can we merge for Dunfell and then improve significantly for Kirkstone, 
or do I still need to make changes here for Dunfell?

> 
> 
>> Andrew
>>
>>
>> -=-=-=-=-=-=-=-=-=-=-=-
>> Links: You receive all messages sent to this group.
>> View/Reply Online (#14562): 
>> https://lists.yoctoproject.org/g/meta-ti/message/14562
>> Mute This Topic: https://lists.yoctoproject.org/mt/89983769/3619733
>> Group Owner: meta-ti+owner@lists.yoctoproject.org
>> Unsubscribe: https://lists.yoctoproject.org/g/meta-ti/unsub [afd@ti.com]
>> -=-=-=-=-=-=-=-=-=-=-=-
>>
Denys Dmytriyenko March 29, 2022, 11:26 p.m. UTC | #11
On Tue, Mar 29, 2022 at 04:48:43PM -0500, Etheridge, Darren wrote:
> On 3/25/2022 5:36 PM, Andrew Davis wrote:
> >On 3/25/22 5:30 PM, Andrew F. Davis via lists.yoctoproject.org wrote:
> >>On 3/25/22 5:06 PM, Denys Dmytriyenko wrote:
> >>>On Fri, Mar 25, 2022 at 04:54:56PM -0500, Andrew F. Davis via
> >>>lists.yoctoproject.org wrote:
> >>>>On 3/25/22 4:38 PM, Denys Dmytriyenko wrote:
> >>>>>On Fri, Mar 25, 2022 at 04:21:38PM -0500, Andrew Davis wrote:
> >>>>>>On 3/25/22 3:10 PM, Denys Dmytriyenko wrote:
> >>>>>>>On Wed, Mar 23, 2022 at 02:37:07PM -0500, Darren Etheridge wrote:
> >>>>>>>>Enable the GPU for am62xx and j721s2 and use IMG DDK 1.15
> >>>>>>>>
> >>>>>>>>Migrate Imagination DDK 1.13 to DDK 1.15 for J721e
> >>>>>>>
> >>>>>>>Overall looks good, please see inline below.
> >>>>>>>
> >>>>>>>
> >>>>>>>>Signed-off-by: Darren Etheridge <detheridge@ti.com>
> >>>>>>>>---
> >>>>>>>>
> >>>>>>>>rename from recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.13.5776728.bb
> >>>>>>>>rename to recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb
> >>>>>>>>index a05de0f2..fbff6c51 100644
> >>>>>>>>--- a/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.13.5776728.bb
> >>>>>>>>+++ b/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb
> >>>>>>>>@@ -7,17 +7,17 @@ inherit module features_check
> >>>>>>>>  REQUIRED_MACHINE_FEATURES = "gpu"
> >>>>>>>>-MACHINE_KERNEL_PR_append = "b"
> >>>>>>>>+MACHINE_KERNEL_PR_append = "a"
> >>>>>>>>  PR = "${MACHINE_KERNEL_PR}"
> >>>>>>>>  PACKAGE_ARCH = "${MACHINE_ARCH}"
> >>>>>>>>-COMPATIBLE_MACHINE = "j7"
> >>>>>>>>+COMPATIBLE_MACHINE = "j7-evm|j721s2-evm|am62xx"
> >>>>>>>>  DEPENDS = "virtual/kernel"
> >>>>>>>>  PROVIDES = "virtual/gpudriver"
> >>>>>>>>-BRANCH = "1.13-5776728/linux-k5.10"
> >>>>>>>>+BRANCH = "linuxws/dunfell/k5.10/${PV}"
> >>>>>>>>  SRC_URI = " \
> >>>>>>>>       git://git.ti.com/graphics/ti-img-rogue-driver.git;branch=${BRANCH}
> >>>>>>>>\
> >>>>>>>>@@ -26,15 +26,19 @@ SRC_URI = " \
> >>>>>>>>  S = "${WORKDIR}/git"
> >>>>>>>>-SRCREV = "35a25875ae8738f82c7cabc6b077ef992b0cca84"
> >>>>>>>>+SRCREV = "ee0674adccac16f5b2f7cb8d5d05948706080cb5"
> >>>>>>>>-PVR_SOC = "j721e_linux"
> >>>>>>>
> >>>>>>>I was actually thinking of keeping PVR_SOC variable and moving it to
> >>>>>>>corresponding machine configs.
> >>>>>>>
> >>>>>>
> >>>>>>
> >>>>>>PVR_SOC is a bit of a legacy name, especially since PVR is now IMG.
> >>>>>
> >>>>>PVR or PowerVR name is still used as an overall umbrella for all of
> >>>>>Imagination's graphics, vision and AI chips, including SGX
> >>>>>and Rogue/RGX:
> >>>>>https://en.wikipedia.org/wiki/PowerVR
> >>>>>
> >>>>
> >>>>
> >>>>On the wiki page:
> >>>>
> >>>>>These GPUs are no longer called PowerVR, they are called IMG.[58]
> >>>>
> >>>>For their next gen GPUs they are distancing themselves from
> >>>>the PVR name,
> >>>>the GPU in AM62xx is one such next gen GPU, so it's already
> >>>>not correct here
> >>>>as is.
> >>>
> >>>So, then why AM62xx is being added to Rogue driver/DDK? Should
> >>>there be a
> >>>separate Albiorix driver and DDK then?
> >>>
> >>
> >>
> >>We asked IMG very nicely to not fork the DDK for each new gen of
> >>device (like
> >>what happened with SGX -> Rogue), so now we have he same driver code base
> >>supporting multiple generations of GPU. The name "Rogue" just
> >>stuck around.
> >>We should probably rename some of this stuff to also be more generic.
> >>
> >>
> >>>
> >>>>>>Thinking on this, the mapping between SoC family and the
> >>>>>>internal names
> >>>>>>like "RGX_BVNC" and "TARGET_PRODUCT" are specific to the
> >>>>>>version of this
> >>>>>>driver. For instance in the next DDK I may want the target name to
> >>>>>>go from "am62_linux" to "axb_128_linux", I would have to
> >>>>>>change things here (update the SRCREV) AND in the machine config.
> >>>>>
> >>>>>1. I totally agree that "axb_128_linux" makes more sense
> >>>>>than "am62_linux".
> >>>>>2. Changes like that happen very rarely.
> >>>>>3. You can call it PVR_MODEL or PVR_PRODUCT if you want,
> >>>>>instead of PVR_SOC.
> >>>>>
> >>>>>
> >>>>>>Mapping here feels like the right spot to me. I'd even argue the same
> >>>>>>for OPTEEMACHINE and the like, should go in the
> >>>>>>optee.bbappends with the
> >>>>>>rest of our platform specific recipe fixups, etc.
> >>>>>
> >>>>>The number of overrides in the recipe will keep on
> >>>>>growing, as each new
> >>>>>platform will need to add own config. That's the whole
> >>>>>point of the machine
> >>>>>configuration file to have those defined centrally.
> >>>>>
> >>>>>The goal is to have a recipe as machine-agnostic and
> >>>>>clean, as possible. Do
> >>>>>not overwhelm it with tons of conditionals like that - any
> >>>>>machine-specific
> >>>>>configuration should be set in the machine config file.
> >>>>>
> >>>>
> >>>>
> >>>>Having all the fixups related to a package inside that
> >>>>package's definition sounds
> >>>>more central to me, and easier to reason about. But I can
> >>>>see the argument both
> >>>>ways.
> >>>>
> >>>>Maybe the better solution would be to splitup this(and the
> >>>>SGX) recipe. So we
> >>>>get a package per GPU type. It's already how the bins are
> >>>>organized/shipped. Then
> >>>>we just pick the right GPU package for our SoC in
> >>>>arago-prefs.inc. (again like
> >>>>we already do to select between SGX/RGX)
> >>>
> >>>Yeah, I think keeping each series of GPU (SGX, Rogue,
> >>>Albiorix) in their own
> >>>separate recipes would be fine. Or are you suggesting
> >>>splitting even further
> >>>into separate recipes for SGX530 vs SGX540, etc?
> >>>
> >>
> >>
> >>I'm suggesting even further. The driver/package for SGX530 is
> >>not compatible
> >>and conflicts with the driver package for SGX540. So lets not
> >>have a single named
> >>package (ti-sgx-ddk-um) that can have very different contents,
> >>that's just confusing.
> >>
> >
> >
> >Oh, and not separate recipes, separate packages, they can all be provided
> >by the same one or two recipes.
> >
> >ti-sgx-530-um
> >ti-sgx-544-um
> >ti-axe1-16m-um
> >etc..
> >
> >Then:
> >
> >PREFERRED_PROVIDER_virtual/libgles2:am62xx = "ti-axe1-16m-um"
> >...
> >
> >Andrew
> 
> Can we merge for Dunfell and then improve significantly for
> Kirkstone, or do I still need to make changes here for Dunfell?

This is fine with me for Dunfell.
Ryan Eatmon March 30, 2022, 12:40 p.m. UTC | #12
On 3/29/2022 6:26 PM, Denys Dmytriyenko wrote:
> On Tue, Mar 29, 2022 at 04:48:43PM -0500, Etheridge, Darren wrote:
>> On 3/25/2022 5:36 PM, Andrew Davis wrote:
>>> On 3/25/22 5:30 PM, Andrew F. Davis via lists.yoctoproject.org wrote:
>>>> On 3/25/22 5:06 PM, Denys Dmytriyenko wrote:
>>>>> On Fri, Mar 25, 2022 at 04:54:56PM -0500, Andrew F. Davis via
>>>>> lists.yoctoproject.org wrote:
>>>>>> On 3/25/22 4:38 PM, Denys Dmytriyenko wrote:
>>>>>>> On Fri, Mar 25, 2022 at 04:21:38PM -0500, Andrew Davis wrote:
>>>>>>>> On 3/25/22 3:10 PM, Denys Dmytriyenko wrote:
>>>>>>>>> On Wed, Mar 23, 2022 at 02:37:07PM -0500, Darren Etheridge wrote:
>>>>>>>>>> Enable the GPU for am62xx and j721s2 and use IMG DDK 1.15
>>>>>>>>>>
>>>>>>>>>> Migrate Imagination DDK 1.13 to DDK 1.15 for J721e
>>>>>>>>>
>>>>>>>>> Overall looks good, please see inline below.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> Signed-off-by: Darren Etheridge <detheridge@ti.com>
>>>>>>>>>> ---
>>>>>>>>>>
>>>>>>>>>> rename from recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.13.5776728.bb
>>>>>>>>>> rename to recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb
>>>>>>>>>> index a05de0f2..fbff6c51 100644
>>>>>>>>>> --- a/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.13.5776728.bb
>>>>>>>>>> +++ b/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb
>>>>>>>>>> @@ -7,17 +7,17 @@ inherit module features_check
>>>>>>>>>>    REQUIRED_MACHINE_FEATURES = "gpu"
>>>>>>>>>> -MACHINE_KERNEL_PR_append = "b"
>>>>>>>>>> +MACHINE_KERNEL_PR_append = "a"
>>>>>>>>>>    PR = "${MACHINE_KERNEL_PR}"
>>>>>>>>>>    PACKAGE_ARCH = "${MACHINE_ARCH}"
>>>>>>>>>> -COMPATIBLE_MACHINE = "j7"
>>>>>>>>>> +COMPATIBLE_MACHINE = "j7-evm|j721s2-evm|am62xx"
>>>>>>>>>>    DEPENDS = "virtual/kernel"
>>>>>>>>>>    PROVIDES = "virtual/gpudriver"
>>>>>>>>>> -BRANCH = "1.13-5776728/linux-k5.10"
>>>>>>>>>> +BRANCH = "linuxws/dunfell/k5.10/${PV}"
>>>>>>>>>>    SRC_URI = " \
>>>>>>>>>>        git://git.ti.com/graphics/ti-img-rogue-driver.git;branch=${BRANCH}
>>>>>>>>>> \
>>>>>>>>>> @@ -26,15 +26,19 @@ SRC_URI = " \
>>>>>>>>>>    S = "${WORKDIR}/git"
>>>>>>>>>> -SRCREV = "35a25875ae8738f82c7cabc6b077ef992b0cca84"
>>>>>>>>>> +SRCREV = "ee0674adccac16f5b2f7cb8d5d05948706080cb5"
>>>>>>>>>> -PVR_SOC = "j721e_linux"
>>>>>>>>>
>>>>>>>>> I was actually thinking of keeping PVR_SOC variable and moving it to
>>>>>>>>> corresponding machine configs.
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> PVR_SOC is a bit of a legacy name, especially since PVR is now IMG.
>>>>>>>
>>>>>>> PVR or PowerVR name is still used as an overall umbrella for all of
>>>>>>> Imagination's graphics, vision and AI chips, including SGX
>>>>>>> and Rogue/RGX:
>>>>>>> https://en.wikipedia.org/wiki/PowerVR
>>>>>>>
>>>>>>
>>>>>>
>>>>>> On the wiki page:
>>>>>>
>>>>>>> These GPUs are no longer called PowerVR, they are called IMG.[58]
>>>>>>
>>>>>> For their next gen GPUs they are distancing themselves from
>>>>>> the PVR name,
>>>>>> the GPU in AM62xx is one such next gen GPU, so it's already
>>>>>> not correct here
>>>>>> as is.
>>>>>
>>>>> So, then why AM62xx is being added to Rogue driver/DDK? Should
>>>>> there be a
>>>>> separate Albiorix driver and DDK then?
>>>>>
>>>>
>>>>
>>>> We asked IMG very nicely to not fork the DDK for each new gen of
>>>> device (like
>>>> what happened with SGX -> Rogue), so now we have he same driver code base
>>>> supporting multiple generations of GPU. The name "Rogue" just
>>>> stuck around.
>>>> We should probably rename some of this stuff to also be more generic.
>>>>
>>>>
>>>>>
>>>>>>>> Thinking on this, the mapping between SoC family and the
>>>>>>>> internal names
>>>>>>>> like "RGX_BVNC" and "TARGET_PRODUCT" are specific to the
>>>>>>>> version of this
>>>>>>>> driver. For instance in the next DDK I may want the target name to
>>>>>>>> go from "am62_linux" to "axb_128_linux", I would have to
>>>>>>>> change things here (update the SRCREV) AND in the machine config.
>>>>>>>
>>>>>>> 1. I totally agree that "axb_128_linux" makes more sense
>>>>>>> than "am62_linux".
>>>>>>> 2. Changes like that happen very rarely.
>>>>>>> 3. You can call it PVR_MODEL or PVR_PRODUCT if you want,
>>>>>>> instead of PVR_SOC.
>>>>>>>
>>>>>>>
>>>>>>>> Mapping here feels like the right spot to me. I'd even argue the same
>>>>>>>> for OPTEEMACHINE and the like, should go in the
>>>>>>>> optee.bbappends with the
>>>>>>>> rest of our platform specific recipe fixups, etc.
>>>>>>>
>>>>>>> The number of overrides in the recipe will keep on
>>>>>>> growing, as each new
>>>>>>> platform will need to add own config. That's the whole
>>>>>>> point of the machine
>>>>>>> configuration file to have those defined centrally.
>>>>>>>
>>>>>>> The goal is to have a recipe as machine-agnostic and
>>>>>>> clean, as possible. Do
>>>>>>> not overwhelm it with tons of conditionals like that - any
>>>>>>> machine-specific
>>>>>>> configuration should be set in the machine config file.
>>>>>>>
>>>>>>
>>>>>>
>>>>>> Having all the fixups related to a package inside that
>>>>>> package's definition sounds
>>>>>> more central to me, and easier to reason about. But I can
>>>>>> see the argument both
>>>>>> ways.
>>>>>>
>>>>>> Maybe the better solution would be to splitup this(and the
>>>>>> SGX) recipe. So we
>>>>>> get a package per GPU type. It's already how the bins are
>>>>>> organized/shipped. Then
>>>>>> we just pick the right GPU package for our SoC in
>>>>>> arago-prefs.inc. (again like
>>>>>> we already do to select between SGX/RGX)
>>>>>
>>>>> Yeah, I think keeping each series of GPU (SGX, Rogue,
>>>>> Albiorix) in their own
>>>>> separate recipes would be fine. Or are you suggesting
>>>>> splitting even further
>>>>> into separate recipes for SGX530 vs SGX540, etc?
>>>>>
>>>>
>>>>
>>>> I'm suggesting even further. The driver/package for SGX530 is
>>>> not compatible
>>>> and conflicts with the driver package for SGX540. So lets not
>>>> have a single named
>>>> package (ti-sgx-ddk-um) that can have very different contents,
>>>> that's just confusing.
>>>>
>>>
>>>
>>> Oh, and not separate recipes, separate packages, they can all be provided
>>> by the same one or two recipes.
>>>
>>> ti-sgx-530-um
>>> ti-sgx-544-um
>>> ti-axe1-16m-um
>>> etc..
>>>
>>> Then:
>>>
>>> PREFERRED_PROVIDER_virtual/libgles2:am62xx = "ti-axe1-16m-um"
>>> ...
>>>
>>> Andrew
>>
>> Can we merge for Dunfell and then improve significantly for
>> Kirkstone, or do I still need to make changes here for Dunfell?
> 
> This is fine with me for Dunfell.


Applied patch to dunfell-next.
Denys Dmytriyenko April 30, 2022, 6:02 p.m. UTC | #13
Darren,

DDK 1.15 (kernel driver) build fails for am62x using GCC 11:

| .../build/tmp-default-glibc/work/am62xx_evm-oe-linux/ti-img-rogue-driver/1.15.6133109-r0a/git/binary_am62_linux_wayland_release/target_aarch64/kbuild/services/server/devices/rogue/rgxinit.c:1345:36: error: implicit conversion from 'enum <anonymous>' to 'IMG_BOOL' {aka 'enum tag_img_bool'} [-Werror=enum-conversion]
|  1345 |                         bEnableAPM = false;
|       |                                    ^

Can you please take a look? Thanks.
Denys Dmytriyenko May 2, 2022, 2:57 a.m. UTC | #14
On Sat, Apr 30, 2022 at 02:02:27PM -0400, Denys Dmytriyenko wrote:
> Darren,
> 
> DDK 1.15 (kernel driver) build fails for am62x using GCC 11:
> 
> | .../build/tmp-default-glibc/work/am62xx_evm-oe-linux/ti-img-rogue-driver/1.15.6133109-r0a/git/binary_am62_linux_wayland_release/target_aarch64/kbuild/services/server/devices/rogue/rgxinit.c:1345:36: error: implicit conversion from 'enum <anonymous>' to 'IMG_BOOL' {aka 'enum tag_img_bool'} [-Werror=enum-conversion]
> |  1345 |                         bEnableAPM = false;
> |       |                                    ^
> 
> Can you please take a look? Thanks.

Never mind, I have a fix.


> 
> -- 
> Denys
> 
> 
> On Wed, Mar 23, 2022 at 02:37:07PM -0500, Darren Etheridge wrote:
> > Enable the GPU for am62xx and j721s2 and use IMG DDK 1.15
> > 
> > Migrate Imagination DDK 1.13 to DDK 1.15 for J721e
> > 
> > Signed-off-by: Darren Etheridge <detheridge@ti.com>
> > ---
> > 
> > No changes in the content of the patch, however I regenerated it with the 
> > similarity threshold reduced as requested by Denys.
> > 
> >  conf/machine/am62xx-evm.conf                  |  2 ++
> >  conf/machine/j721s2-evm.conf                  |  2 ++
> >  ...bb => ti-img-rogue-driver_1.15.6133109.bb} | 20 +++++++++++--------
> >  ...bb => ti-img-rogue-umlibs_1.15.6133109.bb} | 13 ++++++------
> >  4 files changed, 23 insertions(+), 14 deletions(-)
> >  rename recipes-bsp/powervr-drivers/{ti-img-rogue-driver_1.13.5776728.bb => ti-img-rogue-driver_1.15.6133109.bb} (48%)
> >  rename recipes-graphics/libgles/{ti-img-rogue-umlibs_1.13.5776728.bb => ti-img-rogue-umlibs_1.15.6133109.bb} (84%)
> > 
> > diff --git a/conf/machine/am62xx-evm.conf b/conf/machine/am62xx-evm.conf
> > index 600abb58..086e40e4 100644
> > --- a/conf/machine/am62xx-evm.conf
> > +++ b/conf/machine/am62xx-evm.conf
> > @@ -4,6 +4,8 @@
> >  
> >  require conf/machine/include/am62xx.inc
> >  
> > +MACHINE_FEATURES += "gpu"
> > +
> >  KERNEL_DEVICETREE = " \
> >      ti/k3-am625-sk.dtb \
> >      ti/k3-am625-sk-lpmdemo.dtb \
> > diff --git a/conf/machine/j721s2-evm.conf b/conf/machine/j721s2-evm.conf
> > index 82fd33da..e5ed0b73 100644
> > --- a/conf/machine/j721s2-evm.conf
> > +++ b/conf/machine/j721s2-evm.conf
> > @@ -4,6 +4,8 @@
> >  
> >  require conf/machine/include/j7.inc
> >  
> > +MACHINE_FEATURES += "gpu"
> > +
> >  SERIAL_CONSOLES = "115200;ttyS10"
> >  SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
> >  TFA_K3_USART = "0x8"
> > diff --git a/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.13.5776728.bb b/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb
> > similarity index 48%
> > rename from recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.13.5776728.bb
> > rename to recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb
> > index a05de0f2..fbff6c51 100644
> > --- a/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.13.5776728.bb
> > +++ b/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb
> > @@ -7,17 +7,17 @@ inherit module features_check
> >  
> >  REQUIRED_MACHINE_FEATURES = "gpu"
> >  
> > -MACHINE_KERNEL_PR_append = "b"
> > +MACHINE_KERNEL_PR_append = "a"
> >  PR = "${MACHINE_KERNEL_PR}"
> >  
> >  PACKAGE_ARCH = "${MACHINE_ARCH}"
> > -COMPATIBLE_MACHINE = "j7"
> > +COMPATIBLE_MACHINE = "j7-evm|j721s2-evm|am62xx"
> >  
> >  DEPENDS = "virtual/kernel"
> >  
> >  PROVIDES = "virtual/gpudriver"
> >  
> > -BRANCH = "1.13-5776728/linux-k5.10"
> > +BRANCH = "linuxws/dunfell/k5.10/${PV}"
> >  
> >  SRC_URI = " \
> >      git://git.ti.com/graphics/ti-img-rogue-driver.git;branch=${BRANCH} \
> > @@ -26,15 +26,19 @@ SRC_URI = " \
> >  
> >  S = "${WORKDIR}/git"
> >  
> > -SRCREV = "35a25875ae8738f82c7cabc6b077ef992b0cca84"
> > +SRCREV = "ee0674adccac16f5b2f7cb8d5d05948706080cb5"
> >  
> > -PVR_SOC = "j721e_linux"
> > -PVR_BVNC = "22.104.208.318"
> > +TARGET_PRODUCT_j7-evm = "j721e_linux"
> > +TARGET_PRODUCT_j721s2-evm = "j721s2_linux"
> > +TARGET_PRODUCT_am62xx = "am62_linux"
> > +TARGET_BVNC_j7-evm = "22.104.208.318"
> > +TARGET_BVNC_j721s2-evm = "36.53.104.796"
> > +TARGET_BVNC_am62xx = "33.15.11.3"
> >  PVR_BUILD = "release"
> >  PVR_WS = "wayland"
> >  
> > -EXTRA_OEMAKE += 'KERNELDIR="${STAGING_KERNEL_DIR}" RGX_BVNC=${PVR_BVNC} BUILD=${PVR_BUILD} PVR_BUILD_DIR=${PVR_SOC} WINDOW_SYSTEM=${PVR_WS}'
> > +EXTRA_OEMAKE += 'KERNELDIR="${STAGING_KERNEL_DIR}" RGX_BVNC=${TARGET_BVNC} BUILD=${PVR_BUILD} PVR_BUILD_DIR=${TARGET_PRODUCT} WINDOW_SYSTEM=${PVR_WS}'
> >  
> >  do_install() {
> > -    make -C ${STAGING_KERNEL_DIR} M=${B}/binary_${PVR_SOC}_${PVR_WS}_${PVR_BUILD}/target_aarch64/kbuild INSTALL_MOD_PATH=${D}${root_prefix} PREFIX=${STAGING_DIR_HOST} modules_install
> > +    make -C ${STAGING_KERNEL_DIR} M=${B}/binary_${TARGET_PRODUCT}_${PVR_WS}_${PVR_BUILD}/target_aarch64/kbuild INSTALL_MOD_PATH=${D}${root_prefix} PREFIX=${STAGING_DIR_HOST} modules_install
> >  }
> > diff --git a/recipes-graphics/libgles/ti-img-rogue-umlibs_1.13.5776728.bb b/recipes-graphics/libgles/ti-img-rogue-umlibs_1.15.6133109.bb
> > similarity index 84%
> > rename from recipes-graphics/libgles/ti-img-rogue-umlibs_1.13.5776728.bb
> > rename to recipes-graphics/libgles/ti-img-rogue-umlibs_1.15.6133109.bb
> > index 5194015e..e00dce99 100644
> > --- a/recipes-graphics/libgles/ti-img-rogue-umlibs_1.13.5776728.bb
> > +++ b/recipes-graphics/libgles/ti-img-rogue-umlibs_1.15.6133109.bb
> > @@ -8,17 +8,18 @@ inherit features_check
> >  REQUIRED_MACHINE_FEATURES = "gpu"
> >  
> >  PACKAGE_ARCH = "${MACHINE_ARCH}"
> > -COMPATIBLE_MACHINE = "j7"
> > +COMPATIBLE_MACHINE = "j7-evm|j721s2-evm|am62xx"
> >  
> > -PR = "r3"
> > +PR = "r1"
> >  
> >  BRANCH = "linuxws/dunfell/k5.10/${PV}"
> >  
> >  SRC_URI = "git://git.ti.com/graphics/ti-img-rogue-umlibs.git;branch=${BRANCH}"
> > +SRCREV = "47c3ffc44f2881397d45c8a2b5dfa7d6c58b79fb"
> >  
> > -SRCREV = "5ef38353c38d921a65ea6df75c7b6ce710b66034"
> > -
> > -PVR_SOC ?= "j721e_linux"
> > +TARGET_PRODUCT_j7-evm = "j721e_linux"
> > +TARGET_PRODUCT_j721s2-evm = "j721s2_linux"
> > +TARGET_PRODUCT_am62xx = "am62_linux"
> >  PVR_BUILD ?= "release"
> >  PVR_WS = "wayland"
> >  
> > @@ -50,7 +51,7 @@ RRECOMMENDS_${PN} += "ti-img-rogue-driver"
> >  S = "${WORKDIR}/git"
> >  
> >  do_install () {
> > -    oe_runmake install DESTDIR=${D} TARGET_PRODUCT=${PVR_SOC} BUILD=${PVR_BUILD} WINDOW_SYSTEM=${PVR_WS}
> > +    oe_runmake install DESTDIR=${D} TARGET_PRODUCT=${TARGET_PRODUCT} BUILD=${PVR_BUILD} WINDOW_SYSTEM=${PVR_WS}
> >      chown -R root:root ${D}
> >  }
> >  
> > -- 
> > 2.17.1
> > 

> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#14637): https://lists.yoctoproject.org/g/meta-ti/message/14637
> Mute This Topic: https://lists.yoctoproject.org/mt/89983769/3617104
> Group Owner: meta-ti+owner@lists.yoctoproject.org
> Unsubscribe: https://lists.yoctoproject.org/g/meta-ti/unsub [denis@denix.org]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Denys Dmytriyenko May 2, 2022, 2:58 a.m. UTC | #15
On Sat, Apr 30, 2022 at 02:02:27PM -0400, Denys Dmytriyenko wrote:
> Darren,
> 
> DDK 1.15 (kernel driver) build fails for am62x using GCC 11:
> 
> | .../build/tmp-default-glibc/work/am62xx_evm-oe-linux/ti-img-rogue-driver/1.15.6133109-r0a/git/binary_am62_linux_wayland_release/target_aarch64/kbuild/services/server/devices/rogue/rgxinit.c:1345:36: error: implicit conversion from 'enum <anonymous>' to 'IMG_BOOL' {aka 'enum tag_img_bool'} [-Werror=enum-conversion]
> |  1345 |                         bEnableAPM = false;
> |       |                                    ^
> 
> Can you please take a look? Thanks.

Never mind, I hace a fix.


> 
> -- 
> Denys
> 
> 
> On Wed, Mar 23, 2022 at 02:37:07PM -0500, Darren Etheridge wrote:
> > Enable the GPU for am62xx and j721s2 and use IMG DDK 1.15
> > 
> > Migrate Imagination DDK 1.13 to DDK 1.15 for J721e
> > 
> > Signed-off-by: Darren Etheridge <detheridge@ti.com>
> > ---
> > 
> > No changes in the content of the patch, however I regenerated it with the 
> > similarity threshold reduced as requested by Denys.
> > 
> >  conf/machine/am62xx-evm.conf                  |  2 ++
> >  conf/machine/j721s2-evm.conf                  |  2 ++
> >  ...bb => ti-img-rogue-driver_1.15.6133109.bb} | 20 +++++++++++--------
> >  ...bb => ti-img-rogue-umlibs_1.15.6133109.bb} | 13 ++++++------
> >  4 files changed, 23 insertions(+), 14 deletions(-)
> >  rename recipes-bsp/powervr-drivers/{ti-img-rogue-driver_1.13.5776728.bb => ti-img-rogue-driver_1.15.6133109.bb} (48%)
> >  rename recipes-graphics/libgles/{ti-img-rogue-umlibs_1.13.5776728.bb => ti-img-rogue-umlibs_1.15.6133109.bb} (84%)
> > 
> > diff --git a/conf/machine/am62xx-evm.conf b/conf/machine/am62xx-evm.conf
> > index 600abb58..086e40e4 100644
> > --- a/conf/machine/am62xx-evm.conf
> > +++ b/conf/machine/am62xx-evm.conf
> > @@ -4,6 +4,8 @@
> >  
> >  require conf/machine/include/am62xx.inc
> >  
> > +MACHINE_FEATURES += "gpu"
> > +
> >  KERNEL_DEVICETREE = " \
> >      ti/k3-am625-sk.dtb \
> >      ti/k3-am625-sk-lpmdemo.dtb \
> > diff --git a/conf/machine/j721s2-evm.conf b/conf/machine/j721s2-evm.conf
> > index 82fd33da..e5ed0b73 100644
> > --- a/conf/machine/j721s2-evm.conf
> > +++ b/conf/machine/j721s2-evm.conf
> > @@ -4,6 +4,8 @@
> >  
> >  require conf/machine/include/j7.inc
> >  
> > +MACHINE_FEATURES += "gpu"
> > +
> >  SERIAL_CONSOLES = "115200;ttyS10"
> >  SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
> >  TFA_K3_USART = "0x8"
> > diff --git a/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.13.5776728.bb b/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb
> > similarity index 48%
> > rename from recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.13.5776728.bb
> > rename to recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb
> > index a05de0f2..fbff6c51 100644
> > --- a/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.13.5776728.bb
> > +++ b/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb
> > @@ -7,17 +7,17 @@ inherit module features_check
> >  
> >  REQUIRED_MACHINE_FEATURES = "gpu"
> >  
> > -MACHINE_KERNEL_PR_append = "b"
> > +MACHINE_KERNEL_PR_append = "a"
> >  PR = "${MACHINE_KERNEL_PR}"
> >  
> >  PACKAGE_ARCH = "${MACHINE_ARCH}"
> > -COMPATIBLE_MACHINE = "j7"
> > +COMPATIBLE_MACHINE = "j7-evm|j721s2-evm|am62xx"
> >  
> >  DEPENDS = "virtual/kernel"
> >  
> >  PROVIDES = "virtual/gpudriver"
> >  
> > -BRANCH = "1.13-5776728/linux-k5.10"
> > +BRANCH = "linuxws/dunfell/k5.10/${PV}"
> >  
> >  SRC_URI = " \
> >      git://git.ti.com/graphics/ti-img-rogue-driver.git;branch=${BRANCH} \
> > @@ -26,15 +26,19 @@ SRC_URI = " \
> >  
> >  S = "${WORKDIR}/git"
> >  
> > -SRCREV = "35a25875ae8738f82c7cabc6b077ef992b0cca84"
> > +SRCREV = "ee0674adccac16f5b2f7cb8d5d05948706080cb5"
> >  
> > -PVR_SOC = "j721e_linux"
> > -PVR_BVNC = "22.104.208.318"
> > +TARGET_PRODUCT_j7-evm = "j721e_linux"
> > +TARGET_PRODUCT_j721s2-evm = "j721s2_linux"
> > +TARGET_PRODUCT_am62xx = "am62_linux"
> > +TARGET_BVNC_j7-evm = "22.104.208.318"
> > +TARGET_BVNC_j721s2-evm = "36.53.104.796"
> > +TARGET_BVNC_am62xx = "33.15.11.3"
> >  PVR_BUILD = "release"
> >  PVR_WS = "wayland"
> >  
> > -EXTRA_OEMAKE += 'KERNELDIR="${STAGING_KERNEL_DIR}" RGX_BVNC=${PVR_BVNC} BUILD=${PVR_BUILD} PVR_BUILD_DIR=${PVR_SOC} WINDOW_SYSTEM=${PVR_WS}'
> > +EXTRA_OEMAKE += 'KERNELDIR="${STAGING_KERNEL_DIR}" RGX_BVNC=${TARGET_BVNC} BUILD=${PVR_BUILD} PVR_BUILD_DIR=${TARGET_PRODUCT} WINDOW_SYSTEM=${PVR_WS}'
> >  
> >  do_install() {
> > -    make -C ${STAGING_KERNEL_DIR} M=${B}/binary_${PVR_SOC}_${PVR_WS}_${PVR_BUILD}/target_aarch64/kbuild INSTALL_MOD_PATH=${D}${root_prefix} PREFIX=${STAGING_DIR_HOST} modules_install
> > +    make -C ${STAGING_KERNEL_DIR} M=${B}/binary_${TARGET_PRODUCT}_${PVR_WS}_${PVR_BUILD}/target_aarch64/kbuild INSTALL_MOD_PATH=${D}${root_prefix} PREFIX=${STAGING_DIR_HOST} modules_install
> >  }
> > diff --git a/recipes-graphics/libgles/ti-img-rogue-umlibs_1.13.5776728.bb b/recipes-graphics/libgles/ti-img-rogue-umlibs_1.15.6133109.bb
> > similarity index 84%
> > rename from recipes-graphics/libgles/ti-img-rogue-umlibs_1.13.5776728.bb
> > rename to recipes-graphics/libgles/ti-img-rogue-umlibs_1.15.6133109.bb
> > index 5194015e..e00dce99 100644
> > --- a/recipes-graphics/libgles/ti-img-rogue-umlibs_1.13.5776728.bb
> > +++ b/recipes-graphics/libgles/ti-img-rogue-umlibs_1.15.6133109.bb
> > @@ -8,17 +8,18 @@ inherit features_check
> >  REQUIRED_MACHINE_FEATURES = "gpu"
> >  
> >  PACKAGE_ARCH = "${MACHINE_ARCH}"
> > -COMPATIBLE_MACHINE = "j7"
> > +COMPATIBLE_MACHINE = "j7-evm|j721s2-evm|am62xx"
> >  
> > -PR = "r3"
> > +PR = "r1"
> >  
> >  BRANCH = "linuxws/dunfell/k5.10/${PV}"
> >  
> >  SRC_URI = "git://git.ti.com/graphics/ti-img-rogue-umlibs.git;branch=${BRANCH}"
> > +SRCREV = "47c3ffc44f2881397d45c8a2b5dfa7d6c58b79fb"
> >  
> > -SRCREV = "5ef38353c38d921a65ea6df75c7b6ce710b66034"
> > -
> > -PVR_SOC ?= "j721e_linux"
> > +TARGET_PRODUCT_j7-evm = "j721e_linux"
> > +TARGET_PRODUCT_j721s2-evm = "j721s2_linux"
> > +TARGET_PRODUCT_am62xx = "am62_linux"
> >  PVR_BUILD ?= "release"
> >  PVR_WS = "wayland"
> >  
> > @@ -50,7 +51,7 @@ RRECOMMENDS_${PN} += "ti-img-rogue-driver"
> >  S = "${WORKDIR}/git"
> >  
> >  do_install () {
> > -    oe_runmake install DESTDIR=${D} TARGET_PRODUCT=${PVR_SOC} BUILD=${PVR_BUILD} WINDOW_SYSTEM=${PVR_WS}
> > +    oe_runmake install DESTDIR=${D} TARGET_PRODUCT=${TARGET_PRODUCT} BUILD=${PVR_BUILD} WINDOW_SYSTEM=${PVR_WS}
> >      chown -R root:root ${D}
> >  }
> >  
> > -- 
> > 2.17.1
> > 

> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#14637): https://lists.yoctoproject.org/g/meta-ti/message/14637
> Mute This Topic: https://lists.yoctoproject.org/mt/89983769/3617104
> Group Owner: meta-ti+owner@lists.yoctoproject.org
> Unsubscribe: https://lists.yoctoproject.org/g/meta-ti/unsub [denis@denix.org]
> -=-=-=-=-=-=-=-=-=-=-=-
>

Patch

diff --git a/conf/machine/am62xx-evm.conf b/conf/machine/am62xx-evm.conf
index 600abb58..086e40e4 100644
--- a/conf/machine/am62xx-evm.conf
+++ b/conf/machine/am62xx-evm.conf
@@ -4,6 +4,8 @@ 
 
 require conf/machine/include/am62xx.inc
 
+MACHINE_FEATURES += "gpu"
+
 KERNEL_DEVICETREE = " \
     ti/k3-am625-sk.dtb \
     ti/k3-am625-sk-lpmdemo.dtb \
diff --git a/conf/machine/j721s2-evm.conf b/conf/machine/j721s2-evm.conf
index 82fd33da..e5ed0b73 100644
--- a/conf/machine/j721s2-evm.conf
+++ b/conf/machine/j721s2-evm.conf
@@ -4,6 +4,8 @@ 
 
 require conf/machine/include/j7.inc
 
+MACHINE_FEATURES += "gpu"
+
 SERIAL_CONSOLES = "115200;ttyS10"
 SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
 TFA_K3_USART = "0x8"
diff --git a/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.13.5776728.bb b/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb
similarity index 48%
rename from recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.13.5776728.bb
rename to recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb
index a05de0f2..fbff6c51 100644
--- a/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.13.5776728.bb
+++ b/recipes-bsp/powervr-drivers/ti-img-rogue-driver_1.15.6133109.bb
@@ -7,17 +7,17 @@  inherit module features_check
 
 REQUIRED_MACHINE_FEATURES = "gpu"
 
-MACHINE_KERNEL_PR_append = "b"
+MACHINE_KERNEL_PR_append = "a"
 PR = "${MACHINE_KERNEL_PR}"
 
 PACKAGE_ARCH = "${MACHINE_ARCH}"
-COMPATIBLE_MACHINE = "j7"
+COMPATIBLE_MACHINE = "j7-evm|j721s2-evm|am62xx"
 
 DEPENDS = "virtual/kernel"
 
 PROVIDES = "virtual/gpudriver"
 
-BRANCH = "1.13-5776728/linux-k5.10"
+BRANCH = "linuxws/dunfell/k5.10/${PV}"
 
 SRC_URI = " \
     git://git.ti.com/graphics/ti-img-rogue-driver.git;branch=${BRANCH} \
@@ -26,15 +26,19 @@  SRC_URI = " \
 
 S = "${WORKDIR}/git"
 
-SRCREV = "35a25875ae8738f82c7cabc6b077ef992b0cca84"
+SRCREV = "ee0674adccac16f5b2f7cb8d5d05948706080cb5"
 
-PVR_SOC = "j721e_linux"
-PVR_BVNC = "22.104.208.318"
+TARGET_PRODUCT_j7-evm = "j721e_linux"
+TARGET_PRODUCT_j721s2-evm = "j721s2_linux"
+TARGET_PRODUCT_am62xx = "am62_linux"
+TARGET_BVNC_j7-evm = "22.104.208.318"
+TARGET_BVNC_j721s2-evm = "36.53.104.796"
+TARGET_BVNC_am62xx = "33.15.11.3"
 PVR_BUILD = "release"
 PVR_WS = "wayland"
 
-EXTRA_OEMAKE += 'KERNELDIR="${STAGING_KERNEL_DIR}" RGX_BVNC=${PVR_BVNC} BUILD=${PVR_BUILD} PVR_BUILD_DIR=${PVR_SOC} WINDOW_SYSTEM=${PVR_WS}'
+EXTRA_OEMAKE += 'KERNELDIR="${STAGING_KERNEL_DIR}" RGX_BVNC=${TARGET_BVNC} BUILD=${PVR_BUILD} PVR_BUILD_DIR=${TARGET_PRODUCT} WINDOW_SYSTEM=${PVR_WS}'
 
 do_install() {
-    make -C ${STAGING_KERNEL_DIR} M=${B}/binary_${PVR_SOC}_${PVR_WS}_${PVR_BUILD}/target_aarch64/kbuild INSTALL_MOD_PATH=${D}${root_prefix} PREFIX=${STAGING_DIR_HOST} modules_install
+    make -C ${STAGING_KERNEL_DIR} M=${B}/binary_${TARGET_PRODUCT}_${PVR_WS}_${PVR_BUILD}/target_aarch64/kbuild INSTALL_MOD_PATH=${D}${root_prefix} PREFIX=${STAGING_DIR_HOST} modules_install
 }
diff --git a/recipes-graphics/libgles/ti-img-rogue-umlibs_1.13.5776728.bb b/recipes-graphics/libgles/ti-img-rogue-umlibs_1.15.6133109.bb
similarity index 84%
rename from recipes-graphics/libgles/ti-img-rogue-umlibs_1.13.5776728.bb
rename to recipes-graphics/libgles/ti-img-rogue-umlibs_1.15.6133109.bb
index 5194015e..e00dce99 100644
--- a/recipes-graphics/libgles/ti-img-rogue-umlibs_1.13.5776728.bb
+++ b/recipes-graphics/libgles/ti-img-rogue-umlibs_1.15.6133109.bb
@@ -8,17 +8,18 @@  inherit features_check
 REQUIRED_MACHINE_FEATURES = "gpu"
 
 PACKAGE_ARCH = "${MACHINE_ARCH}"
-COMPATIBLE_MACHINE = "j7"
+COMPATIBLE_MACHINE = "j7-evm|j721s2-evm|am62xx"
 
-PR = "r3"
+PR = "r1"
 
 BRANCH = "linuxws/dunfell/k5.10/${PV}"
 
 SRC_URI = "git://git.ti.com/graphics/ti-img-rogue-umlibs.git;branch=${BRANCH}"
+SRCREV = "47c3ffc44f2881397d45c8a2b5dfa7d6c58b79fb"
 
-SRCREV = "5ef38353c38d921a65ea6df75c7b6ce710b66034"
-
-PVR_SOC ?= "j721e_linux"
+TARGET_PRODUCT_j7-evm = "j721e_linux"
+TARGET_PRODUCT_j721s2-evm = "j721s2_linux"
+TARGET_PRODUCT_am62xx = "am62_linux"
 PVR_BUILD ?= "release"
 PVR_WS = "wayland"
 
@@ -50,7 +51,7 @@  RRECOMMENDS_${PN} += "ti-img-rogue-driver"
 S = "${WORKDIR}/git"
 
 do_install () {
-    oe_runmake install DESTDIR=${D} TARGET_PRODUCT=${PVR_SOC} BUILD=${PVR_BUILD} WINDOW_SYSTEM=${PVR_WS}
+    oe_runmake install DESTDIR=${D} TARGET_PRODUCT=${TARGET_PRODUCT} BUILD=${PVR_BUILD} WINDOW_SYSTEM=${PVR_WS}
     chown -R root:root ${D}
 }