Author: uwe
Date: 2009-06-02 18:45:59 +0200 (Tue, 02 Jun 2009)
New Revision: 566
Modified:
trunk/flash.h
trunk/flashchips.c
trunk/nic3com.c
Log:
Add support for the 10b7:9058 3COM NIC (3C905B: Cyclone 10/100/BNC).
Also, add Atmel AT29C512 support.
Both are tested on hardware by Maciej Pijanka.
Signed-off-by: Maciej Pijanka <maciej.pijanka(a)gmail.com>
Acked-by: Uwe Hermann <uwe(a)hermann-uwe.de>
Modified: trunk/flash.h
===================================================================
--- trunk/flash.h 2009-06-02 13:39:42 UTC (rev 565)
+++ trunk/flash.h 2009-06-02 16:45:59 UTC (rev 566)
@@ -287,6 +287,7 @@
#define AT_29C040A 0xA4
#define AT_29C010A 0xD5
#define AT_29C020 0xDA
+#define AT_29C512 0x5D
#define AT_45BR3214B /* No ID available */
#define AT_45CS1282 0x2920
#define AT_45D011 /* No ID available */
Modified: trunk/flashchips.c
===================================================================
--- trunk/flashchips.c 2009-06-02 13:39:42 UTC (rev 565)
+++ trunk/flashchips.c 2009-06-02 16:45:59 UTC (rev 566)
@@ -400,6 +400,22 @@
{
.vendor = "Atmel",
+ .name = "AT29C512",
+ .bustype = CHIP_BUSTYPE_NONSPI,
+ .manufacture_id = ATMEL_ID,
+ .model_id = AT_29C512,
+ .total_size = 64,
+ .page_size = 128,
+ .tested = TEST_OK_PREW,
+ .probe = probe_jedec,
+ .erase = erase_chip_jedec,
+ .write = write_jedec,
+ .read = read_memmapped,
+
+ },
+
+ {
+ .vendor = "Atmel",
.name = "AT29C010A",
.bustype = CHIP_BUSTYPE_NONSPI,
.manufacture_id = ATMEL_ID,
Modified: trunk/nic3com.c
===================================================================
--- trunk/nic3com.c 2009-06-02 13:39:42 UTC (rev 565)
+++ trunk/nic3com.c 2009-06-02 16:45:59 UTC (rev 566)
@@ -46,6 +46,7 @@
{0x10b7, 0x9006, PCI_NT, "3COM", "3C90xB: PCI 10BASE-T/10BASE2 (TPC)" },
{0x10b7, 0x900a, PCI_NT, "3COM", "3C90xB: PCI 10BASE-FL" },
{0x10b7, 0x905a, PCI_NT, "3COM", "3C90xB: PCI 10BASE-FX" },
+ {0x10b7, 0x9058, PCI_NT, "3COM", "3C905B: Cyclone 10/100/BNC" },
/* 3C905C */
{0x10b7, 0x9200, PCI_OK, "3COM", "3C905C: EtherLink 10/100 PCI (TX)" },
@@ -65,7 +66,7 @@
/* 3COM 3C90xB cards need a special fixup. */
if (id == 0x9055 || id == 0x9001 || id == 0x9004 || id == 0x9005
- || id == 0x9006 || id == 0x900a || id == 0x905a) {
+ || id == 0x9006 || id == 0x900a || id == 0x905a || id == 0x9058) {
/* Select register window 3 and save the receiver status. */
OUTW(SELECT_REG_WINDOW + 3, io_base_addr + INT_STATUS);
internal_conf = INL(io_base_addr + INTERNAL_CONFIG);
@@ -90,7 +91,7 @@
{
/* 3COM 3C90xB cards need a special fixup. */
if (id == 0x9055 || id == 0x9001 || id == 0x9004 || id == 0x9005
- || id == 0x9006 || id == 0x900a || id == 0x905a) {
+ || id == 0x9006 || id == 0x900a || id == 0x905a || id == 0x9058) {
/* Select register window 3 and restore the receiver status. */
OUTW(SELECT_REG_WINDOW + 3, io_base_addr + INT_STATUS);
OUTL(internal_conf, io_base_addr + INTERNAL_CONFIG);