2006-09-25 10:11:28

by Muli Ben-Yehuda

[permalink] [raw]
Subject: mainline aic94xx firmware woes

Hi,

The recently merged aic94xx in mainline requires external firmware
support. This, in turn, necessitates an initrd/initramfs environment
that includes firmware support to load the firmware. Will a patch to
optionally include the firmware inline in the kernel and thus not
having to use an initramfs be acceptable?

Also, aic94xx does not compile unless FW_LOADER is set in .config due
to missing 'request_firmware'. What's the right thing to do here -
aic94xx selecting it, depending on it, or FW_LOADER providing empty
request_firmware() in case it's compiled out (the last one violates
the principle of least surprise IMHO).

Cheers,
Muli


2006-09-25 10:34:52

by Jesper Juhl

[permalink] [raw]
Subject: Re: mainline aic94xx firmware woes

On 25/09/06, Muli Ben-Yehuda <[email protected]> wrote:
> Hi,
>
> The recently merged aic94xx in mainline requires external firmware
> support. This, in turn, necessitates an initrd/initramfs environment
> that includes firmware support to load the firmware. Will a patch to
> optionally include the firmware inline in the kernel and thus not
> having to use an initramfs be acceptable?
>
It's not my call, but I'd say that if the firmware is not GPL and the
source for that firmware is not available then the answer will be NO
(which would also be my personal opinion btw).

> Also, aic94xx does not compile unless FW_LOADER is set in .config due
> to missing 'request_firmware'. What's the right thing to do here -
> aic94xx selecting it, depending on it, or FW_LOADER providing empty
> request_firmware() in case it's compiled out (the last one violates
> the principle of least surprise IMHO).
>
I'd say aic94xx depending on it with a note in the help text that it
requires it. But that's just my personal opinion.

--
Jesper Juhl <[email protected]>
Don't top-post http://www.catb.org/~esr/jargon/html/T/top-post.html
Plain text mails only, please http://www.expita.com/nomime.html

2006-09-25 11:08:27

by Alan

[permalink] [raw]
Subject: Re: mainline aic94xx firmware woes

Ar Llu, 2006-09-25 am 13:11 +0300, ysgrifennodd Muli Ben-Yehuda:
> that includes firmware support to load the firmware. Will a patch to
> optionally include the firmware inline in the kernel and thus not
> having to use an initramfs be acceptable?

We should not be including non-free firmware in the kernel, we should be
continuing to drive it out into things like initramfs.

> Also, aic94xx does not compile unless FW_LOADER is set in .config due
> to missing 'request_firmware'. What's the right thing to do here -
> aic94xx selecting it, depending on it

Either select or depend

Alan

2006-09-25 11:30:58

by Olaf Hering

[permalink] [raw]
Subject: Re: mainline aic94xx firmware woes

On Mon, Sep 25, Muli Ben-Yehuda wrote:

> The recently merged aic94xx in mainline requires external firmware
> support. This, in turn, necessitates an initrd/initramfs environment
> that includes firmware support to load the firmware. Will a patch to
> optionally include the firmware inline in the kernel and thus not
> having to use an initramfs be acceptable?

initramfs is always in use. Wether you pass in an additional image via
the bootloader is up to you.
Adding the firmware and required tools to your vmlinux binary is trivial
with CONFIG_INITRAMFS_SOURCE="/some/file"

> Also, aic94xx does not compile unless FW_LOADER is set in .config due
> to missing 'request_firmware'. What's the right thing to do here -
> aic94xx selecting it, depending on it, or FW_LOADER providing empty
> request_firmware() in case it's compiled out (the last one violates
> the principle of least surprise IMHO).

select FW_LOADER is likely the right fix.

2006-09-25 11:39:07

by James Bottomley

[permalink] [raw]
Subject: Re: mainline aic94xx firmware woes

On Mon, 2006-09-25 at 12:33 +0100, Alan Cox wrote:
> We should not be including non-free firmware in the kernel, we should be
> continuing to drive it out into things like initramfs.

Right, which is why this was done as one of the conditions for accepting
the driver

> > Also, aic94xx does not compile unless FW_LOADER is set in .config due
> > to missing 'request_firmware'. What's the right thing to do here -
> > aic94xx selecting it, depending on it
>
> Either select or depend

select, I think.

James


2006-09-25 14:07:34

by Muli Ben-Yehuda

[permalink] [raw]
Subject: Re: mainline aic94xx firmware woes

On Mon, Sep 25, 2006 at 01:30:42PM +0200, Olaf Hering wrote:
> On Mon, Sep 25, Muli Ben-Yehuda wrote:
>
> > The recently merged aic94xx in mainline requires external firmware
> > support. This, in turn, necessitates an initrd/initramfs environment
> > that includes firmware support to load the firmware. Will a patch to
> > optionally include the firmware inline in the kernel and thus not
> > having to use an initramfs be acceptable?
>
> initramfs is always in use. Wether you pass in an additional image via
> the bootloader is up to you.
> Adding the firmware and required tools to your vmlinux binary is trivial
> with CONFIG_INITRAMFS_SOURCE="/some/file"

Thanks, I'll look into this.

Cheers,
Muli

2006-09-25 14:10:24

by Muli Ben-Yehuda

[permalink] [raw]
Subject: Re: mainline aic94xx firmware woes

On Mon, Sep 25, 2006 at 06:38:56AM -0500, James Bottomley wrote:
> On Mon, 2006-09-25 at 12:33 +0100, Alan Cox wrote:
> > We should not be including non-free firmware in the kernel, we should be
> > continuing to drive it out into things like initramfs.
>
> Right, which is why this was done as one of the conditions for accepting
> the driver

Fair enough.

> > > Also, aic94xx does not compile unless FW_LOADER is set in .config due
> > > to missing 'request_firmware'. What's the right thing to do here -
> > > aic94xx selecting it, depending on it
> >
> > Either select or depend
>
> select, I think.

aic94xx relies on external firmware and thus requires FW_LOADER.

Signed-off-by: Muli Ben-Yehuda <[email protected]>

diff -r 2e01eba444f0 drivers/scsi/aic94xx/Kconfig
--- a/drivers/scsi/aic94xx/Kconfig Mon Sep 25 10:07:49 2006 +0700
+++ b/drivers/scsi/aic94xx/Kconfig Mon Sep 25 17:08:09 2006 +0300
@@ -28,6 +28,7 @@ config SCSI_AIC94XX
tristate "Adaptec AIC94xx SAS/SATA support"
depends on PCI
select SCSI_SAS_LIBSAS
+ select FW_LOADER
help
This driver supports Adaptec's SAS/SATA 3Gb/s 64 bit PCI-X
AIC94xx chip based host adapters.

2006-09-25 20:50:57

by Denys Vlasenko

[permalink] [raw]
Subject: Re: mainline aic94xx firmware woes

On Monday 25 September 2006 12:11, Muli Ben-Yehuda wrote:
> Hi,
>
> The recently merged aic94xx in mainline requires external firmware
> support. This, in turn, necessitates an initrd/initramfs environment
> that includes firmware support to load the firmware. Will a patch to
> optionally include the firmware inline in the kernel and thus not
> having to use an initramfs be acceptable?
>
> Also, aic94xx does not compile unless FW_LOADER is set in .config due
> to missing 'request_firmware'. What's the right thing to do here -
> aic94xx selecting it, depending on it, or FW_LOADER providing empty
> request_firmware() in case it's compiled out (the last one violates
> the principle of least surprise IMHO).

While we're at it, already existing aicXXXX driver continues to be
insanely large due to excessive inlining of I/O routines:

# x86_64-pc-linux-gnu-size aic7xxx.o
text data bss dec hex filename
118978 22673 568 142219 22b8b aic7xxx.o

This is not even helping performance one iota.
Call overhead for these routines pales in comparison
to I/O instruction stalls, which is in turn pales in comparison to
disk seek delays.

Please do something with it.
--
vda