SRX

Expand all | Collapse all

Recovery issue, help using u-boot

Jump to Best Answer
  • 1.  Recovery issue, help using u-boot

    Posted 11-21-2013 07:06

    Dear forums,

     

    I could really use your help on this one...

    I have an SRX-240H which has no operating system anymore expect u-boot...

     

    When I boot the device I just get dropped in the u-boot:

    U-Boot 1.1.6-JNPR-1.7 (Build time: May  4 2010 - 06:59:58)
    
    SRX_240_HIGHMEM board revision major:1, minor:42, serial #: AABX1828
    OCTEON CN5230R-SCP pass 2.0, Core clock: 600 MHz, DDR clock: 333 MHz (666 Mhz data rate)
    DRAM:  1024 MB
    Starting Memory POST... 
    Checking datalines... OK
    Checking address lines... OK
    Checking 512K memory for U-Boot... OK.
    Running U-Boot CRC Test... OK.
    Flash:  4 MB
    USB:   scanning bus for devices... 
    Root Hub 0: 4 USB Device(s) found
    Root Hub 1: 1 USB Device(s) found
           scanning bus for storage devices... 2 Storage Device(s) found
    Clearing DRAM........ done
    BIST check passed.
    1:00:00.0 Vendor/Device ID = 0x811210b5
    1:01:07.0 Vendor/Device ID = 0xc72414e4
    Boot Media: nand-flash usb 
    Net:   octeth0
    Switch driver image not programmed properly in bootflash
    Expected 0x3c1c0006, actual 0xffffffff
    POST Passed
    Press SPACE to abort autoboot in 1 seconds
    ## No elf image at address 0x00100000
    => 

     

    I have found many posts referencing to this issue and this KB:

    http://kb.juniper.net/InfoCenter/index?page=content&id=KB14175

     

    But it seems that I can't do any TFTP (tftpboot command)... There is just no IP connectivity.

    I suspect it is related to this error:

    Net:   octeth0
    Switch driver image not programmed properly in bootflash
    Expected 0x3c1c0006, actual 0xffffffff

     There is just no driver I think... 

     

    I have seen there is also a usbboot option but I have no idea on how to implement it... 

    I logged a case with support but as always they are no help what so ever... They gave me the upgrade procedure with a usb stick...

     

    I hope someone from the forums can help me on this one?

     

    Thanks in advance!

     

     



  • 2.  RE: Recovery issue, help using u-boot

    Posted 11-21-2013 07:34

    Hi,

     

    Put your image on a USB and try from there:

     

    http://kb.juniper.net/InfoCenter/index?page=content&id=KB10386



  • 3.  RE: Recovery issue, help using u-boot

    Posted 11-21-2013 07:37

    Hello,

     

    Thank you for your reply but i'm afraid I don't even have the loader available...
    So no install command available...

     

    => help       
    ?       - alias for 'help'
    askenv  - get environment variables from stdin
    autoscr - run script from memory
    base    - print or set address offset
    bdinfo  - print Board Info structure
    boot    - boot default, i.e., run 'bootcmd'
    bootd   - boot default, i.e., run 'bootcmd'
    bootelf - Boot from an ELF image in memory
    bootloader - upgrade u-boot
    bootloader - upgrade loader
    bootloader - upgrade ushell
    bootloader - check u-boot
    bootloader - check loader
    bootm   - boot application image from memory
    bootoct - Boot from an Octeon Executive ELF image in memory
    bootoctelf - Boot a generic ELF image in memory. NOTE: This command does not support
                 simple executive applications, use bootoct for those.
    bootoctlinux - Boot from a linux ELF image in memory
    bootp	- boot image via network using BootP/TFTP protocol
    bootvx  - Boot vxWorks from an ELF image
    cmp     - memory compare
    coninfo - print console devices and information
    cp      - memory copy
    cpld     - peek/poke CPLD
    crc32   - checksum calculation
    dhcp	- invoke DHCP client to obtain IP/boot params
    dumpoct      - dump octeon regs
    dumpstats    - dump cavium stats
    echo    - echo args to console
    eeprom  - EEPROM sub-system
    erase   - erase FLASH memory
    fatinfo - print information about filesystem
    fatload - load binary file from a dos filesystem
    fatls   - list files in a directory (default /)
    flinfo  - print FLASH memory information
    go      - start application at address 'addr'
    gpio - read/write on gpio pins
    help    - print online help
    i2c - read/write on i2c bus
    id_eeprom     - peek/poke EEPROM
    ide     - IDE sub-system
    iminfo  - print header information for application image
    imls    - list all images found in flash
    itest	- return true/false on integer compare
    loadb   - load binary file over serial line (kermit mode)
    loads   - load S-Record file over serial line
    loady   - load binary file over serial line (ymodem mode)
    loop    - infinite loop on address range
    ls609x_read_reg - Read 88E6097 register
    md      - memory display
    mdkinit      - start MDK
    mm      - memory modify (auto-incrementing)
    mtest   - simple RAM test
    mw      - memory write (fill)
    nfs	- boot image via network using NFS protocol
    nm      - memory modify (constant address)
    pci     - list and access PCI Configuration Space
    pciemd      - pcie memory display
    pciemw      - pcie memory write
    pciereset      - do PCIE reset
    ping	- send ICMP ECHO_REQUEST to network host
    printenv- print environment variables
    protect - enable or disable FLASH write protection
    rarpboot- boot image via network using RARP/TFTP protocol
    read64    - read 64 bit word from 64 bit address
    read64b    - read 8 bit word from 64 bit address
    read64l    - read 32 bit word from 64 bit address
    read_cmp    - read and compare memory to val
    reset   - Perform RESET of the CPU
    run     - run commands in an environment variable
    saveenv - save environment variables to persistent storage
    setenv  - set environment variables
    sleep   - delay execution for some time
    smi     - peek/poke SMI devices
    tftpboot- boot image via network using TFTP protocol
    usb     - USB sub-system
    usbboot - boot from USB device
    version - print monitor version
    watchdog <start | stop | show | pat>
    write64    - write 64 bit word to 64 bit address
    write64b    - write 8 bit word to 64 bit address
    write64l    - write 32 bit word to 64 bit address

     

    I have this available.

     

    Thank you



  • 4.  RE: Recovery issue, help using u-boot

    Posted 11-21-2013 07:49

    When you start the device are you not prompted with the below:

     

    "Hit [Enter] to boot immediately, or space bar for command prompt." - pressing the command prompt will bring you to the loader menu.  Did you try this?

     

     

    If you wanted, you could try to use the setenv to configure network for TFTP Access from the u-boot menu:

     

    setenv ipaddr 192.168.1.1

    setenv netmask 255.255.255.0

    setenv gatewayip 192.168.1.254

    setenv serverip 192.168.1.100

     

    Once you get to the bootloader menu then do a install tftp://192.168.1.100/MYSRXIMAGE.tgz

     

     



  • 5.  RE: Recovery issue, help using u-boot
    Best Answer

    Posted 11-21-2013 08:23

    Hi everyone,

     

    I did it! So the u-boot was ok but the loader was broken.

    I managed to upgrade the u-boot and then get the new loader running again.

    As you can see in my posts above I had no working ethernet interfaces within the u-boot.

    So i went really old school and used the technique below to get the proper files loaded in to the memory.

    http://blackfin.uclinux.org/doku.php?id=bootloaders:u-boot:serial_port_loading_files

    and

    http://kb.juniper.net/InfoCenter/index?page=content&id=KB14175

     

    The box is back up and running!



  • 6.  RE: Recovery issue, help using u-boot

    Posted 11-18-2016 08:55

    Do you remember how to load the loader_crc using serial line?

    I do it using kermit, but still no elf at address 0x00100000



  • 7.  RE: Recovery issue, help using u-boot

    Posted 12-02-2016 13:39

    Can you please elaborate setup steps for sending loader-crc file through serail connection?

     

    Thanks



  • 8.  RE: Recovery issue, help using u-boot

    Posted 12-05-2016 00:41

    hi guys, I'm afraid I don't remember... It has been more than 3 years since I did it once. Maybe something changed? I don't really recall any blocking issues except having no active ethernet interfaces and having to use a filetransfer protocol over serial. Sorry guys.



  • 9.  RE: Recovery issue, help using u-boot

    Posted 10-25-2018 03:17

    Hi all,

    As I had the same issue as the original poster I wanted to post up my solution for future readers needs:

    1. Format a flash drive using the FAT filesystem
    2. Download the JUNOS OS Image and obtain the boot loader files via the procedure listed at https://kb.juniper.net/InfoCenter/index?page=content&id=KB30427
    3. Copy the JUNOS image (.tgz file), the uboot, and loader_crc on to the flash drive
    4. Insert the flash drive into the USB slot 0 on the SRX and boot up the device
    5. When presented with the following U-Boot message press the space bar to enter the U-Boot loader
    Press SPACE to abort autoboot in 1 seconds
    6. Verify that the files can be seen on the flash drive
    => fatls usb 1:1
    .spotlight-v100/
    .fseventsd/
    297184 loader_crc
    4096 ._loader_crc
    639364 uboot
    4096 ._uboot

    4 file(s), 2 dir(s)


    7. Copy the uboot and loader_crc files to the SRX using the below sequence of commands (output below)

    fatload usb 1:1 0x100000 uboot
    bootloader upgrade u-boot active 0x100000
    reset
    fatload usb 1:1 0x100000 loader_crc
    bootloader upgrade loader 0x100000
    Reset



    8. Output of operation below






    => fatload usb 1:1 0x100000 uboot
    reading uboot

    639364 bytes read
    => bootloader upgrade u-boot active 0x100000
    Checking sanity of backup u-boot...OK
    Un-Protected 10 sectors

    .......... done
    Erased 10 sectors
    writing to flash...
    Verifying the new u-boot... OK
    => reset


    U-Boot 1.1.6-JNPR-2.8 (Build time: Feb 10 2015 - 01:03:41)

    Initializing memory this may take some time...
    Measured DDR clock 333.28 MHz
    SRX_240H2 board revision major:2, minor:11, serial #: ACLT4470
    OCTEON CN5230R-SCP pass 2.0, Core clock: 600 MHz, DDR clock: 333 MHz (666 Mhz data rate)
    DRAM: 2048 MB
    Starting Memory POST...
    Checking datalines... OK
    Checking address lines... OK
    Checking 512K memory for U-Boot... OK.
    Running U-Boot CRC Test... OK.
    Flash: 4 MB
    USB: scanning bus for devices...
    Root Hub 0: 4 USB Device(s) found
    Root Hub 1: 1 USB Device(s) found
    scanning bus for storage devices... 2 Storage Device(s) found
    Clearing DRAM........ done
    BIST check passed.
    PCIe: Initializing port 0
    PCIe: Initializing port 1
    Boot Media: nand-flash usb
    Net: octeth0
    Switch driver image not programmed properly in bootflash
    Expected 0x3c1c0000, actual 0xaaaaaaaa
    POST Passed
    Press SPACE to abort autoboot in 1 seconds
    ## No elf image at address 0x00100000
    => fatload usb 1:1 0x100000 loader_crc
    reading loader_crc

    297184 bytes read
    => bootloader upgrade loader 0x100000
    Un-Protected 16 sectors

    ................ done
    Erased 16 sectors
    writing to flash...
    Verifying new loader image...OK
    => reset



  • 10.  RE: Recovery issue, help using u-boot

    Posted 05-15-2019 15:25

    => fatls usb 1:1
    system volume information/
    149518174 junos-srxsme-12.1x46-d86-domestic.tgz
    4096 ._junos-srxsme-12.1x46-d86-domestic.tgz
    .fseventsd/
    639364 uboot
    4096 ._uboot
    297184 loader_crc
    4096 ._loader_crc
    4096 ._.trashes
    .trashes/
    .spotlight-v100/

    7 file(s), 4 dir(s)

    =>

     

    Followed:

    fatload usb 1:1 0x100000 uboot
    bootloader upgrade u-boot active 0x100000
    reset
    fatload usb 1:1 0x100000 loader_crc
    bootloader upgrade loader 0x100000
    Reset

     

    Still stuck on this prompt. any thought please?



  • 11.  RE: Recovery issue, help using u-boot

    Posted 09-26-2019 10:46
      |   view attached

    Here's what I did after being stuck in uboot for a long time. The SRX I bought was no longer under support and I totally knew it was something with the environment options in this u-boot, which was preventing it to go to 'loader>' but nowhere could I find an example of the working set of options. So I bought another working SRX100 and I run a comparison of the varibles, and surprise - I had to modify several. Attached are the options that I am using and the command in specific that made it go from u-boot '=>' prompt to 'loader>' where I used TFTP to move on further with the upgrade:

    => setenv bootcmd=cp.b 0xbfe00000 0x100000 0x100000; bootelf 0x100000

    After pressing ENTER, the 'loader>' started and I loaded an image for the platform.
    To modify a value, so it can align with the ones attached:

    => setenv <option> <value>

    Example:

    => set loaddev disk0:

    To save:

    => saveenv

    To view the current variables:

    => printenv

    To reboot:

    => reset

     

    NOTE: This worked on the SRX100 firewall, not sure if these values are correct for other platforms, proceed at your own risk.

    Attachment(s)