diff options
author | Sandeep Gundlupet Raju <sandeep.gundlupet-raju@amd.com> | 2023-04-20 21:14:06 -0600 |
---|---|---|
committer | Mark Hatle <mark.hatle@amd.com> | 2023-05-10 10:56:51 -0500 |
commit | 83d783a3d6e61a0c6b08f659bd076b23661ef0a1 (patch) | |
tree | 4771753a567ea01b400cc7a2f2b855b4b2286517 /meta-xilinx-standalone-experimental/recipes-core | |
parent | 7a44bd747e4e5b1b2910e3cc4acd4be6f1bf49ff (diff) | |
download | meta-xilinx-83d783a3d6e61a0c6b08f659bd076b23661ef0a1.tar.gz |
dt-processor: Fix dts generated files structure
1. Add AMD Copyright notice.
2. Fix pdi_path typo in usage.
3. If dt-processor is run with two different zynqmp/versal sdt dts
then <cpu>-linux.dts and multiconfig dts were overwritten.
Generate dts files in build/conf/dts/<machine_name>/ directory
instead of build/conf/dts. This way when user use same build
directory for building different machine target it will avoid
overwriting dts files.
Signed-off-by: Sandeep Gundlupet Raju <sandeep.gundlupet-raju@amd.com>
Signed-off-by: Mark Hatle <mark.hatle@amd.com>
Diffstat (limited to 'meta-xilinx-standalone-experimental/recipes-core')
-rwxr-xr-x | meta-xilinx-standalone-experimental/recipes-core/meta/files/dt-processor.sh | 56 |
1 files changed, 29 insertions, 27 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..2e457ac3 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 |
@@ -42,7 +43,7 @@ $0 | |||
42 | [-t <machine>] Machine type: zynqmp or versal (usually auto detected) | 43 | [-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) | 44 | [-v <soc_variant>] SOC Variant: cg, dr, eg, ev, ai-prime, premium (usually auto detected) |
44 | [-p <psu_init_path>] Path to psu_init files, defaults to system_dts path | 45 | [-p <psu_init_path>] Path to psu_init files, defaults to system_dts path |
45 | [-i <pdu_path>] Path to the pdi file | 46 | [-i <pdi_path>] Path to the pdi file |
46 | [-l <config_file>] write local.conf changes to this file | 47 | [-l <config_file>] write local.conf changes to this file |
47 | [-P <petalinux_schema>] Path to petalinux schema file | 48 | [-P <petalinux_schema>] Path to petalinux schema file |
48 | 49 | ||
@@ -199,7 +200,7 @@ cortex_a53_linux() { | |||
199 | 200 | ||
200 | # Check if it is overlay dts otherwise just create linux dts | 201 | # Check if it is overlay dts otherwise just create linux dts |
201 | ( | 202 | ( |
202 | cd dts || error "Unable to cd to dts dir" | 203 | cd dts/${mach_conf} || error "Unable to cd to dts/${mach_conf} dir" |
203 | if [ "${overlay_dts}" = "true" ]; then | 204 | if [ "${overlay_dts}" = "true" ]; then |
204 | if [ "${external_fpga}" = "true" ]; then | 205 | if [ "${external_fpga}" = "true" ]; then |
205 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" -- xlnx_overlay_dt ${machine} full \ | 206 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" -- xlnx_overlay_dt ${machine} full \ |
@@ -232,7 +233,7 @@ cortex_a53_linux() { | |||
232 | 233 | ||
233 | ## Generate a multiconfig | 234 | ## Generate a multiconfig |
234 | cat <<EOF >"${conf_file}" | 235 | cat <<EOF >"${conf_file}" |
235 | CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_file}" | 236 | CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${mach_conf}/${dts_file}" |
236 | 237 | ||
237 | TMPDIR = "\${BASE_TMPDIR}/tmp-${mc_name}" | 238 | TMPDIR = "\${BASE_TMPDIR}/tmp-${mc_name}" |
238 | EOF | 239 | EOF |
@@ -268,7 +269,7 @@ cortex_a53_baremetal() { | |||
268 | 269 | ||
269 | # Build device tree | 270 | # Build device tree |
270 | ( | 271 | ( |
271 | cd dts || error "Unable to cd to dts dir" | 272 | cd dts/${mach_conf} || error "Unable to cd to dts/${mach_conf} dir" |
272 | if [ -n "${domain_file}" ]; then | 273 | if [ -n "${domain_file}" ]; then |
273 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' \ | 274 | 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}" \ | 275 | -i "${domain_file}" -i "${lops_dir}/lop-a53-imux.dts" "${system_dts}" "${dts_file}" \ |
@@ -309,7 +310,7 @@ EOF | |||
309 | cat /dev/null >"${conf_file}" | 310 | cat /dev/null >"${conf_file}" |
310 | fi | 311 | fi |
311 | cat <<EOF >>"${conf_file}" | 312 | cat <<EOF >>"${conf_file}" |
312 | CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_file}" | 313 | CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${mach_conf}/${dts_file}" |
313 | 314 | ||
314 | ESW_MACHINE = "$3" | 315 | ESW_MACHINE = "$3" |
315 | DEFAULTTUNE = "cortexa53" | 316 | DEFAULTTUNE = "cortexa53" |
@@ -335,7 +336,7 @@ cortex_a53_freertos() { | |||
335 | 336 | ||
336 | # Build device tree | 337 | # Build device tree |
337 | ( | 338 | ( |
338 | cd dts || error "Unable to cd to dts dir" | 339 | cd dts/${mach_conf} || error "Unable to cd to dts/${mach_conf} dir" |
339 | if [ -n "${domain_file}" ]; then | 340 | if [ -n "${domain_file}" ]; then |
340 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' \ | 341 | 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}" \ | 342 | -i "${domain_file}" -i "${lops_dir}/lop-a53-imux.dts" "${system_dts}" "${dts_file}" \ |
@@ -361,7 +362,7 @@ cortex_a53_freertos() { | |||
361 | sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," | 362 | sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," |
362 | 363 | ||
363 | cat <<EOF >"${conf_file}" | 364 | cat <<EOF >"${conf_file}" |
364 | CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_file}" | 365 | CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${mach_conf}/${dts_file}" |
365 | 366 | ||
366 | ESW_MACHINE = "$3" | 367 | ESW_MACHINE = "$3" |
367 | DEFAULTTUNE = "cortexa53" | 368 | DEFAULTTUNE = "cortexa53" |
@@ -396,10 +397,10 @@ cortex_a72_linux() { | |||
396 | fi | 397 | fi |
397 | 398 | ||
398 | ( | 399 | ( |
399 | cd dts || error "Unable to cd to dts dir" | 400 | cd dts/${mach_conf} || error "Unable to cd to dts/${mach_conf} dir" |
400 | # Check if it is overlay dts otherwise just create linux dts | 401 | # Check if it is overlay dts otherwise just create linux dts |
401 | if [ "${overlay_dts}" = "true" ]; then | 402 | if [ "${overlay_dts}" = "true" ]; then |
402 | # As there is no partial support on Versal, As per fpga manager implementatin there is | 403 | # 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. | 404 | # a flag "external_fpga" which says apply overlay without loading the bit file. |
404 | if [ "${external_fpga}" = "true" ]; then | 405 | if [ "${external_fpga}" = "true" ]; then |
405 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" -- xlnx_overlay_dt \ | 406 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" -- xlnx_overlay_dt \ |
@@ -432,7 +433,7 @@ cortex_a72_linux() { | |||
432 | 433 | ||
433 | ## Generate a multiconfig | 434 | ## Generate a multiconfig |
434 | cat <<EOF >"${conf_file}" | 435 | cat <<EOF >"${conf_file}" |
435 | CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_file}" | 436 | CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${mach_conf}/${dts_file}" |
436 | 437 | ||
437 | TMPDIR = "\${BASE_TMPDIR}/tmp-${mc_name}" | 438 | TMPDIR = "\${BASE_TMPDIR}/tmp-${mc_name}" |
438 | EOF | 439 | EOF |
@@ -453,7 +454,7 @@ cortex_a72_baremetal() { | |||
453 | 454 | ||
454 | # Build device tree | 455 | # Build device tree |
455 | ( | 456 | ( |
456 | cd dts || error "Unable to cd to dts dir" | 457 | cd dts/${mach_conf} || error "Unable to cd to dts/${mach_conf} dir" |
457 | if [ -n "${domain_file}" ]; then | 458 | if [ -n "${domain_file}" ]; then |
458 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' \ | 459 | 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}" \ | 460 | -i "${domain_file}" -i "${lops_dir}/lop-a72-imux.dts" "${system_dts}" "${dts_file}" \ |
@@ -479,7 +480,7 @@ cortex_a72_baremetal() { | |||
479 | sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," | 480 | sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," |
480 | 481 | ||
481 | cat <<EOF >"${conf_file}" | 482 | cat <<EOF >"${conf_file}" |
482 | CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_file}" | 483 | CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${mach_conf}/${dts_file}" |
483 | 484 | ||
484 | ESW_MACHINE = "$3" | 485 | ESW_MACHINE = "$3" |
485 | DEFAULTTUNE = "cortexa72" | 486 | DEFAULTTUNE = "cortexa72" |
@@ -505,7 +506,7 @@ cortex_a72_freertos() { | |||
505 | 506 | ||
506 | # Build device tree | 507 | # Build device tree |
507 | ( | 508 | ( |
508 | cd dts || error "Unable to cd to dts dir" | 509 | cd dts/${mach_conf} || error "Unable to cd to dts/${mach_conf} dir" |
509 | if [ -n "${domain_file}" ]; then | 510 | if [ -n "${domain_file}" ]; then |
510 | LOPPER_DTC_FLAGS="-b 0 -@" lopper -f --enhanced -x '*.yaml' \ | 511 | 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}" \ | 512 | -i "${domain_file}" -i "${lops_dir}/lop-a72-imux.dts" "${system_dts}" "${dts_file}" \ |
@@ -531,7 +532,7 @@ cortex_a72_freertos() { | |||
531 | sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," | 532 | sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," |
532 | 533 | ||
533 | cat <<EOF >"${conf_file}" | 534 | cat <<EOF >"${conf_file}" |
534 | CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_file}" | 535 | CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${mach_conf}/${dts_file}" |
535 | 536 | ||
536 | ESW_MACHINE = "$3" | 537 | ESW_MACHINE = "$3" |
537 | DEFAULTTUNE = "cortexa72" | 538 | DEFAULTTUNE = "cortexa72" |
@@ -572,7 +573,7 @@ cortex_r5_baremetal() { | |||
572 | 573 | ||
573 | # Build device tree | 574 | # Build device tree |
574 | ( | 575 | ( |
575 | cd dts || error "Unable to cd to dts dir" | 576 | cd dts/${mach_conf} || error "Unable to cd to dts/${mach_conf} dir" |
576 | if [ -n "$domain_file" ]; then | 577 | if [ -n "$domain_file" ]; then |
577 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' \ | 578 | 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}" \ | 579 | -i "${domain_file}" -i "${lops_dir}/lop-r5-imux.dts" "${system_dts}" "${dts_file}" \ |
@@ -612,7 +613,7 @@ EOF | |||
612 | cat /dev/null >"${conf_file}" | 613 | cat /dev/null >"${conf_file}" |
613 | fi | 614 | fi |
614 | cat <<EOF >>"${conf_file}" | 615 | cat <<EOF >>"${conf_file}" |
615 | CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_file}" | 616 | CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${mach_conf}/${dts_file}" |
616 | 617 | ||
617 | ESW_MACHINE = "$3" | 618 | ESW_MACHINE = "$3" |
618 | DEFAULTTUNE = "cortexr5" | 619 | DEFAULTTUNE = "cortexr5" |
@@ -638,7 +639,7 @@ cortex_r5_freertos() { | |||
638 | 639 | ||
639 | # Build device tree | 640 | # Build device tree |
640 | ( | 641 | ( |
641 | cd dts || error "Unable to cd to dts dir" | 642 | cd dts/${mach_conf} || error "Unable to cd to dts/${mach_conf} dir" |
642 | if [ -n "$domain_file" ]; then | 643 | if [ -n "$domain_file" ]; then |
643 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -x '*.yaml' \ | 644 | 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}" \ | 645 | -i "${domain_file}" -i "${lops_dir}/lop-r5-imux.dts" "${system_dts}" "${dts_file}" \ |
@@ -664,7 +665,7 @@ cortex_r5_freertos() { | |||
664 | sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," | 665 | sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," |
665 | 666 | ||
666 | cat <<EOF >"${conf_file}" | 667 | cat <<EOF >"${conf_file}" |
667 | CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_file}" | 668 | CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${mach_conf}/${dts_file}" |
668 | 669 | ||
669 | ESW_MACHINE = "$3" | 670 | ESW_MACHINE = "$3" |
670 | DEFAULTTUNE = "cortexr5" | 671 | DEFAULTTUNE = "cortexr5" |
@@ -684,7 +685,7 @@ process_microblaze() { | |||
684 | 685 | ||
685 | mkdir -p machine/include/${mach_conf} | 686 | mkdir -p machine/include/${mach_conf} |
686 | ( | 687 | ( |
687 | cd dts || error "Unable to cd to dts dir" | 688 | cd dts/${mach_conf} || error "Unable to cd to dts/${mach_conf} dir" |
688 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -i "${lops_dir}/lop-microblaze-yocto.dts" "${system_dts}" \ | 689 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f --enhanced -i "${lops_dir}/lop-microblaze-yocto.dts" "${system_dts}" \ |
689 | || error "lopper failed" | 690 | || error "lopper failed" |
690 | rm -f lop-microblaze-yocto.dts.dtb | 691 | rm -f lop-microblaze-yocto.dts.dtb |
@@ -714,7 +715,7 @@ pmu-microblaze() { | |||
714 | 715 | ||
715 | # Build device tree | 716 | # Build device tree |
716 | ( | 717 | ( |
717 | cd dts || error "Unable to cd to dts dir" | 718 | cd dts/${mach_conf} || error "Unable to cd to dts/${mach_conf} dir" |
718 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" "${dts_file}" || error "lopper failed" | 719 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" "${dts_file}" || error "lopper failed" |
719 | ) | 720 | ) |
720 | 721 | ||
@@ -732,7 +733,7 @@ pmu-microblaze() { | |||
732 | sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," | 733 | sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," |
733 | 734 | ||
734 | cat <<EOF >"${conf_file}" | 735 | cat <<EOF >"${conf_file}" |
735 | CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_file}" | 736 | CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${mach_conf}/${dts_file}" |
736 | 737 | ||
737 | ESW_MACHINE = "$1" | 738 | ESW_MACHINE = "$1" |
738 | 739 | ||
@@ -765,7 +766,7 @@ pmc-microblaze() { | |||
765 | 766 | ||
766 | # Build device tree | 767 | # Build device tree |
767 | ( | 768 | ( |
768 | cd dts || error "Unable to cd to dts dir" | 769 | cd dts/${mach_conf} || error "Unable to cd to dts/${mach_conf} dir" |
769 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" "${dts_file}" || error "lopper failed" | 770 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" "${dts_file}" || error "lopper failed" |
770 | ) | 771 | ) |
771 | 772 | ||
@@ -783,7 +784,7 @@ pmc-microblaze() { | |||
783 | sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," | 784 | sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," |
784 | 785 | ||
785 | cat <<EOF >"${conf_file}" | 786 | cat <<EOF >"${conf_file}" |
786 | CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_file}" | 787 | CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${mach_conf}/${dts_file}" |
787 | 788 | ||
788 | ESW_MACHINE = "$1" | 789 | ESW_MACHINE = "$1" |
789 | 790 | ||
@@ -816,7 +817,7 @@ psm-microblaze() { | |||
816 | 817 | ||
817 | # Build device tree | 818 | # Build device tree |
818 | ( | 819 | ( |
819 | cd dts || error "Unable to cd to dts dir" | 820 | cd dts/${mach_conf} || error "Unable to cd to dts/${mach_conf} dir" |
820 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" "${dts_file}" || error "lopper failed" | 821 | LOPPER_DTC_FLAGS="-b 0 -@" ${lopper} -f "${system_dts}" "${dts_file}" || error "lopper failed" |
821 | ) | 822 | ) |
822 | 823 | ||
@@ -834,7 +835,7 @@ psm-microblaze() { | |||
834 | sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," | 835 | sed -i ${features} -e "s,DISTRO_FEATURES,MACHINE_FEATURES," |
835 | 836 | ||
836 | cat <<EOF >"${conf_file}" | 837 | cat <<EOF >"${conf_file}" |
837 | CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${dts_file}" | 838 | CONFIG_DTFILE = "\${TOPDIR}/conf/dts/${mach_conf}/${dts_file}" |
838 | 839 | ||
839 | ESW_MACHINE = "$1" | 840 | ESW_MACHINE = "$1" |
840 | 841 | ||
@@ -890,7 +891,7 @@ EOF | |||
890 | cat <<EOF >>"${conf_file}" | 891 | cat <<EOF >>"${conf_file}" |
891 | 892 | ||
892 | # Set the default (linux) domain device tree | 893 | # Set the default (linux) domain device tree |
893 | CONFIG_DTFILE ?= "\${TOPDIR}/conf/dts/${system_conf}" | 894 | CONFIG_DTFILE ?= "\${TOPDIR}/conf/dts/${mach_conf}/${system_conf}" |
894 | CONFIG_DTFILE[vardepsexclude] += "TOPDIR" | 895 | CONFIG_DTFILE[vardepsexclude] += "TOPDIR" |
895 | 896 | ||
896 | require conf/machine/${incmachine} | 897 | require conf/machine/${incmachine} |
@@ -1182,6 +1183,7 @@ fi | |||
1182 | detect_machine | 1183 | detect_machine |
1183 | # Now that we know the machine name, we can create the directory | 1184 | # Now that we know the machine name, we can create the directory |
1184 | mkdir -p machine/include/${mach_conf} | 1185 | mkdir -p machine/include/${mach_conf} |
1186 | mkdir -p dts/${mach_conf} | ||
1185 | 1187 | ||
1186 | echo "System Configuration:" | 1188 | echo "System Configuration:" |
1187 | echo "MODEL = \"${model}\"" | 1189 | echo "MODEL = \"${model}\"" |