diff options
Diffstat (limited to 'meta-xilinx-standalone-experimental/recipes-core/meta/files/dt-processor.sh')
-rwxr-xr-x | meta-xilinx-standalone-experimental/recipes-core/meta/files/dt-processor.sh | 107 |
1 files changed, 71 insertions, 36 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 939fabe4..1c754689 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 | |||
@@ -1,6 +1,7 @@ | |||
1 | #! /bin/bash | 1 | #! /bin/bash |
2 | 2 | ||
3 | # Copyright (c) 2021 Xilinx Inc | 3 | # Copyright (c) 2021-2022 Xilinx Inc |
4 | # Copyright (C) 2022-2023 Advanced Micro Devices, Inc. All rights reserved. | ||
4 | # | 5 | # |
5 | # Permission is hereby granted, free of charge, to any person obtaining a copy | 6 | # Permission is hereby granted, free of charge, to any person obtaining a copy |
6 | # of this software and associated documentation files (the "Software"), to deal | 7 | # of this software and associated documentation files (the "Software"), to deal |
@@ -39,10 +40,13 @@ $0 | |||
39 | [-o <overlay_dts>] Generate overlay dts | 40 | [-o <overlay_dts>] Generate overlay dts |
40 | [-e <external_fpga>] Apply a partial overlay | 41 | [-e <external_fpga>] Apply a partial overlay |
41 | [-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_path>] Absolute path or subdirectory of conf/dts to place DTS files in (usually auto detected from DTS) | ||
42 | [-t <machine>] Machine type: zynqmp or versal (usually auto detected) | 44 | [-t <machine>] Machine type: zynqmp or versal (usually auto detected) |
43 | [-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) |
46 | [-r <require_machine>] This machine will be required, instead of the generic machine if defined | ||
47 | [-O <overrides>] Optional, can add additional overrides to the generated machine | ||
44 | [-p <psu_init_path>] Path to psu_init files, defaults to system_dts path | 48 | [-p <psu_init_path>] Path to psu_init files, defaults to system_dts path |
45 | [-i <pdu_path>] Path to the pdi file | 49 | [-i <pdi_path>] Path to the pdi file |
46 | [-l <config_file>] write local.conf changes to this file | 50 | [-l <config_file>] write local.conf changes to this file |
47 | [-P <petalinux_schema>] Path to petalinux schema file | 51 | [-P <petalinux_schema>] Path to petalinux schema file |
48 | 52 | ||
@@ -54,7 +58,7 @@ parse_args() { | |||
54 | [ $# -eq 0 ] && usage | 58 | [ $# -eq 0 ] && usage |
55 | [ $1 = "--help" ] && usage | 59 | [ $1 = "--help" ] && usage |
56 | 60 | ||
57 | while getopts ":c:s:d:o:e:m:l:hP:p:i:t:v:" opt; do | 61 | while getopts ":c:s:d:o:e:m:D:l:hP:p:i:t:v:r:O:" opt; do |
58 | case ${opt} in | 62 | case ${opt} in |
59 | c) config_dir=$OPTARG ;; | 63 | c) config_dir=$OPTARG ;; |
60 | s) system_dts=$OPTARG ;; | 64 | s) system_dts=$OPTARG ;; |
@@ -62,8 +66,11 @@ parse_args() { | |||
62 | d) domain_file=$OPTARG ;; | 66 | d) domain_file=$OPTARG ;; |
63 | e) external_fpga=$OPTARG ;; | 67 | e) external_fpga=$OPTARG ;; |
64 | m) mach_conf=$OPTARG ; mach_conf=${mach_conf%%.conf} ;; | 68 | m) mach_conf=$OPTARG ; mach_conf=${mach_conf%%.conf} ;; |
69 | D) dts_path=$OPTARG ;; | ||
65 | t) machine=$OPTARG ;; | 70 | t) machine=$OPTARG ;; |
66 | v) soc_variant=$OPTARG ;; | 71 | v) soc_variant=$OPTARG ;; |
72 | r) incmachine=$OPTARG ;; | ||
73 | O) overrides=$OPTARG ;; | ||
67 | p) psu_init_path=$OPTARG ;; | 74 | p) psu_init_path=$OPTARG ;; |
68 | i) pdi_path=$OPTARG ;; | 75 | i) pdi_path=$OPTARG ;; |
69 | l) localconf=$OPTARG ;; | 76 | l) localconf=$OPTARG ;; |
@@ -133,11 +140,15 @@ detect_machine() { | |||
133 | soc_variant="hbm" ;; | 140 | soc_variant="hbm" ;; |
134 | # Special Case Starter Kit SOMs | 141 | # Special Case Starter Kit SOMs |
135 | xck26) | 142 | xck26) |
136 | incmachine="k26-smk.conf" | 143 | if [ -z "${incmachine}" ]; then |
144 | incmachine="k26-smk.conf" | ||
145 | fi | ||
137 | machine="zynqmp" | 146 | machine="zynqmp" |
138 | soc_variant="ev" ;; | 147 | soc_variant="ev" ;; |
139 | xck24) | 148 | xck24) |
140 | incmachine="k24-smk.conf" | 149 | if [ -z "${incmachine}" ]; then |
150 | incmachine="k24-smk.conf" | ||
151 | fi | ||
141 | machine="zynqmp" | 152 | machine="zynqmp" |
142 | soc_variant="eg" ;; | 153 | soc_variant="eg" ;; |
143 | esac | 154 | esac |
@@ -199,7 +210,7 @@ cortex_a53_linux() { | |||
199 | 210 | ||
200 | # Check if it is overlay dts otherwise just create linux dts | 211 | # Check if it is overlay dts otherwise just create linux dts |
201 | ( | 212 | ( |
202 | cd dts || error "Unable to cd to dts dir" | 213 | cd ${dts_path} || error "Unable to cd to ${dts_path} dir" |
203 | if [ "${overlay_dts}" = "true" ]; then | 214 | if [ "${overlay_dts}" = "true" ]; then |
204 | if [ "${external_fpga}" = "true" ]; then | 215 | if [ "${external_fpga}" = "true" ]; then |
205 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" -- xlnx_overlay_dt ${machine} full \ | 216 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" -- xlnx_overlay_dt ${machine} full \ |
@@ -232,7 +243,7 @@ cortex_a53_linux() { | |||
232 | 243 | ||
233 | ## Generate a multiconfig | 244 | ## Generate a multiconfig |
234 | cat <<EOF >"${conf_file}" | 245 | cat <<EOF >"${conf_file}" |
235 | CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_file}" | 246 | CONFIG_DTFILE = "${dts_file_path}/${dts_file}" |
236 | 247 | ||
237 | TMPDIR = "\${BASE_TMPDIR}/tmp-${mc_name}" | 248 | TMPDIR = "\${BASE_TMPDIR}/tmp-${mc_name}" |
238 | EOF | 249 | EOF |
@@ -268,7 +279,7 @@ cortex_a53_baremetal() { | |||
268 | 279 | ||
269 | # Build device tree | 280 | # Build device tree |
270 | ( | 281 | ( |
271 | cd dts || error "Unable to cd to dts dir" | 282 | cd ${dts_path} || error "Unable to cd to ${dts_path} dir" |
272 | if [ -n "${domain_file}" ]; then | 283 | if [ -n "${domain_file}" ]; then |
273 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' \ | 284 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' \ |
274 | -i "${domain_file}" -i "${lops_dir}/lop-a53-imux.dts" "${system_dts}" "${dts_file}" \ | 285 | -i "${domain_file}" -i "${lops_dir}/lop-a53-imux.dts" "${system_dts}" "${dts_file}" \ |
@@ -309,7 +320,7 @@ EOF | |||
309 | cat /dev/null >"${conf_file}" | 320 | cat /dev/null >"${conf_file}" |
310 | fi | 321 | fi |
311 | cat <<EOF >>"${conf_file}" | 322 | cat <<EOF >>"${conf_file}" |
312 | CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_file}" | 323 | CONFIG_DTFILE = "${dts_file_path}/${dts_file}" |
313 | 324 | ||
314 | ESW_MACHINE = "$3" | 325 | ESW_MACHINE = "$3" |
315 | DEFAULTTUNE = "cortexa53" | 326 | DEFAULTTUNE = "cortexa53" |
@@ -335,7 +346,7 @@ cortex_a53_freertos() { | |||
335 | 346 | ||
336 | # Build device tree | 347 | # Build device tree |
337 | ( | 348 | ( |
338 | cd dts || error "Unable to cd to dts dir" | 349 | cd ${dts_path} || error "Unable to cd to ${dts_path} dir" |
339 | if [ -n "${domain_file}" ]; then | 350 | if [ -n "${domain_file}" ]; then |
340 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' \ | 351 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' \ |
341 | -i "${domain_file}" -i "${lops_dir}/lop-a53-imux.dts" "${system_dts}" "${dts_file}" \ | 352 | -i "${domain_file}" -i "${lops_dir}/lop-a53-imux.dts" "${system_dts}" "${dts_file}" \ |
@@ -361,7 +372,7 @@ cortex_a53_freertos() { | |||
361 | sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," | 372 | sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," |
362 | 373 | ||
363 | cat <<EOF >"${conf_file}" | 374 | cat <<EOF >"${conf_file}" |
364 | CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_file}" | 375 | CONFIG_DTFILE = "${dts_file_path}/${dts_file}" |
365 | 376 | ||
366 | ESW_MACHINE = "$3" | 377 | ESW_MACHINE = "$3" |
367 | DEFAULTTUNE = "cortexa53" | 378 | DEFAULTTUNE = "cortexa53" |
@@ -396,10 +407,10 @@ cortex_a72_linux() { | |||
396 | fi | 407 | fi |
397 | 408 | ||
398 | ( | 409 | ( |
399 | cd dts || error "Unable to cd to dts dir" | 410 | cd ${dts_path} || error "Unable to cd to ${dts_path} dir" |
400 | # Check if it is overlay dts otherwise just create linux dts | 411 | # Check if it is overlay dts otherwise just create linux dts |
401 | if [ "${overlay_dts}" = "true" ]; then | 412 | if [ "${overlay_dts}" = "true" ]; then |
402 | # As there is no partial support on Versal, As per fpga manager implementatin there is | 413 | # As there is no partial support on Versal, As per fpga manager implementation there is |
403 | # a flag "external_fpga" which says apply overlay without loading the bit file. | 414 | # a flag "external_fpga" which says apply overlay without loading the bit file. |
404 | if [ "${external_fpga}" = "true" ]; then | 415 | if [ "${external_fpga}" = "true" ]; then |
405 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" -- xlnx_overlay_dt \ | 416 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" -- xlnx_overlay_dt \ |
@@ -432,7 +443,7 @@ cortex_a72_linux() { | |||
432 | 443 | ||
433 | ## Generate a multiconfig | 444 | ## Generate a multiconfig |
434 | cat <<EOF >"${conf_file}" | 445 | cat <<EOF >"${conf_file}" |
435 | CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_file}" | 446 | CONFIG_DTFILE = "${dts_file_path}/${dts_file}" |
436 | 447 | ||
437 | TMPDIR = "\${BASE_TMPDIR}/tmp-${mc_name}" | 448 | TMPDIR = "\${BASE_TMPDIR}/tmp-${mc_name}" |
438 | EOF | 449 | EOF |
@@ -453,7 +464,7 @@ cortex_a72_baremetal() { | |||
453 | 464 | ||
454 | # Build device tree | 465 | # Build device tree |
455 | ( | 466 | ( |
456 | cd dts || error "Unable to cd to dts dir" | 467 | cd ${dts_path} || error "Unable to cd to ${dts_path} dir" |
457 | if [ -n "${domain_file}" ]; then | 468 | if [ -n "${domain_file}" ]; then |
458 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' \ | 469 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' \ |
459 | -i "${domain_file}" -i "${lops_dir}/lop-a72-imux.dts" "${system_dts}" "${dts_file}" \ | 470 | -i "${domain_file}" -i "${lops_dir}/lop-a72-imux.dts" "${system_dts}" "${dts_file}" \ |
@@ -479,7 +490,7 @@ cortex_a72_baremetal() { | |||
479 | sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," | 490 | sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," |
480 | 491 | ||
481 | cat <<EOF >"${conf_file}" | 492 | cat <<EOF >"${conf_file}" |
482 | CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_file}" | 493 | CONFIG_DTFILE = "${dts_file_path}/${dts_file}" |
483 | 494 | ||
484 | ESW_MACHINE = "$3" | 495 | ESW_MACHINE = "$3" |
485 | DEFAULTTUNE = "cortexa72" | 496 | DEFAULTTUNE = "cortexa72" |
@@ -505,7 +516,7 @@ cortex_a72_freertos() { | |||
505 | 516 | ||
506 | # Build device tree | 517 | # Build device tree |
507 | ( | 518 | ( |
508 | cd dts || error "Unable to cd to dts dir" | 519 | cd ${dts_path} || error "Unable to cd to ${dts_path} dir" |
509 | if [ -n "${domain_file}" ]; then | 520 | if [ -n "${domain_file}" ]; then |
510 | LOPPER_DTC_FLAGS="-b 0 -@" lopper -f --enhanced -x '*.yaml' \ | 521 | LOPPER_DTC_FLAGS="-b 0 -@" lopper -f --enhanced -x '*.yaml' \ |
511 | -i "${domain_file}" -i "${lops_dir}/lop-a72-imux.dts" "${system_dts}" "${dts_file}" \ | 522 | -i "${domain_file}" -i "${lops_dir}/lop-a72-imux.dts" "${system_dts}" "${dts_file}" \ |
@@ -531,7 +542,7 @@ cortex_a72_freertos() { | |||
531 | sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," | 542 | sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," |
532 | 543 | ||
533 | cat <<EOF >"${conf_file}" | 544 | cat <<EOF >"${conf_file}" |
534 | CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_file}" | 545 | CONFIG_DTFILE = "${dts_file_path}/${dts_file}" |
535 | 546 | ||
536 | ESW_MACHINE = "$3" | 547 | ESW_MACHINE = "$3" |
537 | DEFAULTTUNE = "cortexa72" | 548 | DEFAULTTUNE = "cortexa72" |
@@ -572,7 +583,7 @@ cortex_r5_baremetal() { | |||
572 | 583 | ||
573 | # Build device tree | 584 | # Build device tree |
574 | ( | 585 | ( |
575 | cd dts || error "Unable to cd to dts dir" | 586 | cd ${dts_path} || error "Unable to cd to ${dts_path} dir" |
576 | if [ -n "$domain_file" ]; then | 587 | if [ -n "$domain_file" ]; then |
577 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' \ | 588 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' \ |
578 | -i "${domain_file}" -i "${lops_dir}/lop-r5-imux.dts" "${system_dts}" "${dts_file}" \ | 589 | -i "${domain_file}" -i "${lops_dir}/lop-r5-imux.dts" "${system_dts}" "${dts_file}" \ |
@@ -612,7 +623,7 @@ EOF | |||
612 | cat /dev/null >"${conf_file}" | 623 | cat /dev/null >"${conf_file}" |
613 | fi | 624 | fi |
614 | cat <<EOF >>"${conf_file}" | 625 | cat <<EOF >>"${conf_file}" |
615 | CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_file}" | 626 | CONFIG_DTFILE = "${dts_file_path}/${dts_file}" |
616 | 627 | ||
617 | ESW_MACHINE = "$3" | 628 | ESW_MACHINE = "$3" |
618 | DEFAULTTUNE = "cortexr5" | 629 | DEFAULTTUNE = "cortexr5" |
@@ -638,7 +649,7 @@ cortex_r5_freertos() { | |||
638 | 649 | ||
639 | # Build device tree | 650 | # Build device tree |
640 | ( | 651 | ( |
641 | cd dts || error "Unable to cd to dts dir" | 652 | cd ${dts_path} || error "Unable to cd to ${dts_path} dir" |
642 | if [ -n "$domain_file" ]; then | 653 | if [ -n "$domain_file" ]; then |
643 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' \ | 654 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' \ |
644 | -i "${domain_file}" -i "${lops_dir}/lop-r5-imux.dts" "${system_dts}" "${dts_file}" \ | 655 | -i "${domain_file}" -i "${lops_dir}/lop-r5-imux.dts" "${system_dts}" "${dts_file}" \ |
@@ -664,7 +675,7 @@ cortex_r5_freertos() { | |||
664 | sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," | 675 | sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," |
665 | 676 | ||
666 | cat <<EOF >"${conf_file}" | 677 | cat <<EOF >"${conf_file}" |
667 | CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_file}" | 678 | CONFIG_DTFILE = "${dts_file_path}/${dts_file}" |
668 | 679 | ||
669 | ESW_MACHINE = "$3" | 680 | ESW_MACHINE = "$3" |
670 | DEFAULTTUNE = "cortexr5" | 681 | DEFAULTTUNE = "cortexr5" |
@@ -684,7 +695,7 @@ process_microblaze() { | |||
684 | 695 | ||
685 | mkdir -p machine/include/${mach_conf} | 696 | mkdir -p machine/include/${mach_conf} |
686 | ( | 697 | ( |
687 | cd dts || error "Unable to cd to dts dir" | 698 | cd ${dts_path} || error "Unable to cd to ${dts_path} dir" |
688 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -i "${lops_dir}/lop-microblaze-yocto.dts" "${system_dts}" \ | 699 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -i "${lops_dir}/lop-microblaze-yocto.dts" "${system_dts}" \ |
689 | || error "lopper failed" | 700 | || error "lopper failed" |
690 | rm -f lop-microblaze-yocto.dts.dtb | 701 | rm -f lop-microblaze-yocto.dts.dtb |
@@ -714,7 +725,7 @@ pmu-microblaze() { | |||
714 | 725 | ||
715 | # Build device tree | 726 | # Build device tree |
716 | ( | 727 | ( |
717 | cd dts || error "Unable to cd to dts dir" | 728 | cd ${dts_path} || error "Unable to cd to ${dts_path} dir" |
718 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" "${dts_file}" || error "lopper failed" | 729 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" "${dts_file}" || error "lopper failed" |
719 | ) | 730 | ) |
720 | 731 | ||
@@ -732,7 +743,7 @@ pmu-microblaze() { | |||
732 | sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," | 743 | sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," |
733 | 744 | ||
734 | cat <<EOF >"${conf_file}" | 745 | cat <<EOF >"${conf_file}" |
735 | CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_file}" | 746 | CONFIG_DTFILE = "${dts_file_path}/${dts_file}" |
736 | 747 | ||
737 | ESW_MACHINE = "$1" | 748 | ESW_MACHINE = "$1" |
738 | 749 | ||
@@ -765,7 +776,7 @@ pmc-microblaze() { | |||
765 | 776 | ||
766 | # Build device tree | 777 | # Build device tree |
767 | ( | 778 | ( |
768 | cd dts || error "Unable to cd to dts dir" | 779 | cd ${dts_path} || error "Unable to cd to ${dts_path} dir" |
769 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" "${dts_file}" || error "lopper failed" | 780 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" "${dts_file}" || error "lopper failed" |
770 | ) | 781 | ) |
771 | 782 | ||
@@ -783,7 +794,7 @@ pmc-microblaze() { | |||
783 | sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," | 794 | sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," |
784 | 795 | ||
785 | cat <<EOF >"${conf_file}" | 796 | cat <<EOF >"${conf_file}" |
786 | CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_file}" | 797 | CONFIG_DTFILE = "${dts_file_path}/${dts_file}" |
787 | 798 | ||
788 | ESW_MACHINE = "$1" | 799 | ESW_MACHINE = "$1" |
789 | 800 | ||
@@ -816,7 +827,7 @@ psm-microblaze() { | |||
816 | 827 | ||
817 | # Build device tree | 828 | # Build device tree |
818 | ( | 829 | ( |
819 | cd dts || error "Unable to cd to dts dir" | 830 | cd ${dts_path} || error "Unable to cd to ${dts_path} dir" |
820 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" "${dts_file}" || error "lopper failed" | 831 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" "${dts_file}" || error "lopper failed" |
821 | ) | 832 | ) |
822 | 833 | ||
@@ -834,7 +845,7 @@ psm-microblaze() { | |||
834 | sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," | 845 | sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," |
835 | 846 | ||
836 | cat <<EOF >"${conf_file}" | 847 | cat <<EOF >"${conf_file}" |
837 | CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_file}" | 848 | CONFIG_DTFILE = "${dts_file_path}/${dts_file}" |
838 | 849 | ||
839 | ESW_MACHINE = "$1" | 850 | ESW_MACHINE = "$1" |
840 | 851 | ||
@@ -874,6 +885,13 @@ MACHINEOVERRIDES =. "\${@['', '${mach_conf}:']['${mach_conf}' != '\${MACHINE}']} | |||
874 | 885 | ||
875 | EOF | 886 | EOF |
876 | 887 | ||
888 | if [ -n "${overrides}" ]; then | ||
889 | cat <<EOF >>"${conf_file}" | ||
890 | MACHINEOVERRIDES .= ":${overrides}" | ||
891 | |||
892 | EOF | ||
893 | fi | ||
894 | |||
877 | if [ "${machine}" == "zynqmp" ]; then | 895 | if [ "${machine}" == "zynqmp" ]; then |
878 | cat <<EOF >>"${conf_file}" | 896 | cat <<EOF >>"${conf_file}" |
879 | TUNEFILE[microblaze-pmu] = "conf/machine/include/${mach_conf}/microblaze.inc" | 897 | TUNEFILE[microblaze-pmu] = "conf/machine/include/${mach_conf}/microblaze.inc" |
@@ -890,7 +908,7 @@ EOF | |||
890 | cat <<EOF >>"${conf_file}" | 908 | cat <<EOF >>"${conf_file}" |
891 | 909 | ||
892 | # Set the default (linux) domain device tree | 910 | # Set the default (linux) domain device tree |
893 | CONFIG_DTFILE ?= "\${TOPDIR}/conf/dts/${system_conf}" | 911 | CONFIG_DTFILE ?= "${dts_file_path}/${system_conf}" |
894 | CONFIG_DTFILE[vardepsexclude] += "TOPDIR" | 912 | CONFIG_DTFILE[vardepsexclude] += "TOPDIR" |
895 | 913 | ||
896 | require conf/machine/${incmachine} | 914 | require conf/machine/${incmachine} |
@@ -969,10 +987,10 @@ EOF | |||
969 | 987 | ||
970 | cat <<EOF >>"${conf_file}" | 988 | cat <<EOF >>"${conf_file}" |
971 | # Enable the correct version of the firmware components | 989 | # Enable the correct version of the firmware components |
972 | PREFERRED_VERSION_fsbl-firmware = "2023.1_sdt_experimental%" | 990 | PREFERRED_VERSION_fsbl-firmware = "2023_sdt_experimental%" |
973 | PREFERRED_VERSION_pmu-firmware = "2023.1_sdt_experimental%" | 991 | PREFERRED_VERSION_pmu-firmware = "2023_sdt_experimental%" |
974 | PREFERRED_VERSION_plm-firmware = "2023.1_sdt_experimental%" | 992 | PREFERRED_VERSION_plm-firmware = "2023_sdt_experimental%" |
975 | PREFERRED_VERSION_psm-firmware = "2023.1_sdt_experimental%" | 993 | PREFERRED_VERSION_psm-firmware = "2023_sdt_experimental%" |
976 | 994 | ||
977 | # Exclude BASE_TMPDIR from hash calculations | 995 | # Exclude BASE_TMPDIR from hash calculations |
978 | BB_HASHEXCLUDE_COMMON:append = " BASE_TMPDIR" | 996 | BB_HASHEXCLUDE_COMMON:append = " BASE_TMPDIR" |
@@ -1125,9 +1143,9 @@ BASE_TMPDIR ?= "\${TOPDIR}" | |||
1125 | 1143 | ||
1126 | # The following is the full set of multiconfigs for this configuration | 1144 | # The following is the full set of multiconfigs for this configuration |
1127 | # A large list can cause a slow parse. | 1145 | # A large list can cause a slow parse. |
1128 | BBMULTICONFIG ?= "${multiconf}" | 1146 | #BBMULTICONFIG ?= "${multiconf}" |
1129 | # Alternatively trim the list to the minimum | 1147 | # Alternatively trim the list to the minimum |
1130 | #BBMULTICONFIG = "${multiconf_min}" | 1148 | BBMULTICONFIG = "${multiconf_min}" |
1131 | EOF | 1149 | EOF |
1132 | } | 1150 | } |
1133 | 1151 | ||
@@ -1171,6 +1189,22 @@ if [ -z "${mach_conf}" ]; then | |||
1171 | mach_conf=${local_mach_conf} | 1189 | mach_conf=${local_mach_conf} |
1172 | fi | 1190 | fi |
1173 | 1191 | ||
1192 | if [ -z "${dts_path}"]; then | ||
1193 | dts_path=${local_mach_conf} | ||
1194 | fi | ||
1195 | # Is it relative? If so, relative to conf/dts | ||
1196 | if [ "${dts_path##/}" = "${dts_path}" ]; then | ||
1197 | dts_path="dts/${dts_path}" | ||
1198 | else | ||
1199 | dts_path=$(realpath ${dts_path}) | ||
1200 | fi | ||
1201 | # Convert the DTS_PATH into something we can put in a config file | ||
1202 | if [ "${dts_path##/}" = "${dts_path}" ]; then | ||
1203 | dts_file_path="\${TOPDIR}/conf/${dts_path}" | ||
1204 | else | ||
1205 | dts_file_path="${dts_path}" | ||
1206 | fi | ||
1207 | |||
1174 | # Generate CPU list | 1208 | # Generate CPU list |
1175 | ( | 1209 | ( |
1176 | cd dts || error "Unable to cd to dts dir" | 1210 | cd dts || error "Unable to cd to dts dir" |
@@ -1182,6 +1216,7 @@ fi | |||
1182 | detect_machine | 1216 | detect_machine |
1183 | # Now that we know the machine name, we can create the directory | 1217 | # Now that we know the machine name, we can create the directory |
1184 | mkdir -p machine/include/${mach_conf} | 1218 | mkdir -p machine/include/${mach_conf} |
1219 | mkdir -p ${dts_path} | ||
1185 | 1220 | ||
1186 | echo "System Configuration:" | 1221 | echo "System Configuration:" |
1187 | echo "MODEL = \"${model}\"" | 1222 | echo "MODEL = \"${model}\"" |