Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 25 Aug 1996 18:33:17 -0400 (EDT)
From:      Chuck Robey <chuckr@glue.umd.edu>
To:        Thomas Sparrevohn <staff@kyklopen.ping.dk>
Cc:        freebsd-current@freebsd.org
Subject:   Re: My Gumby 82439HX diffs 
Message-ID:  <Pine.OSF.3.95.960825182536.28383B-100000@skipper.eng.umd.edu>
In-Reply-To: <Pine.BSI.3.95.960818003546.491A-100000@kyklopen>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 18 Aug 1996, Thomas Sparrevohn wrote:

> 
> 
> Thanks to everybody that responded. But I must have hit my head with a
> brick and the M_EN's was wrong. Please try this patch it contains the
> registerdump for the 82439HX and the 82371SB. The only real difference
> between the 82371SB and the 82371FB that concerns the registers dumped 
> is the APIC select field. 

I saw some requests for this patch again, so I'm reposting it with my
comments.  If you reboot normally, there is no change, but if you reboot
-v, well here is what I got (and I'm very pleased with):

exiting on signal 15                                  
R# Output Type: Open drain output,                                  
      Global TXC disabled                                  
      Cache: 512K pipelined-burst, NA Disable: disabled,                        
      Extended Cacheability disabled, SCFMI disabled, L1 enabled                
      Speculative Leadoff enabled, Turn-around Insertion enabled,               
      Memory Address Drive Strength: 12mA/12mA, 64 Mbit mode disabled           
      Hole: None, EDO Detect mode disabled,                                  
      DRAM Refrest Rate 66Mhz  
      Turbo Read Leadoff disabled,      
      DRAM Read Burst Timing: x-2-2-2/x-3-3-3,  
      DRAM Write Burst Timing: x-2-2-2,  
      Fast RAS to CAS Delay: 2 clocks,  
      DRAM leadoff Timing: Read 6, Write 5, Precharge 3, Refresh 4  
chip1 <Intel 82371SB (Triton II) PCI-ISA bridge> rev 0 on pci0:7:0  
      DMA Reserved Page Register Aliasing disabled  
      8-Bit I/O Recovery: enabled       
      I/O Recovery Timing: 8-bit 1 clocks, 16-bit 1 clocks  
      APIC Chip Select: enabled         
      Extended BIOS: enabled  
      Lower BIOS: enabled  
      Coprocessor IRQ13: enabled        
      Mouse IRQ12: disabled  
      BIOSCS# Write Protect: disabled   
      Keyboard Controller Address Location: enabled  
      RTC Address Location: enabled     
      Interrupt Routing: A: IRQ10, B: IRQ11, C: disabled, D: disabled   
              MB0: disabled, MB1:  

I'm not competent in this area of code, so I can't commit it, but I hope
someone else does.

> 
> This is the new patch.
> 
> Regards 
>   Thomas
> 
> *** pcisupport.c#ctm	Thu Aug 15 21:42:23 1996
> --- pcisupport.c	Sun Aug 18 00:32:12 1996
> ***************
> *** 131,136 ****
> --- 131,140 ----
>   		return ("Intel 82437 (Triton) PCI cache memory controller");
>   	case 0x122e8086:
>   		return ("Intel 82371 (Triton) PCI-ISA bridge");
> + 	case 0x12508086:
> + 	        return ("Intel 82439HX (Triton II) PCI cache memory controller");
> + 	case 0x70008086:
> + 	        return ("Intel 82371SB (Triton II) PCI-ISA bridge");
>   	case 0x04961039:
>   		return ("SiS 85c496");
>   	case 0x04061039:
> ***************
> *** 463,468 ****
> --- 467,562 ----
>       { 0 }
>   };
>   
> + static const struct condmsg conf82439hx[] =
> + {
> +     /* PCON -- PCI Control Register */
> +     { 0x00, 0x00, 0x00, M_TR, "\tDRAM ECC/Parity:" },
> +     { 0x50, 0x80, 0x80, M_EQ, " ECC" },
> +     { 0x50, 0x80, 0x00, M_EQ, " Parity" },
> +     { 0x00, 0x00, 0x00, M_TR, ", ECC Test " },
> +     { 0x50, 0x40, 0x40, M_EN, 0 },
> +     { 0x00, 0x00, 0x00, M_TR, ",\n\tShutdown to Port 92 " },
> +     { 0x50, 0x20, 0x20, M_EN, 0 },
> +     { 0x00, 0x00, 0x00, M_TR, ", Dual Processor NA# " },
> +     { 0x50, 0x10, 0x10, M_EN, 0 },
> +     { 0x00, 0x00, 0x00, M_TR, ",\n\tPeer Concurrency " },
> +     { 0x50, 0x08, 0x08, M_EN, 0 },
> +     /* XXX I am not sure thats the SERR# output type is usefull */
> +     { 0x00, 0x00, 0x00, M_TR, ", SERR# Output Type:" },
> +     { 0x50, 0x04, 0x04, M_EQ, " Normal output" },
> +     { 0x50, 0x04, 0x00, M_EQ, " Open drain output" },
> +     { 0x00, 0x00, 0x00, M_TR, ",\n\tGlobal TXC " },
> +     { 0x50, 0x01, 0x01, M_EN, 0 },
> + 
> +     /* CC -- Cache Control Regsiter */
> +     { 0x00, 0x00, 0x00, M_TR, "\n\tCache:" },
> +     { 0x52, 0xc0, 0x80, M_EQ, " 512K" },
> +     { 0x52, 0xc0, 0x40, M_EQ, " 256K" },
> +     { 0x52, 0xc0, 0x00, M_EQ, " NO" },
> +     { 0x52, 0x30, 0x00, M_EQ, " pipelined-burst" },
> +     { 0x52, 0x30, 0x10, M_EQ, " reserved" },
> +     { 0x52, 0x30, 0x20, M_EQ, " reserved" },
> +     { 0x52, 0x30, 0x30, M_EQ, " dual-bank pipelined-burst" },
> +     { 0x00, 0x00, 0x00, M_TR, ", NA Disable: " },
> +     { 0x52, 0x04, 0x04, M_EN, 0 },
> +     { 0x00, 0x00, 0x00, M_TR, ",\n\tExtended Cacheability " },
> +     { 0x52, 0x04, 0x04, M_EN, 0 },
> +     { 0x00, 0x00, 0x00, M_TR, ", SCFMI "},
> +     { 0x52, 0x02, 0x02, M_EN, 0 },
> +     { 0x00, 0x00, 0x00, M_TR, ", L1 " },
> +     { 0x52, 0x01, 0x01, M_EN, 0 },
> + 
> +     /* DRAMEC -- DRAM Extended Control Register */
> +     { 0x00, 0x00, 0x00, M_TR, "\n\tSpeculative Leadoff " },
> +     { 0x56, 0x10, 0x10, M_EN, 0 },
> +     { 0x00, 0x00, 0x00, M_TR, ", Turn-around Insertion " },
> +     { 0x56, 0x08, 0x08, M_EN, 0 },
> +     { 0x00, 0x00, 0x00, M_TR, ",\n\tMemory Address Drive Strength: " },
> +     { 0x56, 0x06, 0x00, M_EQ, "8mA/8mA" },
> +     { 0x56, 0x06, 0x02, M_EQ, "8mA/12mA" },
> +     { 0x56, 0x06, 0x04, M_EQ, "12mA/8mA" },
> +     { 0x56, 0x06, 0x06, M_EQ, "12mA/12mA" },
> +     { 0x00, 0x00, 0x00, M_TR, ", 64 Mbit mode " },
> +     { 0x56, 0x01, 0x01, M_EN, 0 },
> + 
> +     /* DRAMC - DRAM Control Register */
> +     { 0x00, 0x00, 0x00, M_TR, "\n\tHole: " },
> +     { 0x57, 0xc0, 0x00, M_EQ, "None" },
> +     { 0x57, 0xc0, 0x40, M_EQ, "512KB - 640KB" },
> +     { 0x00, 0x00, 0x00, M_TR, ", EDO Detect mode " },
> +     { 0x57, 0x04, 0x04, M_EN, 0 },
> +     { 0x00, 0x00, 0x00, M_TR, ",\n\tDRAM Refrest Rate " },
> +     { 0x57, 0x07, 0x00, M_EQ, "Disabled" },
> +     { 0x57, 0x07, 0x01, M_EQ, "50Mhz" },
> +     { 0x57, 0x07, 0x02, M_EQ, "60Mhz" },
> +     { 0x57, 0x07, 0x03, M_EQ, "66Mhz" },
> + 
> +     /* DRAMT -- DRAM Timing Register */
> +     { 0x00, 0x00, 0x00, M_TR, "\n\tTurbo Read Leadoff " },
> +     { 0x58, 0x80, 0x80, M_EN, 0 },
> +     { 0x00, 0x00, 0x00, M_TR, ",\n\tDRAM Read Burst Timing: " },
> +     { 0x58, 0x60, 0x00, M_EQ, "x-4-4-4/x-4-4-4" },
> +     { 0x58, 0x60, 0x20, M_EQ, "x-3-3-3/x-4-4-4" },
> +     { 0x58, 0x60, 0x40, M_EQ, "x-2-2-2/x-3-3-3" },
> +     { 0x00, 0x00, 0x00, M_TR, ",\n\tDRAM Write Burst Timing: " },
> +     { 0x58, 0x18, 0x00, M_EQ, "x-4-4-4" },
> +     { 0x58, 0x18, 0x08, M_EQ, "x-3-3-3" },
> +     { 0x58, 0x18, 0x10, M_EQ, "x-2-2-2" },
> +     { 0x00, 0x00, 0x00, M_TR, ",\n\tFast RAS to CAS Delay: " },
> +     { 0x58, 0x04, 0x00, M_EQ, "3" },
> +     { 0x58, 0x04, 0x04, M_EQ, "2" },
> +     { 0x00, 0x00, 0x00, M_TR, " clocks,\n\tDRAM leadoff Timing: " },
> +     { 0x58, 0x03, 0x00, M_EQ, "Read 7, Write 6, Precharge 3, Refresh 4" },
> +     { 0x58, 0x03, 0x01, M_EQ, "Read 6, Write 5, Precharge 3, Refresh 4" },
> +     { 0x58, 0x03, 0x02, M_EQ, "Read 7, Write 6, Precharge 4, Refresh 5" },
> +     { 0x58, 0x03, 0x03, M_EQ, "Read 6, Write 5, Precharge 4, Refresh 5" },
> +     { 0x00, 0x00, 0x00, M_TR, "\n" },
> +     
> +     /* end marker */
> +     { 0 }
> + 
> + };
> + 
>   static const struct condmsg conf82371fb[] =
>   {
>       /* IORT -- ISA I/O Recovery Timer Register */
> ***************
> *** 528,533 ****
> --- 622,707 ----
>       { 0 }
>   };
>   
> + /* The 82371fb and the 82371sb are allmost identical in
> +    function 0, but a few registers values are different */
> + 
> + static const struct condmsg conf82371sb[] =
> + {
> +     /* IORT -- ISA I/O Recovery Timer Register */
> +     { 0x00, 0x00, 0x00, M_TR, "\tDMA Reserved Page Register Aliasing " },
> +     { 0x4c, 0x80, 0x80, M_EN, 0 },
> +     { 0x00, 0x00, 0x00, M_TR, "\n\t8-Bit I/O Recovery: " },
> +     { 0x4c, 0x40, 0x40, M_EN, 0 },
> +     { 0x00, 0x00, 0x00, M_TR, "\n\tI/O Recovery Timing: 8-bit " },
> +     { 0x4c, 0x40, 0x00, M_EQ, "3.5" },
> +     { 0x4c, 0x78, 0x48, M_EQ, "1" },
> +     { 0x4c, 0x78, 0x50, M_EQ, "2" },
> +     { 0x4c, 0x78, 0x58, M_EQ, "3" },
> +     { 0x4c, 0x78, 0x60, M_EQ, "4" },
> +     { 0x4c, 0x78, 0x68, M_EQ, "5" },
> +     { 0x4c, 0x78, 0x70, M_EQ, "6" },
> +     { 0x4c, 0x78, 0x78, M_EQ, "7" },
> +     { 0x4c, 0x78, 0x40, M_EQ, "8" },
> +     { 0x00, 0x00, 0x00, M_TR, " clocks, 16-bit " },
> +     { 0x4c, 0x04, 0x00, M_EQ, "3.5" },
> +     { 0x4c, 0x07, 0x05, M_EQ, "1" },
> +     { 0x4c, 0x07, 0x06, M_EQ, "2" },
> +     { 0x4c, 0x07, 0x07, M_EQ, "3" },
> +     { 0x4c, 0x07, 0x04, M_EQ, "4" },
> +     { 0x00, 0x00, 0x00, M_TR, " clocks\n" },
> + 
> +     /* XBCS -- X-Bus Chip Select Register 4e-4f in PIIX3 */
> +     { 0x00, 0x00, 0x00, M_TR, "\tAPIC Chip Select: " },
> +     { 0x4f, 0x01, 0x01, M_EN, 0 },
> +     { 0x00, 0x00, 0x00, M_TR, "\n\tExtended BIOS: " },
> +     { 0x4e, 0x80, 0x80, M_EN, 0 },
> +     { 0x00, 0x00, 0x00, M_TR, "\n\tLower BIOS: " },
> +     { 0x4e, 0x40, 0x40, M_EN, 0 },
> +     { 0x00, 0x00, 0x00, M_TR, "\n\tCoprocessor IRQ13: " },
> +     { 0x4e, 0x20, 0x20, M_EN, 0 },
> +     { 0x00, 0x00, 0x00, M_TR, "\n\tMouse IRQ12: " },
> +     { 0x4e, 0x10, 0x10, M_EN, 0 },
> +     { 0x00, 0x00, 0x00, M_TR, "\n\tBIOSCS# Write Protect: " },
> +     { 0x4e, 0x04, 0x04, M_EN, 0 },
> +     { 0x00, 0x00, 0x00, M_TR, "\n\tKeyboard Controller Address Location: " },
> +     { 0x4e, 0x02, 0x02, M_EN, 0 },
> +     { 0x00, 0x00, 0x00, M_TR, "\n\tRTC Address Location: " },
> +     { 0x4e, 0x01, 0x01, M_EN, 0 },
> +     { 0x00, 0x00, 0x00, M_TR, "\n" },
> +      
> +     { 0x00, 0x00, 0x00, M_TR, "\tInterrupt Routing: " },
> + #define PIRQ(x, n) \
> +     { 0x00, 0x00, 0x00, M_TR, n ": " }, \
> +     { x, 0x80, 0x80, M_EQ, "disabled" }, \
> +     { x, 0xc0, 0x40, M_EQ, "[shared] " }, \
> +     { x, 0x8f, 0x03, M_EQ, "IRQ3" }, \
> +     { x, 0x8f, 0x04, M_EQ, "IRQ4" }, \
> +     { x, 0x8f, 0x05, M_EQ, "IRQ5" }, \
> +     { x, 0x8f, 0x06, M_EQ, "IRQ6" }, \
> +     { x, 0x8f, 0x07, M_EQ, "IRQ7" }, \
> +     { x, 0x8f, 0x09, M_EQ, "IRQ9" }, \
> +     { x, 0x8f, 0x0a, M_EQ, "IRQ10" }, \
> +     { x, 0x8f, 0x0b, M_EQ, "IRQ11" }, \
> +     { x, 0x8f, 0x0c, M_EQ, "IRQ12" }, \
> +     { x, 0x8f, 0x0e, M_EQ, "IRQ14" }, \
> +     { x, 0x8f, 0x0f, M_EQ, "IRQ15" }
> + 
> +     /* Interrupt routing */
> +     PIRQ(0x60, "A"),
> +     PIRQ(0x61, ", B"),
> +     PIRQ(0x62, ", C"),
> +     PIRQ(0x63, ", D"),
> +     PIRQ(0x70, "\n\t\tMB0"),
> +     PIRQ(0x71, ", MB1"),
> + 
> +     { 0x00, 0x00, 0x00, M_TR, "\n" },
> + 
> + #undef PIRQ
> + 
> +     /* XXX - do DMA routing, too? */
> +     { 0 }
> + };
> + 
>   #if 0				/* xxx not used */
>   static const struct condmsg conf82371fb2[] =
>   {
> ***************
> *** 615,620 ****
> --- 789,800 ----
>   		break;
>   	case 0x122e8086:
>   		writeconfig (config_id, conf82371fb);
> + 		break;
> +         case 0x12508086:
> + 	        writeconfig (config_id, conf82439hx);
> + 		break;
> +         case 0x70008086:
> + 	        writeconfig (config_id, conf82371sb);
>   		break;
>   #if 0
>   	case 0x00011011: /* DEC 21050 */
> 
> 
> 
> 

----------------------------+-----------------------------------------------
Chuck Robey                 | Interests include any kind of voice or data 
chuckr@eng.umd.edu          | communications topic, C programming, and Unix.
9120 Edmonston Ct #302      |
Greenbelt, MD 20770         | I run Journey2 and n3lxx, both FreeBSD
(301) 220-2114              | version 2.2 current -- and great FUN!
----------------------------+-----------------------------------------------




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.OSF.3.95.960825182536.28383B-100000>