 Can I write it? Yes Okay. Hi. I'm Karl-Lenny Heifinger. I'm the lead developer of the Flash Home open-source project You're here to listen to a talk which says update your BIOS and EFI from any free OS That's actually the subtitle. The real title is the open-source flash programmer I'm glad to be able to speak here about Flash Home and let's just dive in. What is Flash Home? Flash Home is a tool for flash eoproms. Well Most of you know those chips as BIOS chips But some know it perhaps as ROM chips on a network card. Usually those are flash eoproms Flash Home can identify those chips, read them, write them, erase them, lock them, unlock them Pretty much everything you can do with them and Flash Home supports all flash interfaces We know Which means parallel LPC FWH SPI Those are the most common buses you find on x86 mainboards or network cards, cell controllers, whatever Flash ROM does not care about the chip form factors. So sometimes people ask us, okay Does Flash Home work with a PLCC32 flash chip and we say, well, we don't care about the form factor It's all about the flash interface and the chip itself Flash Home is pretty extensive. It supports over 270 flash chips 150 x86 chipsets 260 mainboards are listed in our database. We have quite a backlog Actually realistic is probably 500 mainboards, maybe more, most more mainboards are supported out of the box So we don't get reports for that and 55 external programmers. I have to explain what that means later Just a short change, external programmers means it's not part of the original Mission of Flash ROM to update a BIOS or to replace the BIOS with core boot So anything which is not a mainboard is an external programmer Flash ROM has quite nice features. It works in the environment you're used to so if you are used to Linux Flash ROM can be run on the Linux It says later. It's also portable Linux 3BSD, NetBSD, OpenBSD, DragonflyBSD, MagOSX, OpenSolaris, FreeDOS Partially Windows, pretty much every operating system you can mention. It's easy to port mostly easy Flash ROM doesn't need physical access So if you have the old problem you have a server stored somewhere and then you would have to plug in a keyboard You have to plug in a monitor to run a door space utility, maybe install a floppy drive That's horrible. Who would want to do that? So Flash ROM can just you just log in over SSH to that machine and update the BIOS if I remotely or flash core boot remotely, whatever you want or you update your network card Boot ROM, whatever. It can all be done remotely You can do this from a running system Which means that if you have to administrate a huge cluster or something like that The cluster keeps running while we refresh or while you refresh it Keeps running even if a flashing fails can happen. Maybe the chip dies or whatever I once had a chip die on me and the machine kept running I think I kept it running for one month without a flash chip at all without a BIOS chip While the machine is running you don't need that unless yeah, well You use flash ROM and want to test the chip then you of course need a chip But otherwise you can recover if it fails you just go on IHC mail us and say hey I didn't shut down the machine. Can you help me and then we usually can help you recover So that's pretty cool in my opinion. It's a common line application, which means you can also script it easily I already mentioned it's portable. Maybe one additional point to the scriptability This also means you Flesh on will not wait for user input and if something is wrong or something is Flesh on can't decide what to do For example ambiguous chip detection or whatever it will simply abort and leave your system untouched So you can easily deploy it everywhere. It's pretty fast We have run timings and we are up to 10 times faster than vendor utilities You can do hot flashing for example you Killed the or not killed but erased the flash chip or one board by accident then you put another board And put it up remove the flash chip while the board is running plug in the erase flash chip Run flash from again and the flash image you want to have been there And then you have recovered one machine without having to buy an expensive programmer. It can do cross flashing So if you have an asses board with an video chipset You can without any problem flash a chip for Gigabyte board with AMD chipset or whatever as long as the buses of the flash chip are compatible But there are only four different buses. So the chance is pretty high and most modern systems have SPI Flash chip. So it's easy to interchange Well use cases Update your bias update your EFI Flash core boot update your network bootrom or write one Mod your graphics firmware some people like that because they believe the way they just locked down the Graphics card without any need you can mod your SATA or pata controller Promise Controllers pata controllers in the past you had only to flip one bit and it immediately became a rate controller Which was fun You can do Recovery with hot flashing cross flashing for example your friend brick teaser her device and let's say okay Give me the flash chip and then you rip out your flash chip while your machine is running plug in the other flash chip We're a flash rom be happy You can't flash any chip of any programmer. So if you have a network bootrom which fits in your network Card and you have a socket and a compatible flash bus and there are only four flash buses on your an older main board Plug in the network bootrom into your main board with this hot and cross flashing Flash it remove it be happy. The other way around works as well Can update your main board bias if you have a self-built AVR based programmer? You can update your graphics card rom with a parallel port cable with a few resistors soldered on It's all pretty much fun The design is pretty is clean and reliable because If people try flash room and it fails They will come and complain and we want to make users happy and Supporting people after the fact after something is broken is much more difficult than doing it right from the start So yes supporting your flash ship or a new programmer is very easy Usually it's just adding a new line to a table We did not have to write a new flash chip driver in the last two years So that should probably tell you how well it works The programmer is selected by a command line parameter for example if you have a network card or graphics card and your main board and Freshman can't know which one to flash and you should specify it because fashion will by default say okay I don't know which one so Please tell me it has a compatibility checker So it checks whether the flash chip and the programming interface are compatible It does not check whether the board and the image you want to flash are compatible Because that would make a cross flashing impossible fashion probes always for a chip, but it will never read never write or never write Nor nor erase if you don't explicitly tell it and Flashing verifies everything by default. I think two or three times at every step. So it's all about reliability Because hey, you won't use a machine afterwards Problems. Well, we do have some People love to Flash DVD drives we say no we won't support that because DVD drives do not offer the ability to verify the contents And so we don't know if flashing worked and then people would just complain the fashion killed that DVD burner So we just do don't support it. Oh, yeah, data sheets are wrong really really wrong jet a compliant means. Yeah Well, you encrypt the spec and then try to read that garbage and then it works out fast means Yeah, we had a chip and it was about 100 times slower than the others which were not labeled as fast Standard of course means you can use the standard commands, but please wait one millisecond instead of one microsecond After every right. So a right needs only one hour It's proven in the sense of we it's proven that the chip dies Then there are multiple incompatible chips of identical ID because vendors decide. Oh, let's keep the ID and just change the interface and Tips that designers try to be clever and they add security features which Stop us from verifying, but they don't stop us or any malware from writing It's really really funny. Okay programmers. What do we support? This is only a small selection. I'll just skip quickly Mainboards a PCI Express Solid-state disk we support this since I think 13 hours I just commented that We support network cards Sutter controllers the open graphics card Self-builds AVR based devices the bus pirate the great expensive daddy pro programmer a Design of over Herman who is also member for flesh on project It pretty much does the same as the extremely expensive daddy pro at the same speed But it costs. I think material about whatever $10 or so and then you can do you some Development hardware you can do the parallel port cable hack with some resistors If you like it ghetto style at midnight nothing else is available. You want to recover your machine. Okay a demo run Um Where is the escape button? Sorry, could you help me? Oh Look in the wrong place Sorry This one should Okay, and 11 okay, I'll just replay a flashroom run because I don't want to do this on Hardware Well, not with the presentation hardware. It's just and you read first you read the backup This is the original timing. So it's pretty quick and then you write a new version a new rom And it's also not that slow. I made that time yesterday It's erasing writing done verifying of course and that's it. So I do exit this again Five Okay, if legend doesn't find your chip can happen. Maybe we just need a new idea Maybe a new chip driver, but we haven't needed that in the last two years Maybe your chipset is unsupported if it's very new but unlikely because we track chipset updates all the flesh it is hiding hiding behind some obscure controller which performs translation or you have a laptop just send us a report and We'll take care of it. So the laptop nightmare. I should mention this I have a few seconds left. I think That flash chips are so legit so you can't just exchange them the mainboards are custom extremely expensive and the laptop is two computers You have the x86 CPU, you know and an extra embedded controller Which does better recharging power management the stuff and they share the same flash chip So if you start erasing the normal bias Well, your embedded controller will die Power off while you're erasing not great. It will hang power of the backlight stop charging whatever there are no standards no docs no test software and of course if you get anything It's only under draconian and da's We're making slow progress with support a few embedded controllers But their interface not only depends on the hardware, but also on the software. They are running. It's horrible We support I think one laptop Okay, maybe two ever, but yeah, so the users please try flesh on but not in crazy expensive hardware or not on laptops If it works, please send us a report We were happy to hear about it and we'll add it to our support list if flesh on fails Just join us on IRC Give us a few minutes. Maybe our few hours to respond your machine can't keep running. Just don't power it off We can't help you recover. We are pretty successful with recovery We have I think roughly 99% recovery success. So that's my opinion pretty okay And please use latest flesh on don't use older versions use latest one from subversion It's reliable and it has automatic recovery We'll add your board to our to-do list if it doesn't work at first, okay Spare the world tell everybody right in your blog tell your friends tell the admins at your company They may actually use it and tell hardware vendors, but please not you must support us, but rather in a pretty friendly way Yes, if you have questions, please visit us at our booth in a W building booth number eight We share a booth with Corbett and flesh on at flesh on org on the web mail us at flesh on at flesh on org Join us on free note at has flesh on okay. Thanks to everybody who helps contributes and such reports and thanks to for stem