diff options
-rw-r--r-- | main/flashrom/APKBUILD | 16 | ||||
-rw-r--r-- | main/flashrom/libusb_set_option.patch | 11 | ||||
-rw-r--r-- | main/flashrom/sst26.patch | 198 |
3 files changed, 6 insertions, 219 deletions
diff --git a/main/flashrom/APKBUILD b/main/flashrom/APKBUILD index 1a622d50b30..64c153bcb02 100644 --- a/main/flashrom/APKBUILD +++ b/main/flashrom/APKBUILD @@ -1,8 +1,8 @@ # Contributor: Francesco Colista <fcolista@alpinelinux.org> # Maintainer: Nathan Angelacos <nangel@alpinelinux.org> pkgname=flashrom -pkgver=1.0 -pkgrel=3 +pkgver=1.1 +pkgrel=0 pkgdesc="A utility for identifying, reading, writing, verifying and erasing flash chips" url="https://www.flashrom.org/Flashrom" arch="all" @@ -12,13 +12,11 @@ makedepends="pciutils-dev libusb-compat-dev linux-headers" subpackages="$pkgname-doc" install="$pkgname.post-install" options="!check" # no test suite -source="https://download.flashrom.org/releases/flashrom-$pkgver.tar.bz2 - sst26.patch +source="https://download.flashrom.org/releases/flashrom-v${pkgver}.tar.bz2 musl-ffs.patch - libusb_set_option.patch " -builddir="$srcdir"/$pkgname-$pkgver +builddir="$srcdir"/$pkgname-v${pkgver} build() { cd "$builddir" @@ -30,7 +28,5 @@ package() { make PREFIX="$pkgdir/usr/" install } -sha512sums="355ac1322421b2fd699deb0ceff8555c9e89062e639de674c62f1fdacad9ed9351fe89e4c14e22f07a6d4e2e2f070fd4d2ed1cd347a20069f2505966b5c29e0e flashrom-1.0.tar.bz2 -545dfadf8d0c53c9b0116af29eb4454b09ec74b2e906258aa7fcedb472957941a405273fae8ccd1e2f2ec5a848780a8191fcde80e2714573c76b3cd35ab279fa sst26.patch -371131e37ee0f2ce31b5dd264707b91817a2f0a3654943e6b3430df862d4bb64f27117c1c94276cb447f5b45f1771b9997f9c96423d68c6dd4565c1e1f442a5e musl-ffs.patch -1b50b760cfc5fc272b8fd87672308737641cca99cbdb79b73005e5d5ac37f371639990eb9573e31b23ccf63d364d044e16d9db6f6149203843b1aed91d69f3ab libusb_set_option.patch" +sha512sums="8cb75a7223490fa9dbd65a85d24a87beab68ee03120891a3d8ebf4e8bc3d2a2ee640e254ccff657eaf5175e6c2477288337369fa1b1dac110a0903b0c95c1e56 flashrom-v1.1.tar.bz2 +371131e37ee0f2ce31b5dd264707b91817a2f0a3654943e6b3430df862d4bb64f27117c1c94276cb447f5b45f1771b9997f9c96423d68c6dd4565c1e1f442a5e musl-ffs.patch" diff --git a/main/flashrom/libusb_set_option.patch b/main/flashrom/libusb_set_option.patch deleted file mode 100644 index 8e457fa9765..00000000000 --- a/main/flashrom/libusb_set_option.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/ch341a_spi.c -+++ b/ch341a_spi.c -@@ -444,7 +444,7 @@ - return -1; - } - -- libusb_set_debug(NULL, 3); // Enable information, warning and error messages (only). -+ libusb_set_option(NULL, LIBUSB_OPTION_LOG_LEVEL, LIBUSB_LOG_LEVEL_INFO); // Enable information, warning and error messages (only). - - uint16_t vid = devs_ch341a_spi[0].vendor_id; - uint16_t pid = devs_ch341a_spi[0].device_id; diff --git a/main/flashrom/sst26.patch b/main/flashrom/sst26.patch deleted file mode 100644 index 46a01529f79..00000000000 --- a/main/flashrom/sst26.patch +++ /dev/null @@ -1,198 +0,0 @@ ---- flashrom-0.9.9.orig/chipdrivers.h -+++ flashrom-0.9.9/chipdrivers.h -@@ -103,6 +103,7 @@ - int spi_prettyprint_status_register_sst25(struct flashctx *flash); - int spi_prettyprint_status_register_sst25vf016(struct flashctx *flash); - int spi_prettyprint_status_register_sst25vf040b(struct flashctx *flash); -+int spi_disable_blockprotect_sst26_global_unprotect(struct flashctx *flash); - - /* sfdp.c */ - int probe_spi_sfdp(struct flashctx *flash); ---- flashrom-0.9.9.orig/flashchips.c -+++ flashrom-0.9.9/flashchips.c -@@ -12564,6 +12564,120 @@ - - { - .vendor = "SST", -+ .name = "SST26VF016B(A)", -+ .bustype = BUS_SPI, -+ .manufacture_id = SST_ID, -+ .model_id = SST_SST26VF016B, -+ .total_size = 2048, -+ .page_size = 256, -+ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, -+ .tested = TEST_OK_PREW, -+ .probe = probe_spi_rdid, -+ .probe_timing = TIMING_ZERO, -+ .block_erasers = -+ { -+ { -+ .eraseblocks = { {4 * 1024, 512} }, -+ .block_erase = spi_block_erase_20, -+ }, { -+ .eraseblocks = { -+ {8 * 1024, 4}, -+ {32 * 1024, 1}, -+ {64 * 1024, 30}, -+ {32 * 1024, 1}, -+ {8 * 1024, 4}, -+ }, -+ .block_erase = spi_block_erase_d8, -+ }, { -+ .eraseblocks = { {2 * 1024 * 1024, 1} }, -+ .block_erase = spi_block_erase_c7, -+ }, -+ }, -+ .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ -+ .unlock = spi_disable_blockprotect_sst26_global_unprotect, -+ .write = spi_chip_write_256, /* Multi I/O supported */ -+ .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ -+ .voltage = {2700, 3600}, -+ }, -+ { -+ .vendor = "SST", -+ .name = "SST26VF032B(A)", -+ .bustype = BUS_SPI, -+ .manufacture_id = SST_ID, -+ .model_id = SST_SST26VF032B, -+ .total_size = 4096, -+ .page_size = 256, -+ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, -+ .tested = TEST_UNTESTED, -+ .probe = probe_spi_rdid, -+ .probe_timing = TIMING_ZERO, -+ .block_erasers = -+ { -+ { -+ .eraseblocks = { {4 * 1024, 1024} }, -+ .block_erase = spi_block_erase_20, -+ }, { -+ .eraseblocks = { -+ {8 * 1024, 4}, -+ {32 * 1024, 1}, -+ {64 * 1024, 62}, -+ {32 * 1024, 1}, -+ {8 * 1024, 4}, -+ }, -+ .block_erase = spi_block_erase_d8, -+ }, { -+ .eraseblocks = { {4 * 1024 * 1024, 1} }, -+ .block_erase = spi_block_erase_c7, -+ }, -+ }, -+ .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ -+ .unlock = spi_disable_blockprotect_sst26_global_unprotect, -+ .write = spi_chip_write_256, /* Multi I/O supported */ -+ .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ -+ .voltage = {2700, 3600}, -+ }, -+ -+ -+ { -+ .vendor = "SST", -+ .name = "SST26VF064B(A)", -+ .bustype = BUS_SPI, -+ .manufacture_id = SST_ID, -+ .model_id = SST_SST26VF064B, -+ .total_size = 8192, -+ .page_size = 256, -+ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP, -+ .tested = TEST_OK_PREW, -+ .probe = probe_spi_rdid, -+ .probe_timing = TIMING_ZERO, -+ .block_erasers = -+ { -+ { -+ .eraseblocks = { {4 * 1024, 2048} }, -+ .block_erase = spi_block_erase_20, -+ }, { -+ .eraseblocks = { -+ {8 * 1024, 4}, -+ {32 * 1024, 1}, -+ {64 * 1024, 126}, -+ {32 * 1024, 1}, -+ {8 * 1024, 4}, -+ }, -+ .block_erase = spi_block_erase_d8, -+ }, { -+ .eraseblocks = { {8 * 1024 * 1024, 1} }, -+ .block_erase = spi_block_erase_c7, -+ }, -+ }, -+ .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */ -+ .unlock = spi_disable_blockprotect_sst26_global_unprotect, -+ .write = spi_chip_write_256, /* Multi I/O supported */ -+ .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */ -+ .voltage = {2700, 3600}, -+ }, -+ -+ { -+ .vendor = "SST", - .name = "SST25WF512", - .bustype = BUS_SPI, - .manufacture_id = SST_ID, ---- flashrom-0.9.9.orig/flashchips.h -+++ flashrom-0.9.9/flashchips.h -@@ -697,6 +697,8 @@ - #define SST_SST25VF064C 0x254B - #define SST_SST26VF016 0x2601 - #define SST_SST26VF032 0x2602 -+#define SST_SST26VF016B 0x2641 -+#define SST_SST26VF032B 0x2642 - #define SST_SST26VF064B 0x2643 - #define SST_SST27SF512 0xA4 - #define SST_SST27SF010 0xA5 ---- flashrom-0.9.9.orig/linux_spi.c -+++ flashrom-0.9.9/linux_spi.c -@@ -141,6 +141,16 @@ - return 0; - } - -+static void print_hex(const char *msg, const void *buf, size_t len) -+{ -+ size_t i; -+ msg_pspew("%s:\n", msg); -+ for (i = 0; i < len; i++) { -+ msg_pspew(" %02x", ((uint8_t *)buf)[i]); -+ } -+ msg_pspew("\n"); -+} -+ - static int linux_spi_send_command(struct flashctx *flash, unsigned int writecnt, - unsigned int readcnt, - const unsigned char *txbuf, -@@ -172,10 +182,12 @@ - else - iocontrol_code = SPI_IOC_MESSAGE(2); - -+ print_hex("Write", txbuf, writecnt); - if (ioctl(fd, iocontrol_code, msg) == -1) { - msg_cerr("%s: ioctl: %s\n", __func__, strerror(errno)); - return -1; - } -+ if (readcnt) print_hex("Got", rxbuf, readcnt); - return 0; - } - ---- flashrom-0.9.9.orig/spi25_statusreg.c -+++ flashrom-0.9.9/spi25_statusreg.c -@@ -196,6 +196,19 @@ - return spi_disable_blockprotect_generic(flash, 0x3C, 0, 0, 0xFF); - } - -+int spi_disable_blockprotect_sst26_global_unprotect(struct flashctx *flash) -+{ -+ int result = spi_write_enable(flash); -+ if (result) -+ return result; -+ -+ static const unsigned char cmd[] = { 0x98 }; /* ULBPR */ -+ result = spi_send_command(flash, sizeof(cmd), 0, cmd, NULL); -+ if (result) -+ msg_cerr("ULBPR failed\n"); -+ return result; -+} -+ - /* A common block protection disable that tries to unset the status register bits masked by 0x0C (BP0-1) and - * protected/locked by bit #7. Useful when bits 4-5 may be non-0). */ - int spi_disable_blockprotect_bp1_srwd(struct flashctx *flash) |