├── mkdocs.yml ├── README.md └── documentation ├── story.md ├── mgmt.md ├── mac.md ├── revert.md ├── config.md ├── index.md └── delta.md /mkdocs.yml: -------------------------------------------------------------------------------- 1 | site_name: Brokeaids 2 | theme: 3 | name: 'material' 4 | palette: 5 | primary: 'red' 6 | accent: 'light blue' 7 | 8 | dev_addr: 192.168.1.8:8000 9 | nav: 10 | - (LB6M) LB6M To Brocade: index.md 11 | - (LB6M) L3 Quick Guide: config.md 12 | - (LB6M) Fix MAC Address: mac.md 13 | - (LB6M) Management Port: mgmt.md 14 | - (LB6M) Revert To Fastpath: revert.md 15 | - (LB6M) Backstory: story.md 16 | - (7024) Delta To Dell: delta.md 17 | 18 | google_analytics: ['UA-2400722-3', 'brokeaid.com'] 19 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | # quanta-brocade 3 | Documentation for flashing Brocade TurboIron firmware to Quanta LB6M. And now for cross-flashing other switches too! 4 | 5 | The raw markdown source in this repo is intended to be built using [MkDocs](http://www.mkdocs.org/) - not displayed on GitHub. 6 | 7 | Guides: [brokeaid.com](http://brokeaid.com/) 8 | 9 | STH Discussion Thread (LB6M) - [ServeTheHome](https://forums.servethehome.com/index.php?threads/turbocharge-your-quanta-lb6m-flash-to-brocade-turboiron.17971/) 10 | 11 | Q. Why does this work without modifying the firmware? 12 | 13 | A. When Broadcom introduced the BCM56820 switch ASIC, they released a reference design - a suggested switch design implementing said ASIC. Several companies including Brocade and Quanta took this reference design, built it, added their own branding, and sold it as a product. Therefore the switches are nearly identical, aside from small differences like LED configuration. They both have: 14 | 15 | - MPC8541 PowerPC Management CPU 16 | - BCM56820 10gbE Switching ASIC 17 | - BCM5482 Management Port PHY 18 | - BCM5464 Copper Ports PHY 19 | 20 | Because of this, firmware written for one platform will have no issue running on the other - it's the same hardware. 21 | 22 | Open to PR's! If you know of any other switch pairs that are the same underlying hardware and would like to cross-flash, let us know! We're mainly seeking firmware candidates for the LB4M - so far we can't find any other switches with the same hardware configuration. We need to find a switch that uses a MPC8541 management CPU + BCM56514 ASIC -------------------------------------------------------------------------------- /documentation/story.md: -------------------------------------------------------------------------------- 1 | # Backstory 2 | 3 | ## How does this work without firmware modification? 4 | When Broadcom introduced the BCM56820 switch ASIC, they released a reference design - a suggested switch design implementing said ASIC. Several companies including Brocade, Dell, and Quanta took this reference design, built it, added their own branding, and sold it as a product. Even Google used this reference design several years later for their Pluto switch, but they were never sold. Therefore the switches are nearly identical, aside from small differences like LED configuration. They have: 5 | 6 | - MPC8541 PowerPC Management CPU 7 | - BCM56820 10gbE Switching ASIC 8 | - BCM5482 Management Port PHY 9 | - BCM5464 Copper Ports PHY 10 | 11 | Because of this, firmware written for one platform will have no issue running on the other - it's the same hardware. 12 | 13 | If you know of any other switch pairs that are the same underlying hardware and would like to cross-flash, get in touch with us on Github or the STH forum - we'll try anything. 14 | 15 | We're mainly seeking firmware candidates for the LB4M - so far we can't find any other switches with the same hardware configuration. We need to find a switch that uses a MPC8541 management CPU + BCM56514 ASIC. 16 | 17 | ## Why is Fastpath so quirky? 18 | Fastpath is a [Broadcom software product](https://www.broadcom.com/products/ethernet-connectivity/software/fastpath), and the Fastpath image that comes with our switches is closer to a demo version than a full build. That's why simple things like 1gbE SFP's don't work, even though the ASIC supports them. 19 | 20 | When Quanta built a BCM56820 reference box, they included a barebones Fastpath build. The intent was that large customers (Microsoft & Amazon) would replace it with their own OS, or their own Fastpath builds with the exact featureset needed for their environment - which they did. This means there's custom LB6M firmware packages floating around internally, but the chances we'll ever see them is slim to none. 21 | 22 | Some vendors that built and sold BCM56820 reference boxes to the public ditched Fastpath altogether and used their own OS - Brocade for example with their TurboIron 24x. Dell took a slightly different route and purchased a much more complete Fastpath base for their 8024 switch - it uses the same ASIC as our LB6M, has a slightly faster management CPU, and runs a much more complete distribution of Fastpath. Sadly due to the CPU difference, the Dell firmware will not even boot on an LB6M (we tried). -------------------------------------------------------------------------------- /documentation/mgmt.md: -------------------------------------------------------------------------------- 1 | 2 | # Management Port Behavior 3 | 4 | ## What Happens 5 | The out of band management port is gigabit PHY - however for some users, after flashing the Brocade firmware it will instead start linking up at 100mbit. In even rarer cases, some users have seen it link at 10mbit. In all of these cases it continues to operate fine as it's only passing management traffic. In some extremely rare cases (observed on 2 chassis), it will refuse to link at all. 6 | 7 | You can obviously still use in-band management IP's to access the switch, or even designate another switch port in its own isolated VLAN as a management-only port via ACLs. Worst case you can revert to the stock Fastpath OS, and the management port will function perfectly as before (and your switch will be 100% back to stock). 8 | 9 | ## Why It Happens 10 | It's hard to say with 100% certainty without using an oscilloscope on the various clocks and data lines for the management PHY, and comparing scoped values to values seen while running Fastpath (when the port works properly). What is most likely happening is the Brocade firmware tells the management CPU to use slightly different clock speed values to drive the management PHY, as the traces from the management CPU to the management PHY are shorter in the Brocade. 11 | 12 | It's also possible the pre-emphasis configuration registers on the SGMII data transmitter were tuned for the trace layout and length of the Brocade chassis, and are therefore slightly out of spec when that configuration is loaded via the Brocade software in the Quanta chassis. 13 | 14 | Sadly neither of these are fixable without disassembling the bootloader (the Brocade bootloader is what's responsible for initializing the PHY. It also remains running at all times acting as a scheduler for the main OS). Once you find these configuration values in the disassembled bootloader they can be changed to appropriate values for the Quanta chassis and re-compiled. I received an estimate from a firmware engineer of approximately $2000 USD for this amount of reverse engineering, which I'm not willing to spend for a management port I never use on a $300 switch. 15 | 16 | ## Emergency Workaround 17 | If you're in the 1% where it stops linking completely under the Brocade firmware, you can temporarily bring it back. As it's entirely a software issue (the port goes right back to working perfectly when reverting to Fastpath software), it can be forced to link in emergency situations with a temporary software trick. 18 | 19 | If you find yourself in a situation where you must have the management port link up and it won't, follow the below. To reiterate, we've only seen it completely cease linking twice in a hundred flashed chassis. 20 | 21 | Assuming you're in the Brocade bootloader, enter the ```t2``` test menu, by simply typing t2 into the bootloader prompt: 22 | 23 | ``` 24 | t2 25 | ``` 26 | 27 | You'll be dropped into a hardware test menu that looks like this: 28 | ``` 29 | Host Peripherals Test Menu 30 | 31 | [1 ] PCI Bus Test 32 | 33 | [2 ] UART Loopback Test 34 | 35 | [3 ] SDRAM Test 36 | 37 | [4 ] FLASH and File CRC32 Checksum Test 38 | 39 | [5 ] System Timer Test 40 | 41 | [6 ] I2C Test 42 | 43 | [7 ] FAN Test 44 | 45 | [8 ] Ethernet Test 46 | 47 | [9 ] RPSU Test 48 | 49 | [A ] Test All Items 50 | 51 | [ESC] Exit 52 | 53 | 54 | Enter your choice: 55 | ``` 56 | Enter in ```8``` for the ethernet test. On the following submenu, enter in ```6``` for "test all items" - it will run through a test of the ethernet PHY, and some of them will fail. Thankfully this test seems to have been "borrowed" from Fastpath, and it re-initializes the PHY with the MII registers/clock values/etc that Fastpath uses on the LB6M - so the port will begin working perfectly as it does in Fastpath. 57 | 58 | Once it finishes, your management port should be succesfully linked up. Hit ```ESC``` a few times to get out of the test menus and back to the bootloader prompt. You can now succesfully TFTP firmware images in, or whatever else you needed the management port for. 59 | 60 | **Note 1:** This only works until the PHY is reinitialized with the Brocade values, eg next time it reboots, or you pull power. 61 | 62 | **Note 2:** Unless you know what you're doing, do not run any of the other tests in the t2 menu. For instance, the I2C test wipes the onboard EEPROM, which is where your MAC address and serial are stored. If you run that test, you'll need to redo the Customizing MAC guide. 63 | 64 | 65 | ### Thanks: 66 | [**Jon Sands**](http://fohdeesha.com/) 67 | [**Bengt-Erik Norum**](http://amateurfoundation.org/) 68 | 69 | ### Contributing: 70 | The markdown source for these guides is hosted on [**our Github repo.**](https://github.com/Fohdeesha/quanta-brocade) If you have any suggested changes or additions feel free to submit a pull request. 71 | -------------------------------------------------------------------------------- /documentation/mac.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | # Fixing The MAC Address 5 | 6 | ## Why Do This? 7 | The flashing procedure resets the switches MAC to 00e0.5200.0100 - The OS iterates upon this base MAC to generate MACs for the management port, VE interfaces, etc. This isn't a problem by itself, but will cause serious issues if you use multiple flashed switches together (they'll all have the same MAC addresses). 8 | 9 | ## Fast And Easy 10 | If you're lazy, there's a single command in the bootloader you can use. You’ll need serial port access to the switch (just like you had during the flash guide). Assuming that’s taken care of, reboot the switch, then hit ```b``` to enter the bootloader prompt: 11 | ``` 12 | enable 13 | reload 14 | #watch the output and hit b when prompted 15 | ``` 16 | Now that we're in the bootloader, run the ```set ether-address``` command to set the base MAC back to the factory assigned address. It can usually be found on a sticker on the side of the chassis. If you can’t find it but want to set a unique MAC, you can use an [online MAC generator](https://www.miniwebtool.com/mac-address-generator/). Stick that MAC in the command below, adhering to the same formatting: 17 | ``` 18 | set ether-address 68a6.23fb.e3b4 19 | ``` 20 | Now we tell it to boot into the OS. This won't reload the bootloader, so once it boots the OS, tell it to reload. Then it will do a full reboot: 21 | ``` 22 | boot system flash primary 23 | #wait for it to load the OS, then: 24 | enable 25 | reload 26 | ``` 27 | It will do a full reboot and come up with your new MAC. To double check, look at the bottom output of ```show chassis```. 28 | 29 | ## Slightly Longer - Customizing The Chassis Info 30 | If you'd like to be thorough, there's a diagnostic menu that allows you to easily completely program the onboard EEPROM, which is where the chassis info is stored- including the MAC and serial string (the serial string is what's displayed in the output of ```show version```). You'll need serial port access to the switch (just like you had during the flash guide). Assuming that's taken care of, reboot the switch, then hit b to enter the bootloader prompt: 31 | ``` 32 | enable 33 | reload 34 | #watch the output and hit b when prompted 35 | ``` 36 | You should be dropped into the Brocade bootloader with a prompt that looks like this: 37 | ``` 38 | Monitor> 39 | ``` 40 | Run the following command to enable a hidden diag menu on next boot: 41 | ``` 42 | set diag_mode 43 | ``` 44 | Now tell the system to boot: 45 | ``` 46 | boot system flash primary 47 | ``` 48 | It will boot into the diagnostic menu, which should resemble the below: 49 | 50 | ``` 51 | Diagnostic Test Main Menu v1.0 ( LB6M ) 52 | 53 | [1 ] File Management 54 | 55 | [2 ] Board Information 56 | 57 | [3 ] Diagnostic Test 58 | 59 | [4 ] Manufacturing Test Mode Set 60 | 61 | [5 ] Test Error Log File Management 62 | 63 | [6 ] PING 64 | 65 | [7 ] Reset 66 | 67 | [8 ] For Vibration Test 68 | 69 | Enter your choice: 70 | ``` 71 | Yes, it does indeed say "LB6M" in the menu title, and no, this is not a piece of software left over from the Quanta firmware. Brocade seemingly re-used a bit of code from Quantas/Broadcoms reference, which again goes to show how similar the Brocade TurboIron is to our LB6M. 72 | 73 | Anyway, we need to customize the chassis information. Enter ```2``` into the menu for ```Board Information``` - on the menu following, enter ```1``` for ```Configure Board Info```. You will enter an interactive menu that allows you to input new values for each item. 74 | After some trial and error it will tell you the length and format each item needs to be in. No need to be careful, you cannot break anything here. Other than the MAC address, every item in here is aesthetic only. When it asks for the MAC Address, this is where you enter in your original unique MAC. It can usually be found on the side of your switch on a sticker. If you can't find it but want to set a unique MAC, you can use an [online MAC generator](https://www.miniwebtool.com/mac-address-generator/). 75 | 76 | After finishing each item, it will write to EEPROM and you're done. Hit ESC until you're back to the main diagnostic menu, then enter ```7``` to reset the switch. It will reboot into the OS as normal, and now ```show chassis``` should have your new MAC at the bottom of the output. If the MAC displayed there is off by the end character, that's normal - it's using your specified base MAC to iterate upon. If you set a custom serial, you can also see that with ```show version``` - your chassis is now properly customized. 77 | 78 | ## Note To Advanced Users 79 | 80 | The MAC and chassis information is all stored in EEPROM. In the ```t2``` test menu (initiated from the bootloader or hidden OS prompt), there are tests that wipe all this data. Namely the I2C and EEPROM tests - they both write garbage data to the EEPROM. If for some reason you need to run these tests, you'll need to run this customization procedure again. 81 | 82 | 83 | 84 | ### Thanks: 85 | [**Jon Sands**](http://fohdeesha.com/) 86 | [**Bengt-Erik Norum**](http://amateurfoundation.org/) 87 | ### Contributing: 88 | The markdown source for these guides is hosted on [**our Github repo.**](https://github.com/Fohdeesha/quanta-brocade) If you have any suggested changes or additions feel free to submit a pull request. 89 | -------------------------------------------------------------------------------- /documentation/revert.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | # Reverting To Stock Fastpath 5 | 6 | ## Introduction 7 | If you'd like to flash back to garbage stock Fartpath, that's now possible. You'll need the firmware ZIP linked on the main page. This guide can also be used to flash the Fastpath OS to an actual Brocade TurboIron, if you wanted to do that for some ungodly reason. 8 | 9 | In the ```Fastpath Revert``` folder, copy both ```ubootenv.bin``` and ```lb6m.1.2.0.18.img``` to your TFTP server. If you don't see a ```ubootenv.bin``` but instead have ```uboot.bin```, you have an old version of the ZIP. Delete it and re-download. 10 | 11 | ## Preparing U-Boot 12 | 13 | As we are overwriting the boot sector again, the same warnings still apply. Copy and paste commands only (no typing). Have the device on a UPS if possible. 14 | 15 | Connect to the serial console port of the switch and open a terminal window (9600 8N1). Also be sure to connect the #1 management port on the switch to a network that has layer 2 access to your TFTP server. 16 | 17 | Reboot the switch (```reload``` at the enable CLI level) while watching the serial output - it should prompt you to hit the ```b``` key to interrupt boot. Do so, which should take you here: 18 | 19 | ``` 20 | Monitor> 21 | ``` 22 | 23 | Use the memory read command to verify your Brocade bootloader is where it should be - this ensures the commands to follow will use the correct location: 24 | 25 | ``` 26 | dd fff80000 27 | ``` 28 | 29 | the output should match this exactly: 30 | 31 | ``` 32 | Monitor>dd fff80000 33 | fff80000: 4d554348 02057be5 0005a2d6 00004058 34 | fff80010: 00000000 00012f2c 0004d880 00600028 35 | fff80020: 00030030 0004ffff ffffffff 00000000 36 | fff80030: 4e6ab6ae 07030000 74727a30 37333030 37 | ``` 38 | 39 | If the output on your switch does not match this exactly, **STOP!** Pastebin your switches output and get in touch with us on [ServeTheHome](https://forums.servethehome.com/index.php?threads/turbocharge-your-quanta-lb6m-flash-to-brocade-turboiron.17971/). 40 | 41 | ## Getting u-boot into RAM 42 | Carrying on, assuming your output matched ours: It's time to load in the u-boot bootloader and prepare it for flashing. First you'll need to set a temporary IP for the switch: 43 | ``` 44 | ip address 192.168.1.50/24 45 | ``` 46 | Now copy the u-boot bootloader to a file in onboard flash named ```quanta``` (substitute the IP with the IP of your TFTP server): 47 | ``` 48 | copy tftp flash 192.168.1.49 ubootenv.bin quanta 49 | ``` 50 | 51 | After some dots it should say ```Done```. You now have u-boot stored in onboard flash. Now we need to copy it to RAM, then to the final boot sector. 52 | 53 | **Note:** If you get a TFTP timeout error even though you're sure a cable is plugged into the management port, see the [management port section](http://brokeaid.com/mgmt/) for info on how to force a connection. 54 | 55 | Copy our ```quanta``` file to a location in RAM: 56 | 57 | ``` 58 | copy flash memory 08000000 quanta 59 | ``` 60 | 61 | Now we need to verify u-boot has been stored in RAM succesfully. Verify the beginning of u-boot: 62 | ``` 63 | dd 08000000 64 | ``` 65 | The output should match the below exactly: 66 | ``` 67 | Monitor>dd 08000000 68 | 08000000: 27051956 552d426f 6f742032 3030392e 69 | 08000010: 30362028 41707220 31392032 30313120 70 | 08000020: 2d203135 3a35373a 30362900 60000000 71 | 08000030: 3c20d000 60213f80 38000000 9401fffc 72 | ``` 73 | If your output matches, move on to the next section. If it doesn't match, you can safely abort and reboot. 74 | 75 | ## Erasing and replacing the bootloader 76 | 77 | You now have u-boot stored in RAM - The last step is to copy it from that RAM address to the bootloader address. From here on be incredibly careful, and follow the commands exactly. 78 | 79 | 80 | Copy u-boot from RAM to the boot sector. This single command handles erasing and writing flash properly: 81 | ``` 82 | copy memory boot 08000000 524288 83 | ``` 84 | 85 | Congratulations, you've installed the u-boot bootloader (which can now load the Quanta software image). **DO NOT REBOOT YET!** First verify u-boot is in the bootloader location: 86 | 87 | ``` 88 | dd fff80000 89 | ``` 90 | 91 | The output from your switch should match the below exactly: 92 | 93 | ``` 94 | Monitor>dd fff80000 95 | fff80000: 27051956 552d426f 6f742032 3030392e 96 | fff80010: 30362028 41707220 31392032 30313120 97 | fff80020: 2d203135 3a35373a 30362900 60000000 98 | fff80030: 3c20d000 60213f80 38000000 9401fffc 99 | ``` 100 | Verify the end instruction of the bootloader was copied correctly: 101 | 102 | ``` 103 | dd FFFFFFFC 104 | ``` 105 | The output should match the below exactly: 106 | 107 | ``` 108 | Monitor>dd FFFFFFFC 109 | fffffffc: 4bfff004 xxxxxxxx xxxxxxxx xxxxxxxx 110 | 0000000c: xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx 111 | 0000001c: xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx 112 | 0000002c: xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx 113 | ``` 114 | 115 | If it matches, skip on to **Booting Quanta** below - the risky part is over. However if it doesn't match, don't panic. You either entered a command wrong, or skipped one. Do not reboot yet! To recover the original Brocade bootloader back, run the below command. You'll need to make sure brocadeboot.bin from the zip is on your TFTP server: 116 | 117 | ``` 118 | #for recovery only! 119 | copy tftp flash 192.168.1.49 brocadeboot.bin boot 120 | ``` 121 | If that command finishes succesfully, you can reboot into the bootloader again and try once more. 122 | 123 | 124 | 125 | 126 | ## Booting Quanta 127 | You now have u-boot in the proper section of flash - we just need to reboot. The "reset" command in Brocade's bootloader is bugged (it will just freeze), so to make it reboot you must pull power to the switch, then re-apply. It should boot up to a u-boot prompt: 128 | 129 | ``` 130 | => 131 | ``` 132 | Now we must set the MAC address for u-boot and Fastpath. Your chassis MAC should be on a sticker on the side of the unit generally, or you can [generate a random MAC.](https://www.miniwebtool.com/mac-address-generator/) Either way, replace the MAC in the command below with your target MAC, making sure to adhere to the same formatting: 133 | 134 | ``` 135 | setenv ethaddr 54:AB:3A:42:0B:42 136 | saveenv 137 | reset 138 | ``` 139 | After it reboots back into u-boot, we can now boot Fastpath in order to flash it. First we need to set our temporary IP address plus the IP of our tftp server, then pull the image and boot it: 140 | 141 | ``` 142 | setenv ipaddr 192.168.1.50 143 | setenv serverip 192.168.1.49 144 | tftpboot 0x08000000 lb6m.1.2.0.18.img 145 | bootm 0x08000074 146 | ``` 147 | 148 | It should boot into a FASTPATH Startup menu: 149 | 150 | ``` 151 | FASTPATH Startup -- Utility Menu 152 | 153 | 1 - Start FASTPATH Application 154 | 2 - Load Code Update Package 155 | 3 - Load Configuration 156 | 4 - Select Serial Speed 157 | 5 - Retrieve Error Log 158 | 6 - Erase Current Configuration 159 | 7 - Erase Permanent Storage 160 | 8 - Select Boot Method 161 | 9 - Activate Backup Image 162 | 10 - Start Diagnostic Application 163 | 11 - Run Manufacturing Diagnostics 164 | 12 - Delete Manufacturing Diagnostics 165 | 13 - Reboot 166 | ``` 167 | Select ```option 2``` and follow its instructions. For transfer mode enter ```T``` for tftp, then fill out the IP's as it asks, as well as our image filename. You can leave ```gateway``` and ```subnet mask``` blank assuming your tftp server is on the same /24 network: 168 | 169 | ``` 170 | Select Mode of Transfer (Press T/X/Y/Z for TFTP/XMODEM/YMODEM/ZMODEM) []:t 171 | Enter Server IP []:192.168.1.49 172 | Enter Host IP []:192.168.1.50 173 | Enter Host Subnet Mask [255.255.255.0]: 174 | Enter Gateway IP []: 175 | Enter Filename []:lb6m.1.2.0.18.img 176 | Do you want to continue? Press(Y/N): y 177 | ``` 178 | It will flash the image then ask to reboot - hit yes. It should reboot as normal all the way into the Fastpath software it was originally shipped with, and you're done. If you forgot, the default fastpath login is ```admin``` with no password. 179 | 180 | If you're worried about "wearing out" the onboard flash by flashing back and forth, it's a non-issue. As you can see in the [S29GL256P datasheet](https://brokeaid.com/files/flashdata.pdf), the onboard flash IC is good for 100,000 erase-write cycles per sector. 181 | 182 | 183 | ### Thanks: 184 | [**Jon Sands**](http://fohdeesha.com/) 185 | [**Bengt-Erik Norum**](http://amateurfoundation.org/) 186 | 187 | ### Contributing: 188 | The markdown source for these guides is hosted on [**our Github repo.**](https://github.com/Fohdeesha/quanta-brocade) If you have any suggested changes or additions feel free to submit a pull request. -------------------------------------------------------------------------------- /documentation/config.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | ## Getting Started 7 | 8 | 9 | Brocade's CLI is 80% identical to Cisco, with the majority of the differences being related to VLAN configuration. This guide will introduce you to the basics like vlans, SSH, inter-vlan routing, etc. The Layer 3 firmware comes with all ports in VLAN 1 by default, so if you just need layer 2 switching, you can leave the config as-is and use the out of band management port to talk to the switch. 10 | 11 | This guide was intended for the v7.x layer 3 OS image. If you're running the L2 only image from either codetrain, most of these commands will not work. 12 | 13 | Please keep in mind that any commands you run take effect immediately - however they have not been saved in flash, so they will disappear on reboot. To commit changes to flash, use the command ```write memory```. 14 | 15 | 16 | To enter the enable level: 17 | ``` 18 | enable 19 | ``` 20 | To make changes you'll need to then enter the configure level: 21 | ``` 22 | configure terminal 23 | ``` 24 | Everything can be shortened as long as it doesn't match another command, so the below would also work instead of the above: 25 | 26 | ``` 27 | con t 28 | ``` 29 | You have tab completion - make use of it. If you're ever curious about a command or arguments it will take, just type it and hit tab, it'll give you info and options. You can also just hit tab with no text and it'll show you all commands available at the current level. 30 | 31 | Let's start by giving the switch a name: 32 | 33 | ``` 34 | hostname blinkenmaschine 35 | ``` 36 | 37 | ## Assigning an out-of-band management IP 38 | 39 | If you plan on using the OOB management port to talk to the switch, follow this section. If you'd rather use an in-band management IP on your VLANs, skip this section. Assuming you're still at the ```configure terminal``` level from before, run the following, replacing the IP with your own choice: 40 | 41 | ``` 42 | int management 1 43 | ip addr 192.168.1.50/24 44 | exit 45 | ``` 46 | You can now telnet to that IP over the OOB management port. For SSH, you'll need to complete the ```Authentication``` section. 47 | 48 | ## Assigning an in-band management IP + VLAN VE Config 49 | You can also assign an IP to one of the VLANs, so the switch is accessible from the normal ports. You don't have to choose one or the other, you can have in-band and out-of-band management both configured simultaneously, but the IP's will need to be on different subnets. 50 | 51 | To give the switch an IP that's accessible via the normal ports, we need to a assign a virtual interface to the VLAN you'd like it to be accessible on, and give it an IP. That virtual interface is configurable just like a normal physical interface. At it's config level you can set routing protocols, IP addr, etc. This is also how you enable inter-VLAN routing, you just give multiple VLAN's a router interface with an IP like below, and that's it. 52 | 53 | Enter the config level for a vlan: 54 | ``` 55 | vlan 1 56 | ``` 57 | Assign it a virtual interface. The number doesn't have to match the vlan, you could give it ve 10, but it's easier to keep track of if they match: 58 | ``` 59 | router-interface ve 1 60 | ``` 61 | Exit the vlan config level: 62 | 63 | ``` 64 | exit 65 | ``` 66 | Now we enter the interface config level for the VE we just assigned: 67 | ``` 68 | interface ve 1 69 | ``` 70 | (NOTE: the above command will give you an error if the VLAN it is assigned to has no ports. So if you're setting up VLAN 2 for example, give it a port member while you're at it's config level, and you won't encounter the error.) 71 | 72 | Now we just give that VE interface an IP. Note, addresses for VE's cannot be in the same subnet you've assigned to your out of band management port, for obvious reasons: 73 | ``` 74 | ip address 192.168.1.2/24 75 | ``` 76 | That's it, now anything in that VLAN can access the switch via that IP. Exit the VE config level: 77 | ``` 78 | exit 79 | ``` 80 | ## Inter-VLAN Routing 81 | If you'd like inter-VLAN routing, follow this section. if you don't, skip down to Authentication. To enable VLAN routing you just need to do everything we did above, but for another VLAN: 82 | 83 | ``` 84 | vlan 2 85 | untagged ethe 11 86 | #you can also assign ranges of ports, using: untagged ethe 11 to 20 87 | router-interface ve 2 88 | exit 89 | interface ve 2 90 | ip address 192.168.50.2/24 91 | exit 92 | ``` 93 | They'll now route between each other, assuming your devices have gateways properly set etcetera. 94 | 95 | ## SSH Access 96 | To enable SSH access, we just need to generate a key pair. This enables the SSH server: 97 | ``` 98 | crypto key generate rsa 99 | ``` 100 | You can now SSH to the switch. Since we haven't configured user accounts, when it prompts with ```login as```, just hit enter. Remember that anyone can still SSH or telnet to your switch with no authentication! 101 | 102 | Remember SSH (and serial console) on Brocade devices requires shift+backspace to backspace. This can be fixed by setting your putty session settings to "Control+H" for backspace method under ```Terminal > Keyboard```. Telnet does not have this "feature", backspace will work as normal in telnet sessions without special putty settings. 103 | 104 | 105 | ## Securing The Switch 106 | 107 | If you wish to leave the switch unsecured (home lab for instance), skip this whole section. To secure the switch, we need to create an account - "root" can be any username string you wish: 108 | ``` 109 | username root password yourpasshere 110 | ``` 111 | We also need to tell it to use our new local user account(s) to authorize attempts to log in as well as attempts to enter the ```enable``` CLI level: 112 | ``` 113 | aaa authentication login default local 114 | aaa authentication enable default local 115 | ``` 116 | We should also tell it to use our account to authorize serial console access, as well as telnet access: 117 | ``` 118 | enable aaa console 119 | enable telnet authentication 120 | ``` 121 | On next switch reboot, the serial console will ask you to first login before any commands whatsoever are available. (If you forget your login for some reason, you can get back in via the bootloader, google fastiron password recovery). 122 | 123 | On the topic of telnet, we should disable it entirely as it's very insecure (all data including passwords is sent in cleartext): 124 | ``` 125 | no telnet server 126 | ``` 127 | The switch console is now password protected, and you can SSH to it - use your new credentials to log in. 128 | 129 | 130 | 131 | ### Key Based SSH Access 132 | 133 | If you wish to disable password-based SSH login and set up a key pair, follow this section. If not, skip it. Enable key login, and disable password login: 134 | ``` 135 | ip ssh key-authentication yes 136 | ip ssh password-authentication no 137 | ``` 138 | Now we have to generate our key pair with [puttygen](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html) on windows or ```ssh-keygen -t rsa``` on linux. The default settings of RSA @ 2048 bits works without issue. Generate the pair and save out both the public and private key. 139 | 140 | Copy the public key file to your TFTP server. Then use the following command to import it into your switch: 141 | ``` 142 | ip ssh pub-key-file tftp 192.168.1.49 public.key 143 | ``` 144 | You shouldn't need to be told basic key management if you're following this section, but just in case - copy your private key to the proper location on the *nix machine you'll be SSH'ing from, or if you're on windows, load it using [pageant](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html). Now when you SSH to the switch, it will authenticate using your private key. 145 | 146 | ## SNMP 147 | To quickly enable SNMPv2, follow the below. SNMP v3 is available but you'll have to refer to the included documentation: 148 | ``` 149 | snmp-server community public ro 150 | ``` 151 | 152 | ##Default Route & DNS 153 | 154 | If you'd like the switch to be able to get out to the internet (For example, NTP or ping commands to external hosts or hostnames), do the following, substituting your gateway IP: 155 | 156 | ``` 157 | ip dns server-address 192.168.1.1 158 | ip route 0.0.0.0/0 192.168.1.1 159 | ``` 160 | 161 | ## NTP 162 | To have the switch keep it's time synced via NTP, use the following. If you live in an area that doesn't use Daylight Savings, skip the ```clock summer-time``` command. Use tab completion for the timezone command to see what's available: 163 | ``` 164 | clock summer-time 165 | clock timezone gmt GMT-05 166 | sntp server 216.239.35.0 167 | sntp server 216.239.35.4 168 | ``` 169 | You can specify up to 8 or as little NTP servers as you'd like. Only IP addresses are allowed, no hostnames. The IP's in the example above are Google's public NTP servers. 170 | 171 | 172 | ## Fan Speeds 173 | The Brocade firmware has the ability to set fan speeds and quiet it down. [This video](https://www.youtube.com/watch?v=QbMITnNv2FM) shows the audible difference. The OS has 3 fan speeds it automatically cycles through as temperature rises and falls. To bypass this and lock the fan speeds at the lowest level, run the below: 174 | ``` 175 | fan-speed 1 176 | ``` 177 | Take a look at the output of ```show chassis``` and make sure your temperatures are below the indicated warning level. For 90% of environments, ```fan-speed 1``` will still keep it plenty cool. 178 | 179 | If you'd like to get more advanced, there's also the ```fan-threshold``` command, which allows you to customize the temperature thresholds for each fan level, instead of locking it to one speed - but that's beyond this guide. 180 | 181 | ## Saving & Conclusions 182 | Now of course none of the changes have actually been saved to flash, so on next boot they'll disappear. To save your current running configuration so they remain on reboot: 183 | ``` 184 | write memory 185 | ``` 186 | That's enough to get you going. Some more useful general commands: 187 | 188 | Show a table of all interfaces: 189 | ``` 190 | show interface brief 191 | ``` 192 | To show one interface in detail: 193 | ``` 194 | show interfaces ethernet 1 195 | #Also works for virtual interfaces: 196 | show interfaces ve 1 197 | ``` 198 | Give a port a friendly name: 199 | ``` 200 | interface ethernet 1 201 | port-name freenas 202 | show interface brief ethernet 1 203 | exit 204 | ``` 205 | 206 | To remove commands from your config, just put ```no``` in front of them: 207 | ``` 208 | interface ethernet 1 209 | no port-name 210 | exit 211 | ``` 212 | Show the currently active configuration: 213 | ``` 214 | show run 215 | ``` 216 | Show the configuration that's saved to flash for startup: 217 | ``` 218 | show configuration 219 | ``` 220 | 221 | Some system info: 222 | ``` 223 | show cpu 224 | show memory 225 | show chassis 226 | show version 227 | show log 228 | ``` 229 | This has been a brief touch on 5% of the OS if that - we highly recommend referring to the included documentation to continue further. 230 | 231 | We also highly recommend Terry Henry's [youtube channel](https://www.youtube.com/user/terryalanhenry/videos). He's an engineer at Brocade and has hundreds of short, concise videos on how to do anything you can think of in the OS. Some of the newer videos might not apply to our TurboIron codebase, but 90% of them will. 232 | 233 | ### Thanks: 234 | [**Jon Sands**](http://fohdeesha.com/) 235 | [**Bengt-Erik Norum**](http://amateurfoundation.org/) 236 | 237 | ### Contributing: 238 | The markdown source for these guides is hosted on [**our Github repo.**](https://github.com/Fohdeesha/quanta-brocade) If you have any suggested changes or additions feel free to submit a pull request. 239 | -------------------------------------------------------------------------------- /documentation/index.md: -------------------------------------------------------------------------------- 1 | # Flashing the LB6M to a Brocade TurboIron 24X 2 | 3 | ## Disclaimer & Caveats 4 | We are not responsible for any damaged devices or property resulting from this guide. This guide assumes you own a legitimate Brocade TurboIron and therefore have rights to the firmware & its use. The software itself requires no license or activation to fully function, but legally you need the rights to the firmware. Some things will also change due to hardware differences: 5 | 6 | * The SFP+ port activity/status LEDs stop doing anything. The copper ports and chassis LEDs continue to work as normal. The Quanta uses a CPLD to multiplex the LED signals, while the Brocade uses native CPU I/O. There's no way around this difference. 7 | 8 | * The Brocade only has one Out Of Band management port, so the code is only aware of the #1 OOB port. The #2 management port will no longer do anything. 9 | * Due to a difference in PCB trace layout for the management port PHY, the management-only port may link at slower speeds than it did under Fastpath (eg at 100mbit). In a rare case, we saw it stop linking altogether until a software revert. For more information, please [click here](http://brokeaid.com/mgmt/). This only affects the management port. All other ports, including copper ports function perfectly. In-band management functions perfectly, it is only the OOB port PHY affected. 10 | * If you don't like the Brocade OS, or have other issues, you can always flash back to 100% stock Fastpath using the revert guide to the left, so none of this is permanent. 11 | 12 | If you're looking to purchase an LB6M, we recommend [UnixPlus](https://www.unixplus.com/products/quanta-lb6m-24-port-10gbe-sfp-4x-1gbe-l2-l3-switch) - their stock is all brand new and of known origin. 13 | ## Prerequisites 14 | 15 | This guide assumes you're familiar with the basics like TFTP, obtaining a serial console to the device, etc. If you're not, this guide is probably not for you. Before touching your switch, read this document from beginning to end to get a basic idea of what you'll be doing - do **not** skip this step. 16 | 17 | The risk of doing this is mitigated if you're prepared and follow closely. It's a good idea to have the switch on a UPS while you do this, if you lose power after the ```erase``` command before you've flashed the new bootloader, your device will be bricked (however it can be recovered with a PowerPC capable JTAG unit). 18 | 19 | Download the firmware ZIP below. It contains your bootloader, OS, and all the documentation you'll need. 20 | 21 | [```Brocade Firmware Zip```](https://brokeaid.com/files/Brocade-TI.zip) 22 | ```Zip Updated: 05-14-2018``` 23 | ```MD5: 68aa7643a121c19fa4b8c84d7f6f2843``` 24 | 25 | Connect to the serial console port on the switch and open a terminal window (9600 8N1). Also be sure to connect the #1 management port on the switch to a network that has layer 2 access to your tftp server. 26 | 27 | ## Image Selection 28 | In the `Firmware` folder, you'll find `brocadeimage.bin` - this is the standard Layer 3 firmware image, with all layer 2 and layer 3 features in one. This is what you should use 99% of the time. If you have a specific edge case and need the layer 2-only firmware, it's included in the `Layer 2 Only` subfolder, and is named `v7-layer2.bin` - typical users will not need this. 29 | 30 | Copy `brocadeboot.bin` from the `Bootloader` folder to your TFTP server root directory. Then copy `brocadeimage.bin` from the `Firmware` folder to the same TFTP root folder. If you're on windows and need a temporary TFTP server, I recommend [Tftpd32 Portable Edition](http://www.tftpd64.com/tftpd32_download.html). 31 | 32 | > **Note:** If you're using or running the v8 image/firmware that was previously linked and mentioned on this guide - replace it with the v7 image (now standard in the download ZIP) immediately. The v8 version previously linked on this site was a totally untested beta & was never released to the public. It has many serious bugs including LACP failures, route corruption with static routes, etc. The standard v7 image is the public stable release, has many more updates, and no known bugs. To flash v7 from the booted Brocade OS at the enable CLI level, just run `copy tftp flash 192.168.1.49 brocadeimage.bin primary` and then `reload` to take effect. 33 | 34 | 35 | 36 | 37 | ## Flash Preparation 38 | 39 | Reboot the switch while watching the serial output, it should prompt you to hit any key (do so) to interrupt boot and drop you into the u-boot console, which should look like this: 40 | 41 | ``` 42 | => 43 | ``` 44 | 45 | With all the following commands, copy and paste them *exactly* as you see them. Do not try to manually type them. 46 | After 50+ successful flashes, the first brick was a result of a typo from someone trying to manually type. 47 | 48 | Use the memory read command to verify your Quanta bootloader is where it should be - this ensures the commands to follow will use the correct location: 49 | 50 | ``` 51 | md 0xfff80000 20 52 | ``` 53 | 54 | the output should match this exactly: 55 | 56 | ``` 57 | fff80000: 27051956 552d426f 6f742032 3030392e '..VU-Boot 2009. 58 | fff80010: 30362028 41707220 31392032 30313120 06 (Apr 19 2011 59 | fff80020: 2d203135 3a35373a 30362900 60000000 - 15:57:06).`... 60 | fff80030: 3c20d000 60213f80 38000000 9401fffc < ..`!?.8....... 61 | fff80040: 9401fffc 9421fff8 3c00ffff 6000fffc .....!..<...`... 62 | fff80050: 9421fff8 9001000c 48000005 7dc802a6 .!......H...}... 63 | fff80060: 800e171c 7dc07214 480020dd 3c600002 ....}.r.H. .<`.. 64 | fff80070: 60631200 7c600124 4c00012c 48002065 `c..|`.$L..,H. e 65 | ``` 66 | 67 | If the output on your switch does not match this exactly, **STOP!** Pastebin your switches output and get in touch with us on [ServeTheHome](https://forums.servethehome.com/index.php?threads/turbocharge-your-quanta-lb6m-flash-to-brocade-turboiron.17971/). 68 | 69 | Carrying on, assuming your ```md``` output matched ours: It's time to load in the Brocade bootloader to a safe temporary location in RAM. You also need to set a temporary IP for the switch, as well as set the IP of your tftp server destination: 70 | 71 | ``` 72 | setenv ipaddr 192.168.1.50 73 | setenv serverip 192.168.1.49 74 | ``` 75 | Now copy the Brocade bootloader to a temporary address in RAM for holding: 76 | ``` 77 | tftpboot 0x300000 brocadeboot.bin 78 | ``` 79 | 80 | The tftpboot command should have output similar to the below: 81 | ``` 82 | => tftpboot 0x300000 brocadeboot.bin 83 | Enet starting in 1000BT/FD 84 | Speed: 1000, full duplex 85 | Using TSEC0 device 86 | TFTP from server 192.168.1.49; our IP address is 192.168.1.50 87 | Filename 'brocadeboot.bin'. 88 | Load address: 0x300000 89 | Loading: #################################### 90 | done 91 | Bytes transferred = 524288 (80000 hex) 92 | ``` 93 | 94 | If you see Error 4 that's normal, just be sure the bytes transferred matches. Now you need to verify that the temporary address contains the Brocade bootloader: 95 | 96 | ``` 97 | md 0x300000 20 98 | ``` 99 | 100 | The output should match the below exactly: 101 | 102 | ``` 103 | => md 0x300000 20 104 | 00300000: 4d554348 02057be5 0005a2d6 00004058 MUCH..{.......@X 105 | 00300010: 00000000 00012f2c 0004d880 00600028 ....../,.....`.( 106 | 00300020: 00030030 0004ffff ffffffff 00000000 ...0............ 107 | 00300030: 4e6ab6ae 07030000 74727a30 37333030 Nj......trz07300 108 | 00300040: 00000000 00000000 00000000 00000000 ................ 109 | 00300050: 00000000 00000000 00000000 00000000 ................ 110 | 00300060: 00000000 00000000 00000000 00000000 ................ 111 | 00300070: 00000000 00000000 00000000 00000000 ................ 112 | ``` 113 | If it doesn't match, **STOP**. You can safely reboot back to Quanta by typing ```reset``` or power cycling it. If you'd like, pastebin the output and get in touch with us on ServeTheHome. If it does match, continue on. 114 | 115 | ## Erasing and replacing the bootloader 116 | 117 | You now have the Brocade bootloader we need stored in RAM. We need to erase the existing bootloader, then copy the Brocade loader from that RAM address to the bootloader address. From here on, be incredibly careful, and follow the commands exactly. 118 | 119 | 120 | Disable the flash write protection: 121 | ``` 122 | protect off all 123 | ``` 124 | Erase the Quanta bootloader: 125 | ``` 126 | erase 0xfff80000 0xffffffff 127 | ``` 128 | Copy the Brocade bootloader: 129 | ``` 130 | cp.b 0x300000 0xfff80000 0x80000 131 | ``` 132 | Congratulations, you've installed the Brocade bootloader (which can now load the Brocade software image). **DO NOT REBOOT YET!** First verify the Brocade bootloader is in the bootloader location: 133 | 134 | ``` 135 | md 0xfff80000 20 136 | ``` 137 | 138 | The output from your switch should match the below exactly: 139 | 140 | ``` 141 | fff80000: 4d554348 02057be5 0005a2d6 00004058 MUCH..{.......@X 142 | fff80010: 00000000 00012f2c 0004d880 00600028 ....../,.....`.( 143 | fff80020: 00030030 0004ffff ffffffff 00000000 ...0............ 144 | fff80030: 4e6ab6ae 07030000 74727a30 37333030 Nj......trz07300 145 | fff80040: 00000000 00000000 00000000 00000000 ................ 146 | fff80050: 00000000 00000000 00000000 00000000 ................ 147 | fff80060: 00000000 00000000 00000000 00000000 ................ 148 | fff80070: 00000000 00000000 00000000 00000000 ................ 149 | ``` 150 | 151 | If it matches, continue on to **Booting Brocade** below - the risky part is over. However if it doesn't, don't panic. Does it match the output you got earlier when you ran ```md 0xfff80000 20``` at the beginning of this guide? If so, that means the Quanta bootloader is still there. Either you didn't properly disable write protection, or something else has gone wrong. You can reboot into Quanta like normal, and contact us on the forums. 152 | 153 | However if it matches neither, something has failed. We have yet to see this, but just in case you do - be sure you're running the exact commands here, and do the guide again from ```tftpboot 0x300000 brocadeboot.bin``` and onwards until you get the bootloader where it should be. If you follow the commands, it should work. **Do not reboot or pull power until this is resolved.** 154 | 155 | ## Booting Brocade 156 | You now have the Brocade bootloader in the proper section of the PowerPC flash. Now we just need to reboot! 157 | 158 | ``` 159 | reset 160 | ``` 161 | It will reboot into the Brocade bootloader which should drop you at a prompt similar to this: 162 | 163 | ``` 164 | Monitor> 165 | ``` 166 | In the Brocade software, over serial or telnet, you need to use shift+backspace to backspace. You can remedy this by changing your Putty/terminal settings to "Control+H" for backspace method under Terminal>Keyboard and backspace won't require shift. 167 | 168 | First we need to give the bootloader a temporary IP, then reflash the bootloader using Brocade's flash routine. This fixes the boot sector flash permissions: 169 | ``` 170 | ip address 192.168.1.50/24 171 | copy tftp flash 192.168.1.49 brocadeboot.bin boot 172 | ``` 173 | After a few seconds it should complete the flashing process. Now that the boot sector matches stock, we can flash the main OS: 174 | ``` 175 | copy tftp flash 192.168.1.49 brocadeimage.bin primary 176 | ``` 177 | 178 | Your switch is now fully flashed to Brocade. To boot into the OS for the first time run the following: 179 | ``` 180 | boot system flash primary 181 | ``` 182 | 183 | That's it! This first official boot will take a few minutes as it copies the primary image to the backup secondary image partition. The bootloader still has not been re-run since we reflashed it using Brocade's routine, so it's a good idea to make that happen by reloading the switch once it finishes booting: 184 | 185 | ``` 186 | enable 187 | reload 188 | ``` 189 | The switch will completely reboot, re-initializing the brocade bootloader, and you're ready to go. To ditch the serial cable and telnet/SSH to the switch, follow the [L3 Quick Guide](http://brokeaid.com/config/) on this site to give it an IP. 190 | 191 | Some commands to check out your new system: 192 | 193 | ``` 194 | show version 195 | show flash 196 | show chassis 197 | show media 198 | ``` 199 | Please check out and follow the included guides in the Documentation folder to configure your new switch. A quick guide is available on the left, but this site is not a substitute for learning Brocade's documentation. 200 | 201 | ## Fixing The MAC Address 202 | 203 | Flashing the switch resets the base MAC address to a default 00e0.5200.0100 - on its own this isn't a problem, but if you connect multiple flashed switches you're going to have serious collision issues. We highly recommend taking the extra minute to follow the [MAC Reset Guide](http://brokeaid.com/mac/). 204 | 205 | 206 | ## SFP+ Information 207 | 208 | Brocade does not restrict the use of optics by manufacturer, they'll take anything given it's the right protocol. However optical monitoring information is disabled unless it sees Brocade or Foundry optics. 209 | 210 | So if you want to see information like this : 211 | 212 | ``` 213 | telnet@Route2(config)#sh optic 5 214 | Port Temperature Tx Power Rx Power Tx Bias Current 215 | +----+-----------+--------------+--------------+---------------+ 216 | 5 32.7460 C -002.6688 dBm -002.8091 dBm 5.472 mA 217 | Normal Normal Normal Normal 218 | ``` 219 | You'll need to pick up some official Brocade or Foundry optics on ebay, or buy some flashed optics from FiberStore. 220 | 221 | 222 | ### Thanks: 223 | [**Jon Sands**](http://fohdeesha.com/) 224 | [**Bengt-Erik Norum**](http://amateurfoundation.org/) 225 | **fvanlint** from STH for being our first method tester 226 | 227 | ### Contributing: 228 | The markdown source for these guides is hosted on [**our Github repo.**](https://github.com/Fohdeesha/quanta-brocade) If you have any suggested changes or additions feel free to submit a pull request. 229 | 230 | ```Documentation version:``` [ v3.4 (07-09-18)](https://github.com/Fohdeesha/quanta-brocade/commits/master) -------------------------------------------------------------------------------- /documentation/delta.md: -------------------------------------------------------------------------------- 1 | # Flashing the Delta 7024 to a Dell 8024 2 | 3 | ## Disclaimer & Caveats 4 | This page will guide you through flashing a Delta Networks 7024 (DNI7024F) to a Dell PowerConnect 8024 (PC8024F). We are not responsible for any damaged devices or property resulting from this guide. As of now this process is irreversible, so be sure you want to do it. 5 | 6 | ## Advantages 7 | The Delta switch comes with a very limited "demo build" of Fastpath, with little to no documentation. There's also no updates for it ever released. By switching to Dell, you gain regular firmware updates (as recent as a few months ago), and plenty of documentation. You get a more fleshed out OS including a web interface as well. 8 | 9 | There's one downside: the Dell firmware is very picky about SFP+ optics. You must use Dell branded optics or they won't work. However if you're using DAC cables, any brand will work without issue. 10 | 11 | ## Prerequisites 12 | 13 | This guide assumes you're familiar with the basics like TFTP, obtaining a serial console to the device, etc. If you're not, this guide is probably not for you. Before touching your switch, read this document from beginning to end to get a basic idea of what you'll be doing - do **not** skip this step. 14 | 15 | The risk of doing this is mitigated if you're prepared and follow closely. It's a good idea to have the switch on a UPS while you do this, if you lose power after the ```erase``` command before you've flashed the new bootloader, your device will be bricked (however it can be recovered with a PowerPC capable JTAG unit). 16 | 17 | Download the firmware ZIP below. It contains your bootloader, OS, and all the documentation you'll need. 18 | 19 | [```Dell Firmware Zip```](https://brokeaid.com/files/8024.zip) 20 | ```Zip Updated: 05-16-2018``` 21 | ```FW Version: 5.1.12.2``` 22 | ```MD5: ec0075e95945b3f86ce4a6c9a8549f86``` 23 | 24 | Connect to the serial console port on the switch and open a terminal window (9600 8N1). Also be sure to connect the management port on the switch to a network that has layer 2 access to your tftp server. Note: the management port must be connected, not the standard copper ports! 25 | 26 | ## TFTP Preparation 27 | 28 | You need to temporarily run a TFTP server. If you're on windows and need a temporary TFTP server, I recommend [Tftpd32 Portable Edition](http://www.tftpd64.com/tftpd32_download.html). Copy ```8024boot.bin``` from the ZIP to your TFTP server root directory. Copy the OS image from ZIP to your TFTP server root directory as well (```PC8024v5.1.12.2.stk```). 29 | 30 | 31 | 32 | ## Flash Preparation 33 | 34 | Reboot the switch while watching the serial output, it should prompt you to hit any key, or maybe `b` to interrupt boot. Do so and it should drop you into the u-boot console, which should look like this: 35 | 36 | ``` 37 | => 38 | ``` 39 | 40 | With all the following commands, copy and paste them *exactly* as you see them. Do not try to manually type them! 41 | 42 | Use the memory read command to verify your Delta bootloader is where it should be - this ensures the commands to follow will use the correct location: 43 | 44 | ``` 45 | md 0xfff80000 20 46 | ``` 47 | 48 | The output should match this exactly: 49 | 50 | ``` 51 | fff80000: 27051956 552d426f 6f742032 3030392e '..VU-Boot 2009. 52 | fff80010: 30362028 41707220 31392032 30313120 06 (Apr 19 2011 53 | fff80020: 2d203133 3a35363a 34382900 60000000 - 13:56:48).`... 54 | fff80030: 3c20d000 60213f80 38000000 9401fffc < ..`!?.8....... 55 | fff80040: 9401fffc 9421fff8 3c00ffff 6000fffc .....!..<...`... 56 | fff80050: 9421fff8 9001000c 48000005 7dc802a6 .!......H...}... 57 | fff80060: 800e171c 7dc07214 48002029 3c600002 ....}.r.H. )<`.. 58 | fff80070: 60631200 7c600124 4c00012c 48001fa5 `c..|`.$L..,H... 59 | ``` 60 | 61 | If the output on your switch does not match this exactly, **STOP!** Pastebin your switches output and get in touch with us on [ServeTheHome](https://forums.servethehome.com/index.php?threads/flashing-delta-7024-to-dell-8024.19868/). 62 | 63 | Carrying on, assuming your ```md``` output matched ours: It's time to load in the Dell bootloader to a safe temporary location in RAM. You also need to set a temporary IP for the switch, as well as set the IP of your TFTP server destination: 64 | 65 | ``` 66 | setenv ipaddr 192.168.1.50 67 | setenv serverip 192.168.1.49 68 | ``` 69 | Now copy the Delta bootloader to a temporary address in RAM for holding: 70 | ``` 71 | tftpboot 0x300000 8024boot.bin 72 | ``` 73 | 74 | The tftpboot command should have output similar to the below: 75 | ``` 76 | => tftpboot 0x300000 8024boot.bin 77 | Enet starting in 1000BT/FD 78 | Speed: 1000, full duplex 79 | Using TSEC1 device 80 | TFTP from server 192.168.2.49; our IP address is 192.168.1.50 81 | Filename '8024boot.bin'. 82 | Load address: 0x300000 83 | Loading: Got error 4 84 | T ################################################################# 85 | ####### 86 | done 87 | Bytes transferred = 1048576 (100000 hex) 88 | => 89 | ``` 90 | 91 | If you see Error 4 that's normal, just be sure the `bytes transferred` matches. Now you need to verify that the temporary address contains the Dell bootloader: 92 | 93 | ``` 94 | md 0x300100 20 95 | ``` 96 | 97 | The output should match the below exactly: 98 | 99 | ``` 100 | 00300100: 480fef01 48000039 436f7079 72696768 H...H..9Copyrigh 101 | 00300110: 74203139 38342d32 30303620 57696e64 t 1984-2006 Wind 102 | 00300120: 20526976 65722053 79737465 6d732c20 River Systems, 103 | 00300130: 496e632e 38400002 48000008 7c621b78 Inc.8@..H...|b.x 104 | 00300140: 7c6000a6 5464045e 548403da 54840524 |`..Td.^T...T..$ 105 | 00300150: 7c800124 4c00012c 7c000278 3820ffff |..$L..,|..x8 .. 106 | 00300160: 7c1603a6 7c1c43a6 7c1d43a6 7c3053a6 |...|.C.|.C.|0S. 107 | 00300170: 7c1453a6 7c1e0ba6 7c0103a6 7cc63278 |.S.|...|...|.2x 108 | ``` 109 | If it doesn't match, **STOP**. You can safely reboot back to Fastpath by typing ```reset``` or power cycling it. If you'd like, pastebin the output and get in touch with us on ServeTheHome. If it does match, continue on. 110 | 111 | ## Erasing and replacing the bootloader 112 | 113 | You now have the Dell bootloader we need stored in RAM. We need to erase the existing bootloader, then copy the Dell loader from that RAM address to the bootloader address. From here on, be incredibly careful, and follow the commands exactly. 114 | 115 | 116 | Disable the flash write protection: 117 | ``` 118 | protect off all 119 | ``` 120 | Erase the Delta bootloader: 121 | ``` 122 | erase 0xfff00000 0xffffffff 123 | ``` 124 | Copy the Dell bootloader to the boot sector. Running this command might take a minute, so be patient and do not panic or try to cancel it: 125 | ``` 126 | cp.b 0x300000 0xfff00000 0x100000 127 | ``` 128 | Congratulations, you've installed the Dell bootloader (which can now load the Dell software image). **DO NOT REBOOT YET!** First verify the Dell bootloader is in the bootloader location: 129 | 130 | ``` 131 | md 0xfff00100 20 132 | ``` 133 | 134 | The output from your switch should match the below exactly: 135 | 136 | ``` 137 | fff00100: 480fef01 48000039 436f7079 72696768 H...H..9Copyrigh 138 | fff00110: 74203139 38342d32 30303620 57696e64 t 1984-2006 Wind 139 | fff00120: 20526976 65722053 79737465 6d732c20 River Systems, 140 | fff00130: 496e632e 38400002 48000008 7c621b78 Inc.8@..H...|b.x 141 | fff00140: 7c6000a6 5464045e 548403da 54840524 |`..Td.^T...T..$ 142 | fff00150: 7c800124 4c00012c 7c000278 3820ffff |..$L..,|..x8 .. 143 | fff00160: 7c1603a6 7c1c43a6 7c1d43a6 7c3053a6 |...|.C.|.C.|0S. 144 | fff00170: 7c1453a6 7c1e0ba6 7c0103a6 7cc63278 |.S.|...|...|.2x 145 | ``` 146 | Now check that the last bootloader instruction was also copied: 147 | ``` 148 | md 0xFFFFFFFC 1 149 | ``` 150 | The output should match the below exactly: 151 | ``` 152 | fffffffc: 4bfff004 K... 153 | ``` 154 | If **both** match exactly, continue on to **Booting Dell** below - the risky part is over. However if they don't, don't panic. Try running `md 0xfff80000 20` - if the output is the same as when you ran it at the beginning of this gide (with the words u-boot) it means your u-boot bootloader was not overwritten. If so, that means the Delta bootloader is still there. Either you didn't properly disable write protection, or something else has gone wrong. You can reboot into Fastpath like normal, and contact us on the forums. 155 | 156 | However if it matches neither, something has failed. We have yet to see this, but just in case you do - be sure you're running the exact commands here, and do the guide again from `tftpboot 0x300000 8024boot.bin` and onwards until you get the bootloader where it should be. If you follow the commands, it should work. **Do not reboot or pull power until this is resolved.** 157 | 158 | ## Booting Dell 159 | You now have the Dell bootloader in the proper section of the PowerPC flash. You just need to reboot and the real fun begins: 160 | 161 | ``` 162 | reset 163 | ``` 164 | It will reboot, and the Dell loader will take some time formatting the flash. 165 | 166 | It should prompt you saying that the VPD data is empty, and you must enter the MAC address, serial, and service tag. The MAC should be on a sticker on the side or bottom of the switch. Enter this when it asks in the suggested format (without colons). If you can't find your MAC, use an online MAC generator to generate a MAC with the proper format. For the serial and service tag, just make up a short string of letters/numbers. 167 | 168 | Eventually it should drop you at a prompt similar to this (it will probably not match exactly): 169 | 170 | ``` 171 | Boot Menu 3.1.4.5 172 | 173 | Options available 174 | 1 - Start operational code 175 | 2 - Change baud rate 176 | 3 - Retrieve event log using XMODEM 177 | 4 - Load new operational code using XMODEM 178 | 5 - Display operational code vital product data 179 | 6 - Abort boot code update 180 | 7 - Update boot code 181 | 8 - Delete backup image 182 | 9 - Reset the system 183 | 10 - Restore configuration to factory defaults (delete config files) 184 | 11 - Activate Backup Image 185 | 12 - Password Recovery Procedure 186 | 13 - Reformat and restore file system 187 | [Boot Menu] 188 | ``` 189 | Now we can begin the process of loading a firmware image over serial. 190 | 191 | ## Loading the Dell OS Image 192 | Because Dell is very forward thinking and does not have TFTP in their bootloaders, we need to load the actual OS image over serial. Yes, the same way you did back in the early 90's. 193 | 194 | To do so you need to download and use [TeraTerm](https://osdn.net/projects/ttssh2/releases/) as it supports XMODEM transfers with 1K blocksize - trust me, you want this if you don't have all day. You can download the ZIP version and just run it from a folder if you don't want to install any new software - just launch it with the `ttermpro.exe` file. 195 | 196 | Close putty or whatever serial console program you were using, and launch TeraTerm, then select your serial port. The boot menu prompt should come back up, now in Teraterm - just hit `?` to get the switch to populate the boot menu options again. 197 | 198 | We need to change the switches baud rate to 115200, or else the transfer will take 6+ hours. Enter `2` in the menu, and then select the `115200` option. The console will go unresponsive, as it's running a new baud rate. You need to change the baud rate in TeraTerm. Navigate to `Setup > Serial Port` and change the baud to 115200 - then click OK: 199 | 200 | ![TeraTerm Menu](http://brokeaid.com/files/pictures/serialspeed.png) 201 | 202 | Hit enter a few times and the switch should come back. `Note:` When you change the switches baud rate it only takes effect for this session. It will reset to 9600 on the next boot. 203 | 204 | Now we just need to start the transfer. Send the switch `4` for `Load new operational code` - you will see CKCKCK at the bottom - it's waiting for a transfer. In TeraTerm, navigate to `File > Transfer > XMODEM > Send`, then select the `PC8024v5.1.12.2.stk` file you extracted from the ZIP. **MAKE SURE** before clicking OK that you check the `1K` box! Once you have checked it, just click Open and it will start the transfer. 205 | 206 | ![TeraTerm Menu](http://brokeaid.com/files/pictures/teratermTX.png) 207 | 208 | ![TeraTerm Menu](http://brokeaid.com/files/pictures/1kblock.png) 209 | 210 | The transfer will take about 18 minutes. Grab a drink. When it's done, the switch will give an error similar to `error obtaining active image name` - this is normal. Wait a minute or so and press enter a few times - you should return to the boot menu. 211 | 212 | Now send the switch the boot menu option `7 - Update boot code` - this will reflash the bootloader using Dell's official flash routine and will re-enable flash write protect, which is a good thing. When it finishes, it should auto reboot the switch. If it just returns you to the boot menu, send `1 - Start operational code`. 213 | 214 | When it does boot, it will say `uncompressing image` then you will stop getting output in your terminal. This is because on boot the console speed reset back to 9600 baud. You will now need to set your terminal's baudrate back to 9600 - the switch will go unresponsive as it boots into the OS and resets the console speed back to default. In TeraTerm go to `Setup > Serial Port` and set the baud back to 9600, then send enter a couple times - you should now be at the OS prompt. 215 | 216 | ## Updating the CPLD 217 | The switch should have succesfully booted into the Dell OS. [Congratulations dude, you got a dell!](https://www.youtube.com/watch?v=8BsWijdM0W0) However you're not done yet. You need to flash the Dell code to the [CPLD](https://en.wikipedia.org/wiki/Complex_programmable_logic_device). Long story short, it's a little processor that monitors and controls the fans, power supplies, chassis lights, that kind of thing. 218 | 219 | At the OS prompt, enter the enable level then send the update command: 220 | ``` 221 | enable 222 | dev cpldUpdate 223 | ``` 224 | You should get output matching the below: 225 | ``` 226 | Device #1 Silicon ID is ALTERA04(01) 227 | erasing MAXII device(s)... 228 | erasing MAXII UFM block... 229 | erasing MAXII CFM block... 230 | programming CFM block... 231 | programming UFM block... 232 | verifying CFM block... 233 | verifying UFM block... 234 | DONE 235 | CPLD update exited with a return code of 0 236 | error_address 398931407, exit_code 0, format_version 2 237 | 238 | value = -1 = 0xffffffff 239 | ``` 240 | The error_address at the end is normal - just ensure you see both the `programming` and `verifying` steps completed. Now you need to cold power the switch to reset the CPLD - unplug the switch power, wait a couple seconds, and plug it back in. Do not skip this step or you will have very wonky behavior! 241 | 242 | Once it boots back all the way into the OS, check the CPLD status: 243 | 244 | ``` 245 | enable 246 | dev cpldTest 247 | ``` 248 | You should see output like the below. Most importantly, make sure the CPLD revision matches (should be `6`): 249 | ``` 250 | Board Type : Campbell 24F 251 | Board Version : 2 252 | CPLD Revision : 6 (0x6) 253 | ``` 254 | Make sure it can see your fans and power supplies as well. You shouldn't have any `fan tray missing` or `fan tray error` statements (an `RPS: Failed` is normal if one of the two power supplies are not plugged in). You now have a fully flashed Dell PC8024F. 255 | 256 | Please check out and follow the included guides in the Documentation folder to configure your new switch. 257 | 258 | If you have any unexpected results, output that doesn't match this guide, or something is not clear, please do not hesitate to [email me](mailto:internetjoelol@gmail.com) - Unlike the Quanta, I do not personally own a Delta 7024 so this guide was written by sending code back and forth to a 7024 owner. This means some sections might not be as clear as they could be. 259 | 260 | ## Updating 261 | Dell will probably release new firmware packages for the 8024. You can check [here](http://www.dell.com/support/home/us/en/04/product-support/product/powerconnect-8024f/drivers). If you see new versions you can use them to update your switch just like it was a stock Dell. Just boot into the full OS and use TFTP to download the new STK image file. Then boot into the bootloader and update the boot code as well (every STK firmware image comes with new bootcode). You may also need to update the CPLD again (check the new firmware release notes). 262 | 263 | Note: If you have not converted your Delta switch yet, do not use a new firmware package from Dell to do it. Use the custom package linked at the beginning of this guide for the initial conversion. 264 | 265 | ## Secret Boot Menu 266 | You should not need this, but just in case you are curious: there is a hidden low-level boot menu inside the Dell bootloader. Reboot the switch into the normal bootloader. When it asks for you to enter an option, enter `30`. When it asks for a password, use `pc62xxkinnick` - you will be dropped into a low level boot menu. Note: many things here can break your switch! be careful: 267 | 268 | ![TeraTerm Menu](http://brokeaid.com/files/pictures/hiddenboot.png) 269 | 270 | ### Thanks: 271 | -[**Jon Sands**](http://fohdeesha.com/) 272 | -**Xiaofei Sun** + **Zhu Junhang** for being the first to test this, then sending me all the command output! 273 | 274 | ### Contributing: 275 | The markdown source for these guides is hosted on [**our Github repo.**](https://github.com/Fohdeesha/quanta-brocade) If you have any suggested changes or additions feel free to submit a pull request. 276 | 277 | ```Documentation version:``` [ v0.8 (11-29-25)](https://github.com/Fohdeesha/quanta-brocade/commits/master) 278 | --------------------------------------------------------------------------------