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
Switch driver image not programmed properly in bootflash
Expected 0x3c1c0006, actual 0xffffffff
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:
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:
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!
Put your image on a USB and try from there:
Thank you for your reply but i'm afraid I don't even have the loader available...So no install command available...
? - 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.
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
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.
The box is back up and running!
Do you remember how to load the loader_crc using serial line?
I do it using kermit, but still no elf at address 0x00100000
Can you please elaborate setup steps for sending loader-crc file through serail connection?
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.
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
=> fatls usb 1:1system volume information/149518174 junos-srxsme-12.1x46-d86-domestic.tgz4096 ._junos-srxsme-12.1x46-d86-domestic.tgz.fseventsd/639364 uboot4096 ._uboot297184 loader_crc4096 ._loader_crc4096 ._.trashes.trashes/.spotlight-v100/
7 file(s), 4 dir(s)
fatload usb 1:1 0x100000 ubootbootloader upgrade u-boot active 0x100000resetfatload usb 1:1 0x100000 loader_crcbootloader upgrade loader 0x100000Reset
Still stuck on this prompt. any thought please?
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>
=> set loaddev disk0:
To view the current variables:
NOTE: This worked on the SRX100 firewall, not sure if these values are correct for other platforms, proceed at your own risk.