Hello! During week #4 and #5 I worked on several cases:
- Integration of cbfs_tool features.
- Improving libflashrom querying functions / integrating already existing patches.
- Extending and improving GUI.
Integration of cbfs_tool features
cbfs_tool is bigger project than bios_extract, so I took a little more to integrate it than during bios_extract integration as I needed to do some investigation how it works. I imported code related to:
- creating rom file
- adding components like stage, payload, option rom, bootsplash etc.
- printing rom content
- deleting components.
The same like in case of libflashrom and bios_extract I created a static library and linked it with flash tool.
IMPROVING LIBFLASHROM querying functions / integrating patches
After posting my draft patch for initial review on flashrom mailing list I got great feedback which helped me a lot. Urja Rannikko and Stefan Tauner pointed my mistakes and proposed improvements, moreover Anton Kochkov shared his libflashrom changes where he worked on similiar issues. This community is really helpful. Thanks!
So, I did improvements in querying functions. Currently we have:
const char** fl_supported_programmers(void); const char* fl_version(void); fl_flashchip_info *fl_supported_flash_chips(void); fl_board_info *fl_supported_boards(void); fl_chipset_info *fl_supported_chipsets(void); int fl_supported_info_free(void *p);
Unnecessary functions which return number of supported hardware of certain type have been removed. Now we can call functions to allocate the table and get a pointer to it. Of course I will create a patch and post it for second review.
I had a problem as my SOIC clip did not arrive on time, I was not able to test operations related functions on my T60. Actually it was my fault because I have not noticed a comment on internet auction that it may go from China. I have been waiting for 3 weeks for its arrival. Now I already have it so my main focus this week is to test libflashrom on real hardware.
extending / improving gui
I extended a GUI part to allow user to manipulate with rom contents like adding payload, bootsplash etc. and also removing such components. Of course this is not a main purpose of my project. The main focus is to create a tool which will allow user to don’t care about which options are correct. I will be going in this direction, I want to automate a process of creating a coreboot image as much as possible. So currently this is a kind of ‘advanced mode’. I implemented it for several reasons:
- after integration of bios_extract, cbfs_tool and libflashrom it was not big effort to do it
- implementing and testing it helped me to better understand integrated code and its features
- there are also advanced users who may want to do some manual changes
Tasks for current week:
- test probing, reading, flashing with libflashrom on T60 (through linux_spi)
- GUI improvements proposed by Stefan Tauner(searching, sorting and filtering in supported hardware screen)
- code cleanup
Please note that someone is also working on a libreboot end user flashing utility. Maybe you could join forces 🙂
https://notabug.org/tomlukeywood/Libreboot_Flashing_Utility