Bug#242866: updated tg3.c patch

2006-08-17 Thread ldoolitt
The most recent tg3.c patch posted here (by Herbert Xu on Tue, 11 May
2004) does not apply cleanly to linux-2.6.17.  No surprise, a lot has
changed in the last two years.  I applied it by hand (it wasn't hard),
and I can verify that the result (freshened patch attached) compiles
without error.  I can also set up tg3 files for the firmware-nonfree
package, and supply kernel images for i386 and/or amd64.  Testers?

- Larry
--- linux-2.6-2.6.17/drivers/net/tg3.c  2006-06-17 18:49:35.0 -0700
+++ linux-17-hack/drivers/net/tg3.c 2006-08-17 20:23:34.0 -0700
@@ -5,6 +5,7 @@
  * Copyright (C) 2001, 2002, 2003 Jeff Garzik ([EMAIL PROTECTED])
  * Copyright (C) 2004 Sun Microsystems Inc.
  * Copyright (C) 2005 Broadcom Corporation.
+ * Portions copyright 2004 Nathanael Nerode  <[EMAIL PROTECTED]>
  *
  * Firmware is:
  * Derived from proprietary unpublished source code,
@@ -40,6 +41,8 @@
 #include 
 #include 
 
+#include 
+
 #include 
 
 #include 
@@ -4813,130 +4816,6 @@
return 0;
 }
 
-#define TG3_FW_RELEASE_MAJOR   0x0
-#define TG3_FW_RELASE_MINOR0x0
-#define TG3_FW_RELEASE_FIX 0x0
-#define TG3_FW_START_ADDR  0x0800
-#define TG3_FW_TEXT_ADDR   0x0800
-#define TG3_FW_TEXT_LEN0x9c0
-#define TG3_FW_RODATA_ADDR 0x080009c0
-#define TG3_FW_RODATA_LEN  0x60
-#define TG3_FW_DATA_ADDR   0x08000a40
-#define TG3_FW_DATA_LEN0x20
-#define TG3_FW_SBSS_ADDR   0x08000a60
-#define TG3_FW_SBSS_LEN0xc
-#define TG3_FW_BSS_ADDR0x08000a70
-#define TG3_FW_BSS_LEN 0x10
-
-static u32 tg3FwText[(TG3_FW_TEXT_LEN / sizeof(u32)) + 1] = {
-   0x, 0x1003, 0x, 0x000d, 0x000d, 0x3c1d0800,
-   0x37bd3ffc, 0x03a0f021, 0x3c100800, 0x2610, 0x0e18, 0x,
-   0x000d, 0x3c1d0800, 0x37bd3ffc, 0x03a0f021, 0x3c100800, 0x26100034,
-   0x0e00021c, 0x, 0x000d, 0x, 0x, 0x,
-   0x27bdffe0, 0x3c1cc000, 0xafbf0018, 0xaf80680c, 0x0e4c, 0x241b2105,
-   0x9785, 0x97870002, 0x9782002c, 0x9783002e, 0x3c040800, 0x248409c0,
-   0xafa00014, 0x00021400, 0x00621825, 0x00052c00, 0xafa30010, 0x8f860010,
-   0x00e52825, 0x0e60, 0x24070102, 0x3c02ac00, 0x34420100, 0x3c03ac01,
-   0x34630100, 0xaf820490, 0x3c02, 0xaf820494, 0xaf830498, 0xaf82049c,
-   0x24020001, 0xaf825ce0, 0x0e3f, 0xaf825d00, 0x0e000140, 0x,
-   0x8fbf0018, 0x03e8, 0x27bd0020, 0x2402, 0xaf825404, 0x8f835400,
-   0x34630400, 0xaf835400, 0xaf825404, 0x3c020800, 0x24420034, 0xaf82541c,
-   0x03e8, 0xaf805400, 0x, 0x, 0x3c020800, 0x34423000,
-   0x3c030800, 0x34633000, 0x3c040800, 0x348437ff, 0x3c010800, 0xac220a64,
-   0x24020040, 0x3c010800, 0xac220a68, 0x3c010800, 0xac200a60, 0xac60,
-   0x24630004, 0x0083102b, 0x5040fffd, 0xac60, 0x03e8, 0x,
-   0x00804821, 0x8faa0010, 0x3c020800, 0x8c420a60, 0x3c040800, 0x8c840a68,
-   0x8fab0014, 0x24430001, 0x0044102b, 0x3c010800, 0xac230a60, 0x1443,
-   0x4021, 0x3c010800, 0xac200a60, 0x3c020800, 0x8c420a60, 0x3c030800,
-   0x8c630a64, 0x9124, 0x00021140, 0x00431021, 0x00481021, 0x25080001,
-   0xa044, 0x29020008, 0x1440fff4, 0x25290001, 0x3c020800, 0x8c420a60,
-   0x3c030800, 0x8c630a64, 0x8f84680c, 0x00021140, 0x00431021, 0xac440008,
-   0xac45000c, 0xac460010, 0xac470014, 0xac4a0018, 0x03e8, 0xac4b001c,
-   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-   0, 0, 0, 0, 0, 0,
-   0x0208, 0x, 0x0a0001e3, 0x3c0a0001, 0x0a0001e3, 0x3c0a0002,
-   0x0a0001e3, 0x, 0x0a0001e3, 0x, 0x0a0001e3, 0x,
-   0x0a0001e3, 0x, 0x0a0001e3, 0x, 0x0a0001e3, 0x,
-   0x0a0001e3, 0x, 0x0a0001e3, 0x, 0x0a0001e3, 0x,
-   0x0a0001e3, 0x3c0a0007, 0x0a0001e3, 0x3c0a0008, 0x0a0001e3, 0x3c0a0009,
-   0x0a0001e3, 0x, 0x0a0001e3, 0x, 0x0a0001e3, 0x3c0a000b,
-   0x0a0001e3, 0x3c0a000c, 0x0a0001e3, 0x3c0a000d, 0x0a0001e3, 0x,
-   0x0a0001e3, 0x, 0x0a0001e3, 0x3c0a000e, 0x0a0001e3, 0x,
-   0x0a0001e3, 0x, 0x0a0001e3, 0x, 0x0a0001e3, 0x,
-   0x0a0001e3, 0x, 0x0a0001e3, 0x, 0x0a0001e3, 0x,
-   0x0a0001e3, 0x, 0x0a0001e3, 0x3c0a0013, 0x0a0001e3, 0x3c0a0014,
-   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-   0x27bdffe0, 0x1821, 0x1021, 0xafbf0018, 0xafb10014, 0xafb00010,
-   0x3c010800, 0x00220821, 0xac200a70, 0x3c010800, 0x00220821, 0xac200a74,
-   0x3c010800, 0x00220821, 0xac200a78, 0x2463

Re: linux-2.6: includes nondistributable and non-free binary firmware

2006-08-17 Thread ldoolitt
On Thu, Aug 17, 2006 at 10:06:44PM +0200, maximilian attems wrote:
> enough time is lost with any of those dfsg firmware wankers,
> that do _zero_ work upstream or on the licensing front.

I repeat my offer to patch any (well, almost any) of these
drivers to use request_firmware().  I need a volunteer who
has the affected hardware and is willing to test my changes.
It would also be nice if debian kernel developers expressed
interest in incorporating such work (if any) for etch.

One alternative sven mentioned is to move these drivers to
non-free.  I don't see any existing framework for such
package(s), but that would indeed involve less coding
and debugging.

I am concerned about etch, and the pipeline from upstream
to Debian is long enough that I think it's too late to
work upstream.

At least 12 of the 59 files are probably licensed "free enough"
for upstream, so upstream will have limited interest in those
cases.

> the drivers are free not-*** non-free.

I agree the drivers are free.  That's why I hope we can eventually
separate them from the non-free firmware they include.

 - Larry


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: linux-2.6: includes nondistributable and non-free binary firmware

2006-08-17 Thread ldoolitt
Kyle -

On Thu, Aug 17, 2006 at 02:41:52PM -0400, Kyle McMartin wrote:
> No wonder you're so *** enthusiastic about removing support for
> hardware. You don't own any of it. How *** convenient.

Can I deduce from this that _you_ own some of the affected hardware?
If I patch in request_firmware() support for that driver, would you
be willing to test it?

> Since we seem to be pissing all over the spirit of the Social Contract
> in the name of some holy quest for the unattainable goal of cooperative
> vendors,

Fully cooperative vendors would be nice, but I agree in most cases
that's unattainable.  Until that miraculous day arrives, the firmware
that they supply needs to be removed from the free Linux kernel, have
its license checked, and put into the firmware-nonfree package set up
for that purpose.  If you disagree with that process, say so.

> Now, I don't think you understand what "preferred form of modification" is.

Trust me, as someone who has written and maintained firmware,
I know what the "preferred form of modification" is.

> In all likelihood, the engineer who wrote, for example, the QLogic driver,
> never even touched the firmware, never once questioned it, another engineer
> simply gave him an array to copy to the card. The engineer who wrote the
> driver didn't know, or care, about what should have just been on an EEPROM,
> all he cared about was properly writing a Linux driver to talk to the
> hardware.

You're probably right, since the Linux driver was probably written after
the Windows driver.  In a small company there is usually good communication
and shared debugging sessions between the firmware author(s) and their first
"client", that is, the author of the first driver.

> This is the difference between a piece of firmware, and an actual
> binary blob that something calls into.

I'm sorry if I used the word "blob" for something unusual.
Binary blobs that get linked to by the kernel and executed are not
firmware, and from a practical perspective are worse.  Linus doesn't
let those into the kernel, and taints kernels if they are loaded
as modules.  Legally, library blobs (executed by the Linux processor)
and firmware blobs (executed by outboard controllers) are not all that
different.

> Now, don't you have something better to do than hurt our users?

I can think of a few snide replies to this.  Can we instead
please keep emotion out of this discussion?  Can we agree that
etch must have a DFSG-free Linux kernel, and we need to work
together to make that kernel work as well as possible for as
many users as possible?

> PS: I feel it again worth mentioning, that even if there were no firmware
> in the driver, you would just get the exact same data if you pulled the
> EEPROM and stuck it in a reader. 

The origin of our problem is that manufacturers have taken to
saving themselves a little money by leaving the EEPROM off their
boards, and putting the firmware on the MS-Windows[TM] driver CD
instead.  While they are presumably happy to let Linux users use
that same firmware, the legal and practical mechanism to have
that happen is (in the cases I flagged) broken.

If you take an EEPROM and stick it in a reader, you (the owner
of the hardware) probably have fair use rights to put it on a
disk and boot your hardware from it.  Since that firmware is
copyrighted, and you don't own the copyright, you do not have
the right to post it to the web or submit it to the mainline
Linux kernel tree.

- Larry


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



linux-2.6: includes nondistributable and non-free binary firmware

2006-08-17 Thread ldoolitt
Maks -

On Thu, Aug 17, 2006 at 06:05:30PM +0200, maximilian attems wrote:
> > Something about [bug #242866] seems broken, however,
> > because RC-buggy linux-2.6 packages keep making it into
> > testing.  Is it obvious how to keep this from happening,
> > without starting a new bug attached to linux-2.6?
> 
> if you feel like it reassign it,
> anyway linux-2.6 is frozen and propagation to testing
> is coordinated with the release and the d-i team.

Sorry, I don't understand this statement.

> on the other side a good example to remove people access to
> their discs.

That's the argument that sent sarge out the door with
DFSG violations.

> anyway if you want to improve the legal situtation use:
> http://wiki.debian.org/KernelFirmwareLicensing
> dilinger succeeded in various firmware relicensing
> thanks to his quest to the vendors. feel free to pick up.

For each offending file, there are three possible solutions:
1. Get the author to release source code under a DFSG-free license
2. Move the firmware to non-free, patching the driver to use
   request_firmware()
3. Delete the driver and firmware entirely.

AFAIK, the best outcome yet from the relicensing discussions
on http://wiki.debian.org/KernelFirmwareLicensing is to properly
permit the redistribution of the binary, without source code.
That's fine for debian non-free, and a necessary step for making
option (2) above work properly.  Until and unless the entire
Linux kernel is moved to non-free, such relicensing doesn't
solve the fundamental bug.

I agree that option (3) is bad, but I still recommend it for
the short term.  It's the quickest path to a legal and
SC-conforming Linux release, and it will bring people out
of the closet to volunteer to work on (2).  I think (2)
is the actual goal, but maybe not one that can be finished
before the proposed etch freeze -- especially since most
of the blobs need to be relicensed before they can be made
part of firmware-nonfree.

I would be amazed and impressed if option (1) could be made
to work for any of these files.  I don't volunteer to try.

If the kernel team decides on (2) or (3), I'd be happy to
help with the coding.  (Note that, due to the unfortunate
state of upstream, most of the patching/deletion has to
happen in the creation of the .orig.tar.gz file, not the
.diff.gz file)  Unfortunately, due to a lack of hardware,
I can't help with any testing (other than "does it compile").

- Larry


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Bug#383403: closed by maximilian attems <[EMAIL PROTECTED]> (Re: Bug#383403: linux-2.6: includes nondistributable and non-free binary firmware)

2006-08-17 Thread ldoolitt
Maks -

On Thu, Aug 17, 2006 at 12:48:15AM -0700, Debian Bug Tracking System wrote:
> On Wed, Aug 16, 2006 at 05:17:34PM -0700, Larry Doolittle wrote:
> > Package: linux-2.6
> > Severity: serious
> > Justification: Policy 2.1
> 
> how about if you check for duplicate bug reports!
> see #242866 for same style.

I'm aware of #242866, and I'd be happy to work within
that report.  Something about it seems broken, however,
because RC-buggy linux-2.6 packages keep making it into
testing.  Is it obvious how to keep this from happening,
without starting a new bug attached to linux-2.6?

> > The following 59 files, found in Debian's linux-2.6_2.6.17.orig.tar.gz,
> > apparently contain software in binary form, for which Debian has no
> > corresponding source code.  Debian policy states that "The program
> > must include source code, and must allow distribution in source code
> > as well as compiled form." Therefore Debian must not distribute these
> > files.
> 
> you give zero prove that they are not register code,

Huh.  Have you actually looked at the files in question?
I don't actually care what the data is called.

Take a near-random example: drivers/scsi/qlogicpti_asm.c
1. The file represents approximately 18482 bytes of binary
data.  Nobody enters that in hex without machine help.
2. The file name refers to "asm", commonly understood
shorthand for "assembler", the process of (or program for)
converting human-legible code to such binaries.
3. Similar binaries from the same manufacturer, that
are downloaded to boards serving a similar function,
are provided with assembly source code.

If you find any of those 59 files that does _not_ look
like it was machine-generated from source code at some
point in its history, or find comments from the author
explaining how they wrote those files from scratch by
typing in hex numbers, please let me know so I can
correct my inventory.  If you can even show hints that
a file is miscategorized, I would be happy to participate
in constructive discussion.

Your throwaway one-liner above is not a good start.

- Larry


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: firmware blobs

2006-08-16 Thread ldoolitt
Sven -

On Wed, Aug 16, 2006 at 09:01:15PM +0200, Sven Luther wrote:
> Ah, it has been argued, that since the driver depends on the firmware to work,
> it should then go to contrib, but not stay in main, so moving the whole stuff
> to non-free is lightyears easier to handle, and you don't need to do the
> source-code modification work to remove the firmware.

I don't buy that argument.  There might be other means of
loading the firmware (warm boot from windows, additional
hardware, etc.).  Once it's in, the driver will work fine.
The driver depends on the hardware to work, too, and we don't
require a way to stuff the hardware into the tarball.

The source-code modification work is easy (in most cases).
The hard part will be testing: you have to get the modified
kernel, the firmware blob, and initrd scripting infrastructure
in the hands of someone (relatively competent) who has the
affected hardware.  They also have to be willing to reboot
a few times.

> [chop] people where saying that we were fools to ask [for a real
> firmware license] from
> broadcom, given their non-free-software attitude and all, and they were rather
> helpful and after some lengthy discussion and consulting of their legal
> department, they agreed to change the licencing, so it is no more defacto
> GPL2 (altough it remains non-free, but at least it is distributable).
> 
> The main problems are those drivers where the copyright author is lost.

I think the job is worth doing, but it's far more than I can
accomplish in an afternoon.  Just for fun, I might try to follow
up on the two blobs I started chasing down.

> > I already emailed Frederik Schueler, suggesting that the offending
> > code get ripped out of 2.6.17 before its upcoming migration to testing.
> 
> Hehe, but this public list is probably the best place to handle such stuff,
> since we are a maintainer team.

OK.  I now publicly suggest "that the offending code get ripped out
of 2.6.17 before its upcoming migration to testing."

- Larry


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: firmware blobs

2006-08-16 Thread ldoolitt
Sven -

On Wed, Aug 16, 2006 at 08:00:26PM +0200, Sven Luther wrote:
> Thanks for this report, it is nice to see someone actually contributing useful
> information instead of just complaining :)

Quoting from the Beatles: "You say you want a contribution,
well, you know, we're all doing what we can."

> > Unless something changes soon, we're looking at 59 RC bugs
> > in the linux-2.6 source package.  The good news (AFAICT) is
> Well, i think a single RC bug with info about all of them would be
> enough.

If the kernel maintainers agree to rip them all out at once,
I agree.  If they want to "fix" them one-by-one, we need 59
independent bugs filed.

> > that ripping these non-SC-conforming files out of the kernel,
> Well, i think it would be easier to move the whole drivers to non-free, this
> is the way we have been doing this until now at least.

Whatever.  I'm neither a kernel maintainer, nor a firmware-nonfree
maintainer.  I see firmware, but no drivers, in firmware nonfree.

I see two advantages to finally having a driver in the kernel
without its firmware: (1) this can improve the legal situation
of upstream.  (2) it keeps the architecture-dependent and
toolchain-sensitive stuff in one set of .debs (linux-*.deb),
while the firmware-nonfree .deb is architecture independent.
Otherwise, the firmware-laden modules end up with a pseudo-duplicate
of the kernel's fancy build system.

Finally, moving drivers to non-free only helps for the 12 files
that are BSD-ish.  The 44 GPL-ish files _have_ to have their
firmware separated out.

> BTW, if you have some time, and feel like doing it, could you identify the
> copyright holders on the non-distributable parts of it ? It would make asking
> them to clarify the licencing easier that way, as we already did for broadcom
> and the ql-thingies.

This is a big job, and unlikely to have much success.  I actually
tried on two of them (drivers/net/myri_code.h and
drivers/media/dvb/ttusb-budget/dvb-ttusb-dspbootcode.h).  In both
cases, the manufacturer supplied hardware, documentation, and otherwise
cooperated with the driver development.  So the intent is (probably)
there, but there is no known paper trail that would authorize redistribution
of the copyrighted material.

> Nice, but there is lengthy and non-negligible d-i work which needs to be done,
> and as they want to freeze pretty early ...

I already emailed Frederik Schueler, suggesting that the offending
code get ripped out of 2.6.17 before its upcoming migration to testing.

 - Larry


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



firmware blobs

2006-08-16 Thread ldoolitt
Kernel team (and lurkers) -

Binary-only firmware in the Linux kernel lives on in Debian's
anxiety closet.

I find 59 instances in linux-2.6_2.6.17.orig.tar.gz.  Please
review my analysis posted at
  http://doolittle.icarus.com/~larry/fwinventory/2.6.17.html

Unless something changes soon, we're looking at 59 RC bugs
in the linux-2.6 source package.  The good news (AFAICT) is
that ripping these non-SC-conforming files out of the kernel,
or putting conforming replacements back in, doesn't change
the kernel ABI, so this work could be considered consistent
with a release freeze.

 - Larry


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]