summaryrefslogtreecommitdiffstats
path: root/meta-xilinx-standalone-experimental/recipes-core
diff options
context:
space:
mode:
authorMark Hatle <mark.hatle@amd.com>2023-06-19 14:44:38 -0700
committerMark Hatle <mark.hatle@amd.com>2023-06-21 15:07:01 -0500
commitc8751de878c0ea341faff089d0e16decbf6176c9 (patch)
tree6e4abd37732ae0213a72b94f84dbb45ffd1ae6ae /meta-xilinx-standalone-experimental/recipes-core
parentcdaf7fe497b1c62e0463fa7eb6137a0d304cbef5 (diff)
downloadmeta-xilinx-c8751de878c0ea341faff089d0e16decbf6176c9.tar.gz
dt-processor.sh: Define dts subdirectory differently
The generated DTS files will be installed into the same directory as the automatically generated machine name. This provides a method for the user to specify an alternative directory name instead. Note, if the machine name is defined by the user, the dts directory is not changed from the default without using this additional argument. Signed-off-by: Mark Hatle <mark.hatle@amd.com>
Diffstat (limited to 'meta-xilinx-standalone-experimental/recipes-core')
-rwxr-xr-xmeta-xilinx-standalone-experimental/recipes-core/meta/files/dt-processor.sh58
1 files changed, 32 insertions, 26 deletions
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 6482a9bf..c51e209c 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
@@ -40,6 +40,7 @@ $0
40 [-o <overlay_dts>] Generate overlay dts 40 [-o <overlay_dts>] Generate overlay dts
41 [-e <external_fpga>] Apply a partial overlay 41 [-e <external_fpga>] Apply a partial overlay
42 [-m <machine_conf>] The name of the machine .conf to generate 42 [-m <machine_conf>] The name of the machine .conf to generate
43 [-D <dts_name>] Directory to place DTS files in (usually auto detected from DTS)
43 [-t <machine>] Machine type: zynqmp or versal (usually auto detected) 44 [-t <machine>] Machine type: zynqmp or versal (usually auto detected)
44 [-v <soc_variant>] SOC Variant: cg, dr, eg, ev, ai-prime, premium (usually auto detected) 45 [-v <soc_variant>] SOC Variant: cg, dr, eg, ev, ai-prime, premium (usually auto detected)
45 [-p <psu_init_path>] Path to psu_init files, defaults to system_dts path 46 [-p <psu_init_path>] Path to psu_init files, defaults to system_dts path
@@ -55,7 +56,7 @@ parse_args() {
55 [ $# -eq 0 ] && usage 56 [ $# -eq 0 ] && usage
56 [ $1 = "--help" ] && usage 57 [ $1 = "--help" ] && usage
57 58
58 while getopts ":c:s:d:o:e:m:l:hP:p:i:t:v:" opt; do 59 while getopts ":c:s:d:o:e:m:D:l:hP:p:i:t:v:" opt; do
59 case ${opt} in 60 case ${opt} in
60 c) config_dir=$OPTARG ;; 61 c) config_dir=$OPTARG ;;
61 s) system_dts=$OPTARG ;; 62 s) system_dts=$OPTARG ;;
@@ -63,6 +64,7 @@ parse_args() {
63 d) domain_file=$OPTARG ;; 64 d) domain_file=$OPTARG ;;
64 e) external_fpga=$OPTARG ;; 65 e) external_fpga=$OPTARG ;;
65 m) mach_conf=$OPTARG ; mach_conf=${mach_conf%%.conf} ;; 66 m) mach_conf=$OPTARG ; mach_conf=${mach_conf%%.conf} ;;
67 D) dts_name=$OPTARG ;;
66 t) machine=$OPTARG ;; 68 t) machine=$OPTARG ;;
67 v) soc_variant=$OPTARG ;; 69 v) soc_variant=$OPTARG ;;
68 p) psu_init_path=$OPTARG ;; 70 p) psu_init_path=$OPTARG ;;
@@ -200,7 +202,7 @@ cortex_a53_linux() {
200 202
201 # Check if it is overlay dts otherwise just create linux dts 203 # Check if it is overlay dts otherwise just create linux dts
202 ( 204 (
203 cd dts/${mach_conf} || error "Unable to cd to dts/${mach_conf} dir" 205 cd dts/${dts_name} || error "Unable to cd to dts/${dts_name} dir"
204 if [ "${overlay_dts}" = "true" ]; then 206 if [ "${overlay_dts}" = "true" ]; then
205 if [ "${external_fpga}" = "true" ]; then 207 if [ "${external_fpga}" = "true" ]; then
206 LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" -- xlnx_overlay_dt ${machine} full \ 208 LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" -- xlnx_overlay_dt ${machine} full \
@@ -233,7 +235,7 @@ cortex_a53_linux() {
233 235
234 ## Generate a multiconfig 236 ## Generate a multiconfig
235 cat <<EOF >"${conf_file}" 237 cat <<EOF >"${conf_file}"
236CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${mach_conf}/${dts_file}" 238CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_name}/${dts_file}"
237 239
238TMPDIR = "\${BASE_TMPDIR}/tmp-${mc_name}" 240TMPDIR = "\${BASE_TMPDIR}/tmp-${mc_name}"
239EOF 241EOF
@@ -269,7 +271,7 @@ cortex_a53_baremetal() {
269 271
270 # Build device tree 272 # Build device tree
271 ( 273 (
272 cd dts/${mach_conf} || error "Unable to cd to dts/${mach_conf} dir" 274 cd dts/${dts_name} || error "Unable to cd to dts/${dts_name} dir"
273 if [ -n "${domain_file}" ]; then 275 if [ -n "${domain_file}" ]; then
274 LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' \ 276 LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' \
275 -i "${domain_file}" -i "${lops_dir}/lop-a53-imux.dts" "${system_dts}" "${dts_file}" \ 277 -i "${domain_file}" -i "${lops_dir}/lop-a53-imux.dts" "${system_dts}" "${dts_file}" \
@@ -310,7 +312,7 @@ EOF
310 cat /dev/null >"${conf_file}" 312 cat /dev/null >"${conf_file}"
311 fi 313 fi
312 cat <<EOF >>"${conf_file}" 314 cat <<EOF >>"${conf_file}"
313CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${mach_conf}/${dts_file}" 315CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_name}/${dts_file}"
314 316
315ESW_MACHINE = "$3" 317ESW_MACHINE = "$3"
316DEFAULTTUNE = "cortexa53" 318DEFAULTTUNE = "cortexa53"
@@ -336,7 +338,7 @@ cortex_a53_freertos() {
336 338
337 # Build device tree 339 # Build device tree
338 ( 340 (
339 cd dts/${mach_conf} || error "Unable to cd to dts/${mach_conf} dir" 341 cd dts/${dts_name} || error "Unable to cd to dts/${dts_name} dir"
340 if [ -n "${domain_file}" ]; then 342 if [ -n "${domain_file}" ]; then
341 LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' \ 343 LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' \
342 -i "${domain_file}" -i "${lops_dir}/lop-a53-imux.dts" "${system_dts}" "${dts_file}" \ 344 -i "${domain_file}" -i "${lops_dir}/lop-a53-imux.dts" "${system_dts}" "${dts_file}" \
@@ -362,7 +364,7 @@ cortex_a53_freertos() {
362 sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," 364 sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES,"
363 365
364 cat <<EOF >"${conf_file}" 366 cat <<EOF >"${conf_file}"
365CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${mach_conf}/${dts_file}" 367CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_name}/${dts_file}"
366 368
367ESW_MACHINE = "$3" 369ESW_MACHINE = "$3"
368DEFAULTTUNE = "cortexa53" 370DEFAULTTUNE = "cortexa53"
@@ -397,7 +399,7 @@ cortex_a72_linux() {
397 fi 399 fi
398 400
399 ( 401 (
400 cd dts/${mach_conf} || error "Unable to cd to dts/${mach_conf} dir" 402 cd dts/${dts_name} || error "Unable to cd to dts/${dts_name} dir"
401 # Check if it is overlay dts otherwise just create linux dts 403 # Check if it is overlay dts otherwise just create linux dts
402 if [ "${overlay_dts}" = "true" ]; then 404 if [ "${overlay_dts}" = "true" ]; then
403 # As there is no partial support on Versal, As per fpga manager implementation there is 405 # As there is no partial support on Versal, As per fpga manager implementation there is
@@ -433,7 +435,7 @@ cortex_a72_linux() {
433 435
434 ## Generate a multiconfig 436 ## Generate a multiconfig
435 cat <<EOF >"${conf_file}" 437 cat <<EOF >"${conf_file}"
436CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${mach_conf}/${dts_file}" 438CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_name}/${dts_file}"
437 439
438TMPDIR = "\${BASE_TMPDIR}/tmp-${mc_name}" 440TMPDIR = "\${BASE_TMPDIR}/tmp-${mc_name}"
439EOF 441EOF
@@ -454,7 +456,7 @@ cortex_a72_baremetal() {
454 456
455 # Build device tree 457 # Build device tree
456 ( 458 (
457 cd dts/${mach_conf} || error "Unable to cd to dts/${mach_conf} dir" 459 cd dts/${dts_name} || error "Unable to cd to dts/${dts_name} dir"
458 if [ -n "${domain_file}" ]; then 460 if [ -n "${domain_file}" ]; then
459 LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' \ 461 LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' \
460 -i "${domain_file}" -i "${lops_dir}/lop-a72-imux.dts" "${system_dts}" "${dts_file}" \ 462 -i "${domain_file}" -i "${lops_dir}/lop-a72-imux.dts" "${system_dts}" "${dts_file}" \
@@ -480,7 +482,7 @@ cortex_a72_baremetal() {
480 sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," 482 sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES,"
481 483
482 cat <<EOF >"${conf_file}" 484 cat <<EOF >"${conf_file}"
483CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${mach_conf}/${dts_file}" 485CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_name}/${dts_file}"
484 486
485ESW_MACHINE = "$3" 487ESW_MACHINE = "$3"
486DEFAULTTUNE = "cortexa72" 488DEFAULTTUNE = "cortexa72"
@@ -506,7 +508,7 @@ cortex_a72_freertos() {
506 508
507 # Build device tree 509 # Build device tree
508 ( 510 (
509 cd dts/${mach_conf} || error "Unable to cd to dts/${mach_conf} dir" 511 cd dts/${dts_name} || error "Unable to cd to dts/${dts_name} dir"
510 if [ -n "${domain_file}" ]; then 512 if [ -n "${domain_file}" ]; then
511 LOPPER_DTC_FLAGS="-b 0 -@" lopper -f --enhanced -x '*.yaml' \ 513 LOPPER_DTC_FLAGS="-b 0 -@" lopper -f --enhanced -x '*.yaml' \
512 -i "${domain_file}" -i "${lops_dir}/lop-a72-imux.dts" "${system_dts}" "${dts_file}" \ 514 -i "${domain_file}" -i "${lops_dir}/lop-a72-imux.dts" "${system_dts}" "${dts_file}" \
@@ -532,7 +534,7 @@ cortex_a72_freertos() {
532 sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," 534 sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES,"
533 535
534 cat <<EOF >"${conf_file}" 536 cat <<EOF >"${conf_file}"
535CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${mach_conf}/${dts_file}" 537CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_name}/${dts_file}"
536 538
537ESW_MACHINE = "$3" 539ESW_MACHINE = "$3"
538DEFAULTTUNE = "cortexa72" 540DEFAULTTUNE = "cortexa72"
@@ -573,7 +575,7 @@ cortex_r5_baremetal() {
573 575
574 # Build device tree 576 # Build device tree
575 ( 577 (
576 cd dts/${mach_conf} || error "Unable to cd to dts/${mach_conf} dir" 578 cd dts/${dts_name} || error "Unable to cd to dts/${dts_name} dir"
577 if [ -n "$domain_file" ]; then 579 if [ -n "$domain_file" ]; then
578 LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' \ 580 LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' \
579 -i "${domain_file}" -i "${lops_dir}/lop-r5-imux.dts" "${system_dts}" "${dts_file}" \ 581 -i "${domain_file}" -i "${lops_dir}/lop-r5-imux.dts" "${system_dts}" "${dts_file}" \
@@ -613,7 +615,7 @@ EOF
613 cat /dev/null >"${conf_file}" 615 cat /dev/null >"${conf_file}"
614 fi 616 fi
615 cat <<EOF >>"${conf_file}" 617 cat <<EOF >>"${conf_file}"
616CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${mach_conf}/${dts_file}" 618CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_name}/${dts_file}"
617 619
618ESW_MACHINE = "$3" 620ESW_MACHINE = "$3"
619DEFAULTTUNE = "cortexr5" 621DEFAULTTUNE = "cortexr5"
@@ -639,7 +641,7 @@ cortex_r5_freertos() {
639 641
640 # Build device tree 642 # Build device tree
641 ( 643 (
642 cd dts/${mach_conf} || error "Unable to cd to dts/${mach_conf} dir" 644 cd dts/${dts_name} || error "Unable to cd to dts/${dts_name} dir"
643 if [ -n "$domain_file" ]; then 645 if [ -n "$domain_file" ]; then
644 LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' \ 646 LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' \
645 -i "${domain_file}" -i "${lops_dir}/lop-r5-imux.dts" "${system_dts}" "${dts_file}" \ 647 -i "${domain_file}" -i "${lops_dir}/lop-r5-imux.dts" "${system_dts}" "${dts_file}" \
@@ -665,7 +667,7 @@ cortex_r5_freertos() {
665 sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," 667 sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES,"
666 668
667 cat <<EOF >"${conf_file}" 669 cat <<EOF >"${conf_file}"
668CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${mach_conf}/${dts_file}" 670CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_name}/${dts_file}"
669 671
670ESW_MACHINE = "$3" 672ESW_MACHINE = "$3"
671DEFAULTTUNE = "cortexr5" 673DEFAULTTUNE = "cortexr5"
@@ -685,7 +687,7 @@ process_microblaze() {
685 687
686 mkdir -p machine/include/${mach_conf} 688 mkdir -p machine/include/${mach_conf}
687 ( 689 (
688 cd dts/${mach_conf} || error "Unable to cd to dts/${mach_conf} dir" 690 cd dts/${dts_name} || error "Unable to cd to dts/${dts_name} dir"
689 LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -i "${lops_dir}/lop-microblaze-yocto.dts" "${system_dts}" \ 691 LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -i "${lops_dir}/lop-microblaze-yocto.dts" "${system_dts}" \
690 || error "lopper failed" 692 || error "lopper failed"
691 rm -f lop-microblaze-yocto.dts.dtb 693 rm -f lop-microblaze-yocto.dts.dtb
@@ -715,7 +717,7 @@ pmu-microblaze() {
715 717
716 # Build device tree 718 # Build device tree
717 ( 719 (
718 cd dts/${mach_conf} || error "Unable to cd to dts/${mach_conf} dir" 720 cd dts/${dts_name} || error "Unable to cd to dts/${dts_name} dir"
719 LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" "${dts_file}" || error "lopper failed" 721 LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" "${dts_file}" || error "lopper failed"
720 ) 722 )
721 723
@@ -733,7 +735,7 @@ pmu-microblaze() {
733 sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," 735 sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES,"
734 736
735 cat <<EOF >"${conf_file}" 737 cat <<EOF >"${conf_file}"
736CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${mach_conf}/${dts_file}" 738CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_name}/${dts_file}"
737 739
738ESW_MACHINE = "$1" 740ESW_MACHINE = "$1"
739 741
@@ -766,7 +768,7 @@ pmc-microblaze() {
766 768
767 # Build device tree 769 # Build device tree
768 ( 770 (
769 cd dts/${mach_conf} || error "Unable to cd to dts/${mach_conf} dir" 771 cd dts/${dts_name} || error "Unable to cd to dts/${dts_name} dir"
770 LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" "${dts_file}" || error "lopper failed" 772 LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" "${dts_file}" || error "lopper failed"
771 ) 773 )
772 774
@@ -784,7 +786,7 @@ pmc-microblaze() {
784 sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," 786 sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES,"
785 787
786 cat <<EOF >"${conf_file}" 788 cat <<EOF >"${conf_file}"
787CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${mach_conf}/${dts_file}" 789CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_name}/${dts_file}"
788 790
789ESW_MACHINE = "$1" 791ESW_MACHINE = "$1"
790 792
@@ -817,7 +819,7 @@ psm-microblaze() {
817 819
818 # Build device tree 820 # Build device tree
819 ( 821 (
820 cd dts/${mach_conf} || error "Unable to cd to dts/${mach_conf} dir" 822 cd dts/${dts_name} || error "Unable to cd to dts/${dts_name} dir"
821 LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" "${dts_file}" || error "lopper failed" 823 LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" "${dts_file}" || error "lopper failed"
822 ) 824 )
823 825
@@ -835,7 +837,7 @@ psm-microblaze() {
835 sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," 837 sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES,"
836 838
837 cat <<EOF >"${conf_file}" 839 cat <<EOF >"${conf_file}"
838CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${mach_conf}/${dts_file}" 840CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_name}/${dts_file}"
839 841
840ESW_MACHINE = "$1" 842ESW_MACHINE = "$1"
841 843
@@ -891,7 +893,7 @@ EOF
891 cat <<EOF >>"${conf_file}" 893 cat <<EOF >>"${conf_file}"
892 894
893# Set the default (linux) domain device tree 895# Set the default (linux) domain device tree
894CONFIG_DTFILE ?= "\${TOPDIR}/conf/dts/${mach_conf}/${system_conf}" 896CONFIG_DTFILE ?= "\${TOPDIR}/conf/dts/${dts_name}/${system_conf}"
895CONFIG_DTFILE[vardepsexclude] += "TOPDIR" 897CONFIG_DTFILE[vardepsexclude] += "TOPDIR"
896 898
897require conf/machine/${incmachine} 899require conf/machine/${incmachine}
@@ -1172,6 +1174,10 @@ if [ -z "${mach_conf}" ]; then
1172 mach_conf=${local_mach_conf} 1174 mach_conf=${local_mach_conf}
1173fi 1175fi
1174 1176
1177if [ -z "${dts_name}" ]; then
1178 dts_name=${local_mach_conf}
1179fi
1180
1175# Generate CPU list 1181# Generate CPU list
1176( 1182(
1177 cd dts || error "Unable to cd to dts dir" 1183 cd dts || error "Unable to cd to dts dir"
@@ -1183,7 +1189,7 @@ fi
1183detect_machine 1189detect_machine
1184# Now that we know the machine name, we can create the directory 1190# Now that we know the machine name, we can create the directory
1185mkdir -p machine/include/${mach_conf} 1191mkdir -p machine/include/${mach_conf}
1186mkdir -p dts/${mach_conf} 1192mkdir -p dts/${dts_name}
1187 1193
1188echo "System Configuration:" 1194echo "System Configuration:"
1189echo "MODEL = \"${model}\"" 1195echo "MODEL = \"${model}\""