Patchwork superiotool support FDC37C932 for Nokia IP330

login
register
about
Submitter marc bertens
Date 2010-04-11 08:23:50
Message ID <1270974230.3633.5.camel@andrala.reboot>
Download mbox | patch
Permalink /patch/1217/
State Accepted
Headers show

Comments

marc bertens - 2010-04-11 08:23:50
Hi all,

I added support for the FDC37C932 (device id 0x02, revision 0x01) chip.
This chip is in a Nokia IP330 (firewall hardware).

The diff was made using Work Bench version: 1.5.4-0, pysvn version:
1.6.0-0, svn version: 1.5.1-, wxPython 2.6.3.2 , Python 2.5.2 final 0

This is the -deV output of the run on my system.

superiotool r5263
Probing for ALi Super I/O at 0x3f0...
  Failed. Returned data: id=0xffff, rev=0xff
Probing for ALi Super I/O at 0x370...
  Failed. Returned data: id=0xffff, rev=0xff
Probing for Fintek Super I/O at 0x2e...
  Failed. Returned data: vid=0xffff, id=0xffff
Probing for Fintek Super I/O at 0x4e...
  Failed. Returned data: vid=0xffff, id=0xffff
Probing for ITE Super I/O (init=standard) at 0x2e...
  Failed. Returned data: id=0xffff, rev=0xf
Probing for ITE Super I/O (init=it8761e) at 0x2e...
  Failed. Returned data: id=0xffff, rev=0xf
Probing for ITE Super I/O (init=it8228e) at 0x2e...
  Failed. Returned data: id=0xffff, rev=0xf
Probing for ITE Super I/O (init=0x87,0x87) at 0x2e...
  Failed. Returned data: id=0xffff, rev=0xf
Probing for ITE Super I/O (init=standard) at 0x4e...
  Failed. Returned data: id=0xffff, rev=0xf
Probing for ITE Super I/O (init=it8761e) at 0x4e...
  Failed. Returned data: id=0xffff, rev=0xf
Probing for ITE Super I/O (init=it8228e) at 0x4e...
  Failed. Returned data: id=0xffff, rev=0xf
Probing for ITE Super I/O (init=0x87,0x87) at 0x4e...
  Failed. Returned data: id=0xffff, rev=0xf
Probing for ITE Super I/O (init=legacy/it8661f) at 0x370...
  Failed. Returned data: id=0xffff, rev=0xf
Probing for ITE Super I/O (init=legacy/it8671f) at 0x370...
  Failed. Returned data: id=0xffff, rev=0xf
Probing for NSC Super I/O at 0x2e...
  Failed. Returned data: port=0xff, port+1=0xff
Probing for NSC Super I/O at 0x4e...
  Failed. Returned data: port=0xff, port+1=0xff
Probing for NSC Super I/O at 0x15c...
  Failed. Returned data: port=0xff, port+1=0xff
Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x2e...
  Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x2e...
  Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x4e...
  Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x4e...
  Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x162e...
  Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x162e...
  Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x164e...
  Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x164e...
  Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x3f0...
Found SMSC FDC37C932 (id=0x02, rev=0x01) at 0x3f0
Register dump:
idx 03 20 21 22 23 24 2d 2e  2f
val 03 02 01 39 00 c4 00 00  00
def 03 02 01 00 00 04 NA NA  00
LDN 0x00 (Floppy)
idx 30 60 61 70 74 f0 f1 f2  f4 f5
val 01 03 f0 06 02 0e 00 ff  00 00
def 00 03 f0 06 02 0e 00 ff  00 00
LDN 0x01 (IDE0 Controller)
idx 03 60 61 62 63 70
val 03 00 00 00 00 00
def 00 01 f0 03 f6 0e
LDN 0x02 (IDE1 Controller)
idx 03 60 61 62 63 70
val 03 00 00 00 00 00
def 00 00 00 00 f0 00
LDN 0x03 (Parallel port)
idx 30 60 61 70 74 f0
val 01 03 78 07 03 bb
def 00 00 00 00 04 3c
LDN 0x04 (COM1)
idx 30 60 61 70 f0
val 01 03 f8 04 00
def 00 00 00 00 00
LDN 0x05 (COM2)
idx 30 60 61 70 f0 f1
val 01 02 f8 03 00 00
def 00 00 00 00 00 00
LDN 0x06 (Real-time clock (RTC))
idx 30 70 f0 f1 f2 f3 f3 f5  f6
val 01 08 00 00 00 00 00 ff  00
def 00 00 00 00 00 NA NA 03  NA
LDN 0x07 (Keyboard)
idx 30 70 72
val 01 01 00
def 00 00 00
LDN 0x08 (Aux I/O)
idx 30 60 61 62 63 e0 e1 e2  e3 e4 e5 e6 e7 e8 e9 ea  eb ec ed f0 f1 f2
f3 f4
val 01 00 00 00 00 01 01 01  01 01 01 01 01 08 01 01  01 01 08 00 00 00
00 01
def 00 00 00 00 00 01 01 01  01 01 01 01 01 01 01 01  01 01 01 00 00 00
00 00
No extra registers known for this chip.
Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x3f0...
  Failed. Returned data: id=0x00, rev=0x00
Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x370...
  Failed. Returned data: id=0xff, rev=0xff
Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x370...
  Failed. Returned data: id=0xff, rev=0xff
Probing for Winbond Super I/O (init=0x88) at 0x2e...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x89) at 0x2e...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x86,0x86) at 0x2e...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x87,0x87) at 0x2e...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x88) at 0x4e...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x89) at 0x4e...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x86,0x86) at 0x4e...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x87,0x87) at 0x4e...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x88) at 0x3f0...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x89) at 0x3f0...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x86,0x86) at 0x3f0...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x87,0x87) at 0x3f0...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x88) at 0x370...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x89) at 0x370...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x86,0x86) at 0x370...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x87,0x87) at 0x370...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x88) at 0x250...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x89) at 0x250...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x86,0x86) at 0x250...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for Winbond Super I/O (init=0x87,0x87) at 0x250...
  Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
Probing for VIA Super I/O at 0x3f0...
  PCI device 1106:0686 not found.

Regards,
Marc
Uwe Hermann - 2010-04-11 20:51:19
On Sun, Apr 11, 2010 at 10:23:50AM +0200, Marc Bertens wrote:
> Hi all,
> 
> I added support for the FDC37C932 (device id 0x02, revision 0x01) chip.
> This chip is in a Nokia IP330 (firewall hardware).

Great, thanks!

However, please add your Signed-off-by to all patches you post, so that
we can commit them. See
http://www.coreboot.org/Development_Guidelines#Sign-off_Procedure
for details.
 

Uwe.
marc bertens - 2010-04-12 04:30:14
Signed-off-by: Marc Bertens <mbertens@xs4all.nl>

Op zondag 11-04-2010 om 10:23 uur [tijdzone +0200], schreef Marc
Bertens:
> Hi all,
> 
> I added support for the FDC37C932 (device id 0x02, revision 0x01) chip.
> This chip is in a Nokia IP330 (firewall hardware).
> 
> The diff was made using Work Bench version: 1.5.4-0, pysvn version:
> 1.6.0-0, svn version: 1.5.1-, wxPython 2.6.3.2 , Python 2.5.2 final 0
> 
> This is the -deV output of the run on my system.
> 
> superiotool r5263
> Probing for ALi Super I/O at 0x3f0...
>   Failed. Returned data: id=0xffff, rev=0xff
> Probing for ALi Super I/O at 0x370...
>   Failed. Returned data: id=0xffff, rev=0xff
> Probing for Fintek Super I/O at 0x2e...
>   Failed. Returned data: vid=0xffff, id=0xffff
> Probing for Fintek Super I/O at 0x4e...
>   Failed. Returned data: vid=0xffff, id=0xffff
> Probing for ITE Super I/O (init=standard) at 0x2e...
>   Failed. Returned data: id=0xffff, rev=0xf
> Probing for ITE Super I/O (init=it8761e) at 0x2e...
>   Failed. Returned data: id=0xffff, rev=0xf
> Probing for ITE Super I/O (init=it8228e) at 0x2e...
>   Failed. Returned data: id=0xffff, rev=0xf
> Probing for ITE Super I/O (init=0x87,0x87) at 0x2e...
>   Failed. Returned data: id=0xffff, rev=0xf
> Probing for ITE Super I/O (init=standard) at 0x4e...
>   Failed. Returned data: id=0xffff, rev=0xf
> Probing for ITE Super I/O (init=it8761e) at 0x4e...
>   Failed. Returned data: id=0xffff, rev=0xf
> Probing for ITE Super I/O (init=it8228e) at 0x4e...
>   Failed. Returned data: id=0xffff, rev=0xf
> Probing for ITE Super I/O (init=0x87,0x87) at 0x4e...
>   Failed. Returned data: id=0xffff, rev=0xf
> Probing for ITE Super I/O (init=legacy/it8661f) at 0x370...
>   Failed. Returned data: id=0xffff, rev=0xf
> Probing for ITE Super I/O (init=legacy/it8671f) at 0x370...
>   Failed. Returned data: id=0xffff, rev=0xf
> Probing for NSC Super I/O at 0x2e...
>   Failed. Returned data: port=0xff, port+1=0xff
> Probing for NSC Super I/O at 0x4e...
>   Failed. Returned data: port=0xff, port+1=0xff
> Probing for NSC Super I/O at 0x15c...
>   Failed. Returned data: port=0xff, port+1=0xff
> Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x2e...
>   Failed. Returned data: id=0xff, rev=0xff
> Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x2e...
>   Failed. Returned data: id=0xff, rev=0xff
> Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x4e...
>   Failed. Returned data: id=0xff, rev=0xff
> Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x4e...
>   Failed. Returned data: id=0xff, rev=0xff
> Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x162e...
>   Failed. Returned data: id=0xff, rev=0xff
> Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x162e...
>   Failed. Returned data: id=0xff, rev=0xff
> Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x164e...
>   Failed. Returned data: id=0xff, rev=0xff
> Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x164e...
>   Failed. Returned data: id=0xff, rev=0xff
> Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x3f0...
> Found SMSC FDC37C932 (id=0x02, rev=0x01) at 0x3f0
> Register dump:
> idx 03 20 21 22 23 24 2d 2e  2f
> val 03 02 01 39 00 c4 00 00  00
> def 03 02 01 00 00 04 NA NA  00
> LDN 0x00 (Floppy)
> idx 30 60 61 70 74 f0 f1 f2  f4 f5
> val 01 03 f0 06 02 0e 00 ff  00 00
> def 00 03 f0 06 02 0e 00 ff  00 00
> LDN 0x01 (IDE0 Controller)
> idx 03 60 61 62 63 70
> val 03 00 00 00 00 00
> def 00 01 f0 03 f6 0e
> LDN 0x02 (IDE1 Controller)
> idx 03 60 61 62 63 70
> val 03 00 00 00 00 00
> def 00 00 00 00 f0 00
> LDN 0x03 (Parallel port)
> idx 30 60 61 70 74 f0
> val 01 03 78 07 03 bb
> def 00 00 00 00 04 3c
> LDN 0x04 (COM1)
> idx 30 60 61 70 f0
> val 01 03 f8 04 00
> def 00 00 00 00 00
> LDN 0x05 (COM2)
> idx 30 60 61 70 f0 f1
> val 01 02 f8 03 00 00
> def 00 00 00 00 00 00
> LDN 0x06 (Real-time clock (RTC))
> idx 30 70 f0 f1 f2 f3 f3 f5  f6
> val 01 08 00 00 00 00 00 ff  00
> def 00 00 00 00 00 NA NA 03  NA
> LDN 0x07 (Keyboard)
> idx 30 70 72
> val 01 01 00
> def 00 00 00
> LDN 0x08 (Aux I/O)
> idx 30 60 61 62 63 e0 e1 e2  e3 e4 e5 e6 e7 e8 e9 ea  eb ec ed f0 f1 f2
> f3 f4
> val 01 00 00 00 00 01 01 01  01 01 01 01 01 08 01 01  01 01 08 00 00 00
> 00 01
> def 00 00 00 00 00 01 01 01  01 01 01 01 01 01 01 01  01 01 01 00 00 00
> 00 00
> No extra registers known for this chip.
> Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x3f0...
>   Failed. Returned data: id=0x00, rev=0x00
> Probing for SMSC Super I/O (idregs=0x20/0x21) at 0x370...
>   Failed. Returned data: id=0xff, rev=0xff
> Probing for SMSC Super I/O (idregs=0x0d/0x0e) at 0x370...
>   Failed. Returned data: id=0xff, rev=0xff
> Probing for Winbond Super I/O (init=0x88) at 0x2e...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for Winbond Super I/O (init=0x89) at 0x2e...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for Winbond Super I/O (init=0x86,0x86) at 0x2e...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for Winbond Super I/O (init=0x87,0x87) at 0x2e...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for Winbond Super I/O (init=0x88) at 0x4e...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for Winbond Super I/O (init=0x89) at 0x4e...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for Winbond Super I/O (init=0x86,0x86) at 0x4e...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for Winbond Super I/O (init=0x87,0x87) at 0x4e...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for Winbond Super I/O (init=0x88) at 0x3f0...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for Winbond Super I/O (init=0x89) at 0x3f0...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for Winbond Super I/O (init=0x86,0x86) at 0x3f0...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for Winbond Super I/O (init=0x87,0x87) at 0x3f0...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for Winbond Super I/O (init=0x88) at 0x370...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for Winbond Super I/O (init=0x89) at 0x370...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for Winbond Super I/O (init=0x86,0x86) at 0x370...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for Winbond Super I/O (init=0x87,0x87) at 0x370...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for Winbond Super I/O (init=0x88) at 0x250...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for Winbond Super I/O (init=0x89) at 0x250...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for Winbond Super I/O (init=0x86,0x86) at 0x250...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for Winbond Super I/O (init=0x87,0x87) at 0x250...
>   Failed. Returned data: id/oldid=0xff/0x0f, rev=0xff
> Probing for VIA Super I/O at 0x3f0...
>   PCI device 1106:0686 not found.
> 
> Regards,
> Marc
Uwe Hermann - 2010-04-13 01:24:04
On Mon, Apr 12, 2010 at 06:30:14AM +0200, Marc Bertens wrote:
> Signed-off-by: Marc Bertens <mbertens@xs4all.nl>

Thanks, committed in r5416 with some minor text changes and esp. typo
fixes in the register values. Can you repost a -de dump with current
trunk of superiotool for archival purposes? Thanks!


Uwe.

Patch

Index: /home/mbertens/src/coreboot/util/superiotool/smsc.c
===================================================================
--- /home/mbertens/src/coreboot/util/superiotool/smsc.c	(revision 5355)
+++ /home/mbertens/src/coreboot/util/superiotool/smsc.c	(working copy)
@@ -29,6 +29,40 @@ 
 
 static const struct superio_registers reg_table[] = {
 	/* The following Super I/Os use the 0x20/0x21 ID registers. */
+	{0x02, "FDC37C932", {
+		{NOLDN, NULL,
+			{0x03,0x20,0x21,0x22,0x23,0x24,0x2D,0x2E,0x2F,EOT},
+			{0x03,0x02,0x01,0x00,0x00,0x04,NANA,NANA,0x00,EOT}},
+		{0x00, "Floppy",
+			{0x30,0x60,0x61,0x70,0x74,0xF0,0xF1,0xF2,0xF4,0xF5,EOT},
+			{0x00,0x03,0xF0,0x06,0x02,0x0E,0x00,0xFF,0x00,0x00,EOT}},
+		{0x01, "IDE0 Controller",
+			{0x03,0x60,0x61,0x62,0x63,0x70,EOT},
+			{0x00,0x01,0xF0,0x03,0xF6,0x0E,EOT}},
+		{0x02, "IDE1 Controller",
+			{0x03,0x60,0x61,0x62,0x63,0x70,EOT},
+			{0x00,0x00,0x00,0x00,0xF0,0x00,EOT}},
+		{0x03, "Parallel port",
+			{0x30,0x60,0x61,0x70,0x74,0xF0,EOT},
+			{0x00,0x00,0x00,0x00,0x04,0x3C,EOT}},
+		{0x04, "COM1",
+			{0x30,0x60,0x61,0x70,0xF0,EOT},
+			{0x00,0x00,0x00,0x00,0x00,EOT}},
+		{0x05, "COM2",
+			{0x30,0x60,0x61,0x70,0xF0,0xF1,EOT},
+			{0x00,0x00,0x00,0x00,0x00,0x00,EOT}},
+		{0x06, "Real-time clock (RTC)",
+			{0x30,0x70,0xF0,0xF1,0xF2,0xF3,0xF3,0xF5,0xF6,EOT},
+			{0x00,0x00,0x00,0x00,0x00,NANA,NANA,0x03,NANA,EOT}},
+		{0x07, "Keyboard",
+			{0x30,0x70,0x72,EOT},
+			{0x00,0x00,0x00,EOT}},
+		{0x08, "Aux I/O",
+			{0x30,0x60,0x61,0x62,0x63,0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,
+			 0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xF0,0xF1,0xF2,0xF3,0xF4,EOT},
+			{0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+			 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,EOT}},
+		{EOT}}},	
 	{0x03, "FDC37C93xFR", {
 		/* FIXME: There's another 0x03 but found on port 0x0d/0x0e! */
 		{EOT}}},