Hi all,

I've been thinking about what flashrom 2.0.0 should look like, and I’d like to 
start the conversation now so we can work toward a 2.0 release early next year.

My napkin plan:

Between now and the release
  - Keep refactoring, improving documentation, and paying down technical debt.
  - Prepare the eviction of few programmers that only exist in museums or drive 
long-retired technology (rayer_spi is already in review as the first). These 
drivers are effectively untested; a refactor may incidentally touch them, but 
no one is validating them on real hardware.
  - Cut a 1.9.0 before January with any pending bug fixes, so we have a clean, 
stable base to branch 2.0 from. (Retired programmers may get fixes as a side 
effect of refactoring, but again.. untested.)

Yes i skipped 1.8.0 for 2 reason: 
- skipping a version is basically the software equivalent of 'last call before 
2.0.'
- 1.9.0 to 2.0.0 is natural .. some software don't use double digit minor 
(1.10.0)

** The chip-testing push*
A few months ago I ordered thousands of SKUs from China. The trader spent 
nearly three months contacting warehouses to source every SPI flash chip he 
could find. Some went out of stock immediately after I ordered them, so I may 
have been the last customer for a few of those parts. By the time collection 
finished, the same order would cost five figures thanks to the memory price 
spike. 

Once the packages finish arriving, I'll spend a few weekends testing every 
currently-unverified chip. 
The goal is that, by the 2.0 release, unknown-chip warnings should primarily be 
limited to devices released after flashrom itself. 
Manufacturers can also help by testing devices and mailing samples to 
maintainers for cross-checking. SPI flash chips are small enough to ship in a 
regular envelope. 
I see we have Winbond, nvidia and qualcomm and mcst contributors that have 
access to to new chips or non consumers facing chips. They can help with the 
catalog. 

This would make flashrom the largest open-source database of actually tested 
SPI flash devices. Plenty of closed-source tools claim 40k+ chips, but most are 
untested or hallucinated(the programmer offer a package the manufacturer never 
offered)!  
I have personally had to swap between 2–3 programmers just to read something 
that wasn't garbage.

** libflashrom as the reference layer*

I would like libflashrom to become the de-facto low-level library that other 
projects build on, instead of everyone re-deriving the same chip data:
  - https://github.com/ArthurHeymans/rflasher
  - https://github.com/seuros/flashcat
  - https://gitlab.com/DavidGriffith/minipro

None of these projects (flashrom included) has the funding or manpower to do 
everything. Sharing a well-tested chip database helps all of us.

** After 2.0*

In 2.0 I’d like the focus to shift from architectural churn toward testing, new 
chip support, maintenance and polish. 
The one thing that could reopen major development is NAND support, but that's a 
whole new infrastructure (ECC, bad-block management, OOB) and deserves its own 
discussion. (I willhave the chips)

** Proposed release date:* 2027-01-29 (a Friday), exactly 25 years since Ron 
Minnich’s 'Dammit' commit, which is essentially where the project began.

A project only gets one 25th anniversary. Missing that date would be like 
launching Voyager after the planetary alignment had passed.

It would be pretty epic if Ron himself did the final version bump.

Thoughts welcome, especially on the eviction list and the 1.9.0 cut.

Already in review
  - rayer_spi - parallel-port SPI bit-banging (CB:93706)
Legacy PCI option/boot-ROM flashers (par_master, raw x86 port I/O or PCI BAR)
  - nic3com - 3Com PCI NIC boot ROM
  - nicrealtek - Realtek/SMC 1211 NIC boot ROM
  - nicnatsemi - National Semiconductor DP838* NIC boot ROM
  - gfxnvidia - old NVIDIA graphics-card flash
  - drkaiser - Dr. Kaiser PC-Waechter PCI card
  - satasii - Silicon Image SATA/IDE controller
  - satamv - Marvell SATA controller
  - atahpt - HighPoint ATA/RAID controller
  - atapromise - Promise PDC2026x ATA/RAID controller
  - atavia - VIA VT6421A SATA controller
  - it8212 - ITE IT8212F ATA/RAID controller
Orphaned / EOL hardware
  - developerbox_spi - Socionext SynQuacer DeveloperBox 

Thanks,
Abdelkader Boudih
_______________________________________________
flashrom mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to