Description

This article explains how to discover which version of Jloader is currently installed on the QFX3500. This information is commonly required before upgrading.

Note: This procedure is the same for the QFX3500 Node device that is part of QFabric as well.

Symptoms

Before upgrading the Jloader on the QFX3500, we must first discover which version of Jloader is currently installed.

Solution


The boot loader (Uboot) contains the Jloader firmware. Uboot initializes the QFX Series device boot process and loads the Junos OS from the flash memory of the device. The Jloader software for a QFX3500 switch resides in both the Uboot memory banks. At any time, one bank acts as the primary bank, and the QFX3500 switch boot is initiated from it. The other bank is the backup bank—if the QFX3500 switch boot cannot be initiated from the primary Uboot bank, it boots from the backup bank. The primary and backup banks alternate each time you upgrade the Jloader software, with the primary bank containing the most recently installed version of the software, and the backup bank containing the previous version.

  1. Reboot the device.

  • While rebooting:

If we see "Partition [1,0], DRAM MATS Passed", the system is booting from Uboot partition 1, and the previous Uboot partition it booted from was 0.
If we see "Partition [0,0], DRAM MATS Passed", the system is booting from Uboot partition 0, and the previous Uboot partition it booted from was also 0.
If we see "Partition [1,1], DRAM MATS Passed", the system is booting from Uboot partition 1, and the previous Uboot partition it booted from was also 1.
If we see "Partition [0,1], DRAM MATS Passed", the system is booting from Uboot partition 0, and the previous Uboot partition it booted from was 1.

  • Enable session logging.

  • Reboot the device and watch the CLI output  for U-Boot 1.1.6 (Build time: Aug 31 2013 - 12:36:40) . Immediately press "CNTRL C" continuously until you get the prompt
    QFX-XXXX # .

  • Enter the command printenv :

    QFX-XXXX #printenv
    bootdelay=5
    baudrate=9600
    post_verbose=1
    ipaddr=10.209.72.218
    gatewayip=10.209.73.254
    loaderInit=
    netmask=255.255.254.0
    hw.vc.fabric_mode=0
    hw.vc.mixed_mode=0
    old_loaddev=d.type=09a5
    dev.status_print_disabled=0
    loaddev=disk0s2: =============== >>>>>>> The current Junos partition is /dev/da0s2a
    hw.board.type=09a5
    hw.board.rev=4
    hw.pci.enable_static_config=0
    flash_base_addr=0xbc000000
    flash_size=0x800000
    boot.upgrade.uboot=0xbc400000
    boot.upgrade.loader=0xbc600000
    bootcmd=bootelf 0xbc200000
    boot.env.start=0xbc3f0000
    boot.env.size=0x10000
    console=comconsole
    boot.version=1.1.8 ============ >>>>>>>>> Jloader version is “1.1.8”
    cpld.version=6
    hw.version=4
    stdin=serial
    stdout=serial
    stderr=serial
    hw.board.tor_mode=1
    ethaddr=08:81:f4:d3:ed:2c
    ethact=gmac5
    ver=U-Boot 1.1.6 (Build time: Aug 31 2013 - 12:36:40)

    We have now verified the Jloader version on Uboot partition 0.


  • To check the Jloader version on Uboot partition 1, enter cpld_reset from the prompt:

    QFX-XXXX #cpld_reset:

    Current partition: 0 ================== >>>>>>>>>>>>>>>> current uboot partition is 0

    Resetting to boot from partition: 1 !!!!! ================ >>>>>>>>> booting from uboot partition 1


  • Wait for the message U-Boot 1.1.6 (Build time: Jan 25 2012 - 07:53:14) . Immediately press "CNTRL C" continuously until you get the Uboot prompt.
  • Enter the command printenv ; this will retrieve the Jloader version in Uboot partition 1.

QFX-XXXX #printenv
bootdelay=5
baudrate=9600
post_verbose=1
ipaddr=10.209.72.218
gatewayip=10.209.73.254
loaderInit=
netmask=255.255.254.0
hw.vc.fabric_mode=0
hw.vc.mixed_mode=0
old_loaddev=d.type=09a5
dev.status_print_disabled=0
loaddev=disk0s2: ================== >>>>>>>>>>>>>>>> Note that the Junos partition remains the same
hw.board.type=09a5
hw.board.rev=4
hw.pci.enable_static_config=0
flash_base_addr=0xbc000000
flash_size=0x800000
boot.upgrade.uboot=0xbc000000
boot.upgrade.loader=0xbc200000
bootcmd=bootelf 0xbc600000
boot.env.start=0xbc3f0000
boot.env.size=0x10000
console=comconsole
boot.version=1.1.4 ====================== >>>>>>>>>>>>>>>>> Jloader on Uboot partition 1 is “1.1.4”
cpld.version=6
hw.version=4
stdin=serial
stdout=serial
stderr=serial
hw.board.tor_mode=1
ethaddr=08:81:f4:d3:ed:2c
ethact=gmac5
ver=U-Boot 1.1.6 (Build time: Jan 25 2012 - 07:53:14) 


Note : A normal reboot from the CLI or shell does not boot the device from a different Uboot partition under normal conditions. Another way to boot from the other Uboot partition is from loader prompt; a reboot in the loader prompt forces the device to boot from the other partition.