Sorry, you need to enable JavaScript to visit this website.

Minized - Restore Factory Status not Working

Solved
15 posts / 0 new
joaodullius
Junior(0)
Minized - Restore Factory Status not Working

Hello,
 
I uploaded a broken Linux to eMMC and now I need to get a Minized back to factory settings, but I´m having a hard time. 
I´m using Vivado 2017.3 and Restore QSPI and EMMC Factory Images -http://zedboard.org/content/restore-qspi-and-emmc-factory-images.

Unlikely the recover documentation, Vivado 2017.3 asks for and fsbl.elf in addition to the bin file.
So I managed to program flash_only_boot_7007S.bin and fsbl (generated from  Tutorial 04 FSBL and Boot from QSPI.)
It programmed the QSPI OK, but now all I get is an u-boot with the following:

U-Boot 2016.07 (Jul 27 2017 - 21:56:59 -0700)

DRAM:  ECC disabled 512 MiB
MMC:   sdhci@e0100000: 0, sdhci@e0101000: 1
SF: Detected N25Q128 with page size 256 Bytes, erase size 64 KiB, total 16 MiB
In:    serial
Out:   serial
Err:   serial
Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc1(part 0) is current device
reading image.ub
25198592 bytes read in 2321 ms (10.4 MiB/s)
## Loading kernel from FIT Image at 10000000 ...
Bad FIT kernel image format!
ERROR: can't get kernel image!
Zynq>

 

Shouldn´t flash_only_boot_7007S boot entirely from QSPI? I think it is still loading my broken image.ub in the eMMC.

 

Any shed of light?

 

Regards,

JFoster
Moderator(66)
The tutorial you are refering

The tutorial you are refering to utilizes Vivado 2017.1. Please install Vivado 2017.1 + SDK and once again go through the instructions.

That is most likely the cause of your issue.

--Josh

joaodullius
Junior(0)
Hi Josh.

Hi Josh.
In fact it says in page 3:  "Xilinx SDK 2017.1 or later from https://www.xilinx.com/support/download.html . The
XSCT tool of this installation can be used to program the QSPI flash, U2.".
But i'll download 2017.1 and try anyway.
Thanks for the reply!

joaodullius
Junior(0)
Hi Josh.

Hi Josh.
I re-flashed using 2017.1 and I still get the same error after rebooting:
 
U-Boot 2016.07 (Jul 27 2017 - 21:56:59 -0700)

DRAM:  ECC disabled 512 MiB
MMC:   sdhci@e0100000: 0, sdhci@e0101000: 1
SF: Detected N25Q128 with page size 256 Bytes, erase size 64 KiB, total 16 MiB
In:    serial
Out:   serial
Err:   serial
Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc1(part 0) is current device
reading image.ub
25198592 bytes read in 2320 ms (10.4 MiB/s)
## Loading kernel from FIT Image at 10000000 ...
Bad FIT kernel image format!
ERROR: can't get kernel image!
Zynq>
I found particulary strange the "mmc1(part 0) is current device" info, since it is suposed to be a QSPI boot only image, right?
I even did a -erase_only in xsct to ensure that flash_only_boot_7007S.bin was really being flashed

Programming with XSCT

On the tools versions:
You are correct.  There is an issue with the document instructions and XSCT for 2017.3.  It does not work as it did for 2017.1 and 2017.2.  The document instructions may have to be updated.  It seems that 2017.3 expects the FSBL to be specified when programming.  And you may need the zynq_fsbl.elf file in your programming directory.  This file is in the /images/linux directory of the BSP-imported project  under Linux.  If you have that file (or one you created during the tutorials), you can use
exec program_flash -f flash_only_boot_7007S.bin -fsbl zynq_fsbl.elf -flash_type qspi_single
One difference I have noticed (under 2017.1) between using the -fsbl syntax and not is that the blue DONE LED on minized almost immediately comes on again after using that syntax, while without it the LED remains off until you eventually reset the board.  I do not yet know why that is.
Currently the latest MiniZed BSP is still 2017.2, so please note that it is not recommended to mix tools versions between Vivado/SDK and PetaLinux.  That being said, also note that the factory default flash_only_boot_7007S.bin file was created under 2016.4.
In terms of your output from the boot process, it definitely does not look as if your flash programming was successful.  Did you wait for XSCT to report "Flash Operation Successful"?  It takes a while.  I paste my log from that boot process and it differs from yours in a number of places. 
********* Boot log after programming flash_only_boot_7007S.bin ***********************************
U-Boot 2016.07 (Jul 27 2017 - 21:56:59 -0700)

DRAM:  ECC disabled 512 MiB
MMC:   sdhci@e0100000: 0, sdhci@e0101000: 1
SF: Detected N25Q128 with page size 256 Bytes, erase size 64 KiB, total 16 MiB
*** Warning - bad CRC, using default environment

In:    serial
Out:   serial
Err:   serial
U-BOOT for

Hit any key to stop autoboot:  0
SF: Detected N25Q128 with page size 256 Bytes, erase size 64 KiB, total 16 MiB
device 0 offset 0x270000, size 0xd80000
SF: 14155776 bytes @ 0x270000 Read: OK
## Loading kernel from FIT Image at 10000000 ...
   Using 'conf@1' configuration
   Verifying Hash Integrity ... OK
   Trying 'kernel@0' kernel subimage
     Description:  Linux Kernel
     Type:         Kernel Image
     Compression:  uncompressed
     Data Start:   0x100000d4
     Data Size:    4075120 Bytes = 3.9 MiB
     Architecture: ARM
     OS:           Linux
     Load Address: 0x00008000
     Entry Point:  0x00008000
     Hash algo:    sha1
     Hash value:   0ba8ef7520fcc3903d7d0b7d611e510db5515298
   Verifying Hash Integrity ... sha1+ OK
## Loading ramdisk from FIT Image at 10000000 ...
   Using 'conf@1' configuration
   Trying 'ramdisk@0' ramdisk subimage
     Description:  ramdisk
     Type:         RAMDisk Image
     Compression:  uncompressed
     Data Start:   0x103e72e8
     Data Size:    9973532 Bytes = 9.5 MiB
     Architecture: ARM
     OS:           Linux
     Load Address: unavailable
     Entry Point:  unavailable
     Hash algo:    sha1
     Hash value:   d18a7880ad0b55e0e329d28fac6624576448b03d
   Verifying Hash Integrity ... sha1+ OK
## Loading fdt from FIT Image at 10000000 ...
   Using 'conf@1' configuration
   Trying 'fdt@0' fdt subimage
     Description:  Flattened Device Tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x103e3038
     Data Size:    16894 Bytes = 16.5 KiB
     Architecture: ARM
     Hash algo:    sha1
     Hash value:   d989058f04e066702a50da837782f2c5ed94e7b8
   Verifying Hash Integrity ... sha1+ OK
   Booting using the fdt blob at 0x103e3038
   Loading Kernel Image ... OK
   Loading Ramdisk to 0767d000, end 07ffff1c ... OK
   Loading Device Tree to 07675000, end 0767c1fd ... OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
Booting Linux on physical CPU 0x0
Linux version 4.6.0-xilinx (training@localhost.localdomain) (gcc version 5.2.1 20151005 (Linaro GCC 5.2-2015.11-2) ) #1 SMP PREEMPT Thu Jul 27 22:24:51 PDT 2017
CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
Machine model: minized
bootconsole [earlycon0] enabled
cma: Reserved 16 MiB at 0x1f000000
Memory policy: Data cache writealloc
percpu: Embedded 12 pages/cpu @debca000 s19776 r8192 d21184 u49152
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048
Kernel command line: console=ttyPS0,115200 earlyprintk
PID hash table entries: 2048 (order: 1, 8192 bytes)
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
Memory: 482712K/524288K available (6319K kernel code, 249K rwdata, 1916K rodata, 1024K init, 212K bss, 25192K reserved, 16384K cma-reserved, 0K highmem)
Virtual kernel memory layout:
    vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
    vmalloc : 0xe0800000 - 0xff800000   ( 496 MB)
    lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
    pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
    modules : 0xbf000000 - 0xbfe00000   (  14 MB)
      .text : 0xc0008000 - 0xc090ae84   (9228 kB)
      .init : 0xc0a00000 - 0xc0b00000   (1024 kB)
      .data : 0xc0b00000 - 0xc0b3e7a0   ( 250 kB)
       .bss : 0xc0b3e7a0 - 0xc0b73a38   ( 213 kB)
Preemptible hierarchical RCU implementation.
        Build-time adjustment of leaf fanout to 32.
        RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
RCU: Adjusting geometry for rcu_fanout_leaf=32, nr_cpu_ids=2
NR_IRQS:16 nr_irqs:16 16
efuse mapped to e0800000
slcr mapped to e0802000
L2C: platform modifies aux control register: 0x72360000 -> 0x72760000
L2C: DT/platform modifies aux control register: 0x72360000 -> 0x72760000
L2C-310 erratum 769419 enabled
L2C-310 enabling early BRESP for Cortex-A9
L2C-310 full line of zeros enabled for Cortex-A9
L2C-310 ID prefetch enabled, offset 1 lines
L2C-310 dynamic clock gating enabled, standby mode enabled
L2C-310 cache controller enabled, 8 ways, 512 kB
L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x76760001
zynq_clock_init: clkc starts at e0802100
Zynq clock init
sched_clock: 64 bits at 333MHz, resolution 3ns, wraps every 4398046511103ns
clocksource: arm_global_timer: mask: 0xffffffffffffffff max_cycles: 0x4ce07af025, max_idle_ns: 440795209040 ns
Switching to timer-based delay loop, resolution 3ns
clocksource: ttc_clocksource: mask: 0xffff max_cycles: 0xffff, max_idle_ns: 537538477 ns
timer #0 at e080a000, irq=17
Console: colour dummy device 80x30
Calibrating delay loop (skipped), value calculated using timer frequency.. 666.66 BogoMIPS (lpj=3333333)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
CPU: Testing write buffer coherency: ok
CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
Setting up static identity map for 0x100000 - 0x100058
CPU1: failed to boot: -1
Brought up 1 CPUs
SMP: Total of 1 processors activated (666.66 BogoMIPS).
CPU: All CPU(s) started in SVC mode.
devtmpfs: initialized
VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
pinctrl core: initialized pinctrl subsystem
NET: Registered protocol family 16
DMA: preallocated 256 KiB pool for atomic coherent allocations
cpuidle: using governor menu
hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
hw-breakpoint: maximum watchpoint size is 4 bytes.
zynq-ocm f800c000.ocmc: ZYNQ OCM pool: 256 KiB @ 0xe0880000
zynq-pinctrl 700.pinctrl: zynq pinctrl initialized
GPIO IRQ not connected
XGpio: /amba_pl/gpio@41200000: registered, base is 905
GPIO IRQ not connected
XGpio: /amba_pl/gpio@41200000: dual channel registered, base is 904
GPIO IRQ not connected
XGpio: /amba_pl/gpio@41210000: registered, base is 903
GPIO IRQ not connected
XGpio: /amba_pl/gpio@41220000: registered, base is 895
vgaarb: loaded
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
media: Linux media interface: v0.10
Linux video capture interface: v2.00
pps_core: LinuxPPS API ver. 1 registered
pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
PTP clock support registered
EDAC MC: Ver: 3.0.0
Advanced Linux Sound Architecture Driver Initialized.
Bluetooth: Core ver 2.21
NET: Registered protocol family 31
Bluetooth: HCI device and connection manager initialized
Bluetooth: HCI socket layer initialized
Bluetooth: L2CAP socket layer initialized
Bluetooth: SCO socket layer initialized
clocksource: Switched to clocksource arm_global_timer
NET: Registered protocol family 2
TCP established hash table entries: 4096 (order: 2, 16384 bytes)
TCP bind hash table entries: 4096 (order: 3, 32768 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
UDP hash table entries: 256 (order: 1, 8192 bytes)
UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
Trying to unpack rootfs image as initramfs...
Freeing initrd memory: 9740K (c767d000 - c8000000)
hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available
futex hash table entries: 512 (order: 3, 32768 bytes)
workingset: timestamp_bits=28 max_order=17 bucket_order=0
jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
dma-pl330 f8003000.dmac: Loaded driver for PL330 DMAC-241330
dma-pl330 f8003000.dmac:        DBUFF-128x8bytes Num_Chans-8 Num_Peri-4 Num_Events-16
Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
43c00000.serial: ttyS0 at MMIO 0x43c01000 (irq = 166, base_baud = 3000000) is a 16550A
e0000000.serial: ttyPS1 at MMIO 0xe0000000 (irq = 143, base_baud = 6249999) is a xuartps
e0001000.serial: ttyPS0 at MMIO 0xe0001000 (irq = 144, base_baud = 6249999) is a xuartps
ðconsole [ttyPS0] enabled
console [ttyPS0] enabled
bootconsole [earlycon0] disabled
bootconsole [earlycon0] disabled
xdevcfg f8007000.devcfg: ioremap 0xf8007000 to e081e000
[drm] Initialized drm 1.1.0 20060810
brd: module loaded
loop: module loaded
m25p80 spi0.0: found n25q128a13, expected m25p80
m25p80 spi0.0: n25q128a13 (16384 Kbytes)
4 ofpart partitions found on MTD device spi0.0
Creating 4 MTD partitions on "spi0.0":
0x000000000000-0x000000ff0000 : "boot"
0x000000270000-0x000000ff0000 : "kernel"
0x000000ff0000-0x000001000000 : "bootenv"
0x000001000000-0x000001000000 : "spare"
mtd: partition "spare" is out of reach -- disabled
e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ehci-pci: EHCI PCI platform driver
usbcore: registered new interface driver usb-storage
e0002000.usb supply vbus not found, using dummy regulator
ULPI transceiver vendor/product ID 0x0424/0x0007
Found SMSC USB3320 ULPI transceiver.
ULPI integrity check: passed.
ci_hdrc ci_hdrc.0: EHCI Host Controller
ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1
ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
mousedev: PS/2 mouse device common for all mice
i2c /dev entries driver
i2c i2c-0: of_i2c: modalias failure on /amba_pl/i2c@41600000/i2c4@6b
Bluetooth: HCI UART driver ver 2.3
Bluetooth: HCI UART protocol H4 registered
Bluetooth: HCI UART protocol BCSP registered
Bluetooth: HCI UART protocol LL registered
Bluetooth: HCI UART protocol ATH3K registered
Bluetooth: HCI UART protocol Three-wire (H5) registered
EDAC MC: ECC not enabled
Xilinx Zynq CpuIdle Driver started
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
sdhci-pltfm: SDHCI platform and OF driver helper
sdhci-arasan e0100000.sdhci: assigned as wifi host
mmc0: SDHCI controller on e0100000.sdhci [e0100000.sdhci] using DMA
mmc1: SDHCI controller on e0101000.sdhci [e0101000.sdhci] using DMA
ledtrig-cpu: registered to indicate activity on CPUs
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
NET: Registered protocol family 10
sit: IPv6 over IPv4 tunneling driver
NET: Registered protocol family 17
Bluetooth: RFCOMM TTY layer initialized
Bluetooth: RFCOMM socket layer initialized
Bluetooth: RFCOMM ver 1.11
Bluetooth: BNEP (Ethernet Emulation) ver 1.3
Bluetooth: BNEP socket layer initialized
Bluetooth: HIDP (Human Interface Emulation) ver 1.2
Bluetooth: HIDP socket layer initialized
Registering SWP/SWPB emulation handler
mmc1: new high speed MMC card at address 0001
hctosys: unable to open rtc device (rtc0)
wlreg_on: disabling
ALSA device list:
  No soundcards found.
Freeing unused kernel memory: 1024K (c0a00000 - c0b00000)
INIT: mmcblk1boot0: mmc1:0001 Q2J55L partition 1 16.0 MiB
version 2.88 bootingmmcblk1boot1: mmc1:0001 Q2J55L partition 2 16.0 MiB

mmcblk1rpmb: mmc1:0001 Q2J55L partition 3 4.00 MiB
 mmcblk1: p1
FAT-fs (mmcblk1p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
EXT4-fs (mmcblk1rpmb): unable to read superblock
EXT4-fs (mmcblk1rpmb): unable to read superblock
EXT2-fs (mmcblk1rpmb): error: unable to read superblock
FAT-fs (mmcblk1rpmb): unable to read boot sector
EXT4-fs (mmcblk1rpmb): unable to read superblock
EXT4-fs (mmcblk1rpmb): unable to read superblock
EXT2-fs (mmcblk1rpmb): error: unable to read superblock
FAT-fs (mmcblk1rpmb): unable to read boot sector
FAT-fs (mmcblk1rpmb): unable to read boot sector
mount: mounting /dev/mmcblk1rpmb on /run/media/mmcblk1rpmb failed: Input/output error
mount: mounting /dev/mmcblk1boot0 on /run/media/mmcblk1boot0 failed: Invalid argument
mount: mounting /dev/mmcblk1boot1 on /run/media/mmcblk1boot1 failed: Invalid argument
/etc/mdev/mdev-mount.sh: line 28: [: /sys/block/mmcblk1/mmcblk1boot1: binary operator expected
mount: mounting /dev/mmcblk1 on /run/media/mmcblk1 failed: Device or resource busy
random: dd urandom read with 3 bits of entropy available
Fri Jul 28 05:27:22 UTC 2017
Starting internet superserver: inetd.
INIT: Entering runlevel: 5
Configuring network interfaces... ifconfig: SIOCGIFFLAGS: No such device
Starting system message bus: dbus.
Starting Dropbear SSH server: Generating key, this may take a while...
Public key portion is:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCgoIuoxYlhAHSMqzYg4DbPkJmmLZ+Jlw9gy6MnCcRtu9T54lQzis0ZUu+D/l+CXhGr2cw/U6RvGEU89yK5Yz6ph471LT09ZTpUCGwOca8P2RnqDHiohNjsKKU97/c4Zmvgi7/UIVb150zXfr+6SV3qDl1kC47NqjfDdwVS91FyCsVMD5+ZxgOUJhFPwL9uyQry0cbmwL2cAcm1EabUf6x7mhmCp1r4s0G2MxFfxwVy5ptY/lPeChVDheayT0fP5EW5MzmQpKEHVF5lTcdy2w5979RX+dwBNGjY9Mod84yDefNGrwCzj/ZYW7SdIJSFbtho6UnhSOKH3LVY/u650bav root@plnx_arm
Fingerprint: md5 0b:7e:ad:a1:bc:1d:3a:bb:7a:4b:38:df:78:93:35:b9
dropbear.
Starting syslogd/klogd: done
Starting tcf-agent: OK

PetaLinux 2016.4 plnx_arm /dev/ttyPS0

plnx_arm login:
 

joaodullius
Junior(0)
Hi Stefan,

Hi Stefan,
 
This is odd. 
I tryed:
- 2017.3 with fsbl from tutorials
- 2017.2 with fsbl from tutorials
- 2017.1 without fsbl as it is not needed
I always get the same posted results.
 
For sure I waited for the Flash Operation Successful.
To double check if flash_only_boot_7007S.bin was really being flashed, I first flashed a Hello Word and reset the board.
 
Looking at your log, at least the u-boot version is the same (U-Boot 2016.07 (Jul 27 2017 - 21:56:59 -0700)).
 
Do you mind sharing your bin file? I saw in some other post that the files were updated. I want to double check if I have a working file.
 
Regards,
 
 

flash_only_boot_7007S.bin

The file I have should be the same one that is in the zip with the document "Restoring  MiniZed to the Factory State" and the XSCT instructions on page 10.  The link was posted on as

Restore QSPI and eMMC Factory Images

Restore QSPI and eMMC Factory Images

12.Sept.17

I just re-downloaded the file and file compared the content again with what I am using.  They are the same:
flash_only_boot_7007S.bin
Size 16,623,092
Date 07/27/2017

joaodullius
Junior(0)
Thanks Stefan.

Thanks Stefan.
Should u-boot enviroment be overwriten when flash_only_boot_7007S.bin is flashed?
 
For sure my u-boot is trying to boot from MMC:
cp_kernel2ram=mmc dev 1 && fatload mmc 1 ${netstart} ${kernel_img}
default_bootcmd=run cp_kernel2ram && bootm ${netstart}
 
So, I added a custom variable:
setenv test = yes
saveenv
 
Then I flashed flash_only_boot_7007S.bin as follows:
xsct% exec program_flash -f flash_only_boot_7007S.bin -flash_type qspi_single   
                                                                                
****** Xilinx Program Flash
****** Program Flash v2017.1 (64-bit)
  **** SW Build 1846317 on Fri Apr 14 18:54:47 MDT 2017
    ** Copyright 1986-2017 Xilinx, Inc. All Rights Reserved.

Connecting to hw_server @ TCP:localhost:3121

WARNING: Failed to connect to hw_server at TCP:localhost:3121
Attempting to launch hw_server at TCP:localhost:3121

Connected to hw_server @ TCP:localhost:3121
Available targets and devices:
Target 0 : jsn-MiniZed V1-1234-oj1A
    Device 0: jsn-MiniZed V1-1234-oj1A-4ba00477-0

Retrieving Flash info...

Initialization done, programming the memory
BOOT_MODE REG = 0x00000001
WARNING: [Xicom 50-100] The current boot mode is QSPI.
If flash programming fails, configure device for JTAG boot mode and try again.
f probe 0 0 0
Performing Erase Operation...
Erase Operation successful.
INFO: [Xicom 50-44] Elapsed time = 28 sec.
Performing Program Operation...
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Program Operation successful.
INFO: [Xicom 50-44] Elapsed time = 81 sec.

Flash Operation Successful
xsct%                                                                         
And after rebooting that test = yes variable was still showing in printenv

Boot Switch

Can you confirm that while programming the flash you have the boot mode switch in the "JTAG" position and that when you re-boot, it is in the "Flash" position?  Trying to see if I can get an answer on why env variables will persist beyond re-programming.

Erasing env variables in flash

It seems that when you saveenv, it saves to an area in flash that is different from the area that is erased and programmed when programming a .bin file.
I do not know how to change that in XSCT.  I saw above that you tried -erase_only and I do not know where you saw that switch but I tried it and it did not work to erase variables.  But you can force the entire flash to be programmed by doing it from the Hardware Manager inside Vivado.  Open it and connect to the target and add a configuration device.  Pick the Murata 128Mb QSPI single device mt25ql128-qspi-x1-single.
When programming, you have the option of programming the Configuration File Only (default) or the Entire Configuration Memory Device.  If you select the latter, the saved env variables also get cleared.

Correction-Micron

Above, it is the Micron flash, not Murata :)  Murata makes the wireless device on the board.  The memories are all from Micron.

joaodullius
Junior(0)
Hello Stefan,

Hello Stefan,
It's alive!
After programming through Vivado Hardware Manager in Vivado 2017.3 and setting for Entire Configuration Memory Device, I got the restoration Linux image up and running.
So, the u-boot env variables were the issue, since they were not being rewritten.
I would suggest updating "Restoring  MiniZed to the Factory State" with this flow and with the fsbl needed in 2017.2 and later, as I believe this procedure would be needed for other Minized+Petalinux users with broken kernels.
I really appreciate your support and the learning experience :)
 

Good that you got it going. 

Good that you got it going.  We will look at adding some notes to the document about this.  Using XSCT is convenient because one does not need an existing Vivado or SDK project in order to use it and it will work for most users.  But as your case shows, sometimes it will be necessary to re-program the whole flash device.

Erasing env variables in flash from u-boot

Apart from using the Vivado Hardware Manager, there seems to be another way to erase the entire flash, as long as you are able to run u-boot and interrupt it while it is doing its "Hit any key to stop autoboot" countdown.
sf probe 0 0 0
sf erase 0 0x1000000
This should erase everything.  Then you can re-program it using XSCT.

New document for Restore QSPI and eMMC Factory Images

Please note that there is a new document for this.

Restore QSPI and eMMC Factory Images

21.Nov.17

 

1) The XSCT syntax for using the FSBL has been added

2) There is a section on erasing environmental variables

3) There is also a section on having a fallback image.ub in flash.  This is particularly useful if you corrupted your image.ub that is stored in eMMC.