diff options
-rw-r--r-- | board_enable.c | 3 | ||||
-rw-r--r-- | chipset_enable.c | 2 | ||||
-rw-r--r-- | flashchips.c | 24 | ||||
-rw-r--r-- | flashrom.c | 3 | ||||
-rw-r--r-- | ft2232_spi.c | 10 | ||||
-rw-r--r-- | ichspi.c | 22 | ||||
-rw-r--r-- | nicrealtek.c | 16 | ||||
-rw-r--r-- | print.c | 1 | ||||
-rw-r--r-- | serprog.c | 3 |
9 files changed, 41 insertions, 43 deletions
diff --git a/board_enable.c b/board_enable.c index 5dd7ae19..8f0219e2 100644 --- a/board_enable.c +++ b/board_enable.c @@ -2407,10 +2407,11 @@ const struct board_match board_matches[] = { {0x8086, 0x7190, 0, 0, 0x8086, 0x7110, 0, 0, "^SE440BX-2$", NULL, NULL, P3, "Intel", "SE440BX-2", 0, NT, intel_piix4_gpo27_lower}, {0x1022, 0x7468, 0, 0, 0x1022, 0x7460, 0, 0, NULL, "iwill", "dk8_htx", P3, "IWILL", "DK8-HTX", 0, OK, w83627hf_gpio24_raise_2e}, {0x8086, 0x27A0, 0x8086, 0x27a0, 0x8086, 0x27b8, 0x8086, 0x27b8, NULL, "kontron", "986lcd-m", P3, "Kontron", "986LCD-M", 0, OK, board_kontron_986lcd_m}, + {0x8086, 0x27a0, 0x17aa, 0x2015, 0x8086, 0x27b9, 0x17aa, 0x2009, "^ThinkPad T60", NULL, NULL, P2, "Lenovo", "T60", 0, OK, p2_whitelist_laptop}, {0x8086, 0x27a0, 0x17aa, 0x2017, 0x8086, 0x27b9, 0x17aa, 0x2009, "^ThinkPad T60", NULL, NULL, P2, "Lenovo", "T60(s)", 0, OK, p2_whitelist_laptop}, {0x8086, 0x27a0, 0x17aa, 0x2017, 0x8086, 0x27b9, 0x17aa, 0x2009, "^ThinkPad X60", NULL, NULL, P2, "Lenovo", "X60(s)", 0, OK, p2_whitelist_laptop}, {0x8086, 0x2411, 0x8086, 0x2411, 0x8086, 0x7125, 0x0e11, 0xb165, NULL, NULL, NULL, P3, "Mitac", "6513WU", 0, OK, board_mitac_6513wu}, - {0x8086, 0x8186, 0x8086, 0x8186, 0x8086, 0x8800, 0x0000, 0x0000, "^MSC Vertriebs GmbH$", NULL, NULL, P2, "MSC", "Q7-TCTC", 0, OK, p2_not_a_laptop}, + {0x8086, 0x8186, 0x8086, 0x8186, 0x8086, 0x8800, 0, 0, "^MSC Vertriebs GmbH$", NULL, NULL, P2, "MSC", "Q7-TCTC", 0, OK, p2_not_a_laptop}, {0x10DE, 0x005E, 0x1462, 0x7125, 0x10DE, 0x0052, 0x1462, 0x7125, NULL, NULL, NULL, P3, "MSI", "K8N Neo4-F", 0, OK, nvidia_mcp_gpio2_raise}, /* TODO: Should probably be K8N Neo4 Platinum, see http://www.coreboot.org/pipermail/flashrom/2010-August/004362.html. */ {0x8086, 0x7190, 0, 0, 0x8086, 0x7110, 0, 0, "^MS-6163 (i440BX)$", NULL, NULL, P3, "MSI", "MS-6163 (MS-6163 Pro)", 0, OK, intel_piix4_gpo14_raise}, {0x1039, 0x0745, 0, 0, 0x1039, 0x0018, 0, 0, "^MS-6561", NULL, NULL, P3, "MSI", "MS-6561 (745 Ultra)", 0, OK, w836xx_memw_enable_2e}, diff --git a/chipset_enable.c b/chipset_enable.c index 0873b4ef..267008c0 100644 --- a/chipset_enable.c +++ b/chipset_enable.c @@ -1406,7 +1406,7 @@ const struct penable chipset_enables[] = { {0x8086, 0x1c5c, OK, "Intel", "H61", enable_flash_pch6}, {0x8086, 0x1d40, OK, "Intel", "X79", enable_flash_pch6}, {0x8086, 0x1d41, OK, "Intel", "X79", enable_flash_pch6}, - {0x8086, 0x1e44, NT, "Intel", "Z77", enable_flash_pch7}, + {0x8086, 0x1e44, OK, "Intel", "Z77", enable_flash_pch7}, {0x8086, 0x1e46, NT, "Intel", "Z75", enable_flash_pch7}, {0x8086, 0x1e47, NT, "Intel", "Q77", enable_flash_pch7}, {0x8086, 0x1e48, NT, "Intel", "Q75", enable_flash_pch7}, diff --git a/flashchips.c b/flashchips.c index 4e09ab11..e1a0c420 100644 --- a/flashchips.c +++ b/flashchips.c @@ -954,7 +954,7 @@ const struct flashchip flashchips[] = { }, { .eraseblocks = { { 64 * 1024, 1 } }, .block_erase = spi_block_erase_c7, - } + } }, .printlock = spi_prettyprint_status_register_amic_a25l40p, .unlock = spi_disable_blockprotect, @@ -986,7 +986,7 @@ const struct flashchip flashchips[] = { }, { .eraseblocks = { { 128 * 1024, 1 } }, .block_erase = spi_block_erase_c7, - } + } }, .printlock = spi_prettyprint_status_register_amic_a25l40p, .unlock = spi_disable_blockprotect, @@ -1018,7 +1018,7 @@ const struct flashchip flashchips[] = { }, { .eraseblocks = { { 256 * 1024, 1 } }, .block_erase = spi_block_erase_c7, - } + } }, .printlock = spi_prettyprint_status_register_amic_a25l40p, .unlock = spi_disable_blockprotect, @@ -1050,7 +1050,7 @@ const struct flashchip flashchips[] = { }, { .eraseblocks = { { 512 * 1024, 1 } }, .block_erase = spi_block_erase_c7, - } + } }, .printlock = spi_prettyprint_status_register_amic_a25l40p, .unlock = spi_disable_blockprotect, @@ -1082,7 +1082,7 @@ const struct flashchip flashchips[] = { }, { .eraseblocks = { { 1024 * 1024, 1 } }, .block_erase = spi_block_erase_c7, - } + } }, .printlock = spi_prettyprint_status_register_amic_a25l40p, .unlock = spi_disable_blockprotect, @@ -1114,7 +1114,7 @@ const struct flashchip flashchips[] = { }, { .eraseblocks = { { 2048 * 1024, 1 } }, .block_erase = spi_block_erase_c7, - } + } }, .printlock = spi_prettyprint_status_register_amic_a25l40p, .unlock = spi_disable_blockprotect, @@ -1153,7 +1153,7 @@ const struct flashchip flashchips[] = { }, { .eraseblocks = { { 4096 * 1024, 1 } }, .block_erase = spi_block_erase_c7, - } + } }, .printlock = spi_prettyprint_status_register_amic_a25l032, .unlock = NULL, /* Two status reg bytes (read with 0x35 and 0x05) */ @@ -1192,7 +1192,7 @@ const struct flashchip flashchips[] = { }, { .eraseblocks = { { 4096 * 1024, 1 } }, .block_erase = spi_block_erase_c7, - } + } }, .printlock = spi_prettyprint_status_register_amic_a25lq032, .unlock = NULL, /* Two status reg bytes (read with 0x35 and 0x05) */ @@ -3413,11 +3413,11 @@ const struct flashchip flashchips[] = { .name = "EN25F64", .bustype = BUS_SPI, .manufacture_id = EON_ID_NOPREFIX, - .model_id = EON_EN25F32, + .model_id = EON_EN25F64, .total_size = 8192, .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, - .tested = TEST_UNTESTED, + .tested = TEST_OK_PR, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, .block_erasers = @@ -4680,7 +4680,7 @@ const struct flashchip flashchips[] = { .total_size = 128, .page_size = 256, .feature_bits = FEATURE_WRSR_WREN, - .tested = TEST_UNTESTED, + .tested = TEST_OK_PREW, .probe = probe_spi_rdid, .probe_timing = TIMING_ZERO, .block_erasers = @@ -7053,7 +7053,7 @@ const struct flashchip flashchips[] = { .total_size = 64, .page_size = 4096, .feature_bits = FEATURE_EITHER_RESET, - .tested = TEST_OK_PRE, + .tested = TEST_OK_PREW, .probe = probe_jedec, .probe_timing = 1, /* 150 ns */ .block_erasers = @@ -1086,7 +1086,8 @@ int read_buf_from_file(unsigned char *buf, unsigned long size, return 1; } if (image_stat.st_size != size) { - msg_gerr("Error: Image size doesn't match\n"); + msg_gerr("Error: Image size (%ld B) doesn't match the flash chip's size (%ld B)!\n", + image_stat.st_size, size); fclose(image); return 1; } diff --git a/ft2232_spi.c b/ft2232_spi.c index 31a6c5c4..c09405e7 100644 --- a/ft2232_spi.c +++ b/ft2232_spi.c @@ -271,11 +271,11 @@ int ft2232_spi_init(void) channel_count = -1; break; } - } - if (channel_count < 0 || strlen(arg) != 1) { - msg_perr("Error: Invalid channel/port/interface specified: \"%s\".\n", arg); - free(arg); - return -2; + if (channel_count < 0 || strlen(arg) != 1) { + msg_perr("Error: Invalid channel/port/interface specified: \"%s\".\n", arg); + free(arg); + return -2; + } } free(arg); @@ -1675,11 +1675,9 @@ int ich_init_spi(struct pci_dev *dev, uint32_t base, void *rcrb, if (tmp2 & HSFS_FDV) desc_valid = 1; if (!(tmp2 & HSFS_FDOPSS) && desc_valid) - msg_pinfo("The Flash Descriptor Security Override " - "Strap-Pin is set. Restrictions implied\n" - "by the FRAP and FREG registers are NOT in " - "effect. Please note that Protected\n" - "Range (PR) restrictions still apply.\n"); + msg_pinfo("The Flash Descriptor Override Strap-Pin is set. Restrictions implied by\n" + "the Master Section of the flash descriptor are NOT in effect. Please note\n" + "that Protected Range (PR) restrictions still apply.\n"); ich_init_opcodes(); if (desc_valid) { @@ -1720,15 +1718,13 @@ int ich_init_spi(struct pci_dev *dev, uint32_t base, void *rcrb, "yet.\n"); if (!ich_spi_force) programmer_may_write = 0; - msg_pinfo("Writes have been disabled. You can enforce " - "write support with the\nich_spi_force " - "programmer option, but it will most likely " - "harm your hardware!\nIf you force flashrom " - "you will get no support if something " - "breaks.\n"); + msg_pinfo("Writes have been disabled for safety reasons. You can enforce write\n" + "support with the ich_spi_force programmer option, but you will most likely\n" + "harm your hardware! If you force flashrom you will get no support if\n" + "something breaks. On a few mainboards it is possible to enable write\n" + "access by setting a jumper (see its documentation or the board itself).\n"); if (ich_spi_force) - msg_pinfo("Continuing with write support " - "because the user forced us to!\n"); + msg_pinfo("Continuing with write support because the user forced us to!\n"); } tmp = mmio_readl(ich_spibar + ICH9_REG_SSFS); diff --git a/nicrealtek.c b/nicrealtek.c index 779d0233..92f48a8c 100644 --- a/nicrealtek.c +++ b/nicrealtek.c @@ -60,6 +60,14 @@ static int nicrealtek_shutdown(void *data) int nicrealtek_init(void) { + if (rget_io_perms()) + return 1; + + io_base_addr = pcidev_init(PCI_BASE_ADDRESS_0, nics_realtek); + + if (register_shutdown(nicrealtek_shutdown, NULL)) + return 1; + /* Beware, this ignores the vendor ID! */ switch (pcidev_dev->device_id) { case 0x8139: /* RTL8139 */ @@ -74,14 +82,6 @@ int nicrealtek_init(void) break; } - if (rget_io_perms()) - return 1; - - io_base_addr = pcidev_init(PCI_BASE_ADDRESS_0, nics_realtek); - - if (register_shutdown(nicrealtek_shutdown, NULL)) - return 1; - register_par_programmer(&par_programmer_nicrealtek, BUS_PARALLEL); return 0; @@ -795,6 +795,7 @@ const struct board_info boards_known[] = { B("Foxconn", "6150K8MD-8EKRSH", OK, "http://www.foxconnchannel.com/ProductDetail.aspx?T=Motherboard&U=en-us0000157", NULL), B("Foxconn", "A6VMX", OK, "http://www.foxconnchannel.com/ProductDetail.aspx?T=Motherboard&U=en-us0000346", NULL), B("Foxconn", "P4M800P7MA-RS2", OK, "http://www.foxconnchannel.com/ProductDetail.aspx?T=Motherboard&U=en-us0000138", NULL), + B("Foxconn", "P55MX", OK, "http://www.foxconnchannel.com/ProductDetail.aspx?T=motherboard&U=en-us0000474", "Needs the MFG jumper to be set correctly before flashing to enable the Flash Descriptor Override Strap."), B("Freetech", "P6F91i", OK, "http://web.archive.org/web/20010417035034/http://www.freetech.com/prod/P6F91i.html", NULL), B("Foxconn", "Q45M", BAD, "http://www.foxconnchannel.com/ProductDetail.aspx?T=Motherboard&U=en-us0000587", "Probing works (Hardware sequencing, 4096 kB, SPI), but parts of the flash are problematic: descriptor is r/o (conforming to ICH reqs), ME is locked."), B("Fujitsu-Siemens", "ESPRIMO P5915", OK, "http://uk.ts.fujitsu.com/rl/servicesupport/techsupport/professionalpc/ESPRIMO/P/EsprimoP5915-6.htm", "Mainboard model is D2312-A2."), @@ -877,8 +877,7 @@ void serprog_delay(int usecs) unsigned char buf[4]; msg_pspew("%s usecs=%d\n", __func__, usecs); if (!sp_check_commandavail(S_CMD_O_DELAY)) { - msg_pdbg("Note: serprog_delay used, but the programmer doesn't " - "support delay\n"); + msg_pdbg2("serprog_delay used, but programmer doesn't support delays natively - emulating\n"); internal_delay(usecs); return; } |