Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 17 Jul 1995 02:38:35 -0700 (PDT)
From:      "Rodney W. Grimes" <rgrimes@gndrsh.aac.dev.com>
To:        filo@yahoo.com (David Filo)
Cc:        hardware@freebsd.org
Subject:   Re: Ideal hardware config for FreeBSD?
Message-ID:  <199507170938.CAA01233@gndrsh.aac.dev.com>
In-Reply-To: <199507170910.CAA16517@lobo.yahoo.com> from "David Filo" at Jul 17, 95 02:10:50 am

next in thread | previous in thread | raw e-mail | index | archive | help
> 
> Hi,
> 
> I would appreciate suggestions on what people feel is the best
> hardware setup to run FreeBSD for highest performance. Mainly I'm
> interested in which SCSI and Ethernet cards to use.  Currently we're
> using Buslogic 946C and 3Com 3c509 cards along with an ASUS P54TP4
> motherboard and a Pentium 100.

For something that works very well, and reasonably fast use an ASUS SC-200
NCR 53C810 based controller (in stock $72.00), and a Compex ENET32-PCI (in
stock $103.00) for 10Mb/s or SMC 9332 (in stock $156.00) for 10/100Mb/s.

> The Buslogic card is currently giving us problems because it's not
> being recognized as a PCI device (instead it shows up as an async ISA
> device).  I've seen this problem discussed in the archives but didn't
> see any solutions.  Only solution I have is to use an older version of
> the Buslogic firmware.  That is, we have problems with version 4.25J
> while version 4.23 seems to work fine.  Which SCSI card is generally
> thought to give the best performance?

The bt946 and aha2940 may have a slight edge over the NCR card due to
the fact they have local memory for firmware, but given the recent
headaches with bt946 cards I would either go for an NCR card or a 2940,
given cost I would (and am) running NCR cards.

I have yet to get the 946C revision E cards to play cleanly in a system,
though I can now get them to at least boot on 4 different MB's.  At the
end of this email is a patch that has been commited to FreeBSD that will
snap these revision E boards into sync mode for you (this is relative
to 2.0.5R):

Can you describe the ``problems'' you see running the 4.25J firmware?
I am getting device timeouts mostly, which it does not recover from,
so once one of the occurs it dies.  On another MB it cases EISA watchdog
times outs (and this is a PCI/ISA board, go figure :-().

> As for Ethernet, we aren't having any problems with the 3Com card.
> Just wondering if there is a better solution, like the 3Com 3c590 for
> example assuming it's supported.

Get the Compex card, can't say enough about them, the FreeBSD driver for
this card is one of the best drivers we have!  (This is a DEC 21040 based
card that uses the if_de.c driver by Matt Thomas.)  It is the card I
sell with every PCI system that wants ethernet, in my book there are no
other options for PCI 10Mb/s ethernet.

> So in general any info on how to construct a high performance FreeBSD
> box would be greatly appreciated.  

Talk to me via email or telephone (finger my email address for the phone
number) that is what I do for a living now :-)


Index: bt742a.c
===================================================================
RCS file: /home/ncvs/src/sys/i386/isa/bt742a.c,v
retrieving revision 1.36
retrieving revision 1.38
diff -c -r1.36 -r1.38
*** 1.36	1995/05/30 08:01:21
--- 1.38	1995/06/25 17:45:05
***************
*** 12,18 ****
   * on the understanding that TFS is not responsible for the correct
   * functioning of this software in any circumstances.
   *
!  *      $Id: bt742a.c,v 1.36 1995/05/30 08:01:21 rgrimes Exp $
   */
  
  /*
--- 12,18 ----
   * on the understanding that TFS is not responsible for the correct
   * functioning of this software in any circumstances.
   *
!  *      $Id: bt742a.c,v 1.38 1995/06/25 17:45:05 joerg Exp $
   */
  
  /*
***************
*** 121,128 ****
  
  /* The following command appeared at FirmWare 3.31 */
  #define	BT_ROUND_ROBIN	0x8f	/* Enable/Disable(default) round robin */
! #define   BT_DISABLE		0x00	/* Parameter value for Disable */
! #define   BT_ENABLE		0x01	/* Parameter value for Enable */
  
  struct bt_cmd_buf {
  	u_char  byte[16];
--- 121,128 ----
  
  /* The following command appeared at FirmWare 3.31 */
  #define	BT_ROUND_ROBIN	0x8f	/* Enable/Disable(default) round robin */
! #define   BT_STRICT_ROUND_ROBIN	0x00	/* Parameter value for strict mode   */
! #define   BT_AGRES_ROUND_ROBIN	0x01	/* Parameter value for backword comp */
  
  struct bt_cmd_buf {
  	u_char  byte[16];
***************
*** 334,340 ****
  	u_char  num_mbx;	/* Number of mailbox */
  	int32	mbx_base;	/* mailbox base address */
  	struct	{
! 		u_char  resv1:2;	/* ??? */
  		u_char	maxsync:1;	/* ON: 10MB/s , OFF: 5MB/s */
  		u_char	resv2:2;	/* ??? */
  		u_char	sync:1;		/* ON: Sync,  OFF: async ONLY!! */
--- 334,341 ----
  	u_char  num_mbx;	/* Number of mailbox */
  	int32	mbx_base;	/* mailbox base address */
  	struct	{
! 		u_char  resv1:1;	/* ??? */
! 		u_char  force:1;	/* ON: force sync */
  		u_char	maxsync:1;	/* ON: 10MB/s , OFF: 5MB/s */
  		u_char	resv2:2;	/* ??? */
  		u_char	sync:1;		/* ON: Sync,  OFF: async ONLY!! */
***************
*** 1306,1311 ****
--- 1307,1317 ----
  	 * If board has a capbility of Syncrhonouse mode,
           * Get a SCSI Synchronous value
  	 */
+ 
+  	if (info->s.force) {                 /* Assume fast sync capability */
+              info->s.sync    = 1;            /* It's appear at 4.25? version */
+              info->s.maxsync = 1;
+         }
  	if ( info->s.sync ) {
          	bt_cmd(unit, 1, sizeof(sync), 100,
  				&sync,BT_GET_SYNC_VALUE,sizeof(sync));
***************
*** 1383,1392 ****
           *    BT_ROUND_ROBIN command  amurai@spec.co.jp
  	 */
  	if ( bID.firm_revision >= '3' ) {
! 		printf("bt%d: Enabling Round robin scheme\n", unit);
! 		bt_cmd(unit, 1, 0, 0, 0, BT_ROUND_ROBIN, BT_ENABLE);
  	} else {
! 		printf("bt%d: Not Enabling Round robin scheme\n", unit);
  	}
  
  }
--- 1389,1398 ----
           *    BT_ROUND_ROBIN command  amurai@spec.co.jp
  	 */
  	if ( bID.firm_revision >= '3' ) {
! 		printf("bt%d: Using Strict Round robin scheme\n", unit);
! 		bt_cmd(unit, 1, 0, 0, 0, BT_ROUND_ROBIN, BT_STRICT_ROUND_ROBIN);
  	} else {
! 		printf("bt%d: Not using Strict Round robin scheme\n", unit);
  	}
  
  }


-- 
Rod Grimes                                      rgrimes@gndrsh.aac.dev.com
Accurate Automation Company                 Reliable computers for FreeBSD



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199507170938.CAA01233>