From owner-cvs-all Mon Jul 3 19:20:33 2000 Delivered-To: cvs-all@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (Postfix) with ESMTP id 3D0FD37C150; Mon, 3 Jul 2000 19:20:31 -0700 (PDT) (envelope-from mjacob@FreeBSD.org) Received: (from mjacob@localhost) by freefall.freebsd.org (8.9.3/8.9.2) id TAA88050; Mon, 3 Jul 2000 19:20:31 -0700 (PDT) (envelope-from mjacob@FreeBSD.org) Message-Id: <200007040220.TAA88050@freefall.freebsd.org> From: Matt Jacob Date: Mon, 3 Jul 2000 19:20:31 -0700 (PDT) To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/pci isp_pci.c X-FreeBSD-CVS-Branch: RELENG_4 Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG mjacob 2000/07/03 19:20:31 PDT Modified files: (Branch: RELENG_4) sys/pci isp_pci.c Log: MFC (1.47): Change startup locking. Use new isp_handle_index function for indexing off of handles to get dma maps. MFC (1.46): Clean up firmware load issues and remove darn near all config options. Force alphas to prefer mem mapping as the default. Basically, we have a pointer to a function which we can call which will return us a pointer to firmware for the card we have. We call this function (if it's non-NULL) with the address of our mdvec f/w pointer. The way this works is that if ispfw (as a module or a static) is loaded, it initializes the pointer in isp_pci, so we can call into to it to fetch a pointer to a f/w set. If ispfw is MOD_UNLOADed, it's retained a pointer to our mdvec f/w pointers, which then get zeroed out so we don't have any references to data that's now gone from kernel memory. Removing the f/w saves ~360KBytes. Alas, there is no autounload mechanism that works for is here. Revision Changes Path 1.45.2.1 +58 -115 src/sys/pci/isp_pci.c To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message