BACKPORT: tree/: Convert flashchip erase_block func ptr to enumerate

Backport to:
 * resolve merge conflict in flashrom.c
 * handle eraser enum in action_descriptor.c (requires access to
   lookup_erase_func_ptr())
 * update block_erase fields for W25Q512NW-IM32
 * add eraser enum value for cros_ec

This forges the way for flashchips.c to be pure declarative
data and lookup functions for dispatch to be pure. This
means that the flashchips data could be extracted out to
be agnostic data of the flashrom code and algorithms.

(cherry picked from commit 3bba710d98b60eba7ebbae0869fd58f7dc987afd)

Original-Change-Id: I02ae7e4c67c5bf34ec2fd7ffe4af8a2aba6fd5e5
Original-Signed-off-by: Edward O'Callaghan <quasisec@google.com>
Original-Reviewed-on: https://review.coreboot.org/c/flashrom/+/69133
Original-Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Original-Reviewed-by: Anastasia Klimchuk <aklm@chromium.org>
Original-Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Change-Id: Ie1b6697efdf554660b5f09ff30a625f4bd6b5f9b
Signed-off-by: Peter Marheine <pmarheine@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/flashrom/+/4022336
Reviewed-by: Edward O'Callaghan <quasisec@chromium.org>
10 files changed
tree: 47e36eb3d3112dfb662006327ead1de6cd78f8d7
  1. .github/
  2. bindings/
  3. Documentation/
  4. include/
  5. Makefile.d/
  6. platform/
  7. scripts/
  8. subprojects/
  9. tests/
  10. util/
  11. .gitattributes
  12. .gitignore
  13. 82802ab.c
  14. action_descriptor.c
  15. action_descriptor.h
  16. amd_imc.c
  17. at45db.c
  18. atahpt.c
  19. atapromise.c
  20. atavia.c
  21. big_lock.c
  22. big_lock.h
  23. bitbang_spi.c
  24. board_enable.c
  25. buspirate_spi.c
  26. cbtable.c
  27. ch341a_spi.c
  28. chipset_enable.c
  29. cli_classic.c
  30. cli_common.c
  31. cli_output.c
  32. COPYING
  33. cros_alias.c
  34. cros_ec.c
  35. cros_ec.h
  36. cros_ec_commands.h
  37. cros_ec_dev.c
  38. cros_ec_wp.c
  39. custom_baud.c
  40. custom_baud_linux.c
  41. dediprog.c
  42. developerbox_spi.c
  43. digilent_spi.c
  44. DIR_METADATA
  45. dirtyjtag_spi.c
  46. dmi.c
  47. Doxyfile
  48. drkaiser.c
  49. dummyflasher.c
  50. edi.c
  51. en29lv640b.c
  52. file_lock.c
  53. flashchips.c
  54. flashchips_crosbl.c
  55. flashrom.8.tmpl
  56. flashrom.c
  57. fmap.c
  58. ft2232_spi.c
  59. gfxnvidia.c
  60. helpers.c
  61. helpers_fileio.c
  62. hwaccess_physmap.c
  63. hwaccess_x86_io.c
  64. hwaccess_x86_msr.c
  65. i2c_helper_linux.c
  66. ich_descriptors.c
  67. ichspi.c
  68. internal.c
  69. ipc_lock.h
  70. it8212.c
  71. it87spi.c
  72. jedec.c
  73. jlink_spi.c
  74. known_boards.c
  75. layout.c
  76. libflashrom.c
  77. libflashrom.map
  78. linux_mtd.c
  79. linux_spi.c
  80. MAINTAINERS
  81. Makefile
  82. Makefile.include
  83. mcp6x_spi.c
  84. mediatek_i2c_spi.c
  85. meson.build
  86. meson_options.txt
  87. mstarddc_spi.c
  88. ni845x_spi.c
  89. nic3com.c
  90. nicintel.c
  91. nicintel_eeprom.c
  92. nicintel_spi.c
  93. nicnatsemi.c
  94. nicrealtek.c
  95. ogp_spi.c
  96. opaque.c
  97. opaque_statusreg.c
  98. OWNERS
  99. parade_lspcon.c
  100. parallel.c
  101. pcidev.c
  102. pickit2_spi.c
  103. pony_spi.c
  104. power.c
  105. power.h
  106. PRESUBMIT.cfg
  107. print.c
  108. print_wiki.c
  109. processor_enable.c
  110. programmer.c
  111. programmer_table.c
  112. raiden_debug_spi.c
  113. rayer_spi.c
  114. README
  115. README.chromiumos
  116. realtek_mst_i2c_spi.c
  117. s25f.c
  118. satamv.c
  119. satasii.c
  120. sb600spi.c
  121. serial.c
  122. serprog.c
  123. sfdp.c
  124. spi.c
  125. spi25.c
  126. spi25_statusreg.c
  127. spi95.c
  128. sst28sf040.c
  129. sst49lfxxxc.c
  130. sst_fwhub.c
  131. stlinkv3_spi.c
  132. stm50.c
  133. udelay.c
  134. unblocked_terms.txt
  135. usb_device.c
  136. usbblaster_spi.c
  137. usbdev.c
  138. w29ee011.c
  139. w39.c
  140. wbsio_spi.c
  141. writeprotect.c
  142. writeprotect_ranges.c