Hello, Awesome! I'm glad you got it working.
On 09/15/2010 06:19 AM, Carl-Daniel Hailfinger wrote: > Funny. The 0xc6f access looks very similar to parts of the SB400 chipset > enable. (Side note: we should ask AMD if the SB400 chipset enable is > correct.) > Yes, I noticed the same thing- hence the placement in chipset_enable.c. > Joshua, I would like this in 0.9.3. Would it be OK for you to split the > patch in a chipset enable and a flash chip addition? If possible, > coordinate with Mattias to avoid conflicts in flashchips.[ch] > OK, attached are two separate patches and a diff... if the chip #define fixup gets applied first, then use the post-prefix-change.diff.txt and squash it in with the flash chip patch. Otherwise that patch will have to be updated in order to account for these chips. (I'll try to figure out on IRC what order these will be in, and if needs be I can spin another patch set.) Thanks! Signed-off-by: Joshua Roys <roysj...@gmail.com> Josh
>From dde743cbcbbefadbecbbfc22e8d040ae2a7c3e87 Mon Sep 17 00:00:00 2001 From: Joshua Roys <roysj...@gmail.com> Date: Wed, 15 Sep 2010 09:23:53 -0400 Subject: [PATCH] Add some parallel flash chips Bright BM29F040: http://www.datasheetcatalog.org/datasheet/WinbondElectronics/mXxvzzr.pdf Hyundai HY29F040A: http://www.datasheetarchive.com/pdf/getfile.php?dir=Datasheets-30&file=DSA-594844.pdf Macronix MX29F040: http://pdf1.alldatasheet.com/datasheet-pdf/view/74482/MCNIX/MX29F040.html Signed-off-by: Joshua Roys <roysj...@gmail.com> --- flashchips.c | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ flashchips.h | 4 +++ 2 files changed, 82 insertions(+), 0 deletions(-) diff --git a/flashchips.c b/flashchips.c index 3ab19bb..5e881da 100644 --- a/flashchips.c +++ b/flashchips.c @@ -1962,6 +1962,32 @@ struct flashchip flashchips[] = { }, { + .vendor = "Bright", + .name = "BM29F040", + .bustype = CHIP_BUSTYPE_PARALLEL, + .manufacture_id = BRIGHT_ID, + .model_id = BRIGHT_BM29F040, + .total_size = 512, + .page_size = 64 * 1024, + .feature_bits = FEATURE_EITHER_RESET, + .tested = TEST_PR, + .probe = probe_jedec, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {64 * 1024, 8} }, + .block_erase = erase_sector_jedec, + }, { + .eraseblocks = { {512 * 1024, 1} }, + .block_erase = erase_chip_block_jedec, + }, + }, + .write = write_jedec_1, + .read = read_memmapped, + }, + + { .vendor = "EMST", .name = "F49B002UA", .bustype = CHIP_BUSTYPE_PARALLEL, @@ -3085,6 +3111,32 @@ struct flashchip flashchips[] = { }, { + .vendor = "Hyundai", + .name = "HY29F040A", + .bustype = CHIP_BUSTYPE_PARALLEL, + .manufacture_id = HYUNDAI_ID, + .model_id = HY_29F040A, + .total_size = 512, + .page_size = 64 * 1024, + .feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, + .tested = TEST_UNTESTED, + .probe = probe_jedec, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {64 * 1024, 8} }, + .block_erase = erase_sector_jedec, + }, { + .eraseblocks = { {512 * 1024, 1} }, + .block_erase = erase_chip_block_jedec, + }, + }, + .write = write_jedec_1, + .read = read_memmapped, + }, + + { .vendor = "Intel", .name = "28F001BX-B", .bustype = CHIP_BUSTYPE_PARALLEL, @@ -3883,6 +3935,32 @@ struct flashchip flashchips[] = { { .vendor = "Macronix", + .name = "MX29F040", + .bustype = CHIP_BUSTYPE_PARALLEL, + .manufacture_id = MX_ID, + .model_id = MX_29F040, + .total_size = 512, + .page_size = 64 * 1024, + .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET, + .tested = TEST_UNTESTED, + .probe = probe_jedec, + .probe_timing = TIMING_ZERO, + .block_erasers = + { + { + .eraseblocks = { {64 * 1024, 8} }, + .block_erase = erase_sector_jedec, + }, { + .eraseblocks = { {512 * 1024, 1} }, + .block_erase = erase_chip_block_jedec, + }, + }, + .write = write_jedec_1, + .read = read_memmapped, + }, + + { + .vendor = "Macronix", .name = "MX29LV040", .bustype = CHIP_BUSTYPE_PARALLEL, .manufacture_id = MX_ID, diff --git a/flashchips.h b/flashchips.h index 2ca1163..f841aaa 100644 --- a/flashchips.h +++ b/flashchips.h @@ -171,6 +171,10 @@ #define AT_49F002N 0x07 /* for AT49F002(N) */ #define AT_49F002NT 0x08 /* for AT49F002(N)T */ +/* Bright Microelectronics has the same manufacturer ID as Hyundai... */ +#define BRIGHT_ID 0xAD /* Bright Microelectronics */ +#define BRIGHT_BM29F040 0x40 + #define CATALYST_ID 0x31 /* Catalyst */ #define EMST_ID 0x8C /* EMST / EFST Elite Flash Storage */ -- 1.7.2.2
>From 9ed1cd3b2c0e20e7672a67fc076051a2acf9324a Mon Sep 17 00:00:00 2001 From: Joshua Roys <roysj...@gmail.com> Date: Wed, 15 Sep 2010 09:15:06 -0400 Subject: [PATCH] Add chipset enable for Broadcom OSB4 Signed-off-by: Joshua Roys <roysj...@gmail.com> --- chipset_enable.c | 18 ++++++++++++++++++ print.c | 1 + 2 files changed, 19 insertions(+), 0 deletions(-) diff --git a/chipset_enable.c b/chipset_enable.c index 4ac3a55..ac2edc2 100644 --- a/chipset_enable.c +++ b/chipset_enable.c @@ -802,6 +802,23 @@ static int enable_flash_ck804(struct pci_dev *dev, const char *name) return 0; } +static int enable_flash_osb4(struct pci_dev *dev, const char *name) +{ + uint8_t tmp; + + buses_supported = CHIP_BUSTYPE_PARALLEL; + + tmp = INB(0xc06); + tmp |= 0x1; + OUTB(tmp, 0xc06); + + tmp = INB(0xc6f); + tmp |= 0x40; + OUTB(tmp, 0xc6f); + + return 0; +} + /* ATI Technologies Inc IXP SB400 PCI-ISA Bridge (rev 80) */ static int enable_flash_sb400(struct pci_dev *dev, const char *name) { @@ -1008,6 +1025,7 @@ const struct penable chipset_enables[] = { {0x1002, 0x439d, OK, "AMD", "SB700/SB710/SB750", enable_flash_sb600}, {0x100b, 0x0510, NT, "AMD", "SC1100", enable_flash_sc1100}, {0x1002, 0x4377, OK, "ATI", "SB400", enable_flash_sb400}, + {0x1166, 0x0200, OK, "Broadcom", "OSB4", enable_flash_osb4}, {0x1166, 0x0205, OK, "Broadcom", "HT-1000", enable_flash_ht1000}, {0x8086, 0x3b00, NT, "Intel", "3400 Desktop", enable_flash_ich10}, {0x8086, 0x3b01, NT, "Intel", "3400 Mobile", enable_flash_ich10}, diff --git a/print.c b/print.c index 38249a8..66466c2 100644 --- a/print.c +++ b/print.c @@ -409,6 +409,7 @@ const struct board_info boards_known[] = { B("GIGABYTE", "GA-2761GXDK", 1, "http://www.computerbase.de/news/hardware/mainboards/amd-systeme/2007/mai/gigabyte_dtx-mainboard/", NULL), B("GIGABYTE", "GA-6BXC", 1, "http://www.gigabyte.com/products/product-page.aspx?pid=1445", NULL), B("GIGABYTE", "GA-6BXDU", 1, "http://www.gigabyte.com/products/product-page.aspx?pid=1429", NULL), + B("GIGABYTE", "GA-6ETXDR", 1, "http://www.gigabyte.com/products/product-page.aspx?pid=992", "Write is not tested; you must toggle the JP1 firmware write protect jumper first."), B("GIGABYTE", "GA-6ZMA", 1, "http://www.gigabyte.com/products/product-page.aspx?pid=1541", NULL), B("GIGABYTE", "GA-MA785GMT-UD2H", 1, "http://www.gigabyte.de/Products/Motherboard/Products_Overview.aspx?ProductID=4525", NULL), B("GIGABYTE", "GA-770TA-UD3", 1, "http://www.gigabyte.com/products/product-page.aspx?pid=3272#ov", NULL), -- 1.7.2.2
diff --git a/flashchips.c b/flashchips.c index f27ff01..16e861c 100644 --- a/flashchips.c +++ b/flashchips.c @@ -3115,7 +3115,7 @@ struct flashchip flashchips[] = { .name = "HY29F040A", .bustype = CHIP_BUSTYPE_PARALLEL, .manufacture_id = HYUNDAI_ID, - .model_id = HY_29F040A, + .model_id = HYUNDAI_HY29F040A, .total_size = 512, .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_EITHER_RESET, @@ -3937,8 +3937,8 @@ struct flashchip flashchips[] = { .vendor = "Macronix", .name = "MX29F040", .bustype = CHIP_BUSTYPE_PARALLEL, - .manufacture_id = MX_ID, - .model_id = MX_29F040, + .manufacture_id = MACRONIX_ID, + .model_id = MACRONIX_MX29F040, .total_size = 512, .page_size = 64 * 1024, .feature_bits = FEATURE_ADDR_2AA | FEATURE_SHORT_RESET,
_______________________________________________ flashrom mailing list flashrom@flashrom.org http://www.flashrom.org/mailman/listinfo/flashrom