diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 000000000..ae8486a4f --- /dev/null +++ b/.gitmodules @@ -0,0 +1,4 @@ +[submodule "gen-machine-conf"] + path = meta-xilinx-core/gen-machine-conf + url = https://github.com/Xilinx/gen-machine-conf.git + branch = xlnx_rel_v2023.1 diff --git a/docs/README.fpgamanager.custom.md b/docs/README.fpgamanager.custom.md index 53f06703a..ada3985ed 100644 --- a/docs/README.fpgamanager.custom.md +++ b/docs/README.fpgamanager.custom.md @@ -179,8 +179,8 @@ IMAGE_INSTALL:append = " \ * ZynqMP ``` -yocto-zynqmp-generic-20222:~$ sudo su -yocto-zynqmp-generic-20222:/home/petalinux# cat /proc/interrupts +yocto-zynqmp-generic-20231:~$ sudo su +yocto-zynqmp-generic-20231:/home/petalinux# cat /proc/interrupts CPU0 CPU1 CPU2 CPU3 11: 13309 13021 13673 14170 GICv2 30 Level arch_timer 14: 0 0 0 0 GICv2 67 Level zynqmp_ipi @@ -230,7 +230,7 @@ IPI4: 0 0 0 0 Timer broadcast interrupt IPI5: 0 0 0 0 IRQ work interrupts IPI6: 0 0 0 0 CPU wake-up interrupts Err: 0 -yocto-zynqmp-generic-20222:/home/petalinux# tree /lib/firmware/ +yocto-zynqmp-generic-20231:/home/petalinux# tree /lib/firmware/ /lib/firmware/ `-- xilinx `-- zcu111-pl-demo @@ -238,7 +238,7 @@ yocto-zynqmp-generic-20222:/home/petalinux# tree /lib/firmware/ `-- zcu111-pl-demo.dtbo 2 directories, 2 files -yocto-zynqmp-generic-20222:/home/petalinux# fpgautil -b /lib/firmware/xilinx/zcu111-pl-demo/zcu111-pl-demo.bit -o /lib/firmware/xilinx/zcu111-pl-demo/zcu111-pl-demo.dtbo +yocto-zynqmp-generic-20231:/home/petalinux# fpgautil -b /lib/firmware/xilinx/zcu111-pl-demo/zcu111-pl-demo.bit -o /lib/firmware/xilinx/zcu111-pl-demo/zcu111-pl-demo.dtbo [ 91.039773] fpga_manager fpga0: writing zcu111-pl-demo.bit to Xilinx ZynqMP FPGA Manager [ 91.528214] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /fpga-full/firmware-name [ 91.538354] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /fpga-full/pid @@ -259,13 +259,13 @@ yocto-zynqmp-generic-20222:/home/petalinux# fpgautil -b /lib/firmware/xilinx/zcu [ 91.906539] input: pl-gpio-keys as /devices/platform/pl-gpio-keys/input/input1 Time taken to load BIN is 901.000000 Milli Seconds BIN FILE loaded through FPGA manager successfully -yocto-zynqmp-generic-20222:/home/petalinux# +yocto-zynqmp-generic-20231:/home/petalinux# ``` * Versal (DFx Static) ``` -yocto-vck190-dfx-2022:~$ sudo su -root@yocto-vck190-dfx-2022:~# -root@yocto-vck190-dfx-2022:~# fpgautil -o /lib/firmware/xilinx/vck190-dfx-static/vck190-dfx-static.dtbo +yocto-vck190-dfx-2023:~$ sudo su +root@yocto-vck190-dfx-2023:~# +root@yocto-vck190-dfx-2023:~# fpgautil -o /lib/firmware/xilinx/vck190-dfx-static/vck190-dfx-static.dtbo [ 257.555571] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /fpga/external-fpga-config [ 257.565879] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /fpga/pid [ 257.574670] OF: overlay: WARNING: memory leak will occur if overlay removed, property: /fpga/uid @@ -279,11 +279,11 @@ root@yocto-vck190-dfx-2022:~# fpgautil -o /lib/firmware/xilinx/vck190-dfx-static [ 257.663234] of-fpga-region fpga:fpga-PR0: FPGA Region probed [ 257.669135] of-fpga-region fpga:fpga-PR1: FPGA Region probed [ 257.675022] of-fpga-region fpga:fpga-PR2: FPGA Region probed -root@yocto-vck190-dfx-2022:~# +root@yocto-vck190-dfx-2023:~# ``` * Versal (DFx RP) ``` -root@yocto-vck190-dfx-2022:~# fpgautil -b /lib/firmware/xilinx/vck190-dfx-static/rp1/vck190-dfx-rp1rm1-dipsw/vck190-dfx-rp1rm1-dipsw.pdi -o /lib/firmware/xilinx/vck190-dfx-static/rp1/vck190-dfx-rp1rm1-dipsw/vck190-dfx-rp1rm1-dipsw.dtbo -f Partial -n PR0 +root@yocto-vck190-dfx-2023:~# fpgautil -b /lib/firmware/xilinx/vck190-dfx-static/rp1/vck190-dfx-rp1rm1-dipsw/vck190-dfx-rp1rm1-dipsw.pdi -o /lib/firmware/xilinx/vck190-dfx-static/rp1/vck190-dfx-rp1rm1-dipsw/vck190-dfx-rp1rm1-dipsw.dtbo -f Partial -n PR0 [ 273.511455] fpga_manager fpga0: writing vck190-dfx-rp1rm1-dipsw.pdi to Xilinx Versal FPGA Manager [284052.461]Loading PDI from DDR [284052.566]Monolithic/Master Device @@ -314,7 +314,7 @@ root@yocto-vck190-dfx-2022:~# fpgautil -b /lib/firmware/xilinx/vck190-dfx-static [ 273.670490] input: pl-gpio-keys as /devices/platform/pl-gpio-keys/input/input0 Time taken to load BIN is 171.000000 Milli Seconds BIN FILE loaded through FPGA manager successfully -root@yocto-vck190-dfx-2022:~# +root@yocto-vck190-dfx-2023:~# ``` --- @@ -324,7 +324,7 @@ root@yocto-vck190-dfx-2022:~# * Verify PL GPIO DIP switches and Push buttons are registered. * Move the DIP Switches ON/OFF and verify the interrupt counts. ``` -yocto-zynqmp-generic-20222:/home/petalinux# cat /proc/interrupts +yocto-zynqmp-generic-20231:/home/petalinux# cat /proc/interrupts CPU0 CPU1 CPU2 CPU3 11: 23303 22971 24203 24990 GICv2 30 Level arch_timer 14: 0 0 0 0 GICv2 67 Level zynqmp_ipi @@ -387,7 +387,7 @@ IPI4: 0 0 0 0 Timer broadcast interrupt IPI5: 0 0 0 0 IRQ work interrupts IPI6: 0 0 0 0 CPU wake-up interrupts Err: 0 -yocto-zynqmp-generic-20222:/home/petalinux# cat /proc/interrupts +yocto-zynqmp-generic-20231:/home/petalinux# cat /proc/interrupts CPU0 CPU1 CPU2 CPU3 11: 28169 27725 29250 30190 GICv2 30 Level arch_timer 14: 0 0 0 0 GICv2 67 Level zynqmp_ipi @@ -450,22 +450,22 @@ IPI4: 0 0 0 0 Timer broadcast interrupt IPI5: 0 0 0 0 IRQ work interrupts IPI6: 0 0 0 0 CPU wake-up interrupts Err: 0 -yocto-zynqmp-generic-20222:/home/petalinux# +yocto-zynqmp-generic-20231:/home/petalinux# ``` --- ### Unloading PL bitstream or pdi and dt overlay * Zynq or ZynqMP ``` -yocto-zynqmp-generic-20222:/home/petalinux# fpgautil -R +yocto-zynqmp-generic-20231:/home/petalinux# fpgautil -R ``` * Versal (DFx RP) ``` -root@yocto-vck190-dfx-2022:~# fpgautil -R -n PR0 +root@yocto-vck190-dfx-2023:~# fpgautil -R -n PR0 ``` * Versal (DFx Static) ``` -root@yocto-vck190-dfx-2022:~# fpgautil -R -n Full +root@yocto-vck190-dfx-2023:~# fpgautil -R -n Full ``` --- diff --git a/gen-machine-conf b/gen-machine-conf new file mode 120000 index 000000000..3fe520d6a --- /dev/null +++ b/gen-machine-conf @@ -0,0 +1 @@ +meta-xilinx-core/gen-machine-conf \ No newline at end of file diff --git a/meta-microblaze/README.md b/meta-microblaze/README.md index d7bf9117f..9da3f8139 100644 --- a/meta-microblaze/README.md +++ b/meta-microblaze/README.md @@ -18,4 +18,4 @@ This layer depends on: https://git.yoctoproject.org/meta-xilinx (official version) https://github.com/Xilinx/meta-xilinx (development and amd xilinx release) layers: meta-xilinx-core - branch: langdale or amd xilinx release version (e.g. rel-v2022.2) + branch: langdale or amd xilinx release version (e.g. rel-v2023.1) diff --git a/meta-xilinx-bsp/README.md b/meta-xilinx-bsp/README.md index 18056e0d6..29177ad70 100644 --- a/meta-xilinx-bsp/README.md +++ b/meta-xilinx-bsp/README.md @@ -24,6 +24,9 @@ The following boards are supported by the meta-xilinx-bsp layer: | Devices | Evaluation Board | Machine Configuration file | Reference XSA | HW Board Device tree | QEMU tested | HW tested | |------------|-------------------------------------------------------------------------------|--------------------------------------------------------------|-----------------------|-------------------------------------|-------------|-----------| | MicroBlaze | [KC705](https://www.xilinx.com/products/boards-and-kits/ek-k7-kc705-g.html) | [kc705-microblazeel](conf/machine/kc705-microblazeel.conf) | `kc705-microblazeel` | `kc705-full` | Yes | Yes | +| | [AC701](https://www.xilinx.com/products/boards-and-kits/ek-a7-ac701-g.html) | [ac701-microblazeel](conf/machine/ac701-microblazeel.conf) | `ac701-microblazeel` | `ac701-full` | Yes | Yes | +| | [KCU105](https://www.xilinx.com/products/boards-and-kits/kcu105.html) | [kcu105-microblazeel](conf/machine/kcu105-microblazeel.conf) | `kcu105-microblazeel` | `kcu105` | Yes | Yes | +| | [VCU118](https://www.xilinx.com/products/boards-and-kits/vcu118.html) | [vcu118-microblazeel](conf/machine/vcu118-microblazeel.conf) | `vcu118-microblazeel` | `vcu118-rev2.0` | Yes | Yes | | Zynq-7000 | [ZC702](https://www.xilinx.com/products/boards-and-kits/ek-z7-zc702-g.html) | [zc702-zynq7](conf/machine/zc702-zynq7.conf) | `zc702-zynq7` | `zc702` | Yes | Yes | | | [ZC706](https://www.xilinx.com/products/boards-and-kits/ek-z7-zc706-g.html) | [zc706-zynq7](conf/machine/zc706-zynq7.conf) | `zc706-zynq7` | `zc706` | Yes | Yes | | ZynqMP | [ZCU102](https://www.xilinx.com/products/boards-and-kits/ek-u1-zcu102-g.html) | [zcu102-zynqmp](conf/machine/zcu102-zynqmp.conf) | `zcu102-zynqmp` | `zcu102-rev1.0` | Yes | Yes | @@ -32,11 +35,16 @@ The following boards are supported by the meta-xilinx-bsp layer: | | [ZCU111](https://www.xilinx.com/products/boards-and-kits/zcu111.html) | [zcu111-zynqmp](conf/machine/zcu111-zynqmp.conf) | `zcu111-zynqmp` | `zcu111-reva` | Yes | Yes | | | [ZCU1275](https://www.xilinx.com/products/boards-and-kits/zcu1275.html) | [zcu1275-zynqmp](conf/machine/zcu1275-zynqmp.conf) | `zcu1275-zynqmp` | `zcu1275-revb` | Yes | Yes | | | [ZCU1285](https://www.xilinx.com/products/boards-and-kits/zcu1285.html) | [zcu1285-zynqmp](conf/machine/zcu1285-zynqmp.conf) | `zcu1285-zynqmp` | `zcu1285-reva` | Yes | Yes | +| | [ZCU208](https://www.xilinx.com/products/boards-and-kits/zcu208.html) | [zcu208-zynqmp](conf/machine/zcu208-zynqmp.conf) | `zcu208-zynqmp` | `zcu208-reva` | Yes | Yes | | | [ZCU216](https://www.xilinx.com/products/boards-and-kits/zcu216.html) | [zcu216-zynqmp](conf/machine/zcu216-zynqmp.conf) | `zcu216-zynqmp` | `zcu216-reva` | Yes | Yes | +| | [ZCU670](https://www.xilinx.com/products/boards-and-kits/zcu670.html) | [zcu670-zynqmp](conf/machine/zcu670-zynqmp.conf) | `zcu670-zynqmp` | `zcu670-revb` | Yes | Yes | | Versal | [VCK190](https://www.xilinx.com/products/boards-and-kits/vck190.html) | [vck190-versal](conf/machine/vck190-versal.conf) | `vck190-versal` | `versal-vck190-reva-x-ebm-01-reva` | Yes | Yes | | | [VMK180](https://www.xilinx.com/products/boards-and-kits/vmk180.html) | [vmk180-versal](conf/machine/vmk180-versal.conf) | `vmk180-versal` | `versal-vmk180-reva-x-ebm-01-reva` | Yes | Yes | | | [VCK5000](https://www.xilinx.com/products/boards-and-kits/vck5000.html) | [vck5000-versal](conf/machine/vck5000-versal.conf) | `vck5000-versal` | `versal-vck5000-reva-x-ebm-01-reva` | No | No | | | [VPK120](https://www.xilinx.com/products/boards-and-kits/vpk120.html) | [vpk120-versal](conf/machine/vpk120-versal.conf) | `vpk120-versal` | `versal-vpk120-reva` | Yes | Yes | +| | [VPK180](https://www.xilinx.com/products/boards-and-kits/vpk180.html) | [vpk180-versal](conf/machine/vpk180-versal.conf) | `vpk180-versal` | `versal-vpk180-reva` | Yes | Yes | +| | [VEK280](https://www.xilinx.com/products/boards-and-kits/vek280.html) | [vek280-versal](conf/machine/vek280-versal.conf) | `vek280-versal` | `versal-vek280-reva` | Yes | Yes | +| | [VHK158](https://www.xilinx.com/products/boards-and-kits/vhk158.html) | [vhk158-versal](conf/machine/vhk158-versal.conf) | `vhk158-versal` | `versal-vhk158-reva` | Yes | Yes | > **Note:** Additional information on Xilinx architectures can be found at: https://www.xilinx.com/products/silicon-devices.html @@ -57,4 +65,4 @@ This layer depends on: https://git.yoctoproject.org/meta-xilinx (official version) https://github.com/Xilinx/meta-xilinx (development and amd xilinx release) layers: meta-xilinx-microblaze, meta-xilinx-core - branch: langdale or amd xilinx release version (e.g. rel-v2022.2) + branch: langdale or amd xilinx release version (e.g. rel-v2023.1) diff --git a/meta-xilinx-bsp/conf/machine/ac701-microblazeel.conf b/meta-xilinx-bsp/conf/machine/ac701-microblazeel.conf new file mode 100644 index 000000000..88a0d7bba --- /dev/null +++ b/meta-xilinx-bsp/conf/machine/ac701-microblazeel.conf @@ -0,0 +1,42 @@ +#@TYPE: Machine +#@NAME: ac701-microblazeel +#@DESCRIPTION: Machine configuration for the AC701 evaluation board. + +#### Preamble +MACHINEOVERRIDES =. "${@['', 'ac701-microblazeel:']['ac701-microblazeel' !='${MACHINE}']}" +#### Regular settings follow + +# Variables that changes based on hw design or board specific requirement must be +# defined before calling the required inclusion file else pre-expansion value +# defined in microblazeel-generic.conf will be set. + +# Yocto AC701 FS-Boot variables +YAML_SERIAL_CONSOLE_STDIN:pn-fs-boot ?= "axi_uartlite_0" +YAML_SERIAL_CONSOLE_STDOUT:pn-fs-boot ?= "axi_uartlite_0" +YAML_MAIN_MEMORY_CONFIG:pn-fs-boot ?= "MIG_7SERIES_0" +YAML_FLASH_MEMORY_CONFIG:pn-fs-boot ?= "axi_quad_spi_0" +XSCTH_PROC:pn-fs-boot ?= "microblaze_0" + +# Yocto AC701 device-tree variables +YAML_CONSOLE_DEVICE_CONFIG:pn-device-tree ?= "axi_uartlite_0" +YAML_MAIN_MEMORY_CONFIG:pn-device-tree ?= "MIG_7SERIES_0" +DT_PADDING_SIZE:pn-device-tree ?= "0x1000" +DTC_FLAGS:pn-device-tree ?= "" +XSCTH_PROC:pn-device-tree ?= "microblaze_0" +YAML_DT_BOARD_FLAGS ?= "{BOARD ac701-full}" + +# Set DDR Base address for u-boot-xlnx-scr variables +DDR_BASEADDR ?= "0x80000000" +SKIP_APPEND_BASEADDR ?= "0" + +# Required generic machine inclusion +require conf/machine/microblaze-generic.conf + +# This machine conf file uses ac701-microblazeel xsa as reference input. +# User can override with ac701 custom xsa using HDF_BASE and HDF_PATH variables +# from local.conf. +HDF_MACHINE = "ac701-microblazeel" + +#### No additional settings should be after the Postamble +#### Postamble +PACKAGE_EXTRA_ARCHS:append = "${@['', 'ac701_microblazeel']['ac701-microblazeel' != '${MACHINE}']}" diff --git a/meta-xilinx-bsp/conf/machine/kcu105-microblazeel.conf b/meta-xilinx-bsp/conf/machine/kcu105-microblazeel.conf new file mode 100644 index 000000000..3edf190e9 --- /dev/null +++ b/meta-xilinx-bsp/conf/machine/kcu105-microblazeel.conf @@ -0,0 +1,42 @@ +#@TYPE: Machine +#@NAME: kcu105-microblazeel +#@DESCRIPTION: Machine configuration for the KCU105 evaluation board. + +#### Preamble +MACHINEOVERRIDES =. "${@['', 'kcu105-microblazeel:']['kcu105-microblazeel' !='${MACHINE}']}" +#### Regular settings follow + +# Variables that changes based on hw design or board specific requirement must be +# defined before calling the required inclusion file else pre-expansion value +# defined in microblazeel-generic.conf will be set. + +# Yocto KCU105 FS-Boot variables +YAML_SERIAL_CONSOLE_STDIN:pn-fs-boot ?= "axi_uartlite_0" +YAML_SERIAL_CONSOLE_STDOUT:pn-fs-boot ?= "axi_uartlite_0" +YAML_MAIN_MEMORY_CONFIG:pn-fs-boot ?= "DDR4_0" +YAML_FLASH_MEMORY_CONFIG:pn-fs-boot ?= "axi_quad_spi_0" +XSCTH_PROC:pn-fs-boot ?= "microblaze_0" + +# Yocto KCU105 device-tree variables +YAML_CONSOLE_DEVICE_CONFIG:pn-device-tree ?= "axi_uartlite_0" +YAML_MAIN_MEMORY_CONFIG:pn-device-tree ?= "DDR4_0" +DT_PADDING_SIZE:pn-device-tree ?= "0x1000" +DTC_FLAGS:pn-device-tree ?= "" +XSCTH_PROC:pn-device-tree ?= "microblaze_0" +YAML_DT_BOARD_FLAGS ?= "{BOARD kcu105}" + +# Set DDR Base address for u-boot-xlnx-scr variables +DDR_BASEADDR ?= "0x80000000" +SKIP_APPEND_BASEADDR ?= "0" + +# Required generic machine inclusion +require conf/machine/microblaze-generic.conf + +# This machine conf file uses kcu105-microblazeel xsa as reference input. +# User can override with kcu105 custom xsa using HDF_BASE and HDF_PATH variables +# from local.conf. +HDF_MACHINE = "kcu105-microblazeel" + +#### No additional settings should be after the Postamble +#### Postamble +PACKAGE_EXTRA_ARCHS:append = "${@['', 'kcu105_microblazeel']['kcu105-microblazeel' != '${MACHINE}']}" diff --git a/meta-xilinx-bsp/conf/machine/vcu118-microblazeel.conf b/meta-xilinx-bsp/conf/machine/vcu118-microblazeel.conf new file mode 100644 index 000000000..ada52ceb5 --- /dev/null +++ b/meta-xilinx-bsp/conf/machine/vcu118-microblazeel.conf @@ -0,0 +1,46 @@ +#@TYPE: Machine +#@NAME: vcu118-microblazeel +#@DESCRIPTION: Machine configuration for the VCU118 evaluation board. + +#### Preamble +MACHINEOVERRIDES =. "${@['', 'vcu118-microblazeel:']['vcu118-microblazeel' !='${MACHINE}']}" +#### Regular settings follow + +# Variables that changes based on hw design or board specific requirement must be +# defined before calling the required inclusion file else pre-expansion value +# defined in microblazeel-generic.conf will be set. + +# Yocto VCU118 FS-Boot variables +YAML_SERIAL_CONSOLE_STDIN:pn-fs-boot ?= "axi_uartlite_0" +YAML_SERIAL_CONSOLE_STDOUT:pn-fs-boot ?= "axi_uartlite_0" +YAML_MAIN_MEMORY_CONFIG:pn-fs-boot ?= "DDR4_0" +YAML_FLASH_MEMORY_CONFIG:pn-fs-boot ?= "axi_quad_spi_0" +XSCTH_PROC:pn-fs-boot ?= "microblaze_0" + +# Yocto VCU118 device-tree variables +YAML_CONSOLE_DEVICE_CONFIG:pn-device-tree ?= "axi_uartlite_0" +YAML_MAIN_MEMORY_CONFIG:pn-device-tree ?= "DDR4_0" +DT_PADDING_SIZE:pn-device-tree ?= "0x1000" +DTC_FLAGS:pn-device-tree ?= "" +XSCTH_PROC:pn-device-tree ?= "microblaze_0" +YAML_DT_BOARD_FLAGS ?= "{BOARD vcu118-rev2.0}" + +# Yocto KERNEL Variables +UBOOT_ENTRYPOINT ?= "0x80000000" +UBOOT_LOADADDRESS ?= "0x80000000" + +# Set DDR Base address for u-boot-xlnx-scr variables +DDR_BASEADDR ?= "0x80000000" +SKIP_APPEND_BASEADDR ?= "0" + +# Required generic machine inclusion +require conf/machine/microblaze-generic.conf + +# This machine conf file uses vcu118-microblazeel xsa as reference input. +# User can override with vcu118 custom xsa using HDF_BASE and HDF_PATH variables +# from local.conf. +HDF_MACHINE = "vcu118-microblazeel" + +#### No additional settings should be after the Postamble +#### Postamble +PACKAGE_EXTRA_ARCHS:append = "${@['', 'vcu118_microblazeel']['vcu118-microblazeel' != '${MACHINE}']}" diff --git a/meta-xilinx-bsp/conf/machine/vek280-versal.conf b/meta-xilinx-bsp/conf/machine/vek280-versal.conf new file mode 100644 index 000000000..b533b833b --- /dev/null +++ b/meta-xilinx-bsp/conf/machine/vek280-versal.conf @@ -0,0 +1,35 @@ +#@TYPE: Machine +#@NAME: vek280-versal +#@DESCRIPTION: Machine configuration for the VEK280 evaluation boards. + +#### Preamble +MACHINEOVERRIDES =. "${@['', 'vek280-versal:']['vek280-versal' !='${MACHINE}']}" +#### Regular settings follow + +# Variables that changes based on hw design or board specific requirement must be +# defined before calling the required inclusion file else pre-expansion value +# defined in versal-generic.conf will be set. + +# Yocto device-tree variables +YAML_CONSOLE_DEVICE_CONFIG:pn-device-tree ?= "CIPS_0_pspmc_0_psv_sbsauart_0" +YAML_DT_BOARD_FLAGS ?= "{BOARD versal-vek280-reva}" + +# Yocto PLM variables +YAML_SERIAL_CONSOLE_STDIN:pn-plm-firmware ?= "CIPS_0_pspmc_0_psv_sbsauart_0" +YAML_SERIAL_CONSOLE_STDOUT:pn-plm-firmware ?= "CIPS_0_pspmc_0_psv_sbsauart_0" + +# vek280-versal Serial Console +SERIAL_CONSOLES ?= "115200;ttyAMA0" +YAML_SERIAL_CONSOLE_BAUDRATE ?= "115200" + +# Required generic machine inclusion +require conf/machine/versal-ai-edge-generic.conf + +# This machine conf file uses vek280-versal xsa as reference input. +# User can override with vek280 custom xsa using HDF_BASE and HDF_PATH variables +# from local.conf. +HDF_MACHINE = "vek280-versal" + +#### No additional settings should be after the Postamble +#### Postamble +PACKAGE_EXTRA_ARCHS:append = "${@['', 'vek280_versal']['vek280-versal' != '${MACHINE}']}" \ No newline at end of file diff --git a/meta-xilinx-bsp/conf/machine/vhk158-versal.conf b/meta-xilinx-bsp/conf/machine/vhk158-versal.conf new file mode 100644 index 000000000..5c0406de3 --- /dev/null +++ b/meta-xilinx-bsp/conf/machine/vhk158-versal.conf @@ -0,0 +1,52 @@ +#@TYPE: Machine +#@NAME: vhk158-versal +#@DESCRIPTION: Machine configuration for the VHK158 evaluation board. + +#### Preamble +MACHINEOVERRIDES =. "${@['', 'vhk158-versal:']['vhk158-versal' !='${MACHINE}']}" +#### Regular settings follow + +# Variables that changes based on hw design or board specific requirement must be +# defined before calling the required inclusion file else pre-expansion value +# defined in versal-generic.conf will be set. + +# Yocto device-tree variables +YAML_CONSOLE_DEVICE_CONFIG:pn-device-tree ?= "versal_cips_0_pspmc_0_psv_sbsauart_0" +YAML_DT_BOARD_FLAGS ?= "{BOARD versal-vhk158-reva}" + +# Yocto arm-trusted-firmware(TF-A) variables +ATF_CONSOLE_DEFAULT ?= "pl011" +TFA_BL33_LOAD ?= "0x8000000" + +# Yocto PLM variables +YAML_SERIAL_CONSOLE_STDIN:pn-plm-firmware ?= "versal_cips_0_pspmc_0_psv_sbsauart_0" +YAML_SERIAL_CONSOLE_STDOUT:pn-plm-firmware ?= "versal_cips_0_pspmc_0_psv_sbsauart_0" + +# Yocto KERNEL Variables +UBOOT_ENTRYPOINT ?= "0x200000" +UBOOT_LOADADDRESS ?= "0x200000" + +# vhk158-versal Serial Console +SERIAL_CONSOLES ?= "115200;ttyAMA0" +YAML_SERIAL_CONSOLE_BAUDRATE ?= "115200" + +# Required generic machine inclusion +# VHK158 board uses Versal HBM device hence use soc variant based generic +# machine inclusion +require conf/machine/versal-hbm-generic.conf + +# This machine conf file uses vhk158-versal xsa as reference input. +# User can override with vhk158 custom xsa using HDF_BASE and HDF_PATH variables +# from local.conf. +HDF_MACHINE = "vhk158-versal" + +# VHK158 has 32GB memory only but default versal-generic has QB_MEM set to 8G, +# Since versal-vhk158-reva.dts has 32GB set, we need set same in QB_MEM +QB_MEM = "-m 32G" + +QEMU_HW_DTB_PS = "${QEMU_HW_DTB_PATH}/board-versal-ps-vhk158.dtb" +QEMU_HW_DTB_PMC = "${QEMU_HW_DTB_PATH}/board-versal-pmc-virt.dtb" + +#### No additional settings should be after the Postamble +#### Postamble +PACKAGE_EXTRA_ARCHS:append = "${@['', 'vhk158_versal']['vhk158-versal' != '${MACHINE}']}" \ No newline at end of file diff --git a/meta-xilinx-bsp/conf/machine/vpk180-versal.conf b/meta-xilinx-bsp/conf/machine/vpk180-versal.conf new file mode 100644 index 000000000..099cd9563 --- /dev/null +++ b/meta-xilinx-bsp/conf/machine/vpk180-versal.conf @@ -0,0 +1,48 @@ +#@TYPE: Machine +#@NAME: vpk180-versal +#@DESCRIPTION: Machine configuration for the VPK180 evaluation board. + +#### Preamble +MACHINEOVERRIDES =. "${@['', 'vpk180-versal:']['vpk180-versal' !='${MACHINE}']}" +#### Regular settings follow + +# Variables that changes based on hw design or board specific requirement must be +# defined before calling the required inclusion file else pre-expansion value +# defined in versal-generic.conf will be set. + +# Yocto device-tree variables +YAML_CONSOLE_DEVICE_CONFIG:pn-device-tree ?= "versal_cips_0_pspmc_0_psv_sbsauart_0" +YAML_DT_BOARD_FLAGS ?= "{BOARD versal-vpk180-reva}" + +# Yocto arm-trusted-firmware(TF-A) variables +ATF_CONSOLE_DEFAULT ?= "pl011" +TFA_BL33_LOAD ?= "0x8000000" + +# Yocto PLM variables +YAML_SERIAL_CONSOLE_STDIN:pn-plm-firmware ?= "versal_cips_0_pspmc_0_psv_sbsauart_0" +YAML_SERIAL_CONSOLE_STDOUT:pn-plm-firmware ?= "versal_cips_0_pspmc_0_psv_sbsauart_0" + +# Yocto KERNEL Variables +UBOOT_ENTRYPOINT ?= "0x200000" +UBOOT_LOADADDRESS ?= "0x200000" + +# vpk180-versal Serial Console +SERIAL_CONSOLES ?= "115200;ttyAMA0" +YAML_SERIAL_CONSOLE_BAUDRATE ?= "115200" + +# Required generic machine inclusion +# VPK180 board uses Versal Premium device hence use soc variant based generic +# machine inclusion +require conf/machine/versal-premium-generic.conf + +# This machine conf file uses vpk180-versal xsa as reference input. +# User can override with vpk180 custom xsa using HDF_BASE and HDF_PATH variables +# from local.conf. +HDF_MACHINE = "vpk180-versal" + +QEMU_HW_DTB_PS = "${QEMU_HW_DTB_PATH}/board-versal-ps-vpk180.dtb" +QEMU_HW_DTB_PMC = "${QEMU_HW_DTB_PATH}/board-versal-pmc-virt.dtb" + +#### No additional settings should be after the Postamble +#### Postamble +PACKAGE_EXTRA_ARCHS:append = "${@['', 'vpk180_versal']['vpk180-versal' != '${MACHINE}']}" diff --git a/meta-xilinx-bsp/conf/machine/zcu208-zynqmp.conf b/meta-xilinx-bsp/conf/machine/zcu208-zynqmp.conf new file mode 100644 index 000000000..d7b2f3400 --- /dev/null +++ b/meta-xilinx-bsp/conf/machine/zcu208-zynqmp.conf @@ -0,0 +1,50 @@ +#@TYPE: Machine +#@NAME: zcu208-zynqmp +#@DESCRIPTION: Machine configuration for the ZCU208 evaluation board. + +#### Preamble +MACHINEOVERRIDES =. "${@['', 'zcu208-zynqmp:']['zcu208-zynqmp' !='${MACHINE}']}" +#### Regular settings follow + +# Variables that changes based on hw design or board specific requirement must be +# defined before calling the required inclusion file else pre-expansion value +# defined in zynqmp-generic.conf will be set. + +# Yocto device-tree variables +YAML_CONSOLE_DEVICE_CONFIG:pn-device-tree ?= "psu_uart_0" +YAML_MAIN_MEMORY_CONFIG:pn-device-tree ?= "PSU_DDR_0" +YAML_DT_BOARD_FLAGS ?= "{BOARD zcu208-reva}" + +# Yocto arm-trusted-firmware(TF-A) variables +ATF_CONSOLE_DEFAULT ?= "cadence" +TFA_BL33_LOAD ?= "0x8000000" + +# Yocto PMUFW variables +YAML_SERIAL_CONSOLE_STDIN:pn-pmu-firmware ?= "psu_uart_0" +YAML_SERIAL_CONSOLE_STDOUT:pn-pmu-firmware ?= "psu_uart_0" + +# Yocto FSBL variables +YAML_SERIAL_CONSOLE_STDIN:pn-fsbl-firmware ?= "psu_uart_0" +YAML_SERIAL_CONSOLE_STDOUT:pn-fsbl-firmware ?= "psu_uart_0" + +# Yocto KERNEL Variables +UBOOT_ENTRYPOINT ?= "0x200000" +UBOOT_LOADADDRESS ?= "0x200000" + +# zcu208-zynqmp Serial Console +SERIAL_CONSOLES ?= "115200;ttyPS0" +YAML_SERIAL_CONSOLE_BAUDRATE ?= "115200" + +# Required generic machine inclusion +# ZCU208 board uses ZynqMP DR device hence use soc variant based generic machine +# inclusion +require conf/machine/zynqmp-dr-generic.conf + +# This eval board machine conf file uses zcu208-zynqmp xsa as reference input. +# User can override with zcu208 custom xsa using HDF_BASE and HDF_PATH variables +# from local.conf. +HDF_MACHINE = "zcu208-zynqmp" + +#### No additional settings should be after the Postamble +#### Postamble +PACKAGE_EXTRA_ARCHS:append = "${@['', 'zcu208_zynqmp']['zcu208-zynqmp' != '${MACHINE}']}" diff --git a/meta-xilinx-bsp/conf/machine/zcu670-zynqmp.conf b/meta-xilinx-bsp/conf/machine/zcu670-zynqmp.conf new file mode 100644 index 000000000..6b1dd4887 --- /dev/null +++ b/meta-xilinx-bsp/conf/machine/zcu670-zynqmp.conf @@ -0,0 +1,50 @@ +#@TYPE: Machine +#@NAME: zcu670-zynqmp +#@DESCRIPTION: Machine configuration for the ZCU670 evaluation board. + +#### Preamble +MACHINEOVERRIDES =. "${@['', 'zcu670-zynqmp:']['zcu670-zynqmp' !='${MACHINE}']}" +#### Regular settings follow + +# Variables that changes based on hw design or board specific requirement must be +# defined before calling the required inclusion file else pre-expansion value +# defined in zynqmp-generic.conf will be set. + +# Yocto device-tree variables +YAML_CONSOLE_DEVICE_CONFIG:pn-device-tree ?= "psu_uart_0" +YAML_MAIN_MEMORY_CONFIG:pn-device-tree ?= "PSU_DDR_0" +YAML_DT_BOARD_FLAGS ?= "{BOARD zcu670-revb}" + +# Yocto arm-trusted-firmware(TF-A) variables +ATF_CONSOLE_DEFAULT ?= "cadence" +TFA_BL33_LOAD ?= "0x8000000" + +# Yocto PMUFW variables +YAML_SERIAL_CONSOLE_STDIN:pn-pmu-firmware ?= "psu_uart_0" +YAML_SERIAL_CONSOLE_STDOUT:pn-pmu-firmware ?= "psu_uart_0" + +# Yocto FSBL variables +YAML_SERIAL_CONSOLE_STDIN:pn-fsbl-firmware ?= "psu_uart_0" +YAML_SERIAL_CONSOLE_STDOUT:pn-fsbl-firmware ?= "psu_uart_0" + +# Yocto KERNEL Variables +UBOOT_ENTRYPOINT ?= "0x200000" +UBOOT_LOADADDRESS ?= "0x200000" + +# zcu670-zynqmp Serial Console +SERIAL_CONSOLES ?= "115200;ttyPS0" +YAML_SERIAL_CONSOLE_BAUDRATE ?= "115200" + +# Required generic machine inclusion +# ZCU670 board uses ZynqMP DR device hence use soc variant based generic machine +# inclusion +require conf/machine/zynqmp-dr-generic.conf + +# This eval board machine conf file uses zcu670-zynqmp xsa as reference input. +# User can override with zcu670 custom xsa using HDF_BASE and HDF_PATH variables +# from local.conf. +HDF_MACHINE = "zcu670-zynqmp" + +#### No additional settings should be after the Postamble +#### Postamble +PACKAGE_EXTRA_ARCHS:append = "${@['', 'zcu670_zynqmp']['zcu670-zynqmp' != '${MACHINE}']}" diff --git a/meta-xilinx-contrib/README.md b/meta-xilinx-contrib/README.md index 629a77987..30dc32828 100644 --- a/meta-xilinx-contrib/README.md +++ b/meta-xilinx-contrib/README.md @@ -31,4 +31,4 @@ This layer depends on: https://git.yoctoproject.org/meta-xilinx (official version) https://github.com/Xilinx/meta-xilinx (development and amd xilinx release) layers: meta-xilinx-microblaze, meta-xilinx-core, meta-xilinx-vendor - branch: langdale or amd xilinx release version (e.g. rel-v2022.2) + branch: langdale or amd xilinx release version (e.g. rel-v2023.1) diff --git a/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2023.1/0001-drm-xilinx-Add-encoder-for-Digilent-boards.patch b/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2023.1/0001-drm-xilinx-Add-encoder-for-Digilent-boards.patch new file mode 100644 index 000000000..660bc2182 --- /dev/null +++ b/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2023.1/0001-drm-xilinx-Add-encoder-for-Digilent-boards.patch @@ -0,0 +1,305 @@ +From 21cc8144efdaa3cd8dbd7279f87b14fa3432fae4 Mon Sep 17 00:00:00 2001 +From: Jason Wu +Date: Sun, 10 Apr 2016 13:14:13 +1000 +Subject: [PATCH 1/3] drm: xilinx: Add encoder for Digilent boards + +Add the dglnt_encoder driver that enables DRM support for the VGA and +HDMI output ports found on many Digilent boards. + +Upstream-Status: Pending + +Signed-off-by: Sam Bobrowicz +Signed-off-by: Jason Wu +--- + .../bindings/drm/xilinx/dglnt_encoder.txt | 23 +++ + drivers/gpu/drm/xilinx/Kconfig | 6 + + drivers/gpu/drm/xilinx/Makefile | 1 + + drivers/gpu/drm/xilinx/dglnt_encoder.c | 217 +++++++++++++++++++++ + 4 files changed, 247 insertions(+) + create mode 100644 Documentation/devicetree/bindings/drm/xilinx/dglnt_encoder.txt + create mode 100644 drivers/gpu/drm/xilinx/dglnt_encoder.c + +diff --git a/Documentation/devicetree/bindings/drm/xilinx/dglnt_encoder.txt b/Documentation/devicetree/bindings/drm/xilinx/dglnt_encoder.txt +new file mode 100644 +index 0000000..242b24e +--- /dev/null ++++ b/Documentation/devicetree/bindings/drm/xilinx/dglnt_encoder.txt +@@ -0,0 +1,23 @@ ++Device-Tree bindings for Digilent DRM Encoder Slave ++ ++This driver provides support for VGA and HDMI outputs on Digilent FPGA boards. ++The VGA or HDMI port must be connected to a Xilinx display pipeline via an ++axi2vid IP core. ++ ++Required properties: ++ - compatible: Should be "digilent,drm-encoder". ++ ++Optional properties: ++ - dglnt,edid-i2c: The I2C device connected to the DDC bus on the video ++ connector. This is used to obtain the supported resolutions ++ of an attached monitor. If not defined, then a default ++ set of resolutions is used and the display will initialize ++ to 720p. Note most VGA connectors on Digilent boards do ++ not have the DDC bus routed out. ++ ++Example: ++ ++ encoder_0: digilent_encoder { ++ compatible = "digilent,drm-encoder"; ++ dglnt,edid-i2c = <&i2c1>; ++ }; +diff --git a/drivers/gpu/drm/xilinx/Kconfig b/drivers/gpu/drm/xilinx/Kconfig +index 57e18a9..d9ecff2 100644 +--- a/drivers/gpu/drm/xilinx/Kconfig ++++ b/drivers/gpu/drm/xilinx/Kconfig +@@ -33,6 +33,12 @@ config DRM_XILINX_DP_SUB + help + DRM driver for Xilinx Display Port Subsystem. + ++config DRM_DIGILENT_ENCODER ++ tristate "Digilent VGA/HDMI DRM Encoder Driver" ++ depends on DRM_XILINX ++ help ++ DRM slave encoder for Video-out on Digilent boards. ++ + config DRM_XILINX_DP_SUB_DEBUG_FS + bool "Xilinx DRM DPSUB debugfs" + depends on DEBUG_FS && DRM_XILINX_DP_SUB +diff --git a/drivers/gpu/drm/xilinx/Makefile b/drivers/gpu/drm/xilinx/Makefile +index 19bc154..c2717e40 100644 +--- a/drivers/gpu/drm/xilinx/Makefile ++++ b/drivers/gpu/drm/xilinx/Makefile +@@ -7,6 +7,7 @@ xilinx_drm-y := xilinx_drm_crtc.o xilinx_drm_connector.o xilinx_drm_drv.o \ + xilinx_drm_plane.o + xilinx_drm-y += xilinx_cresample.o xilinx_osd.o xilinx_rgb2yuv.o xilinx_vtc.o + ++obj-$(CONFIG_DRM_DIGILENT_ENCODER) += dglnt_encoder.o + obj-$(CONFIG_DRM_XILINX) += xilinx_drm.o + obj-$(CONFIG_DRM_XILINX_DP) += xilinx_drm_dp.o + obj-$(CONFIG_DRM_XILINX_DP_SUB) += xilinx_drm_dp_sub.o +diff --git a/drivers/gpu/drm/xilinx/dglnt_encoder.c b/drivers/gpu/drm/xilinx/dglnt_encoder.c +new file mode 100644 +index 0000000..cb9fc7d +--- /dev/null ++++ b/drivers/gpu/drm/xilinx/dglnt_encoder.c +@@ -0,0 +1,217 @@ ++/* ++ * dglnt_encoder.c - DRM slave encoder for Video-out on Digilent boards ++ * ++ * Copyright (C) 2015 Digilent ++ * Author: Sam Bobrowicz ++ * ++ * Based on udl_encoder.c and udl_connector.c, Copyright (C) 2012 Red Hat. ++ * Also based on xilinx_drm_dp.c, Copyright (C) 2014 Xilinx, Inc. ++ * ++ * This software is licensed under the terms of the GNU General Public ++ * License version 2, as published by the Free Software Foundation, and ++ * may be copied, distributed, and modified under those terms. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ */ ++ ++#include ++#include ++#include ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define DGLNT_ENC_MAX_FREQ 150000 ++#define DGLNT_ENC_MAX_H 1920 ++#define DGLNT_ENC_MAX_V 1080 ++#define DGLNT_ENC_PREF_H 1280 ++#define DGLNT_ENC_PREF_V 720 ++ ++struct dglnt_encoder { ++ struct drm_encoder *encoder; ++ struct i2c_adapter *i2c_bus; ++ bool i2c_present; ++}; ++ ++static inline struct dglnt_encoder *to_dglnt_encoder( ++ struct drm_encoder *encoder) ++{ ++ return to_encoder_slave(encoder)->slave_priv; ++} ++ ++static bool dglnt_mode_fixup(struct drm_encoder *encoder, ++ const struct drm_display_mode *mode, ++ struct drm_display_mode *adjusted_mode) ++{ ++ return true; ++} ++ ++static void dglnt_encoder_mode_set(struct drm_encoder *encoder, ++ struct drm_display_mode *mode, ++ struct drm_display_mode *adjusted_mode) ++{ ++} ++ ++static void ++dglnt_encoder_dpms(struct drm_encoder *encoder, int mode) ++{ ++} ++ ++static void dglnt_encoder_save(struct drm_encoder *encoder) ++{ ++} ++ ++static void dglnt_encoder_restore(struct drm_encoder *encoder) ++{ ++} ++ ++static int dglnt_encoder_mode_valid(struct drm_encoder *encoder, ++ struct drm_display_mode *mode) ++{ ++ if (mode && ++ !(mode->flags & ((DRM_MODE_FLAG_INTERLACE | ++ DRM_MODE_FLAG_DBLCLK) | DRM_MODE_FLAG_3D_MASK)) && ++ (mode->clock <= DGLNT_ENC_MAX_FREQ) && ++ (mode->hdisplay <= DGLNT_ENC_MAX_H) && ++ (mode->vdisplay <= DGLNT_ENC_MAX_V)) ++ return MODE_OK; ++ return MODE_BAD; ++} ++ ++static int dglnt_encoder_get_modes(struct drm_encoder *encoder, ++ struct drm_connector *connector) ++{ ++ struct dglnt_encoder *dglnt = to_dglnt_encoder(encoder); ++ struct edid *edid; ++ int num_modes = 0; ++ ++ if (dglnt->i2c_present) { ++ edid = drm_get_edid(connector, dglnt->i2c_bus); ++ drm_connector_update_edid_property(connector, edid); ++ if (edid) { ++ num_modes = drm_add_edid_modes(connector, edid); ++ kfree(edid); ++ } ++ } else { ++ num_modes = drm_add_modes_noedid(connector, DGLNT_ENC_MAX_H, ++ DGLNT_ENC_MAX_V); ++ drm_set_preferred_mode(connector, DGLNT_ENC_PREF_H, ++ DGLNT_ENC_PREF_V); ++ } ++ return num_modes; ++} ++ ++static enum drm_connector_status dglnt_encoder_detect( ++ struct drm_encoder *encoder, ++ struct drm_connector *connector) ++{ ++ struct dglnt_encoder *dglnt = to_dglnt_encoder(encoder); ++ ++ if (dglnt->i2c_present) { ++ if (drm_probe_ddc(dglnt->i2c_bus)) ++ return connector_status_connected; ++ return connector_status_disconnected; ++ } else ++ return connector_status_unknown; ++} ++ ++static struct drm_encoder_slave_funcs dglnt_encoder_slave_funcs = { ++ .dpms = dglnt_encoder_dpms, ++ .save = dglnt_encoder_save, ++ .restore = dglnt_encoder_restore, ++ .mode_fixup = dglnt_mode_fixup, ++ .mode_valid = dglnt_encoder_mode_valid, ++ .mode_set = dglnt_encoder_mode_set, ++ .detect = dglnt_encoder_detect, ++ .get_modes = dglnt_encoder_get_modes, ++}; ++ ++static int dglnt_encoder_encoder_init(struct platform_device *pdev, ++ struct drm_device *dev, ++ struct drm_encoder_slave *encoder) ++{ ++ struct dglnt_encoder *dglnt = platform_get_drvdata(pdev); ++ struct device_node *sub_node; ++ ++ encoder->slave_priv = dglnt; ++ encoder->slave_funcs = &dglnt_encoder_slave_funcs; ++ ++ dglnt->encoder = &encoder->base; ++ ++ /* get i2c adapter for edid */ ++ dglnt->i2c_present = false; ++ sub_node = of_parse_phandle(pdev->dev.of_node, "dglnt,edid-i2c", 0); ++ if (sub_node) { ++ dglnt->i2c_bus = of_find_i2c_adapter_by_node(sub_node); ++ if (!dglnt->i2c_bus) ++ DRM_INFO("failed to get the edid i2c adapter, using default modes\n"); ++ else ++ dglnt->i2c_present = true; ++ of_node_put(sub_node); ++ } ++ ++ return 0; ++} ++ ++static int dglnt_encoder_probe(struct platform_device *pdev) ++{ ++ struct dglnt_encoder *dglnt; ++ ++ dglnt = devm_kzalloc(&pdev->dev, sizeof(*dglnt), GFP_KERNEL); ++ if (!dglnt) ++ return -ENOMEM; ++ ++ platform_set_drvdata(pdev, dglnt); ++ ++ return 0; ++} ++ ++static int dglnt_encoder_remove(struct platform_device *pdev) ++{ ++ return 0; ++} ++ ++static const struct of_device_id dglnt_encoder_of_match[] = { ++ { .compatible = "digilent,drm-encoder", }, ++ { /* end of table */ }, ++}; ++MODULE_DEVICE_TABLE(of, dglnt_encoder_of_match); ++ ++static struct drm_platform_encoder_driver dglnt_encoder_driver = { ++ .platform_driver = { ++ .probe = dglnt_encoder_probe, ++ .remove = dglnt_encoder_remove, ++ .driver = { ++ .owner = THIS_MODULE, ++ .name = "dglnt-drm-enc", ++ .of_match_table = dglnt_encoder_of_match, ++ }, ++ }, ++ ++ .encoder_init = dglnt_encoder_encoder_init, ++}; ++ ++static int __init dglnt_encoder_init(void) ++{ ++ return platform_driver_register(&dglnt_encoder_driver.platform_driver); ++} ++ ++static void __exit dglnt_encoder_exit(void) ++{ ++ platform_driver_unregister(&dglnt_encoder_driver.platform_driver); ++} ++ ++module_init(dglnt_encoder_init); ++module_exit(dglnt_encoder_exit); ++ ++MODULE_AUTHOR("Digilent, Inc."); ++MODULE_DESCRIPTION("DRM slave encoder for Video-out on Digilent boards"); ++MODULE_LICENSE("GPL v2"); +-- +2.7.4 + diff --git a/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2023.1/0002-clk-Add-driver-for-axi_dynclk-IP-Core.patch b/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2023.1/0002-clk-Add-driver-for-axi_dynclk-IP-Core.patch new file mode 100644 index 000000000..9b6229db0 --- /dev/null +++ b/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2023.1/0002-clk-Add-driver-for-axi_dynclk-IP-Core.patch @@ -0,0 +1,607 @@ +From 217e3b6f4393926b8dcad841381527ef3fc808c2 Mon Sep 17 00:00:00 2001 +From: Jason Wu +Date: Sun, 10 Apr 2016 13:16:06 +1000 +Subject: [PATCH 2/3] clk: Add driver for axi_dynclk IP Core + +Add support for the axi_dynclk IP Core available from Digilent. This IP +core dynamically configures the clock resources inside a Xilinx FPGA to +generate a clock with a software programmable frequency. + +Upstream-Status: Pending + +Signed-off-by: Sam Bobrowicz +Signed-off-by: Jason Wu +--- + drivers/clk/Kconfig | 8 + + drivers/clk/Makefile | 1 + + drivers/clk/clk-dglnt-dynclk.c | 547 +++++++++++++++++++++++++++++++++++++++++ + 3 files changed, 556 insertions(+) + create mode 100644 drivers/clk/clk-dglnt-dynclk.c + +diff --git a/drivers/clk/Kconfig b/drivers/clk/Kconfig +index dccb111100..7fe65a702b 100644 +--- a/drivers/clk/Kconfig ++++ b/drivers/clk/Kconfig +@@ -148,6 +148,14 @@ config CLK_QORIQ + This adds the clock driver support for Freescale QorIQ platforms + using common clock framework. + ++config COMMON_CLK_DGLNT_DYNCLK ++ tristate "Digilent axi_dynclk Driver" ++ depends on ARCH_ZYNQ || MICROBLAZE ++ help ++ ---help--- ++ Support for the Digilent AXI Dynamic Clock core for Xilinx ++ FPGAs. ++ + config COMMON_CLK_XGENE + bool "Clock driver for APM XGene SoC" + default y +diff --git a/drivers/clk/Makefile b/drivers/clk/Makefile +index 0760449dde..45ce97d053 100644 +--- a/drivers/clk/Makefile ++++ b/drivers/clk/Makefile +@@ -24,6 +24,7 @@ obj-$(CONFIG_COMMON_CLK_CDCE706) += clk-cdce706.o + obj-$(CONFIG_COMMON_CLK_CDCE925) += clk-cdce925.o + obj-$(CONFIG_ARCH_CLPS711X) += clk-clps711x.o + obj-$(CONFIG_COMMON_CLK_CS2000_CP) += clk-cs2000-cp.o ++obj-$(CONFIG_COMMON_CLK_DGLNT_DYNCLK) += clk-dglnt-dynclk.o + obj-$(CONFIG_ARCH_EFM32) += clk-efm32gg.o + obj-$(CONFIG_ARCH_HIGHBANK) += clk-highbank.o + obj-$(CONFIG_COMMON_CLK_MAX77686) += clk-max77686.o +diff --git a/drivers/clk/clk-dglnt-dynclk.c b/drivers/clk/clk-dglnt-dynclk.c +new file mode 100644 +index 0000000000..496ad5fc90 +--- /dev/null ++++ b/drivers/clk/clk-dglnt-dynclk.c +@@ -0,0 +1,547 @@ ++/* ++ * clk-dglnt-dynclk.c - Digilent AXI Dynamic Clock (axi_dynclk) Driver ++ * ++ * Copyright (C) 2015 Digilent ++ * Author: Sam Bobrowicz ++ * ++ * Reused code from clk-axi-clkgen.c, Copyright (C) 2012-2013 Analog Devices Inc. ++ * ++ * This software is licensed under the terms of the GNU General Public ++ * License version 2, as published by the Free Software Foundation, and ++ * may be copied, distributed, and modified under those terms. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define CLK_BIT_WEDGE 13 ++#define CLK_BIT_NOCOUNT 12 ++ ++/* This value is used to signal an error */ ++#define ERR_CLKCOUNTCALC 0xFFFFFFFF ++#define ERR_CLKDIVIDER (1 << CLK_BIT_WEDGE | 1 << CLK_BIT_NOCOUNT) ++ ++#define DYNCLK_DIV_1_REGMASK 0x1041 ++/* 25 MHz (125 KHz / 5) */ ++#define DYNCLK_DEFAULT_FREQ 125000 ++ ++#define MMCM_FREQ_VCOMIN 600000 ++#define MMCM_FREQ_VCOMAX 1200000 ++#define MMCM_FREQ_PFDMIN 10000 ++#define MMCM_FREQ_PFDMAX 450000 ++#define MMCM_FREQ_OUTMIN 4000 ++#define MMCM_FREQ_OUTMAX 800000 ++#define MMCM_DIV_MAX 106 ++#define MMCM_FB_MIN 2 ++#define MMCM_FB_MAX 64 ++#define MMCM_CLKDIV_MAX 128 ++#define MMCM_CLKDIV_MIN 1 ++ ++#define OFST_DISPLAY_CTRL 0x0 ++#define OFST_DISPLAY_STATUS 0x4 ++#define OFST_DISPLAY_CLK_L 0x8 ++#define OFST_DISPLAY_FB_L 0x0C ++#define OFST_DISPLAY_FB_H_CLK_H 0x10 ++#define OFST_DISPLAY_DIV 0x14 ++#define OFST_DISPLAY_LOCK_L 0x18 ++#define OFST_DISPLAY_FLTR_LOCK_H 0x1C ++ ++static const u64 lock_lookup[64] = { ++ 0b0011000110111110100011111010010000000001, ++ 0b0011000110111110100011111010010000000001, ++ 0b0100001000111110100011111010010000000001, ++ 0b0101101011111110100011111010010000000001, ++ 0b0111001110111110100011111010010000000001, ++ 0b1000110001111110100011111010010000000001, ++ 0b1001110011111110100011111010010000000001, ++ 0b1011010110111110100011111010010000000001, ++ 0b1100111001111110100011111010010000000001, ++ 0b1110011100111110100011111010010000000001, ++ 0b1111111111111000010011111010010000000001, ++ 0b1111111111110011100111111010010000000001, ++ 0b1111111111101110111011111010010000000001, ++ 0b1111111111101011110011111010010000000001, ++ 0b1111111111101000101011111010010000000001, ++ 0b1111111111100111000111111010010000000001, ++ 0b1111111111100011111111111010010000000001, ++ 0b1111111111100010011011111010010000000001, ++ 0b1111111111100000110111111010010000000001, ++ 0b1111111111011111010011111010010000000001, ++ 0b1111111111011101101111111010010000000001, ++ 0b1111111111011100001011111010010000000001, ++ 0b1111111111011010100111111010010000000001, ++ 0b1111111111011001000011111010010000000001, ++ 0b1111111111011001000011111010010000000001, ++ 0b1111111111010111011111111010010000000001, ++ 0b1111111111010101111011111010010000000001, ++ 0b1111111111010101111011111010010000000001, ++ 0b1111111111010100010111111010010000000001, ++ 0b1111111111010100010111111010010000000001, ++ 0b1111111111010010110011111010010000000001, ++ 0b1111111111010010110011111010010000000001, ++ 0b1111111111010010110011111010010000000001, ++ 0b1111111111010001001111111010010000000001, ++ 0b1111111111010001001111111010010000000001, ++ 0b1111111111010001001111111010010000000001, ++ 0b1111111111001111101011111010010000000001, ++ 0b1111111111001111101011111010010000000001, ++ 0b1111111111001111101011111010010000000001, ++ 0b1111111111001111101011111010010000000001, ++ 0b1111111111001111101011111010010000000001, ++ 0b1111111111001111101011111010010000000001, ++ 0b1111111111001111101011111010010000000001, ++ 0b1111111111001111101011111010010000000001, ++ 0b1111111111001111101011111010010000000001, ++ 0b1111111111001111101011111010010000000001, ++ 0b1111111111001111101011111010010000000001, ++ 0b1111111111001111101011111010010000000001, ++ 0b1111111111001111101011111010010000000001, ++ 0b1111111111001111101011111010010000000001, ++ 0b1111111111001111101011111010010000000001, ++ 0b1111111111001111101011111010010000000001, ++ 0b1111111111001111101011111010010000000001, ++ 0b1111111111001111101011111010010000000001, ++ 0b1111111111001111101011111010010000000001, ++ 0b1111111111001111101011111010010000000001, ++ 0b1111111111001111101011111010010000000001, ++ 0b1111111111001111101011111010010000000001, ++ 0b1111111111001111101011111010010000000001, ++ 0b1111111111001111101011111010010000000001, ++ 0b1111111111001111101011111010010000000001, ++ 0b1111111111001111101011111010010000000001, ++ 0b1111111111001111101011111010010000000001, ++ 0b1111111111001111101011111010010000000001 ++}; ++ ++static const u32 filter_lookup_low[64] = { ++ 0b0001011111, ++ 0b0001010111, ++ 0b0001111011, ++ 0b0001011011, ++ 0b0001101011, ++ 0b0001110011, ++ 0b0001110011, ++ 0b0001110011, ++ 0b0001110011, ++ 0b0001001011, ++ 0b0001001011, ++ 0b0001001011, ++ 0b0010110011, ++ 0b0001010011, ++ 0b0001010011, ++ 0b0001010011, ++ 0b0001010011, ++ 0b0001010011, ++ 0b0001010011, ++ 0b0001010011, ++ 0b0001010011, ++ 0b0001010011, ++ 0b0001010011, ++ 0b0001100011, ++ 0b0001100011, ++ 0b0001100011, ++ 0b0001100011, ++ 0b0001100011, ++ 0b0001100011, ++ 0b0001100011, ++ 0b0001100011, ++ 0b0001100011, ++ 0b0001100011, ++ 0b0001100011, ++ 0b0001100011, ++ 0b0001100011, ++ 0b0001100011, ++ 0b0010010011, ++ 0b0010010011, ++ 0b0010010011, ++ 0b0010010011, ++ 0b0010010011, ++ 0b0010010011, ++ 0b0010010011, ++ 0b0010010011, ++ 0b0010010011, ++ 0b0010010011, ++ 0b0010100011, ++ 0b0010100011, ++ 0b0010100011, ++ 0b0010100011, ++ 0b0010100011, ++ 0b0010100011, ++ 0b0010100011, ++ 0b0010100011, ++ 0b0010100011, ++ 0b0010100011, ++ 0b0010100011, ++ 0b0010100011, ++ 0b0010100011, ++ 0b0010100011, ++ 0b0010100011, ++ 0b0010100011, ++ 0b0010100011 ++}; ++ ++struct dglnt_dynclk_reg; ++struct dglnt_dynclk_mode; ++struct dglnt_dynclk; ++ ++struct dglnt_dynclk_reg { ++ u32 clk0L; ++ u32 clkFBL; ++ u32 clkFBH_clk0H; ++ u32 divclk; ++ u32 lockL; ++ u32 fltr_lockH; ++}; ++ ++struct dglnt_dynclk_mode { ++ u32 freq; ++ u32 fbmult; ++ u32 clkdiv; ++ u32 maindiv; ++}; ++ ++struct dglnt_dynclk { ++ void __iomem *base; ++ struct clk_hw clk_hw; ++ unsigned long freq; ++}; ++ ++u32 dglnt_dynclk_divider(u32 divide) ++{ ++ u32 output = 0; ++ u32 highTime = 0; ++ u32 lowTime = 0; ++ ++ if ((divide < 1) || (divide > 128)) ++ return ERR_CLKDIVIDER; ++ ++ if (divide == 1) ++ return DYNCLK_DIV_1_REGMASK; ++ ++ highTime = divide / 2; ++ /* if divide is odd */ ++ if (divide & 0x1) { ++ lowTime = highTime + 1; ++ output = 1 << CLK_BIT_WEDGE; ++ } else { ++ lowTime = highTime; ++ } ++ ++ output |= 0x03F & lowTime; ++ output |= 0xFC0 & (highTime << 6); ++ return output; ++} ++ ++u32 dglnt_dynclk_count_calc(u32 divide) ++{ ++ u32 output = 0; ++ u32 divCalc = 0; ++ ++ divCalc = dglnt_dynclk_divider(divide); ++ if (divCalc == ERR_CLKDIVIDER) ++ output = ERR_CLKCOUNTCALC; ++ else ++ output = (0xFFF & divCalc) | ((divCalc << 10) & 0x00C00000); ++ return output; ++} ++ ++ ++int dglnt_dynclk_find_reg(struct dglnt_dynclk_reg *regValues, ++ struct dglnt_dynclk_mode *clkParams) ++{ ++ if ((clkParams->fbmult < 2) || clkParams->fbmult > 64) ++ return -EINVAL; ++ ++ regValues->clk0L = dglnt_dynclk_count_calc(clkParams->clkdiv); ++ if (regValues->clk0L == ERR_CLKCOUNTCALC) ++ return -EINVAL; ++ ++ regValues->clkFBL = dglnt_dynclk_count_calc(clkParams->fbmult); ++ if (regValues->clkFBL == ERR_CLKCOUNTCALC) ++ return -EINVAL; ++ ++ regValues->clkFBH_clk0H = 0; ++ ++ regValues->divclk = dglnt_dynclk_divider(clkParams->maindiv); ++ if (regValues->divclk == ERR_CLKDIVIDER) ++ return -EINVAL; ++ ++ regValues->lockL = (u32)(lock_lookup[clkParams->fbmult - 1] & ++ 0xFFFFFFFF); ++ ++ regValues->fltr_lockH = (u32)((lock_lookup[clkParams->fbmult - 1] >> ++ 32) & 0x000000FF); ++ regValues->fltr_lockH |= ((filter_lookup_low[clkParams->fbmult - 1] << ++ 16) & 0x03FF0000); ++ ++ return 0; ++} ++ ++void dglnt_dynclk_write_reg(struct dglnt_dynclk_reg *regValues, ++ void __iomem *baseaddr) ++{ ++ writel(regValues->clk0L, baseaddr + OFST_DISPLAY_CLK_L); ++ writel(regValues->clkFBL, baseaddr + OFST_DISPLAY_FB_L); ++ writel(regValues->clkFBH_clk0H, baseaddr + OFST_DISPLAY_FB_H_CLK_H); ++ writel(regValues->divclk, baseaddr + OFST_DISPLAY_DIV); ++ writel(regValues->lockL, baseaddr + OFST_DISPLAY_LOCK_L); ++ writel(regValues->fltr_lockH, baseaddr + OFST_DISPLAY_FLTR_LOCK_H); ++} ++ ++u32 dglnt_dynclk_find_mode(u32 freq, u32 parentFreq, ++ struct dglnt_dynclk_mode *bestPick) ++{ ++ u32 bestError = MMCM_FREQ_OUTMAX; ++ u32 curError; ++ u32 curClkMult; ++ u32 curFreq; ++ u32 divVal; ++ u32 curFb, curClkDiv; ++ u32 minFb = 0; ++ u32 maxFb = 0; ++ u32 curDiv = 1; ++ u32 maxDiv; ++ bool freq_found = false; ++ ++ bestPick->freq = 0; ++ if (parentFreq == 0) ++ return 0; ++ ++ /* minimum frequency is actually dictated by VCOmin */ ++ if (freq < MMCM_FREQ_OUTMIN) ++ freq = MMCM_FREQ_OUTMIN; ++ if (freq > MMCM_FREQ_OUTMAX) ++ freq = MMCM_FREQ_OUTMAX; ++ ++ if (parentFreq > MMCM_FREQ_PFDMAX) ++ curDiv = 2; ++ maxDiv = parentFreq / MMCM_FREQ_PFDMIN; ++ if (maxDiv > MMCM_DIV_MAX) ++ maxDiv = MMCM_DIV_MAX; ++ ++ while (curDiv <= maxDiv && !freq_found) { ++ minFb = curDiv * DIV_ROUND_UP(MMCM_FREQ_VCOMIN, parentFreq); ++ maxFb = curDiv * (MMCM_FREQ_VCOMAX / parentFreq); ++ if (maxFb > MMCM_FB_MAX) ++ maxFb = MMCM_FB_MAX; ++ if (minFb < MMCM_FB_MIN) ++ minFb = MMCM_FB_MIN; ++ ++ divVal = curDiv * freq; ++ /* ++ * This multiplier is used to find the best clkDiv value for ++ * each FB value ++ */ ++ curClkMult = ((parentFreq * 1000) + (divVal / 2)) / divVal; ++ ++ curFb = minFb; ++ while (curFb <= maxFb && !freq_found) { ++ curClkDiv = ((curClkMult * curFb) + 500) / 1000; ++ if (curClkDiv > MMCM_CLKDIV_MAX) ++ curClkDiv = MMCM_CLKDIV_MAX; ++ if (curClkDiv < MMCM_CLKDIV_MIN) ++ curClkDiv = MMCM_CLKDIV_MIN; ++ curFreq = (((parentFreq * curFb) / curDiv) / curClkDiv); ++ if (curFreq >= freq) ++ curError = curFreq - freq; ++ else ++ curError = freq - curFreq; ++ if (curError < bestError) { ++ bestError = curError; ++ bestPick->clkdiv = curClkDiv; ++ bestPick->fbmult = curFb; ++ bestPick->maindiv = curDiv; ++ bestPick->freq = curFreq; ++ } ++ if (!curError) ++ freq_found = true; ++ curFb++; ++ } ++ curDiv++; ++ } ++ return bestPick->freq; ++} ++ ++static struct dglnt_dynclk *clk_hw_to_dglnt_dynclk(struct clk_hw *clk_hw) ++{ ++ return container_of(clk_hw, struct dglnt_dynclk, clk_hw); ++} ++ ++ ++static int dglnt_dynclk_enable(struct clk_hw *clk_hw) ++{ ++ struct dglnt_dynclk *dglnt_dynclk = clk_hw_to_dglnt_dynclk(clk_hw); ++ unsigned int clock_state; ++ ++ if (dglnt_dynclk->freq) { ++ writel(1, dglnt_dynclk->base + OFST_DISPLAY_CTRL); ++ do { ++ clock_state = readl(dglnt_dynclk->base + ++ OFST_DISPLAY_STATUS); ++ } while (!clock_state); ++ } ++ return 0; ++} ++ ++static void dglnt_dynclk_disable(struct clk_hw *clk_hw) ++{ ++ struct dglnt_dynclk *dglnt_dynclk = clk_hw_to_dglnt_dynclk(clk_hw); ++ ++ writel(0, dglnt_dynclk->base + OFST_DISPLAY_CTRL); ++} ++ ++static int dglnt_dynclk_set_rate(struct clk_hw *clk_hw, ++ unsigned long rate, unsigned long parent_rate) ++{ ++ struct dglnt_dynclk *dglnt_dynclk = clk_hw_to_dglnt_dynclk(clk_hw); ++ struct dglnt_dynclk_reg clkReg; ++ struct dglnt_dynclk_mode clkMode; ++ ++ if (parent_rate == 0 || rate == 0) ++ return -EINVAL; ++ if (rate == dglnt_dynclk->freq) ++ return 0; ++ ++ /* ++ * Convert from Hz to KHz, then multiply by five to account for ++ * BUFR division ++ */ ++ rate = (rate + 100) / 200; ++ /* convert from Hz to KHz */ ++ parent_rate = (parent_rate + 500) / 1000; ++ if (!dglnt_dynclk_find_mode(rate, parent_rate, &clkMode)) ++ return -EINVAL; ++ ++ /* ++ * Write to the PLL dynamic configuration registers to configure it ++ * with the calculated parameters. ++ */ ++ dglnt_dynclk_find_reg(&clkReg, &clkMode); ++ dglnt_dynclk_write_reg(&clkReg, dglnt_dynclk->base); ++ dglnt_dynclk->freq = clkMode.freq * 200; ++ dglnt_dynclk_disable(clk_hw); ++ dglnt_dynclk_enable(clk_hw); ++ ++ return 0; ++} ++ ++static long dglnt_dynclk_round_rate(struct clk_hw *hw, unsigned long rate, ++ unsigned long *parent_rate) ++{ ++ struct dglnt_dynclk_mode clkMode; ++ ++ dglnt_dynclk_find_mode(((rate + 100) / 200), ++ ((*parent_rate) + 500) / 1000, &clkMode); ++ ++ return (clkMode.freq * 200); ++} ++ ++static unsigned long dglnt_dynclk_recalc_rate(struct clk_hw *clk_hw, ++ unsigned long parent_rate) ++{ ++ struct dglnt_dynclk *dglnt_dynclk = clk_hw_to_dglnt_dynclk(clk_hw); ++ ++ return dglnt_dynclk->freq; ++} ++ ++ ++static const struct clk_ops dglnt_dynclk_ops = { ++ .recalc_rate = dglnt_dynclk_recalc_rate, ++ .round_rate = dglnt_dynclk_round_rate, ++ .set_rate = dglnt_dynclk_set_rate, ++ .enable = dglnt_dynclk_enable, ++ .disable = dglnt_dynclk_disable, ++}; ++ ++static const struct of_device_id dglnt_dynclk_ids[] = { ++ { .compatible = "digilent,axi-dynclk", }, ++ { }, ++}; ++MODULE_DEVICE_TABLE(of, dglnt_dynclk_ids); ++ ++static int dglnt_dynclk_probe(struct platform_device *pdev) ++{ ++ const struct of_device_id *id; ++ struct dglnt_dynclk *dglnt_dynclk; ++ struct clk_init_data init; ++ const char *parent_name; ++ const char *clk_name; ++ struct resource *mem; ++ struct clk *clk; ++ ++ if (!pdev->dev.of_node) ++ return -ENODEV; ++ ++ id = of_match_node(dglnt_dynclk_ids, pdev->dev.of_node); ++ if (!id) ++ return -ENODEV; ++ ++ dglnt_dynclk = devm_kzalloc(&pdev->dev, sizeof(*dglnt_dynclk), ++ GFP_KERNEL); ++ if (!dglnt_dynclk) ++ return -ENOMEM; ++ ++ mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); ++ dglnt_dynclk->base = devm_ioremap_resource(&pdev->dev, mem); ++ if (IS_ERR(dglnt_dynclk->base)) ++ return PTR_ERR(dglnt_dynclk->base); ++ ++ parent_name = of_clk_get_parent_name(pdev->dev.of_node, 0); ++ if (!parent_name) ++ return -EINVAL; ++ ++ clk_name = pdev->dev.of_node->name; ++ of_property_read_string(pdev->dev.of_node, "clock-output-names", ++ &clk_name); ++ ++ init.name = clk_name; ++ init.ops = &dglnt_dynclk_ops; ++ init.flags = 0; ++ init.parent_names = &parent_name; ++ init.num_parents = 1; ++ ++ dglnt_dynclk->freq = 0; ++ dglnt_dynclk_disable(&dglnt_dynclk->clk_hw); ++ ++ dglnt_dynclk->clk_hw.init = &init; ++ clk = devm_clk_register(&pdev->dev, &dglnt_dynclk->clk_hw); ++ if (IS_ERR(clk)) ++ return PTR_ERR(clk); ++ ++ return of_clk_add_provider(pdev->dev.of_node, of_clk_src_simple_get, ++ clk); ++} ++ ++static int dglnt_dynclk_remove(struct platform_device *pdev) ++{ ++ of_clk_del_provider(pdev->dev.of_node); ++ ++ return 0; ++} ++ ++static struct platform_driver dglnt_dynclk_driver = { ++ .driver = { ++ .name = "dglnt-dynclk", ++ .owner = THIS_MODULE, ++ .of_match_table = dglnt_dynclk_ids, ++ }, ++ .probe = dglnt_dynclk_probe, ++ .remove = dglnt_dynclk_remove, ++}; ++module_platform_driver(dglnt_dynclk_driver); ++ ++MODULE_LICENSE("GPL v2"); ++MODULE_AUTHOR("Sam Bobrowicz "); ++MODULE_DESCRIPTION("CCF Driver for Digilent axi_dynclk IP Core"); +-- +2.14.2 + diff --git a/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2023.1/0003-drm-xilinx-Fix-DPMS-transition-to-on.patch b/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2023.1/0003-drm-xilinx-Fix-DPMS-transition-to-on.patch new file mode 100644 index 000000000..a98d84c55 --- /dev/null +++ b/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2023.1/0003-drm-xilinx-Fix-DPMS-transition-to-on.patch @@ -0,0 +1,54 @@ +From 1a18e2b514ae9e75145597ac509a87f656c976ba Mon Sep 17 00:00:00 2001 +From: Nathan Rossi +Date: Mon, 2 May 2016 23:46:42 +1000 +Subject: [PATCH 3/3] drm: xilinx: Fix DPMS transition to on + +Fix the issues where the VTC is reset (losing its timing config). + +Also fix the issue where the plane destroys its DMA descriptors and +marks the DMA channels as inactive but never recreates the descriptors +and never updates the active state when turning DPMS back on. + +Signed-off-by: Nathan Rossi +Upstream-Status: Pending [This is a workaround] +--- + drivers/gpu/drm/xilinx/xilinx_drm_crtc.c | 1 - + drivers/gpu/drm/xilinx/xilinx_drm_plane.c | 3 ++- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/drivers/gpu/drm/xilinx/xilinx_drm_crtc.c b/drivers/gpu/drm/xilinx/xilinx_drm_crtc.c +index 631d35b921..93dbd4b58a 100644 +--- a/drivers/gpu/drm/xilinx/xilinx_drm_crtc.c ++++ b/drivers/gpu/drm/xilinx/xilinx_drm_crtc.c +@@ -88,7 +88,6 @@ static void xilinx_drm_crtc_dpms(struct drm_crtc *base_crtc, int dpms) + default: + if (crtc->vtc) { + xilinx_vtc_disable(crtc->vtc); +- xilinx_vtc_reset(crtc->vtc); + } + if (crtc->cresample) { + xilinx_cresample_disable(crtc->cresample); +diff --git a/drivers/gpu/drm/xilinx/xilinx_drm_plane.c b/drivers/gpu/drm/xilinx/xilinx_drm_plane.c +index 6a248b72d4..d2518a4bdf 100644 +--- a/drivers/gpu/drm/xilinx/xilinx_drm_plane.c ++++ b/drivers/gpu/drm/xilinx/xilinx_drm_plane.c +@@ -140,7 +140,7 @@ void xilinx_drm_plane_commit(struct drm_plane *base_plane) + for (i = 0; i < MAX_NUM_SUB_PLANES; i++) { + struct xilinx_drm_plane_dma *dma = &plane->dma[i]; + +- if (dma->chan && dma->is_active) { ++ if (dma->chan) { + flags = DMA_CTRL_ACK | DMA_PREP_INTERRUPT; + desc = dmaengine_prep_interleaved_dma(dma->chan, + &dma->xt, +@@ -153,6 +153,7 @@ void xilinx_drm_plane_commit(struct drm_plane *base_plane) + dmaengine_submit(desc); + + dma_async_issue_pending(dma->chan); ++ dma->is_active = true; + } + } + } +-- +2.14.2 + diff --git a/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2023.1/0004-minized-wifi-bluetooth.cfg b/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2023.1/0004-minized-wifi-bluetooth.cfg new file mode 100644 index 000000000..f71e53abb --- /dev/null +++ b/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx/v2023.1/0004-minized-wifi-bluetooth.cfg @@ -0,0 +1,33 @@ +# +# Bluetooth config +# +CONFIG_BT=y +CONFIG_BT_BREDR=y +CONFIG_BT_HS=y +CONFIG_BT_LE=y +CONFIG_BT_BCM=y +CONFIG_BT_HCIUART=y +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUART_BCM=y +CONFIG_BT_HIDP=y +CONFIG_CFG80211=y +CONFIG_CFG80211_DEFAULT_PS=y +CONFIG_CFG80211_CRDA_SUPPORT=y +CONFIG_BRCMUTIL=y +CONFIG_BRCMFMAC=y +CONFIG_BRCMFMAC_PROTO_BCDC=y +CONFIG_BRCMFMAC_SDIO=y +CONFIG_CRYPTO_BLKCIPHER=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_ECB=y +CONFIG_CRYPTO_CMAC=y +CONFIG_CRYPTO_SHA256=y + +# +# Regulator config +# +CONFIG_REGMAP_IRQ=y +CONFIG_I2C_XILINX=y +CONFIG_MFD_DA9062=y +CONFIG_REGULATOR_DA9062=y + diff --git a/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx_2023.1.bbappend b/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx_2023.1.bbappend new file mode 100644 index 000000000..c789c7a92 --- /dev/null +++ b/meta-xilinx-contrib/recipes-kernel/linux/linux-xlnx_2023.1.bbappend @@ -0,0 +1,12 @@ +FILESEXTRAPATHS:prepend := "${THISDIR}/linux-xlnx/v${@bb.parse.vars_from_file(d.getVar('FILE', False),d)[1] or ''}:" + +# Note: These patches are very old and doesn't apply on top of 5.x +# kernel. For more details refer README.md file. + +#SRC_URI:append:zybo-linux-bd-zynq7 = " \ +# file://0001-drm-xilinx-Add-encoder-for-Digilent-boards.patch \ +# file://0002-clk-Add-driver-for-axi_dynclk-IP-Core.patch \ +# file://0003-drm-xilinx-Fix-DPMS-transition-to-on.patch \ +# " + +SRC_URI:append:minized-zynq7 = " file://0004-minized-wifi-bluetooth.cfg" diff --git a/meta-xilinx-core/classes/gen-machine-conf.bbclass b/meta-xilinx-core/classes/gen-machine-conf.bbclass new file mode 100644 index 000000000..25960cd10 --- /dev/null +++ b/meta-xilinx-core/classes/gen-machine-conf.bbclass @@ -0,0 +1,6 @@ +#Add scripts path with the tools to PATH to be able to use from eSDK +sdk_ext_postinst:append() { + if [ -d $target_sdk_dir/layers/meta-xilinx/meta-xilinx-core/gen-machine-conf ]; then + echo "export PATH=$target_sdk_dir/layers/meta-xilinx/meta-xilinx-core/gen-machine-conf:\$PATH" >> $env_setup_script + fi +} diff --git a/meta-xilinx-core/conf/layer.conf b/meta-xilinx-core/conf/layer.conf index 5f0c939ff..36f445aca 100644 --- a/meta-xilinx-core/conf/layer.conf +++ b/meta-xilinx-core/conf/layer.conf @@ -41,12 +41,13 @@ SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \ *->xserver-xorg \ " -XILINX_RELEASE_VERSION ??= "v2022.2" +XILINX_RELEASE_VERSION ??= "v2023.1" BUILDCFG_VARS:append = " SOC_VARIANT XILINX_RELEASE_VERSION" XILINX_QEMU_VERSION[v2022.1] = "v7.1.0-xilinx-v2022.1%" XILINX_QEMU_VERSION[v2022.2] = "v7.1.0-xilinx-v2022.2%" +XILINX_QEMU_VERSION[v2023.1] = "v7.1.0-xilinx-v2023.1%" PREFERRED_VERSION_qemu-xilinx ?= "${@d.getVarFlag('XILINX_QEMU_VERSION', d.getVar('XILINX_RELEASE_VERSION')) or 'undefined'}" PREFERRED_VERSION_qemu-xilinx-native ?= "${@d.getVarFlag('XILINX_QEMU_VERSION', d.getVar('XILINX_RELEASE_VERSION')) or 'undefined'}" PREFERRED_VERSION_qemu-xilinx-system-native ?= "${@d.getVarFlag('XILINX_QEMU_VERSION', d.getVar('XILINX_RELEASE_VERSION')) or 'undefined'}" @@ -54,14 +55,21 @@ PREFERRED_VERSION_qemu-devicetrees ?= "xilinx-${XILINX_RELEASE_VERSION}%" XILINX_ATF_VERSION[v2022.1] = "2.6-xilinx-v2022.1%" XILINX_ATF_VERSION[v2022.2] = "2.6-xilinx-v2022.2%" +XILINX_ATF_VERSION[v2023.1] = "2.8-xilinx-v2023.1%" PREFERRED_VERSION_arm-trusted-firmware ?= "${@d.getVarFlag('XILINX_ATF_VERSION', d.getVar('XILINX_RELEASE_VERSION')) or 'undefined'}" XILINX_UBOOT_VERSION[v2022.1] = "v2021.01-xilinx-v2022.1%" XILINX_UBOOT_VERSION[v2022.2] = "v2021.01-xilinx-v2022.2%" +XILINX_UBOOT_VERSION[v2023.1] = "v2023.01-xilinx-v2023.1%" PREFERRED_VERSION_u-boot-xlnx ?= "${@d.getVarFlag('XILINX_UBOOT_VERSION', d.getVar('XILINX_RELEASE_VERSION')) or 'undefined'}" PREFERRED_VERSION_u-boot-tools-xlnx ?= "${@d.getVarFlag('XILINX_UBOOT_VERSION', d.getVar('XILINX_RELEASE_VERSION')) or 'undefined'}" XILINX_LINUX_VERSION[v2022.1] = "5.15.19-xilinx-v2022.1%" XILINX_LINUX_VERSION[v2022.2] = "5.15.36-xilinx-v2022.2%" +XILINX_LINUX_VERSION[v2023.1] = "6.1.5-xilinx-v2023.1%" PREFERRED_VERSION_linux-xlnx ?= "${@d.getVarFlag('XILINX_LINUX_VERSION', d.getVar('XILINX_RELEASE_VERSION')) or 'undefined'}" + +# Add support to eSDK for gen-machine-conf if it exists +PLNX_SCRIPTS_PATH = "${LAYERDIR}/gen-machine-conf/gen-machine-scripts" +IMAGE_CLASSES += "gen-machine-conf" diff --git a/meta-xilinx-core/dynamic-layers/openamp-layer/recipes-bsp/device-tree/open-amp-device-tree.bb b/meta-xilinx-core/dynamic-layers/openamp-layer/recipes-bsp/device-tree/open-amp-device-tree.bb index 9f481feca..8f77bd544 100644 --- a/meta-xilinx-core/dynamic-layers/openamp-layer/recipes-bsp/device-tree/open-amp-device-tree.bb +++ b/meta-xilinx-core/dynamic-layers/openamp-layer/recipes-bsp/device-tree/open-amp-device-tree.bb @@ -11,8 +11,6 @@ SRC_URI = " \ file://zynqmp-openamp-overlay.dts \ file://versal-openamp.dtsi \ file://versal-openamp-overlay.dts \ - file://versal-net-openamp.dtsi \ - file://versal-net-openamp-overlay.dts \ " # We don't have anything to include from the kernel @@ -21,7 +19,6 @@ KERNEL_INCLUDE = "" COMPATIBLE_MACHINE:zynq = "${MACHINE}" COMPATIBLE_MACHINE:zynqmp = "${MACHINE}" COMPATIBLE_MACHINE:versal = "${MACHINE}" -COMPATIBLE_MACHINE:versal-net = "${MACHINE}" inherit devicetree image-artifact-names features_check diff --git a/meta-xilinx-core/dynamic-layers/openamp-layer/recipes-openamp/libmetal/libmetal-xlnx_v2023.1.bb b/meta-xilinx-core/dynamic-layers/openamp-layer/recipes-openamp/libmetal/libmetal-xlnx_v2023.1.bb new file mode 100644 index 000000000..30ca35014 --- /dev/null +++ b/meta-xilinx-core/dynamic-layers/openamp-layer/recipes-openamp/libmetal/libmetal-xlnx_v2023.1.bb @@ -0,0 +1,15 @@ +SRCBRANCH ?= "2023.1" +SRCREV = "be635252271de342014a146825870b64bd41d6eb" +BRANCH = "xlnx_rel_v2023.1" +LIC_FILES_CHKSUM ?= "file://LICENSE.md;md5=f4d5df0f12dcea1b1a0124219c0dbab4" +PV = "${SRCBRANCH}+git${SRCPV}" + +REPO = "git://github.com/Xilinx/libmetal.git;protocol=https" + +include ${LAYER_PATH_openamp-layer}/recipes-openamp/libmetal/libmetal.inc + +RPROVIDES:${PN}-dbg += "libmetal-dbg" +RPROVIDES:${PN}-dev += "libmetal-dev" +RPROVIDES:${PN}-lic += "libmetal-lic" +RPROVIDES:${PN}-src += "libmetal-src" +RPROVIDES:${PN}-staticdev += "libmetal-staticdev" diff --git a/meta-xilinx-core/dynamic-layers/openamp-layer/recipes-openamp/open-amp/open-amp-xlnx_v2023.1.bb b/meta-xilinx-core/dynamic-layers/openamp-layer/recipes-openamp/open-amp/open-amp-xlnx_v2023.1.bb new file mode 100644 index 000000000..e295b8697 --- /dev/null +++ b/meta-xilinx-core/dynamic-layers/openamp-layer/recipes-openamp/open-amp/open-amp-xlnx_v2023.1.bb @@ -0,0 +1,16 @@ +SRCBRANCH ?= "2023.1" +SRCREV = "c8aaf2f26d5493f492f0af09dd558d45908636da" +BRANCH = "xlnx_rel_v2023.1" +LIC_FILES_CHKSUM ?= "file://LICENSE.md;md5=ab88daf995c0bd0071c2e1e55f3d3505" +PV = "${SRCBRANCH}+git${SRCPV}" +REPO = "git://github.com/Xilinx/open-amp.git;protocol=https" + +include ${LAYER_PATH_openamp-layer}/recipes-openamp/open-amp/open-amp.inc +require ${LAYER_PATH_openamp-layer}/vendor/xilinx/recipes-openamp/open-amp/open-amp-xlnx.inc + +RPROVIDES:${PN}-dbg += "open-amp-dbg" +RPROVIDES:${PN}-dev += "open-amp-dev" +RPROVIDES:${PN}-lic += "open-amp-lic" +RPROVIDES:${PN}-src += "open-amp-src" +RPROVIDES:${PN}-staticdev += "open-amp-staticdev" + diff --git a/meta-xilinx-core/dynamic-layers/virtualization-layer/recipes-kernel/lopper/lopper_git.bbappend b/meta-xilinx-core/dynamic-layers/virtualization-layer/recipes-kernel/lopper/lopper_git.bbappend index db4f48202..0440b1bc2 100644 --- a/meta-xilinx-core/dynamic-layers/virtualization-layer/recipes-kernel/lopper/lopper_git.bbappend +++ b/meta-xilinx-core/dynamic-layers/virtualization-layer/recipes-kernel/lopper/lopper_git.bbappend @@ -1,5 +1,7 @@ -SRC_URI = "git://github.com/devicetree-org/lopper.git;branch=v0.2022.x;protocol=https" -SRCREV = "cdb1a7b55c375f5237683a512257e0fc573063a2" +SRC_URI = "git://github.com/devicetree-org/lopper.git;branch=master;protocol=https" +SRCREV = "395f00d44ee259d5db6fd6165c6cd18c8fe40e2f" + +FILESEXTRAPATHS:prepend := "${THISDIR}/lopper:" BASEVERSION = "1.1.0" diff --git a/meta-xilinx-core/gen-machine-conf b/meta-xilinx-core/gen-machine-conf new file mode 160000 index 000000000..a08b0e9e8 --- /dev/null +++ b/meta-xilinx-core/gen-machine-conf @@ -0,0 +1 @@ +Subproject commit a08b0e9e88b4c70336b12d57d4704343474d608d diff --git a/meta-xilinx-core/recipes-bsp/ai-engine/ai-engine-driver_3.2.bb b/meta-xilinx-core/recipes-bsp/ai-engine/ai-engine-driver_3.2.bb index 787111b52..810b51fdf 100644 --- a/meta-xilinx-core/recipes-bsp/ai-engine/ai-engine-driver_3.2.bb +++ b/meta-xilinx-core/recipes-bsp/ai-engine/ai-engine-driver_3.2.bb @@ -1,7 +1,7 @@ SUMMARY = "Xilinx AI Engine runtime" DESCRIPTION = "This library provides APIs for the runtime support of the Xilinx AI Engine IP" -require aie-rt.inc +require aie-rt-2022.inc SECTION = "libs" diff --git a/meta-xilinx-core/recipes-bsp/ai-engine/ai-engine-driver_3.3.bb b/meta-xilinx-core/recipes-bsp/ai-engine/ai-engine-driver_3.3.bb new file mode 100644 index 000000000..6a4fd8804 --- /dev/null +++ b/meta-xilinx-core/recipes-bsp/ai-engine/ai-engine-driver_3.3.bb @@ -0,0 +1,47 @@ +SUMMARY = "Xilinx AI Engine runtime" +DESCRIPTION = "This library provides APIs for the runtime support of the Xilinx AI Engine IP" + +require aie-rt.inc + +SECTION = "libs" + +AIEDIR ?= "${S}/driver" +S = "${WORKDIR}/git" +I = "${AIEDIR}/include" + +COMPATIBLE_MACHINE = "^$" +COMPATIBLE_MACHINE:versal-ai-core = "versal-ai-core" +COMPATIBLE_MACHINE:versal-ai-edge = "${SOC_VARIANT_ARCH}" +PV = "3.3" + +IOBACKENDS ?= "Linux" + +DEPENDS = "${@bb.utils.contains('IOBACKENDS', 'metal', 'libmetal', '', d)}" +RDEPENDS:${PN} = "${@bb.utils.contains('IOBACKENDS', 'metal', 'libmetal', '', d)}" + +PROVIDES = "libxaiengine" +RPROVIDES:${PN} = "libxaiengine" + +# The makefile isn't ready for parallel execution at the moment +PARALLEL_MAKE = "-j 1" + +CFLAGS += "-Wall -Wextra -fno-thread-jumps -fno-tree-pre" +CFLAGS += "${@bb.utils.contains('IOBACKENDS', 'Linux', ' -D__AIELINUX__', '', d)}" +CFLAGS += "${@bb.utils.contains('IOBACKENDS', 'metal', ' -D__AIEMETAL__', '', d)}" +EXTRA_OEMAKE = "-C ${AIEDIR}/src -f Makefile.Linux CFLAGS='${CFLAGS}'" + + +do_compile(){ + oe_runmake +} + +do_install(){ + install -d ${D}${includedir} + install ${I}/*.h ${D}${includedir}/ + install -d ${D}${includedir}/xaiengine + install ${I}/xaiengine/*.h ${D}${includedir}/xaiengine/ + install -d ${D}${libdir} + cp -dr ${AIEDIR}/src/*.so* ${D}${libdir} +} + +PACKAGE_ARCH:versal-ai-core = "${SOC_VARIANT_ARCH}" diff --git a/meta-xilinx-core/recipes-bsp/ai-engine/aie-rt-2022.inc b/meta-xilinx-core/recipes-bsp/ai-engine/aie-rt-2022.inc new file mode 100644 index 000000000..851216540 --- /dev/null +++ b/meta-xilinx-core/recipes-bsp/ai-engine/aie-rt-2022.inc @@ -0,0 +1,11 @@ +SECTION = "libs" + +REPO ?= "git://github.com/Xilinx/aie-rt.git;protocol=https" + +BRANCH ?= "xlnx_rel_v2022.2" +SRCREV ?= "ae24c8ede049906323510693f37e6167a963fd0e" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM ?= "file://license.txt;md5=b81abf1f508952331dd7d2ab36408f5b" + +SRC_URI = "${REPO};branch=${BRANCH}" diff --git a/meta-xilinx-core/recipes-bsp/ai-engine/aie-rt.inc b/meta-xilinx-core/recipes-bsp/ai-engine/aie-rt.inc index 851216540..5eeb69d44 100644 --- a/meta-xilinx-core/recipes-bsp/ai-engine/aie-rt.inc +++ b/meta-xilinx-core/recipes-bsp/ai-engine/aie-rt.inc @@ -2,8 +2,8 @@ SECTION = "libs" REPO ?= "git://github.com/Xilinx/aie-rt.git;protocol=https" -BRANCH ?= "xlnx_rel_v2022.2" -SRCREV ?= "ae24c8ede049906323510693f37e6167a963fd0e" +BRANCH ?= "xlnx_rel_v2023.1" +SRCREV ?= "1ad203de0b7f282b1c0659fd2ae3f218652c7274" LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM ?= "file://license.txt;md5=b81abf1f508952331dd7d2ab36408f5b" diff --git a/meta-xilinx-core/recipes-bsp/ai-engine/aiefal_1.0.bb b/meta-xilinx-core/recipes-bsp/ai-engine/aiefal_1.0.bb index 641c39a96..7bb4b8498 100644 --- a/meta-xilinx-core/recipes-bsp/ai-engine/aiefal_1.0.bb +++ b/meta-xilinx-core/recipes-bsp/ai-engine/aiefal_1.0.bb @@ -1,7 +1,7 @@ SUMMARY = "Xilinx AI Engine FAL(Functional Abstraction Layer)" DESCRIPTION = "AIE FAL provides functional abstraction APIs for runtime support of Xilinx AI Engine IP" -require aie-rt.inc +require aie-rt-2022.inc SECTION = "devel" diff --git a/meta-xilinx-core/recipes-bsp/ai-engine/aiefal_1.4.bb b/meta-xilinx-core/recipes-bsp/ai-engine/aiefal_1.4.bb new file mode 100644 index 000000000..641c39a96 --- /dev/null +++ b/meta-xilinx-core/recipes-bsp/ai-engine/aiefal_1.4.bb @@ -0,0 +1,33 @@ +SUMMARY = "Xilinx AI Engine FAL(Functional Abstraction Layer)" +DESCRIPTION = "AIE FAL provides functional abstraction APIs for runtime support of Xilinx AI Engine IP" + +require aie-rt.inc + +SECTION = "devel" + +XAIEFAL_DIR ?= "fal" +S = "${WORKDIR}/git" + +COMPATIBLE_MACHINE = "^$" +COMPATIBLE_MACHINE:versal-ai-core = "versal-ai-core" +COMPATIBLE_MACHINE:versal-ai-edge = "${SOC_VARIANT_ARCH}" + +IOBACKENDS ?= "Linux" + +PROVIDES = "aiefal" +ALLOW_EMPTY:${PN} = "1" + +inherit pkgconfig cmake + +DEPENDS = "libxaiengine" + +OECMAKE_SOURCEPATH = "${S}/${XAIEFAL_DIR}" + +EXTRA_OECMAKE = "-DWITH_TESTS=OFF " +EXTRA_OECMAKE:append = "${@'-DWITH_EXAMPLES=ON' if d.getVar('WITH_EXAMPLES') == 'y' else '-DWITH_EXAMPLES=OFF'}" + +FILES:${PN}-demos = " \ + ${bindir}/* \ +" + +PACKAGE_ARCH:versal-ai-core = "${SOC_VARIANT_ARCH}" diff --git a/meta-xilinx-core/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware_2023.1.bb b/meta-xilinx-core/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware_2023.1.bb new file mode 100644 index 000000000..2bcbe7d43 --- /dev/null +++ b/meta-xilinx-core/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware_2023.1.bb @@ -0,0 +1,8 @@ +ATF_VERSION = "2.8" +SRCREV = "c9b71dc96f3f18ca94cad590612aae3224c8c84d" +BRANCH = "xlnx_rebase_v2.8" +LIC_FILES_CHKSUM = "file://license.rst;md5=1dd070c98a281d18d9eefd938729b031" + + +include arm-trusted-firmware.inc + diff --git a/meta-xilinx-core/recipes-bsp/bootgen/bootgen_2023.1.bb b/meta-xilinx-core/recipes-bsp/bootgen/bootgen_2023.1.bb new file mode 100644 index 000000000..a934230dc --- /dev/null +++ b/meta-xilinx-core/recipes-bsp/bootgen/bootgen_2023.1.bb @@ -0,0 +1,31 @@ +SUMMARY = "Building and installing bootgen" +DESCRIPTION = "Building and installing bootgen, a Xilinx tool that lets you stitch binary files together and generate device boot images" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d526b6d0807bf263b97da1da876f39b1" + +S = "${WORKDIR}/git" + +DEPENDS += "openssl" +RDEPENDS:${PN} += "openssl" + +REPO ?= "git://github.com/Xilinx/bootgen.git;protocol=https" +BRANCH = "xlnx_rel_v2023.1" +SRCREV = "4f1e1caf2c09cdeacc35cbeedaf2550c6e44c7fd" + +BRANCHARG = "${@['nobranch=1', 'branch=${BRANCH}'][d.getVar('BRANCH', True) != '']}" +SRC_URI = "${REPO};${BRANCHARG}" + +EXTRA_OEMAKE += 'CROSS_COMPILER="${CXX}" -C ${S}' +CXXFLAGS:append = " -std=c++0x" + +TARGET_CC_ARCH += "${LDFLAGS}" + +do_install() { + install -d ${D}${bindir} + install -Dm 0755 ${S}/bootgen ${D}${bindir} +} + +FILES:${PN} = "${bindir}/bootgen" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-xilinx-core/recipes-bsp/dfx-mgr/dfx-mgr_2023.1.bb b/meta-xilinx-core/recipes-bsp/dfx-mgr/dfx-mgr_2023.1.bb new file mode 100644 index 000000000..a4149d395 --- /dev/null +++ b/meta-xilinx-core/recipes-bsp/dfx-mgr/dfx-mgr_2023.1.bb @@ -0,0 +1,72 @@ +SUMMARY = "Xilinx dfx-mgr libraries" +DESCRIPTION = "Xilinx Runtime User Space Libraries and Binaries" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=d67bcef754e935bf77b6d7051bd62b5e" + +REPO ?= "git://github.com/Xilinx/dfx-mgr.git;protocol=https" +BRANCHARG = "${@['nobranch=1', 'branch=${BRANCH}'][d.getVar('BRANCH', True) != '']}" +SRC_URI = "${REPO};${BRANCHARG}" + +BRANCH = "xlnx_rel_v2023.1" +SRCREV = "5918fb3406d828693cca484b77229ffd031b5dc4" +SOMAJOR = "1" +SOMINOR = "0" +SOVERSION = "${SOMAJOR}.${SOMINOR}" + +COMPATIBLE_MACHINE = "^$" +COMPATIBLE_MACHINE:zynqmp = "zynqmp" +COMPATIBLE_MACHINE:versal = "versal" + +S = "${WORKDIR}/git" + +inherit cmake update-rc.d systemd + +DEPENDS += " libwebsockets inotify-tools libdfx zocl libdrm" +RDEPENDS:${PN} += " freeipmi" +EXTRA_OECMAKE += " \ + -DCMAKE_SYSROOT:PATH=${RECIPE_SYSROOT} \ + " + +INITSCRIPT_NAME = "dfx-mgr.sh" +INITSCRIPT_PARAMS = "start 99 S ." + +SYSTEMD_PACKAGES="${PN}" +SYSTEMD_SERVICE:${PN}="dfx-mgr.service" +SYSTEMD_AUTO_ENABLE:${PN}="enable" + + +do_install(){ + install -d ${D}${bindir} + install -d ${D}${libdir} + install -d ${D}${includedir} + install -d ${D}${base_libdir}/firmware/xilinx + install -d ${D}${sysconfdir}/dfx-mgrd + + cp ${B}/example/sys/linux/dfx-mgrd-static ${D}${bindir}/dfx-mgrd + cp ${B}/example/sys/linux/dfx-mgr-client-static ${D}${bindir}/dfx-mgr-client + chrpath -d ${D}${bindir}/dfx-mgrd + chrpath -d ${D}${bindir}/dfx-mgr-client + install -m 0644 ${S}/src/dfxmgr_client.h ${D}${includedir} + + oe_soinstall ${B}/src/libdfx-mgr.so.${SOVERSION} ${D}${libdir} + + install -m 0755 ${S}/src/daemon.conf ${D}${sysconfdir}/dfx-mgrd/ + + if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then + install -d ${D}${sysconfdir}/init.d/ + install -m 0755 ${S}/src/dfx-mgr.sh ${D}${sysconfdir}/init.d/ + fi + + install -m 0755 ${S}/src/dfx-mgr.sh ${D}${bindir} + install -m 0755 ${S}/src/scripts/xlnx-firmware-detect ${D}${bindir} + + install -d ${D}${systemd_system_unitdir} + install -m 0644 ${S}/src/dfx-mgr.service ${D}${systemd_system_unitdir} +} + +PACKAGES =+ "libdfx-mgr" + +FILES:${PN} += "${base_libdir}/firmware/xilinx" +FILES:${PN} += "${@bb.utils.contains('DISTRO_FEATURES','sysvinit','${sysconfdir}/init.d/dfx-mgr.sh', '', d)} ${systemd_system_unitdir}" +FILES:libdfx-mgr = "${libdir}/libdfx-mgr.so.${SOVERSION} ${libdir}/libdfx-mgr.so.${SOMAJOR}" diff --git a/meta-xilinx-core/recipes-bsp/libdfx/libdfx_2023.1.bb b/meta-xilinx-core/recipes-bsp/libdfx/libdfx_2023.1.bb new file mode 100644 index 000000000..287246c25 --- /dev/null +++ b/meta-xilinx-core/recipes-bsp/libdfx/libdfx_2023.1.bb @@ -0,0 +1,23 @@ +SUMMARY = "Xilinx libdfx library" +DESCRIPTION = "Xilinx libdfx Library and headers" + +LICENSE = "MIT & GPL-2.0-or-later" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=94aba86aec117f003b958a52f019f1a7" + +BRANCH ?= "xlnx_rel_v2023.1" +REPO ?= "git://github.com/Xilinx/libdfx.git;protocol=https" +BRANCHARG = "${@['nobranch=1', 'branch=${BRANCH}'][d.getVar('BRANCH', True) != '']}" +SRC_URI = "${REPO};${BRANCHARG}" +SRCREV = "52c1d83c72a2b2e85d256411a199ed1baed12ae1" + +COMPATIBLE_MACHINE = "^$" +COMPATIBLE_MACHINE:zynqmp = "zynqmp" +COMPATIBLE_MACHINE:versal = "versal" + +S = "${WORKDIR}/git" + +inherit cmake + +# Due to an update where the soname/version was defined, we need to use an RREPLACES +# so updates will work properly. +RREPLACES:${PN} = "libdfx" diff --git a/meta-xilinx-core/recipes-bsp/u-boot/u-boot-tools-xlnx_2023.1.bb b/meta-xilinx-core/recipes-bsp/u-boot/u-boot-tools-xlnx_2023.1.bb new file mode 100644 index 000000000..fe5ecf793 --- /dev/null +++ b/meta-xilinx-core/recipes-bsp/u-boot/u-boot-tools-xlnx_2023.1.bb @@ -0,0 +1,21 @@ +require u-boot-tools-xlnx.inc +require u-boot-xlnx-2023.1.inc + +# MUST clear CONFIG_VIDEO to avoid a compilation failure trying to construct +# bmp_logo.h +SED_CONFIG_EFI:append = ' -e "s/CONFIG_VIDEO=.*/# CONFIG_VIDEO is not set/"' + +# Default do_compile fails with: +# | error: object directory ../downloads/git2/github.com.Xilinx.u-boot-xlnx.git/objects does not exist; check .git/objects/info/alternates. +# The regular workaround of calling 'git diff' seems to be problematic. +do_compile () { + oe_runmake -C ${S} tools-only_defconfig O=${B} + + # Disable CONFIG_CMD_LICENSE, license.h is not used by tools and + # generating it requires bin2header tool, which for target build + # is built with target tools and thus cannot be executed on host. + sed -i -e "s/CONFIG_CMD_LICENSE=.*/# CONFIG_CMD_LICENSE is not set/" ${SED_CONFIG_EFI} ${B}/.config + + oe_runmake -C ${S} cross_tools NO_SDL=1 O=${B} +} + diff --git a/meta-xilinx-core/recipes-bsp/u-boot/u-boot-v2023.01/microblaze-generic-top.h b/meta-xilinx-core/recipes-bsp/u-boot/u-boot-v2023.01/microblaze-generic-top.h new file mode 100644 index 000000000..be8234215 --- /dev/null +++ b/meta-xilinx-core/recipes-bsp/u-boot/u-boot-v2023.01/microblaze-generic-top.h @@ -0,0 +1,8 @@ +/* + * This file is use for addition u-boot configurations for microblaze. + */ +#include + +/* Core microblaze boot configurations */ +#define XILINX_USE_ICACHE 1 +#define XILINX_USE_DCACHE 1 diff --git a/meta-xilinx-core/recipes-bsp/u-boot/u-boot-v2023.01/microblaze-generic.cfg b/meta-xilinx-core/recipes-bsp/u-boot/u-boot-v2023.01/microblaze-generic.cfg new file mode 100644 index 000000000..3c911a06d --- /dev/null +++ b/meta-xilinx-core/recipes-bsp/u-boot/u-boot-v2023.01/microblaze-generic.cfg @@ -0,0 +1,83 @@ +# SPDX-License-Identifier: MIT + +#........................................................................ +# WARNING +# +# This file is a u-boot configuration fragment, and not a full u-boot +# configuration file. The final u-boot configuration is made up of +# an assembly of processed fragments, each of which is designed to +# capture a specific part of the final configuration (e.g. platform +# configuration, feature configuration, and board specific hardware +# configuration). For more information on u-boot configuration, please +# refer the product documentation. +# +#....................................................................... + +# +# Definitions for Generic Microbalze machine. +# +CONFIG_BOOTDELAY=4 +CONFIG_TEXT_BASE=0x80100000 +CONFIG_SYS_PROMPT="U-Boot>" +CONFIG_SYS_CONFIG_NAME="microblaze-generic-top" +CONFIG_BOOT_SCRIPT_OFFSET=0x1F00000 +# CONFIG_SYS_NS16550 is not set +# CONFIG_SYS_FLASH_USE_BUFFER_WRITE is not set +# CONFIG_SYS_FLASH_CFI is not set +# CONFIG_FLASH_CFI_DRIVER is not set +# CONFIG_CMD_FLASH is not set +# CONFIG_CMD_IMLS is not set +# CONFIG_MTD_NOR_FLASH is not set +# CONFIG_MTD_DEVICE is not set +# CONFIG_SYS_FLASH_PROTECTION is not set +# CONFIG_SPI_FLASH_SST is not set +# CONFIG_XILINX_EMACLITE is not set +# CONFIG_PHY_VITESSE is not set +# CONFIG_CMD_EXT2 is not set +# CONFIG_CMD_EXT4 is not set +# CONFIG_CMD_EXT4_WRITE is not set +# CONFIG_CMD_FAT is not set +# CONFIG_DOS_PARTITION is not set +# CONFIG_FAT_WRITE is not set +CONFIG_DM=y +CONFIG_SYS_MALLOC_F=y +CONFIG_XILINX_UARTLITE=y +CONFIG_XILINX_AXIEMAC=y +CONFIG_PHY_XILINX=y +CONFIG_PHY_TI=y +CONFIG_NET=y +CONFIG_PHY_GIGE=y +CONFIG_NETDEVICES=y +CONFIG_CMD_NET=y +CONFIG_DM_ETH=y +CONFIG_CMD_PING=y +CONFIG_CMD_DHCP=y +CONFIG_PHYLIB=y +CONFIG_CMD_TFTPPUT=y +CONFIG_CMD_NFS=y +CONFIG_CMD_MII=y +CONFIG_PHY_MARVELL=y +CONFIG_PHY_REALTEK=y +CONFIG_PHY_NATSEMI=y +CONFIG_XILINX_SPI=y +CONFIG_CMD_SPI=y +CONFIG_CMD_SF=y +CONFIG_SPI_FLASH=y +CONFIG_SPI_FLASH_BAR=y +CONFIG_DM_SPI_FLASH=y +CONFIG_DM_SPI=y +CONFIG_SPI_FLASH_SPANSION=y +CONFIG_SPI_FLASH_STMICRO=y +CONFIG_SPI_FLASH_WINBOND=y +CONFIG_SPI_FLASH_MACRONIX=y +CONFIG_SPI=y +CONFIG_SPI_FLASH_ISSI=y +# CONFIG_BOOTARGS is not set +# CONFIG_USE_BOOTARGS is not set +# CONFIG_SPL is not set +# CONFIG_I2C_EEPROM is not set +# CONFIG_CMD_EEPROM is not set +# CONFIG_SYS_I2C_EEPROM_ADDR is not set +# CONFIG_SYS_I2C_EEPROM_ADDR_OVERFLOW is not set +CONFIG_DCACHE=y +CONFIG_ICACHE=y diff --git a/meta-xilinx-core/recipes-bsp/u-boot/u-boot-xlnx-2023.1.inc b/meta-xilinx-core/recipes-bsp/u-boot/u-boot-xlnx-2023.1.inc new file mode 100644 index 000000000..010829667 --- /dev/null +++ b/meta-xilinx-core/recipes-bsp/u-boot/u-boot-xlnx-2023.1.inc @@ -0,0 +1,17 @@ +UBOOT_VERSION = "v2023.01" + +UBRANCH = "xlnx_rebase_v2023.01" + +SRCREV = "40a08d69e749c0472103551c85c02c41f979453d" + +LICENSE = "GPL-2.0-or-later" +LIC_FILES_CHKSUM = "file://README;beginline=1;endline=4;md5=744e7e3bb0c94b4b9f6b3db3bf893897" + +# u-boot-xlnx has support for these +HAS_PLATFORM_INIT ?= " \ + xilinx_zynqmp_virt_config \ + xilinx_zynq_virt_defconfig \ + xilinx_versal_vc_p_a2197_revA_x_prc_01_revA \ + " + +DEPENDS += "bc-native dtc-native python3-setuptools-native gnutls-native" diff --git a/meta-xilinx-core/recipes-bsp/u-boot/u-boot-xlnx_2023.1.bb b/meta-xilinx-core/recipes-bsp/u-boot/u-boot-xlnx_2023.1.bb new file mode 100644 index 000000000..fd76bc517 --- /dev/null +++ b/meta-xilinx-core/recipes-bsp/u-boot/u-boot-xlnx_2023.1.bb @@ -0,0 +1,4 @@ + +require u-boot-xlnx.inc +require u-boot-spl-zynq-init.inc +require u-boot-xlnx-2023.1.inc diff --git a/meta-xilinx-core/recipes-core/images/core-image-ptest-all.bbppend b/meta-xilinx-core/recipes-core/images/core-image-ptest-all.bbppend new file mode 100644 index 000000000..fd3a3c113 --- /dev/null +++ b/meta-xilinx-core/recipes-core/images/core-image-ptest-all.bbppend @@ -0,0 +1,5 @@ +# Minimum board memory required for each type +QB_MEM:microblaze = "-m 2G" +QB_MEM:zynq = "-m 1G" +QB_MEM:zynqmp = "-m 4G" +QB_MEM:versal = "-m 16G" diff --git a/meta-xilinx-core/recipes-devtools/qemu/qemu-devicetrees_2023.1.bb b/meta-xilinx-core/recipes-devtools/qemu/qemu-devicetrees_2023.1.bb new file mode 100644 index 000000000..91e787bdf --- /dev/null +++ b/meta-xilinx-core/recipes-devtools/qemu/qemu-devicetrees_2023.1.bb @@ -0,0 +1,6 @@ + +require qemu-devicetrees.inc + +BRANCH ?= "xlnx_rel_v2023.1" +SRCREV ?= "1c45adcde1fc06432c01be250bf668c6477d8459" + diff --git a/meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx-2023.1.inc b/meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx-2023.1.inc new file mode 100644 index 000000000..06ac05a1e --- /dev/null +++ b/meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx-2023.1.inc @@ -0,0 +1,3 @@ +XILINX_QEMU_VERSION = "v7.1.0" +BRANCH = "xlnx_rel_v2023.1" +SRCREV = "21adc9f99e813fb24fb65421259b5b0614938376" diff --git a/meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx-native_2023.1.bb b/meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx-native_2023.1.bb new file mode 100644 index 000000000..06711fd9c --- /dev/null +++ b/meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx-native_2023.1.bb @@ -0,0 +1,9 @@ +require qemu-xilinx-2023.1.inc +require qemu-xilinx-native-7.1.inc +require qemu-native-alt.inc + +BPN = "qemu-xilinx" + +EXTRA_OECONF:append = " --target-list=${@get_qemu_usermode_target_list(d)} --disable-tools --disable-blobs --disable-guest-agent" + +PACKAGECONFIG ??= "pie" diff --git a/meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx-system-native_2023.1.bb b/meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx-system-native_2023.1.bb new file mode 100644 index 000000000..1e7385304 --- /dev/null +++ b/meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx-system-native_2023.1.bb @@ -0,0 +1,26 @@ +require qemu-system-native-alt.inc +require qemu-xilinx-2023.1.inc +require qemu-xilinx-native-7.1.inc + +PROVIDES = "qemu-system-native" + +EXTRA_OECONF:append = " --target-list=${@get_qemu_system_target_list(d)}" + +PACKAGECONFIG ??= "fdt alsa kvm gcrypt pie slirp" + +PACKAGECONFIG:remove = "${@'kvm' if not os.path.exists('/usr/include/linux/kvm.h') else ''}" + +DEPENDS += "pixman-native qemu-xilinx-native bison-native ninja-native meson-native" +DEPENDS += "qemu-xilinx-multiarch-helper-native" + +do_install:append() { + # The following is also installed by qemu-native + rm -f ${D}${datadir}/qemu/trace-events-all + rm -rf ${D}${datadir}/qemu/keymaps + rm -rf ${D}${datadir}/icons + rm -rf ${D}${includedir}/qemu-plugin.h + + # Install qmp.py to be used with testimage + install -d ${D}${libdir}/qemu-python/qmp/ + install -D ${S}/python/qemu/qmp/* ${D}${libdir}/qemu-python/qmp/ +} diff --git a/meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx_2023.1.bb b/meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx_2023.1.bb new file mode 100644 index 000000000..6c1851ba9 --- /dev/null +++ b/meta-xilinx-core/recipes-devtools/qemu/qemu-xilinx_2023.1.bb @@ -0,0 +1,24 @@ +require qemu-xilinx-2023.1.inc +require recipes-devtools/qemu/qemu.inc +require qemu-xilinx-7.1.inc +require qemu-alt.inc + +# Links to libmali-xlnx, so it becomes MACHINE_ARCH specific +DEFAULT_PACKAGE_ARCH := "${PACKAGE_ARCH}" +MALI_PACKAGE_ARCH = "${@'${MACHINE_ARCH}' if d.getVar('PREFERRED_PROVIDER_virtual/libgles1') == 'libmali-xlnx' else '${DEFAULT_PACKAGE_ARCH}'}" +PACKAGE_ARCH:class-target = "${@bb.utils.contains_any('DEPENDS', 'libepoxy virglrenderer', '${MALI_PACKAGE_ARCH}', '${DEFAULT_PACKAGE_ARCH}', d)}" + +BBCLASSEXTEND = "nativesdk" + +RDEPENDS:${PN}:class-target += "bash" + +PROVIDES:class-nativesdk = "nativesdk-qemu" +RPROVIDES:${PN}:class-nativesdk = "nativesdk-qemu" + +EXTRA_OECONF:append:class-target = " --target-list=${@get_qemu_target_list(d)}" +EXTRA_OECONF:append:class-nativesdk = " --target-list=${@get_qemu_target_list(d)}" +EXTRA_OECONF:append:class-target:mipsarcho32 = "${@bb.utils.contains('BBEXTENDCURR', 'multilib', ' --disable-capstone', '', d)}" + +do_install:append:class-nativesdk() { + ${@bb.utils.contains('PACKAGECONFIG', 'gtk+', 'make_qemu_wrapper', '', d)} +} diff --git a/meta-xilinx-core/recipes-graphics/libgles/libmali-xlnx.bb b/meta-xilinx-core/recipes-graphics/libgles/libmali-xlnx.bb index e3113b4dc..07de26dcf 100644 --- a/meta-xilinx-core/recipes-graphics/libgles/libmali-xlnx.bb +++ b/meta-xilinx-core/recipes-graphics/libgles/libmali-xlnx.bb @@ -13,8 +13,8 @@ PROVIDES += "virtual/libgles1 virtual/libgles2 virtual/egl virtual/libgbm" FILESEXTRAPATHS:prepend := "${THISDIR}/files:" REPO ?= "git://github.com/Xilinx/mali-userspace-binaries.git;protocol=https" -BRANCH ?= "xlnx_rel_v2022.2" -SRCREV ?= "a1a22c9f03b20d8cb70b91727fe51c1db7f4b061" +BRANCH ?= "xlnx_rel_v2023.1" +SRCREV ?= "b3a772aad859cdadc8513b11c3e995546c20e75e" BRANCHARG = "${@['nobranch=1', 'branch=${BRANCH}'][d.getVar('BRANCH', True) != '']}" PV = "r9p0-01rel0" diff --git a/meta-xilinx-core/recipes-kernel/dp/kernel-module-dp_2023.1.bb b/meta-xilinx-core/recipes-kernel/dp/kernel-module-dp_2023.1.bb new file mode 100644 index 000000000..28770994c --- /dev/null +++ b/meta-xilinx-core/recipes-kernel/dp/kernel-module-dp_2023.1.bb @@ -0,0 +1,24 @@ +SUMMARY = "Xilinx DisplayPort Linux Kernel module" +DESCRIPTION = "Out-of-tree DisplayPort(DP) kernel modules provider for aarch64 devices" +SECTION = "kernel/modules" +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=eb723b61539feef013de476e68b5c50a" + +XLNX_DP_VERSION = "6.1.0" +PV = "${XLNX_DP_VERSION}+xilinx-v${@bb.parse.vars_from_file(d.getVar('FILE', False),d)[1] or ''}+git${SRCPV}" + +S = "${WORKDIR}/git" + +BRANCH ?= "xlnx_rel_v2023.1" +REPO ?= "git://github.com/xilinx/dp-modules.git;protocol=https" +SRCREV ?= "5b0969ac09f301c33bccc140c8f60e832f5cf222" + +BRANCHARG = "${@['nobranch=1', 'branch=${BRANCH}'][d.getVar('BRANCH', True) != '']}" +SRC_URI = "${REPO};${BRANCHARG}" + +inherit module + +EXTRA_OEMAKE += "O=${STAGING_KERNEL_BUILDDIR}" +COMPATIBLE_MACHINE = "^$" +COMPATIBLE_MACHINE:zynqmp = "zynqmp" +COMPATIBLE_MACHINE:versal = "versal" diff --git a/meta-xilinx-core/recipes-kernel/hdmi/kernel-module-hdmi_2023.1.bb b/meta-xilinx-core/recipes-kernel/hdmi/kernel-module-hdmi_2023.1.bb new file mode 100644 index 000000000..20acb8b35 --- /dev/null +++ b/meta-xilinx-core/recipes-kernel/hdmi/kernel-module-hdmi_2023.1.bb @@ -0,0 +1,24 @@ +SUMMARY = "Xilinx HDMI Linux Kernel module" +DESCRIPTION = "Out-of-tree HDMI kernel modules provider for MPSoC EG/EV devices" +SECTION = "kernel/modules" +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=b34277fe156508fd5a650609dc36d1fe" + +XLNX_HDMI_VERSION = "6.1" +PV = "${XLNX_HDMI_VERSION}+xilinx-v${@bb.parse.vars_from_file(d.getVar('FILE', False),d)[1] or ''}+git${SRCPV}" + +S = "${WORKDIR}/git" + +BRANCH ?= "xlnx_rel_v2023.1" +REPO ?= "git://github.com/Xilinx/hdmi-modules.git;protocol=https" +SRCREV = "1c6330f02fea68992e22400fdbc8c0d0e63e2958" + +BRANCHARG = "${@['nobranch=1', 'branch=${BRANCH}'][d.getVar('BRANCH', True) != '']}" +SRC_URI = "${REPO};${BRANCHARG}" + +inherit module + +EXTRA_OEMAKE += "O=${STAGING_KERNEL_BUILDDIR}" +COMPATIBLE_MACHINE = "^$" +COMPATIBLE_MACHINE:zynqmp = "zynqmp" +COMPATIBLE_MACHINE:versal = "versal" diff --git a/meta-xilinx-core/recipes-kernel/linux/linux-microblaze.inc b/meta-xilinx-core/recipes-kernel/linux/linux-microblaze.inc index 40fdc70a2..a2f15adbb 100644 --- a/meta-xilinx-core/recipes-kernel/linux/linux-microblaze.inc +++ b/meta-xilinx-core/recipes-kernel/linux/linux-microblaze.inc @@ -1,5 +1,4 @@ SRC_URI += " \ - file://mb-no-tree-loop-distribute-patterns.patch \ file://microblaze_generic.cfg \ " diff --git a/meta-xilinx-core/recipes-kernel/linux/linux-xlnx_2023.1.bb b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx_2023.1.bb new file mode 100644 index 000000000..6740a4597 --- /dev/null +++ b/meta-xilinx-core/recipes-kernel/linux/linux-xlnx_2023.1.bb @@ -0,0 +1,11 @@ +LINUX_VERSION = "6.1.5" +YOCTO_META ?= "git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-6.1;destsuffix=yocto-kmeta" +KBRANCH="xlnx_rebase_v6.1_LTS" +SRCREV = "716921b6d7dc9db49660369428fb61ca96947ccb" +SRCREV_meta = "185bcfcbe480c742247d9117011794c69682914f" + +KCONF_AUDIT_LEVEL="0" + +include linux-xlnx.inc + +FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" diff --git a/meta-xilinx-core/recipes-kernel/lopper/xilinx-lops.bb b/meta-xilinx-core/recipes-kernel/lopper/xilinx-lops.bb index 38ec473b4..2648c3724 100644 --- a/meta-xilinx-core/recipes-kernel/lopper/xilinx-lops.bb +++ b/meta-xilinx-core/recipes-kernel/lopper/xilinx-lops.bb @@ -8,9 +8,10 @@ RDEPENDS:${PN} += "lopper" SRC_URI = " \ file://lop-microblaze-yocto.dts \ file://lop-xilinx-id-cpus.dts \ + file://lop-machine-name.dts \ " -LIC_FILES_CHKSUM = "file://lop-microblaze-yocto.dts;endline=8;md5=a0e89d39fa397ec5d5320409ff701280" +LIC_FILES_CHKSUM = "file://lop-microblaze-yocto.dts;endline=10;md5=27139f9b862dc6fe466c7157aba7ed9c" S = "${WORKDIR}" @@ -23,6 +24,7 @@ do_install() { mkdir -p ${D}/${PYTHON_SITEPACKAGES_DIR}/lopper/lops cp ${S}/lop-microblaze-yocto.dts ${D}/${PYTHON_SITEPACKAGES_DIR}/lopper/lops/. cp ${S}/lop-xilinx-id-cpus.dts ${D}/${PYTHON_SITEPACKAGES_DIR}/lopper/lops/. + cp ${S}/lop-machine-name.dts ${D}/${PYTHON_SITEPACKAGES_DIR}/lopper/lops/. } FILES:${PN} += "${PYTHON_SITEPACKAGES_DIR}/lopper/lops" diff --git a/meta-xilinx-core/recipes-kernel/lopper/xilinx-lops/lop-machine-name.dts b/meta-xilinx-core/recipes-kernel/lopper/xilinx-lops/lop-machine-name.dts new file mode 100644 index 000000000..0fb5649a3 --- /dev/null +++ b/meta-xilinx-core/recipes-kernel/lopper/xilinx-lops/lop-machine-name.dts @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2023 Advanced Micro Devices, Inc. All rights reserved. + * + * Author: + * Mark Hatle + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +/dts-v1/; + +/ { + compatible = "system-device-tree-v1,lop"; + lops { + compatible = "system-device-tree-v1,lop"; + track_feature: track_feature { + compatible = "system-device-tree-v1,lop,code-v1"; + noexec; + code = " + # print( 'track: lopper library routine: %s' % node ) + try: + node.tunes[prop] = prop + except: + pass + "; + }; + lop_0_1 { + compatible = "system-device-tree-v1,lop,select-v1"; + select_1; + select_2 = "/"; + lop_0_2 { + compatible = "system-device-tree-v1,lop,code-v1"; + inherit = "subsystem"; + code = " + for n in tree.__selected__: + mach_name = n['compatible'].value[0].replace(',','-').replace('.','-') + model = n['model'].value[0] + device_id = n['device_id'].value[0] + print( '%s %s %s' % (mach_name.lower(), device_id, model) ) + "; + }; + }; + }; +}; diff --git a/meta-xilinx-core/recipes-kernel/lopper/xilinx-lops/lop-microblaze-yocto.dts b/meta-xilinx-core/recipes-kernel/lopper/xilinx-lops/lop-microblaze-yocto.dts index 72eb4665c..5e5f79860 100644 --- a/meta-xilinx-core/recipes-kernel/lopper/xilinx-lops/lop-microblaze-yocto.dts +++ b/meta-xilinx-core/recipes-kernel/lopper/xilinx-lops/lop-microblaze-yocto.dts @@ -1,8 +1,10 @@ /* * Copyright (c) 2020 Xilinx Inc. All rights reserved. + * Copyright (c) 2023 Advanced Micro Devices, Inc. All rights reserved. * * Author: - * Bruce Ashfield + * Bruce Ashfield + * Mark Hatle * * SPDX-License-Identifier: BSD-3-Clause */ @@ -38,13 +40,16 @@ n.tunes = OrderedDict() n.tunes['microblaze'] = 'microblaze' n.tunes['version'] = 'v9.2' + n.tune_type = val.split('-')[0] - if val == 'pmc-microblaze' or val == 'psm-microblaze': + elif val == 'pmc-microblaze' or val == 'psm-microblaze': n.tunes = OrderedDict() n.tunes['microblaze'] = 'microblaze' n.tunes['version'] = 'v10.0' + n.tune_type = val.split('-')[0] - n.tune_type = val + else: + n.tune_type = re.split('@', n.name)[0] "; }; }; @@ -225,18 +230,16 @@ compatible = "system-device-tree-v1,lop,code-v1"; code = " cpu_addr = 0 + firmware_cpus = {} for n in __selected__: - tname = re.split('@', n.name) - tname = tname[0]+str(cpu_addr) - cpu_addr += 1 - print( 'AVAILTUNES += \"microblaze-%s\"' % tname ) - print( 'TUNE_FEATURES:tune-microblaze-%s = \"' % tname, end='' ) - for t in n.tunes.values(): - print( ' %s' % t, end='' ) - print( '\"' ) - print( 'PACKAGE_EXTRA_ARCHS:tune-microblaze-%s = \"${TUNE_PKGARCH}\"' % tname ) - print( 'TUNE_FEATURES:tune-%s = \"${TUNE_FEATURES:tune-microblaze-%s}\"\\n' % (n.tune_type,tname) ) - + tname = 'microblaze-'+n.tune_type + if n.tune_type == 'cpu': + tname = tname + str(cpu_addr) + cpu_addr += 1 + print( '# %s\\n# compatible = \"%s\";' % (n, n['compatible'].value[0])) + print( 'AVAILTUNES += \"%s\"' % tname ) + print( 'TUNE_FEATURES:tune-%s = \"%s\"' % (tname, ' '.join(n.tunes.values()))) + print( 'PACKAGE_EXTRA_ARCHS:tune-%s = \"${TUNE_PKGARCH}\"\\n' % tname ) "; }; }; diff --git a/meta-xilinx-core/recipes-kernel/lopper/xilinx-lops/lop-xilinx-id-cpus.dts b/meta-xilinx-core/recipes-kernel/lopper/xilinx-lops/lop-xilinx-id-cpus.dts index 67d68bba6..1468801ad 100644 --- a/meta-xilinx-core/recipes-kernel/lopper/xilinx-lops/lop-xilinx-id-cpus.dts +++ b/meta-xilinx-core/recipes-kernel/lopper/xilinx-lops/lop-xilinx-id-cpus.dts @@ -104,19 +104,27 @@ inherit = "lopper_lib"; code = " cpu_output = {} + symbol_node = node.tree['/__symbols__'] + prop_dict = symbol_node.__props__ for c in __selected__: + num_cpu = 0 for c_node in c.subnodes( children_only = True ): try: cpu_node = c_node['device_type'].value[0] + num_cpu = c_node['reg'].value[0] + num_cpu = num_cpu + 1 except: cpu_node = None if cpu_node: - if c_node.ref == 0: + match = [label for label,node_abs in prop_dict.items() if re.match(node_abs[0], c_node.abs_path) and len(node_abs[0]) == len(c_node.abs_path)] + cpu_name = match[0] + if num_cpu != 0: cpu_type = c_node['compatible'].value[0] - cpu_output[cpu_type] = '{} {} {}'.format(cpu_type,'None','None') + dict_key = cpu_name + str(num_cpu) + cpu_output[dict_key] = '{} {} {} {} {}'.format(cpu_type, num_cpu-1, 'None', cpu_name, 'None') if cpu_output: - print( '# global no-domain cpus' ) + print( '# global core_number no-domain cpu_name' ) for o in cpu_output.values(): print( '%s' % o ) diff --git a/meta-xilinx-core/recipes-multimedia/vcu/kernel-module-vcu_2023.1.bb b/meta-xilinx-core/recipes-multimedia/vcu/kernel-module-vcu_2023.1.bb new file mode 100644 index 000000000..9adfcade1 --- /dev/null +++ b/meta-xilinx-core/recipes-multimedia/vcu/kernel-module-vcu_2023.1.bb @@ -0,0 +1,39 @@ +SUMMARY = "Linux kernel module for Video Code Unit" +DESCRIPTION = "Out-of-tree VCU decoder, encoder and common kernel modules provider for MPSoC EV devices" +SECTION = "kernel/modules" +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=eb723b61539feef013de476e68b5c50a" + +XILINX_VCU_VERSION = "1.0.0" +PV = "${XILINX_VCU_VERSION}-xilinx-v${@bb.parse.vars_from_file(d.getVar('FILE', False),d)[1] or ''}+git${SRCPV}" + +S = "${WORKDIR}/git" + +FILESEXTRAPATHS:prepend := "${THISDIR}/files:" + +BRANCH = "xlnx_rel_v2023.1" +REPO = "git://github.com/Xilinx/vcu-modules.git;protocol=https" +SRCREV = "4afe0ab4eb3b7f2d17bcb823dee0caa0f03ab7a0" + +BRANCHARG = "${@['nobranch=1', 'branch=${BRANCH}'][d.getVar('BRANCH', True) != '']}" +SRC_URI = " \ + ${REPO};${BRANCHARG} \ + file://99-vcu-enc-dec.rules \ + " + +inherit module features_check + +REQUIRED_MACHINE_FEATURES = "vcu" + +EXTRA_OEMAKE += "O=${STAGING_KERNEL_BUILDDIR}" + +RDEPENDS:${PN} = "vcu-firmware" + +KERNEL_MODULE_AUTOLOAD += "dmaproxy" + +do_install:append() { + install -d ${D}${sysconfdir}/udev/rules.d + install -m 0644 ${WORKDIR}/99-vcu-enc-dec.rules ${D}${sysconfdir}/udev/rules.d/ +} + +FILES:${PN} = "${sysconfdir}/udev/rules.d/*" diff --git a/meta-xilinx-core/recipes-multimedia/vcu/libomxil-xlnx_2023.1.bb b/meta-xilinx-core/recipes-multimedia/vcu/libomxil-xlnx_2023.1.bb new file mode 100644 index 000000000..3c2580083 --- /dev/null +++ b/meta-xilinx-core/recipes-multimedia/vcu/libomxil-xlnx_2023.1.bb @@ -0,0 +1,51 @@ +SUMMARY = "OpenMAX Integration layer for VCU" +DESCRIPTION = "OMX IL Libraries,test applications and headers for VCU" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=5375796c5ae4ee85ea1f2c1603e58509" + +XILINX_VCU_VERSION = "1.0.0" +PV = "${XILINX_VCU_VERSION}-xilinx-v${@bb.parse.vars_from_file(d.getVar('FILE', False),d)[1] or ''}+git${SRCPV}" + +BRANCH ?= "xlnx_rel_v2023.1" +REPO ?= "git://github.com/Xilinx/vcu-omx-il.git;protocol=https" +SRCREV = "4773b372b72b88ccbabc122b023f042fb22a019e" + +BRANCHARG = "${@['nobranch=1', 'branch=${BRANCH}'][d.getVar('BRANCH', True) != '']}" +SRC_URI = "${REPO};${BRANCHARG}" + +S = "${WORKDIR}/git" + +inherit features_check + +REQUIRED_MACHINE_FEATURES = "vcu" + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +DEPENDS = "libvcu-xlnx" +RDEPENDS:${PN} = "kernel-module-vcu libvcu-xlnx" + +EXTERNAL_INCLUDE="${STAGING_INCDIR}/vcu-ctrl-sw/include" + +EXTRA_OEMAKE = " \ + CC='${CC}' CXX='${CXX} ${CXXFLAGS}' \ + EXTERNAL_INCLUDE='${EXTERNAL_INCLUDE}' \ + " + +do_install() { + install -d ${D}${libdir} + install -d ${D}${includedir}/vcu-omx-il + + install -m 0644 ${S}/omx_header/*.h ${D}${includedir}/vcu-omx-il + + install -Dm 0755 ${S}/bin/omx_decoder ${D}/${bindir}/omx_decoder + install -Dm 0755 ${S}/bin/omx_encoder ${D}/${bindir}/omx_encoder + + oe_libinstall -C ${S}/bin/ -so libOMX.allegro.core ${D}/${libdir}/ + oe_libinstall -C ${S}/bin/ -so libOMX.allegro.video_decoder ${D}/${libdir}/ + oe_libinstall -C ${S}/bin/ -so libOMX.allegro.video_encoder ${D}/${libdir}/ +} + +# These libraries shouldn't get installed in world builds unless something +# explicitly depends upon them. + +EXCLUDE_FROM_WORLD = "1" diff --git a/meta-xilinx-core/recipes-multimedia/vcu/libvcu-xlnx_2023.1.bb b/meta-xilinx-core/recipes-multimedia/vcu/libvcu-xlnx_2023.1.bb new file mode 100644 index 000000000..7dc97d72d --- /dev/null +++ b/meta-xilinx-core/recipes-multimedia/vcu/libvcu-xlnx_2023.1.bb @@ -0,0 +1,44 @@ +SUMMARY = "Control Software for VCU" +DESCRIPTION = "Control software libraries, test applications and headers provider for VCU" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=5375796c5ae4ee85ea1f2c1603e58509" + +XILINX_VCU_VERSION = "1.0.0" +PV = "${XILINX_VCU_VERSION}-xilinx-v${@bb.parse.vars_from_file(d.getVar('FILE', False),d)[1] or ''}+git${SRCPV}" + +BRANCH ?= "xlnx_rel_v2023.1" +REPO ?= "git://github.com/Xilinx/vcu-ctrl-sw.git;protocol=https" +SRCREV = "83aabb84c26667f7d6aee632654c63e504838061" + +BRANCHARG = "${@['nobranch=1', 'branch=${BRANCH}'][d.getVar('BRANCH', True) != '']}" +SRC_URI = "${REPO};${BRANCHARG}" + +S = "${WORKDIR}/git" + +inherit features_check + +REQUIRED_MACHINE_FEATURES = "vcu" + +RDEPENDS:${PN} = "kernel-module-vcu" + +EXTRA_OEMAKE = "CC='${CC}' CXX='${CXX} ${CXXFLAGS}'" + +do_install() { + install -d ${D}${libdir} + install -d ${D}${includedir}/vcu-ctrl-sw/include + + install -Dm 0755 ${S}/bin/ctrlsw_encoder ${D}/${bindir}/ctrlsw_encoder + install -Dm 0755 ${S}/bin/ctrlsw_decoder ${D}/${bindir}/ctrlsw_decoder + + oe_runmake install_headers INSTALL_HDR_PATH=${D}${includedir}/vcu-ctrl-sw/include + oe_libinstall -C ${S}/bin/ -so liballegro_decode ${D}/${libdir}/ + oe_libinstall -C ${S}/bin/ -so liballegro_encode ${D}/${libdir}/ +} + +# These libraries shouldn't get installed in world builds unless something +# explicitly depends upon them. + +EXCLUDE_FROM_WORLD = "1" + +# Disable buildpaths QA check warnings. +INSANE_SKIP:${PN} += "buildpaths" diff --git a/meta-xilinx-core/recipes-multimedia/vcu/vcu-firmware_2023.1.bb b/meta-xilinx-core/recipes-multimedia/vcu/vcu-firmware_2023.1.bb new file mode 100644 index 000000000..50e7926d1 --- /dev/null +++ b/meta-xilinx-core/recipes-multimedia/vcu/vcu-firmware_2023.1.bb @@ -0,0 +1,38 @@ +SUMMARY = "Firmware for VCU" +DESCRIPTION = "Firmware binaries provider for VCU" +LICENSE = "Proprietary" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=6da65299754e921b31f03e9b11d77a74" + +XILINX_VCU_VERSION = "1.0.0" +PV = "${XILINX_VCU_VERSION}-xilinx-v${@bb.parse.vars_from_file(d.getVar('FILE', False),d)[1] or ''}+git${SRCPV}" + +S = "${WORKDIR}/git" + +BRANCH ?= "xlnx_rel_v2023.1" +REPO ?= "git://github.com/Xilinx/vcu-firmware.git;protocol=https" +SRCREV = "c90288595ac9a12ff401de6dfa680b1f9adce5f6" + +BRANCHARG = "${@['nobranch=1', 'branch=${BRANCH}'][d.getVar('BRANCH', True) != '']}" +SRC_URI = "${REPO};${BRANCHARG}" + +inherit features_check + +REQUIRED_MACHINE_FEATURES = "vcu" + +do_install() { + install -Dm 0644 ${S}/${XILINX_VCU_VERSION}/lib/firmware/al5d_b.fw ${D}/lib/firmware/al5d_b.fw + install -Dm 0644 ${S}/${XILINX_VCU_VERSION}/lib/firmware/al5d.fw ${D}/lib/firmware/al5d.fw + install -Dm 0644 ${S}/${XILINX_VCU_VERSION}/lib/firmware/al5e_b.fw ${D}/lib/firmware/al5e_b.fw + install -Dm 0644 ${S}/${XILINX_VCU_VERSION}/lib/firmware/al5e.fw ${D}/lib/firmware/al5e.fw +} + +# Inhibit warnings about files being stripped +INHIBIT_PACKAGE_DEBUG_SPLIT = "1" +INHIBIT_PACKAGE_STRIP = "1" +FILES:${PN} = "/lib/firmware/*" + +# These libraries shouldn't get installed in world builds unless something +# explicitly depends upon them. +EXCLUDE_FROM_WORLD = "1" + +INSANE_SKIP:${PN} = "ldflags" diff --git a/meta-xilinx-core/recipes-multimedia/vdu/files/99-vdu-enc-dec.rules b/meta-xilinx-core/recipes-multimedia/vdu/files/99-vdu-enc-dec.rules new file mode 100644 index 000000000..78bb54f48 --- /dev/null +++ b/meta-xilinx-core/recipes-multimedia/vdu/files/99-vdu-enc-dec.rules @@ -0,0 +1,4 @@ +# Allegro VDU Encode, Decoder module drivers +SUBSYSTEM=="allegro_decode_class", KERNEL=="allegroDecodeIP[0-4]*", MODE="0660", GROUP="video", TAG+="uaccess" + + diff --git a/meta-xilinx-core/recipes-multimedia/vdu/kernel-module-vdu_2023.1.bb b/meta-xilinx-core/recipes-multimedia/vdu/kernel-module-vdu_2023.1.bb new file mode 100644 index 000000000..a13962780 --- /dev/null +++ b/meta-xilinx-core/recipes-multimedia/vdu/kernel-module-vdu_2023.1.bb @@ -0,0 +1,41 @@ +SUMMARY = "Linux kernel module for Video Decode Unit" +DESCRIPTION = "Out-of-tree VDU decoder common kernel modules" +SECTION = "kernel/modules" +LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=eb723b61539feef013de476e68b5c50a" + +XILINX_VDU_VERSION = "1.0.0" +PV = "${XILINX_VDU_VERSION}-xilinx-${XILINX_RELEASE_VERSION}+git${SRCPV}" + +S = "${WORKDIR}/git" +FILESEXTRAPATHS:prepend := "${THISDIR}/files:" + +BRANCH ?= "xlnx_rel_v2023.1" +REPO ?= "git://github.com/Xilinx/vdu-modules.git;protocol=https" +SRCREV ?= "82d06e395c93a1e941b83cccbb6f2e4e6d966f1c" + +BRANCHARG = "${@['nobranch=1', 'branch=${BRANCH}'][d.getVar('BRANCH', True) != '']}" +SRC_URI = "${REPO};${BRANCHARG} \ + file://99-vdu-enc-dec.rules \ +" + +inherit module features_check + +REQUIRED_MACHINE_FEATURES = "vdu" + +EXTRA_OEMAKE += "O=${STAGING_KERNEL_BUILDDIR}" + +RDEPENDS:${PN} = "vdu-firmware" + +COMPATIBLE_MACHINE = "^$" +COMPATIBLE_MACHINE:versal-ai-core = "versal-ai-core" +COMPATIBLE_MACHINE:versal-ai-edge = "versal-ai-edge" + +PACKAGE_ARCH = "${SOC_FAMILY_ARCH}" + +do_install:append() { + install -d ${D}${sysconfdir}/udev/rules.d + install -m 0644 ${WORKDIR}/99-vdu-enc-dec.rules ${D}${sysconfdir}/udev/rules.d/ +} + +FILES:${PN} = "${sysconfdir}/udev/rules.d/*" diff --git a/meta-xilinx-core/recipes-multimedia/vdu/libvdu-ctrlsw_2023.1.bb b/meta-xilinx-core/recipes-multimedia/vdu/libvdu-ctrlsw_2023.1.bb new file mode 100644 index 000000000..82f3c4f5a --- /dev/null +++ b/meta-xilinx-core/recipes-multimedia/vdu/libvdu-ctrlsw_2023.1.bb @@ -0,0 +1,44 @@ +SUMMARY = "Control Software for VDU" +DESCRIPTION = "Control software libraries, test applications and headers provider for VDU" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=aaf483d309243c4596f6373eb9c8325f" + +XILINX_VDU_VERSION = "1.0.0" +PV = "${XILINX_VDU_VERSION}-xilinx-${XILINX_RELEASE_VERSION}+git${SRCPV}" + +inherit autotools features_check + +REQUIRED_MACHINE_FEATURES = "vdu" + +BRANCH ?= "xlnx_rel_v2023.1" +REPO ?= "git://github.com/Xilinx/vdu-ctrl-sw.git;protocol=https" +SRCREV ?= "06fc18b303b40d4fee7549ad162c22ee1bc31582" + +BRANCHARG = "${@['nobranch=1', 'branch=${BRANCH}'][d.getVar('BRANCH', True) != '']}" +SRC_URI = "${REPO};${BRANCHARG}" + +S = "${WORKDIR}/git" + +COMPATIBLE_MACHINE = "^$" +COMPATIBLE_MACHINE:versal-ai-core = "versal-ai-core" +COMPATIBLE_MACHINE:versal-ai-edge = "versal-ai-edge" + +PACKAGE_ARCH = "${SOC_FAMILY_ARCH}" + +RDEPENDS:${PN} = "kernel-module-vdu" + +do_compile[dirs] = "${S}" +do_install[dirs] = "${S}" + +EXTRA_OEMAKE = "CC='${CC}' CXX='${CXX} ${CXXFLAGS}'" +EXTRA_OEMAKE +=" INSTALL_HDR_PATH=${D}${includedir}/vdu-ctrl-sw/include INSTALL_PATH=${D}${bindir}" + +do_install:append() { + + oe_libinstall -C ${S}/bin/ -so liballegro_decode ${D}/${libdir}/ +} + +# These libraries shouldn't get installed in world builds unless something +# explicitly depends upon them. + +EXCLUDE_FROM_WORLD = "1" diff --git a/meta-xilinx-core/recipes-multimedia/vdu/libvdu-omxil_2023.1.bb b/meta-xilinx-core/recipes-multimedia/vdu/libvdu-omxil_2023.1.bb new file mode 100644 index 000000000..88b501936 --- /dev/null +++ b/meta-xilinx-core/recipes-multimedia/vdu/libvdu-omxil_2023.1.bb @@ -0,0 +1,53 @@ +SUMMARY = "OpenMAX Integration layer for VDU" +DESCRIPTION = "OMX IL Libraries,test application and headers for VDU" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=aaf483d309243c4596f6373eb9c8325f" + +XILINX_VDU_VERSION = "1.0.0" +PV = "${XILINX_VDU_VERSION}-xilinx-${XILINX_RELEASE_VERSION}+git${SRCPV}" + +BRANCH ?= "xlnx_rel_v2023.1" +REPO ?= "git://github.com/Xilinx/vdu-omx-il.git;protocol=https" +SRCREV ?= "811eefac953fd5e098c69cada97a0dd35f5e9015" + +BRANCHARG = "${@['nobranch=1', 'branch=${BRANCH}'][d.getVar('BRANCH', True) != '']}" +SRC_URI = "${REPO};${BRANCHARG} \ + " +S = "${WORKDIR}/git" + +inherit autotools features_check + +REQUIRED_MACHINE_FEATURES = "vdu" + +COMPATIBLE_MACHINE = "^$" +COMPATIBLE_MACHINE:versal-ai-core = "versal-ai-core" +COMPATIBLE_MACHINE:versal-ai-edge = "versal-ai-edge" + +PACKAGE_ARCH = "${SOC_FAMILY_ARCH}" + +DEPENDS = "libvdu-ctrlsw" +RDEPENDS:${PN} = "kernel-module-vdu libvdu-ctrlsw" + +EXTERNAL_INCLUDE="${STAGING_INCDIR}/vdu-ctrl-sw/include" + +do_compile[dirs] = "${S}" +do_install[dirs] = "${S}" + +EXTRA_OEMAKE = " \ + CC='${CC}' CXX='${CXX} ${CXXFLAGS}' \ + EXTERNAL_INCLUDE='${EXTERNAL_INCLUDE}' \ + INSTALL_PATH=${D}${bindir} \ + INCLUDE_INST_PATH=${D}${includedir} \ + " + +do_install:append() { + install -d ${D}${libdir} + + oe_libinstall -C ${S}/bin/ -so libOMX.allegro.core ${D}/${libdir}/ + oe_libinstall -C ${S}/bin/ -so libOMX.allegro.video_decoder ${D}/${libdir}/ +} + +# These libraries shouldn't get installed in world builds unless something +# explicitly depends upon them. + +EXCLUDE_FROM_WORLD = "1" diff --git a/meta-xilinx-core/recipes-multimedia/vdu/vdu-firmware_2023.1.bb b/meta-xilinx-core/recipes-multimedia/vdu/vdu-firmware_2023.1.bb new file mode 100755 index 000000000..e96e0d248 --- /dev/null +++ b/meta-xilinx-core/recipes-multimedia/vdu/vdu-firmware_2023.1.bb @@ -0,0 +1,42 @@ +SUMMARY = "Firmware for VDU" +DESCRIPTION = "Firmware binaries provider for VDU" +LICENSE = "Proprietary" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=c5784f63397086d836580d8785d1deb9" + +XILINX_VDU_VERSION = "1.0.0" +PV = "${XILINX_VDU_VERSION}-xilinx-${XILINX_RELEASE_VERSION}+git${SRCPV}" + +S = "${WORKDIR}/git" + +inherit autotools features_check + +REQUIRED_MACHINE_FEATURES = "vdu" + +BRANCH ?= "xlnx_rel_v2023.1" +REPO ?= "git://github.com/Xilinx/vdu-firmware.git;protocol=https" +SRCREV ?= "63fe2fce6e46d5bf03e33300a58a37d8568722ee" + +BRANCHARG = "${@['nobranch=1', 'branch=${BRANCH}'][d.getVar('BRANCH', True) != '']}" +SRC_URI = "${REPO};${BRANCHARG}" + +COMPATIBLE_MACHINE = "^$" +COMPATIBLE_MACHINE:versal-ai-core = "versal-ai-core" +COMPATIBLE_MACHINE:versal-ai-edge = "versal-ai-edge" + +PACKAGE_ARCH = "${SOC_FAMILY_ARCH}" +EXTRA_OEMAKE +="INSTALL_PATH=${D}/lib/firmware" + +do_compile[noexec] = "1" +do_install[dirs] = "${S}" + +# Inhibit warnings about files being stripped +INHIBIT_PACKAGE_DEBUG_SPLIT = "1" +INHIBIT_PACKAGE_STRIP = "1" +FILES:${PN} = "/lib/firmware/*" + + +# These libraries shouldn't get installed in world builds unless something +# explicitly depends upon them. +EXCLUDE_FROM_WORLD = "1" + +INSANE_SKIP:${PN} = "ldflags" diff --git a/meta-xilinx-core/recipes-xrt/xrt/xrt.inc b/meta-xilinx-core/recipes-xrt/xrt/xrt.inc index 19f8f8cde..3b1506737 100644 --- a/meta-xilinx-core/recipes-xrt/xrt/xrt.inc +++ b/meta-xilinx-core/recipes-xrt/xrt/xrt.inc @@ -3,6 +3,6 @@ BRANCHARG = "${@['nobranch=1', 'branch=${BRANCH}'][d.getVar('BRANCH', True) != ' SRC_URI = "${REPO};${BRANCHARG}" BRANCH= "2023.1" -SRCREV= "f0c2e397211347dfa1ea92910712d481fe43f662" +SRCREV= "64c933573e7e50a8aba939a74209590c2b739e8b" PV = "202310.2.15.0" diff --git a/meta-xilinx-standalone-experimental/README.md b/meta-xilinx-standalone-experimental/README.md index 99675b0ac..8014265b4 100644 --- a/meta-xilinx-standalone-experimental/README.md +++ b/meta-xilinx-standalone-experimental/README.md @@ -14,36 +14,47 @@ parts and pieces. **Note:** to use this layer you must REMOVE meta-xilinx-tools from your project. meta-xilinx-tools is not compatible with this experimental approach. You may also have to remove other layers that depend -on meta-xilinx-tools, such as meta-som. +on meta-xilinx-tools, such as meta-kria and meta-system-controller. To use the experimental version of the embedded software (firmware) as well as system configuration, you must build the 'meta-xilinx-setup' -SDK. This SDK is passed a device tree, constructed from DTG++ and +SDK. This SDK is passed a device tree, constructed from System Device tree and produces a number of configuration files. -To build the setup SDK: - -MACHINE=qemux86-64 bitbake meta-xilinx-setup - -To install the setup SDK: - -./tmp/deploy/sdk/x86_64-xilinx-nativesdk-prestep-2021.2.sh -d prestep -y +1. Remove meta-xilinx-tools, meta-kria and meta-system-controller, then add the decoupling layer +``` +$ bitbake-layers remove-layer meta-xilinx-tools +$ bitbake-layers remove-layer meta-kria +$ bitbake-layers remove-layer meta-system-controller +$ bitbake-layers add-layer .//meta-xilinx/meta-xilinx-standalone-experimental +``` +2. Build the setup SDK +``` +$ bitbake meta-xilinx-setup +``` +3. Install the setup SDK: +``` +$ .${TMPDIR}/tmp/deploy/sdk/x86_64-xilinx-nativesdk-prestep-2023.1....sh -d prestep -y +``` Then follow the instructions in the 'prestep/README-setup' file. - ## Dependencies This layer depends on: - URI: git://git.openembedded.org/bitbake + URI: https://git.yoctoproject.org/poky + layers: meta, meta-poky + branch: langdale - URI: git://git.openembedded.org/openembedded-core - layers: meta - branch: master or xilinx current release version (e.g. hosister) + URI: https://git.openembedded.org/meta-openembedded + layers: meta-oe + branch: langdale - URI: git://git.yoctoproject.org/meta-xilinx.git + URI: + https://git.yoctoproject.org/meta-xilinx (official version) + https://github.com/Xilinx/meta-xilinx (development and amd xilinx release) layers: meta-xilinx-core, meta-xilinx-bsp, meta-xilinx-standalone - branch: master or xilinx current release version (e.g. hosister) + branch: langdale or amd xilinx release version (e.g. rel-v2023.1) diff --git a/meta-xilinx-standalone-experimental/classes/esw.bbclass b/meta-xilinx-standalone-experimental/classes/esw.bbclass index f133662a3..febdebad5 100644 --- a/meta-xilinx-standalone-experimental/classes/esw.bbclass +++ b/meta-xilinx-standalone-experimental/classes/esw.bbclass @@ -26,7 +26,7 @@ COMPATIBLE_HOST = ".*-elf" COMPATIBLE_HOST:arm = "[^-]*-[^-]*-eabi" CONFIG_DTFILE ??= "" -DTS_FILE = "${DEPLOY_DIR_IMAGE}/devicetree/${@os.path.basename(d.getVar('CONFIG_DTFILE'))}" +DTS_FILE = "${DEPLOY_DIR_IMAGE}/devicetree/${@os.path.basename(d.getVar('CONFIG_DTFILE').replace('.dts','.dtb'))}" DEPENDS += "python3-pyyaml-native lopper-native device-tree python3-dtc-native" @@ -48,9 +48,9 @@ def get_xlnx_cmake_machine(fam, d): def get_xlnx_cmake_processor(tune, machine, d): cmake_processor = tune if tune.startswith('microblaze'): - if (machine == 'microblaze-pmu'): + if (machine == 'psu_pmu_0'): cmake_processor = 'pmu_microblaze' - elif (machine == 'microblaze-plm'): + elif (machine == 'psv_pmc_0'): cmake_processor = 'plm_microblaze' else: cmake_processor = 'microblaze' @@ -79,6 +79,11 @@ cmake_do_generate_toolchain_file:append() { # Will need this in the future to make cmake understand esw variables # set( CMAKE_SYSTEM_NAME `echo elf | sed -e 's/^./\u&/' -e 's/^\(Linux\).*/\1/'` ) set( CMAKE_SYSTEM_NAME "${XLNX_CMAKE_SYSTEM_NAME}" ) + set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${S}/cmake) + set( CMAKE_LIBRARY_PATH ${CMAKE_INSTALL_LIBDIR}) + if ("${XLNX_CMAKE_PROCESSOR}" STREQUAL "plm_microblaze") + set( CMAKE_BUILD_TYPE Release) + endif() add_definitions( "${XLNX_CMAKE_BSP_VARS}" ) EOF } @@ -119,7 +124,7 @@ python do_generate_driver_data() { src_dir = glob.glob(d.getVar('OECMAKE_SOURCEPATH')) machine = d.getVar('ESW_MACHINE') - driver_name = d.getVar('REQUIRED_DISTRO_FEATURES') + driver_name = d.getVar('REQUIRED_MACHINE_FEATURES') if len(system_dt) == 0: bb.error("Couldn't find device tree %s" % d.getVar('DTS_FILE')) diff --git a/meta-xilinx-standalone-experimental/classes/esw_examples.bbclass b/meta-xilinx-standalone-experimental/classes/esw_examples.bbclass index 508da5356..43e781917 100644 --- a/meta-xilinx-standalone-experimental/classes/esw_examples.bbclass +++ b/meta-xilinx-standalone-experimental/classes/esw_examples.bbclass @@ -6,7 +6,6 @@ do_configure:prepend() { ( cd ${S} lopper ${DTS_FILE} -- baremetallinker_xlnx.py ${ESW_MACHINE} ${S}/${ESW_COMPONENT_SRC} - install -m 0755 memory.ld ${S}/${ESW_COMPONENT_SRC}/ install -m 0755 *.cmake ${S}/${ESW_COMPONENT_SRC}/ ) } diff --git a/meta-xilinx-standalone-experimental/conf/dtb-embeddedsw.inc b/meta-xilinx-standalone-experimental/conf/dtb-embeddedsw.inc index 2b461993a..b252e6095 100644 --- a/meta-xilinx-standalone-experimental/conf/dtb-embeddedsw.inc +++ b/meta-xilinx-standalone-experimental/conf/dtb-embeddedsw.inc @@ -2,11 +2,13 @@ # meta-xilinx/meta-xilinx-standalone/classes/xlnx-embeddedsw.bbclass # Make it clear decoupling is 'experimental' in the version -ESW_VER = "experimental" +ESW_VER = "2023.1_sdt_experimental" REPO = "git://github.com/Xilinx/embeddedsw-experimental-dt-support.git;protocol=https" -ESW_BRANCH[experimental] = "xlnx_rel_v2022.1_sdt_experimental_beta" -ESW_REV[experimental] = "2f93defe078000965c8f7203da11817c9f0982d1" +ESW_BRANCH[2023.1_sdt_experimental] = "xlnx_rel_v2023.1_sdt" +ESW_REV[2023.1_sdt_experimental] = "b47bfef27d7af0690add590b9c98e6fc51a1a1f6" LIC_FILES_CHKSUM[master] = '7c92de7a21a6613265035c28f4a92f48' LIC_FILES_CHKSUM[xlnx_rel_v2022.1_sdt_experimental_beta] = 'e26f53a7d6f58f4b1a9687099417225c' +LIC_FILES_CHKSUM[xlnx_rel_v2023.1_sdt_experimental] = 'ce611484168a6000bd35df68fc4f4290' +LIC_FILES_CHKSUM[xlnx_rel_v2023.1_sdt] = 'ce611484168a6000bd35df68fc4f4290' diff --git a/meta-xilinx-standalone-experimental/conf/layer.conf b/meta-xilinx-standalone-experimental/conf/layer.conf index 540989051..12734173d 100644 --- a/meta-xilinx-standalone-experimental/conf/layer.conf +++ b/meta-xilinx-standalone-experimental/conf/layer.conf @@ -12,6 +12,9 @@ BBFILE_COLLECTIONS += "xilinx-standalone-exp" BBFILE_PATTERN_xilinx-standalone-exp = "^${LAYERDIR}/" BBFILE_PRIORITY_xilinx-standalone-exp = "7" +# Allow other layers to find the root of this layer if necessary +META_XILINX_STANDALONE_EXP_PATH = "${LAYERDIR}" + LAYERDEPENDS_xilinx-standalone-exp = "core \ xilinx \ xilinx-standalone \ @@ -20,3 +23,6 @@ LAYERDEPENDS_xilinx-standalone-exp = "core \ " LAYERSERIES_COMPAT_xilinx-standalone-exp = "mickledore" + +# Aid debugging, show where the device trees are we are using +BUILDCFG_VARS:append = " SYSTEM_DTFILE CONFIG_DTFILE" diff --git a/meta-xilinx-standalone-experimental/conf/multiconfig/pmumc.conf b/meta-xilinx-standalone-experimental/conf/multiconfig/pmumc.conf deleted file mode 100644 index 756ea94aa..000000000 --- a/meta-xilinx-standalone-experimental/conf/multiconfig/pmumc.conf +++ /dev/null @@ -1,8 +0,0 @@ -MACHINE = "microblaze-pmu" -DISTRO = "xilinx-standalone" -TMPDIR = "${TOPDIR}/tmp-${MACHINE}-${TCLIBC}" - -# These should be temporary until the dtg repo has the correct design -HDF_BASE ?= "file://" -HDF_PATH ?= "${TOPDIR}/system.dsa" -HDF_EXT ?= "dsa" diff --git a/meta-xilinx-standalone-experimental/recipes-applications/empty-application/empty-application_git.bb b/meta-xilinx-standalone-experimental/recipes-applications/empty-application/empty-application_git.bb index 8ffb01cbf..d62779aee 100644 --- a/meta-xilinx-standalone-experimental/recipes-applications/empty-application/empty-application_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-applications/empty-application/empty-application_git.bb @@ -10,9 +10,10 @@ do_configure:prepend() { ( cd ${S} lopper ${DTS_FILE} -- baremetallinker_xlnx.py ${ESW_MACHINE} ${S}/${ESW_COMPONENT_SRC} - install -m 0755 memory.ld ${S}/${ESW_COMPONENT_SRC}/ + install -m 0644 ${S}/cmake/UserConfig.cmake ${S}/${ESW_COMPONENT_SRC} install -m 0755 *.cmake ${S}/${ESW_COMPONENT_SRC}/ install -m 0644 ${CUSTOM_SRCFILE}/* ${S}/${ESW_COMPONENT_SRC}/ + cp -rf ${S}/scripts/linker_files/ ${S}/${ESW_COMPONENT_SRC}/linker_files ) } @@ -25,10 +26,10 @@ inherit image-artifact-names CUSTOM_APP_BASE_NAME ?= "${CUSTOM_APP_IMAGE_NAME}-${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}" -ESW_COMPONENT ??= "executable.elf" +ESW_COMPONENT ??= "empty_application.elf" do_compile:append() { - ${OBJCOPY} -O binary ${B}/${ESW_COMPONENT} ${B}/executable.bin + ${OBJCOPY} -O binary ${B}/${ESW_COMPONENT} ${B}/empty_application.bin } do_install() { @@ -38,7 +39,7 @@ do_install() { do_deploy() { install -Dm 0644 ${B}/${ESW_COMPONENT} ${DEPLOYDIR}/${CUSTOM_APP_BASE_NAME}.elf ln -sf ${CUSTOM_APP_BASE_NAME}.elf ${DEPLOYDIR}/${CUSTOM_APP_IMAGE_NAME}.elf - install -m 0644 ${B}/executable.bin ${DEPLOYDIR}/${CUSTOM_APP_BASE_NAME}.bin + install -m 0644 ${B}/empty_application.bin ${DEPLOYDIR}/${CUSTOM_APP_BASE_NAME}.bin ln -sf ${CUSTOM_APP_BASE_NAME}.bin ${DEPLOYDIR}/${CUSTOM_APP_IMAGE_NAME}.bin } addtask deploy before do_build after do_install diff --git a/meta-xilinx-standalone-experimental/recipes-applications/freertos-hello-world/freertos-hello-world_git.bb b/meta-xilinx-standalone-experimental/recipes-applications/freertos-hello-world/freertos-hello-world_git.bb index f97240f83..8106684b4 100644 --- a/meta-xilinx-standalone-experimental/recipes-applications/freertos-hello-world/freertos-hello-world_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-applications/freertos-hello-world/freertos-hello-world_git.bb @@ -8,8 +8,9 @@ do_configure:prepend() { ( cd ${S} lopper ${DTS_FILE} -- baremetallinker_xlnx.py ${ESW_MACHINE} ${S}/${ESW_COMPONENT_SRC} - install -m 0755 memory.ld ${S}/${ESW_COMPONENT_SRC}/ + install -m 0644 ${S}/cmake/UserConfig.cmake ${S}/${ESW_COMPONENT_SRC} install -m 0755 *.cmake ${S}/${ESW_COMPONENT_SRC}/ + cp -rf ${S}/scripts/linker_files/ ${S}/${ESW_COMPONENT_SRC}/linker_files ) } diff --git a/meta-xilinx-standalone-experimental/recipes-applications/freertos-lwip-echo-server/freertos-lwip-echo-server_git.bb b/meta-xilinx-standalone-experimental/recipes-applications/freertos-lwip-echo-server/freertos-lwip-echo-server_git.bb index 5e58c6014..f7eae1dc9 100644 --- a/meta-xilinx-standalone-experimental/recipes-applications/freertos-lwip-echo-server/freertos-lwip-echo-server_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-applications/freertos-lwip-echo-server/freertos-lwip-echo-server_git.bb @@ -8,8 +8,9 @@ do_configure:prepend() { ( cd ${S} lopper ${DTS_FILE} -- baremetallinker_xlnx.py ${ESW_MACHINE} ${S}/${ESW_COMPONENT_SRC} - install -m 0755 memory.ld ${S}/${ESW_COMPONENT_SRC}/ + install -m 0644 ${S}/cmake/UserConfig.cmake ${S}/${ESW_COMPONENT_SRC} install -m 0755 *.cmake ${S}/${ESW_COMPONENT_SRC}/ + cp -rf ${S}/scripts/linker_files/ ${S}/${ESW_COMPONENT_SRC}/linker_files ) } diff --git a/meta-xilinx-standalone-experimental/recipes-applications/freertos-lwip-tcp-perf-client/freertos-lwip-tcp-perf-client_git.bb b/meta-xilinx-standalone-experimental/recipes-applications/freertos-lwip-tcp-perf-client/freertos-lwip-tcp-perf-client_git.bb index e4a2b041a..51b89b8ee 100644 --- a/meta-xilinx-standalone-experimental/recipes-applications/freertos-lwip-tcp-perf-client/freertos-lwip-tcp-perf-client_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-applications/freertos-lwip-tcp-perf-client/freertos-lwip-tcp-perf-client_git.bb @@ -8,8 +8,9 @@ do_configure:prepend() { ( cd ${S} lopper ${DTS_FILE} -- baremetallinker_xlnx.py ${ESW_MACHINE} ${S}/${ESW_COMPONENT_SRC} - install -m 0755 memory.ld ${S}/${ESW_COMPONENT_SRC}/ + install -m 0644 ${S}/cmake/UserConfig.cmake ${S}/${ESW_COMPONENT_SRC} install -m 0755 *.cmake ${S}/${ESW_COMPONENT_SRC}/ + cp -rf ${S}/scripts/linker_files/ ${S}/${ESW_COMPONENT_SRC}/linker_files ) } diff --git a/meta-xilinx-standalone-experimental/recipes-applications/freertos-lwip-tcp-perf-server/freertos-lwip-tcp-perf-server_git.bb b/meta-xilinx-standalone-experimental/recipes-applications/freertos-lwip-tcp-perf-server/freertos-lwip-tcp-perf-server_git.bb index bf8929545..606fd01ea 100644 --- a/meta-xilinx-standalone-experimental/recipes-applications/freertos-lwip-tcp-perf-server/freertos-lwip-tcp-perf-server_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-applications/freertos-lwip-tcp-perf-server/freertos-lwip-tcp-perf-server_git.bb @@ -8,8 +8,9 @@ do_configure:prepend() { ( cd ${S} lopper ${DTS_FILE} -- baremetallinker_xlnx.py ${ESW_MACHINE} ${S}/${ESW_COMPONENT_SRC} - install -m 0755 memory.ld ${S}/${ESW_COMPONENT_SRC}/ + install -m 0644 ${S}/cmake/UserConfig.cmake ${S}/${ESW_COMPONENT_SRC} install -m 0755 *.cmake ${S}/${ESW_COMPONENT_SRC}/ + cp -rf ${S}/scripts/linker_files/ ${S}/${ESW_COMPONENT_SRC}/linker_files ) } diff --git a/meta-xilinx-standalone-experimental/recipes-applications/freertos-lwip-udp-perf-client/freertos-lwip-udp-perf-client_git.bb b/meta-xilinx-standalone-experimental/recipes-applications/freertos-lwip-udp-perf-client/freertos-lwip-udp-perf-client_git.bb index 0a28d3df1..7f9d86e2b 100644 --- a/meta-xilinx-standalone-experimental/recipes-applications/freertos-lwip-udp-perf-client/freertos-lwip-udp-perf-client_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-applications/freertos-lwip-udp-perf-client/freertos-lwip-udp-perf-client_git.bb @@ -8,8 +8,9 @@ do_configure:prepend() { ( cd ${S} lopper ${DTS_FILE} -- baremetallinker_xlnx.py ${ESW_MACHINE} ${S}/${ESW_COMPONENT_SRC} - install -m 0755 memory.ld ${S}/${ESW_COMPONENT_SRC}/ install -m 0755 *.cmake ${S}/${ESW_COMPONENT_SRC}/ + cp -rf ${S}/scripts/linker_files/ ${S}/${ESW_COMPONENT_SRC}/linker_files + install -m 0644 ${S}/cmake/UserConfig.cmake ${S}/${ESW_COMPONENT_SRC} ) } diff --git a/meta-xilinx-standalone-experimental/recipes-applications/freertos-lwip-udp-perf-server/freertos-lwip-udp-perf-server_git.bb b/meta-xilinx-standalone-experimental/recipes-applications/freertos-lwip-udp-perf-server/freertos-lwip-udp-perf-server_git.bb index 0212dab2a..4fc02f360 100644 --- a/meta-xilinx-standalone-experimental/recipes-applications/freertos-lwip-udp-perf-server/freertos-lwip-udp-perf-server_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-applications/freertos-lwip-udp-perf-server/freertos-lwip-udp-perf-server_git.bb @@ -8,8 +8,9 @@ do_configure:prepend() { ( cd ${S} lopper ${DTS_FILE} -- baremetallinker_xlnx.py ${ESW_MACHINE} ${S}/${ESW_COMPONENT_SRC} - install -m 0755 memory.ld ${S}/${ESW_COMPONENT_SRC}/ install -m 0755 *.cmake ${S}/${ESW_COMPONENT_SRC}/ + cp -rf ${S}/scripts/linker_files/ ${S}/${ESW_COMPONENT_SRC}/linker_files + install -m 0644 ${S}/cmake/UserConfig.cmake ${S}/${ESW_COMPONENT_SRC} ) } diff --git a/meta-xilinx-standalone-experimental/recipes-applications/hello-world/hello-world_git.bb b/meta-xilinx-standalone-experimental/recipes-applications/hello-world/hello-world_git.bb index 16d9d0301..1de5ef8c2 100644 --- a/meta-xilinx-standalone-experimental/recipes-applications/hello-world/hello-world_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-applications/hello-world/hello-world_git.bb @@ -10,8 +10,9 @@ do_configure:prepend() { ( cd ${S} lopper ${DTS_FILE} -- baremetallinker_xlnx.py ${ESW_MACHINE} ${S}/${ESW_COMPONENT_SRC} - install -m 0755 memory.ld ${S}/${ESW_COMPONENT_SRC}/ install -m 0755 *.cmake ${S}/${ESW_COMPONENT_SRC}/ + cp -rf ${S}/scripts/linker_files/ ${S}/${ESW_COMPONENT_SRC}/linker_files + install -m 0644 ${S}/cmake/UserConfig.cmake ${S}/${ESW_COMPONENT_SRC} ) } diff --git a/meta-xilinx-standalone-experimental/recipes-applications/lwip-echo-server/lwip-echo-server_git.bb b/meta-xilinx-standalone-experimental/recipes-applications/lwip-echo-server/lwip-echo-server_git.bb index 84909f182..c59d816ec 100644 --- a/meta-xilinx-standalone-experimental/recipes-applications/lwip-echo-server/lwip-echo-server_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-applications/lwip-echo-server/lwip-echo-server_git.bb @@ -8,8 +8,9 @@ do_configure:prepend() { ( cd ${S} lopper ${DTS_FILE} -- baremetallinker_xlnx.py ${ESW_MACHINE} ${S}/${ESW_COMPONENT_SRC} - install -m 0755 memory.ld ${S}/${ESW_COMPONENT_SRC}/ install -m 0755 *.cmake ${S}/${ESW_COMPONENT_SRC}/ + cp -rf ${S}/scripts/linker_files/ ${S}/${ESW_COMPONENT_SRC}/linker_files + install -m 0644 ${S}/cmake/UserConfig.cmake ${S}/${ESW_COMPONENT_SRC} ) } diff --git a/meta-xilinx-standalone-experimental/recipes-applications/lwip-tcp-perf-client/lwip-tcp-perf-client_git.bb b/meta-xilinx-standalone-experimental/recipes-applications/lwip-tcp-perf-client/lwip-tcp-perf-client_git.bb index eea50f603..b9834e341 100644 --- a/meta-xilinx-standalone-experimental/recipes-applications/lwip-tcp-perf-client/lwip-tcp-perf-client_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-applications/lwip-tcp-perf-client/lwip-tcp-perf-client_git.bb @@ -8,8 +8,9 @@ do_configure:prepend() { ( cd ${S} lopper ${DTS_FILE} -- baremetallinker_xlnx.py ${ESW_MACHINE} ${S}/${ESW_COMPONENT_SRC} - install -m 0755 memory.ld ${S}/${ESW_COMPONENT_SRC}/ install -m 0755 *.cmake ${S}/${ESW_COMPONENT_SRC}/ + cp -rf ${S}/scripts/linker_files/ ${S}/${ESW_COMPONENT_SRC}/linker_files + install -m 0644 ${S}/cmake/UserConfig.cmake ${S}/${ESW_COMPONENT_SRC} ) } diff --git a/meta-xilinx-standalone-experimental/recipes-applications/lwip-tcp-perf-server/lwip-tcp-perf-server_git.bb b/meta-xilinx-standalone-experimental/recipes-applications/lwip-tcp-perf-server/lwip-tcp-perf-server_git.bb index fac6ace08..0acc4b8f8 100644 --- a/meta-xilinx-standalone-experimental/recipes-applications/lwip-tcp-perf-server/lwip-tcp-perf-server_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-applications/lwip-tcp-perf-server/lwip-tcp-perf-server_git.bb @@ -8,8 +8,9 @@ do_configure:prepend() { ( cd ${S} lopper ${DTS_FILE} -- baremetallinker_xlnx.py ${ESW_MACHINE} ${S}/${ESW_COMPONENT_SRC} - install -m 0755 memory.ld ${S}/${ESW_COMPONENT_SRC}/ install -m 0755 *.cmake ${S}/${ESW_COMPONENT_SRC}/ + cp -rf ${S}/scripts/linker_files/ ${S}/${ESW_COMPONENT_SRC}/linker_files + install -m 0644 ${S}/cmake/UserConfig.cmake ${S}/${ESW_COMPONENT_SRC} ) } diff --git a/meta-xilinx-standalone-experimental/recipes-applications/lwip-udp-perf-client/lwip-udp-perf-client_git.bb b/meta-xilinx-standalone-experimental/recipes-applications/lwip-udp-perf-client/lwip-udp-perf-client_git.bb index 0c1b1f9b8..00a9eaa68 100644 --- a/meta-xilinx-standalone-experimental/recipes-applications/lwip-udp-perf-client/lwip-udp-perf-client_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-applications/lwip-udp-perf-client/lwip-udp-perf-client_git.bb @@ -8,8 +8,9 @@ do_configure:prepend() { ( cd ${S} lopper ${DTS_FILE} -- baremetallinker_xlnx.py ${ESW_MACHINE} ${S}/${ESW_COMPONENT_SRC} - install -m 0755 memory.ld ${S}/${ESW_COMPONENT_SRC}/ install -m 0755 *.cmake ${S}/${ESW_COMPONENT_SRC}/ + cp -rf ${S}/scripts/linker_files/ ${S}/${ESW_COMPONENT_SRC}/linker_files + install -m 0644 ${S}/cmake/UserConfig.cmake ${S}/${ESW_COMPONENT_SRC} ) } diff --git a/meta-xilinx-standalone-experimental/recipes-applications/lwip-udp-perf-server/lwip-udp-perf-server_git.bb b/meta-xilinx-standalone-experimental/recipes-applications/lwip-udp-perf-server/lwip-udp-perf-server_git.bb index 8973ee607..5f54caf90 100644 --- a/meta-xilinx-standalone-experimental/recipes-applications/lwip-udp-perf-server/lwip-udp-perf-server_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-applications/lwip-udp-perf-server/lwip-udp-perf-server_git.bb @@ -8,8 +8,9 @@ do_configure:prepend() { ( cd ${S} lopper ${DTS_FILE} -- baremetallinker_xlnx.py ${ESW_MACHINE} ${S}/${ESW_COMPONENT_SRC} - install -m 0755 memory.ld ${S}/${ESW_COMPONENT_SRC}/ install -m 0755 *.cmake ${S}/${ESW_COMPONENT_SRC}/ + cp -rf ${S}/scripts/linker_files/ ${S}/${ESW_COMPONENT_SRC}/linker_files + install -m 0644 ${S}/cmake/UserConfig.cmake ${S}/${ESW_COMPONENT_SRC} ) } diff --git a/meta-xilinx-standalone-experimental/recipes-applications/memory-tests/memory-tests_git.bb b/meta-xilinx-standalone-experimental/recipes-applications/memory-tests/memory-tests_git.bb index f2af00f69..1ece5a8c4 100644 --- a/meta-xilinx-standalone-experimental/recipes-applications/memory-tests/memory-tests_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-applications/memory-tests/memory-tests_git.bb @@ -10,15 +10,16 @@ do_configure:prepend() { ( cd ${S} lopper ${DTS_FILE} -- baremetallinker_xlnx.py ${ESW_MACHINE} ${S}/${ESW_COMPONENT_SRC} memtest - install -m 0755 memory.ld ${S}/${ESW_COMPONENT_SRC}/ install -m 0755 *.cmake ${S}/${ESW_COMPONENT_SRC}/ + cp -rf ${S}/scripts/linker_files/ ${S}/${ESW_COMPONENT_SRC}/linker_files + install -m 0644 ${S}/cmake/UserConfig.cmake ${S}/${ESW_COMPONENT_SRC} ) } do_install() { install -d ${D}/${base_libdir}/firmware # Note that we have to make the ELF executable for it to be stripped - install -m 0755 ${B}/memory_test* ${D}/${base_libdir}/firmware + install -m 0755 ${B}/memory_tests* ${D}/${base_libdir}/firmware } inherit image-artifact-names @@ -28,13 +29,13 @@ MEMORY_TESTS_BASE_NAME ?= "${BPN}-${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERS do_deploy() { # We need to deploy the stripped elf, hence why not doing it from ${D} - install -Dm 0644 ${WORKDIR}/package/${base_libdir}/firmware/memory_test.elf ${DEPLOYDIR}/${MEMORY_TESTS_BASE_NAME}.elf + install -Dm 0644 ${WORKDIR}/package/${base_libdir}/firmware/memory_tests.elf ${DEPLOYDIR}/${MEMORY_TESTS_BASE_NAME}.elf ln -sf ${MEMORY_TESTS_BASE_NAME}.elf ${DEPLOYDIR}/${BPN}-${MACHINE}.elf - ${OBJCOPY} -O binary ${WORKDIR}/package/${base_libdir}/firmware/memory_test.elf ${WORKDIR}/package/${base_libdir}/firmware/memory_test.bin - install -m 0644 ${WORKDIR}/package/${base_libdir}/firmware/memory_test.bin ${DEPLOYDIR}/${MEMORY_TESTS_BASE_NAME}.bin + ${OBJCOPY} -O binary ${WORKDIR}/package/${base_libdir}/firmware/memory_tests.elf ${WORKDIR}/package/${base_libdir}/firmware/memory_tests.bin + install -m 0644 ${WORKDIR}/package/${base_libdir}/firmware/memory_tests.bin ${DEPLOYDIR}/${MEMORY_TESTS_BASE_NAME}.bin ln -sf ${MEMORY_TESTS_BASE_NAME}.bin ${DEPLOYDIR}/${BPN}-${MACHINE}.bin } addtask deploy before do_build after do_package -FILES:${PN} = "${base_libdir}/firmware/memory_test*" +FILES:${PN} = "${base_libdir}/firmware/memory_tests*" diff --git a/meta-xilinx-standalone-experimental/recipes-applications/peripheral-tests/peripheral-tests_git.bb b/meta-xilinx-standalone-experimental/recipes-applications/peripheral-tests/peripheral-tests_git.bb index 21422739f..b6b15d5ac 100644 --- a/meta-xilinx-standalone-experimental/recipes-applications/peripheral-tests/peripheral-tests_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-applications/peripheral-tests/peripheral-tests_git.bb @@ -10,8 +10,9 @@ do_configure:prepend() { ( cd ${S} lopper ${DTS_FILE} -- baremetallinker_xlnx.py ${ESW_MACHINE} ${S}/${ESW_COMPONENT_SRC} - install -m 0755 memory.ld ${S}/${ESW_COMPONENT_SRC}/ install -m 0755 *.cmake ${S}/${ESW_COMPONENT_SRC}/ + cp -rf ${S}/scripts/linker_files/ ${S}/${ESW_COMPONENT_SRC}/linker_files + install -m 0644 ${S}/cmake/UserConfig.cmake ${S}/${ESW_COMPONENT_SRC} ) } @@ -29,13 +30,9 @@ python do_generate_app_data() { if len(src_dir) == 0: bb.error("Couldn't find source dir %s" % d.getVar('OECMAKE_SOURCEPATH')) - driver_name = d.getVar('REQUIRED_DISTRO_FEATURES') - command = ["lopper"] + ["-f"] + [system_dt[0]] + ["--"] + ["baremetal_gentestapp_xlnx"] + [machine] + [srcdir[0]] + driver_name = d.getVar('REQUIRED_MACHINE_FEATURES') + command = ["lopper"] + ["-f"] + ["-O"] + [src_dir[0]] + [system_dt[0]] + ["--"] + ["baremetal_gentestapp_xlnx"] + [machine] + [srcdir[0]] subprocess.run(command, check = True) - with open("file_list.txt", 'r') as fd: - for line in fd: - command = ["install"] + ["-m"] + ["0755"] + [line.strip()] + [src_dir[0]] - subprocess.run(command, check = True) } addtask do_generate_app_data before do_configure after do_prepare_recipe_sysroot do_prepare_recipe_sysroot[rdeptask] = "do_unpack" @@ -46,10 +43,10 @@ inherit image-artifact-names PERIPHERAL_TEST_BASE_NAME ?= "${PERIPHERAL_TEST_APP_IMAGE_NAME}-${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}" -ESW_COMPONENT ??= "executable.elf" +ESW_COMPONENT ??= "peripheral_tests.elf" do_compile:append() { - ${OBJCOPY} -O binary ${B}/${ESW_COMPONENT} ${B}/executable.bin + ${OBJCOPY} -O binary ${B}/${ESW_COMPONENT} ${B}/peripheral_tests.bin } do_install() { @@ -59,7 +56,7 @@ do_install() { do_deploy() { install -Dm 0644 ${B}/${ESW_COMPONENT} ${DEPLOYDIR}/${PERIPHERAL_TEST_BASE_NAME}.elf ln -sf ${PERIPHERAL_TEST_BASE_NAME}.elf ${DEPLOYDIR}/${BPN}-${MACHINE}.elf - install -m 0644 ${B}/executable.bin ${DEPLOYDIR}/${PERIPHERAL_TEST_BASE_NAME}.bin + install -m 0644 ${B}/peripheral_tests.bin ${DEPLOYDIR}/${PERIPHERAL_TEST_BASE_NAME}.bin ln -sf ${PERIPHERAL_TEST_BASE_NAME}.bin ${DEPLOYDIR}/${BPN}-${MACHINE}.bin } addtask deploy before do_build after do_install diff --git a/meta-xilinx-standalone-experimental/recipes-bsp/embeddedsw/fsbl-firmware_git.bbappend b/meta-xilinx-standalone-experimental/recipes-bsp/embeddedsw/fsbl-firmware_git.bbappend index 43dcc1067..d40f3cdb6 100644 --- a/meta-xilinx-standalone-experimental/recipes-bsp/embeddedsw/fsbl-firmware_git.bbappend +++ b/meta-xilinx-standalone-experimental/recipes-bsp/embeddedsw/fsbl-firmware_git.bbappend @@ -49,6 +49,7 @@ do_configure:prepend() { else bbwarn "Using the default psu_init.h, this may not work correctly." fi + install -m 0644 ${S}/cmake/UserConfig.cmake ${S}/${ESW_COMPONENT_SRC} } do_install() { diff --git a/meta-xilinx-standalone-experimental/recipes-bsp/embeddedsw/plm-firmware_git.bbappend b/meta-xilinx-standalone-experimental/recipes-bsp/embeddedsw/plm-firmware_git.bbappend index 8a72a1847..cc6d757fb 100644 --- a/meta-xilinx-standalone-experimental/recipes-bsp/embeddedsw/plm-firmware_git.bbappend +++ b/meta-xilinx-standalone-experimental/recipes-bsp/embeddedsw/plm-firmware_git.bbappend @@ -10,6 +10,13 @@ ESW_COMPONENT_SRC = "/lib/sw_apps/versal_plm/src/" ESW_COMPONENT = "versal_plm.elf" +do_configure:prepend() { + ( + cd ${S} + install -m 0644 ${S}/cmake/UserConfig.cmake ${S}/${ESW_COMPONENT_SRC} + ) +} + do_compile:append() { ${MB_OBJCOPY} -O binary ${B}/${ESW_COMPONENT} ${B}/${ESW_COMPONENT}.bin } diff --git a/meta-xilinx-standalone-experimental/recipes-bsp/embeddedsw/pmu-firmware_git.bbappend b/meta-xilinx-standalone-experimental/recipes-bsp/embeddedsw/pmu-firmware_git.bbappend index dd0a3d920..b5908d462 100644 --- a/meta-xilinx-standalone-experimental/recipes-bsp/embeddedsw/pmu-firmware_git.bbappend +++ b/meta-xilinx-standalone-experimental/recipes-bsp/embeddedsw/pmu-firmware_git.bbappend @@ -8,7 +8,15 @@ inherit esw ESW_COMPONENT_SRC = "/lib/sw_apps/zynqmp_pmufw/src" -ESW_COMPONENT = "pmufw.elf" +ESW_COMPONENT = "zynqmp_pmufw.elf" + + +do_configure:prepend() { + ( + cd ${S} + install -m 0644 ${S}/cmake/UserConfig.cmake ${S}/${ESW_COMPONENT_SRC} + ) +} do_compile:append() { ${MB_OBJCOPY} -O binary ${B}/${ESW_COMPONENT} ${B}/${ESW_COMPONENT}.bin diff --git a/meta-xilinx-standalone-experimental/recipes-bsp/embeddedsw/psm-firmware_git.bbappend b/meta-xilinx-standalone-experimental/recipes-bsp/embeddedsw/psm-firmware_git.bbappend index 9b3d6475a..c4953ce77 100644 --- a/meta-xilinx-standalone-experimental/recipes-bsp/embeddedsw/psm-firmware_git.bbappend +++ b/meta-xilinx-standalone-experimental/recipes-bsp/embeddedsw/psm-firmware_git.bbappend @@ -10,6 +10,13 @@ ESW_COMPONENT_SRC = "/lib/sw_apps/versal_psmfw/src/" ESW_COMPONENT = "versal_psmfw.elf" +do_configure:prepend() { + ( + cd ${S} + install -m 0644 ${S}/cmake/UserConfig.cmake ${S}/${ESW_COMPONENT_SRC} + ) +} + do_compile:append() { ${MB_OBJCOPY} -O binary ${B}/${ESW_COMPONENT} ${B}/${ESW_COMPONENT}.bin } diff --git a/meta-xilinx-standalone-experimental/recipes-core/meta/files/README-setup b/meta-xilinx-standalone-experimental/recipes-core/meta/files/README-setup index 880469667..0a5736d87 100644 --- a/meta-xilinx-standalone-experimental/recipes-core/meta/files/README-setup +++ b/meta-xilinx-standalone-experimental/recipes-core/meta/files/README-setup @@ -1,25 +1,12 @@ -Document Version: 20211209 +Document Version: 20230112 -The Yocto Project setup for the new workflow is as follows. Be sure to read -everything below, as the steps will be updated in the future if the -setup script changes. +The Yocto Project setup for the System Device Tree workflow is as follows. +Be sure to read everything below, as the steps will be updated in the future +if the setup script changes. The steps in this document expect that you have already built the setup (meta-xilinx-setup) SDK, and installed it. -* Configure you local.conf - -The following items should be in your conf/local.conf. This ensures that -the correct configurations are available, and the correct firmware version -is selected for this workflow. - -# Instruct the system to use the decoupling firmware sources, -# add the following to the conf/local.conf: -PREFERRED_VERSION_fsbl-firmware = "experimental%" -PREFERRED_VERSION_pmu-firmware = "experimental%" -PREFERRED_VERSION_plm-firmware = "experimental%" -PREFERRED_VERSION_psm-firmware = "experimental%" - * Run the setup script The setup environment should be run in a new shell (not the build shell) @@ -28,68 +15,88 @@ to ensure that you do not contaminate the environment for your build. We will assume below that the directory "prestep" was used for the SDK, however you may use any path you wish. -# Source the SDK environment file -. /prestep/environment-setup-x86_64-petalinux-linux - -# Run the script from the same directory as this README -/prestep/dt-processor.sh -c -s - -# For example, zynqmp: -# /prestep/dt-processor.sh -c /conf -s /zu-sdt/system-top.dts -# -# Follow the instructions returned by the script! -# Such as: - -To enable this, add the following to your local.conf: - -# Adjust BASE_TMPDIR if you want to move the tmpdirs elsewhere -BASE_TMPDIR = "${TOPDIR}" -require conf/cortexa53-zynqmp-linux.conf -SYSTEM_DTFILE = "/proj/yocto/zu_sdt/system-top.dts" -BBMULTICONFIG += " cortexa53-zynqmp-fsbl-baremetal cortexa53-zynqmp-baremetal cortexa53-zynqmp-freertos cortexr5-zynqmp-fsbl-baremetal cortexr5-zynqmp-baremetal cortexr5-zynqmp-freertos microblaze-pmu" -FSBL_DEPENDS = "" -FSBL_MCDEPENDS = "mc::cortexa53-zynqmp-fsbl-baremetal:fsbl-firmware:do_deploy" -FSBL_DEPLOY_DIR = "${BASE_TMPDIR}/tmp-cortexa53-zynqmp-fsbl-baremetal/deploy/images/${MACHINE}" -R5FSBL_DEPENDS = "" -R5FSBL_MCDEPENDS = "mc::cortexr5-zynqmp-fsbl-baremetal:fsbl-firmware:do_deploy" -R5FSBL_DEPLOY_DIR = "${BASE_TMPDIR}/tmp-cortexr5-zynqmp-fsbl-baremetal/deploy/images/${MACHINE}" -PMU_DEPENDS = "" -PMU_MCDEPENDS = "mc::microblaze-pmu:pmu-firmware:do_deploy" -PMU_FIRMWARE_DEPLOY_DIR = "${BASE_TMPDIR}/tmp-microblaze-pmu/deploy/images/${MACHINE}" - -# -# OR -# -# Versal: -# /prestep/dt-processor.sh -c /conf -s /vck190-sdt/system-top.dts -# -# Follow the instructions returned by the script! -# Such as: - -To enable this, add the following to your local.conf: - -# Adjust BASE_TMPDIR if you want to move the tmpdirs elsewhere -BASE_TMPDIR = "${TOPDIR}" -require conf/cortexa72-versal-linux.conf -SYSTEM_DTFILE = "/proj/yocto/mhatle/DTB-FLOW/testing/vck190-sdt/system-top.dts" -BBMULTICONFIG += " cortexa72-versal-baremetal cortexa72-versal-freertos microblaze-pmc microblaze-psm cortexr5-versal-baremetal cortexr5-versal-freertos" -PLM_DEPENDS = "" -PLM_MCDEPENDS = "mc::microblaze-pmc:plm-firmware:do_deploy" -PLM_DEPLOY_DIR = "${BASE_TMPDIR}/tmp-microblaze-pmc/deploy/images/${MACHINE}" -PSM_DEPENDS = "" -PSM_MCDEPENDS = "mc::microblaze-psm:psm-firmware:do_deploy" -PSM_FIRMWARE_DEPLOY_DIR = "${BASE_TMPDIR}/tmp-microblaze-psm/deploy/images/${MACHINE}" -PDI_PATH = "__PATH TO PDI FILE HERE__" - -# NOTE: On versal, you MUST specify the PDI file as directed by the instructions. -# such as: PDI_PATH = "__PATH TO PDI FILE HERE__" -# Use the full path to the corresponding PDI file, such as: -PDI_PATH = "/proj/yocto/vck190-sdt/base-design.pdi" - -# _EXIT THE NEW SHELL_ return the build environment - -### In the original build shell -# Build your Linux sytem: -bitbake petalinux-image-minimal - -# The output will be in tmp/deploy/images/... +Source the SDK environment file + $ . /prestep/environment-setup-x86_64-petalinux-linux + +Run the script from the same directory as this README + $ /prestep/dt-processor.sh -c -s -l conf/local.conf + +Note: The -l option will automatically add the necessary parameters to the +local.conf file. If you need to re-run this comment, you just clear the +parameters from the end of the file. Without the -l option the items are +printed to the screen and must be manually added to your conf/local.conf + +For example, zynqmp: + $ ./prestep/dt-processor.sh -c conf -s /proj/yocto/zcu102-sdt/system-top.dts -l conf/local.conf + +The following will be written to the end of the conf/local.conf file: + + # Each multiconfig will define it's own TMPDIR, this is the new default based + # on BASE_TMPDIR for the Linux build + TMPDIR = "${BASE_TMPDIR}/tmp" + + # Use the newly generated MACHINE + MACHINE = "xlnx-zynqmp-zcu102-rev1-0" + + # All of the TMPDIRs must be in a common parent directory. This is defined + # as BASE_TMPDIR. + # Adjust BASE_TMPDIR if you want to move the tmpdirs elsewhere, such as /tmp + BASE_TMPDIR ?= "${TOPDIR}" + + # The following is the full set of multiconfigs for this configuration + # A large list can cause a slow parse. + BBMULTICONFIG = " cortexa53-0-zynqmp-fsbl-baremetal cortexa53-0-zynqmp-baremetal cortexa53-0-zynqmp-freertos cortexa53-1-zynqmp-baremetal cortexa53-1-zynqmp-freertos cortexa53-2-zynqmp-baremetal cortexa53-2-zynqmp-freertos cortexa53-3-zynqmp-baremetal cortexa53-3-zynqmp-freertos cortexr5-0-zynqmp-fsbl-baremetal cortexr5-0-zynqmp-baremetal cortexr5-0-zynqmp-freertos cortexr5-1-zynqmp-baremetal cortexr5-1-zynqmp-freertos microblaze-0-pmu" + # Alternatively trim the list to the minimum + #BBMULTICONFIG = " cortexa53-0-zynqmp-fsbl-baremetal microblaze-0-pmu" + + +For example, versal: + $ ./prestep/dt-processor.sh -c conf -s /proj/yocto/vmk180-sdt/system-top.dts -l conf/local.conf + +The following will be written to the end of the conf/local.conf file: + + # Each multiconfig will define it's own TMPDIR, this is the new default based + # on BASE_TMPDIR for the Linux build + TMPDIR = "${BASE_TMPDIR}/tmp" + + # Use the newly generated MACHINE + MACHINE = "xlnx-versal-vmk180-rev1-1-x-ebm-01-reva" + + # All of the TMPDIRs must be in a common parent directory. This is defined + # as BASE_TMPDIR. + # Adjust BASE_TMPDIR if you want to move the tmpdirs elsewhere, such as /tmp + BASE_TMPDIR ?= "${TOPDIR}" + + # The following is the full set of multiconfigs for this configuration + # A large list can cause a slow parse. + BBMULTICONFIG = " cortexa72-0-versal-baremetal cortexa72-0-versal-freertos cortexa72-1-versal-baremetal cortexa72-1-versal-freertos microblaze-0-pmc microblaze-0-psm cortexr5-0-versal-baremetal cortexr5-0-versal-freertos cortexr5-1-versal-baremetal cortexr5-1-versal-freertos" + # Alternatively trim the list to the minimum + #BBMULTICONFIG = " microblaze-0-pmc microblaze-0-psm" + + +You can now EXIT THE NEW SHELL return the build environment for the remaining steps. + +* Bitbake Performance Note + +Each BBMULTICONFIG value requires all of the recipes to be parsed for that +configuration. Thus each multiconfig will add more parsing time. A long list +can lead to a very slow parse (many minutes). To speed up parsing, it is +suggested that you trim this down to only the configurations you require. +A minimum configuration is included with the generated configuration. + +* Build your project + +You should now be able to build your project normally. See the Yocto Project +documentation if you have questions on how to work with the multiconfig +recipes. The following is a simple build for testing. + +In the original build shell +Build your Linux sytem: + $ bitbake petalinux-image-minimal + +The output will be in tmp/deploy/images/... + +If the system is QEMU capable execute QEMU using: + $ runqemu nographic slirp core-image-minimal + +To terminate qemu, usually the command is ctrl-a x diff --git a/meta-xilinx-standalone-experimental/recipes-core/meta/files/dt-processor.sh b/meta-xilinx-standalone-experimental/recipes-core/meta/files/dt-processor.sh index 223453216..939fabe42 100755 --- a/meta-xilinx-standalone-experimental/recipes-core/meta/files/dt-processor.sh +++ b/meta-xilinx-standalone-experimental/recipes-core/meta/files/dt-processor.sh @@ -34,12 +34,14 @@ usage() { cat < Location of the build conf directory - -s Path to system DTB + -s Path to system dts [-d ] Path to domain file (.yml/.dts) - [-o ] Generate overlay dts + [-o ] Generate overlay dts [-e ] Apply a partial overlay - [-m ] zynqmp or versal - [-p ] Path to psu_init files, defaults to system_dtb path + [-m ] The name of the machine .conf to generate + [-t ] Machine type: zynqmp or versal (usually auto detected) + [-v ] SOC Variant: cg, dr, eg, ev, ai-prime, premium (usually auto detected) + [-p ] Path to psu_init files, defaults to system_dts path [-i ] Path to the pdi file [-l ] write local.conf changes to this file [-P ] Path to petalinux schema file @@ -52,14 +54,16 @@ parse_args() { [ $# -eq 0 ] && usage [ $1 = "--help" ] && usage - while getopts ":c:s:d:o:e:m:l:hP:p:i:" opt; do + while getopts ":c:s:d:o:e:m:l:hP:p:i:t:v:" opt; do case ${opt} in c) config_dir=$OPTARG ;; - s) system_dtb=$OPTARG ;; - o) overlay_dtb=$OPTARG ;; + s) system_dts=$OPTARG ;; + o) overlay_dts=$OPTARG ;; d) domain_file=$OPTARG ;; e) external_fpga=$OPTARG ;; - m) machine=$OPTARG ;; + m) mach_conf=$OPTARG ; mach_conf=${mach_conf%%.conf} ;; + t) machine=$OPTARG ;; + v) soc_variant=$OPTARG ;; p) psu_init_path=$OPTARG ;; i) pdi_path=$OPTARG ;; l) localconf=$OPTARG ;; @@ -71,17 +75,17 @@ parse_args() { done [ -z "${config_dir}" ] && error "You must specify the path to the build conf directory with -c" - [ -z "${system_dtb}" ] && error "You must specify the path to the system device tree with -s" + [ -z "${system_dts}" ] && error "You must specify the path to the system device tree with -s" [ -f "${config_dir}/local.conf" ] || error "Invalid config dir: ${config_dir}" - [ -f "${system_dtb}" ] || error "Unable to find: ${system_dtb}" - system_dtb=$(realpath ${system_dtb}) + [ -f "${system_dts}" ] || error "Unable to find: ${system_dts}" + system_dts=$(realpath ${system_dts}) if [ -z "$psu_init_path" ]; then - psu_init_path=$(dirname ${system_dtb}) + psu_init_path=$(dirname ${system_dts}) else psu_init_path=$(realpath ${psu_init_path}) fi if [ -z "$pdi_path" ]; then - pdi_path=$(dirname ${system_dtb}) + pdi_path=$(dirname ${system_dts}) else pdi_path=$(realpath ${pdi_path}) fi @@ -93,51 +97,115 @@ parse_args() { detect_machine() { if [ -z "${machine}" ]; then - # Identify the system type first using PSM/PMC/PMU - while read -r cpu domain os_hint; do - case ${cpu} in - pmu-microblaze) - machine="zynqmp" ;; - pmc-microblaze | psm-microblaze) - machine="versal" ;; + if [ -n "${deviceid}" ]; then + case ${deviceid} in + # ZynqMP variants + xczu*cg) + machine="zynqmp" + soc_variant="cg" ;; + xczu*dr) + machine="zynqmp" + soc_variant="dr" ;; + xczu*eg) + machine="zynqmp" + soc_variant="eg" ;; + xczu*ev) + machine="zynqmp" + soc_variant="ev" ;; + # Versal variants + xcvm*) + machine="versal" + soc_variant="prime" ;; + xcvc*) + machine="versal" + soc_variant="ai-core" ;; + xcve*) + machine="versal" + soc_variant="ai-edge" ;; + xcvn*) + machine="versal" + soc_variant="net" ;; + xcvp*) + machine="versal" + soc_variant="premium" ;; + xcvh*) + machine="versal" + soc_variant="hbm" ;; + # Special Case Starter Kit SOMs + xck26) + incmachine="k26-smk.conf" + machine="zynqmp" + soc_variant="ev" ;; + xck24) + incmachine="k24-smk.conf" + machine="zynqmp" + soc_variant="eg" ;; esac - done <${cpulist} + else + # Identify the system type first using PSM/PMC/PMU + while read -r cpu core domain cpu_name os_hint; do + case ${cpu} in + pmu-microblaze) + machine="zynqmp" ;; + pmc-microblaze | psm-microblaze) + machine="versal" ;; + esac + done <${cpulist} + fi fi # Machine not provided and we cannot identify.. [ -z ${machine} ] && \ - error "Unable to autodetect machine type, use -m to specify the machine." + error "Unable to autodetect machine type, use -t to specify the machine." case ${machine} in zynqmp | versal) : ;; *) error "Invalid machine type ${machine}; please choose zynqmp or versal" esac + + [ -z ${soc_variant} ] && \ + warn "Unable to autodetect soc variant, use -v to specify a variant." +} + +dump_cpus() { + prefix="$1" + while read -r cpu core domain cpu_name os_hint; do + case ${cpu} in + \#*) ;; + \[*) ;; + pmu-microblaze) echo "${prefix}zynqmp-pmu ${cpu_name}" ;; + pmc-microblaze) echo "${prefix}versal-plm ${cpu_name}" ;; + psm-microblaze) echo "${prefix}versal-psm ${cpu_name}" ;; + xlnx,microblaze) echo "${prefix}microblaze ${core} ${cpu_name}";; + arm,*) echo "${prefix}${cpu/,/ } ${core} ${cpu_name}";; + *) echo "${prefix}${cpu} ${core} ${cpu_name}";; + esac + done <${cpulist} } cortex_a53_linux() { info "cortex-a53 for Linux [ $1 ]" if [ "$1" = "None" ]; then - dtb_file="cortexa53-${machine}-linux.dtb" dts_file="cortexa53-${machine}-linux.dts" - system_conf=conf/cortexa53-${machine}-linux.conf - conf_file=cortexa53-${machine}-linux.conf + system_conf=${dts_file} + conf_file="" else - dtb_file="cortexa53-${machine}-$1-linux.dtb" - dts_file="cortexa53-${machine}-$1-linux.dts" - multiconf="${multiconf} cortexa53-${machine}-linux" - conf_file=multiconfig/cortexa53-${machine}-$1-linux.conf + mc_name=cortexa53-${machine}-$1-linux + dts_file="${mc_name}.dts" + multiconf="${multiconf} ${mc_name}" + conf_file=multiconfig/${mc_name}.conf fi - # Check if it is overlay dts otherwise just create linux dtb + # Check if it is overlay dts otherwise just create linux dts ( - cd dtb || error "Unable to cd to dtb dir" - if [ "${overlay_dtb}" = "true" ]; then + cd dts || error "Unable to cd to dts dir" + if [ "${overlay_dts}" = "true" ]; then if [ "${external_fpga}" = "true" ]; then - LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dtb}" -- xlnx_overlay_dt ${machine} full \ + LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" -- xlnx_overlay_dt ${machine} full \ || error "lopper failed" else - LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} "${system_dtb}" -- xlnx_overlay_dt ${machine} partial \ + LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} "${system_dts}" -- xlnx_overlay_dt ${machine} partial \ || error "lopper failed" fi dtc -q -O dtb -o pl.dtbo -b 0 -@ pl.dtsi || error "dtc failed" @@ -146,42 +214,27 @@ cortex_a53_linux() { -i "${domain_file}" -i "${lops_dir}/lop-a53-imux.dts" \ -i "${lops_dir}/lop-domain-linux-a53.dts" \ -i "${lops_dir}/lop-domain-linux-a53-prune.dts" \ - "${system_dtb}" "${dtb_file}" \ - || error "lopper failed" - LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' \ - -i "${domain_file}" -i "${lops_dir}/lop-a53-imux.dts" \ - -i "${lops_dir}/lop-domain-linux-a53.dts" \ - -i "${lops_dir}/lop-domain-linux-a53-prune.dts" \ - "${system_dtb}" "${dts_file}" \ + "${system_dts}" "${dts_file}" \ || error "lopper failed" else LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -i "${lops_dir}/lop-a53-imux.dts" \ -i "${lops_dir}/lop-domain-linux-a53.dts" \ -i "${lops_dir}/lop-domain-linux-a53-prune.dts" \ - "${system_dtb}" "${dtb_file}" \ - || error "lopper failed" - LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -i "${lops_dir}/lop-a53-imux.dts" \ - -i "${lops_dir}/lop-domain-linux-a53.dts" \ - -i "${lops_dir}/lop-domain-linux-a53-prune.dts" \ - "${system_dtb}" "${dts_file}" \ + "${system_dts}" "${dts_file}" \ || error "lopper failed" fi - rm -f pl.dtsi lop-a53-imux.dts.dtb lop-domain-linux-a53.dts.dtb + rm -f pl.dtsi lop-a53-imux.dts.dtb lop-domain-linux-a53.dts.dtb lop-domain-linux-a53-prune.dts.dtb ) + if [ -z "${conf_file}" ]; then + return $? + fi + + ## Generate a multiconfig cat <"${conf_file}" -CONFIG_DTFILE = "\${TOPDIR}/conf/dtb/${dtb_file}" -CONFIG_DTFILE[vardepsexclude] += "TOPDIR" +CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_file}" -MACHINE = "${machine}-generic" -# We don't want the kernel to build us a device-tree -KERNEL_DEVICETREE:${machine}-generic = "" -# We need u-boot to use the one we passed in -DEVICE_TREE_NAME:pn-u-boot-xlnx-scr = "\${@os.path.basename(d.getVar('CONFIG_DTFILE'))}" -# Update bootbin to use proper device tree -BIF_PARTITION_IMAGE[device-tree] = "\${RECIPE_SYSROOT}/boot/devicetree/\${@os.path.basename(d.getVar('CONFIG_DTFILE'))}" -# Remap boot files to ensure the right device tree is listed first -IMAGE_BOOT_FILES = "devicetree/\${@os.path.basename(d.getVar('CONFIG_DTFILE'))} \${@get_default_image_boot_files(d)}" +TMPDIR = "\${BASE_TMPDIR}/tmp-${mc_name}" EOF } @@ -191,7 +244,7 @@ cortex_a53_baremetal() { [ ${a53_fsbl_done} = 1 ] && return info "cortex-a53 FSBL baremetal configuration" else - info "cortex-a53 for baremetal [ $1 ]" + info "cortex-a53 baremetal configuration for core $2 [ $1 ]" fi suffix=""; lto="-nolto" @@ -199,44 +252,47 @@ cortex_a53_baremetal() { suffix="-$1"; lto="" fi - dtb_file="cortexa53-${machine}${suffix}-baremetal.dtb" - multiconf="${multiconf} cortexa53-${machine}${suffix}-baremetal" - conf_file="multiconfig/cortexa53-${machine}${suffix}-baremetal.conf" - libxil="multiconfig/includes/cortexa53-${machine}${suffix}-libxil.conf" - distro="multiconfig/includes/cortexa53-${machine}${suffix}-distro.conf" + mc_name="cortexa53-$2-${machine}${suffix}-baremetal" + dts_file="${mc_name}.dts" + multiconf="${multiconf} ${mc_name}" + conf_file="multiconfig/${mc_name}.conf" + libxil="machine/include/${mach_conf}/${mc_name}-libxil.conf" + features="machine/include/${mach_conf}/${mc_name}-features.conf" yocto_distro="xilinx-standalone${lto}" if [ "$1" = "fsbl" ]; then - fsbl_mcdepends="mc::${dtb_file%%.dtb}:fsbl-firmware:do_deploy" - fsbl_deploy_dir="\${BASE_TMPDIR}/tmp-${dtb_file%%.dtb}/deploy/images/\${MACHINE}" + fsbl_mcdepends="mc::${mc_name}:fsbl-firmware:do_deploy" + fsbl_deploy_dir="\${BASE_TMPDIR}/tmp-${mc_name}/deploy/images/\${MACHINE}" + multiconf_min="${multiconf_min} ${mc_name}" a53_fsbl_done=1 fi # Build device tree ( - cd dtb || error "Unable to cd to dtb dir" + cd dts || error "Unable to cd to dts dir" if [ -n "${domain_file}" ]; then LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' \ - -i "${domain_file}" -i "${lops_dir}/lop-a53-imux.dts" "${system_dtb}" "${dtb_file}" \ + -i "${domain_file}" -i "${lops_dir}/lop-a53-imux.dts" "${system_dts}" "${dts_file}" \ || error "lopper failed" else LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -i "${lops_dir}/lop-a53-imux.dts" \ - "${system_dtb}" "${dtb_file}" || error "lopper failed" + "${system_dts}" "${dts_file}" || error "lopper failed" fi rm -f lop-a53-imux.dts.dtb ) # Build baremetal multiconfig if [ -n "${domain_file}" ]; then - ${lopper} -f --enhanced -x '*.yaml' -i "${domain_file}" "${system_dtb}" \ - -- baremetaldrvlist_xlnx cortexa53-${machine} "${embeddedsw}" \ + LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' -i "${domain_file}" "${system_dts}" \ + -- baremetaldrvlist_xlnx $3 "${embeddedsw}" \ || error "lopper failed" else - ${lopper} -f "${system_dtb}" -- baremetaldrvlist_xlnx cortexa53-${machine} "${embeddedsw}" \ + LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" -- baremetaldrvlist_xlnx $3 "${embeddedsw}" \ || error "lopper failed" fi mv libxil.conf "${libxil}" - mv distro.conf "${distro}" + mv distro.conf "${features}" + sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," if [ "$1" = "fsbl" ]; then if [ ! -e "${psu_init_path}/psu_init.c" ]; then @@ -253,80 +309,66 @@ EOF cat /dev/null >"${conf_file}" fi cat <>"${conf_file}" -CONFIG_DTFILE = "\${TOPDIR}/conf/dtb/${dtb_file}" -CONFIG_DTFILE[vardepsexclude] += "TOPDIR" +CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_file}" -ESW_MACHINE = "cortexa53-${machine}" +ESW_MACHINE = "$3" DEFAULTTUNE = "cortexa53" -TMPDIR = "\${BASE_TMPDIR}/tmp-${dtb_file%%.dtb}" +TMPDIR = "\${BASE_TMPDIR}/tmp-${mc_name}" DISTRO = "${yocto_distro}" - -LIBXIL_CONFIG = "conf/${libxil}" -require conf/${distro} - -SKIP_META_VIRT_SANITY_CHECK = "1" -SKIP_META_SECURITY_SANITY_CHECK = "1" -SKIP_META_TPM_SANITY_CHECK = "1" EOF } cortex_a53_freertos() { - info "cortex-a53 for FreeRTOS [ $1 ]" + info "cortex-a53 FreeRTOS configuration for core $2 [ $1 ]" suffix="" [ "$1" != "None" ] && suffix="-$1" - dtb_file="cortexa53-${machine}${suffix}-freertos.dtb" - multiconf="${multiconf} cortexa53-${machine}${suffix}-freertos" - conf_file="multiconfig/cortexa53-${machine}${suffix}-freertos.conf" - libxil="multiconfig/includes/cortexa53-${machine}${suffix}-libxil.conf" - distro="multiconfig/includes/cortexa53-${machine}${suffix}-distro.conf" + mc_name="cortexa53-$2-${machine}${suffix}-freertos" + dts_file="${mc_name}.dts" + multiconf="${multiconf} ${mc_name}" + conf_file="multiconfig/${mc_name}.conf" + libxil="machine/include/${mach_conf}/${mc_name}-libxil.conf" + features="machine/include/${mach_conf}/${mc_name}-features.conf" # Build device tree ( - cd dtb || error "Unable to cd to dtb dir" + cd dts || error "Unable to cd to dts dir" if [ -n "${domain_file}" ]; then LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' \ - -i "${domain_file}" -i "${lops_dir}/lop-a53-imux.dts" "${system_dtb}" "${dtb_file}" \ + -i "${domain_file}" -i "${lops_dir}/lop-a53-imux.dts" "${system_dts}" "${dts_file}" \ || error "lopper failed" else LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -i "${lops_dir}/lop-a53-imux.dts" \ - "${system_dtb}" "${dtb_file}" || error "lopper failed" + "${system_dts}" "${dts_file}" || error "lopper failed" fi rm -f lop-a53-imux.dts.dtb ) # Build baremetal multiconfig if [ -n "${domain_file}" ]; then - ${lopper} -f --enhanced -x '*.yaml' -i "${domain_file}" "${system_dtb}" \ - -- baremetaldrvlist_xlnx cortexa53-${machine} "${embeddedsw}" || error "lopper failed" + LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' -i "${domain_file}" "${system_dts}" \ + -- baremetaldrvlist_xlnx $3 "${embeddedsw}" || error "lopper failed" else - ${lopper} -f "${system_dtb}" -- baremetaldrvlist_xlnx cortexa53-${machine} "${embeddedsw}" \ + LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" -- baremetaldrvlist_xlnx $3 "${embeddedsw}" \ || error "lopper failed" fi mv libxil.conf "${libxil}" - mv distro.conf "${distro}" + mv distro.conf "${features}" + sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," cat <"${conf_file}" -CONFIG_DTFILE = "\${TOPDIR}/conf/dtb/${dtb_file}" -CONFIG_DTFILE[vardepsexclude] += "TOPDIR" +CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_file}" -ESW_MACHINE = "cortexa53-${machine}" +ESW_MACHINE = "$3" DEFAULTTUNE = "cortexa53" -TMPDIR = "\${BASE_TMPDIR}/tmp-${dtb_file%%.dtb}" +TMPDIR = "\${BASE_TMPDIR}/tmp-${mc_name}" DISTRO = "xilinx-freertos" - -LIBXIL_CONFIG = "conf/${libxil}" -require conf/${distro} - -SKIP_META_VIRT_SANITY_CHECK = "1" -SKIP_META_SECURITY_SANITY_CHECK = "1" -SKIP_META_TPM_SANITY_CHECK = "1" EOF } @@ -336,36 +378,35 @@ cortex_a72_linux() { # Find the first file ending in .pdi full_pdi_path=$(ls ${pdi_path}/*.pdi 2>/dev/null | head -n 1) if [ -z "${full_pdi_path}" ]; then - warn "Warning: Unable to find a pdi file in ${pdi_path}" + error "Unable to find a pdi file in ${pdi_path}, use the -i option to point to the directory containing a .pdi file" full_pdi_path="__PATH TO PDI FILE HERE__" elif [ "${full_pdi_path}" != "$(ls ${pdi_path}/*.pdi 2>/dev/null)" ]; then warn "Warning: multiple PDI files found, using first found $(basename ${full_pdi_path})." fi if [ "$1" = "None" ]; then - dtb_file="cortexa72-${machine}-linux.dtb" dts_file="cortexa72-${machine}-linux.dts" - system_conf=conf/cortexa72-${machine}-linux.conf - conf_file=cortexa72-${machine}-linux.conf + system_conf=${dts_file} + conf_file="" else - dtb_file="cortexa72-${machine}-$1-linux.dtb" - dts_file="cortexa72-${machine}-$1-linux.dts" - multiconf="${multiconf} cortexa72-${machine}-linux" - conf_file=multiconfig/cortexa72-${machine}-$1-linux.conf + mc_name="cortexa72-${machine}-$1-linux" + dts_file="${mc_name}.dts" + multiconf="${multiconf} ${mc_name}" + conf_file=multiconfig/${mc_name}.conf fi ( - cd dtb || error "Unable to cd to dtb dir" - # Check if it is overlay dts otherwise just create linux dtb - if [ "${overlay_dtb}" = "true" ]; then + cd dts || error "Unable to cd to dts dir" + # Check if it is overlay dts otherwise just create linux dts + if [ "${overlay_dts}" = "true" ]; then # As there is no partial support on Versal, As per fpga manager implementatin there is # a flag "external_fpga" which says apply overlay without loading the bit file. if [ "${external_fpga}" = "true" ]; then - LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dtb}" -- xlnx_overlay_dt \ + LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" -- xlnx_overlay_dt \ ${machine} full external_fpga || error "lopper failed" else # If there is no external_fpga flag, then the default is full - LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} "${system_dtb}" -- xlnx_overlay_dt \ + LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} "${system_dts}" -- xlnx_overlay_dt \ ${machine} full || error "lopper failed" fi dtc -q -O dtb -o pl.dtbo -b 0 -@ pl.dtsi || error "dtc failed" @@ -374,156 +415,130 @@ cortex_a72_linux() { -i "${domain_file}" -i "${lops_dir}/lop-a72-imux.dts" \ -i "${lops_dir}/lop-domain-a72.dts" \ -i "${lops_dir}/lop-domain-a72-prune.dts" \ - "${system_dtb}" "${dtb_file}" \ - || error "lopper failed" - LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' \ - -i "${domain_file}" -i "${lops_dir}/lop-a72-imux.dts" \ - -i "${lops_dir}/lop-domain-a72.dts" \ - -i "${lops_dir}/lop-domain-a72-prune.dts" \ - "${system_dtb}" "${dts_file}" \ + "${system_dts}" "${dts_file}" \ || error "lopper failed" else LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -i "${lops_dir}/lop-a72-imux.dts" \ -i "${lops_dir}/lop-domain-a72.dts" \ -i "${lops_dir}/lop-domain-a72-prune.dts" \ - "${system_dtb}" "${dtb_file}" || error "lopper failed" - LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -i "${lops_dir}/lop-a72-imux.dts" \ - -i "${lops_dir}/lop-domain-a72.dts" \ - -i "${lops_dir}/lop-domain-a72-prune.dts" \ - "${system_dtb}" "${dts_file}" || error "lopper failed" + "${system_dts}" "${dts_file}" || error "lopper failed" fi - rm -f pl.dtsi lop-a72-imux.dts.dtb lop-domain-a72.dts.dtb + rm -f pl.dtsi lop-a72-imux.dts.dtb lop-domain-a72.dts.dtb lop-domain-a72-prune.dts.dtb ) + if [ -z "${conf_file}" ]; then + return $? + fi + + ## Generate a multiconfig cat <"${conf_file}" -CONFIG_DTFILE = "\${TOPDIR}/conf/dtb/${dtb_file}" -CONFIG_DTFILE[vardepsexclude] += "TOPDIR" +CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_file}" -MACHINE = "${machine}-generic" -# We don't want the kernel to build us a device-tree -KERNEL_DEVICETREE:${machine}-generic = "" -# We need u-boot to use the one we passed in -DEVICE_TREE_NAME:pn-u-boot-xlnx-scr = "\${@os.path.basename(d.getVar('CONFIG_DTFILE'))}" -# Update bootbin to use proper device tree -BIF_PARTITION_IMAGE[device-tree] = "\${RECIPE_SYSROOT}/boot/devicetree/\${@os.path.basename(d.getVar('CONFIG_DTFILE'))}" -# Remap boot files to ensure the right device tree is listed first -IMAGE_BOOT_FILES = "devicetree/\${@os.path.basename(d.getVar('CONFIG_DTFILE'))} \${@get_default_image_boot_files(d)}" +TMPDIR = "\${BASE_TMPDIR}/tmp-${mc_name}" EOF } cortex_a72_baremetal() { - info "cortex-a72 for baremetal [ $1 ]" + info "cortex-a72 baremetal configuration for core $2 [ $1 ]" suffix="" [ "$1" != "None" ] && suffix="-$1" - dtb_file="cortexa72-${machine}${suffix}-baremetal.dtb" - multiconf="${multiconf} cortexa72-${machine}${suffix}-baremetal" - conf_file="multiconfig/cortexa72-${machine}${suffix}-baremetal.conf" - libxil="multiconfig/includes/cortexa72-${machine}${suffix}-libxil.conf" - distro="multiconfig/includes/cortexa72-${machine}${suffix}-distro.conf" + mc_name="cortexa72-$2-${machine}${suffix}-baremetal" + dts_file="${mc_name}.dts" + multiconf="${multiconf} ${mc_name}" + conf_file="multiconfig/${mc_name}.conf" + libxil="machine/include/${mach_conf}/${mc_name}-libxil.conf" + features="machine/include/${mach_conf}/${mc_name}-features.conf" # Build device tree ( - cd dtb || error "Unable to cd to dtb dir" + cd dts || error "Unable to cd to dts dir" if [ -n "${domain_file}" ]; then LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' \ - -i "${domain_file}" -i "${lops_dir}/lop-a72-imux.dts" "${system_dtb}" "${dtb_file}" \ + -i "${domain_file}" -i "${lops_dir}/lop-a72-imux.dts" "${system_dts}" "${dts_file}" \ || error "lopper failed" else LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -i "${lops_dir}/lop-a72-imux.dts" \ - "${system_dtb}" "${dtb_file}" || error "lopper failed" + "${system_dts}" "${dts_file}" || error "lopper failed" fi rm -f lop-a72-imux.dts.dtb ) # Build baremetal multiconfig if [ -n "${domain_file}" ]; then - ${lopper} -f --enhanced -x '*.yaml' -i "${domain_file}" "${system_dtb}" \ - -- baremetaldrvlist_xlnx cortexa72-${machine} "${embeddedsw}" || error "lopper failed" + LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' -i "${domain_file}" "${system_dts}" \ + -- baremetaldrvlist_xlnx $3 "${embeddedsw}" || error "lopper failed" else - ${lopper} -f "${system_dtb}" -- baremetaldrvlist_xlnx cortexa72-${machine} "${embeddedsw}" \ + LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" -- baremetaldrvlist_xlnx $3 "${embeddedsw}" \ || error "lopper failed" fi mv libxil.conf "${libxil}" - mv distro.conf "${distro}" + mv distro.conf "${features}" + sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," cat <"${conf_file}" -CONFIG_DTFILE = "\${TOPDIR}/conf/dtb/${dtb_file}" -CONFIG_DTFILE[vardepsexclude] += "TOPDIR" +CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_file}" -ESW_MACHINE = "cortexa72-${machine}" +ESW_MACHINE = "$3" DEFAULTTUNE = "cortexa72" -TMPDIR = "\${BASE_TMPDIR}/tmp-${dtb_file%%.dtb}" +TMPDIR = "\${BASE_TMPDIR}/tmp-${mc_name}" DISTRO = "xilinx-standalone-nolto" - -LIBXIL_CONFIG = "conf/${libxil}" -require conf/${distro} - -SKIP_META_VIRT_SANITY_CHECK = "1" -SKIP_META_SECURITY_SANITY_CHECK = "1" -SKIP_META_TPM_SANITY_CHECK = "1" EOF } cortex_a72_freertos() { - info "cortex-a72 for FreeRTOS [ $1 ]" + info "cortex-a72 FreeRTOS configuration for core $2 [ $1 ]" suffix="" [ "$1" != "None" ] && suffix="-$1" - dtb_file="cortexa72-${machine}${suffix}-freertos.dtb" - multiconf="${multiconf} cortexa72-${machine}${suffix}-freertos" - conf_file="multiconfig/cortexa72-${machine}${suffix}-freertos.conf" - libxil="multiconfig/includes/cortexa72-${machine}${suffix}-libxil.conf" - distro="multiconfig/includes/cortexa72-${machine}${suffix}-distro.conf" + mc_name="cortexa72-$2-${machine}${suffix}-freertos" + dts_file="${mc_name}.dts" + multiconf="${multiconf} ${mc_name}" + conf_file="multiconfig/${mc_name}.conf" + libxil="machine/include/${mach_conf}/${mc_name}-libxil.conf" + features="machine/include/${mach_conf}/${mc_name}-features.conf" # Build device tree ( - cd dtb || error "Unable to cd to dtb dir" + cd dts || error "Unable to cd to dts dir" if [ -n "${domain_file}" ]; then LOPPER_DTC_FLAGS="-b 0 -@" lopper -f --enhanced -x '*.yaml' \ - -i "${domain_file}" -i "${lops_dir}/lop-a72-imux.dts" "${system_dtb}" "${dtb_file}" \ + -i "${domain_file}" -i "${lops_dir}/lop-a72-imux.dts" "${system_dts}" "${dts_file}" \ || error "lopper failed" else LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -i "${lops_dir}/lop-a72-imux.dts" \ - "${system_dtb}" "${dtb_file}" || error "lopper failed" + "${system_dts}" "${dts_file}" || error "lopper failed" fi rm -f lop-a72-imux.dts.dtb ) # Build baremetal multiconfig if [ -n "${domain_file}" ]; then - ${lopper} -f --enhanced -x '*.yaml' -i "${domain_file}" "${system_dtb}" \ - -- baremetaldrvlist_xlnx cortexa72-${machine} "${embeddedsw}" || error "lopper failed" + LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' -i "${domain_file}" "${system_dts}" \ + -- baremetaldrvlist_xlnx $3 "${embeddedsw}" || error "lopper failed" else - ${lopper} -f "${system_dtb}" -- baremetaldrvlist_xlnx cortexa72-${machine} "${embeddedsw}" \ + LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" -- baremetaldrvlist_xlnx $3 "${embeddedsw}" \ || error "lopper failed" fi mv libxil.conf "${libxil}" - mv distro.conf "${distro}" + mv distro.conf "${features}" + sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," cat <"${conf_file}" -CONFIG_DTFILE = "\${TOPDIR}/conf/dtb/${dtb_file}" -CONFIG_DTFILE[vardepsexclude] += "TOPDIR" +CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_file}" -ESW_MACHINE = "cortexa72-${machine}" +ESW_MACHINE = "$3" DEFAULTTUNE = "cortexa72" -TMPDIR = "\${BASE_TMPDIR}/tmp-${dtb_file%%.dtb}" +TMPDIR = "\${BASE_TMPDIR}/tmp-${mc_name}" DISTRO = "xilinx-freertos" - -LIBXIL_CONFIG = "conf/${libxil}" -require conf/${distro} - -SKIP_META_VIRT_SANITY_CHECK = "1" -SKIP_META_SECURITY_SANITY_CHECK = "1" -SKIP_META_TPM_SANITY_CHECK = "1" EOF } @@ -533,7 +548,7 @@ cortex_r5_baremetal() { [ ${r5_fsbl_done} = 1 ] && return info "cortex-r5 FSBL baremetal configuration" else - info "cortex-r5 for baremetal [ $1 ]" + info "cortex-r5 baremetal configuration for core $2 [ $1 ]" fi suffix=""; lto="-nolto" @@ -541,44 +556,46 @@ cortex_r5_baremetal() { suffix="-$1"; lto="" fi - dtb_file="cortexr5-${machine}${suffix}-baremetal.dtb" - multiconf="${multiconf} cortexr5-${machine}${suffix}-baremetal" - conf_file="multiconfig/cortexr5-${machine}${suffix}-baremetal.conf" - libxil="multiconfig/includes/cortexr5-${machine}${suffix}-libxil.conf" - distro="multiconfig/includes/cortexr5-${machine}${suffix}-distro.conf" + mc_name="cortexr5-$2-${machine}${suffix}-baremetal" + dts_file="${mc_name}.dts" + multiconf="${multiconf} ${mc_name}" + conf_file="multiconfig/${mc_name}.conf" + libxil="machine/include/${mach_conf}/${mc_name}-libxil.conf" + features="machine/include/${mach_conf}/${mc_name}-features.conf" yocto_distro="xilinx-standalone${lto}" if [ "$1" = "fsbl" ]; then - r5fsbl_mcdepends="mc::${dtb_file%%.dtb}:fsbl-firmware:do_deploy" - r5fsbl_deploy_dir="\${BASE_TMPDIR}/tmp-${dtb_file%%.dtb}/deploy/images/\${MACHINE}" + r5fsbl_mcdepends="mc::${mc_name}:fsbl-firmware:do_deploy" + r5fsbl_deploy_dir="\${BASE_TMPDIR}/tmp-${mc_name}/deploy/images/\${MACHINE}" r5_fsbl_done=1 fi # Build device tree ( - cd dtb || error "Unable to cd to dtb dir" + cd dts || error "Unable to cd to dts dir" if [ -n "$domain_file" ]; then LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' \ - -i "${domain_file}" -i "${lops_dir}/lop-r5-imux.dts" "${system_dtb}" "${dtb_file}" \ + -i "${domain_file}" -i "${lops_dir}/lop-r5-imux.dts" "${system_dts}" "${dts_file}" \ || error "lopper failed" else LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -i "${lops_dir}/lop-r5-imux.dts" \ - "${system_dtb}" "${dtb_file}" || error "lopper failed" + "${system_dts}" "${dts_file}" || error "lopper failed" fi rm -f lop-r5-imux.dts.dtb ) # Build baremetal multiconfig if [ -n "${domain_file}" ]; then - ${lopper} -f --enhanced -x '*.yaml' -i "${domain_file}" "${system_dtb}" \ - -- baremetaldrvlist_xlnx cortexr5-${machine} "${embeddedsw}" || error "lopper failed" + LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' -i "${domain_file}" "${system_dts}" \ + -- baremetaldrvlist_xlnx $3 "${embeddedsw}" || error "lopper failed" else - ${lopper} -f "${system_dtb}" -- baremetaldrvlist_xlnx cortexr5-${machine} "${embeddedsw}" \ + LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" -- baremetaldrvlist_xlnx $3 "${embeddedsw}" \ || error "lopper failed" fi mv libxil.conf "${libxil}" - mv distro.conf "${distro}" + mv distro.conf "${features}" + sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," if [ "$1" = "fsbl" ]; then if [ ! -e "${psu_init_path}/psu_init.c" ]; then @@ -595,80 +612,66 @@ EOF cat /dev/null >"${conf_file}" fi cat <>"${conf_file}" -CONFIG_DTFILE = "\${TOPDIR}/conf/dtb/${dtb_file}" -CONFIG_DTFILE[vardepsexclude] += "TOPDIR" +CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_file}" -ESW_MACHINE = "cortexr5-${machine}" +ESW_MACHINE = "$3" DEFAULTTUNE = "cortexr5" -TMPDIR = "\${BASE_TMPDIR}/tmp-${dtb_file%%.dtb}" +TMPDIR = "\${BASE_TMPDIR}/tmp-${mc_name}" DISTRO = "$yocto_distro" - -LIBXIL_CONFIG = "conf/${libxil}" -require conf/${distro} - -SKIP_META_VIRT_SANITY_CHECK = "1" -SKIP_META_SECURITY_SANITY_CHECK = "1" -SKIP_META_TPM_SANITY_CHECK = "1" EOF } cortex_r5_freertos() { - info "cortex-r5 for FreeRTOS [ $1 ]" + info "cortex-r5 FreeRTOS configuration for core $2 [ $1 ]" suffix="" [ "$1" != "None" ] && suffix="-$1" - dtb_file="cortexr5-${machine}${suffix}-freertos.dtb" - multiconf="${multiconf} cortexr5-${machine}${suffix}-freertos" - conf_file="multiconfig/cortexr5-${machine}${suffix}-freertos.conf" - libxil="multiconfig/includes/cortexr5-${machine}${suffix}-libxil.conf" - distro="multiconfig/includes/cortexr5-${machine}${suffix}-distro.conf" + mc_name="cortexr5-$2-${machine}${suffix}-freertos" + dts_file="${mc_name}.dts" + multiconf="${multiconf} ${mc_name}" + conf_file="multiconfig/${mc_name}.conf" + libxil="machine/include/${mach_conf}/${mc_name}-libxil.conf" + features="machine/include/${mach_conf}/${mc_name}-features.conf" # Build device tree ( - cd dtb || error "Unable to cd to dtb dir" + cd dts || error "Unable to cd to dts dir" if [ -n "$domain_file" ]; then LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' \ - -i "${domain_file}" -i "${lops_dir}/lop-r5-imux.dts" "${system_dtb}" "${dtb_file}" \ + -i "${domain_file}" -i "${lops_dir}/lop-r5-imux.dts" "${system_dts}" "${dts_file}" \ || error "lopper failed" else LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -i "${lops_dir}/lop-r5-imux.dts" \ - "${system_dtb}" "${dtb_file}" || error "lopper failed" + "${system_dts}" "${dts_file}" || error "lopper failed" fi rm -f lop-r5-imux.dts.dtb ) # Build baremetal multiconfig if [ -n "${domain_file}" ]; then - ${lopper} -f --enhanced -x '*.yaml' -i "${domain_file}" "${system_dtb}" \ - -- baremetaldrvlist_xlnx cortexr5-${machine} "${embeddedsw}" || error "lopper failed" + LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' -i "${domain_file}" "${system_dts}" \ + -- baremetaldrvlist_xlnx $3 "${embeddedsw}" || error "lopper failed" else - ${lopper} -f "${system_dtb}" -- baremetaldrvlist_xlnx cortexr5-${machine} "${embeddedsw}" \ + LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" -- baremetaldrvlist_xlnx $3 "${embeddedsw}" \ || error "lopper failed" fi mv libxil.conf "${libxil}" - mv distro.conf "${distro}" + mv distro.conf "${features}" + sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," cat <"${conf_file}" -CONFIG_DTFILE = "\${TOPDIR}/conf/dtb/${dtb_file}" -CONFIG_DTFILE[vardepsexclude] += "TOPDIR" +CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_file}" -ESW_MACHINE = "cortexr5-${machine}" +ESW_MACHINE = "$3" DEFAULTTUNE = "cortexr5" -TMPDIR = "\${BASE_TMPDIR}/tmp-${dtb_file%%.dtb}" +TMPDIR = "\${BASE_TMPDIR}/tmp-${mc_name}" DISTRO = "xilinx-freertos" - -LIBXIL_CONFIG = "conf/${libxil}" -require conf/${distro} - -SKIP_META_VIRT_SANITY_CHECK = "1" -SKIP_META_SECURITY_SANITY_CHECK = "1" -SKIP_META_TPM_SANITY_CHECK = "1" EOF } @@ -679,12 +682,15 @@ process_microblaze() { info "Generating microblaze processor tunes" + mkdir -p machine/include/${mach_conf} ( - cd dtb || error "Unable to cd to dtb dir" - ${lopper} -f --enhanced -i "${lops_dir}/lop-microblaze-yocto.dts" "${system_dtb}" \ + cd dts || error "Unable to cd to dts dir" + LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -i "${lops_dir}/lop-microblaze-yocto.dts" "${system_dts}" \ || error "lopper failed" rm -f lop-microblaze-yocto.dts.dtb - ) >microblaze.conf + ) >machine/include/${mach_conf}/microblaze.inc + + echo "require conf/machine/include/xilinx-microblaze.inc" >> machine/include/${mach_conf}/microblaze.inc microblaze_done=1 } @@ -695,55 +701,48 @@ pmu-microblaze() { process_microblaze - dtb_file="microblaze-pmu.dtb" - multiconf="${multiconf} microblaze-pmu" - conf_file="multiconfig/microblaze-pmu.conf" - libxil="multiconfig/includes/microblaze-pmu-libxil.conf" - distro="multiconfig/includes/microblaze-pmu-distro.conf" + mc_name="microblaze-0-pmu" + dts_file="${mc_name}.dts" + multiconf="${multiconf} ${mc_name}" + multiconf_min="${multiconf_min} ${mc_name}" + conf_file="multiconfig/${mc_name}.conf" + libxil="machine/include/${mach_conf}/${mc_name}-libxil.conf" + features="machine/include/${mach_conf}/${mc_name}-features.conf" - pmu_mcdepends="mc::${dtb_file%%.dtb}:pmu-firmware:do_deploy" - pmu_firmware_deploy_dir="\${BASE_TMPDIR}/tmp-${dtb_file%%.dtb}/deploy/images/\${MACHINE}" + pmu_mcdepends="mc::${mc_name}:pmu-firmware:do_deploy" + pmu_firmware_deploy_dir="\${BASE_TMPDIR}/tmp-${mc_name}/deploy/images/\${MACHINE}" # Build device tree ( - cd dtb || error "Unable to cd to dtb dir" - LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dtb}" "${dtb_file}" || error "lopper failed" + cd dts || error "Unable to cd to dts dir" + LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" "${dts_file}" || error "lopper failed" ) # Build baremetal multiconfig if [ -n "${domain_file}" ]; then - ${lopper} -f --enhanced -x '*.yaml' -i "${domain_file}" "${system_dtb}" \ - -- baremetaldrvlist_xlnx microblaze-pmu "${embeddedsw}" || error "lopper failed" + LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' -i "${domain_file}" "${system_dts}" \ + -- baremetaldrvlist_xlnx $1 "${embeddedsw}" || error "lopper failed" else - ${lopper} -f "${system_dtb}" -- baremetaldrvlist_xlnx microblaze-pmu "${embeddedsw}" \ + LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" -- baremetaldrvlist_xlnx $1 "${embeddedsw}" \ || error "lopper failed" fi mv libxil.conf "${libxil}" - mv distro.conf "${distro}" + mv distro.conf "${features}" + sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," cat <"${conf_file}" -CONFIG_DTFILE = "\${TOPDIR}/conf/dtb/${dtb_file}" -CONFIG_DTFILE[vardepsexclude] += "TOPDIR" +CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_file}" -ESW_MACHINE = "microblaze-pmu" +ESW_MACHINE = "$1" -require conf/microblaze.conf -DEFAULTTUNE = "microblaze" -TUNE_FEATURES:tune-microblaze:forcevariable = "\${TUNE_FEATURES:tune-pmu-microblaze}" +DEFAULTTUNE = "microblaze-pmu" TARGET_CFLAGS += "-DPSU_PMU=1U" -TMPDIR = "\${BASE_TMPDIR}/tmp-${dtb_file%%.dtb}" +TMPDIR = "\${BASE_TMPDIR}/tmp-${mc_name}" DISTRO = "xilinx-standalone" - -LIBXIL_CONFIG = "conf/${libxil}" -require conf/${distro} - -SKIP_META_VIRT_SANITY_CHECK = "1" -SKIP_META_SECURITY_SANITY_CHECK = "1" -SKIP_META_TPM_SANITY_CHECK = "1" EOF } @@ -753,55 +752,48 @@ pmc-microblaze() { process_microblaze - dtb_file="microblaze-pmc.dtb" - multiconf="${multiconf} microblaze-pmc" - conf_file="multiconfig/microblaze-pmc.conf" - libxil="multiconfig/includes/microblaze-pmc-libxil.conf" - distro="multiconfig/includes/microblaze-pmc-distro.conf" + mc_name="microblaze-0-pmc" + dts_file="${mc_name}.dts" + multiconf="${multiconf} ${mc_name}" + multiconf_min="${multiconf_min} ${mc_name}" + conf_file="multiconfig/${mc_name}.conf" + libxil="machine/include/${mach_conf}/${mc_name}-libxil.conf" + features="machine/include/${mach_conf}/${mc_name}-features.conf" - plm_mcdepends="mc::${dtb_file%%.dtb}:plm-firmware:do_deploy" - plm_deploy_dir="\${BASE_TMPDIR}/tmp-${dtb_file%%.dtb}/deploy/images/\${MACHINE}" + plm_mcdepends="mc::${mc_name}:plm-firmware:do_deploy" + plm_deploy_dir="\${BASE_TMPDIR}/tmp-${mc_name}/deploy/images/\${MACHINE}" # Build device tree ( - cd dtb || error "Unable to cd to dtb dir" - LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dtb}" "${dtb_file}" || error "lopper failed" + cd dts || error "Unable to cd to dts dir" + LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" "${dts_file}" || error "lopper failed" ) # Build baremetal multiconfig if [ -n "${domain_file}" ]; then - ${lopper} -f --enhanced -x '*.yaml' -i "${domain_file}" "${system_dtb}" \ - -- baremetaldrvlist_xlnx microblaze-plm "${embeddedsw}" || error "lopper failed" + LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' -i "${domain_file}" "${system_dts}" \ + -- baremetaldrvlist_xlnx $1 "${embeddedsw}" || error "lopper failed" else - ${lopper} -f "${system_dtb}" -- baremetaldrvlist_xlnx microblaze-plm "${embeddedsw}" \ + LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" -- baremetaldrvlist_xlnx $1 "${embeddedsw}" \ || error "lopper failed" fi mv libxil.conf "${libxil}" - mv distro.conf "${distro}" + mv distro.conf "${features}" + sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," cat <"${conf_file}" -CONFIG_DTFILE = "\${TOPDIR}/conf/dtb/${dtb_file}" -CONFIG_DTFILE[vardepsexclude] += "TOPDIR" +CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_file}" -ESW_MACHINE = "microblaze-plm" +ESW_MACHINE = "$1" -require conf/microblaze.conf -DEFAULTTUNE = "microblaze" -TUNE_FEATURES:tune-microblaze:forcevariable = "\${TUNE_FEATURES:tune-pmc-microblaze}" +DEFAULTTUNE = "microblaze-pmc" TARGET_CFLAGS += "-DVERSAL_PLM=1" -TMPDIR = "\${BASE_TMPDIR}/tmp-${dtb_file%%.dtb}" +TMPDIR = "\${BASE_TMPDIR}/tmp-${mc_name}" DISTRO = "xilinx-standalone" - -LIBXIL_CONFIG = "conf/${libxil}" -require conf/${distro} - -SKIP_META_VIRT_SANITY_CHECK = "1" -SKIP_META_SECURITY_SANITY_CHECK = "1" -SKIP_META_TPM_SANITY_CHECK = "1" EOF } @@ -811,63 +803,194 @@ psm-microblaze() { process_microblaze - dtb_file="microblaze-psm.dtb" - multiconf="${multiconf} microblaze-psm" - conf_file="multiconfig/microblaze-psm.conf" - libxil="multiconfig/includes/microblaze-psm-libxil.conf" - distro="multiconfig/includes/microblaze-psm-distro.conf" + mc_name="microblaze-0-psm" + dts_file="${mc_name}.dts" + multiconf="${multiconf} ${mc_name}" + multiconf_min="${multiconf_min} ${mc_name}" + conf_file="multiconfig/${mc_name}.conf" + libxil="machine/include/${mach_conf}/${mc_name}-libxil.conf" + features="machine/include/${mach_conf}/${mc_name}-features.conf" - psm_mcdepends="mc::${dtb_file%%.dtb}:psm-firmware:do_deploy" - psm_firmware_deploy_dir="\${BASE_TMPDIR}/tmp-${dtb_file%%.dtb}/deploy/images/\${MACHINE}" + psm_mcdepends="mc::${mc_name}:psm-firmware:do_deploy" + psm_firmware_deploy_dir="\${BASE_TMPDIR}/tmp-${mc_name}/deploy/images/\${MACHINE}" # Build device tree ( - cd dtb || error "Unable to cd to dtb dir" - LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dtb}" "${dtb_file}" || error "lopper failed" + cd dts || error "Unable to cd to dts dir" + LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" "${dts_file}" || error "lopper failed" ) # Build baremetal multiconfig if [ -n "${domain_file}" ]; then - ${lopper} -f --enhanced -x '*.yaml' -i "${domain_file}" "${system_dtb}" \ - -- baremetaldrvlist_xlnx microblaze-psm "${embeddedsw}" || error "lopper failed" + LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' -i "${domain_file}" "${system_dts}" \ + -- baremetaldrvlist_xlnx $1 "${embeddedsw}" || error "lopper failed" else - ${lopper} -f "${system_dtb}" -- baremetaldrvlist_xlnx microblaze-psm "${embeddedsw}" \ + LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" -- baremetaldrvlist_xlnx $1 "${embeddedsw}" \ || error "lopper failed" fi mv libxil.conf "${libxil}" - mv distro.conf "${distro}" + mv distro.conf "${features}" + sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," cat <"${conf_file}" -CONFIG_DTFILE = "\${TOPDIR}/conf/dtb/${dtb_file}" -CONFIG_DTFILE[vardepsexclude] += "TOPDIR" +CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_file}" -ESW_MACHINE = "microblaze-psm" +ESW_MACHINE = "$1" -require conf/microblaze.conf -DEFAULTTUNE = "microblaze" -TUNE_FEATURES:tune-microblaze:forcevariable = "\${TUNE_FEATURES:tune-psm-microblaze}" +DEFAULTTUNE = "microblaze-psm" TARGET_CFLAGS += "-DVERSAL_psm=1" -TMPDIR = "\${BASE_TMPDIR}/tmp-${dtb_file%%.dtb}" +TMPDIR = "\${BASE_TMPDIR}/tmp-${mc_name}" DISTRO = "xilinx-standalone" +EOF +} -LIBXIL_CONFIG = "conf/${libxil}" -require conf/${distro} +generate_machine() { + info "Generating machine conf file" + conf_file="machine/${mach_conf}.conf" + + # Machine include file + if [ -z ${incmachine} ]; then + if [ -n ${soc_variant} ]; then + incmachine="${machine}-${soc_variant}-generic.conf" + else + incmachine="${machine}-generic.conf" + fi + fi + + mkdir -p machine + # Generate header + cat <"${conf_file}" +#@TYPE: Machine +#@NAME: ${mach_conf} +#@DESCRIPTION: ${model} + +#### Preamble +MACHINEOVERRIDES =. "\${@['', '${mach_conf}:']['${mach_conf}' != '\${MACHINE}']}" +#### Regular settings follow -SKIP_META_VIRT_SANITY_CHECK = "1" -SKIP_META_SECURITY_SANITY_CHECK = "1" -SKIP_META_TPM_SANITY_CHECK = "1" EOF -} -parse_cpus() { - info "Generating configuration..." + if [ "${machine}" == "zynqmp" ]; then + cat <>"${conf_file}" +TUNEFILE[microblaze-pmu] = "conf/machine/include/${mach_conf}/microblaze.inc" +EOF + elif [ "${machine}" == "versal" ]; then + cat <>"${conf_file}" +TUNEFILE[microblaze-pmc] = "conf/machine/include/${mach_conf}/microblaze.inc" +TUNEFILE[microblaze-psm] = "conf/machine/include/${mach_conf}/microblaze.inc" +EOF + fi + + sysdt_path=$(dirname ${system_dts}) + sysdt_base=$(basename ${system_dts}) + cat <>"${conf_file}" + +# Set the default (linux) domain device tree +CONFIG_DTFILE ?= "\${TOPDIR}/conf/dts/${system_conf}" +CONFIG_DTFILE[vardepsexclude] += "TOPDIR" + +require conf/machine/${incmachine} + +# System Device Tree does not use HDF_MACHINE +HDF_MACHINE = "" + +# Set the system device trees +SYSTEM_DTFILE_DIR = "${sysdt_path}" +SYSTEM_DTFILE = "\${SYSTEM_DTFILE_DIR}/${sysdt_base}" +SYSTEM_DTFILE[vardepsexclude] += "SYSTEM_DTFILE_DIR" + +# Load the dynamic machine features +include conf/machine/include/${mach_conf}/\${BB_CURRENT_MC}-features.conf +LIBXIL_CONFIG = "conf/machine/include/${mach_conf}/\${BB_CURRENT_MC}-libxil.conf" + +EOF + + if [ -n "${fsbl_mcdepends}" ]; then + cat <>"${conf_file}" +# First Stage Boot Loader +FSBL_DEPENDS = "" +FSBL_MCDEPENDS = "${fsbl_mcdepends}" +FSBL_DEPLOY_DIR = "${fsbl_deploy_dir}" + +EOF + fi + if [ -n "${r5fsbl_mcdepends}" ]; then + cat <>"${conf_file}" +# Cortex-R5 First Stage Boot Loader +R5FSBL_DEPENDS = "" +R5FSBL_MCDEPENDS = "${r5fsbl_mcdepends}" +R5FSBL_DEPLOY_DIR = "${r5fsbl_deploy_dir}" + +EOF + fi + if [ -n "${pmu_mcdepends}" ]; then + cat <>"${conf_file}" +# PMU Firware +PMU_DEPENDS = "" +PMU_MCDEPENDS = "${pmu_mcdepends}" +PMU_FIRMWARE_DEPLOY_DIR = "${pmu_firmware_deploy_dir}" + +EOF + fi + if [ -n "${plm_mcdepends}" ]; then + cat <>"${conf_file}" +# Platform Loader and Manager +PLM_DEPENDS = "" +PLM_MCDEPENDS = "${plm_mcdepends}" +PLM_DEPLOY_DIR = "${plm_deploy_dir}" + +EOF + fi + if [ -n "${psm_mcdepends}" ]; then + cat <>"${conf_file}" +# PSM Firmware +PSM_DEPENDS = "" +PSM_MCDEPENDS = "${psm_mcdepends}" +PSM_FIRMWARE_DEPLOY_DIR = "${psm_firmware_deploy_dir}" + +EOF + fi + + if [ -n "${full_pdi_path}" ]; then + pdi_path_dir=$(dirname ${full_pdi_path}) + pdi_path_base=$(basename ${full_pdi_path}) + cat <>"${conf_file}" +# Versal PDI +PDI_PATH_DIR = "${pdi_path_dir}" +PDI_PATH = "\${PDI_PATH_DIR}/${pdi_path_base}" +PDI_PATH[vardepsexclude] += "PDI_PATH_DIR" + +EOF + fi + + cat <>"${conf_file}" +# Enable the correct version of the firmware components +PREFERRED_VERSION_fsbl-firmware = "2023.1_sdt_experimental%" +PREFERRED_VERSION_pmu-firmware = "2023.1_sdt_experimental%" +PREFERRED_VERSION_plm-firmware = "2023.1_sdt_experimental%" +PREFERRED_VERSION_psm-firmware = "2023.1_sdt_experimental%" + +# Exclude BASE_TMPDIR from hash calculations +BB_HASHEXCLUDE_COMMON:append = " BASE_TMPDIR" + +# Update bootbin to use proper device tree +BIF_PARTITION_IMAGE[device-tree] = "\${RECIPE_SYSROOT}/boot/devicetree/\${@os.path.basename(d.getVar('CONFIG_DTFILE').replace('.dts', '.dtb'))}" +# Remap boot files to ensure the right device tree is listed first +IMAGE_BOOT_FILES =+ "devicetree/\${@os.path.basename(d.getVar('CONFIG_DTFILE').replace('.dts', '.dtb'))}" - while read -r cpu domain os_hint; do +#### No additional settings should be after the Postamble +#### Postamble +PACKAGE_EXTRA_ARCHS:append = "\${@['', ' ${mach_conf//-/_}']['${mach_conf}' != "\${MACHINE}"]}" +EOF +} +parse_cpus() { + gen_linux_dts="None" + while read -r cpu core domain cpu_name os_hint; do # Skip commented lines and WARNINGs case ${cpu} in \#* | \[WARNING\]:) continue ;; @@ -877,19 +1000,28 @@ parse_cpus() { arm,cortex-a53) # We need a base cortex_a53_baremetal for the FSBL - cortex_a53_baremetal fsbl + if [ "${core}" == 0 ]; then + cortex_a53_baremetal fsbl ${core} ${cpu_name} + fi if [ "${os_hint}" == "None" ]; then - cortex_a53_linux "${domain}" - cortex_a53_baremetal "${domain}" - cortex_a53_freertos "${domain}" + if [ "${gen_linux_dts}" == "None" ]; then + cortex_a53_linux "${domain}" + gen_linux_dts="True" + fi + cortex_a53_baremetal "${domain}" ${core} ${cpu_name} + cortex_a53_freertos "${domain}" ${core} ${cpu_name} else case "${os_hint}" in linux*) - cortex_a53_linux "${domain}" ;; + if [ "${gen_linux_dts}" == "None" ]; then + cortex_a53_linux "${domain}" + gen_linux_dts="True" + fi + ;; baremetal*) - cortex_a53_baremetal "${domain}" ;; + cortex_a53_baremetal "${domain}" ${core} ${cpu_name};; freertos*) - cortex_a53_freertos "${domain}" ;; + cortex_a53_freertos "${domain}" ${core} ${cpu_name};; *) warn "cortex-a53 for unknown OS (${os_hint}), parsing baremetal. ${domain}" cortex_a53_baremetal "${domain}" @@ -899,36 +1031,42 @@ parse_cpus() { arm,cortex-a72) if [ "${os_hint}" == "None" ]; then - cortex_a72_linux "${domain}" - cortex_a72_baremetal "${domain}" - cortex_a72_freertos "${domain}" + if [ "${gen_linux_dts}" == "None" ]; then + cortex_a72_linux "${domain}" + gen_linux_dts="True" + fi + cortex_a72_baremetal "${domain}" ${core} ${cpu_name} + cortex_a72_freertos "${domain}" ${core} ${cpu_name} else case "${os_hint}" in linux*) - cortex_a72_linux "${domain}" ;; + if [ "${gen_linux_dts}" == "None" ]; then + cortex_a72_linux "${domain}" + gen_linux_dts="True" + fi + ;; baremetal*) - cortex_a72_baremetal "${domain}" ;; + cortex_a72_baremetal "${domain}" ${core} ${cpu_name};; freertos*) - cortex_a72_freertos "${domain}" ;; + cortex_a72_freertos "${domain}" ${core} ${cpu_name};; *) warn "cortex-a72 for unknown OS (${os_hint}), parsing baremetal. ${domain}" cortex_a72_baremetal "${domain}" esac fi ;; - arm,cortex-r5) if [ "${os_hint}" == "None" ]; then # We need a base cortex_r5_baremetal for the FSBL for ZynqMP platform - [ "${machine}" = "zynqmp" ] && cortex_r5_baremetal fsbl - cortex_r5_baremetal "${domain}" - cortex_r5_freertos "${domain}" + [ "${machine}" = "zynqmp" ] && cortex_r5_baremetal fsbl ${core} ${cpu_name} + cortex_r5_baremetal "${domain}" ${core} ${cpu_name} + cortex_r5_freertos "${domain}" ${core} ${cpu_name} else case "${os_hint}" in baremetal*) - cortex_r5_baremetal "${domain}" ;; + cortex_r5_baremetal "${domain}" ${core} ${cpu_name};; freertos*) - cortex_r5_freertos "${domain}" ;; + cortex_r5_freertos "${domain}" ${core} ${cpu_name};; *) warn "cortex-r5 for unknown OS (${os_hint}), parsing baremetal. ${domain}" cortex_r5_baremetal "${domain}" @@ -949,14 +1087,13 @@ parse_cpus() { ;; pmu-microblaze) - pmu-microblaze ;; + pmu-microblaze ${cpu_name};; pmc-microblaze) - pmc-microblaze ;; + pmc-microblaze ${cpu_name};; psm-microblaze) - psm-microblaze ;; - + psm-microblaze ${cpu_name};; *) warn "Unknown CPU ${cpu}" @@ -965,45 +1102,45 @@ parse_cpus() { } gen_local_conf() { - echo "# Adjust BASE_TMPDIR if you want to move the tmpdirs elsewhere" >> $1 - echo "BASE_TMPDIR ?= \"\${TOPDIR}\"" >> $1 - [ -n "${system_conf}" ] && echo "require ${system_conf}" >> $1 - echo "SYSTEM_DTFILE = \"${system_dtb}\"" >> $1 - echo "BBMULTICONFIG += \"${multiconf}\"" >> $1 - if [ -n "${fsbl_mcdepends}" ]; then - echo "FSBL_DEPENDS = \"\"" >> $1 - echo "FSBL_MCDEPENDS = \"${fsbl_mcdepends}\"" >> $1 - echo "FSBL_DEPLOY_DIR = \"${fsbl_deploy_dir}\"" >> $1 - fi - if [ -n "${r5fsbl_mcdepends}" ]; then - echo "R5FSBL_DEPENDS = \"\"" >> $1 - echo "R5FSBL_MCDEPENDS = \"${r5fsbl_mcdepends}\"" >> $1 - echo "R5FSBL_DEPLOY_DIR = \"${r5fsbl_deploy_dir}\"" >> $1 - fi - if [ -n "${pmu_mcdepends}" ]; then - echo "PMU_DEPENDS = \"\"" >> $1 - echo "PMU_MCDEPENDS = \"${pmu_mcdepends}\"" >> $1 - echo "PMU_FIRMWARE_DEPLOY_DIR = \"${pmu_firmware_deploy_dir}\"" >> $1 - fi - if [ -n "${plm_mcdepends}" ]; then - echo "PLM_DEPENDS = \"\"" >> $1 - echo "PLM_MCDEPENDS = \"${plm_mcdepends}\"" >> $1 - echo "PLM_DEPLOY_DIR = \"${plm_deploy_dir}\"" >> $1 - fi - if [ -n "${psm_mcdepends}" ]; then - echo "PSM_DEPENDS = \"\"" >> $1 - echo "PSM_MCDEPENDS = \"${psm_mcdepends}\"" >> $1 - echo "PSM_FIRMWARE_DEPLOY_DIR = \"${psm_firmware_deploy_dir}\"" >> $1 - fi - [ "${machine}" = "versal" ] && echo "PDI_PATH = \"${full_pdi_path}\"" >> $1 - echo + cat << EOF >> $1 + +# Avoid errors in some baremetal configs as these layers may be present +# but are not used. Note the following lines are optional and can be +# safetly disabled. +SKIP_META_VIRT_SANITY_CHECK = "1" +SKIP_META_SECURITY_SANITY_CHECK = "1" +SKIP_META_TPM_SANITY_CHECK = "1" + +# Each multiconfig will define it's own TMPDIR, this is the new default based +# on BASE_TMPDIR for the Linux build +TMPDIR = "\${BASE_TMPDIR}/tmp" + +# Use the newly generated MACHINE +MACHINE = "${mach_conf}" + +# All of the TMPDIRs must be in a common parent directory. This is defined +# as BASE_TMPDIR. +# Adjust BASE_TMPDIR if you want to move the tmpdirs elsewhere, such as /tmp +BASE_TMPDIR ?= "\${TOPDIR}" + +# The following is the full set of multiconfigs for this configuration +# A large list can cause a slow parse. +BBMULTICONFIG ?= "${multiconf}" +# Alternatively trim the list to the minimum +#BBMULTICONFIG = "${multiconf_min}" +EOF } gen_petalinux_conf() { cd "${config_dir}" || exit ( - LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} "${system_dtb}" -- petalinuxconfig_xlnx ${petalinux_schema} \ - || error "lopper failed" + if [ "$machine" == "zynqmp" ]; then + LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} "${system_dts}" -- petalinuxconfig_xlnx psu_cortexa53_0 ${petalinux_schema} \ + || error "lopper failed" + else + LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} "${system_dts}" -- petalinuxconfig_xlnx psv_cortexa72_0 ${petalinux_schema} \ + || error "lopper failed" + fi ) } parse_args "$@" @@ -1020,20 +1157,47 @@ multiconf="" cpulist=$(mktemp) priordir=$(pwd) -# Generate CPU list cd "${config_dir}" || exit -mkdir -p dtb multiconfig/includes +mkdir -p dts multiconfig machine/include +# Get mach_conf name and model name ( - cd dtb || error "Unable to cd to dtb dir" - ${lopper} -f --enhanced -i "${lops_dir}/lop-xilinx-id-cpus.dts" "${system_dtb}" \ + cd dts || error "Unable to cd to dts dir" + LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -i "${lops_dir}/lop-machine-name.dts" "${system_dts}" \ + /dev/null > ${cpulist} || error "lopper failed" + rm -f "lop-machine-name.dts.dtb" +) +read local_mach_conf deviceid model < ${cpulist} +if [ -z "${mach_conf}" ]; then + mach_conf=${local_mach_conf} +fi + +# Generate CPU list +( + cd dts || error "Unable to cd to dts dir" + LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -i "${lops_dir}/lop-xilinx-id-cpus.dts" "${system_dts}" \ /dev/null > ${cpulist} || error "lopper failed" rm -f "lop-xilinx-id-cpus.dts.dtb" ) detect_machine - +# Now that we know the machine name, we can create the directory +mkdir -p machine/include/${mach_conf} + +echo "System Configuration:" +echo "MODEL = \"${model}\"" +echo "MACHINE = \"${mach_conf}\"" +echo "DEVICE_ID = \"${deviceid}\"" +echo "SOC_FAMILY = \"${machine}\"" +echo "SOC_VARIANT = \"${soc_variant}\"" +echo "CPUs:" +dump_cpus " = " +echo + +info "Generating configuration..." parse_cpus +generate_machine + cd ${priordir} if [ -z "${localconf}" ]; then echo @@ -1058,4 +1222,4 @@ if [ -n "${petalinux_schema}" ]; then fi # Cleanup our temp file -rm ${cpulist} +rm -rf ${cpulist} ${config_dir}/CMakeLists.txt ${config_dir}/DRVLISTConfig.cmake diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/avbuf_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/avbuf_git.bb index 2ac8954b6..7edd2d9d6 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/avbuf_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/avbuf_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "avbuf" +REQUIRED_MACHINE_FEATURES = "avbuf" inherit esw diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/axicdma-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/axicdma-example_git.bb index 081609dd6..1846b2918 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/axicdma-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/axicdma-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "axicdma" +REQUIRED_MACHINE_FEATURES = "axicdma" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/axicdma/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/axicdma_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/axicdma_git.bb index 3c7e8b72c..47111dc54 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/axicdma_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/axicdma_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "axicdma" +REQUIRED_MACHINE_FEATURES = "axicdma" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/axidma-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/axidma-example_git.bb index db8658a10..68a26f45f 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/axidma-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/axidma-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "axidma" +REQUIRED_MACHINE_FEATURES = "axidma" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/axidma/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/axidma_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/axidma_git.bb index 8b24a67e2..c385d13f0 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/axidma_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/axidma_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "axidma" +REQUIRED_MACHINE_FEATURES = "axidma" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/axiethernet-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/axiethernet-example_git.bb index 8dee5feb0..04c2c1514 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/axiethernet-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/axiethernet-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "axiethernet" +REQUIRED_MACHINE_FEATURES = "axiethernet" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/axiethernet/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/axiethernet_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/axiethernet_git.bb index b230e6adb..0b6358598 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/axiethernet_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/axiethernet_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "axiethernet" +REQUIRED_MACHINE_FEATURES = "axiethernet" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/axipmon-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/axipmon-example_git.bb index 4c949e999..4aa716e70 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/axipmon-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/axipmon-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "axipmon" +REQUIRED_MACHINE_FEATURES = "axipmon" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/axipmon/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/axipmon_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/axipmon_git.bb index 3fa703229..ff2eae912 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/axipmon_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/axipmon_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "axipmon" +REQUIRED_MACHINE_FEATURES = "axipmon" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/axis-switch_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/axis-switch_git.bb index 2f69db451..b34dedb05 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/axis-switch_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/axis-switch_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "axis-switch" +REQUIRED_MACHINE_FEATURES = "axis-switch" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/axivdma-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/axivdma-example_git.bb index 6742356cf..2866c02b1 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/axivdma-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/axivdma-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "axivdma" +REQUIRED_MACHINE_FEATURES = "axivdma" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/axivdma/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/axivdma_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/axivdma_git.bb index 5f22d2120..15268629d 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/axivdma_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/axivdma_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "axivdma" +REQUIRED_MACHINE_FEATURES = "axivdma" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/bram-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/bram-example_git.bb index 6e2c49188..a31454674 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/bram-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/bram-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "bram" +REQUIRED_MACHINE_FEATURES = "bram" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/bram/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/bram_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/bram_git.bb index 400da93e7..3c81c619b 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/bram_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/bram_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "bram" +REQUIRED_MACHINE_FEATURES = "bram" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/can-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/can-example_git.bb index 9e6417ce0..115852fa3 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/can-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/can-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "can" +REQUIRED_MACHINE_FEATURES = "can" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/can/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/can_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/can_git.bb index 070240824..eb7fc473d 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/can_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/can_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "can" +REQUIRED_MACHINE_FEATURES = "can" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/canfd-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/canfd-example_git.bb index c8395f4eb..842765694 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/canfd-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/canfd-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "canfd" +REQUIRED_MACHINE_FEATURES = "canfd" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/canfd/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/canfd_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/canfd_git.bb index 719126e5f..5f2e6ea81 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/canfd_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/canfd_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "canfd" +REQUIRED_MACHINE_FEATURES = "canfd" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/canps-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/canps-example_git.bb index 17ac3d0cf..574dc563d 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/canps-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/canps-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "canps" +REQUIRED_MACHINE_FEATURES = "canps" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/canps/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/canps_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/canps_git.bb index ae88f744e..c9f61cd2c 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/canps_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/canps_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "canps" +REQUIRED_MACHINE_FEATURES = "canps" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/cframe_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/cframe_git.bb index bb4a540f4..6ffdf85dd 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/cframe_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/cframe_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "cframe" +REQUIRED_MACHINE_FEATURES = "cframe" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/cfupmc_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/cfupmc_git.bb index 6b15f41b6..3cb675bc8 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/cfupmc_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/cfupmc_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "cfupmc" +REQUIRED_MACHINE_FEATURES = "cfupmc" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/clk-wiz_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/clk-wiz_git.bb index a1ce7ed0d..ae0453a14 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/clk-wiz_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/clk-wiz_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "clk-wiz" +REQUIRED_MACHINE_FEATURES = "clk-wiz" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/clockps-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/clockps-example_git.bb index 67fb695ec..f9c5bce6d 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/clockps-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/clockps-example_git.bb @@ -2,7 +2,7 @@ inherit esw deploy features_check ESW_COMPONENT_SRC = "XilinxProcessorIPLib/drivers/clockps/examples/" -REQUIRED_DISTRO_FEATURES = "clockps" +REQUIRED_MACHINE_FEATURES = "clockps" DEPENDS += "libxil xiltimer resetps" @@ -12,7 +12,6 @@ do_configure:prepend() { ( cd ${S} lopper ${DTS_FILE} -- baremetallinker_xlnx.py ${ESW_MACHINE} ${S}/${ESW_COMPONENT_SRC} - install -m 0755 memory.ld ${S}/${ESW_COMPONENT_SRC}/ install -m 0755 *.cmake ${S}/${ESW_COMPONENT_SRC}/ ) } diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/clockps_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/clockps_git.bb index 99ec8e851..4bddb2c0b 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/clockps_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/clockps_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "clockps" +REQUIRED_MACHINE_FEATURES = "clockps" inherit esw diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/common_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/common_git.bb index d01a8caca..541ff2253 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/common_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/common_git.bb @@ -1,14 +1,14 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "common" +REQUIRED_MACHINE_FEATURES = "common" inherit esw python3native DEPENDS += "xilstandalone " -PACKAGECONFIG ?= "${@bb.utils.contains("DISTRO_FEATURES", "clockps", "clockps", "", d)} \ - ${@bb.utils.contains("DISTRO_FEATURES", "scugic", "scugic", "", d)} \ - ${@bb.utils.contains("DISTRO_FEATURES", "intc", "intc", "", d)}" +PACKAGECONFIG ?= "${@bb.utils.contains("MACHINE_FEATURES", "clockps", "clockps", "", d)} \ + ${@bb.utils.contains("MACHINE_FEATURES", "scugic", "scugic", "", d)} \ + ${@bb.utils.contains("MACHINE_FEATURES", "intc", "intc", "", d)}" PACKAGECONFIG[clockps] = "${RECIPE_SYSROOT}/usr/lib/libclockps.a,,clockps,," PACKAGECONFIG[scugic] = "${RECIPE_SYSROOT}/usr/lib/libscugic.a,,scugic,," PACKAGECONFIG[intc] = "${RECIPE_SYSROOT}/usr/lib/libintc.a,,intc,," diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/coresightps-dcc_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/coresightps-dcc_git.bb index f1dce225b..9110b51ed 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/coresightps-dcc_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/coresightps-dcc_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "coresightps-dcc" +REQUIRED_MACHINE_FEATURES = "coresightps-dcc" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/csudma-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/csudma-example_git.bb index 3f5c2138c..5706967a2 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/csudma-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/csudma-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "csudma" +REQUIRED_MACHINE_FEATURES = "csudma" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/csudma/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/csudma_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/csudma_git.bb index 002f6d15e..8283ce8d4 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/csudma_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/csudma_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "csudma" +REQUIRED_MACHINE_FEATURES = "csudma" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/ddrcpsu_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/ddrcpsu_git.bb index 91f2679db..4728b6c5a 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/ddrcpsu_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/ddrcpsu_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "ddrcpsu" +REQUIRED_MACHINE_FEATURES = "ddrcpsu" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/devcfg-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/devcfg-example_git.bb index 2b0cd72f0..dd70e09d4 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/devcfg-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/devcfg-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "devcfg" +REQUIRED_MACHINE_FEATURES = "devcfg" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/devcfg/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/devcfg_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/devcfg_git.bb index 69d01ffa7..4b794d229 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/devcfg_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/devcfg_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "devcfg" +REQUIRED_MACHINE_FEATURES = "devcfg" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/dfxasm-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/dfxasm-example_git.bb index d98ba4937..974dd48b4 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/dfxasm-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/dfxasm-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "dfxasm" +REQUIRED_MACHINE_FEATURES = "dfxasm" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/dfxasm/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/dfxasm_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/dfxasm_git.bb index 755545d2f..81f2157be 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/dfxasm_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/dfxasm_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "dfxasm" +REQUIRED_MACHINE_FEATURES = "dfxasm" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/dmaps-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/dmaps-example_git.bb index 77d4ac0cc..40d08e4bd 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/dmaps-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/dmaps-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "dmaps" +REQUIRED_MACHINE_FEATURES = "dmaps" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/dmaps/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/dpdma_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/dpdma_git.bb index 82005fe99..3adb88a6b 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/dpdma_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/dpdma_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "dpdma" +REQUIRED_MACHINE_FEATURES = "dpdma" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/dppsu_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/dppsu_git.bb index 478af8a3e..87cca8845 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/dppsu_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/dppsu_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "dppsu" +REQUIRED_MACHINE_FEATURES = "dppsu" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/emaclite-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/emaclite-example_git.bb index 82a66d708..6ed717fb0 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/emaclite-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/emaclite-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "emaclite" +REQUIRED_MACHINE_FEATURES = "emaclite" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/emaclite/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/emaclite_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/emaclite_git.bb index 2784110a4..9ceb477fc 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/emaclite_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/emaclite_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "emaclite" +REQUIRED_MACHINE_FEATURES = "emaclite" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/emacps-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/emacps-example_git.bb index 93c2ff592..2c57eafe2 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/emacps-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/emacps-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "emacps" +REQUIRED_MACHINE_FEATURES = "emacps" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/emacps/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/emacps_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/emacps_git.bb index 08bb3202c..8ed859845 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/emacps_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/emacps_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "emacps" +REQUIRED_MACHINE_FEATURES = "emacps" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/gpio-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/gpio-example_git.bb index 1446c92c2..3f79cfec1 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/gpio-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/gpio-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "gpio" +REQUIRED_MACHINE_FEATURES = "gpio" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/gpio/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/gpio_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/gpio_git.bb index 5bd6c7f0b..83a746b74 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/gpio_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/gpio_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "gpio" +REQUIRED_MACHINE_FEATURES = "gpio" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/gpiops-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/gpiops-example_git.bb index e7050fc48..cc2e17030 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/gpiops-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/gpiops-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "gpiops" +REQUIRED_MACHINE_FEATURES = "gpiops" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/gpiops/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/gpiops_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/gpiops_git.bb index 55fca7615..4bd63d1e3 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/gpiops_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/gpiops_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "gpiops" +REQUIRED_MACHINE_FEATURES = "gpiops" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/iic-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/iic-example_git.bb index 55627498f..b781b82cd 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/iic-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/iic-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "iic" +REQUIRED_MACHINE_FEATURES = "iic" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/iic/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/iic_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/iic_git.bb index 8474a61bf..7011f90b6 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/iic_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/iic_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "iic" +REQUIRED_MACHINE_FEATURES = "iic" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/iicps-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/iicps-example_git.bb index fec7256b2..e9df1cbdc 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/iicps-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/iicps-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "iicps" +REQUIRED_MACHINE_FEATURES = "iicps" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/iicps/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/iicps_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/iicps_git.bb index d68d7d880..e96dc2acb 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/iicps_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/iicps_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "iicps" +REQUIRED_MACHINE_FEATURES = "iicps" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/intc-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/intc-example_git.bb index 2e86d35cc..0b4b95a83 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/intc-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/intc-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "intc" +REQUIRED_MACHINE_FEATURES = "intc" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/intc/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/intc_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/intc_git.bb index 05a44342c..331c2e321 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/intc_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/intc_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "intc" +REQUIRED_MACHINE_FEATURES = "intc" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/iomodule_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/iomodule_git.bb index c2ea342d4..1f625521d 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/iomodule_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/iomodule_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "iomodule" +REQUIRED_MACHINE_FEATURES = "iomodule" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/ipipsu-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/ipipsu-example_git.bb index e007b74ef..0b31601d1 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/ipipsu-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/ipipsu-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "ipipsu" +REQUIRED_MACHINE_FEATURES = "ipipsu" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/ipipsu/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/ipipsu_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/ipipsu_git.bb index b7369c7a1..3e2ccc0bc 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/ipipsu_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/ipipsu_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "ipipsu" +REQUIRED_MACHINE_FEATURES = "ipipsu" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/llfifo-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/llfifo-example_git.bb index da02cbd27..6b1c211a5 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/llfifo-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/llfifo-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "llfifo" +REQUIRED_MACHINE_FEATURES = "llfifo" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/llfifo/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/llfifo_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/llfifo_git.bb index 4241f80aa..1fb76b18f 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/llfifo_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/llfifo_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "llfifo" +REQUIRED_MACHINE_FEATURES = "llfifo" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/mbox-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/mbox-example_git.bb index 3adea549d..3c4870b4a 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/mbox-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/mbox-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "mbox" +REQUIRED_MACHINE_FEATURES = "mbox" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/mbox/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/mbox_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/mbox_git.bb index b7a3f54a2..5c1b83932 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/mbox_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/mbox_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "mbox" +REQUIRED_MACHINE_FEATURES = "mbox" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/mcdma-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/mcdma-example_git.bb index 54622350e..64979470f 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/mcdma-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/mcdma-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "mcdma" +REQUIRED_MACHINE_FEATURES = "mcdma" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/mcdma/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/mcdma_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/mcdma_git.bb index d697f7685..f13a7e544 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/mcdma_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/mcdma_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "mcdma" +REQUIRED_MACHINE_FEATURES = "mcdma" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/mutex-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/mutex-example_git.bb index ac637d2c5..fc0527da6 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/mutex-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/mutex-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "mutex" +REQUIRED_MACHINE_FEATURES = "mutex" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/mutex/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/mutex_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/mutex_git.bb index b4702e037..98abc9487 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/mutex_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/mutex_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "mutex" +REQUIRED_MACHINE_FEATURES = "mutex" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/nandpsu-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/nandpsu-example_git.bb index 0502471e8..8b7a88b5f 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/nandpsu-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/nandpsu-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "nandpsu" +REQUIRED_MACHINE_FEATURES = "nandpsu" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/nandpsu/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/nandpsu_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/nandpsu_git.bb index 72e6160a5..6d2a71c51 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/nandpsu_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/nandpsu_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "nandpsu" +REQUIRED_MACHINE_FEATURES = "nandpsu" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/ospipsv-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/ospipsv-example_git.bb index c9d68260d..0ded4fd24 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/ospipsv-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/ospipsv-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "ospipsv" +REQUIRED_MACHINE_FEATURES = "ospipsv" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/ospipsv/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/ospipsv_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/ospipsv_git.bb index 19cfe8ede..f0548efcf 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/ospipsv_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/ospipsv_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "ospipsv" +REQUIRED_MACHINE_FEATURES = "ospipsv" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/pciepsu-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/pciepsu-example_git.bb index a980b4b50..23895fba9 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/pciepsu-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/pciepsu-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "pciepsu" +REQUIRED_MACHINE_FEATURES = "pciepsu" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/pciepsu/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/pciepsu_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/pciepsu_git.bb index ce6cb3a08..ccedb1dfb 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/pciepsu_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/pciepsu_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "pciepsu" +REQUIRED_MACHINE_FEATURES = "pciepsu" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/qspips-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/qspips-example_git.bb index 7a77274d9..674b879a9 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/qspips-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/qspips-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "qspips" +REQUIRED_MACHINE_FEATURES = "qspips" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/qspips/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/qspips_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/qspips_git.bb index 67c9e9357..fa28d9016 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/qspips_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/qspips_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "qspips" +REQUIRED_MACHINE_FEATURES = "qspips" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/qspipsu-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/qspipsu-example_git.bb index a533c50c9..21231450b 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/qspipsu-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/qspipsu-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "qspipsu" +REQUIRED_MACHINE_FEATURES = "qspipsu" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/qspipsu/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/qspipsu_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/qspipsu_git.bb index 79156cf59..5b4b16140 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/qspipsu_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/qspipsu_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "qspipsu" +REQUIRED_MACHINE_FEATURES = "qspipsu" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/resetps-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/resetps-example_git.bb index 86a9acc11..243393bb5 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/resetps-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/resetps-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "resetps" +REQUIRED_MACHINE_FEATURES = "resetps" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/resetps/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/resetps_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/resetps_git.bb index 86171bfc3..c753c666b 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/resetps_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/resetps_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "resetps" +REQUIRED_MACHINE_FEATURES = "resetps" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/rtcpsu-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/rtcpsu-example_git.bb index fc18adeb3..ac386c4c9 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/rtcpsu-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/rtcpsu-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "rtcpsu" +REQUIRED_MACHINE_FEATURES = "rtcpsu" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/rtcpsu/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/rtcpsu_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/rtcpsu_git.bb index 4ef2cccdc..7b96bf16f 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/rtcpsu_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/rtcpsu_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "rtcpsu" +REQUIRED_MACHINE_FEATURES = "rtcpsu" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/scugic-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/scugic-example_git.bb index 5ad0ba178..cbef3ce98 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/scugic-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/scugic-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "scugic" +REQUIRED_MACHINE_FEATURES = "scugic" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/scugic/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/scugic_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/scugic_git.bb index 19ec303e7..f079354db 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/scugic_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/scugic_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "scugic" +REQUIRED_MACHINE_FEATURES = "scugic" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/sdps-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/sdps-example_git.bb index 9a5c435ba..550d664b4 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/sdps-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/sdps-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "sdps" +REQUIRED_MACHINE_FEATURES = "sdps" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/sdps/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/sdps_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/sdps_git.bb index dfe68bfd1..4caf0e636 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/sdps_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/sdps_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "sdps" +REQUIRED_MACHINE_FEATURES = "sdps" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/spips-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/spips-example_git.bb index bec085bbb..71ead5d30 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/spips-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/spips-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "spips" +REQUIRED_MACHINE_FEATURES = "spips" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/spips/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/spips_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/spips_git.bb index 9451d79bd..ca02fda03 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/spips_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/spips_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "spips" +REQUIRED_MACHINE_FEATURES = "spips" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/sysmon-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/sysmon-example_git.bb index 1ef37ee82..5bc007add 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/sysmon-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/sysmon-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "sysmon" +REQUIRED_MACHINE_FEATURES = "sysmon" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/sysmon/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/sysmon_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/sysmon_git.bb index f1be4ee6f..5353f6f83 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/sysmon_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/sysmon_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "sysmon" +REQUIRED_MACHINE_FEATURES = "sysmon" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/sysmonpsu-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/sysmonpsu-example_git.bb index 52e5b1e62..2c76a9781 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/sysmonpsu-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/sysmonpsu-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "sysmonpsu" +REQUIRED_MACHINE_FEATURES = "sysmonpsu" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/sysmonpsu/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/sysmonpsu_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/sysmonpsu_git.bb index 5056cb151..871a77a3a 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/sysmonpsu_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/sysmonpsu_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "sysmonpsu" +REQUIRED_MACHINE_FEATURES = "sysmonpsu" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/sysmonpsv-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/sysmonpsv-example_git.bb index 7bd0e81d1..edce27941 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/sysmonpsv-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/sysmonpsv-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "sysmonpsv" +REQUIRED_MACHINE_FEATURES = "sysmonpsv" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/sysmonpsv/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/sysmonpsv_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/sysmonpsv_git.bb index 06b828110..2c6938093 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/sysmonpsv_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/sysmonpsv_git.bb @@ -1,10 +1,10 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "sysmonpsv" +REQUIRED_MACHINE_FEATURES = "sysmonpsv" inherit esw python3native -DEPENDS += "xilstandalone ${@'scugic' if d.getVar('ESW_MACHINE') != 'microblaze-plm' and d.getVar('ESW_MACHINE') != 'microblaze-psm' else ''}" +DEPENDS += "xilstandalone ${@'scugic' if d.getVar('ESW_MACHINE') != 'psv_pmc_0' and d.getVar('ESW_MACHINE') != 'psv_psm_0' else ''}" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/sysmonpsv/src/" ESW_COMPONENT_NAME = "libsysmonpsv.a" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/tmr-inject_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/tmr-inject_git.bb index c13880f1c..dbf3d3644 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/tmr-inject_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/tmr-inject_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "tmr-inject" +REQUIRED_MACHINE_FEATURES = "tmr-inject" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/tmr-manager_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/tmr-manager_git.bb index 9d491abbf..dd91fed77 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/tmr-manager_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/tmr-manager_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "tmr-manager" +REQUIRED_MACHINE_FEATURES = "tmr-manager" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/tmrctr-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/tmrctr-example_git.bb index cd971139d..8224d6fea 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/tmrctr-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/tmrctr-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "tmrctr" +REQUIRED_MACHINE_FEATURES = "tmrctr" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/tmrctr/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/tmrctr_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/tmrctr_git.bb index 1eb38c44d..cf94a9d0f 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/tmrctr_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/tmrctr_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "tmrctr" +REQUIRED_MACHINE_FEATURES = "tmrctr" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/trafgen-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/trafgen-example_git.bb index 57d6a2cb6..84c5618c1 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/trafgen-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/trafgen-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "trafgen" +REQUIRED_MACHINE_FEATURES = "trafgen" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/trafgen/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/trafgen_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/trafgen_git.bb index d9e9238a5..77d000db0 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/trafgen_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/trafgen_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "trafgen" +REQUIRED_MACHINE_FEATURES = "trafgen" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/ttcps-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/ttcps-example_git.bb index 783dce25e..d294c3837 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/ttcps-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/ttcps-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "ttcps" +REQUIRED_MACHINE_FEATURES = "ttcps" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/ttcps/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/ttcps_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/ttcps_git.bb index 7de97781f..ea5206569 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/ttcps_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/ttcps_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "ttcps" +REQUIRED_MACHINE_FEATURES = "ttcps" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/uartlite-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/uartlite-example_git.bb index f218e6048..9aa0f598e 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/uartlite-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/uartlite-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "uartlite" +REQUIRED_MACHINE_FEATURES = "uartlite" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/uartlite/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/uartlite_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/uartlite_git.bb index 270ffb43c..5998e0923 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/uartlite_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/uartlite_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "uartlite" +REQUIRED_MACHINE_FEATURES = "uartlite" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/uartns550-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/uartns550-example_git.bb index 2e98c9f98..d81ce77b0 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/uartns550-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/uartns550-example_git.bb @@ -1,6 +1,6 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "uartns550" +REQUIRED_MACHINE_FEATURES = "uartns550" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/uartns550/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/uartns550_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/uartns550_git.bb index 8e64457e7..a08763cbb 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/uartns550_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/uartns550_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "uartns550" +REQUIRED_MACHINE_FEATURES = "uartns550" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/uartps-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/uartps-example_git.bb index f010794ac..bbff466d5 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/uartps-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/uartps-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "uartps" +REQUIRED_MACHINE_FEATURES = "uartps" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/uartps/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/uartps_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/uartps_git.bb index c22477369..932be9eb5 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/uartps_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/uartps_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "uartps" +REQUIRED_MACHINE_FEATURES = "uartps" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/uartpsv-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/uartpsv-example_git.bb index e881f429a..78f878a69 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/uartpsv-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/uartpsv-example_git.bb @@ -1,6 +1,6 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "uartpsv" +REQUIRED_MACHINE_FEATURES = "uartpsv" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/uartpsv/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/uartpsv_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/uartpsv_git.bb index 266f1db9d..01e48caa2 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/uartpsv_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/uartpsv_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "uartpsv" +REQUIRED_MACHINE_FEATURES = "uartpsv" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/usb-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/usb-example_git.bb index e9fddd0bd..0d4e113ae 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/usb-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/usb-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "usb" +REQUIRED_MACHINE_FEATURES = "usb" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/usb/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/usb_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/usb_git.bb index 720c73b0d..9dac8cbac 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/usb_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/usb_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "usb" +REQUIRED_MACHINE_FEATURES = "usb" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/usbpsu-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/usbpsu-example_git.bb index 88c983e0d..4eb9bc936 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/usbpsu-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/usbpsu-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "usbpsu" +REQUIRED_MACHINE_FEATURES = "usbpsu" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/usbpsu/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/usbpsu_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/usbpsu_git.bb index a8947226b..194b1f0f4 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/usbpsu_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/usbpsu_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "usbpsu" +REQUIRED_MACHINE_FEATURES = "usbpsu" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/v-csc_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/v-csc_git.bb index 212614232..068a43e9b 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/v-csc_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/v-csc_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "v-csc" +REQUIRED_MACHINE_FEATURES = "v-csc" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/v-deinterlacer_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/v-deinterlacer_git.bb index 006452d35..741fdd917 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/v-deinterlacer_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/v-deinterlacer_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "v-deinterlacer" +REQUIRED_MACHINE_FEATURES = "v-deinterlacer" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/v-demosaic-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/v-demosaic-example_git.bb index 21f80b098..cf2cdf6fe 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/v-demosaic-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/v-demosaic-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "v-demosaic" +REQUIRED_MACHINE_FEATURES = "v-demosaic" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/v_demosaic/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/v-demosaic_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/v-demosaic_git.bb index 83913f315..79ef55f25 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/v-demosaic_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/v-demosaic_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "v-demosaic" +REQUIRED_MACHINE_FEATURES = "v-demosaic" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/v-frmbuf-rd-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/v-frmbuf-rd-example_git.bb index fcb2f95e3..fc13c194f 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/v-frmbuf-rd-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/v-frmbuf-rd-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "v-frmbuf-rd" +REQUIRED_MACHINE_FEATURES = "v-frmbuf-rd" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/v_frmbuf_rd/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/v-frmbuf-rd_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/v-frmbuf-rd_git.bb index da2487015..91ee34d8a 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/v-frmbuf-rd_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/v-frmbuf-rd_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "v-frmbuf-rd" +REQUIRED_MACHINE_FEATURES = "v-frmbuf-rd" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/v-frmbuf-wr-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/v-frmbuf-wr-example_git.bb index 215bd250e..87a1be532 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/v-frmbuf-wr-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/v-frmbuf-wr-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "v-frmbuf-wr" +REQUIRED_MACHINE_FEATURES = "v-frmbuf-wr" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/v_frmbuf_wr/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/v-frmbuf-wr_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/v-frmbuf-wr_git.bb index f2ec3b271..d88ac592a 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/v-frmbuf-wr_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/v-frmbuf-wr_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "v-frmbuf-wr" +REQUIRED_MACHINE_FEATURES = "v-frmbuf-wr" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/v-gamma-lut-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/v-gamma-lut-example_git.bb index 8fa3e2451..4d5dcf03d 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/v-gamma-lut-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/v-gamma-lut-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "v-gamma-lut" +REQUIRED_MACHINE_FEATURES = "v-gamma-lut" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/v_gamma_lut/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/v-gamma-lut_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/v-gamma-lut_git.bb index 6d365dcd4..8cf95c9df 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/v-gamma-lut_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/v-gamma-lut_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "v-gamma-lut" +REQUIRED_MACHINE_FEATURES = "v-gamma-lut" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/v-hcresampler_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/v-hcresampler_git.bb index fb3119b84..1731f9845 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/v-hcresampler_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/v-hcresampler_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "v-hcresampler" +REQUIRED_MACHINE_FEATURES = "v-hcresampler" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/v-hscaler_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/v-hscaler_git.bb index 17d129d1a..b239380ea 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/v-hscaler_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/v-hscaler_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "v-hscaler" +REQUIRED_MACHINE_FEATURES = "v-hscaler" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/v-letterbox_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/v-letterbox_git.bb index 7c0bdb127..f5ad5f4ea 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/v-letterbox_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/v-letterbox_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "v-letterbox" +REQUIRED_MACHINE_FEATURES = "v-letterbox" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/v-mix-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/v-mix-example_git.bb index 0597cb645..8bafbf00e 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/v-mix-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/v-mix-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "v-mix" +REQUIRED_MACHINE_FEATURES = "v-mix" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/v_mix/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/v-mix_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/v-mix_git.bb index f3b8b967b..acc19bd07 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/v-mix_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/v-mix_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "v-mix" +REQUIRED_MACHINE_FEATURES = "v-mix" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/v-multi-scaler-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/v-multi-scaler-example_git.bb index c584a5582..286603169 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/v-multi-scaler-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/v-multi-scaler-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "v-multi-scaler" +REQUIRED_MACHINE_FEATURES = "v-multi-scaler" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/v_multi_scaler/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/v-multi-scaler_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/v-multi-scaler_git.bb index b2a9c5e5d..bd725dbe4 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/v-multi-scaler_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/v-multi-scaler_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "v-multi-scaler" +REQUIRED_MACHINE_FEATURES = "v-multi-scaler" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/v-scenechange-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/v-scenechange-example_git.bb index 7b610b41f..2859de79b 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/v-scenechange-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/v-scenechange-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "v-scenechange" +REQUIRED_MACHINE_FEATURES = "v-scenechange" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/v_scenechange/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/v-scenechange_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/v-scenechange_git.bb index 91de657d8..77cf91895 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/v-scenechange_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/v-scenechange_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "v-scenechange" +REQUIRED_MACHINE_FEATURES = "v-scenechange" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/v-tpg_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/v-tpg_git.bb index fbc3d696d..6ea70db1d 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/v-tpg_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/v-tpg_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "v-tpg" +REQUIRED_MACHINE_FEATURES = "v-tpg" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/v-vcresampler_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/v-vcresampler_git.bb index 1f262db07..45913cdcc 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/v-vcresampler_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/v-vcresampler_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "v-vcresampler" +REQUIRED_MACHINE_FEATURES = "v-vcresampler" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/v-vscaler_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/v-vscaler_git.bb index 4d5ca11ba..9528d2e0e 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/v-vscaler_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/v-vscaler_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "v-vscaler" +REQUIRED_MACHINE_FEATURES = "v-vscaler" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/video-common_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/video-common_git.bb index 37596d56f..278dee8ab 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/video-common_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/video-common_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "video-common" +REQUIRED_MACHINE_FEATURES = "video-common" inherit esw diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/vprocss-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/vprocss-example_git.bb index 7c44a0f52..d9050ec48 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/vprocss-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/vprocss-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "vprocss" +REQUIRED_MACHINE_FEATURES = "vprocss" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/vprocss/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/vprocss_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/vprocss_git.bb index ea28963b0..26b2852fa 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/vprocss_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/vprocss_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "vprocss" +REQUIRED_MACHINE_FEATURES = "vprocss" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/vtc_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/vtc_git.bb index 59d45b742..a82ae5eed 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/vtc_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/vtc_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "vtc" +REQUIRED_MACHINE_FEATURES = "vtc" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/wdtps-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/wdtps-example_git.bb index f3696e609..610a74762 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/wdtps-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/wdtps-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "wdtps" +REQUIRED_MACHINE_FEATURES = "wdtps" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/wdtps/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/wdtps_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/wdtps_git.bb index 8accc1aab..2c9000389 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/wdtps_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/wdtps_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "wdtps" +REQUIRED_MACHINE_FEATURES = "wdtps" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/wdttb-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/wdttb-example_git.bb index 99b65cc94..cad6ca20a 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/wdttb-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/wdttb-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "wdttb" +REQUIRED_MACHINE_FEATURES = "wdttb" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/wdttb/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/wdttb_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/wdttb_git.bb index 993885771..33331c32f 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/wdttb_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/wdttb_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "wdttb" +REQUIRED_MACHINE_FEATURES = "wdttb" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/xadcps-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/xadcps-example_git.bb index bda86f798..f88781448 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/xadcps-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/xadcps-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "xadcps" +REQUIRED_MACHINE_FEATURES = "xadcps" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/xadcps/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/xadcps_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/xadcps_git.bb index 39b2855e3..85800a274 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/xadcps_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/xadcps_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "xadcps" +REQUIRED_MACHINE_FEATURES = "xadcps" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/xdmapcie-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/xdmapcie-example_git.bb index fd268ba85..26983a8f7 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/xdmapcie-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/xdmapcie-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "xdmapcie" +REQUIRED_MACHINE_FEATURES = "xdmapcie" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/xdmapcie/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/xdmapcie_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/xdmapcie_git.bb index 87c7b073b..cab8e9d02 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/xdmapcie_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/xdmapcie_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "xdmapcie" +REQUIRED_MACHINE_FEATURES = "xdmapcie" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/xxvethernet-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/xxvethernet-example_git.bb index 283bea9b0..d6a871834 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/xxvethernet-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/xxvethernet-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "xxvethernet" +REQUIRED_MACHINE_FEATURES = "xxvethernet" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/xxvethernet/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/xxvethernet_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/xxvethernet_git.bb index d810cf0c8..491eb07cb 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/xxvethernet_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/xxvethernet_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "xxvethernet" +REQUIRED_MACHINE_FEATURES = "xxvethernet" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/zdma-example_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/zdma-example_git.bb index afba0f8a3..e74e32796 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/zdma-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/zdma-example_git.bb @@ -1,5 +1,5 @@ inherit esw_examples features_check -REQUIRED_DISTRO_FEATURES = "zdma" +REQUIRED_MACHINE_FEATURES = "zdma" ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/zdma/examples/" diff --git a/meta-xilinx-standalone-experimental/recipes-drivers/zdma_git.bb b/meta-xilinx-standalone-experimental/recipes-drivers/zdma_git.bb index 8e6c768c1..e987f5604 100644 --- a/meta-xilinx-standalone-experimental/recipes-drivers/zdma_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-drivers/zdma_git.bb @@ -1,6 +1,6 @@ inherit features_check -REQUIRED_DISTRO_FEATURES = "zdma" +REQUIRED_MACHINE_FEATURES = "zdma" inherit esw python3native diff --git a/meta-xilinx-standalone-experimental/recipes-libraries/libxil_git.bb b/meta-xilinx-standalone-experimental/recipes-libraries/libxil_git.bb index 9d0b697f3..2ec1d6cdc 100644 --- a/meta-xilinx-standalone-experimental/recipes-libraries/libxil_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-libraries/libxil_git.bb @@ -25,8 +25,8 @@ ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/" ESW_COMPONENT_NAME = "libxil.a" DEPENDS += "xilstandalone " -REQUIRED_DISTRO_FEATURES = "${DISTRO_FEATURES}" -PACKAGECONFIG ?= "${DISTRO_FEATURES}" +REQUIRED_MACHINE_FEATURES = "${MACHINE_FEATURES}" +PACKAGECONFIG ?= "${MACHINE_FEATURES}" do_configure:prepend() { LOPPER_DTC_FLAGS="-b 0 -@" lopper ${DTS_FILE} -- baremetal_xparameters_xlnx.py ${ESW_MACHINE} ${S} @@ -37,7 +37,7 @@ do_compile() { # Combines the .a archives produced by all of the dependent items cd ${RECIPE_SYSROOT}/usr/lib/ echo create libxil.a > libxil.mri - for each in ${REQUIRED_DISTRO_FEATURES}; do + for each in ${REQUIRED_MACHINE_FEATURES}; do each=$(echo $each | sed 's/-/_/g') if [ -e lib$each.a ]; then echo addlib lib$each.a >> libxil.mri diff --git a/meta-xilinx-standalone-experimental/recipes-libraries/lwip_git.bb b/meta-xilinx-standalone-experimental/recipes-libraries/lwip_git.bb index 213187e11..93f0b1e8a 100644 --- a/meta-xilinx-standalone-experimental/recipes-libraries/lwip_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-libraries/lwip_git.bb @@ -1,17 +1,17 @@ inherit esw python3native -ESW_COMPONENT_SRC = "/ThirdParty/sw_services/lwip211/src/" -ESW_COMPONENT_NAME = "liblwip211.a" +ESW_COMPONENT_SRC = "/ThirdParty/sw_services/lwip213/src/" +ESW_COMPONENT_NAME = "liblwip213.a" DEPENDS += "libxil" DEPENDS:append:xilinx-freertos = "freertos10-xilinx" -EXTRA_OECMAKE += "-Dlwip_api_mode=RAW_API" -EXTRA_OECMAKE += "-Dlwip_dhcp_does_arp_check=ON" -EXTRA_OECMAKE += "-Dlwip_dhcp=ON" -EXTRA_OECMAKE += "-Dlwip_pbuf_pool_size=2048" -EXTRA_OECMAKE += "-Dlwip_ipv6_enable=OFF" -EXTRA_OECMAKE:append:xilinx-freertos = " -Dlwip_api_mode=SOCKET_API" +EXTRA_OECMAKE += "-Dlwip213_api_mode=RAW_API" +EXTRA_OECMAKE += "-Dlwip213_dhcp_does_arp_check=ON" +EXTRA_OECMAKE += "-Dlwip213_dhcp=ON" +EXTRA_OECMAKE += "-Dlwip213_pbuf_pool_size=2048" +EXTRA_OECMAKE += "-Dlwip213_ipv6_enable=OFF" +EXTRA_OECMAKE:append:xilinx-freertos = " -Dlwip213_api_mode=SOCKET_API" do_configure:prepend() { # This script should also not rely on relative paths and such @@ -30,5 +30,5 @@ do_install() { install -m 0644 ${B}/include/*.h ${D}${includedir} cp -r ${B}/include/arch/ ${D}${includedir} cp -r ${B}/include/include/lwip/ ${D}${includedir} - cp -r ${B}/include/include/netif/ ${D}${includedir} + cp -r ${B}/include/netif/ ${D}${includedir} } diff --git a/meta-xilinx-standalone-experimental/recipes-libraries/xilffs-example_git.bb b/meta-xilinx-standalone-experimental/recipes-libraries/xilffs-example_git.bb index bb976377e..cae39d170 100644 --- a/meta-xilinx-standalone-experimental/recipes-libraries/xilffs-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-libraries/xilffs-example_git.bb @@ -1,7 +1,7 @@ inherit esw deploy # Requires by dependency xilffs -REQUIRED_DISTRO_FEATURES = "sdps" +REQUIRED_MACHINE_FEATURES = "sdps" ESW_COMPONENT_SRC = "/lib/sw_services/xilffs/examples/" @@ -11,7 +11,6 @@ do_configure:prepend() { ( cd ${S} lopper ${DTS_FILE} -- baremetallinker_xlnx.py ${ESW_MACHINE} ${S}/${ESW_COMPONENT_SRC} - install -m 0755 memory.ld ${S}/${ESW_COMPONENT_SRC}/ install -m 0755 *.cmake ${S}/${ESW_COMPONENT_SRC}/ ) } diff --git a/meta-xilinx-standalone-experimental/recipes-libraries/xilffs_git.bb b/meta-xilinx-standalone-experimental/recipes-libraries/xilffs_git.bb index 2a01c9746..298e30330 100644 --- a/meta-xilinx-standalone-experimental/recipes-libraries/xilffs_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-libraries/xilffs_git.bb @@ -1,7 +1,5 @@ inherit esw features_check -REQUIRED_DISTRO_FEATURES = "sdps" - ESW_COMPONENT_SRC = "/lib/sw_services/xilffs/src/" ESW_COMPONENT_NAME = "libxilffs.a" diff --git a/meta-xilinx-standalone-experimental/recipes-libraries/xilfpga-example_git.bb b/meta-xilinx-standalone-experimental/recipes-libraries/xilfpga-example_git.bb index df5c1bbe4..a3fb15601 100644 --- a/meta-xilinx-standalone-experimental/recipes-libraries/xilfpga-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-libraries/xilfpga-example_git.bb @@ -8,7 +8,6 @@ do_configure:prepend() { ( cd ${S} lopper ${DTS_FILE} -- baremetallinker_xlnx.py ${ESW_MACHINE} ${S}/${ESW_COMPONENT_SRC} - install -m 0755 memory.ld ${S}/${ESW_COMPONENT_SRC}/ install -m 0755 *.cmake ${S}/${ESW_COMPONENT_SRC}/ ) } diff --git a/meta-xilinx-standalone-experimental/recipes-libraries/xilmailbox-example_git.bb b/meta-xilinx-standalone-experimental/recipes-libraries/xilmailbox-example_git.bb index 1e457d189..600369adf 100644 --- a/meta-xilinx-standalone-experimental/recipes-libraries/xilmailbox-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-libraries/xilmailbox-example_git.bb @@ -8,7 +8,6 @@ do_configure:prepend() { ( cd ${S} lopper ${DTS_FILE} -- baremetallinker_xlnx.py ${ESW_MACHINE} ${S}/${ESW_COMPONENT_SRC} - install -m 0755 memory.ld ${S}/${ESW_COMPONENT_SRC}/ install -m 0755 *.cmake ${S}/${ESW_COMPONENT_SRC}/ ) } diff --git a/meta-xilinx-standalone-experimental/recipes-libraries/xilmailbox_git.bb b/meta-xilinx-standalone-experimental/recipes-libraries/xilmailbox_git.bb index 50dbc776b..77115515a 100644 --- a/meta-xilinx-standalone-experimental/recipes-libraries/xilmailbox_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-libraries/xilmailbox_git.bb @@ -4,3 +4,12 @@ ESW_COMPONENT_SRC = "/lib/sw_services/xilmailbox/src/" ESW_COMPONENT_NAME = "libxilmailbox.a" DEPENDS += "xilstandalone libxil xiltimer" + +do_configure:prepend() { + # This script should also not rely on relative paths and such + ( + cd ${S} + lopper ${DTS_FILE} -- bmcmake_metadata_xlnx.py ${ESW_MACHINE} ${S}/${ESW_COMPONENT_SRC} hwcmake_metadata ${S} + install -m 0755 *.cmake ${S}/${ESW_COMPONENT_SRC}/ + ) +} diff --git a/meta-xilinx-standalone-experimental/recipes-libraries/xilnvm-example_git.bb b/meta-xilinx-standalone-experimental/recipes-libraries/xilnvm-example_git.bb index a656e7ec3..a4a81c8ba 100644 --- a/meta-xilinx-standalone-experimental/recipes-libraries/xilnvm-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-libraries/xilnvm-example_git.bb @@ -8,7 +8,6 @@ do_configure:prepend() { ( cd ${S} lopper ${DTS_FILE} -- baremetallinker_xlnx.py ${ESW_MACHINE} ${S}/${ESW_COMPONENT_SRC} - install -m 0755 memory.ld ${S}/${ESW_COMPONENT_SRC}/ install -m 0755 *.cmake ${S}/${ESW_COMPONENT_SRC}/ ) } diff --git a/meta-xilinx-standalone-experimental/recipes-libraries/xilpm_git.bb b/meta-xilinx-standalone-experimental/recipes-libraries/xilpm_git.bb index f58538cdf..69b505c8d 100644 --- a/meta-xilinx-standalone-experimental/recipes-libraries/xilpm_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-libraries/xilpm_git.bb @@ -1,6 +1,15 @@ -inherit esw +inherit esw python3native ESW_COMPONENT_SRC = "/lib/sw_services/xilpm/src/" ESW_COMPONENT_NAME = "libxilpm.a" -DEPENDS = "libxil ${@'xilplmi cframe' if d.getVar('ESW_MACHINE') == 'microblaze-plm' else ''}" +DEPENDS += "libxil ${@'xilplmi cframe' if d.getVar('ESW_MACHINE') == 'psv_pmc_0' else ''}" + +do_configure:prepend:zynqmp() { + # This script should also not rely on relative paths and such + ( + cd ${S} + lopper -f --enhanced --werror ${DTS_FILE} -- generate_config_object pm_cfg_obj.c ${ESW_MACHINE} + install -m 0755 pm_cfg_obj.c ${S}/${ESW_COMPONENT_SRC}/zynqmp/client/common/ + ) +} diff --git a/meta-xilinx-standalone-experimental/recipes-libraries/xilpuf-example_git.bb b/meta-xilinx-standalone-experimental/recipes-libraries/xilpuf-example_git.bb index ad2d5c477..ca0abc12a 100644 --- a/meta-xilinx-standalone-experimental/recipes-libraries/xilpuf-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-libraries/xilpuf-example_git.bb @@ -8,7 +8,6 @@ do_configure:prepend() { ( cd ${S} lopper ${DTS_FILE} -- baremetallinker_xlnx.py ${ESW_MACHINE} ${S}/${ESW_COMPONENT_SRC} - install -m 0755 memory.ld ${S}/${ESW_COMPONENT_SRC}/ install -m 0755 *.cmake ${S}/${ESW_COMPONENT_SRC}/ ) } diff --git a/meta-xilinx-standalone-experimental/recipes-libraries/xilpuf_git.bb b/meta-xilinx-standalone-experimental/recipes-libraries/xilpuf_git.bb index 266503d1a..81bee0956 100644 --- a/meta-xilinx-standalone-experimental/recipes-libraries/xilpuf_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-libraries/xilpuf_git.bb @@ -3,4 +3,4 @@ inherit esw ESW_COMPONENT_SRC = "/lib/sw_services/xilpuf/src/" ESW_COMPONENT_NAME = "libxilpuf.a" -DEPENDS += "libxil xiltimer ${@'xilplmi' if d.getVar('ESW_MACHINE') == 'microblaze-plm' else 'xilmailbox'}" +DEPENDS += "libxil xiltimer ${@'xilplmi' if d.getVar('ESW_MACHINE') == 'psv_pmc_0' else 'xilmailbox'}" diff --git a/meta-xilinx-standalone-experimental/recipes-libraries/xilsecure-example_git.bb b/meta-xilinx-standalone-experimental/recipes-libraries/xilsecure-example_git.bb index 2267571f0..993794b57 100644 --- a/meta-xilinx-standalone-experimental/recipes-libraries/xilsecure-example_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-libraries/xilsecure-example_git.bb @@ -8,7 +8,6 @@ do_configure:prepend() { ( cd ${S} lopper ${DTS_FILE} -- baremetallinker_xlnx.py ${ESW_MACHINE} ${S}/${ESW_COMPONENT_SRC} - install -m 0755 memory.ld ${S}/${ESW_COMPONENT_SRC}/ install -m 0755 *.cmake ${S}/${ESW_COMPONENT_SRC}/ ) } diff --git a/meta-xilinx-standalone-experimental/recipes-libraries/xilsecure_git.bb b/meta-xilinx-standalone-experimental/recipes-libraries/xilsecure_git.bb index b8e2aa16a..0001d3fb2 100644 --- a/meta-xilinx-standalone-experimental/recipes-libraries/xilsecure_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-libraries/xilsecure_git.bb @@ -3,4 +3,4 @@ inherit esw ESW_COMPONENT_SRC = "/lib/sw_services/xilsecure/src/" ESW_COMPONENT_NAME = "libxilsecure.a" -DEPENDS += "libxil xiltimer ${@'xilplmi' if d.getVar('ESW_MACHINE') == 'microblaze-plm' else 'xilmailbox'}" +DEPENDS += "libxil xiltimer ${@'xilplmi' if d.getVar('ESW_MACHINE') == 'psv_pmc_0' else ''} ${@'xilmailbox' if d.getVar('ESW_MACHINE') == 'psv_cortexa72_0' or d.getVar('ESW_MACHINE') == 'psv_cortexr5_0' else ''}" diff --git a/meta-xilinx-standalone-experimental/recipes-libraries/xilstandalone_git.bb b/meta-xilinx-standalone-experimental/recipes-libraries/xilstandalone_git.bb index 70a46c5ef..facbfbaaa 100644 --- a/meta-xilinx-standalone-experimental/recipes-libraries/xilstandalone_git.bb +++ b/meta-xilinx-standalone-experimental/recipes-libraries/xilstandalone_git.bb @@ -11,6 +11,8 @@ do_configure:prepend() { cd ${S} lopper ${DTS_FILE} -- baremetal_bspconfig_xlnx ${ESW_MACHINE} ${S}/${ESW_COMPONENT_SRC} install -m 0755 MemConfig.cmake ${S}/${ESW_COMPONENT_SRC}/ - install -m 0755 *.c ${S}/${ESW_COMPONENT_SRC}/common/ + install -m 0755 *.c ${S}/${ESW_COMPONENT_SRC} + lopper ${DTS_FILE} -- bmcmake_metadata_xlnx ${ESW_MACHINE} ${S}/${ESW_COMPONENT_SRC} hwcmake_metadata ${S} + install -m 0755 StandaloneExample.cmake ${S}/${ESW_COMPONENT_SRC}/common/ ) } diff --git a/meta-xilinx-standalone/README.md b/meta-xilinx-standalone/README.md index 0a8114d8a..aa672b1d6 100644 --- a/meta-xilinx-standalone/README.md +++ b/meta-xilinx-standalone/README.md @@ -68,4 +68,4 @@ This layer depends on: https://git.yoctoproject.org/meta-xilinx (official version) https://github.com/Xilinx/meta-xilinx (development and amd xilinx release) layers: meta-xilinx-microblaze, meta-xilinx-core, meta-xilinx-bsp - branch: langdale or amd xilinx release version (e.g. rel-v2022.2) + branch: langdale or amd xilinx release version (e.g. rel-v2023.1) diff --git a/meta-xilinx-standalone/classes/xlnx-embeddedsw.bbclass b/meta-xilinx-standalone/classes/xlnx-embeddedsw.bbclass index d9c6e1491..aaee9e68d 100644 --- a/meta-xilinx-standalone/classes/xlnx-embeddedsw.bbclass +++ b/meta-xilinx-standalone/classes/xlnx-embeddedsw.bbclass @@ -5,10 +5,12 @@ REPO ??= "git://github.com/Xilinx/embeddedsw.git;protocol=https" ESW_BRANCH[2022.1] = "xlnx_rel_v2022.1_update" ESW_BRANCH[2022.2] = "xlnx_rel_v2022.2" +ESW_BRANCH[2023.1] = "xlnx_rel_v2023.1" BRANCH ??= "${@d.getVarFlag('ESW_BRANCH', d.getVar('ESW_VER')) or '${ESW_VER}'}" ESW_REV[2022.1] = "56d94a506fd9f80949f4cff08e13015928603f01" ESW_REV[2022.2] = "5330a64c8efd14f0eef09befdbb8d3d738c33ec2" +ESW_REV[2023.1] = "86f54b77641f325042a1101fead96b2714e6d3ef" SRCREV ??= "${@d.getVarFlag('ESW_REV', d.getVar('ESW_VER')) or 'invalid'}" EMBEDDEDSW_BRANCHARG ?= "${@['nobranch=1', 'branch=${BRANCH}'][d.getVar('BRANCH') != '']}" @@ -17,6 +19,7 @@ EMBEDDEDSW_SRCURI ?= "${REPO};${EMBEDDEDSW_BRANCHARG}" LICENSE = "MIT" LIC_FILES_CHKSUM[xlnx_rel_v2022.1_update] = 'e62cb7a722c4430999e0a55a7234035d' LIC_FILES_CHKSUM[xlnx_rel_v2022.2] = 'ce611484168a6000bd35df68fc4f4290' +LIC_FILES_CHKSUM[xlnx_rel_v2023.1] = '3c310a3ee2197a4c92c6a0e2937c207c' LIC_FILES_CHKSUM ??= "file://license.txt;md5=${@d.getVarFlag('LIC_FILES_CHKSUM', d.getVar('BRANCH')) or '0'}" SRC_URI = "${EMBEDDEDSW_SRCURI}" diff --git a/meta-xilinx-standalone/recipes-bsp/embeddedsw/embeddedsw/2023.1/0001-versal_fw-Fixup-core-makefiles.patch b/meta-xilinx-standalone/recipes-bsp/embeddedsw/embeddedsw/2023.1/0001-versal_fw-Fixup-core-makefiles.patch new file mode 100644 index 000000000..d6cb0e384 --- /dev/null +++ b/meta-xilinx-standalone/recipes-bsp/embeddedsw/embeddedsw/2023.1/0001-versal_fw-Fixup-core-makefiles.patch @@ -0,0 +1,101 @@ +From 607322dafb2979affd329ea70a2a7952203188a4 Mon Sep 17 00:00:00 2001 +From: Mark Hatle +Date: Wed, 7 Dec 2022 15:42:15 -0800 +Subject: [PATCH] versal_fw: Fixup core makefiles + +The Yocto Project build environment needs to be able to override a few +additional variables that may not be appropriate to do on the regular +command line build version. This patch preserves the default while +allowing it to be overriden as necessary. + +Signed-off-by: Mark Hatle +--- + lib/sw_apps/versal_plm/misc/versal/Makefile | 6 ++++-- + lib/sw_apps/versal_plm/misc/versal_net/Makefile | 6 ++++-- + lib/sw_apps/versal_psmfw/misc/Makefile | 6 ++++-- + 3 files changed, 12 insertions(+), 6 deletions(-) + +diff --git a/lib/sw_apps/versal_plm/misc/versal/Makefile b/lib/sw_apps/versal_plm/misc/versal/Makefile +index 5c8e719e9c..af070716b6 100644 +--- a/lib/sw_apps/versal_plm/misc/versal/Makefile ++++ b/lib/sw_apps/versal_plm/misc/versal/Makefile +@@ -2,6 +2,8 @@ + COMPILER := mb-gcc + ARCHIVER := mb-gcc-ar + ASSEMBLER := mb-as ++COMPILER_FLAGS := -O2 -c -mcpu=v10.0 -mlittle-endian -mxl-barrel-shift -mxl-pattern-compare ++EXTRA_COMPILER_FLAGS := -g -ffunction-sections -fdata-sections -Wall -Wextra -Os -flto -ffat-lto-objects + DRIVER_LIB_VERSION = 1.0 + PROCESSOR = psv_pmc_0 + LIBRARIES = ${PROCESSOR}/lib/libxil.a +@@ -40,11 +42,11 @@ $(PROCESSOR)/lib/libxil.a: $(PROCESSOR)/lib/libxil_init.a + + %/make.include: $(if $(wildcard $(PROCESSOR)/lib/libxil_init.a),$(PROCESSOR)/lib/libxil.a,) + @echo "Running Make include in $(subst /make.include,,$@)" +- $(MAKE) -C $(subst /make.include,,$@) -s include "SHELL=$(SHELL)" "COMPILER=$(COMPILER)" "ASSEMBLER=$(ASSEMBLER)" "ARCHIVER=$(ARCHIVER)" "COMPILER_FLAGS= -O2 -c -mcpu=v10.0 -mlittle-endian -mxl-barrel-shift -mxl-pattern-compare" "EXTRA_COMPILER_FLAGS=-g -ffunction-sections -fdata-sections -Wall -Wextra -Os -flto -ffat-lto-objects" ++ $(MAKE) -C $(subst /make.include,,$@) -s include "SHELL=$(SHELL)" "COMPILER=$(COMPILER)" "ASSEMBLER=$(ASSEMBLER)" "ARCHIVER=$(ARCHIVER)" "COMPILER_FLAGS=$(COMPILER_FLAGS)" "EXTRA_COMPILER_FLAGS=$(EXTRA_COMPILER_FLAGS)" + + %/make.libs: include + @echo "Running Make libs in $(subst /make.libs,,$@)" +- $(MAKE) -C $(subst /make.libs,,$@) -s libs "SHELL=$(SHELL)" "COMPILER=$(COMPILER)" "ASSEMBLER=$(ASSEMBLER)" "ARCHIVER=$(ARCHIVER)" "COMPILER_FLAGS= -O2 -c -mcpu=v10.0 -mlittle-endian -mxl-barrel-shift -mxl-pattern-compare" "EXTRA_COMPILER_FLAGS=-g -ffunction-sections -fdata-sections -Wall -Wextra -Os -flto -ffat-lto-objects" ++ $(MAKE) -C $(subst /make.libs,,$@) -s libs "SHELL=$(SHELL)" "COMPILER=$(COMPILER)" "ASSEMBLER=$(ASSEMBLER)" "ARCHIVER=$(ARCHIVER)" "COMPILER_FLAGS=$(COMPILER_FLAGS)" "EXTRA_COMPILER_FLAGS=$(EXTRA_COMPILER_FLAGS)" + + %/make.clean: + $(MAKE) -C $(subst /make.clean,,$@) -s clean +diff --git a/lib/sw_apps/versal_plm/misc/versal_net/Makefile b/lib/sw_apps/versal_plm/misc/versal_net/Makefile +index abffa6c5ed..4af5a02001 100644 +--- a/lib/sw_apps/versal_plm/misc/versal_net/Makefile ++++ b/lib/sw_apps/versal_plm/misc/versal_net/Makefile +@@ -2,6 +2,8 @@ + COMPILER := mb-gcc + ARCHIVER := mb-gcc-ar + ASSEMBLER := mb-as ++COMPILER_FLAGS := -O2 -c -mcpu=v10.0 -mlittle-endian -mxl-barrel-shift -mxl-pattern-compare ++EXTRA_COMPILER_FLAGS := -g -ffunction-sections -fdata-sections -Wall -Wextra -Os -flto -ffat-lto-objects + DRIVER_LIB_VERSION = 1.0 + PROCESSOR = psx_pmc_0 + LIBRARIES = ${PROCESSOR}/lib/libxil.a +@@ -40,11 +42,11 @@ $(PROCESSOR)/lib/libxil.a: $(PROCESSOR)/lib/libxil_init.a + + %/make.include: $(if $(wildcard $(PROCESSOR)/lib/libxil_init.a),$(PROCESSOR)/lib/libxil.a,) + @echo "Running Make include in $(subst /make.include,,$@)" +- $(MAKE) -C $(subst /make.include,,$@) -s include "SHELL=$(SHELL)" "COMPILER=$(COMPILER)" "ASSEMBLER=$(ASSEMBLER)" "ARCHIVER=$(ARCHIVER)" "COMPILER_FLAGS= -O2 -c -mcpu=v10.0 -mlittle-endian -mxl-barrel-shift -mxl-pattern-compare" "EXTRA_COMPILER_FLAGS=-g -ffunction-sections -fdata-sections -Wall -Wextra -Os -flto -ffat-lto-objects" ++ $(MAKE) -C $(subst /make.include,,$@) -s include "SHELL=$(SHELL)" "COMPILER=$(COMPILER)" "ASSEMBLER=$(ASSEMBLER)" "ARCHIVER=$(ARCHIVER)" "COMPILER_FLAGS=$(COMPILER_FLAGS)" "EXTRA_COMPILER_FLAGS=$(EXTRA_COMPILER_FLAGS)" + + %/make.libs: include + @echo "Running Make libs in $(subst /make.libs,,$@)" +- $(MAKE) -C $(subst /make.libs,,$@) -s libs "SHELL=$(SHELL)" "COMPILER=$(COMPILER)" "ASSEMBLER=$(ASSEMBLER)" "ARCHIVER=$(ARCHIVER)" "COMPILER_FLAGS= -O2 -c -mcpu=v10.0 -mlittle-endian -mxl-barrel-shift -mxl-pattern-compare" "EXTRA_COMPILER_FLAGS=-g -ffunction-sections -fdata-sections -Wall -Wextra -Os -flto -ffat-lto-objects" ++ $(MAKE) -C $(subst /make.libs,,$@) -s libs "SHELL=$(SHELL)" "COMPILER=$(COMPILER)" "ASSEMBLER=$(ASSEMBLER)" "ARCHIVER=$(ARCHIVER)" "COMPILER_FLAGS=$(COMPILER_FLAGS)" "EXTRA_COMPILER_FLAGS=$(EXTRA_COMPILER_FLAGS)" + + %/make.clean: + $(MAKE) -C $(subst /make.clean,,$@) -s clean +diff --git a/lib/sw_apps/versal_psmfw/misc/Makefile b/lib/sw_apps/versal_psmfw/misc/Makefile +index 02d85e492e..f6386dcbed 100644 +--- a/lib/sw_apps/versal_psmfw/misc/Makefile ++++ b/lib/sw_apps/versal_psmfw/misc/Makefile +@@ -11,6 +11,8 @@ PAR_SUBDIRS := $(patsubst %/Makefile, %, $(BSP_PARALLEL_MAKEFILES)) + COMPILER := mb-gcc + ARCHIVER := mb-ar + ASSEMBLER := mb-as ++COMPILER_FLAGS := -O2 -c -mcpu=v10.0 -mlittle-endian -mxl-barrel-shift -mxl-pattern-compare ++EXTRA_COMPILER_FLAGS := -g -ffunction-sections -fdata-sections -Wall -Wextra + + ifneq (,$(findstring win,$(RDI_PLATFORM))) + SHELL = CMD +@@ -41,11 +43,11 @@ $(PROCESSOR)/lib/libxil.a: $(PROCESSOR)/lib/libxil_init.a + + %/make.include: $(if $(wildcard $(PROCESSOR)/lib/libxil_init.a),$(PROCESSOR)/lib/libxil.a,) + @echo "Running Make include in $(subst /make.include,,$@)" +- $(MAKE) -C $(subst /make.include,,$@) -s include "SHELL=$(SHELL)" "COMPILER=$(COMPILER)" "ASSEMBLER=$(ASSEMBLER)" "ARCHIVER=$(ARCHIVER)" "COMPILER_FLAGS= -O2 -c -mcpu=v10.0 -mlittle-endian -mxl-barrel-shift -mxl-pattern-compare" "EXTRA_COMPILER_FLAGS=-g -ffunction-sections -fdata-sections -Wall -Wextra" ++ $(MAKE) -C $(subst /make.include,,$@) -s include "SHELL=$(SHELL)" "COMPILER=$(COMPILER)" "ASSEMBLER=$(ASSEMBLER)" "ARCHIVER=$(ARCHIVER)" "COMPILER_FLAGS=$(COMPILER_FLAGS)" "EXTRA_COMPILER_FLAGS=$(EXTRA_COMPILER_FLAGS)" + + %/make.libs: include + @echo "Running Make libs in $(subst /make.libs,,$@)" +- $(MAKE) -C $(subst /make.libs,,$@) -s libs "SHELL=$(SHELL)" "COMPILER=$(COMPILER)" "ASSEMBLER=$(ASSEMBLER)" "ARCHIVER=$(ARCHIVER)" "COMPILER_FLAGS= -O2 -c -mcpu=v10.0 -mlittle-endian -mxl-barrel-shift -mxl-pattern-compare" "EXTRA_COMPILER_FLAGS=-g -ffunction-sections -fdata-sections -Wall -Wextra" ++ $(MAKE) -C $(subst /make.libs,,$@) -s libs "SHELL=$(SHELL)" "COMPILER=$(COMPILER)" "ASSEMBLER=$(ASSEMBLER)" "ARCHIVER=$(ARCHIVER)" "COMPILER_FLAGS=$(COMPILER_FLAGS)" "EXTRA_COMPILER_FLAGS=$(EXTRA_COMPILER_FLAGS)" + + %/make.clean: + $(MAKE) -C $(subst /make.clean,,$@) -s clean +-- +2.17.1 + diff --git a/meta-xilinx-standalone/recipes-bsp/embeddedsw/embeddedsw/2023.1/makefile-skip-copy_bsp.sh.patch b/meta-xilinx-standalone/recipes-bsp/embeddedsw/embeddedsw/2023.1/makefile-skip-copy_bsp.sh.patch new file mode 100644 index 000000000..1300c7e17 --- /dev/null +++ b/meta-xilinx-standalone/recipes-bsp/embeddedsw/embeddedsw/2023.1/makefile-skip-copy_bsp.sh.patch @@ -0,0 +1,104 @@ +From d703670357546d9aab66baea1f6751ba1cbdf7ad Mon Sep 17 00:00:00 2001 +From: Mark Hatle +Date: Wed, 7 Dec 2022 15:30:23 -0800 +Subject: [PATCH] Prevent makefile from calling copy_bsp.sh + +If we call copy_bsp.sh we will undo any manual compliation steps we +have already done. Avoid this. + +YP integration specific + +Signed-off-by: Mark Hatle +--- + lib/sw_apps/versal_plm/src/versal/Makefile | 4 ++-- + lib/sw_apps/versal_plm/src/versal_net/Makefile | 4 ++-- + lib/sw_apps/versal_psmfw/src/versal/Makefile | 4 ++-- + lib/sw_apps/versal_psmfw/src/versal_net/Makefile | 6 +++--- + lib/sw_apps/zynqmp_pmufw/src/Makefile | 4 ++-- + 5 files changed, 11 insertions(+), 11 deletions(-) + +diff --git a/lib/sw_apps/versal_plm/src/versal/Makefile b/lib/sw_apps/versal_plm/src/versal/Makefile +index d1ebd1d374..bfb8c83adb 100644 +--- a/lib/sw_apps/versal_plm/src/versal/Makefile ++++ b/lib/sw_apps/versal_plm/src/versal/Makefile +@@ -32,8 +32,8 @@ $(EXEC): $(LIBS) $(OBJS) $(INCLUDES) + $(CC) -o $@ $(OBJS) $(CC_FLAGS) $(CFLAGS) $(LN_FLAGS) $(LIBPATH) $(LSCRIPT) + + $(LIBS): +- echo "Copying BSP files" +- ../../misc/versal/copy_bsp.sh ++ #echo "Copying BSP files" ++ #../../misc/versal/copy_bsp.sh + echo "Compiling bsp" + $(MAKE) -C ../../misc/versal/versal_plm_bsp + +diff --git a/lib/sw_apps/versal_plm/src/versal_net/Makefile b/lib/sw_apps/versal_plm/src/versal_net/Makefile +index 39c7aa38e3..081d8f1b2e 100644 +--- a/lib/sw_apps/versal_plm/src/versal_net/Makefile ++++ b/lib/sw_apps/versal_plm/src/versal_net/Makefile +@@ -32,8 +32,8 @@ $(EXEC): $(LIBS) $(OBJS) $(INCLUDES) + $(CC) -o $@ $(OBJS) $(CC_FLAGS) $(CFLAGS) $(LN_FLAGS) $(LIBPATH) $(LSCRIPT) + + $(LIBS): +- echo "Copying BSP files" +- ../../misc/versal_net/copy_bsp.sh ++ #echo "Copying BSP files" ++ #../../misc/versal_net/copy_bsp.sh + echo "Compiling bsp" + $(MAKE) -C ../../misc/versal_net/versal_plm_bsp + +diff --git a/lib/sw_apps/versal_psmfw/src/versal/Makefile b/lib/sw_apps/versal_psmfw/src/versal/Makefile +index 1572bbbca9..ce182acaa7 100644 +--- a/lib/sw_apps/versal_psmfw/src/versal/Makefile ++++ b/lib/sw_apps/versal_psmfw/src/versal/Makefile +@@ -34,8 +34,8 @@ $(EXEC): $(LIBS) $(OBJS) $(INCLUDES) + $(CC) -o $@ $(OBJS) $(CC_FLAGS) $(CFLAGS) $(LN_FLAGS) $(LIBPATH) $(LSCRIPT) + + $(LIBS): +- echo "Copying BSP files" +- ../../misc/copy_bsp.sh ++ #echo "Copying BSP files" ++ #../../misc/copy_bsp.sh + echo "Compiling bsp" + $(MAKE) -C ../../misc/versal_psmfw_bsp + +diff --git a/lib/sw_apps/versal_psmfw/src/versal_net/Makefile b/lib/sw_apps/versal_psmfw/src/versal_net/Makefile +index a72ffa1de2..3670310daa 100644 +--- a/lib/sw_apps/versal_psmfw/src/versal_net/Makefile ++++ b/lib/sw_apps/versal_psmfw/src/versal_net/Makefile +@@ -34,8 +34,8 @@ $(EXEC): $(LIBS) $(OBJS) $(INCLUDES) + $(CC) -o $@ $(OBJS) $(CC_FLAGS) $(CFLAGS) $(LN_FLAGS) $(LIBPATH) $(LSCRIPT) + + $(LIBS): +- echo "Copying BSP files" +- ../../misc/versal_net/copy_bsp.sh ++ #echo "Copying BSP files" ++ #../../misc/versal_net/copy_bsp.sh + echo "Compiling bsp" + $(MAKE) -C ../../misc/versal_net/versal_psmfw_bsp + +@@ -44,4 +44,4 @@ $(LIBS): + + clean: + rm -rf $(OBJS) $(LIBS) $(EXEC) *.o *.d ../common/*.o ../common/*.d +- rm -rf ../../misc/versal_net/versal_psmfw_bsp +\ No newline at end of file ++ rm -rf ../../misc/versal_net/versal_psmfw_bsp +diff --git a/lib/sw_apps/zynqmp_pmufw/src/Makefile b/lib/sw_apps/zynqmp_pmufw/src/Makefile +index 1750c0a329..17f6a545ea 100644 +--- a/lib/sw_apps/zynqmp_pmufw/src/Makefile ++++ b/lib/sw_apps/zynqmp_pmufw/src/Makefile +@@ -28,8 +28,8 @@ $(EXEC): $(LIBS) $(OBJS) $(INCLUDES) + $(CC) -o $@ $(OBJS) $(CC_FLAGS) $(CFLAGS) $(LN_FLAGS) $(LIBPATH) $(LSCRIPT) + + $(LIBS): +- echo "Copying BSP files" +- ../misc/copy_bsp.sh ++ #echo "Copying BSP files" ++ #../misc/copy_bsp.sh + echo "Compiling bsp" + $(MAKE) -C ../misc/zynqmp_pmufw_bsp + +-- +2.17.1 + diff --git a/meta-xilinx-standalone/recipes-bsp/embeddedsw/fsbl-firmware_2023.1.bb b/meta-xilinx-standalone/recipes-bsp/embeddedsw/fsbl-firmware_2023.1.bb new file mode 100644 index 000000000..8816dc4de --- /dev/null +++ b/meta-xilinx-standalone/recipes-bsp/embeddedsw/fsbl-firmware_2023.1.bb @@ -0,0 +1,11 @@ +require fsbl-firmware.inc + +FILESPATH .= ":${FILE_DIRNAME}/embeddedsw/2023.1:${FILE_DIRNAME}/embeddedsw" + +SRC_URI += " \ + file://makefile-skip-copy_bsp.sh.patch \ + file://fsbl-fixups.patch \ + " + +# This version does not build for zynq +COMPATIBLE_MACHINE:zynq = "none" diff --git a/meta-xilinx-standalone/recipes-bsp/embeddedsw/fsbl-firmware_git.bb b/meta-xilinx-standalone/recipes-bsp/embeddedsw/fsbl-firmware_git.bb index 0094384a6..f5e55ecca 100644 --- a/meta-xilinx-standalone/recipes-bsp/embeddedsw/fsbl-firmware_git.bb +++ b/meta-xilinx-standalone/recipes-bsp/embeddedsw/fsbl-firmware_git.bb @@ -3,7 +3,7 @@ DEFAULT_PREFERENCE = "-1" require fsbl-firmware.inc -FILESPATH .= ":${FILE_DIRNAME}/embeddedsw" +FILESPATH .= ":${FILE_DIRNAME}/embeddedsw/2023.1:${FILE_DIRNAME}/embeddedsw" SRC_URI += " \ file://makefile-skip-copy_bsp.sh.patch \ diff --git a/meta-xilinx-standalone/recipes-bsp/embeddedsw/plm-firmware_2023.1.bb b/meta-xilinx-standalone/recipes-bsp/embeddedsw/plm-firmware_2023.1.bb new file mode 100644 index 000000000..37861b756 --- /dev/null +++ b/meta-xilinx-standalone/recipes-bsp/embeddedsw/plm-firmware_2023.1.bb @@ -0,0 +1,29 @@ +require plm-firmware.inc + +# Separate build directories for versal and versal-net +SOC_DIR = "versal" +SOC_DIR:versal-net = "versal_net" +B = "${S}/lib/sw_apps/versal_plm/src/${SOC_DIR}" + +BSP_DIR ?= "${B}/../../misc/versal_plm_bsp" + +FILESPATH .= ":${FILE_DIRNAME}/embeddedsw/2023.1:${FILE_DIRNAME}/embeddedsw" + +SRC_URI += " \ + file://makefile-skip-copy_bsp.sh.patch \ + file://0001-versal_fw-Fixup-core-makefiles.patch \ + " + +EXTRA_COMPILER_FLAGS = "-g -ffunction-sections -fdata-sections -Wall -Wextra -Os -flto -ffat-lto-objects" + +do_configure() { + # manually do the copy_bsp step first, so as to be able to fix up use of + # mb-* commands + ${B}/../../misc/${SOC_DIR}/copy_bsp.sh +} + +do_compile() { + oe_runmake + + ${MB_OBJCOPY} -O binary ${B}/${ESW_COMPONENT} ${B}/${ESW_COMPONENT}.bin +} diff --git a/meta-xilinx-standalone/recipes-bsp/embeddedsw/plm-firmware_git.bb b/meta-xilinx-standalone/recipes-bsp/embeddedsw/plm-firmware_git.bb index 2d06fa6a9..bbc7519f7 100644 --- a/meta-xilinx-standalone/recipes-bsp/embeddedsw/plm-firmware_git.bb +++ b/meta-xilinx-standalone/recipes-bsp/embeddedsw/plm-firmware_git.bb @@ -3,7 +3,14 @@ DEFAULT_PREFERENCE = "-1" require plm-firmware.inc -FILESPATH .= ":${FILE_DIRNAME}/embeddedsw" +# Separate build directories for versal and versal-net +SOC_DIR = "versal" +SOC_DIR:versal-net = "versal_net" +B = "${S}/lib/sw_apps/versal_plm/src/${SOC_DIR}" + +BSP_DIR ?= "${B}/../../misc/versal_plm_bsp" + +FILESPATH .= ":${FILE_DIRNAME}/embeddedsw/2023.1:${FILE_DIRNAME}/embeddedsw" SRC_URI += " \ file://makefile-skip-copy_bsp.sh.patch \ @@ -12,6 +19,12 @@ SRC_URI += " \ EXTRA_COMPILER_FLAGS = "-g -ffunction-sections -fdata-sections -Wall -Wextra -Os -flto -ffat-lto-objects" +do_configure() { + # manually do the copy_bsp step first, so as to be able to fix up use of + # mb-* commands + ${B}/../../misc/${SOC_DIR}/copy_bsp.sh +} + do_compile() { oe_runmake diff --git a/meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware_2023.1.bb b/meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware_2023.1.bb new file mode 100644 index 000000000..fe6deddca --- /dev/null +++ b/meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware_2023.1.bb @@ -0,0 +1,16 @@ +require pmu-firmware.inc + +FILESPATH .= ":${FILE_DIRNAME}/embeddedsw/2023.1:${FILE_DIRNAME}/embeddedsw" + +SRC_URI += " \ + file://makefile-skip-copy_bsp.sh.patch \ + file://0001-zynqmp_pmufw-Fixup-core-makefiles.patch \ + " + +EXTRA_COMPILER_FLAGS = "-ffunction-sections -fdata-sections -Wall -Wextra -Os -flto -ffat-lto-objects" + +do_compile() { + oe_runmake + + ${MB_OBJCOPY} -O binary ${B}/${ESW_COMPONENT} ${B}/${ESW_COMPONENT}.bin +} diff --git a/meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware_git.bb b/meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware_git.bb index 5d8060676..c55cd1497 100644 --- a/meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware_git.bb +++ b/meta-xilinx-standalone/recipes-bsp/embeddedsw/pmu-firmware_git.bb @@ -3,7 +3,7 @@ DEFAULT_PREFERENCE = "-1" require pmu-firmware.inc -FILESPATH .= ":${FILE_DIRNAME}/embeddedsw" +FILESPATH .= ":${FILE_DIRNAME}/embeddedsw/2023.1:${FILE_DIRNAME}/embeddedsw" SRC_URI += " \ file://makefile-skip-copy_bsp.sh.patch \ diff --git a/meta-xilinx-standalone/recipes-bsp/embeddedsw/psm-firmware_2023.1.bb b/meta-xilinx-standalone/recipes-bsp/embeddedsw/psm-firmware_2023.1.bb new file mode 100644 index 000000000..569c5a463 --- /dev/null +++ b/meta-xilinx-standalone/recipes-bsp/embeddedsw/psm-firmware_2023.1.bb @@ -0,0 +1,34 @@ +require psm-firmware.inc + +# Separate build directories for versal and versal-net +SOC_DIR = "versal" +SOC_DIR:versal-net = "versal_net" +B = "${S}/lib/sw_apps/versal_psmfw/src/${SOC_DIR}" + +BSP_DIR ?= "${B}/../../misc/versal_psmfw_bsp" + +FILESPATH .= ":${FILE_DIRNAME}/embeddedsw/2023.1:${FILE_DIRNAME}/embeddedsw" + +SRC_URI += " \ + file://makefile-skip-copy_bsp.sh.patch \ + file://0001-versal_fw-Fixup-core-makefiles.patch \ + " + +EXTRA_COMPILER_FLAGS = "-g -ffunction-sections -fdata-sections -Wall -Wextra" + +# Override default since we're in a subdirectory deeper now... +do_configure() { + # manually do the copy_bsp step first, so as to be able to fix up use of + # mb-* commands + if [ ${SOC_DIR} != "versal" ]; then + ${B}/../../misc/${SOC_DIR}/copy_bsp.sh + else + ${B}/../../misc/copy_bsp.sh + fi +} + +do_compile() { + oe_runmake + + ${MB_OBJCOPY} -O binary ${B}/${ESW_COMPONENT} ${B}/${ESW_COMPONENT}.bin +} diff --git a/meta-xilinx-standalone/recipes-bsp/embeddedsw/psm-firmware_git.bb b/meta-xilinx-standalone/recipes-bsp/embeddedsw/psm-firmware_git.bb index d04d91830..42e0a95f4 100644 --- a/meta-xilinx-standalone/recipes-bsp/embeddedsw/psm-firmware_git.bb +++ b/meta-xilinx-standalone/recipes-bsp/embeddedsw/psm-firmware_git.bb @@ -3,7 +3,14 @@ DEFAULT_PREFERENCE = "-1" require psm-firmware.inc -FILESPATH .= ":${FILE_DIRNAME}/embeddedsw" +# Separate build directories for versal and versal-net +SOC_DIR = "versal" +SOC_DIR:versal-net = "versal_net" +B = "${S}/lib/sw_apps/versal_psmfw/src/${SOC_DIR}" + +BSP_DIR ?= "${B}/../../misc/versal_psmfw_bsp" + +FILESPATH .= ":${FILE_DIRNAME}/embeddedsw/2023.1:${FILE_DIRNAME}/embeddedsw" SRC_URI += " \ file://makefile-skip-copy_bsp.sh.patch \ @@ -12,6 +19,17 @@ SRC_URI += " \ EXTRA_COMPILER_FLAGS = "-g -ffunction-sections -fdata-sections -Wall -Wextra" +# Override default since we're in a subdirectory deeper now... +do_configure() { + # manually do the copy_bsp step first, so as to be able to fix up use of + # mb-* commands + if [ ${SOC_DIR} != "versal" ]; then + ${B}/../../misc/${SOC_DIR}/copy_bsp.sh + else + ${B}/../../misc/copy_bsp.sh + fi +} + do_compile() { oe_runmake diff --git a/meta-xilinx-vendor/README.md b/meta-xilinx-vendor/README.md index 00909ed6c..1903df177 100644 --- a/meta-xilinx-vendor/README.md +++ b/meta-xilinx-vendor/README.md @@ -49,4 +49,4 @@ This layer depends on: https://git.yoctoproject.org/meta-xilinx (official version) https://github.com/Xilinx/meta-xilinx (development and amd xilinx release) layers: meta-xilinx-microblaze, meta-xilinx-core - branch: langdale or amd xilinx release version (e.g. rel-v2022.2) + branch: langdale or amd xilinx release version (e.g. rel-v2023.1)