Subject: Re: kern/32342: OpenBSD firmware loading framework
To: None <kern-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: Rui Paulo <rpaulo@fnop.net>
List: netbsd-bugs
Date: 12/19/2005 23:05:02
The following reply was made to PR kern/32342; it has been noted by GNATS.

From: Rui Paulo <rpaulo@fnop.net>
To: Iain Hibbert <plunky@rya-online.net>
Cc: gnats-bugs@netbsd.org, kern-bug-people@netbsd.org,
	gnats-admin@netbsd.org, netbsd-bugs@netbsd.org
Subject: Re: kern/32342: OpenBSD firmware loading framework
Date: Mon, 19 Dec 2005 23:01:43 +0000

 On 2005.12.19 22:46:16 +0000, Iain Hibbert wrote:
 | On Mon, 19 Dec 2005, Jason Thorpe wrote:
 | 
 | > The following reply was made to PR kern/32342; it has been noted by GNATS.
 | >
 | > From: Jason Thorpe <thorpej@shagadelic.org>
 | > To: gnats-bugs@netbsd.org
 | > Cc: kern-bug-people@netbsd.org, gnats-admin@netbsd.org,
 | > 	netbsd-bugs@netbsd.org
 | > Subject: Re: kern/32342: OpenBSD firmware loading framework
 | > Date: Mon, 19 Dec 2005 14:20:53 -0800
 | >
 | >  On Dec 19, 2005, at 2:10 PM, plunky@rya-online.net wrote:
 | >
 | >  > 	I want to load driver firmware file from inside the kernel and there
 | >  > 	is no way currently to do that. Christos Zoulas mentioned on tech-
 | >  > kern
 | >  > 	that OpenBSD had a framwork to handle this so I took a look. This is
 | >  > 	the result, please find below a shar archive containing two new
 | >  > files:
 | >  >
 | >  > 		sys/dev/firmload.c
 | >  > 		share/man/man9/load_firmware.9
 | >
 | >  I'm not sure I like this:
 | >
 | >  - Tries to read it all in at once (into a wired kernel buffer
 | >  allocated from kmem_map).  It would be better to allow a driver to
 | >  read in pieces at a time, potentially into pageable memory.
 | 
 | that is true - there is an upper limit (seems rather generous currently)
 | though and I would expect that since its firmware it would be written to
 | the device then free()d ?  Thats what I just did for my device, not sure
 | how it has generally been used in OpenBSD..
 | 
 | I also did not especially like the mismatched
 | 
 | load_firmware(..)
 | free(.., M_DEVBUF)
 | 
 | I think free_firmware() would be preferable, even if just a #define ?
 
 Maybe. Why did you changed the name from loadfirmware to load_firmware
 BTW ?
 
 | 
 | >  - It should be possible to set the directory search path via sysctl,
 | >  rather than hard-coding "/etc/firmware".
 | 
 | Ah, I thought something like that when I first looked at it, but forgot.
 | Easy to add, however..
 | 
 | hw.firmware.directory = /etc/firmware
 | hw.firmware.max_size =
 
 I suppose they should be under kern, not hw.
 
 		-- Rui Paulo