Could you please tell me how to only brush the developed UEFI into Orin Nano development board?

Development board environment:Jetson Linux35.3.1
core board:orin Nano4GB
board:Jetson Orin Nano Developer Kit

Now every time modify UEFI, need to flush through the “sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1
-c tools/kernel_flash/flash_l4t_external.xml -p “-c bootloader/t186ref/cfg/flash_t234_qspi.xml”
–showlogs --network usb0 jetson-orin-nano-devkit internal” command. It is too cumbersome and time-consuming.

Is there a way to brush only UEFI without affecting other content?

Try this to flash the QSPI only.

sudo ./flash.sh -c bootloader/generic/cfg/flash_t234_qspi.xml --no-systemimg jetson-orin-nano-devkit nvme0n1p1

按照这个操作报错。

ynq@zynq-virtual-machine:~/nvidia/35.3/Linux_for_Tegra$ sudo ./flash.sh -c bootloader/generic/cfg/flash_t234_qspi.xml --no-systemimg jetson-orin-nano-devkit nvme0n1p1
[sudo] zynq 的密码: 
对不起,请重试。
[sudo] zynq 的密码: 
###############################################################################
# L4T BSP Information:
# R35 , REVISION: 3.1
# User release: 0.0
###############################################################################
# Target Board Information:
# Name: jetson-orin-nano-devkit, Board Family: t186ref, SoC: Tegra 234, 
# OpMode: production, Boot Authentication: NS, 
# Disk encryption: disabled ,
###############################################################################
copying emc_fuse_dev_params(/home/zynq/nvidia/35.3/Linux_for_Tegra/bootloader/t186ref/BCT/tegra234-br-bct-diag-boot.dts)... done.
copying device_config(/home/zynq/nvidia/35.3/Linux_for_Tegra/bootloader/t186ref/BCT/tegra234-mb1-bct-device-p3767-0000.dts)... done.
copying misc_config(/home/zynq/nvidia/35.3/Linux_for_Tegra/bootloader/t186ref/BCT/tegra234-mb1-bct-misc-p3767-0000.dts)... done.
./tegraflash.py --chip 0x23 --applet "/home/zynq/nvidia/35.3/Linux_for_Tegra/bootloader/mb1_t234_prod.bin" --skipuid --cfg readinfo_t234_min_prod.xml --dev_params tegra234-br-bct-diag-boot.dts --device_config tegra234-mb1-bct-device-p3767-0000.dts --misc_config tegra234-mb1-bct-misc-p3767-0000.dts --bins "mb2_applet applet_t234.bin" --cmd "dump eeprom cvm cvm.bin; dump custinfo custinfo_out.bin; reboot recovery" 
Welcome to Tegra Flash
version 1.0.0
Type ? or help for help and q or quit to exit
Use ! to execute system commands
 
[   0.0180 ] tegrarcm_v2 --chip 0x23 0 --ismb2applet
[   0.0189 ] File rcm_state open failed
[   0.0192 ] ERROR: failed to read rcm_state
[   0.0192 ] 
[   0.0208 ] tegrasign_v3.py --key None --getmode mode.txt
[   0.0210 ] Assuming zero filled SBK key
[   0.0195 ] Pre-processing config: tegra234-mb1-bct-device-p3767-0000.dts
[   0.0269 ] Pre-processing config: tegra234-mb1-bct-misc-p3767-0000.dts
[   0.0359 ] Parsing partition layout
[   0.0368 ] tegraparser_v2 --pt readinfo_t234_min_prod.xml.tmp
[   0.0381 ] Kernel DTB used: None
[   0.0381 ] WARNING: dce base dtb is not provided

[   0.0381 ] Parsing partition layout
[   0.0388 ] tegraparser_v2 --pt readinfo_t234_min_prod.xml.tmp
[   0.0400 ] Creating list of images to be signed
[   0.0408 ] tegrahost_v2 --chip 0x23 0 --partitionlayout readinfo_t234_min_prod.xml.bin --list images_list.xml zerosbk
[   0.0416 ] MB1: Nvheader already present is mb1_t234_prod_aligned.bin
[   0.0428 ] Header already present for mb1_t234_prod_aligned_sigheader.bin
[   0.0431 ] MB1: Nvheader already present is mb1_t234_prod_aligned.bin
[   0.0586 ] Header already present for mb1_t234_prod_aligned_sigheader.bin
[   0.0600 ] MB1: Nvheader already present is psc_bl1_t234_prod_aligned.bin
[   0.0659 ] Header already present for psc_bl1_t234_prod_aligned_sigheader.bin
[   0.0664 ] adding BCH for mb2_t234_aligned.bin
[   0.0699 ] MB1: Nvheader already present is psc_bl1_t234_prod_aligned.bin
[   0.0850 ] Header already present for psc_bl1_t234_prod_aligned_sigheader.bin
[   0.0856 ] adding BCH for mb2_t234_aligned.bin
[   0.1137 ] Filling MB1 storage info
[   0.1137 ] Parsing dev params for multi chains
[   0.1201 ] Generating br-bct
[   0.1209 ] Updating dev and MSS params in BR BCT
[   0.1210 ] tegrabct_v2 --dev_param tegra234-br-bct-diag-boot_cpp.dtb --brbct br_bct.cfg --chip 0x23 0
[   0.1221 ] Updating bl info
[   0.1231 ] tegrabct_v2 --brbct br_bct_BR.bct --chip 0x23 0 --updateblinfo readinfo_t234_min_prod.xml.bin
[   0.1239 ] WARNING: boot chain is not completed. set to 0
[   0.1246 ] Generating signatures
[   0.1262 ] tegrasign_v3.py --key None --list images_list.xml --pubkeyhash pub_key.key --sha sha512
[   0.1264 ] Assuming zero filled SBK key
[   0.1480 ] Warning: pub_key.key is not found
[   0.1466 ] Parsing dev params for multi chains
[   0.1466 ] Generating br-bct
[   0.1474 ] Updating dev and MSS params in BR BCT
[   0.1475 ] tegrabct_v2 --dev_param tegra234-br-bct-diag-boot_cpp.dtb --brbct br_bct.cfg --chip 0x23 0
[   0.1484 ] Updating bl info
[   0.1493 ] tegrabct_v2 --brbct br_bct_BR.bct --chip 0x23 0 --updateblinfo readinfo_t234_min_prod.xml.bin --updatesig images_list_signed.xml
[   0.1503 ] WARNING: boot chain is not completed. set to 0
[   0.1515 ] Get Signed section of bct
[   0.1524 ] tegrabct_v2 --brbct br_bct_BR.bct --chip 0x23 0 --listbct bct_list.xml
[   0.1535 ] Signing BCT
[   0.1551 ] tegrasign_v3.py --key None --list bct_list.xml --pubkeyhash pub_key.key --sha sha512
[   0.1553 ] Assuming zero filled SBK key
[   0.1574 ] Sha saved in br_bct_BR.sha
[   0.1577 ] Warning: pub_key.key is not found
[   0.1561 ] Updating BCT with signature
[   0.1568 ] tegrabct_v2 --brbct br_bct_BR.bct --chip 0x23 0 --updatesig bct_list_signed.xml
[   0.1574 ] Offset :4608 Len :3584
[   0.1579 ] Generating SHA2 Hash
[   0.1596 ] tegrasign_v3.py --key None --list bct_list.xml --sha sha512
[   0.1597 ] Assuming zero filled SBK key
[   0.1597 ] Assuming zero filled SBK key
[   0.1787 ] Sha saved in br_bct_BR.sha
[   0.1775 ] Updating BCT with SHA2 Hash
[   0.1784 ] tegrabct_v2 --brbct br_bct_BR.bct --chip 0x23 0 --updatesha bct_list_signed.xml
[   0.1793 ] Offset :4608 Len :3584
[   0.1797 ] Offset :68 Len :8124
[   0.1801 ] Generating coldboot mb1-bct
[   0.1808 ] tegrabct_v2 --chip 0x23 0 --mb1bct mb1_cold_boot_bct.cfg --misc tegra234-mb1-bct-misc-p3767-0000_cpp.dtb --device tegra234-mb1-bct-device-p3767-0000_cpp.dtb
[   0.1816 ] MB1-BCT version: 0.10
[   0.1817 ] ERROR: carveout /misc/carveout/aux_info@CARVEOUT_UNUSED5/ is not supported
[   0.1825 ] ERROR: carveout /misc/carveout/aux_info@CARVEOUT_UNUSED5/ is not supported
[   0.1830 ] ERROR: carveout /misc/carveout/aux_info@CARVEOUT_UNUSED5/ is not supported
[   0.1832 ] ERROR: carveout /misc/carveout/aux_info@CARVEOUT_MCE_COVERAGE/ is not supported
[   0.1832 ] ERROR: carveout /misc/carveout/aux_info@CARVEOUT_MCE_COVERAGE/ is not supported
[   0.1832 ] ERROR: carveout /misc/carveout/aux_info@CARVEOUT_MCE_COVERAGE/ is not supported
[   0.1832 ] ERROR: /misc/tsc_controls/tsc_locking_config is not supported
[   0.1832 ] ERROR: /misc/tsc_controls/tsc_locking_diff_configuration is not supported
[   0.1832 ] ERROR: /misc/tsc_controls/tsc_locking_ref_frequency_configuration is not supported
[   0.1832 ] ERROR: /misc/tsc_controls/tsc_locking_control is not supported
[   0.1832 ] ERROR: /misc/tsc_controls/tsc_locking_adjust_configuration is not supported
[   0.1832 ] ERROR: /misc/tsc_controls/tsc_locking_fast_adjust_configuration is not supported
[   0.1832 ] ERROR: /misc/tsc_controls/tsc_locking_adjust_delta_control is not supported
[   0.1832 ] ERROR: /misc/tsc_controls/tsc_capture_control_ptx is not supported
[   0.1832 ] ERROR: /misc/tsc_controls/tsc_capture_config_ptx is not supported
[   0.1833 ] ERROR: /misc/tsc_controls/tsc_stscrsr is not supported
[   0.1833 ] ERROR: /misc/tsc_controls/tsc_locking_adjust_num_control is not supported
[   0.1833 ] 
[   0.1833 ] Parsing config file :tegra234-mb1-bct-device-p3767-0000_cpp.dtb 
[   0.1833 ] Added Platform Config 9 data with size :- 100
[   0.1833 ] 
[   0.1833 ] Updating mb1-bct with firmware information
[   0.1842 ] tegrabct_v2 --chip 0x23 0 --mb1bct mb1_cold_boot_bct_MB1.bct --updatefwinfo readinfo_t234_min_prod.xml.bin
[   0.1868 ] tegrahost_v2 --chip 0x23 0 --align mb1_cold_boot_bct_MB1_aligned.bct
[   0.1886 ] tegrahost_v2 --chip 0x23 0 --magicid MBCT --appendsigheader mb1_cold_boot_bct_MB1_aligned.bct zerosbk
[   0.1892 ] adding BCH for mb1_cold_boot_bct_MB1_aligned.bct
[   0.1918 ] tegrasign_v3.py --key None --list mb1_cold_boot_bct_MB1_aligned_sigheader.bct_list.xml --pubkeyhash pub_key.key --sha sha512
[   0.1919 ] Assuming zero filled SBK key
[   0.1933 ] Warning: pub_key.key is not found
[   0.1925 ] tegrahost_v2 --chip 0x23 0 --updatesigheader mb1_cold_boot_bct_MB1_aligned_sigheader.bct.encrypt mb1_cold_boot_bct_MB1_aligned_sigheader.bct.hash zerosbk
[   0.1941 ] Generating recovery mb1-bct
[   0.1951 ] tegrabct_v2 --chip 0x23 0 --mb1bct mb1_bct.cfg --misc tegra234-mb1-bct-misc-p3767-0000_cpp.dtb --device tegra234-mb1-bct-device-p3767-0000_cpp.dtb
[   0.1958 ] MB1-BCT version: 0.10
[   0.1962 ] ERROR: carveout /misc/carveout/aux_info@CARVEOUT_UNUSED5/ is not supported
[   0.1972 ] ERROR: carveout /misc/carveout/aux_info@CARVEOUT_UNUSED5/ is not supported
[   0.1972 ] ERROR: carveout /misc/carveout/aux_info@CARVEOUT_UNUSED5/ is not supported
[   0.1972 ] ERROR: carveout /misc/carveout/aux_info@CARVEOUT_MCE_COVERAGE/ is not supported
[   0.1972 ] ERROR: carveout /misc/carveout/aux_info@CARVEOUT_MCE_COVERAGE/ is not supported
[   0.1972 ] ERROR: carveout /misc/carveout/aux_info@CARVEOUT_MCE_COVERAGE/ is not supported
[   0.1972 ] ERROR: /misc/tsc_controls/tsc_locking_config is not supported
[   0.1972 ] ERROR: /misc/tsc_controls/tsc_locking_diff_configuration is not supported
[   0.1973 ] ERROR: /misc/tsc_controls/tsc_locking_ref_frequency_configuration is not supported
[   0.1973 ] ERROR: /misc/tsc_controls/tsc_locking_control is not supported
[   0.1973 ] ERROR: /misc/tsc_controls/tsc_locking_adjust_configuration is not supported
[   0.1973 ] ERROR: /misc/tsc_controls/tsc_locking_fast_adjust_configuration is not supported
[   0.1973 ] ERROR: /misc/tsc_controls/tsc_locking_adjust_delta_control is not supported
[   0.1973 ] ERROR: /misc/tsc_controls/tsc_capture_control_ptx is not supported
[   0.1973 ] ERROR: /misc/tsc_controls/tsc_capture_config_ptx is not supported
[   0.1973 ] ERROR: /misc/tsc_controls/tsc_stscrsr is not supported
[   0.1974 ] ERROR: /misc/tsc_controls/tsc_locking_adjust_num_control is not supported
[   0.1974 ] 
[   0.1974 ] Parsing config file :tegra234-mb1-bct-device-p3767-0000_cpp.dtb 
[   0.1974 ] Added Platform Config 9 data with size :- 100
[   0.1974 ] 
[   0.1974 ] Updating mb1-bct with firmware information
[   0.1986 ] tegrabct_v2 --chip 0x23 0 --mb1bct mb1_bct_MB1.bct --recov --updatefwinfo readinfo_t234_min_prod.xml.bin
[   0.2024 ] tegrahost_v2 --chip 0x23 0 --align mb1_bct_MB1_aligned.bct
[   0.2050 ] tegrahost_v2 --chip 0x23 0 --magicid MBCT --appendsigheader mb1_bct_MB1_aligned.bct zerosbk
[   0.2059 ] adding BCH for mb1_bct_MB1_aligned.bct
[   0.2084 ] tegrasign_v3.py --key None --list mb1_bct_MB1_aligned_sigheader.bct_list.xml --pubkeyhash pub_key.key --sha sha512
[   0.2086 ] Assuming zero filled SBK key
[   0.2103 ] Warning: pub_key.key is not found
[   0.2100 ] tegrahost_v2 --chip 0x23 0 --updatesigheader mb1_bct_MB1_aligned_sigheader.bct.encrypt mb1_bct_MB1_aligned_sigheader.bct.hash zerosbk
[   0.2117 ] Error: Skip generating mem_bct because sdram_config is not defined
[   0.2117 ] Error: Skip generating mem_bct because sdram_config is not defined
[   0.2118 ] Copying signatures
[   0.2127 ] tegrahost_v2 --chip 0x23 0 --partitionlayout readinfo_t234_min_prod.xml.bin --updatesig images_list_signed.xml
[   0.2270 ] mb1_t234_prod_aligned_sigheader.bin.encrypt filename is from images_list
[   0.2272 ] psc_bl1_t234_prod_aligned_sigheader.bin.encrypt filename is from images_list
[   0.2272 ] Boot Rom communication
[   0.2285 ] tegrarcm_v2 --new_session --chip 0x23 0 --uid --download bct_br br_bct_BR.bct --download mb1 mb1_t234_prod_aligned_sigheader.bin.encrypt --download psc_bl1 psc_bl1_t234_prod_aligned_sigheader.bin.encrypt --download bct_mb1 mb1_bct_MB1_sigheader.bct.encrypt
[   0.2302 ] BR_CID: 0x80012344705DE7E33000000006FF8200
[   0.3466 ] Sending bct_br
[   0.4542 ] Sending mb1
[   0.4593 ] Sending psc_bl1
[   0.4966 ] Sending bct_mb1
[   0.5150 ] Boot Rom communication completed
[   0.5170 ] tegrahost_v2 --chip 0x23 0 --align applet_t234_aligned.bin
[   0.5189 ] tegrahost_v2 --chip 0x23 0 --magicid MB2A --appendsigheader applet_t234_aligned.bin zerosbk
[   0.5197 ] adding BCH for applet_t234_aligned.bin
[   0.5313 ] tegrasign_v3.py --key None --list applet_t234_aligned_sigheader.bin_list.xml --pubkeyhash pub_key.key --sha sha512
[   0.5315 ] Assuming zero filled SBK key
[   0.5334 ] Warning: pub_key.key is not found
[   0.5333 ] tegrahost_v2 --chip 0x23 0 --updatesigheader applet_t234_aligned_sigheader.bin.encrypt applet_t234_aligned_sigheader.bin.hash zerosbk
[   0.5399 ] Sending mb2_applet...

[   0.5407 ] tegrarcm_v2 --chip 0x23 0 --pollbl --download applet applet_t234_sigheader.bin.encrypt
[   0.5417 ] BL: version 0.32.0.0-t234-54845784-57325615 last_boot_error: 0
[   0.7229 ] Sending applet
[   0.8934 ] completed
[   0.8948 ] tegrarcm_v2 --chip 0x23 0 --ismb2applet
[   0.8958 ] MB2 Applet version 01.00.0000
[   1.1698 ] tegrarcm_v2 --chip 0x23 0 --ismb2applet
[   1.1706 ] MB2 Applet version 01.00.0000
[   1.3436 ] Retrieving board information
[   1.3455 ] tegrarcm_v2 --chip 0x23 0 --oem platformdetails chip chip_info.bin
[   1.3471 ] MB2 Applet version 01.00.0000
[   1.4992 ] Saved platform info in chip_info.bin
[   1.5360 ] Chip minor revision: 1
[   1.5362 ] Bootrom revision: 0x7
[   1.5364 ] Ram code: 0x4
[   1.5366 ] Chip sku: 0xd6
[   1.5367 ] Chip Sample: prod
[   1.5635 ] Retrieving EEPROM data
[   1.5635 ] tegrarcm_v2 --oem platformdetails eeprom cvm /home/zynq/nvidia/35.3/Linux_for_Tegra/bootloader/cvm.bin --chip 0x23 0
[   1.5645 ] MB2 Applet version 01.00.0000
[   1.7363 ] Saved platform info in /home/zynq/nvidia/35.3/Linux_for_Tegra/bootloader/cvm.bin
[   1.8394 ] tegrarcm_v2 --chip 0x23 0 --ismb2applet
[   1.8405 ] MB2 Applet version 01.00.0000
[   2.0050 ] tegrarcm_v2 --chip 0x23 0 --ismb2applet
[   2.0057 ] MB2 Applet version 01.00.0000
[   2.1774 ] Dumping customer Info
[   2.1784 ] tegrarcm_v2 --chip 0x23 0 --oem dump bct tmp.bct
[   2.1791 ] MB2 Applet version 01.00.0000
[   2.3419 ] Saved bct in tmp.bct
[   2.4121 ] tegrabct_v2 --brbct tmp.bct --chip 0x23 0 --custinfo /home/zynq/nvidia/35.3/Linux_for_Tegra/bootloader/custinfo_out.bin
[   2.4128 ] C[   2.4132 ] ustomer data saved in /home/zynq/nvidia/35.3/Linux_for_Tegra/bootloader/custinfo_out.bin successfully
[   2.4132 ] Rebooting to recovery mode
[   2.4142 ] tegrarcm_v2 --chip 0x23 0 --ismb2
[   2.5870 ] tegrarcm_v2 --chip 0x23 0 --ismb2applet
[   2.5878 ] MB2 Applet version 01.00.0000
[   2.7575 ] Booting to recovery mode
[   2.7585 ] tegrarcm_v2 --chip 0x23 0 --reboot recovery
[   2.7591 ] MB2 Applet version 01.00.0000
Board ID(3767) version(300) sku(0004) revision(S.1)
Chip SKU(00:00:00:D6) ramcode(00:00:00:04) fuselevel(fuselevel_production) board_FAB(300)
emc_opt_disable_fuse:(0)
Error: missing cfgfile ().

Usage: sudo ./flash.sh [options] t186ref nvme0n1p1
    options:
        -c <cfgfile> ---------- Flash partition table config file.
        -d <dtbfile> ---------- device tree file.
        -f <flashapp> --------- Path to flash application (tegraflash.py)
        -h -------------------- print this message.
        -i <enc rfs key file>-- key for disk encryption support.
        -k <partition id> ----- partition name or number specified in flash.cfg.
        -m <mts preboot> ------ MTS preboot such as mts_preboot_si.
        -n <nfs args> --------- Static nfs network assignments
                                <Client IP>:<Server IP>:<Gateway IP>:<Netmask>
        -o <odmdata> ---------- ODM data.
        -r -------------------- skip building and reuse existing system.img.
        -t <tegraboot> -------- tegraboot binary such as nvtboot.bin
        -u <PKC key file>------ PKC key used for odm fused board.
        -v <SBK key file>------ Secure Boot Key (SBK) key used for ODM fused board.
        -w <wb0boot> ---------- warm boot binary such as nvtbootwb0.bin
        -x <tegraid> ---------- Tegra CHIPID.
        -B <boardid> ---------- BoardId.
        -C <cmdline> ---------- Kernel commandline arguments.
                                WARNING:
                                Each option in this kernel commandline gets
                                higher preference over the values set by
                                flash.sh. In case of NFS booting, this script
                                adds NFS booting related arguments, if -i option
                                is omitted.
        -F <flasher> ---------- Flash server such as cboot.bin.
        -G <file name> -------- Read partition and save image to file.
        -I <initrd> ----------- initrd file. Null initrd is default.
        -K <kernel> ----------- Kernel image file such as zImage or Image.
        -L <bootloader> ------- Bootloader such as cboot.bin or u-boot-dtb.bin.
        -M <mts boot> --------- MTS boot file such as mts_si.
        -N <nfsroot> ---------- i.e. <my IP addr>:/my/exported/nfs/rootfs.
        -R <rootfs dir> ------- Sample rootfs directory.
        -S <size> ------------- Rootfs size in bytes. Valid only for internal
                                rootdev. KiB, MiB, GiB short hands are allowed,
                                for example, 1GiB means 1024 * 1024 * 1024 bytes.
        -Z -------------------- Print configurations and then exit.
        --no-flash ------------ perform all steps except physically flashing the board.
                                This will create a system.img.
        --external-device------ Generate flash images for external devices
        --sparseupdate--------- only flash partitions that have changed. Currently only support SPI flash memory
        --no-systemimg -------- Do not create or re-create system.img.
        --bup ----------------- Generate bootloader update payload(BUP).
        --single-image-bup <part name> Generate specified single image BUP, this must work with --bup.
        --bup-type <type> ----- Generate specific type bootloader update payload(BUP), such as bl or kernel.
        --multi-spec----------- Enable support for building multi-spec BUP.
        --clean-up------------- Clean up BUP buffer when multi-spec is enabled.
        --usb-instance <id> --- Specify the USB instance to connect to;
                                <id> = USB port path (e.g. 3-14).
        --no-root-check ------- Typical usage of this script require root permissions.
                                Pass this option to allow running the script as a
                                regular user, in which case only specific combinations
                                of command-line options will be functional.
        --user_key <key_file>   User provided key file (16-byte) to encrypt user images,
                                like kernel, kernel-dtb and initrd.
                                If user_key is specified, SBK key (-v) has to be specified.
                                For now, user_key file must contain all 0's.
        --uefi-keys <keys_conf> Specify UEFI keys configuration file.
        --rcm-boot ------------ Do RCM boot instead of physically flashing the board.
        --sign ---------------- Sign images and store them under "bootloader/signed"
                                directory. The board will not be physically flashed.
        --image --------------- Specify the image to be written into board.
        --boot-chain-flash <c>  Flash only a specific boot chain (ex. "A, "B", "all").
                                Defaults to "all", inputs are case insensitive.
                                Not suitable for production.
        --boot-chain-select <c> Specify booting chain (ex. "A" or "B") after the board is flashed.
                                Defaults to "A", inputs are case insensitive.
        --pv-crt -------------- The certificate for the key that is used to sign cpu_bootloader


zynq@zynq-virtual-machine:~/nvidia/35.3/Linux_for_Tegra$ 

我貼的是rel-36的路徑 請自己把中間xml的路徑改成rel-35的

谢谢~已经解决!非常感谢!

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.