Advertisement
Guest User

BCAT Script

a guest
Sep 21st, 2014
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.55 KB | None | 0 0
  1. MyDevice = "Motorola SB6120"    #Name of device
  2. ImgFile = "images\Motorola.gif"
  3. #  FwBase = 0x40000    ## OFFSET TO UBFI1
  4. FwBase = 0x3f0000      ## OFFSET TO UBFI2(SB6121 DEFAULTS TO THIS ONE)
  5.  
  6. if not (Memory.Exist)
  7.     Writeline("Error in script: Flash not connected")
  8.     exit script
  9. endif
  10.  
  11. #   ObjTxt = Memory.ReadString(0x40020)      ## OFFSET + 0x20
  12. ObjTxt = Memory.ReadString(0x3F0020)        
  13. if (ObjTxt = Nothing)
  14.     Writeline("Flash data does not contain proper firmware format...nothing")      
  15.     exit script
  16. endif
  17. if not (ObjTxt = "Boot Script File")
  18.     Writeline("Flash data does not contain proper firmware format, boot script file tag not found")    
  19.     exit script
  20. endif
  21.  
  22. #   FwFileOffset = Memory.Read(0x4000E,2,true)     # OFFSET + 0xE
  23. FwFileOffset = Memory.Read(0x3F000E,2,true)        
  24.  
  25. FwFileOffsetInt = HWord(FwFileOffset,0)
  26. ReadOffset = FwFileOffsetInt + FwBase + 76
  27. FwFileOffset = Memory.Read(ReadOffset,4,true)
  28. FwSize = Word(FwFileOffset,0) + FwFileOffsetInt + 128
  29.  
  30. t1 = Tab.Create(MyDevice)
  31.  
  32. Tab(t1).AddGroup("Firmware",10,10,420,75)
  33. Tab(t1).AddButton("ReadFirmware","Read",120,42)
  34. Tab(t1).AddButton("WriteFirmware","Write",270,42)
  35. Tab(t1).AddImage("LOGO",ImgFile,45,240)
  36.  
  37. CreateEvent(ReadFirmware)
  38.     Status("Saving the SB6120's Firmware")
  39.         Tab(t1).ButtonDisable()
  40.     MyData = Memory.ReadVerify(FwBase,FwSize)
  41.         if (MyData = Nothing)
  42.         Status("Error: data read back failed")
  43.             Tab(t1).ButtonEnable()
  44.         Exit Event
  45.     endif
  46.     Prompt = "Choose filename to save the firmware"
  47.     SaveFile(MyData,Prompt,"SB6120.bin")
  48.     Status("Successfully read firmware from Flash")
  49.         Tab(t1).ButtonEnable()
  50. EndEvent
  51.  
  52. CreateEvent(WriteFirmware)
  53.     Status("Programming the SB6120's Firmware")
  54.         Tab(t1).ButtonDisable()
  55.     Prompt = "Choose a firmware to install"
  56.     MyData = OpenFile(Prompt,"Firmware files (*.bin,*.p7)|*.bin;*.p7")
  57.     if (MyData = Nothing)
  58.         WriteErr = "User cancelled opperation"
  59.         goto    ExitWriteFwErr
  60.     endif
  61.     If (HWORD(MyData,0) = 12418)        #Remove header if .p7 fw
  62.         Writeline("Removing .p7 firmware header")
  63.         HeadLen = HWORD(MyData,2) + 52  #increases Headlen by 7
  64.         NewLen = Len(MyData) - HeadLen
  65.         Resize(MyData,HeadLen,NewLen)   #Removes the p7 header
  66.     endif
  67.     If not (HWORD(MyData,0) = 0x2705)
  68.         Status("Error: File does not appear to be compatible firmware")
  69.         exit event
  70.     endif
  71.     FwLen = Len(MyData)
  72.     Memory.Write(MyData,FwBase,FwLen)
  73.     FwSize = FwLen
  74.     Status("New firmware successfully installed")
  75.         Tab(t1).ButtonEnable()
  76.         Exit
  77.   ExitWriteFwErr:
  78.     Status(WriteErr)
  79.         Tab(t1).ButtonEnable()
  80. EndEvent
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement