linux-firmware history walker: 54 revisions across mt79xx wm/wa/patch (+wo sha-only), hidden build-string recovery per revision
This commit is contained in:
parent
c167f893b5
commit
7d1fd9d314
2 changed files with 160 additions and 0 deletions
54
dataset/history.jsonl
Normal file
54
dataset/history.jsonl
Normal file
|
|
@ -0,0 +1,54 @@
|
||||||
|
{"file": "mediatek/mt7915_rom_patch.bin", "commit": "412f95a77aac", "date": "2020-05-17", "subject": "linux-firmware: add firmware for MT7915E", "repo_head": "a860da15fd41", "sha256": "1ece91c2b5cc64d9", "size": 144304, "platform": "ALPS", "patch_date": "20200514112320a\n", "hw_sw_ver": "0x8a108a10", "n_section": 2}
|
||||||
|
{"file": "mediatek/mt7915_rom_patch.bin", "commit": "ec88f05fcacc", "date": "2020-09-14", "subject": "mediatek: update MT7915 firmware to 20200819", "repo_head": "a860da15fd41", "sha256": "aaca883e892ae181", "size": 144448, "platform": "ALPS", "patch_date": "20200819112315a\n", "hw_sw_ver": "0x8a108a10", "n_section": 2}
|
||||||
|
{"file": "mediatek/mt7915_rom_patch.bin", "commit": "572c3d863fbd", "date": "2021-06-09", "subject": "mediatek: update MT7915 firmware to 20201105", "repo_head": "a860da15fd41", "sha256": "bf2ea12dd1219c26", "size": 144528, "platform": "ALPS", "patch_date": "20201105222230a\n", "hw_sw_ver": "0x8a108a10", "n_section": 2}
|
||||||
|
{"file": "mediatek/mt7915_rom_patch.bin", "commit": "13dca280f760", "date": "2022-01-11", "subject": "linux-firmware: update firmware for MT7915", "repo_head": "a860da15fd41", "sha256": "a1e440c5f4af5d6d", "size": 144544, "platform": "ALPS", "patch_date": "20211222184017a\n", "hw_sw_ver": "0x8a108a10", "n_section": 2}
|
||||||
|
{"file": "mediatek/mt7915_rom_patch.bin", "commit": "685ea4d59f01", "date": "2022-11-23", "subject": "linux-firmware: update firmware for MT7915", "repo_head": "a860da15fd41", "sha256": "89fae20235b31400", "size": 144544, "platform": "ALPS", "patch_date": "20220929104113a\n", "hw_sw_ver": "0x8a108a10", "n_section": 2}
|
||||||
|
{"file": "mediatek/mt7915_wa.bin", "commit": "412f95a77aac", "date": "2020-05-17", "subject": "linux-firmware: add firmware for MT7915E", "repo_head": "a860da15fd41", "sha256": "6070eaa743061c68", "size": 110848, "chip_id": 0, "eco": 1, "n_region": 3, "trailer_fw_ver": "____000000", "trailer_date": "20200514112155\u0000", "hidden": null, "region_addrs": ["0x10200000", "0x10300000", "0xe0000000"], "region_feats": ["0x00", "0x00", "0x00"], "gap": 36}
|
||||||
|
{"file": "mediatek/mt7915_wa.bin", "commit": "ec88f05fcacc", "date": "2020-09-14", "subject": "mediatek: update MT7915 firmware to 20200819", "repo_head": "a860da15fd41", "sha256": "874b29af10ab56fc", "size": 116544, "chip_id": 0, "eco": 1, "n_region": 3, "trailer_fw_ver": "DEV_000000", "trailer_date": "20200819112407\u0000", "hidden": null, "region_addrs": ["0x10200000", "0x10300000", "0xe0000000"], "region_feats": ["0x00", "0x00", "0x00"], "gap": 36}
|
||||||
|
{"file": "mediatek/mt7915_wa.bin", "commit": "572c3d863fbd", "date": "2021-06-09", "subject": "mediatek: update MT7915 firmware to 20201105", "repo_head": "a860da15fd41", "sha256": "c12287b1a047f4de", "size": 116864, "chip_id": 0, "eco": 1, "n_region": 3, "trailer_fw_ver": "DEV_000000", "trailer_date": "20201105222323\u0000", "hidden": null, "region_addrs": ["0x10200000", "0x10300000", "0xe0000000"], "region_feats": ["0x00", "0x00", "0x00"], "gap": 36}
|
||||||
|
{"file": "mediatek/mt7915_wa.bin", "commit": "13dca280f760", "date": "2022-01-11", "subject": "linux-firmware: update firmware for MT7915", "repo_head": "a860da15fd41", "sha256": "47edb38948671ed8", "size": 116368, "chip_id": 0, "eco": 1, "n_region": 3, "trailer_fw_ver": "DEV_000000", "trailer_date": "20211222184111\u0000", "hidden": null, "region_addrs": ["0x10200000", "0x10300000", "0xe0000000"], "region_feats": ["0x00", "0x00", "0x00"], "gap": 36}
|
||||||
|
{"file": "mediatek/mt7915_wa.bin", "commit": "685ea4d59f01", "date": "2022-11-23", "subject": "linux-firmware: update firmware for MT7915", "repo_head": "a860da15fd41", "sha256": "c28a3279fcdbd22f", "size": 116160, "chip_id": 0, "eco": 1, "n_region": 3, "trailer_fw_ver": "DEV_000000", "trailer_date": "20220929104205\u0000", "hidden": null, "region_addrs": ["0x10200000", "0x10300000", "0xe0000000"], "region_feats": ["0x00", "0x00", "0x00"], "gap": 36}
|
||||||
|
{"file": "mediatek/mt7915_wm.bin", "commit": "412f95a77aac", "date": "2020-05-17", "subject": "linux-firmware: add firmware for MT7915E", "repo_head": "a860da15fd41", "sha256": "153e4088d095e96f", "size": 1260896, "chip_id": 11, "eco": 1, "n_region": 7, "trailer_fw_ver": "____000000", "trailer_date": "20200514111509\u0000", "hidden": null, "region_addrs": ["0x0021fc00", "0x0031dc00", "0x00417400", "0xe0022800", "0xe0080000", "0x0023a400", "0x00400000"], "region_feats": ["0x20", "0x00", "0x00", "0x00", "0x00", "0x00", "0x00"], "gap": 36}
|
||||||
|
{"file": "mediatek/mt7915_wm.bin", "commit": "ec88f05fcacc", "date": "2020-09-14", "subject": "mediatek: update MT7915 firmware to 20200819", "repo_head": "a860da15fd41", "sha256": "cfab37096b4883ff", "size": 1260964, "chip_id": 11, "eco": 1, "n_region": 7, "trailer_fw_ver": "____000000", "trailer_date": "20200819112349\u0000", "hidden": "t-neptune-main-mt7915-1953-MT7915D_1953_MT7621-20200819111902", "region_addrs": ["0x0021fc00", "0x0031dc00", "0x00417400", "0xe0022800", "0xe0082c00", "0x0023ac00", "0x00400000"], "region_feats": ["0x20", "0x00", "0x00", "0x00", "0x00", "0x00", "0x00"], "gap": 104}
|
||||||
|
{"file": "mediatek/mt7915_wm.bin", "commit": "572c3d863fbd", "date": "2021-06-09", "subject": "mediatek: update MT7915 firmware to 20201105", "repo_head": "a860da15fd41", "sha256": "996a51903f2cc6f3", "size": 1260964, "chip_id": 11, "eco": 1, "n_region": 7, "trailer_fw_ver": "____000000", "trailer_date": "20201105222304\u0000", "hidden": "t-neptune-main-mt7915-1953-MT7915D_1953_MT7621-20201105221902", "region_addrs": ["0x0021fc00", "0x0031dc00", "0x00417400", "0xe0022800", "0xe0086e00", "0x0023ac00", "0x00400000"], "region_feats": ["0x20", "0x00", "0x00", "0x00", "0x00", "0x00", "0x00"], "gap": 104}
|
||||||
|
{"file": "mediatek/mt7915_wm.bin", "commit": "13dca280f760", "date": "2022-01-11", "subject": "linux-firmware: update firmware for MT7915", "repo_head": "a860da15fd41", "sha256": "5687715798f4d53b", "size": 1260960, "chip_id": 11, "eco": 1, "n_region": 7, "trailer_fw_ver": "____000000", "trailer_date": "20211222184052\u0000", "hidden": "t-neptune-mp-mt7915-2045-MT7915_MP_7_4_2045-20211222183801", "region_addrs": ["0x0021fc00", "0x0031dc00", "0x00417400", "0xe0022800", "0xe0086e00", "0x0023ac00", "0x00400000"], "region_feats": ["0x20", "0x00", "0x00", "0x00", "0x00", "0x00", "0x00"], "gap": 100}
|
||||||
|
{"file": "mediatek/mt7915_wm.bin", "commit": "685ea4d59f01", "date": "2022-11-23", "subject": "linux-firmware: update firmware for MT7915", "repo_head": "a860da15fd41", "sha256": "93ada741ec11b8a8", "size": 1260960, "chip_id": 11, "eco": 1, "n_region": 7, "trailer_fw_ver": "____000000", "trailer_date": "20220929104145\u0000", "hidden": "t-neptune-mp-mt7915-2045-MT7915_MP_7_4_2045-20220929103802", "region_addrs": ["0x0021fc00", "0x0031dc00", "0x00417400", "0xe0022800", "0xe0086e00", "0x0023ac00", "0x00400000"], "region_feats": ["0x20", "0x00", "0x00", "0x00", "0x00", "0x00", "0x00"], "gap": 100}
|
||||||
|
{"file": "mediatek/mt7916_rom_patch.bin", "commit": "ea4d08f6b0e4", "date": "2022-01-07", "subject": "linux-firmware: add firmware for MT7916", "repo_head": "a860da15fd41", "sha256": "e275ae129d035535", "size": 8288, "platform": "ALPS", "patch_date": "20211230135620a\n", "hw_sw_ver": "0x8a108a10", "n_section": 1}
|
||||||
|
{"file": "mediatek/mt7916_rom_patch.bin", "commit": "cdf9499cf670", "date": "2022-11-23", "subject": "linux-firmware: update firmware for MT7916", "repo_head": "a860da15fd41", "sha256": "220e626d775a7d6b", "size": 8672, "platform": "ALPS", "patch_date": "20221031154652a\n", "hw_sw_ver": "0x8a108a10", "n_section": 1}
|
||||||
|
{"file": "mediatek/mt7916_rom_patch.bin", "commit": "5d0d24b3b420", "date": "2023-04-06", "subject": "linux-firmware: update firmware for MT7916", "repo_head": "a860da15fd41", "sha256": "7643caa31f405a57", "size": 8672, "platform": "ALPS", "patch_date": "20230202144915a\n", "hw_sw_ver": "0x8a108a10", "n_section": 1}
|
||||||
|
{"file": "mediatek/mt7916_rom_patch.bin", "commit": "47e03ef409e0", "date": "2025-06-13", "subject": "linux-firmware: update firmware for MT7916", "repo_head": "a860da15fd41", "sha256": "d74eda13fc1dbd49", "size": 8800, "platform": "ALPS", "patch_date": "20240823172725a\n", "hw_sw_ver": "0x8a108a10", "n_section": 1}
|
||||||
|
{"file": "mediatek/mt7916_wa.bin", "commit": "ea4d08f6b0e4", "date": "2022-01-07", "subject": "linux-firmware: add firmware for MT7916", "repo_head": "a860da15fd41", "sha256": "2a6f3435072e9e0e", "size": 464848, "chip_id": 0, "eco": 0, "n_region": 3, "trailer_fw_ver": "DEV_000000", "trailer_date": "20211230135808\u0000", "hidden": null, "region_addrs": ["0x10200000", "0x10300000", "0xe0000000"], "region_feats": ["0x00", "0x00", "0x00"], "gap": 36}
|
||||||
|
{"file": "mediatek/mt7916_wa.bin", "commit": "cdf9499cf670", "date": "2022-11-23", "subject": "linux-firmware: update firmware for MT7916", "repo_head": "a860da15fd41", "sha256": "34c376dd0ed8e56d", "size": 507856, "chip_id": 0, "eco": 0, "n_region": 3, "trailer_fw_ver": "DEV_000000", "trailer_date": "20221031154757\u0000", "hidden": null, "region_addrs": ["0x10200000", "0x10300000", "0xe0000000"], "region_feats": ["0x00", "0x00", "0x00"], "gap": 36}
|
||||||
|
{"file": "mediatek/mt7916_wa.bin", "commit": "5d0d24b3b420", "date": "2023-04-06", "subject": "linux-firmware: update firmware for MT7916", "repo_head": "a860da15fd41", "sha256": "fcfd4115e06db6dc", "size": 507856, "chip_id": 0, "eco": 0, "n_region": 3, "trailer_fw_ver": "DEV_000000", "trailer_date": "20230202143332\u0000", "hidden": null, "region_addrs": ["0x10200000", "0x10300000", "0xe0000000"], "region_feats": ["0x00", "0x00", "0x00"], "gap": 36}
|
||||||
|
{"file": "mediatek/mt7916_wa.bin", "commit": "47e03ef409e0", "date": "2025-06-13", "subject": "linux-firmware: update firmware for MT7916", "repo_head": "a860da15fd41", "sha256": "abeeb31611d3faed", "size": 504032, "chip_id": 0, "eco": 0, "n_region": 3, "trailer_fw_ver": "DEV_000000", "trailer_date": "20240823172837\u0000", "hidden": null, "region_addrs": ["0x10200000", "0x10300000", "0xe0000000"], "region_feats": ["0x00", "0x00", "0x00"], "gap": 36}
|
||||||
|
{"file": "mediatek/mt7916_wm.bin", "commit": "ea4d08f6b0e4", "date": "2022-01-07", "subject": "linux-firmware: add firmware for MT7916", "repo_head": "a860da15fd41", "sha256": "a2ea286839b497b9", "size": 1634080, "chip_id": 19, "eco": 0, "n_region": 9, "trailer_fw_ver": "____000000", "trailer_date": "20211230135720\u0000", "hidden": "t-neptune-main-2111-7916-imp-MT7916_E1_ASIC_ROM_RAM_REBB_IMP-20211230134601", "region_addrs": ["0x0220a800", "0x0231dc00", "0x00414800", "0xe0045800", "0xe00af400", "0x02229800", "0x00411600", "0xe001c000", "0xe0007800"], "region_feats": ["0x20", "0x00", "0x00", "0x00", "0x00", "0x00", "0x00", "0x00", "0x00"], "gap": 116}
|
||||||
|
{"file": "mediatek/mt7916_wm.bin", "commit": "cdf9499cf670", "date": "2022-11-23", "subject": "linux-firmware: update firmware for MT7916", "repo_head": "a860da15fd41", "sha256": "3af39d1154e5fc2e", "size": 1710384, "chip_id": 19, "eco": 0, "n_region": 9, "trailer_fw_ver": "____000000", "trailer_date": "20221031154713\u0000", "hidden": "t-neptune-main-2111-7916-imp-MT7916_E1_ASIC_ROM_RAM_REBB_IMP-20221031154602", "region_addrs": ["0x0220a800", "0x0231dc00", "0x00414800", "0xe0048800", "0xe00bb000", "0x02229800", "0x00411600", "0xe001c000", "0xe0006800"], "region_feats": ["0x20", "0x00", "0x00", "0x00", "0x00", "0x00", "0x00", "0x00", "0x00"], "gap": 116}
|
||||||
|
{"file": "mediatek/mt7916_wm.bin", "commit": "5d0d24b3b420", "date": "2023-04-06", "subject": "linux-firmware: update firmware for MT7916", "repo_head": "a860da15fd41", "sha256": "583dea8fdf341eb9", "size": 1710304, "chip_id": 19, "eco": 0, "n_region": 9, "trailer_fw_ver": "____000000", "trailer_date": "20230202145005\u0000", "hidden": null, "region_addrs": ["0x0220a800", "0x0231dc00", "0x00414800", "0xe0048800", "0xe00bb000", "0x02229800", "0x00411600", "0xe001c000", "0xe0006800"], "region_feats": ["0x20", "0x00", "0x00", "0x00", "0x00", "0x00", "0x00", "0x00", "0x00"], "gap": 36}
|
||||||
|
{"file": "mediatek/mt7916_wm.bin", "commit": "47e03ef409e0", "date": "2025-06-13", "subject": "linux-firmware: update firmware for MT7916", "repo_head": "a860da15fd41", "sha256": "64d86cfa4f00f945", "size": 1767568, "chip_id": 19, "eco": 0, "n_region": 9, "trailer_fw_ver": "____000000", "trailer_date": "20240823172741\u0000", "hidden": "t-neptune-main-mt7915-1953-MT7916_MP2111_IMP-20240823170147", "region_addrs": ["0x0220a800", "0x0231dc00", "0x00414800", "0xe004a400", "0xe00bf400", "0x02229800", "0x00411600", "0xe001d000", "0xe0006800"], "region_feats": ["0x20", "0x00", "0x00", "0x00", "0x00", "0x00", "0x00", "0x00", "0x00"], "gap": 100}
|
||||||
|
{"file": "mediatek/mt7981_rom_patch.bin", "commit": "45530bcb3c62", "date": "2023-04-18", "subject": "linux-firmware: add firmware for MT7981", "repo_head": "a860da15fd41", "sha256": "00c9319c62518518", "size": 8736, "platform": "ALPS", "patch_date": "20221208201745a\n", "hw_sw_ver": "0x8a108a10", "n_section": 1}
|
||||||
|
{"file": "mediatek/mt7981_rom_patch.bin", "commit": "522126fd7526", "date": "2025-06-13", "subject": "linux-firmware: update firmware for MT7981", "repo_head": "a860da15fd41", "sha256": "f6338f757dfd1f6c", "size": 9824, "platform": "ALPS", "patch_date": "20240823161240a\n", "hw_sw_ver": "0x8a108a10", "n_section": 1}
|
||||||
|
{"file": "mediatek/mt7981_rom_patch.bin", "commit": "17485a680e53", "date": "2026-06-19", "subject": "linux-firmware: update firmware for MT7981", "repo_head": "a860da15fd41", "sha256": "1cd38eaa68820ee3", "size": 9824, "platform": "ALPS", "patch_date": "20260515121445a\n", "hw_sw_ver": "0x8a108a10", "n_section": 1}
|
||||||
|
{"file": "mediatek/mt7981_wa.bin", "commit": "45530bcb3c62", "date": "2023-04-18", "subject": "linux-firmware: add firmware for MT7981", "repo_head": "a860da15fd41", "sha256": "36914ce16927be2a", "size": 492336, "chip_id": 0, "eco": 0, "n_region": 3, "trailer_fw_ver": "DEV_000000", "trailer_date": "20221208202048\u0000", "hidden": null, "region_addrs": ["0x10200000", "0x10300000", "0xe0000000"], "region_feats": ["0x00", "0x00", "0x00"], "gap": 36}
|
||||||
|
{"file": "mediatek/mt7981_wa.bin", "commit": "522126fd7526", "date": "2025-06-13", "subject": "linux-firmware: update firmware for MT7981", "repo_head": "a860da15fd41", "sha256": "96b35d4bf944f7e2", "size": 494208, "chip_id": 0, "eco": 0, "n_region": 3, "trailer_fw_ver": "DEV_000000", "trailer_date": "20240823161841\u0000", "hidden": null, "region_addrs": ["0x10200000", "0x10300000", "0xe0000000"], "region_feats": ["0x00", "0x00", "0x00"], "gap": 36}
|
||||||
|
{"file": "mediatek/mt7981_wa.bin", "commit": "17485a680e53", "date": "2026-06-19", "subject": "linux-firmware: update firmware for MT7981", "repo_head": "a860da15fd41", "sha256": "5b838a854838b978", "size": 494256, "chip_id": 0, "eco": 0, "n_region": 3, "trailer_fw_ver": "DEV_000000", "trailer_date": "20260515121859\u0000", "hidden": null, "region_addrs": ["0x10200000", "0x10300000", "0xe0000000"], "region_feats": ["0x00", "0x00", "0x00"], "gap": 36}
|
||||||
|
{"file": "mediatek/mt7981_wm.bin", "commit": "45530bcb3c62", "date": "2023-04-18", "subject": "linux-firmware: add firmware for MT7981", "repo_head": "a860da15fd41", "sha256": "a31abbf77bab86fe", "size": 2052592, "chip_id": 20, "eco": 0, "n_region": 11, "trailer_fw_ver": "____000000", "trailer_date": "20221208201806\u0000", "hidden": "t-neptune-main-mt7915-1953-MT7981_MP2111_3_0-20221208201701", "region_addrs": ["0x0220a800", "0x0231dc00", "0x00414800", "0xe003b000", "0xe009c400", "0x02229800", "0x00411600", "0xf0025800", "0xf0000000", "0xf0064000", "0xf0096000"], "region_feats": ["0x20", "0x00", "0x00", "0x00", "0x00", "0x00", "0x00", "0x80", "0x80", "0x80", "0x80"], "gap": 100}
|
||||||
|
{"file": "mediatek/mt7981_wm.bin", "commit": "522126fd7526", "date": "2025-06-13", "subject": "linux-firmware: update firmware for MT7981", "repo_head": "a860da15fd41", "sha256": "98dd939dfeedd124", "size": 2054528, "chip_id": 20, "eco": 0, "n_region": 11, "trailer_fw_ver": "____000000", "trailer_date": "20240823161304\u0000", "hidden": "t-neptune-main-mt7915-1953-MT7981_MP2111_IMP-20240823161204", "region_addrs": ["0x0220a800", "0x0231dc00", "0x00414800", "0xe003b000", "0xe009c400", "0x02229800", "0x00411600", "0xf0025800", "0xf0000000", "0xf0064000", "0xf0096000"], "region_feats": ["0x20", "0x00", "0x00", "0x00", "0x00", "0x00", "0x00", "0x80", "0x80", "0x80", "0x80"], "gap": 100}
|
||||||
|
{"file": "mediatek/mt7981_wm.bin", "commit": "17485a680e53", "date": "2026-06-19", "subject": "linux-firmware: update firmware for MT7981", "repo_head": "a860da15fd41", "sha256": "e09cecd2931d537c", "size": 2054688, "chip_id": 20, "eco": 0, "n_region": 11, "trailer_fw_ver": "____000000", "trailer_date": "20260515121504\u0000", "hidden": "t-neptune-main-mt7915-1953-MT7981_MP2111_IMP-20260515121129", "region_addrs": ["0x0220a800", "0x0231dc00", "0x00414800", "0xe003b000", "0xe009c400", "0x02229800", "0x00411600", "0xf0025800", "0xf0000000", "0xf0064000", "0xf0096000"], "region_feats": ["0x20", "0x00", "0x00", "0x00", "0x00", "0x00", "0x00", "0x80", "0x80", "0x80", "0x80"], "gap": 100}
|
||||||
|
{"file": "mediatek/mt7981_wo.bin", "commit": "bcbbf6bf8676", "date": "2023-04-27", "subject": "linux-firmware: update firmware for MT7981", "repo_head": "a860da15fd41", "sha256": "afedef1fe2ff9205", "size": 2427600, "format": "wed-wo (unsupported parser)"}
|
||||||
|
{"file": "mediatek/mt7981_wo.bin", "commit": "522126fd7526", "date": "2025-06-13", "subject": "linux-firmware: update firmware for MT7981", "repo_head": "a860da15fd41", "sha256": "2d69d4cb56d48087", "size": 2454304, "format": "wed-wo (unsupported parser)"}
|
||||||
|
{"file": "mediatek/mt7986_rom_patch.bin", "commit": "f011ccb490f9", "date": "2022-03-04", "subject": "linux-firmware: add firmware for MT7986", "repo_head": "a860da15fd41", "sha256": "5fc3f968c1fa6cb5", "size": 11744, "platform": "ALPS", "patch_date": "20220113162543a\n", "hw_sw_ver": "0x8a108a10", "n_section": 1}
|
||||||
|
{"file": "mediatek/mt7986_rom_patch.bin", "commit": "daff40492bd0", "date": "2022-11-16", "subject": "linux-firmware: update firmware for MT7986", "repo_head": "a860da15fd41", "sha256": "7c55a6966433cb69", "size": 12768, "platform": "ALPS", "patch_date": "20221012174648a\n", "hw_sw_ver": "0x8a108a10", "n_section": 1}
|
||||||
|
{"file": "mediatek/mt7986_rom_patch.bin", "commit": "2fe0e63bdc7b", "date": "2025-06-13", "subject": "linux-firmware: update firmware for MT7986", "repo_head": "a860da15fd41", "sha256": "9dba42e316c8fcfe", "size": 13216, "platform": "ALPS", "patch_date": "20240823160656a\n", "hw_sw_ver": "0x8a108a10", "n_section": 1}
|
||||||
|
{"file": "mediatek/mt7986_rom_patch.bin", "commit": "ddaa2620f48f", "date": "2026-06-19", "subject": "linux-firmware: update firmware for MT7986", "repo_head": "a860da15fd41", "sha256": "d8ebdd936384c052", "size": 13216, "platform": "ALPS", "patch_date": "20260515120441a\n", "hw_sw_ver": "0x8a108a10", "n_section": 1}
|
||||||
|
{"file": "mediatek/mt7986_wa.bin", "commit": "f011ccb490f9", "date": "2022-03-04", "subject": "linux-firmware: add firmware for MT7986", "repo_head": "a860da15fd41", "sha256": "99cc6350f2aee699", "size": 505008, "chip_id": 0, "eco": 0, "n_region": 3, "trailer_fw_ver": "DEV_000000", "trailer_date": "20220113163034\u0000", "hidden": null, "region_addrs": ["0x10200000", "0x10300000", "0xe0000000"], "region_feats": ["0x00", "0x00", "0x00"], "gap": 36}
|
||||||
|
{"file": "mediatek/mt7986_wa.bin", "commit": "daff40492bd0", "date": "2022-11-16", "subject": "linux-firmware: update firmware for MT7986", "repo_head": "a860da15fd41", "sha256": "0bc5520abf3f5f93", "size": 518784, "chip_id": 0, "eco": 0, "n_region": 3, "trailer_fw_ver": "DEV_000000", "trailer_date": "20221012174937\u0000", "hidden": null, "region_addrs": ["0x10200000", "0x10300000", "0xe0000000"], "region_feats": ["0x00", "0x00", "0x00"], "gap": 36}
|
||||||
|
{"file": "mediatek/mt7986_wa.bin", "commit": "2fe0e63bdc7b", "date": "2025-06-13", "subject": "linux-firmware: update firmware for MT7986", "repo_head": "a860da15fd41", "sha256": "f8ef9893fe422d24", "size": 522416, "chip_id": 0, "eco": 0, "n_region": 3, "trailer_fw_ver": "DEV_000000", "trailer_date": "20240823160840\u0000", "hidden": null, "region_addrs": ["0x10200000", "0x10300000", "0xe0000000"], "region_feats": ["0x00", "0x00", "0x00"], "gap": 36}
|
||||||
|
{"file": "mediatek/mt7986_wa.bin", "commit": "ddaa2620f48f", "date": "2026-06-19", "subject": "linux-firmware: update firmware for MT7986", "repo_head": "a860da15fd41", "sha256": "e76e96e9959ee501", "size": 522368, "chip_id": 0, "eco": 0, "n_region": 3, "trailer_fw_ver": "DEV_000000", "trailer_date": "20260515120626\u0000", "hidden": null, "region_addrs": ["0x10200000", "0x10300000", "0xe0000000"], "region_feats": ["0x00", "0x00", "0x00"], "gap": 36}
|
||||||
|
{"file": "mediatek/mt7986_wm.bin", "commit": "f011ccb490f9", "date": "2022-03-04", "subject": "linux-firmware: add firmware for MT7986", "repo_head": "a860da15fd41", "sha256": "4822e0dbdc513580", "size": 2221772, "chip_id": 15, "eco": 0, "n_region": 11, "trailer_fw_ver": "____000000", "trailer_date": "20220113162641\u0000", "hidden": "t-neptune-mp-7986e1-2111-1.0-MT7986_E1_ASIC_ROM_RAM_REBB-20220113162501", "region_addrs": ["0x0220a800", "0x0231dc00", "0x00414800", "0xe0007800", "0xe007f800", "0x02229800", "0x00411600", "0xf0023000", "0xf0000000", "0xf0064000", "0xf0096000"], "region_feats": ["0x20", "0x00", "0x00", "0x00", "0x00", "0x00", "0x00", "0x80", "0x80", "0x80", "0x80"], "gap": 112}
|
||||||
|
{"file": "mediatek/mt7986_wm.bin", "commit": "daff40492bd0", "date": "2022-11-16", "subject": "linux-firmware: update firmware for MT7986", "repo_head": "a860da15fd41", "sha256": "24376dc484977f38", "size": 2226016, "chip_id": 15, "eco": 0, "n_region": 11, "trailer_fw_ver": "____000000", "trailer_date": "20221012174725\u0000", "hidden": "t-neptune-main-2111-7986-imp-MT7986_E1_ASIC_ROM_RAM_REBB_IMP-20221012174602", "region_addrs": ["0x0220a800", "0x0231dc00", "0x00414800", "0xe0007800", "0xe007f800", "0x02229800", "0x00411600", "0xf0023000", "0xf0000000", "0xf0064000", "0xf0096000"], "region_feats": ["0x20", "0x00", "0x00", "0x00", "0x00", "0x00", "0x00", "0x80", "0x80", "0x80", "0x80"], "gap": 116}
|
||||||
|
{"file": "mediatek/mt7986_wm.bin", "commit": "2fe0e63bdc7b", "date": "2025-06-13", "subject": "linux-firmware: update firmware for MT7986", "repo_head": "a860da15fd41", "sha256": "5eb175d860cc6f14", "size": 2229264, "chip_id": 15, "eco": 0, "n_region": 11, "trailer_fw_ver": "____000000", "trailer_date": "20240823160721\u0000", "hidden": "t-neptune-main-mt7915-1953-MT7986_MP2111_IMP-20240823160608", "region_addrs": ["0x0220a800", "0x0231dc00", "0x00414800", "0xe0007800", "0xe007f800", "0x02229800", "0x00411600", "0xf0023000", "0xf0000000", "0xf0064000", "0xf0096000"], "region_feats": ["0x20", "0x00", "0x00", "0x00", "0x00", "0x00", "0x00", "0x80", "0x80", "0x80", "0x80"], "gap": 100}
|
||||||
|
{"file": "mediatek/mt7986_wm.bin", "commit": "ddaa2620f48f", "date": "2026-06-19", "subject": "linux-firmware: update firmware for MT7986", "repo_head": "a860da15fd41", "sha256": "86baa5bcb05436c2", "size": 2229264, "chip_id": 15, "eco": 0, "n_region": 11, "trailer_fw_ver": "____000000", "trailer_date": "20260515120459\u0000", "hidden": "t-neptune-main-mt7915-1953-MT7986_MP2111_IMP-20260515120228", "region_addrs": ["0x0220a800", "0x0231dc00", "0x00414800", "0xe0007800", "0xe007f800", "0x02229800", "0x00411600", "0xf0023000", "0xf0000000", "0xf0064000", "0xf0096000"], "region_feats": ["0x20", "0x00", "0x00", "0x00", "0x00", "0x00", "0x00", "0x80", "0x80", "0x80", "0x80"], "gap": 100}
|
||||||
|
{"file": "mediatek/mt7986_wo_0.bin", "commit": "daff40492bd0", "date": "2022-11-16", "subject": "linux-firmware: update firmware for MT7986", "repo_head": "a860da15fd41", "sha256": "baa36c6cead8526f", "size": 2428032, "format": "wed-wo (unsupported parser)"}
|
||||||
|
{"file": "mediatek/mt7986_wo_0.bin", "commit": "2fe0e63bdc7b", "date": "2025-06-13", "subject": "linux-firmware: update firmware for MT7986", "repo_head": "a860da15fd41", "sha256": "4c268aed7c9ebd7f", "size": 2455072, "format": "wed-wo (unsupported parser)"}
|
||||||
|
{"file": "mediatek/mt7986_wo_1.bin", "commit": "daff40492bd0", "date": "2022-11-16", "subject": "linux-firmware: update firmware for MT7986", "repo_head": "a860da15fd41", "sha256": "586c3eb7a4f6d8fa", "size": 2428032, "format": "wed-wo (unsupported parser)"}
|
||||||
|
{"file": "mediatek/mt7986_wo_1.bin", "commit": "2fe0e63bdc7b", "date": "2025-06-13", "subject": "linux-firmware: update firmware for MT7986", "repo_head": "a860da15fd41", "sha256": "b60e9930e507b9e8", "size": 2455072, "format": "wed-wo (unsupported parser)"}
|
||||||
106
tools/fw_history.py
Executable file
106
tools/fw_history.py
Executable file
|
|
@ -0,0 +1,106 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
"""Walk linux-firmware git history for MediaTek Connac2 WiFi blobs.
|
||||||
|
|
||||||
|
For every revision of every mt79*_wm/wa/rom_patch/wo file, extract
|
||||||
|
version-recovering metadata (kernel trailer date, hidden build string,
|
||||||
|
region table) and emit JSONL. Metadata only — no blob bytes are stored.
|
||||||
|
|
||||||
|
Usage: python3 tools/fw_history.py [linux-firmware-repo] -o dataset/history.jsonl
|
||||||
|
"""
|
||||||
|
import argparse
|
||||||
|
import hashlib
|
||||||
|
import json
|
||||||
|
import re
|
||||||
|
import subprocess
|
||||||
|
import struct
|
||||||
|
import sys
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
sys.path.insert(0, str(Path(__file__).resolve().parent))
|
||||||
|
from mtk_fw_extract import PATCH_HDR, REGION, TRAILER # noqa: E402
|
||||||
|
|
||||||
|
TARGET_RE = re.compile(r'^mediatek/mt79(15|16|81|86)_(wm|wa|rom_patch|wo(_[01])?)\.bin$')
|
||||||
|
|
||||||
|
|
||||||
|
def git(repo, *args, binary=False):
|
||||||
|
r = subprocess.run(['git', '-C', str(repo), *args], capture_output=True)
|
||||||
|
if r.returncode:
|
||||||
|
raise RuntimeError(r.stderr.decode())
|
||||||
|
return r.stdout if binary else r.stdout.decode()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def peek_ram(d: bytes) -> dict:
|
||||||
|
t = TRAILER.unpack_from(d, len(d) - TRAILER.size)
|
||||||
|
chip, eco, n = t[0], t[1], t[2]
|
||||||
|
bdate = t[7].decode(errors='replace')
|
||||||
|
table = len(d) - TRAILER.size - n * REGION.size
|
||||||
|
off, addrs, feats = 0, [], []
|
||||||
|
for i in range(n):
|
||||||
|
r = REGION.unpack_from(d, table + i * REGION.size)
|
||||||
|
addrs.append(f'0x{r[4]:08x}')
|
||||||
|
feats.append(f'0x{r[6]:02x}')
|
||||||
|
off += r[5]
|
||||||
|
hidden = None
|
||||||
|
gap = table - off
|
||||||
|
if gap > 0:
|
||||||
|
runs = [x.strip(b'#') for x in re.findall(rb'[\x20-\x7e]{8,}', d[off:table])]
|
||||||
|
runs = [x for x in runs if len(x) >= 8]
|
||||||
|
hidden = runs[0].decode() if runs else None
|
||||||
|
return {'chip_id': chip, 'eco': eco, 'n_region': n,
|
||||||
|
'trailer_fw_ver': t[6].decode(errors='replace'),
|
||||||
|
'trailer_date': bdate, 'hidden': hidden,
|
||||||
|
'region_addrs': addrs, 'region_feats': feats, 'gap': gap}
|
||||||
|
|
||||||
|
|
||||||
|
def peek_patch(d: bytes) -> dict:
|
||||||
|
h = PATCH_HDR.unpack_from(d, 0)
|
||||||
|
n = h[9]
|
||||||
|
return {'platform': h[1].decode(errors='replace'),
|
||||||
|
'patch_date': h[0].decode(errors='replace').strip('\x00'),
|
||||||
|
'hw_sw_ver': f'0x{h[2]:08x}', 'n_section': n}
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
ap = argparse.ArgumentParser()
|
||||||
|
ap.add_argument('repo', nargs='?', default='firmware/linux-firmware')
|
||||||
|
ap.add_argument('-o', '--out', default='dataset/history.jsonl')
|
||||||
|
args = ap.parse_args()
|
||||||
|
repo = Path(args.repo)
|
||||||
|
head = git(repo, 'rev-parse', 'HEAD').strip()
|
||||||
|
files = [f for f in git(repo, 'ls-tree', '-r', '--name-only', 'HEAD',
|
||||||
|
'mediatek').splitlines()
|
||||||
|
if TARGET_RE.match(f)]
|
||||||
|
out = Path(args.out)
|
||||||
|
out.parent.mkdir(parents=True, exist_ok=True)
|
||||||
|
n_rev = 0
|
||||||
|
with out.open('w') as fh:
|
||||||
|
for f in sorted(files):
|
||||||
|
log = git(repo, 'log', '--format=%H%x00%cs%x00%s', '--', f)
|
||||||
|
revs = [l.split('\x00') for l in log.strip().splitlines()]
|
||||||
|
for commit, date, subject in reversed(revs): # oldest first
|
||||||
|
d = git(repo, 'cat-file', 'blob', f'{commit}:{f}', binary=True)
|
||||||
|
rec = {'file': f, 'commit': commit[:12], 'date': date,
|
||||||
|
'subject': subject, 'repo_head': head[:12],
|
||||||
|
'sha256': hashlib.sha256(d).hexdigest()[:16],
|
||||||
|
'size': len(d)}
|
||||||
|
try:
|
||||||
|
if '_rom_patch' in f:
|
||||||
|
rec.update(peek_patch(d))
|
||||||
|
elif '_wo' in f:
|
||||||
|
rec['format'] = 'wed-wo (unsupported parser)'
|
||||||
|
else:
|
||||||
|
rec.update(peek_ram(d))
|
||||||
|
except Exception as e: # noqa: BLE001
|
||||||
|
rec['parse_error'] = str(e)
|
||||||
|
fh.write(json.dumps(rec) + '\n')
|
||||||
|
n_rev += 1
|
||||||
|
hv = rec.get('hidden') or rec.get('patch_date') or ''
|
||||||
|
print(f"{f.split('/')[-1]:26s} {date} {commit[:8]} "
|
||||||
|
f"{rec.get('trailer_date', rec.get('patch_date', '?'))} "
|
||||||
|
f"{hv[:60]}")
|
||||||
|
print(f'--- {n_rev} revisions -> {out}')
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
Loading…
Reference in a new issue