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

Reply via email to