A new post titled "[GSoC] End user flash tool - week #4 #5" has been published on the coreboot blog. Find the full post at http://blogs.coreboot.org/blog/2015/06/29/gsoc-end-user-flash-tool-week-4-5/

Hello! During week #4 and #5 I worked on several cases:

  1. Integration of cbfs_tool features.
  2. Improving my libflashrom querying functions / integrating already existing patches.
  3. 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

The same like in case of libflashrom and bios_extracted 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 and 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 arrived 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 with some dialogs, comboboxes and edit text fields to allow user to manipulate with rom contents like adding payload, bootsplash or 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 that which options are correct and I will be going in this direction in July where my effort will be to automate a process of creating and flashing a coreboot image as much as possible. So currently this is a kind of ‘advanced mode’. I implemented it for several reasons:

Tasks for current week: