Reported by: Marco d'Itri <md@Linux.IT>
Date: Fri, 9 Apr 2004 12:18:23 UTC
Severity: serious
Tags: d-i, etch-ignore, help, sarge-ignore, upstream
Found in versions 2.6.15-8, 2.6.17-6, linux-2.6/2.6.26-13
Fixed in versions 2.6.24-1, 2.6.29-1
Done: maximilian attems <max@stro.at>
Bug is archived. No further changes may be made.
View this report as an mbox folder, status mbox, maintainer mbox
Report forwarded to debian-bugs-dist@lists.debian.org, Herbert Xu <herbert@debian.org>:
Bug#242866; Package kernel.
(full text, mbox, link).
Acknowledgement sent to Marco d'Itri <md@Linux.IT>:
New Bug report received and forwarded. Copy sent to Herbert Xu <herbert@debian.org>.
(full text, mbox, link).
Message #5 received at submit@bugs.debian.org (full text, mbox, reply):
Package: kernel Severity: serious Tags: sarge, sid The following files contain binary firmwares, and distributing them appears to be a DFSG violation. (See #239952) drivers/net/appletalk/cops_ffdrv.h drivers/net/acenic_firmware.h drivers/net/tokenring/3c359_microcode.h drivers/net/pcmcia/ositech.h drivers/char/drm/mga_ucode.h drivers/char/drm/r128_cce.c drivers/char/drm/radeon_cp.c -- ciao, | Marco | [5631 stO4f5PcqYDgg]
Information forwarded to debian-bugs-dist@lists.debian.org, Herbert Xu <herbert@debian.org>:
Bug#242866; Package kernel.
(full text, mbox, link).
Acknowledgement sent to neroden@twcny.rr.com (Nathanael Nerode):
Extra info received and forwarded to list. Copy sent to Herbert Xu <herbert@debian.org>.
(full text, mbox, link).
Message #10 received at 242866@bugs.debian.org (full text, mbox, reply):
This is a diff for drivers/char/drm to make r128 use userland-loadable
firmware. It's completely untested (since I don't *have* an r128),
but I bet it'll work; the firmware loading interface is remarkably easy to
use.
Following that (in the form of a diff) is the short program I used to create
a microcode file which can (should) be shipped as the file
/usr/lib/hotplug/r128_cce_microcode (in a non-free package, of course).
* I'm not 100% sure this will work right, because I haven't tested the behavior
of hotplug && the firmware loader with respect to end-of-file.
(I would have attached the binary file produced, but I was worried about
mangling.)
* It also won't work if the functions I'm using turn out to
be called in a no-waiting context (I can't imagine why), or are needed 'before
userland' (I don't think they *should* be); I simply didn't bother to check
those things, since I was doing proof-of-concept so that I could theoretically
do this to any driver.
* This patch could probably be improved by someone with a better sense of
the right way to deal with the stupid endianness issues.
* I'm quite sure I didn't handle the failure-to-load condition correctly;
I acted as if the board would work (in some semi-broken manner) if the
firmware wasn't loaded. People with more kernel knowledge than I could
presumably do better (figure out how to cause a module loading failure, or
put the device in an appropriately disabled state, or something).
* Similar (nearly identical) changes could be made to the radeon driver in
the same directory, and I'll be happy to make them if needed.
* My changes are GPL licensed; feel free to submit upstream, etc.
I recommend that anyone who has a firmware-loading driver they particularly
care about look into making this kind of conversion. It doesn't really
seem that difficult at all. Documentation is in the kernel sources (under
Documentation/firmware_class) and you now have a model conversion to look at.
;-)
--- r128_cce.c 2003-09-28 00:44:12.000000000 -0400
+++ r128_cce.c.new 2004-04-12 19:32:39.000000000 -0400
@@ -3,6 +3,7 @@
*
* Copyright 2000 Precision Insight, Inc., Cedar Park, Texas.
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
+ * Portions copyright 2003 Nathanael Nerode.
* All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
@@ -28,6 +29,7 @@
* Gareth Hughes <gareth@valinux.com>
*/
+#include <linux/firmware.h>
#include "r128.h"
#include "drmP.h"
#include "drm.h"
@@ -36,51 +38,6 @@
#define R128_FIFO_DEBUG 0
-/* CCE microcode (from ATI) */
-static u32 r128_cce_microcode[] = {
- 0, 276838400, 0, 268449792, 2, 142, 2, 145, 0, 1076765731, 0,
- 1617039951, 0, 774592877, 0, 1987540286, 0, 2307490946U, 0,
- 599558925, 0, 589505315, 0, 596487092, 0, 589505315, 1,
- 11544576, 1, 206848, 1, 311296, 1, 198656, 2, 912273422, 11,
- 262144, 0, 0, 1, 33559837, 1, 7438, 1, 14809, 1, 6615, 12, 28,
- 1, 6614, 12, 28, 2, 23, 11, 18874368, 0, 16790922, 1, 409600, 9,
- 30, 1, 147854772, 16, 420483072, 3, 8192, 0, 10240, 1, 198656,
- 1, 15630, 1, 51200, 10, 34858, 9, 42, 1, 33559823, 2, 10276, 1,
- 15717, 1, 15718, 2, 43, 1, 15936948, 1, 570480831, 1, 14715071,
- 12, 322123831, 1, 33953125, 12, 55, 1, 33559908, 1, 15718, 2,
- 46, 4, 2099258, 1, 526336, 1, 442623, 4, 4194365, 1, 509952, 1,
- 459007, 3, 0, 12, 92, 2, 46, 12, 176, 1, 15734, 1, 206848, 1,
- 18432, 1, 133120, 1, 100670734, 1, 149504, 1, 165888, 1,
- 15975928, 1, 1048576, 6, 3145806, 1, 15715, 16, 2150645232U, 2,
- 268449859, 2, 10307, 12, 176, 1, 15734, 1, 15735, 1, 15630, 1,
- 15631, 1, 5253120, 6, 3145810, 16, 2150645232U, 1, 15864, 2, 82,
- 1, 343310, 1, 1064207, 2, 3145813, 1, 15728, 1, 7817, 1, 15729,
- 3, 15730, 12, 92, 2, 98, 1, 16168, 1, 16167, 1, 16002, 1, 16008,
- 1, 15974, 1, 15975, 1, 15990, 1, 15976, 1, 15977, 1, 15980, 0,
- 15981, 1, 10240, 1, 5253120, 1, 15720, 1, 198656, 6, 110, 1,
- 180224, 1, 103824738, 2, 112, 2, 3145839, 0, 536885440, 1,
- 114880, 14, 125, 12, 206975, 1, 33559995, 12, 198784, 0,
- 33570236, 1, 15803, 0, 15804, 3, 294912, 1, 294912, 3, 442370,
- 1, 11544576, 0, 811612160, 1, 12593152, 1, 11536384, 1,
- 14024704, 7, 310382726, 0, 10240, 1, 14796, 1, 14797, 1, 14793,
- 1, 14794, 0, 14795, 1, 268679168, 1, 9437184, 1, 268449792, 1,
- 198656, 1, 9452827, 1, 1075854602, 1, 1075854603, 1, 557056, 1,
- 114880, 14, 159, 12, 198784, 1, 1109409213, 12, 198783, 1,
- 1107312059, 12, 198784, 1, 1109409212, 2, 162, 1, 1075854781, 1,
- 1073757627, 1, 1075854780, 1, 540672, 1, 10485760, 6, 3145894,
- 16, 274741248, 9, 168, 3, 4194304, 3, 4209949, 0, 0, 0, 256, 14,
- 174, 1, 114857, 1, 33560007, 12, 176, 0, 10240, 1, 114858, 1,
- 33560018, 1, 114857, 3, 33560007, 1, 16008, 1, 114874, 1,
- 33560360, 1, 114875, 1, 33560154, 0, 15963, 0, 256, 0, 4096, 1,
- 409611, 9, 188, 0, 10240, 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, 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, 0, 0, 0, 0, 0, 0
-};
-
int R128_READ_PLL(drm_device_t *dev, int addr)
{
drm_r128_private_t *dev_priv = dev->dev_private;
@@ -176,21 +133,50 @@
*/
/* Load the microcode for the CCE */
-static void r128_cce_load_microcode( drm_r128_private_t *dev_priv )
+static void r128_cce_load_microcode( drm_device_t *dev,
+ drm_r128_private_t *dev_priv )
{
int i;
+ const struct firmware *fw_entry = NULL;
+
+ if ( request_firmware(&fw_entry, "r128_cce_microcode", &dev) != 0 ) {
+ printk(KERN_ALERT
+ "%s: Firmware \"r128_cce_microcode\" not available.\n",
+ dev->name);
+ return;
+ }
DRM_DEBUG( "\n" );
r128_do_wait_for_idle( dev_priv );
R128_WRITE( R128_PM4_MICROCODE_ADDR, 0 );
+
+ /* Assumes 256 x 2 x 32 bits of data */
+ if (fw_entry->size != 256 * 4 * 2) {
+ printk(KERN_ALERT
+ "%s: Firmware \"r128_cce_microcode\" wrong size!\n",
+ dev->name);
+ return;
+ }
+
for ( i = 0 ; i < 256 ; i++ ) {
+ /* fw_entry->data is a char[], but we want a u32[] (sigh).
+ We simply assume big-endian byte order for now. */
R128_WRITE( R128_PM4_MICROCODE_DATAH,
- r128_cce_microcode[i * 2] );
+ ( (u32) fw_entry->data[i * 8] << 24)
+ + ( (u32) fw_entry->data[i * 8 + 1] << 16)
+ + ( (u32) fw_entry->data[i * 8 + 2] << 8)
+ + ( (u32) fw_entry->data[i * 8 + 3])
+ );
R128_WRITE( R128_PM4_MICROCODE_DATAL,
- r128_cce_microcode[i * 2 + 1] );
+ ( (u32) fw_entry->data[i * 8 + 4] << 24)
+ + ( (u32) fw_entry->data[i * 8 + 5] << 16)
+ + ( (u32) fw_entry->data[i * 8 + 6] << 8)
+ + ( (u32) fw_entry->data[i * 8 + 7])
+ );
}
+ release_firmware(fw_entry);
}
/* Flush any pending commands to the CCE. This should only be used just
@@ -603,7 +589,7 @@
#endif
r128_cce_init_ring_buffer( dev, dev_priv );
- r128_cce_load_microcode( dev_priv );
+ r128_cce_load_microcode( dev, dev_priv );
dev->dev_private = (void *)dev_priv;
--- /dev/null 2004-02-24 18:25:18.000000000 -0500
+++ write_r128_microcode.c 2004-04-12 18:59:00.000000000 -0400
@@ -0,0 +1,67 @@
+#include <stdio.h>
+
+/* CCE microcode (from ATI) */
+static unsigned int r128_cce_microcode[] = {
+ 0, 276838400, 0, 268449792, 2, 142, 2, 145, 0, 1076765731, 0,
+ 1617039951, 0, 774592877, 0, 1987540286, 0, 2307490946U, 0,
+ 599558925, 0, 589505315, 0, 596487092, 0, 589505315, 1,
+ 11544576, 1, 206848, 1, 311296, 1, 198656, 2, 912273422, 11,
+ 262144, 0, 0, 1, 33559837, 1, 7438, 1, 14809, 1, 6615, 12, 28,
+ 1, 6614, 12, 28, 2, 23, 11, 18874368, 0, 16790922, 1, 409600, 9,
+ 30, 1, 147854772, 16, 420483072, 3, 8192, 0, 10240, 1, 198656,
+ 1, 15630, 1, 51200, 10, 34858, 9, 42, 1, 33559823, 2, 10276, 1,
+ 15717, 1, 15718, 2, 43, 1, 15936948, 1, 570480831, 1, 14715071,
+ 12, 322123831, 1, 33953125, 12, 55, 1, 33559908, 1, 15718, 2,
+ 46, 4, 2099258, 1, 526336, 1, 442623, 4, 4194365, 1, 509952, 1,
+ 459007, 3, 0, 12, 92, 2, 46, 12, 176, 1, 15734, 1, 206848, 1,
+ 18432, 1, 133120, 1, 100670734, 1, 149504, 1, 165888, 1,
+ 15975928, 1, 1048576, 6, 3145806, 1, 15715, 16, 2150645232U, 2,
+ 268449859, 2, 10307, 12, 176, 1, 15734, 1, 15735, 1, 15630, 1,
+ 15631, 1, 5253120, 6, 3145810, 16, 2150645232U, 1, 15864, 2, 82,
+ 1, 343310, 1, 1064207, 2, 3145813, 1, 15728, 1, 7817, 1, 15729,
+ 3, 15730, 12, 92, 2, 98, 1, 16168, 1, 16167, 1, 16002, 1, 16008,
+ 1, 15974, 1, 15975, 1, 15990, 1, 15976, 1, 15977, 1, 15980, 0,
+ 15981, 1, 10240, 1, 5253120, 1, 15720, 1, 198656, 6, 110, 1,
+ 180224, 1, 103824738, 2, 112, 2, 3145839, 0, 536885440, 1,
+ 114880, 14, 125, 12, 206975, 1, 33559995, 12, 198784, 0,
+ 33570236, 1, 15803, 0, 15804, 3, 294912, 1, 294912, 3, 442370,
+ 1, 11544576, 0, 811612160, 1, 12593152, 1, 11536384, 1,
+ 14024704, 7, 310382726, 0, 10240, 1, 14796, 1, 14797, 1, 14793,
+ 1, 14794, 0, 14795, 1, 268679168, 1, 9437184, 1, 268449792, 1,
+ 198656, 1, 9452827, 1, 1075854602, 1, 1075854603, 1, 557056, 1,
+ 114880, 14, 159, 12, 198784, 1, 1109409213, 12, 198783, 1,
+ 1107312059, 12, 198784, 1, 1109409212, 2, 162, 1, 1075854781, 1,
+ 1073757627, 1, 1075854780, 1, 540672, 1, 10485760, 6, 3145894,
+ 16, 274741248, 9, 168, 3, 4194304, 3, 4209949, 0, 0, 0, 256, 14,
+ 174, 1, 114857, 1, 33560007, 12, 176, 0, 10240, 1, 114858, 1,
+ 33560018, 1, 114857, 3, 33560007, 1, 16008, 1, 114874, 1,
+ 33560360, 1, 114875, 1, 33560154, 0, 15963, 0, 256, 0, 4096, 1,
+ 409611, 9, 188, 0, 10240, 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, 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, 0, 0, 0, 0, 0, 0
+};
+
+int main(int argc, const char** argv) {
+ int i;
+ unsigned char a,b,c,d;
+ FILE *f;
+
+ f=fopen("r128_cce_microcode","w");
+ for (i=0; i < 512; i++) {
+ /* Unwrap into big-endian order. */
+ a = r128_cce_microcode[i] >> 24 ;
+ b = (r128_cce_microcode[i] >> 16) & 0xFF;
+ c = (r128_cce_microcode[i] >> 8) & 0xFF;
+ d = (r128_cce_microcode[i]) & 0xFF;
+ fputc(a, f);
+ fputc(b, f);
+ fputc(c, f);
+ fputc(d, f);
+ }
+ fclose(f);
+}
--
Make sure your vote will count.
http://www.verifiedvoting.org/
Merged 232463 234866 239952 240812 242500 242866 242895 243022.
Request was from Herbert Xu <herbert@gondor.apana.org.au>
to control@bugs.debian.org.
(full text, mbox, link).
Disconnected #232463 from all other report(s).
Request was from Herbert Xu <herbert@gondor.apana.org.au>
to control@bugs.debian.org.
(full text, mbox, link).
Disconnected #234866 from all other report(s).
Request was from Herbert Xu <herbert@gondor.apana.org.au>
to control@bugs.debian.org.
(full text, mbox, link).
Information forwarded to debian-bugs-dist@lists.debian.org, Herbert Xu <herbert@debian.org>:
Bug#242866; Package kernel.
(full text, mbox, link).
Acknowledgement sent to Herbert Xu <herbert@gondor.apana.org.au>:
Extra info received and forwarded to list. Copy sent to Herbert Xu <herbert@debian.org>.
(full text, mbox, link).
Message #21 received at 242866@bugs.debian.org (full text, mbox, reply):
On Mon, Apr 12, 2004 at 07:56:21PM -0400, Nathanael Nerode wrote:
Thank you for effort but this code just doesn't work. Please at least
try to compile it in future.
> --- r128_cce.c 2003-09-28 00:44:12.000000000 -0400
> +++ r128_cce.c.new 2004-04-12 19:32:39.000000000 -0400
Please make sure that your patch is made so that it can be applied with
patch -p1 at the top of the kernel tree.
> @@ -176,21 +133,50 @@
> */
>
> /* Load the microcode for the CCE */
> -static void r128_cce_load_microcode( drm_r128_private_t *dev_priv )
> +static void r128_cce_load_microcode( drm_device_t *dev,
> + drm_r128_private_t *dev_priv )
> {
> int i;
> + const struct firmware *fw_entry = NULL;
> +
> + if ( request_firmware(&fw_entry, "r128_cce_microcode", &dev) != 0 ) {
The third argument should be the name of the file in /proc (or /sys).
It must be unique to this device. The second argument should be the file
name. So something like 'xxx.frm' would be more appropriate.
> + printk(KERN_ALERT
> + "%s: Firmware \"r128_cce_microcode\" not available.\n",
> + dev->name);
> + return;
> + }
You must handle errors. Return an appropriate error here and handle
it in the caller.
> + /* Assumes 256 x 2 x 32 bits of data */
> + if (fw_entry->size != 256 * 4 * 2) {
> + printk(KERN_ALERT
> + "%s: Firmware \"r128_cce_microcode\" wrong size!\n",
> + dev->name);
> + return;
> + }
Memory leak. You need to free the firmware.
> for ( i = 0 ; i < 256 ; i++ ) {
> + /* fw_entry->data is a char[], but we want a u32[] (sigh).
> + We simply assume big-endian byte order for now. */
> R128_WRITE( R128_PM4_MICROCODE_DATAH,
> - r128_cce_microcode[i * 2] );
> + ( (u32) fw_entry->data[i * 8] << 24)
> + + ( (u32) fw_entry->data[i * 8 + 1] << 16)
> + + ( (u32) fw_entry->data[i * 8 + 2] << 8)
> + + ( (u32) fw_entry->data[i * 8 + 3])
> + );
The original code assumed little endian. So store it in little endian
and drop the conversions here (BTW, the conversion functions are *_to_le32).
--
Debian GNU/Linux 3.0 is out! ( http://www.debian.org/ )
Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Disconnected #239952 from all other report(s).
Request was from Herbert Xu <herbert@gondor.apana.org.au>
to control@bugs.debian.org.
(full text, mbox, link).
Information forwarded to debian-bugs-dist@lists.debian.org, Herbert Xu <herbert@debian.org>:
Bug#242866; Package kernel.
(full text, mbox, link).
Acknowledgement sent to Herbert Xu <herbert@gondor.apana.org.au>:
Extra info received and forwarded to list. Copy sent to Herbert Xu <herbert@debian.org>.
(full text, mbox, link).
Message #28 received at 242866@bugs.debian.org (full text, mbox, reply):
On Wed, Apr 21, 2004 at 07:24:45PM -0400, Nathanael Nerode wrote:
>
> This responds not only to those comments but also to comments from
> Michel Daenzer on the dri-devel list. (That's why there are new files,
> and accounts for the stray references to files not in this patch, which
> are for DRM-supporting kernels other than Linux 2.6.x.)
Thanks for the update. It looks good.
> + /* r128_firmware_loader.c
> + or r128_firmware.c */
> +extern int r128_cce_load_microcode( drm_device_t *dev,
> + drm_r128_private_t *dev_priv,
> + const char *filename);
Please fix the white spaces here. They should be tabs.
> + /* fw_entry->data is a char[], but we want a u32[] (sigh).
> + There's really no good way to assemble four chars into
> + an int, is there? Probably the way which allows for the
> + most optimization is to just do it by hand. */
Please kill the obsolete comment. Ditto for radeon below.
> - radeon_cp_load_microcode( dev_priv );
> + if (dev_priv->is_r200)
> + err = radeon_cp_load_microcode( dev, dev_priv, "r200_cp_microcode" );
> + else
> + err = radeon_cp_load_microcode( dev, dev_priv, "radeon_cp_microcode" );
Please move this logic back into the function.
> + /* Error message already spewed by subroutine */
Please kill this silly comment. Same for r128 above.
--
Debian GNU/Linux 3.0 is out! ( http://www.debian.org/ )
Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Information forwarded to debian-bugs-dist@lists.debian.org, Herbert Xu <herbert@debian.org>:
Bug#242866; Package kernel.
(full text, mbox, link).
Acknowledgement sent to Nathanael Nerode <neroden@twcny.rr.com>:
Extra info received and forwarded to list. Copy sent to Herbert Xu <herbert@debian.org>.
(full text, mbox, link).
Message #33 received at 242866@bugs.debian.org (full text, mbox, reply):
[Message part 1 (text/plain, inline)]
Herbert Xu wrote: > On Wed, Apr 21, 2004 at 07:24:45PM -0400, Nathanael Nerode wrote: > >>This responds not only to those comments but also to comments from >>Michel Daenzer on the dri-devel list. (That's why there are new files, >>and accounts for the stray references to files not in this patch, which >>are for DRM-supporting kernels other than Linux 2.6.x.) > > > Thanks for the update. It looks good. > > >>+ /* r128_firmware_loader.c >>+ or r128_firmware.c */ >>+extern int r128_cce_load_microcode( drm_device_t *dev, >>+ drm_r128_private_t *dev_priv, >>+ const char *filename); > > > Please fix the white spaces here. They should be tabs. Done. >>+ /* fw_entry->data is a char[], but we want a u32[] (sigh). >>+ There's really no good way to assemble four chars into >>+ an int, is there? Probably the way which allows for the >>+ most optimization is to just do it by hand. */ > > > Please kill the obsolete comment. Ditto for radeon below. Done. >>- radeon_cp_load_microcode( dev_priv ); >>+ if (dev_priv->is_r200) >>+ err = radeon_cp_load_microcode( dev, dev_priv, "r200_cp_microcode" ); >>+ else >>+ err = radeon_cp_load_microcode( dev, dev_priv, "radeon_cp_microcode" ); > > > Please move this logic back into the function. OK. That's actually harder and more annoying to do than you might imagine; it was done this way to avoid code duplication, and hopefully make easier to merge the r128 and radeon versions. See the changes. I made the parallel change to the r128 version for consistency. Most of the substantive change in the new patch is due to this change. >>+ /* Error message already spewed by subroutine */ > > > Please kill this silly comment. Same for r128 above. Sure thing. You have probably noticed by now that many of my comments in code are for my own benefit. :-) Attached is the new version. It compiles. I haven't been able to test it, but I hope it works.
[latest-drm.diff (text/x-patch, inline)]
diff -ruN linux-2.6.5/drivers/char/drm-old/Kconfig linux-2.6.5/drivers/char/drm/Kconfig
--- linux-2.6.5/drivers/char/drm-old/Kconfig 2004-04-18 15:45:08.000000000 -0400
+++ linux-2.6.5/drivers/char/drm/Kconfig 2004-04-20 16:35:26.000000000 -0400
@@ -32,6 +32,7 @@
config DRM_R128
tristate "ATI Rage 128"
depends on DRM
+ select FW_LOADER
help
Choose this option if you have an ATI Rage 128 graphics card. If M
is selected, the module will be called r128. AGP support for
@@ -40,6 +41,7 @@
config DRM_RADEON
tristate "ATI Radeon"
depends on DRM
+ select FW_LOADER
help
Choose this option if you have an ATI Radeon graphics card. There
are both PCI and AGP versions. You don't need to choose this to
diff -ruN linux-2.6.5/drivers/char/drm-old/Makefile linux-2.6.5/drivers/char/drm/Makefile
--- linux-2.6.5/drivers/char/drm-old/Makefile 2004-04-18 15:45:08.000000000 -0400
+++ linux-2.6.5/drivers/char/drm/Makefile 2004-04-20 16:35:26.000000000 -0400
@@ -4,11 +4,11 @@
gamma-objs := gamma_drv.o gamma_dma.o
tdfx-objs := tdfx_drv.o
-r128-objs := r128_drv.o r128_cce.o r128_state.o r128_irq.o
+r128-objs := r128_drv.o r128_cce.o r128_state.o r128_irq.o r128_firmware_loader.o
mga-objs := mga_drv.o mga_dma.o mga_state.o mga_warp.o mga_irq.o
i810-objs := i810_drv.o i810_dma.o
i830-objs := i830_drv.o i830_dma.o i830_irq.o
-radeon-objs := radeon_drv.o radeon_cp.o radeon_state.o radeon_mem.o radeon_irq.o
+radeon-objs := radeon_drv.o radeon_cp.o radeon_state.o radeon_mem.o radeon_irq.o radeon_firmware_loader.o
ffb-objs := ffb_drv.o ffb_context.o
sis-objs := sis_drv.o sis_ds.o sis_mm.o
diff -ruN linux-2.6.5/drivers/char/drm-old/r128_cce.c linux-2.6.5/drivers/char/drm/r128_cce.c
--- linux-2.6.5/drivers/char/drm-old/r128_cce.c 2004-04-18 15:45:08.000000000 -0400
+++ linux-2.6.5/drivers/char/drm/r128_cce.c 2004-04-23 14:25:57.000000000 -0400
@@ -3,6 +3,7 @@
*
* Copyright 2000 Precision Insight, Inc., Cedar Park, Texas.
* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
+ * Portions copyright 2004 Nathanael Nerode.
* All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
@@ -36,51 +37,6 @@
#define R128_FIFO_DEBUG 0
-/* CCE microcode (from ATI) */
-static u32 r128_cce_microcode[] = {
- 0, 276838400, 0, 268449792, 2, 142, 2, 145, 0, 1076765731, 0,
- 1617039951, 0, 774592877, 0, 1987540286, 0, 2307490946U, 0,
- 599558925, 0, 589505315, 0, 596487092, 0, 589505315, 1,
- 11544576, 1, 206848, 1, 311296, 1, 198656, 2, 912273422, 11,
- 262144, 0, 0, 1, 33559837, 1, 7438, 1, 14809, 1, 6615, 12, 28,
- 1, 6614, 12, 28, 2, 23, 11, 18874368, 0, 16790922, 1, 409600, 9,
- 30, 1, 147854772, 16, 420483072, 3, 8192, 0, 10240, 1, 198656,
- 1, 15630, 1, 51200, 10, 34858, 9, 42, 1, 33559823, 2, 10276, 1,
- 15717, 1, 15718, 2, 43, 1, 15936948, 1, 570480831, 1, 14715071,
- 12, 322123831, 1, 33953125, 12, 55, 1, 33559908, 1, 15718, 2,
- 46, 4, 2099258, 1, 526336, 1, 442623, 4, 4194365, 1, 509952, 1,
- 459007, 3, 0, 12, 92, 2, 46, 12, 176, 1, 15734, 1, 206848, 1,
- 18432, 1, 133120, 1, 100670734, 1, 149504, 1, 165888, 1,
- 15975928, 1, 1048576, 6, 3145806, 1, 15715, 16, 2150645232U, 2,
- 268449859, 2, 10307, 12, 176, 1, 15734, 1, 15735, 1, 15630, 1,
- 15631, 1, 5253120, 6, 3145810, 16, 2150645232U, 1, 15864, 2, 82,
- 1, 343310, 1, 1064207, 2, 3145813, 1, 15728, 1, 7817, 1, 15729,
- 3, 15730, 12, 92, 2, 98, 1, 16168, 1, 16167, 1, 16002, 1, 16008,
- 1, 15974, 1, 15975, 1, 15990, 1, 15976, 1, 15977, 1, 15980, 0,
- 15981, 1, 10240, 1, 5253120, 1, 15720, 1, 198656, 6, 110, 1,
- 180224, 1, 103824738, 2, 112, 2, 3145839, 0, 536885440, 1,
- 114880, 14, 125, 12, 206975, 1, 33559995, 12, 198784, 0,
- 33570236, 1, 15803, 0, 15804, 3, 294912, 1, 294912, 3, 442370,
- 1, 11544576, 0, 811612160, 1, 12593152, 1, 11536384, 1,
- 14024704, 7, 310382726, 0, 10240, 1, 14796, 1, 14797, 1, 14793,
- 1, 14794, 0, 14795, 1, 268679168, 1, 9437184, 1, 268449792, 1,
- 198656, 1, 9452827, 1, 1075854602, 1, 1075854603, 1, 557056, 1,
- 114880, 14, 159, 12, 198784, 1, 1109409213, 12, 198783, 1,
- 1107312059, 12, 198784, 1, 1109409212, 2, 162, 1, 1075854781, 1,
- 1073757627, 1, 1075854780, 1, 540672, 1, 10485760, 6, 3145894,
- 16, 274741248, 9, 168, 3, 4194304, 3, 4209949, 0, 0, 0, 256, 14,
- 174, 1, 114857, 1, 33560007, 12, 176, 0, 10240, 1, 114858, 1,
- 33560018, 1, 114857, 3, 33560007, 1, 16008, 1, 114874, 1,
- 33560360, 1, 114875, 1, 33560154, 0, 15963, 0, 256, 0, 4096, 1,
- 409611, 9, 188, 0, 10240, 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, 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, 0, 0, 0, 0, 0, 0
-};
-
int R128_READ_PLL(drm_device_t *dev, int addr)
{
drm_r128_private_t *dev_priv = dev->dev_private;
@@ -149,7 +105,7 @@
return DRM_ERR(EBUSY);
}
-static int r128_do_wait_for_idle( drm_r128_private_t *dev_priv )
+int r128_do_wait_for_idle( drm_r128_private_t *dev_priv )
{
int i, ret;
@@ -175,24 +131,6 @@
* CCE control, initialization
*/
-/* Load the microcode for the CCE */
-static void r128_cce_load_microcode( drm_r128_private_t *dev_priv )
-{
- int i;
-
- DRM_DEBUG( "\n" );
-
- r128_do_wait_for_idle( dev_priv );
-
- R128_WRITE( R128_PM4_MICROCODE_ADDR, 0 );
- for ( i = 0 ; i < 256 ; i++ ) {
- R128_WRITE( R128_PM4_MICROCODE_DATAH,
- r128_cce_microcode[i * 2] );
- R128_WRITE( R128_PM4_MICROCODE_DATAL,
- r128_cce_microcode[i * 2 + 1] );
- }
-}
-
/* Flush any pending commands to the CCE. This should only be used just
* prior to a wait for idle, as it informs the engine that the command
* stream is ending.
@@ -371,6 +309,7 @@
static int r128_do_init_cce( drm_device_t *dev, drm_r128_init_t *init )
{
drm_r128_private_t *dev_priv;
+ int err;
DRM_DEBUG( "\n" );
@@ -603,7 +542,13 @@
#endif
r128_cce_init_ring_buffer( dev, dev_priv );
- r128_cce_load_microcode( dev_priv );
+
+ err = r128_cce_load_microcode( dev, dev_priv );
+ if (err) {
+ dev->dev_private = (void *)dev_priv;
+ r128_do_cleanup_cce( dev );
+ return err;
+ }
dev->dev_private = (void *)dev_priv;
diff -ruN linux-2.6.5/drivers/char/drm-old/r128_drv.h linux-2.6.5/drivers/char/drm/r128_drv.h
--- linux-2.6.5/drivers/char/drm-old/r128_drv.h 2004-04-18 15:45:08.000000000 -0400
+++ linux-2.6.5/drivers/char/drm/r128_drv.h 2004-04-23 14:33:16.000000000 -0400
@@ -140,6 +140,7 @@
ring->space += ring->size;
}
+extern int r128_do_wait_for_idle( drm_r128_private_t *dev_priv );
extern int r128_do_cce_idle( drm_r128_private_t *dev_priv );
extern int r128_do_cleanup_cce( drm_device_t *dev );
extern int r128_do_cleanup_pageflip( drm_device_t *dev );
@@ -155,6 +156,10 @@
extern int r128_cce_stipple( DRM_IOCTL_ARGS );
extern int r128_cce_indirect( DRM_IOCTL_ARGS );
+ /* r128_firmware_loader.c
+ or r128_firmware.c */
+extern int r128_cce_load_microcode( drm_device_t *dev,
+ drm_r128_private_t *dev_priv);
/* Register definitions, register access macros and drmAddMap constants
* for Rage 128 kernel driver.
diff -ruN linux-2.6.5/drivers/char/drm-old/r128_firmware.c linux-2.6.5/drivers/char/drm/r128_firmware.c
--- linux-2.6.5/drivers/char/drm-old/r128_firmware.c 1969-12-31 19:00:00.000000000 -0500
+++ linux-2.6.5/drivers/char/drm/r128_firmware.c 2004-04-23 14:31:20.000000000 -0400
@@ -0,0 +1,105 @@
+/* r128_firmware.c -- ATI Rage 128 firmware -*- linux-c -*-
+ *
+ * Firmware probably copyright ATI. (No clear license.)
+ *
+ * The remainder:
+ * Copyright 2000 Precision Insight, Inc., Cedar Park, Texas.
+ * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
+ * Copyright 2004 Nathanael Nerode.
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Gareth Hughes <gareth@valinux.com>
+ * Nathanael Nerode <neroden@gcc.gnu.org>
+ * And whoever wrote the firmware.
+ */
+
+#include "r128.h"
+#include "drmP.h"
+#include "drm.h"
+#include "r128_drm.h"
+#include "r128_drv.h"
+
+/* CCE microcode (from ATI) */
+static unsigned int r128_cce_microcode[] = {
+ 0, 276838400, 0, 268449792, 2, 142, 2, 145, 0, 1076765731, 0,
+ 1617039951, 0, 774592877, 0, 1987540286, 0, 2307490946U, 0,
+ 599558925, 0, 589505315, 0, 596487092, 0, 589505315, 1,
+ 11544576, 1, 206848, 1, 311296, 1, 198656, 2, 912273422, 11,
+ 262144, 0, 0, 1, 33559837, 1, 7438, 1, 14809, 1, 6615, 12, 28,
+ 1, 6614, 12, 28, 2, 23, 11, 18874368, 0, 16790922, 1, 409600, 9,
+ 30, 1, 147854772, 16, 420483072, 3, 8192, 0, 10240, 1, 198656,
+ 1, 15630, 1, 51200, 10, 34858, 9, 42, 1, 33559823, 2, 10276, 1,
+ 15717, 1, 15718, 2, 43, 1, 15936948, 1, 570480831, 1, 14715071,
+ 12, 322123831, 1, 33953125, 12, 55, 1, 33559908, 1, 15718, 2,
+ 46, 4, 2099258, 1, 526336, 1, 442623, 4, 4194365, 1, 509952, 1,
+ 459007, 3, 0, 12, 92, 2, 46, 12, 176, 1, 15734, 1, 206848, 1,
+ 18432, 1, 133120, 1, 100670734, 1, 149504, 1, 165888, 1,
+ 15975928, 1, 1048576, 6, 3145806, 1, 15715, 16, 2150645232U, 2,
+ 268449859, 2, 10307, 12, 176, 1, 15734, 1, 15735, 1, 15630, 1,
+ 15631, 1, 5253120, 6, 3145810, 16, 2150645232U, 1, 15864, 2, 82,
+ 1, 343310, 1, 1064207, 2, 3145813, 1, 15728, 1, 7817, 1, 15729,
+ 3, 15730, 12, 92, 2, 98, 1, 16168, 1, 16167, 1, 16002, 1, 16008,
+ 1, 15974, 1, 15975, 1, 15990, 1, 15976, 1, 15977, 1, 15980, 0,
+ 15981, 1, 10240, 1, 5253120, 1, 15720, 1, 198656, 6, 110, 1,
+ 180224, 1, 103824738, 2, 112, 2, 3145839, 0, 536885440, 1,
+ 114880, 14, 125, 12, 206975, 1, 33559995, 12, 198784, 0,
+ 33570236, 1, 15803, 0, 15804, 3, 294912, 1, 294912, 3, 442370,
+ 1, 11544576, 0, 811612160, 1, 12593152, 1, 11536384, 1,
+ 14024704, 7, 310382726, 0, 10240, 1, 14796, 1, 14797, 1, 14793,
+ 1, 14794, 0, 14795, 1, 268679168, 1, 9437184, 1, 268449792, 1,
+ 198656, 1, 9452827, 1, 1075854602, 1, 1075854603, 1, 557056, 1,
+ 114880, 14, 159, 12, 198784, 1, 1109409213, 12, 198783, 1,
+ 1107312059, 12, 198784, 1, 1109409212, 2, 162, 1, 1075854781, 1,
+ 1073757627, 1, 1075854780, 1, 540672, 1, 10485760, 6, 3145894,
+ 16, 274741248, 9, 168, 3, 4194304, 3, 4209949, 0, 0, 0, 256, 14,
+ 174, 1, 114857, 1, 33560007, 12, 176, 0, 10240, 1, 114858, 1,
+ 33560018, 1, 114857, 3, 33560007, 1, 16008, 1, 114874, 1,
+ 33560360, 1, 114875, 1, 33560154, 0, 15963, 0, 256, 0, 4096, 1,
+ 409611, 9, 188, 0, 10240, 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, 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, 0, 0, 0, 0, 0, 0
+};
+
+/* Load the microcode for the CCE */
+int r128_cce_load_microcode( drm_device_t *dev,
+ drm_r128_private_t *dev_priv)
+{
+ int i;
+
+ DRM_DEBUG( "\n" );
+
+ r128_do_wait_for_idle( dev_priv );
+
+ R128_WRITE( R128_PM4_MICROCODE_ADDR, 0 );
+ for ( i = 0 ; i < 256 ; i++ ) {
+ R128_WRITE( R128_PM4_MICROCODE_DATAH,
+ r128_cce_microcode[i * 2] );
+ R128_WRITE( R128_PM4_MICROCODE_DATAL,
+ r128_cce_microcode[i * 2 + 1] );
+ }
+ return 0;
+}
diff -ruN linux-2.6.5/drivers/char/drm-old/r128_firmware_loader.c linux-2.6.5/drivers/char/drm/r128_firmware_loader.c
--- linux-2.6.5/drivers/char/drm-old/r128_firmware_loader.c 1969-12-31 19:00:00.000000000 -0500
+++ linux-2.6.5/drivers/char/drm/r128_firmware_loader.c 2004-04-23 14:35:22.000000000 -0400
@@ -0,0 +1,97 @@
+/* r128_firmware_loader.c -- ATI Rage 128 firmare loader -*- linux-c -*-
+ *
+ * Copyright 2000 Precision Insight, Inc., Cedar Park, Texas.
+ * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
+ * Copyright 2003 Nathanael Nerode.
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Gareth Hughes <gareth@valinux.com>
+ * Nathanael Nerode <neroden@gcc.gnu.org>
+ */
+
+/* One and only one of this and r128_firmware.c should be linked in */
+
+#include <asm/byteorder.h>
+#include <linux/string.h>
+
+#include <linux/device.h>
+#include <linux/firmware.h>
+
+#include "r128.h"
+#include "drmP.h"
+#include "drm.h"
+#include "r128_drm.h"
+#include "r128_drv.h"
+
+/* Load the microcode for the CCE */
+int r128_cce_load_microcode( drm_device_t *dev,
+ drm_r128_private_t *dev_priv)
+{
+ int i, err;
+ u32 temp_h, temp_l;
+ const struct firmware *fw_entry = NULL;
+
+ /* The 'dev' thing is uncovering the struct device buried in
+ drm_device_t (via pci_device) */
+ err = request_firmware( &fw_entry, "r128_cce_microcode",
+ &(dev->pdev->dev) );
+ if (err) {
+ DRM_ERROR("Firmware file \"%s\" not available.\n",
+ "r128_cce_microcode");
+ return err;
+ }
+
+ /* Assumes 256 x 2 x 32 bits of data */
+ if (fw_entry->size != 256 * 4 * 2) {
+ DRM_ERROR("Firmware file \"%s\" wrong size!\n",
+ "r128_cce_microcode");
+ release_firmware(fw_entry);
+ return DRM_ERR(EINVAL);
+ }
+
+ DRM_DEBUG( "\n" );
+
+ r128_do_wait_for_idle( dev_priv );
+
+ R128_WRITE( R128_PM4_MICROCODE_ADDR, 0 );
+
+ for ( i = 0 ; i < 256 ; i++ ) {
+
+ /* We assume the incoming data is in little-endian byte order,
+ since we would like the firmware file to be
+ architecture-independent. Data will likely be swapped
+ twice on big-endian machines (once here, and
+ once in writel); with luck the compiler will optimize
+ that away. */
+
+ memcpy(&temp_h, &(fw_entry->data[i*8]), 4);
+ memcpy(&temp_l, &(fw_entry->data[i*8 + 4]), 4);
+
+ R128_WRITE( R128_PM4_MICROCODE_DATAH, le32_to_cpu(temp_h) );
+ R128_WRITE( R128_PM4_MICROCODE_DATAL, le32_to_cpu(temp_l) );
+
+ }
+ release_firmware(fw_entry);
+
+ return 0;
+}
diff -ruN linux-2.6.5/drivers/char/drm-old/radeon_cp.c linux-2.6.5/drivers/char/drm/radeon_cp.c
--- linux-2.6.5/drivers/char/drm-old/radeon_cp.c 2004-04-18 15:45:08.000000000 -0400
+++ linux-2.6.5/drivers/char/drm/radeon_cp.c 2004-04-23 14:39:42.000000000 -0400
@@ -2,6 +2,7 @@
*
* Copyright 2000 Precision Insight, Inc., Cedar Park, Texas.
* Copyright 2000 VA Linux Systems, Inc., Fremont, California.
+ * Portions copyright 2004 Nathanael Nerode.
* All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
@@ -36,528 +37,6 @@
#define RADEON_FIFO_DEBUG 0
-
-/* CP microcode (from ATI) */
-static u32 R200_cp_microcode[][2] = {
- { 0x21007000, 0000000000 },
- { 0x20007000, 0000000000 },
- { 0x000000ab, 0x00000004 },
- { 0x000000af, 0x00000004 },
- { 0x66544a49, 0000000000 },
- { 0x49494174, 0000000000 },
- { 0x54517d83, 0000000000 },
- { 0x498d8b64, 0000000000 },
- { 0x49494949, 0000000000 },
- { 0x49da493c, 0000000000 },
- { 0x49989898, 0000000000 },
- { 0xd34949d5, 0000000000 },
- { 0x9dc90e11, 0000000000 },
- { 0xce9b9b9b, 0000000000 },
- { 0x000f0000, 0x00000016 },
- { 0x352e232c, 0000000000 },
- { 0x00000013, 0x00000004 },
- { 0x000f0000, 0x00000016 },
- { 0x352e272c, 0000000000 },
- { 0x000f0001, 0x00000016 },
- { 0x3239362f, 0000000000 },
- { 0x000077ef, 0x00000002 },
- { 0x00061000, 0x00000002 },
- { 0x00000020, 0x0000001a },
- { 0x00004000, 0x0000001e },
- { 0x00061000, 0x00000002 },
- { 0x00000020, 0x0000001a },
- { 0x00004000, 0x0000001e },
- { 0x00061000, 0x00000002 },
- { 0x00000020, 0x0000001a },
- { 0x00004000, 0x0000001e },
- { 0x00000016, 0x00000004 },
- { 0x0003802a, 0x00000002 },
- { 0x040067e0, 0x00000002 },
- { 0x00000016, 0x00000004 },
- { 0x000077e0, 0x00000002 },
- { 0x00065000, 0x00000002 },
- { 0x000037e1, 0x00000002 },
- { 0x040067e1, 0x00000006 },
- { 0x000077e0, 0x00000002 },
- { 0x000077e1, 0x00000002 },
- { 0x000077e1, 0x00000006 },
- { 0xffffffff, 0000000000 },
- { 0x10000000, 0000000000 },
- { 0x0003802a, 0x00000002 },
- { 0x040067e0, 0x00000006 },
- { 0x00007675, 0x00000002 },
- { 0x00007676, 0x00000002 },
- { 0x00007677, 0x00000002 },
- { 0x00007678, 0x00000006 },
- { 0x0003802b, 0x00000002 },
- { 0x04002676, 0x00000002 },
- { 0x00007677, 0x00000002 },
- { 0x00007678, 0x00000006 },
- { 0x0000002e, 0x00000018 },
- { 0x0000002e, 0x00000018 },
- { 0000000000, 0x00000006 },
- { 0x0000002f, 0x00000018 },
- { 0x0000002f, 0x00000018 },
- { 0000000000, 0x00000006 },
- { 0x01605000, 0x00000002 },
- { 0x00065000, 0x00000002 },
- { 0x00098000, 0x00000002 },
- { 0x00061000, 0x00000002 },
- { 0x64c0603d, 0x00000004 },
- { 0x00080000, 0x00000016 },
- { 0000000000, 0000000000 },
- { 0x0400251d, 0x00000002 },
- { 0x00007580, 0x00000002 },
- { 0x00067581, 0x00000002 },
- { 0x04002580, 0x00000002 },
- { 0x00067581, 0x00000002 },
- { 0x00000046, 0x00000004 },
- { 0x00005000, 0000000000 },
- { 0x00061000, 0x00000002 },
- { 0x0000750e, 0x00000002 },
- { 0x00019000, 0x00000002 },
- { 0x00011055, 0x00000014 },
- { 0x00000055, 0x00000012 },
- { 0x0400250f, 0x00000002 },
- { 0x0000504a, 0x00000004 },
- { 0x00007565, 0x00000002 },
- { 0x00007566, 0x00000002 },
- { 0x00000051, 0x00000004 },
- { 0x01e655b4, 0x00000002 },
- { 0x4401b0dc, 0x00000002 },
- { 0x01c110dc, 0x00000002 },
- { 0x2666705d, 0x00000018 },
- { 0x040c2565, 0x00000002 },
- { 0x0000005d, 0x00000018 },
- { 0x04002564, 0x00000002 },
- { 0x00007566, 0x00000002 },
- { 0x00000054, 0x00000004 },
- { 0x00401060, 0x00000008 },
- { 0x00101000, 0x00000002 },
- { 0x000d80ff, 0x00000002 },
- { 0x00800063, 0x00000008 },
- { 0x000f9000, 0x00000002 },
- { 0x000e00ff, 0x00000002 },
- { 0000000000, 0x00000006 },
- { 0x00000080, 0x00000018 },
- { 0x00000054, 0x00000004 },
- { 0x00007576, 0x00000002 },
- { 0x00065000, 0x00000002 },
- { 0x00009000, 0x00000002 },
- { 0x00041000, 0x00000002 },
- { 0x0c00350e, 0x00000002 },
- { 0x00049000, 0x00000002 },
- { 0x00051000, 0x00000002 },
- { 0x01e785f8, 0x00000002 },
- { 0x00200000, 0x00000002 },
- { 0x00600073, 0x0000000c },
- { 0x00007563, 0x00000002 },
- { 0x006075f0, 0x00000021 },
- { 0x20007068, 0x00000004 },
- { 0x00005068, 0x00000004 },
- { 0x00007576, 0x00000002 },
- { 0x00007577, 0x00000002 },
- { 0x0000750e, 0x00000002 },
- { 0x0000750f, 0x00000002 },
- { 0x00a05000, 0x00000002 },
- { 0x00600076, 0x0000000c },
- { 0x006075f0, 0x00000021 },
- { 0x000075f8, 0x00000002 },
- { 0x00000076, 0x00000004 },
- { 0x000a750e, 0x00000002 },
- { 0x0020750f, 0x00000002 },
- { 0x00600079, 0x00000004 },
- { 0x00007570, 0x00000002 },
- { 0x00007571, 0x00000002 },
- { 0x00007572, 0x00000006 },
- { 0x00005000, 0x00000002 },
- { 0x00a05000, 0x00000002 },
- { 0x00007568, 0x00000002 },
- { 0x00061000, 0x00000002 },
- { 0x00000084, 0x0000000c },
- { 0x00058000, 0x00000002 },
- { 0x0c607562, 0x00000002 },
- { 0x00000086, 0x00000004 },
- { 0x00600085, 0x00000004 },
- { 0x400070dd, 0000000000 },
- { 0x000380dd, 0x00000002 },
- { 0x00000093, 0x0000001c },
- { 0x00065095, 0x00000018 },
- { 0x040025bb, 0x00000002 },
- { 0x00061096, 0x00000018 },
- { 0x040075bc, 0000000000 },
- { 0x000075bb, 0x00000002 },
- { 0x000075bc, 0000000000 },
- { 0x00090000, 0x00000006 },
- { 0x00090000, 0x00000002 },
- { 0x000d8002, 0x00000006 },
- { 0x00005000, 0x00000002 },
- { 0x00007821, 0x00000002 },
- { 0x00007800, 0000000000 },
- { 0x00007821, 0x00000002 },
- { 0x00007800, 0000000000 },
- { 0x01665000, 0x00000002 },
- { 0x000a0000, 0x00000002 },
- { 0x000671cc, 0x00000002 },
- { 0x0286f1cd, 0x00000002 },
- { 0x000000a3, 0x00000010 },
- { 0x21007000, 0000000000 },
- { 0x000000aa, 0x0000001c },
- { 0x00065000, 0x00000002 },
- { 0x000a0000, 0x00000002 },
- { 0x00061000, 0x00000002 },
- { 0x000b0000, 0x00000002 },
- { 0x38067000, 0x00000002 },
- { 0x000a00a6, 0x00000004 },
- { 0x20007000, 0000000000 },
- { 0x01200000, 0x00000002 },
- { 0x20077000, 0x00000002 },
- { 0x01200000, 0x00000002 },
- { 0x20007000, 0000000000 },
- { 0x00061000, 0x00000002 },
- { 0x0120751b, 0x00000002 },
- { 0x8040750a, 0x00000002 },
- { 0x8040750b, 0x00000002 },
- { 0x00110000, 0x00000002 },
- { 0x000380dd, 0x00000002 },
- { 0x000000bd, 0x0000001c },
- { 0x00061096, 0x00000018 },
- { 0x844075bd, 0x00000002 },
- { 0x00061095, 0x00000018 },
- { 0x840075bb, 0x00000002 },
- { 0x00061096, 0x00000018 },
- { 0x844075bc, 0x00000002 },
- { 0x000000c0, 0x00000004 },
- { 0x804075bd, 0x00000002 },
- { 0x800075bb, 0x00000002 },
- { 0x804075bc, 0x00000002 },
- { 0x00108000, 0x00000002 },
- { 0x01400000, 0x00000002 },
- { 0x006000c4, 0x0000000c },
- { 0x20c07000, 0x00000020 },
- { 0x000000c6, 0x00000012 },
- { 0x00800000, 0x00000006 },
- { 0x0080751d, 0x00000006 },
- { 0x000025bb, 0x00000002 },
- { 0x000040c0, 0x00000004 },
- { 0x0000775c, 0x00000002 },
- { 0x00a05000, 0x00000002 },
- { 0x00661000, 0x00000002 },
- { 0x0460275d, 0x00000020 },
- { 0x00004000, 0000000000 },
- { 0x00007999, 0x00000002 },
- { 0x00a05000, 0x00000002 },
- { 0x00661000, 0x00000002 },
- { 0x0460299b, 0x00000020 },
- { 0x00004000, 0000000000 },
- { 0x01e00830, 0x00000002 },
- { 0x21007000, 0000000000 },
- { 0x00005000, 0x00000002 },
- { 0x00038042, 0x00000002 },
- { 0x040025e0, 0x00000002 },
- { 0x000075e1, 0000000000 },
- { 0x00000001, 0000000000 },
- { 0x000380d9, 0x00000002 },
- { 0x04007394, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
-};
-
-
-static u32 radeon_cp_microcode[][2] = {
- { 0x21007000, 0000000000 },
- { 0x20007000, 0000000000 },
- { 0x000000b4, 0x00000004 },
- { 0x000000b8, 0x00000004 },
- { 0x6f5b4d4c, 0000000000 },
- { 0x4c4c427f, 0000000000 },
- { 0x5b568a92, 0000000000 },
- { 0x4ca09c6d, 0000000000 },
- { 0xad4c4c4c, 0000000000 },
- { 0x4ce1af3d, 0000000000 },
- { 0xd8afafaf, 0000000000 },
- { 0xd64c4cdc, 0000000000 },
- { 0x4cd10d10, 0000000000 },
- { 0x000f0000, 0x00000016 },
- { 0x362f242d, 0000000000 },
- { 0x00000012, 0x00000004 },
- { 0x000f0000, 0x00000016 },
- { 0x362f282d, 0000000000 },
- { 0x000380e7, 0x00000002 },
- { 0x04002c97, 0x00000002 },
- { 0x000f0001, 0x00000016 },
- { 0x333a3730, 0000000000 },
- { 0x000077ef, 0x00000002 },
- { 0x00061000, 0x00000002 },
- { 0x00000021, 0x0000001a },
- { 0x00004000, 0x0000001e },
- { 0x00061000, 0x00000002 },
- { 0x00000021, 0x0000001a },
- { 0x00004000, 0x0000001e },
- { 0x00061000, 0x00000002 },
- { 0x00000021, 0x0000001a },
- { 0x00004000, 0x0000001e },
- { 0x00000017, 0x00000004 },
- { 0x0003802b, 0x00000002 },
- { 0x040067e0, 0x00000002 },
- { 0x00000017, 0x00000004 },
- { 0x000077e0, 0x00000002 },
- { 0x00065000, 0x00000002 },
- { 0x000037e1, 0x00000002 },
- { 0x040067e1, 0x00000006 },
- { 0x000077e0, 0x00000002 },
- { 0x000077e1, 0x00000002 },
- { 0x000077e1, 0x00000006 },
- { 0xffffffff, 0000000000 },
- { 0x10000000, 0000000000 },
- { 0x0003802b, 0x00000002 },
- { 0x040067e0, 0x00000006 },
- { 0x00007675, 0x00000002 },
- { 0x00007676, 0x00000002 },
- { 0x00007677, 0x00000002 },
- { 0x00007678, 0x00000006 },
- { 0x0003802c, 0x00000002 },
- { 0x04002676, 0x00000002 },
- { 0x00007677, 0x00000002 },
- { 0x00007678, 0x00000006 },
- { 0x0000002f, 0x00000018 },
- { 0x0000002f, 0x00000018 },
- { 0000000000, 0x00000006 },
- { 0x00000030, 0x00000018 },
- { 0x00000030, 0x00000018 },
- { 0000000000, 0x00000006 },
- { 0x01605000, 0x00000002 },
- { 0x00065000, 0x00000002 },
- { 0x00098000, 0x00000002 },
- { 0x00061000, 0x00000002 },
- { 0x64c0603e, 0x00000004 },
- { 0x000380e6, 0x00000002 },
- { 0x040025c5, 0x00000002 },
- { 0x00080000, 0x00000016 },
- { 0000000000, 0000000000 },
- { 0x0400251d, 0x00000002 },
- { 0x00007580, 0x00000002 },
- { 0x00067581, 0x00000002 },
- { 0x04002580, 0x00000002 },
- { 0x00067581, 0x00000002 },
- { 0x00000049, 0x00000004 },
- { 0x00005000, 0000000000 },
- { 0x000380e6, 0x00000002 },
- { 0x040025c5, 0x00000002 },
- { 0x00061000, 0x00000002 },
- { 0x0000750e, 0x00000002 },
- { 0x00019000, 0x00000002 },
- { 0x00011055, 0x00000014 },
- { 0x00000055, 0x00000012 },
- { 0x0400250f, 0x00000002 },
- { 0x0000504f, 0x00000004 },
- { 0x000380e6, 0x00000002 },
- { 0x040025c5, 0x00000002 },
- { 0x00007565, 0x00000002 },
- { 0x00007566, 0x00000002 },
- { 0x00000058, 0x00000004 },
- { 0x000380e6, 0x00000002 },
- { 0x040025c5, 0x00000002 },
- { 0x01e655b4, 0x00000002 },
- { 0x4401b0e4, 0x00000002 },
- { 0x01c110e4, 0x00000002 },
- { 0x26667066, 0x00000018 },
- { 0x040c2565, 0x00000002 },
- { 0x00000066, 0x00000018 },
- { 0x04002564, 0x00000002 },
- { 0x00007566, 0x00000002 },
- { 0x0000005d, 0x00000004 },
- { 0x00401069, 0x00000008 },
- { 0x00101000, 0x00000002 },
- { 0x000d80ff, 0x00000002 },
- { 0x0080006c, 0x00000008 },
- { 0x000f9000, 0x00000002 },
- { 0x000e00ff, 0x00000002 },
- { 0000000000, 0x00000006 },
- { 0x0000008f, 0x00000018 },
- { 0x0000005b, 0x00000004 },
- { 0x000380e6, 0x00000002 },
- { 0x040025c5, 0x00000002 },
- { 0x00007576, 0x00000002 },
- { 0x00065000, 0x00000002 },
- { 0x00009000, 0x00000002 },
- { 0x00041000, 0x00000002 },
- { 0x0c00350e, 0x00000002 },
- { 0x00049000, 0x00000002 },
- { 0x00051000, 0x00000002 },
- { 0x01e785f8, 0x00000002 },
- { 0x00200000, 0x00000002 },
- { 0x0060007e, 0x0000000c },
- { 0x00007563, 0x00000002 },
- { 0x006075f0, 0x00000021 },
- { 0x20007073, 0x00000004 },
- { 0x00005073, 0x00000004 },
- { 0x000380e6, 0x00000002 },
- { 0x040025c5, 0x00000002 },
- { 0x00007576, 0x00000002 },
- { 0x00007577, 0x00000002 },
- { 0x0000750e, 0x00000002 },
- { 0x0000750f, 0x00000002 },
- { 0x00a05000, 0x00000002 },
- { 0x00600083, 0x0000000c },
- { 0x006075f0, 0x00000021 },
- { 0x000075f8, 0x00000002 },
- { 0x00000083, 0x00000004 },
- { 0x000a750e, 0x00000002 },
- { 0x000380e6, 0x00000002 },
- { 0x040025c5, 0x00000002 },
- { 0x0020750f, 0x00000002 },
- { 0x00600086, 0x00000004 },
- { 0x00007570, 0x00000002 },
- { 0x00007571, 0x00000002 },
- { 0x00007572, 0x00000006 },
- { 0x000380e6, 0x00000002 },
- { 0x040025c5, 0x00000002 },
- { 0x00005000, 0x00000002 },
- { 0x00a05000, 0x00000002 },
- { 0x00007568, 0x00000002 },
- { 0x00061000, 0x00000002 },
- { 0x00000095, 0x0000000c },
- { 0x00058000, 0x00000002 },
- { 0x0c607562, 0x00000002 },
- { 0x00000097, 0x00000004 },
- { 0x000380e6, 0x00000002 },
- { 0x040025c5, 0x00000002 },
- { 0x00600096, 0x00000004 },
- { 0x400070e5, 0000000000 },
- { 0x000380e6, 0x00000002 },
- { 0x040025c5, 0x00000002 },
- { 0x000380e5, 0x00000002 },
- { 0x000000a8, 0x0000001c },
- { 0x000650aa, 0x00000018 },
- { 0x040025bb, 0x00000002 },
- { 0x000610ab, 0x00000018 },
- { 0x040075bc, 0000000000 },
- { 0x000075bb, 0x00000002 },
- { 0x000075bc, 0000000000 },
- { 0x00090000, 0x00000006 },
- { 0x00090000, 0x00000002 },
- { 0x000d8002, 0x00000006 },
- { 0x00007832, 0x00000002 },
- { 0x00005000, 0x00000002 },
- { 0x000380e7, 0x00000002 },
- { 0x04002c97, 0x00000002 },
- { 0x00007820, 0x00000002 },
- { 0x00007821, 0x00000002 },
- { 0x00007800, 0000000000 },
- { 0x01200000, 0x00000002 },
- { 0x20077000, 0x00000002 },
- { 0x01200000, 0x00000002 },
- { 0x20007000, 0x00000002 },
- { 0x00061000, 0x00000002 },
- { 0x0120751b, 0x00000002 },
- { 0x8040750a, 0x00000002 },
- { 0x8040750b, 0x00000002 },
- { 0x00110000, 0x00000002 },
- { 0x000380e5, 0x00000002 },
- { 0x000000c6, 0x0000001c },
- { 0x000610ab, 0x00000018 },
- { 0x844075bd, 0x00000002 },
- { 0x000610aa, 0x00000018 },
- { 0x840075bb, 0x00000002 },
- { 0x000610ab, 0x00000018 },
- { 0x844075bc, 0x00000002 },
- { 0x000000c9, 0x00000004 },
- { 0x804075bd, 0x00000002 },
- { 0x800075bb, 0x00000002 },
- { 0x804075bc, 0x00000002 },
- { 0x00108000, 0x00000002 },
- { 0x01400000, 0x00000002 },
- { 0x006000cd, 0x0000000c },
- { 0x20c07000, 0x00000020 },
- { 0x000000cf, 0x00000012 },
- { 0x00800000, 0x00000006 },
- { 0x0080751d, 0x00000006 },
- { 0000000000, 0000000000 },
- { 0x0000775c, 0x00000002 },
- { 0x00a05000, 0x00000002 },
- { 0x00661000, 0x00000002 },
- { 0x0460275d, 0x00000020 },
- { 0x00004000, 0000000000 },
- { 0x01e00830, 0x00000002 },
- { 0x21007000, 0000000000 },
- { 0x6464614d, 0000000000 },
- { 0x69687420, 0000000000 },
- { 0x00000073, 0000000000 },
- { 0000000000, 0000000000 },
- { 0x00005000, 0x00000002 },
- { 0x000380d0, 0x00000002 },
- { 0x040025e0, 0x00000002 },
- { 0x000075e1, 0000000000 },
- { 0x00000001, 0000000000 },
- { 0x000380e0, 0x00000002 },
- { 0x04002394, 0x00000002 },
- { 0x00005000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0x00000008, 0000000000 },
- { 0x00000004, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
- { 0000000000, 0000000000 },
-};
-
-
int RADEON_READ_PLL(drm_device_t *dev, int addr)
{
drm_radeon_private_t *dev_priv = dev->dev_private;
@@ -641,7 +120,7 @@
return DRM_ERR(EBUSY);
}
-static int radeon_do_wait_for_idle( drm_radeon_private_t *dev_priv )
+int radeon_do_wait_for_idle( drm_radeon_private_t *dev_priv )
{
int i, ret;
@@ -671,38 +150,6 @@
* CP control, initialization
*/
-/* Load the microcode for the CP */
-static void radeon_cp_load_microcode( drm_radeon_private_t *dev_priv )
-{
- int i;
- DRM_DEBUG( "\n" );
-
- radeon_do_wait_for_idle( dev_priv );
-
- RADEON_WRITE( RADEON_CP_ME_RAM_ADDR, 0 );
-
- if (dev_priv->is_r200)
- {
- DRM_INFO("Loading R200 Microcode\n");
- for ( i = 0 ; i < 256 ; i++ )
- {
- RADEON_WRITE( RADEON_CP_ME_RAM_DATAH,
- R200_cp_microcode[i][1] );
- RADEON_WRITE( RADEON_CP_ME_RAM_DATAL,
- R200_cp_microcode[i][0] );
- }
- }
- else
- {
- for ( i = 0 ; i < 256 ; i++ ) {
- RADEON_WRITE( RADEON_CP_ME_RAM_DATAH,
- radeon_cp_microcode[i][1] );
- RADEON_WRITE( RADEON_CP_ME_RAM_DATAL,
- radeon_cp_microcode[i][0] );
- }
- }
-}
-
/* Flush any pending commands to the CP. This should only be used just
* prior to a wait for idle, as it informs the engine that the command
* stream is ending.
@@ -1002,6 +449,7 @@
static int radeon_do_init_cp( drm_device_t *dev, drm_radeon_init_t *init )
{
+ int err;
drm_radeon_private_t *dev_priv;
DRM_DEBUG( "\n" );
@@ -1255,7 +703,13 @@
radeon_set_pcigart( dev_priv, 1 );
}
- radeon_cp_load_microcode( dev_priv );
+ err = radeon_cp_load_microcode( dev, dev_priv );
+ if (err) {
+ dev->dev_private = (void *)dev_priv;
+ radeon_do_cleanup_cp(dev);
+ return err;
+ }
+
radeon_cp_init_ring_buffer( dev, dev_priv );
dev_priv->last_buf = 0;
@@ -1316,6 +770,7 @@
*/
static int radeon_do_resume_cp( drm_device_t *dev )
{
+ int err;
drm_radeon_private_t *dev_priv = dev->dev_private;
if ( !dev_priv ) {
@@ -1336,7 +791,11 @@
radeon_set_pcigart( dev_priv, 1 );
}
- radeon_cp_load_microcode( dev_priv );
+ err = radeon_cp_load_microcode( dev, dev_priv);
+ if (err) {
+ return err;
+ }
+
radeon_cp_init_ring_buffer( dev, dev_priv );
radeon_do_engine_reset( dev );
diff -ruN linux-2.6.5/drivers/char/drm-old/radeon_drv.h linux-2.6.5/drivers/char/drm/radeon_drv.h
--- linux-2.6.5/drivers/char/drm-old/radeon_drv.h 2004-04-18 15:45:08.000000000 -0400
+++ linux-2.6.5/drivers/char/drm/radeon_drv.h 2004-04-23 14:33:26.000000000 -0400
@@ -169,6 +169,7 @@
extern int radeon_wait_ring( drm_radeon_private_t *dev_priv, int n );
+extern int radeon_do_wait_for_idle (drm_radeon_private_t *dev_priv);
extern int radeon_do_cp_idle( drm_radeon_private_t *dev_priv );
extern int radeon_do_cleanup_cp( drm_device_t *dev );
extern int radeon_do_cleanup_pageflip( drm_device_t *dev );
@@ -202,6 +203,11 @@
extern void radeon_do_release(drm_device_t *dev);
+ /* radeon_firmware_loader.c
+ or radeon_firmware.c */
+extern int radeon_cp_load_microcode( drm_device_t *dev,
+ drm_radeon_private_t *dev_priv);
+
/* Flags for stats.boxes
*/
#define RADEON_BOX_DMA_IDLE 0x1
diff -ruN linux-2.6.5/drivers/char/drm-old/radeon_firmware.c linux-2.6.5/drivers/char/drm/radeon_firmware.c
--- linux-2.6.5/drivers/char/drm-old/radeon_firmware.c 1969-12-31 19:00:00.000000000 -0500
+++ linux-2.6.5/drivers/char/drm/radeon_firmware.c 2004-04-23 14:31:05.000000000 -0400
@@ -0,0 +1,594 @@
+/* radeon_firmware.c -- Firmware for Radeon -*- linux-c -*-
+ *
+ * Firmware probably copyright ATI. (No clear license.)
+ *
+ * The remainder:
+ * Copyright 2000 Precision Insight, Inc., Cedar Park, Texas.
+ * Copyright 2000 VA Linux Systems, Inc., Fremont, California.
+ * Copyright 2004 Nathanael Nerode.
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Kevin E. Martin <martin@valinux.com>
+ * Gareth Hughes <gareth@valinux.com>
+ * Nathanael Nerode <neroden@gcc.gnu.org>
+ * And whoever wrote the firmware.
+ */
+
+#include "radeon.h"
+#include "drmP.h"
+#include "drm.h"
+#include "radeon_drm.h"
+#include "radeon_drv.h"
+
+/* CP microcode (from ATI) */
+static u32 R200_cp_microcode[][2] = {
+ { 0x21007000, 0000000000 },
+ { 0x20007000, 0000000000 },
+ { 0x000000ab, 0x00000004 },
+ { 0x000000af, 0x00000004 },
+ { 0x66544a49, 0000000000 },
+ { 0x49494174, 0000000000 },
+ { 0x54517d83, 0000000000 },
+ { 0x498d8b64, 0000000000 },
+ { 0x49494949, 0000000000 },
+ { 0x49da493c, 0000000000 },
+ { 0x49989898, 0000000000 },
+ { 0xd34949d5, 0000000000 },
+ { 0x9dc90e11, 0000000000 },
+ { 0xce9b9b9b, 0000000000 },
+ { 0x000f0000, 0x00000016 },
+ { 0x352e232c, 0000000000 },
+ { 0x00000013, 0x00000004 },
+ { 0x000f0000, 0x00000016 },
+ { 0x352e272c, 0000000000 },
+ { 0x000f0001, 0x00000016 },
+ { 0x3239362f, 0000000000 },
+ { 0x000077ef, 0x00000002 },
+ { 0x00061000, 0x00000002 },
+ { 0x00000020, 0x0000001a },
+ { 0x00004000, 0x0000001e },
+ { 0x00061000, 0x00000002 },
+ { 0x00000020, 0x0000001a },
+ { 0x00004000, 0x0000001e },
+ { 0x00061000, 0x00000002 },
+ { 0x00000020, 0x0000001a },
+ { 0x00004000, 0x0000001e },
+ { 0x00000016, 0x00000004 },
+ { 0x0003802a, 0x00000002 },
+ { 0x040067e0, 0x00000002 },
+ { 0x00000016, 0x00000004 },
+ { 0x000077e0, 0x00000002 },
+ { 0x00065000, 0x00000002 },
+ { 0x000037e1, 0x00000002 },
+ { 0x040067e1, 0x00000006 },
+ { 0x000077e0, 0x00000002 },
+ { 0x000077e1, 0x00000002 },
+ { 0x000077e1, 0x00000006 },
+ { 0xffffffff, 0000000000 },
+ { 0x10000000, 0000000000 },
+ { 0x0003802a, 0x00000002 },
+ { 0x040067e0, 0x00000006 },
+ { 0x00007675, 0x00000002 },
+ { 0x00007676, 0x00000002 },
+ { 0x00007677, 0x00000002 },
+ { 0x00007678, 0x00000006 },
+ { 0x0003802b, 0x00000002 },
+ { 0x04002676, 0x00000002 },
+ { 0x00007677, 0x00000002 },
+ { 0x00007678, 0x00000006 },
+ { 0x0000002e, 0x00000018 },
+ { 0x0000002e, 0x00000018 },
+ { 0000000000, 0x00000006 },
+ { 0x0000002f, 0x00000018 },
+ { 0x0000002f, 0x00000018 },
+ { 0000000000, 0x00000006 },
+ { 0x01605000, 0x00000002 },
+ { 0x00065000, 0x00000002 },
+ { 0x00098000, 0x00000002 },
+ { 0x00061000, 0x00000002 },
+ { 0x64c0603d, 0x00000004 },
+ { 0x00080000, 0x00000016 },
+ { 0000000000, 0000000000 },
+ { 0x0400251d, 0x00000002 },
+ { 0x00007580, 0x00000002 },
+ { 0x00067581, 0x00000002 },
+ { 0x04002580, 0x00000002 },
+ { 0x00067581, 0x00000002 },
+ { 0x00000046, 0x00000004 },
+ { 0x00005000, 0000000000 },
+ { 0x00061000, 0x00000002 },
+ { 0x0000750e, 0x00000002 },
+ { 0x00019000, 0x00000002 },
+ { 0x00011055, 0x00000014 },
+ { 0x00000055, 0x00000012 },
+ { 0x0400250f, 0x00000002 },
+ { 0x0000504a, 0x00000004 },
+ { 0x00007565, 0x00000002 },
+ { 0x00007566, 0x00000002 },
+ { 0x00000051, 0x00000004 },
+ { 0x01e655b4, 0x00000002 },
+ { 0x4401b0dc, 0x00000002 },
+ { 0x01c110dc, 0x00000002 },
+ { 0x2666705d, 0x00000018 },
+ { 0x040c2565, 0x00000002 },
+ { 0x0000005d, 0x00000018 },
+ { 0x04002564, 0x00000002 },
+ { 0x00007566, 0x00000002 },
+ { 0x00000054, 0x00000004 },
+ { 0x00401060, 0x00000008 },
+ { 0x00101000, 0x00000002 },
+ { 0x000d80ff, 0x00000002 },
+ { 0x00800063, 0x00000008 },
+ { 0x000f9000, 0x00000002 },
+ { 0x000e00ff, 0x00000002 },
+ { 0000000000, 0x00000006 },
+ { 0x00000080, 0x00000018 },
+ { 0x00000054, 0x00000004 },
+ { 0x00007576, 0x00000002 },
+ { 0x00065000, 0x00000002 },
+ { 0x00009000, 0x00000002 },
+ { 0x00041000, 0x00000002 },
+ { 0x0c00350e, 0x00000002 },
+ { 0x00049000, 0x00000002 },
+ { 0x00051000, 0x00000002 },
+ { 0x01e785f8, 0x00000002 },
+ { 0x00200000, 0x00000002 },
+ { 0x00600073, 0x0000000c },
+ { 0x00007563, 0x00000002 },
+ { 0x006075f0, 0x00000021 },
+ { 0x20007068, 0x00000004 },
+ { 0x00005068, 0x00000004 },
+ { 0x00007576, 0x00000002 },
+ { 0x00007577, 0x00000002 },
+ { 0x0000750e, 0x00000002 },
+ { 0x0000750f, 0x00000002 },
+ { 0x00a05000, 0x00000002 },
+ { 0x00600076, 0x0000000c },
+ { 0x006075f0, 0x00000021 },
+ { 0x000075f8, 0x00000002 },
+ { 0x00000076, 0x00000004 },
+ { 0x000a750e, 0x00000002 },
+ { 0x0020750f, 0x00000002 },
+ { 0x00600079, 0x00000004 },
+ { 0x00007570, 0x00000002 },
+ { 0x00007571, 0x00000002 },
+ { 0x00007572, 0x00000006 },
+ { 0x00005000, 0x00000002 },
+ { 0x00a05000, 0x00000002 },
+ { 0x00007568, 0x00000002 },
+ { 0x00061000, 0x00000002 },
+ { 0x00000084, 0x0000000c },
+ { 0x00058000, 0x00000002 },
+ { 0x0c607562, 0x00000002 },
+ { 0x00000086, 0x00000004 },
+ { 0x00600085, 0x00000004 },
+ { 0x400070dd, 0000000000 },
+ { 0x000380dd, 0x00000002 },
+ { 0x00000093, 0x0000001c },
+ { 0x00065095, 0x00000018 },
+ { 0x040025bb, 0x00000002 },
+ { 0x00061096, 0x00000018 },
+ { 0x040075bc, 0000000000 },
+ { 0x000075bb, 0x00000002 },
+ { 0x000075bc, 0000000000 },
+ { 0x00090000, 0x00000006 },
+ { 0x00090000, 0x00000002 },
+ { 0x000d8002, 0x00000006 },
+ { 0x00005000, 0x00000002 },
+ { 0x00007821, 0x00000002 },
+ { 0x00007800, 0000000000 },
+ { 0x00007821, 0x00000002 },
+ { 0x00007800, 0000000000 },
+ { 0x01665000, 0x00000002 },
+ { 0x000a0000, 0x00000002 },
+ { 0x000671cc, 0x00000002 },
+ { 0x0286f1cd, 0x00000002 },
+ { 0x000000a3, 0x00000010 },
+ { 0x21007000, 0000000000 },
+ { 0x000000aa, 0x0000001c },
+ { 0x00065000, 0x00000002 },
+ { 0x000a0000, 0x00000002 },
+ { 0x00061000, 0x00000002 },
+ { 0x000b0000, 0x00000002 },
+ { 0x38067000, 0x00000002 },
+ { 0x000a00a6, 0x00000004 },
+ { 0x20007000, 0000000000 },
+ { 0x01200000, 0x00000002 },
+ { 0x20077000, 0x00000002 },
+ { 0x01200000, 0x00000002 },
+ { 0x20007000, 0000000000 },
+ { 0x00061000, 0x00000002 },
+ { 0x0120751b, 0x00000002 },
+ { 0x8040750a, 0x00000002 },
+ { 0x8040750b, 0x00000002 },
+ { 0x00110000, 0x00000002 },
+ { 0x000380dd, 0x00000002 },
+ { 0x000000bd, 0x0000001c },
+ { 0x00061096, 0x00000018 },
+ { 0x844075bd, 0x00000002 },
+ { 0x00061095, 0x00000018 },
+ { 0x840075bb, 0x00000002 },
+ { 0x00061096, 0x00000018 },
+ { 0x844075bc, 0x00000002 },
+ { 0x000000c0, 0x00000004 },
+ { 0x804075bd, 0x00000002 },
+ { 0x800075bb, 0x00000002 },
+ { 0x804075bc, 0x00000002 },
+ { 0x00108000, 0x00000002 },
+ { 0x01400000, 0x00000002 },
+ { 0x006000c4, 0x0000000c },
+ { 0x20c07000, 0x00000020 },
+ { 0x000000c6, 0x00000012 },
+ { 0x00800000, 0x00000006 },
+ { 0x0080751d, 0x00000006 },
+ { 0x000025bb, 0x00000002 },
+ { 0x000040c0, 0x00000004 },
+ { 0x0000775c, 0x00000002 },
+ { 0x00a05000, 0x00000002 },
+ { 0x00661000, 0x00000002 },
+ { 0x0460275d, 0x00000020 },
+ { 0x00004000, 0000000000 },
+ { 0x00007999, 0x00000002 },
+ { 0x00a05000, 0x00000002 },
+ { 0x00661000, 0x00000002 },
+ { 0x0460299b, 0x00000020 },
+ { 0x00004000, 0000000000 },
+ { 0x01e00830, 0x00000002 },
+ { 0x21007000, 0000000000 },
+ { 0x00005000, 0x00000002 },
+ { 0x00038042, 0x00000002 },
+ { 0x040025e0, 0x00000002 },
+ { 0x000075e1, 0000000000 },
+ { 0x00000001, 0000000000 },
+ { 0x000380d9, 0x00000002 },
+ { 0x04007394, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+};
+
+
+static u32 radeon_cp_microcode[][2] = {
+ { 0x21007000, 0000000000 },
+ { 0x20007000, 0000000000 },
+ { 0x000000b4, 0x00000004 },
+ { 0x000000b8, 0x00000004 },
+ { 0x6f5b4d4c, 0000000000 },
+ { 0x4c4c427f, 0000000000 },
+ { 0x5b568a92, 0000000000 },
+ { 0x4ca09c6d, 0000000000 },
+ { 0xad4c4c4c, 0000000000 },
+ { 0x4ce1af3d, 0000000000 },
+ { 0xd8afafaf, 0000000000 },
+ { 0xd64c4cdc, 0000000000 },
+ { 0x4cd10d10, 0000000000 },
+ { 0x000f0000, 0x00000016 },
+ { 0x362f242d, 0000000000 },
+ { 0x00000012, 0x00000004 },
+ { 0x000f0000, 0x00000016 },
+ { 0x362f282d, 0000000000 },
+ { 0x000380e7, 0x00000002 },
+ { 0x04002c97, 0x00000002 },
+ { 0x000f0001, 0x00000016 },
+ { 0x333a3730, 0000000000 },
+ { 0x000077ef, 0x00000002 },
+ { 0x00061000, 0x00000002 },
+ { 0x00000021, 0x0000001a },
+ { 0x00004000, 0x0000001e },
+ { 0x00061000, 0x00000002 },
+ { 0x00000021, 0x0000001a },
+ { 0x00004000, 0x0000001e },
+ { 0x00061000, 0x00000002 },
+ { 0x00000021, 0x0000001a },
+ { 0x00004000, 0x0000001e },
+ { 0x00000017, 0x00000004 },
+ { 0x0003802b, 0x00000002 },
+ { 0x040067e0, 0x00000002 },
+ { 0x00000017, 0x00000004 },
+ { 0x000077e0, 0x00000002 },
+ { 0x00065000, 0x00000002 },
+ { 0x000037e1, 0x00000002 },
+ { 0x040067e1, 0x00000006 },
+ { 0x000077e0, 0x00000002 },
+ { 0x000077e1, 0x00000002 },
+ { 0x000077e1, 0x00000006 },
+ { 0xffffffff, 0000000000 },
+ { 0x10000000, 0000000000 },
+ { 0x0003802b, 0x00000002 },
+ { 0x040067e0, 0x00000006 },
+ { 0x00007675, 0x00000002 },
+ { 0x00007676, 0x00000002 },
+ { 0x00007677, 0x00000002 },
+ { 0x00007678, 0x00000006 },
+ { 0x0003802c, 0x00000002 },
+ { 0x04002676, 0x00000002 },
+ { 0x00007677, 0x00000002 },
+ { 0x00007678, 0x00000006 },
+ { 0x0000002f, 0x00000018 },
+ { 0x0000002f, 0x00000018 },
+ { 0000000000, 0x00000006 },
+ { 0x00000030, 0x00000018 },
+ { 0x00000030, 0x00000018 },
+ { 0000000000, 0x00000006 },
+ { 0x01605000, 0x00000002 },
+ { 0x00065000, 0x00000002 },
+ { 0x00098000, 0x00000002 },
+ { 0x00061000, 0x00000002 },
+ { 0x64c0603e, 0x00000004 },
+ { 0x000380e6, 0x00000002 },
+ { 0x040025c5, 0x00000002 },
+ { 0x00080000, 0x00000016 },
+ { 0000000000, 0000000000 },
+ { 0x0400251d, 0x00000002 },
+ { 0x00007580, 0x00000002 },
+ { 0x00067581, 0x00000002 },
+ { 0x04002580, 0x00000002 },
+ { 0x00067581, 0x00000002 },
+ { 0x00000049, 0x00000004 },
+ { 0x00005000, 0000000000 },
+ { 0x000380e6, 0x00000002 },
+ { 0x040025c5, 0x00000002 },
+ { 0x00061000, 0x00000002 },
+ { 0x0000750e, 0x00000002 },
+ { 0x00019000, 0x00000002 },
+ { 0x00011055, 0x00000014 },
+ { 0x00000055, 0x00000012 },
+ { 0x0400250f, 0x00000002 },
+ { 0x0000504f, 0x00000004 },
+ { 0x000380e6, 0x00000002 },
+ { 0x040025c5, 0x00000002 },
+ { 0x00007565, 0x00000002 },
+ { 0x00007566, 0x00000002 },
+ { 0x00000058, 0x00000004 },
+ { 0x000380e6, 0x00000002 },
+ { 0x040025c5, 0x00000002 },
+ { 0x01e655b4, 0x00000002 },
+ { 0x4401b0e4, 0x00000002 },
+ { 0x01c110e4, 0x00000002 },
+ { 0x26667066, 0x00000018 },
+ { 0x040c2565, 0x00000002 },
+ { 0x00000066, 0x00000018 },
+ { 0x04002564, 0x00000002 },
+ { 0x00007566, 0x00000002 },
+ { 0x0000005d, 0x00000004 },
+ { 0x00401069, 0x00000008 },
+ { 0x00101000, 0x00000002 },
+ { 0x000d80ff, 0x00000002 },
+ { 0x0080006c, 0x00000008 },
+ { 0x000f9000, 0x00000002 },
+ { 0x000e00ff, 0x00000002 },
+ { 0000000000, 0x00000006 },
+ { 0x0000008f, 0x00000018 },
+ { 0x0000005b, 0x00000004 },
+ { 0x000380e6, 0x00000002 },
+ { 0x040025c5, 0x00000002 },
+ { 0x00007576, 0x00000002 },
+ { 0x00065000, 0x00000002 },
+ { 0x00009000, 0x00000002 },
+ { 0x00041000, 0x00000002 },
+ { 0x0c00350e, 0x00000002 },
+ { 0x00049000, 0x00000002 },
+ { 0x00051000, 0x00000002 },
+ { 0x01e785f8, 0x00000002 },
+ { 0x00200000, 0x00000002 },
+ { 0x0060007e, 0x0000000c },
+ { 0x00007563, 0x00000002 },
+ { 0x006075f0, 0x00000021 },
+ { 0x20007073, 0x00000004 },
+ { 0x00005073, 0x00000004 },
+ { 0x000380e6, 0x00000002 },
+ { 0x040025c5, 0x00000002 },
+ { 0x00007576, 0x00000002 },
+ { 0x00007577, 0x00000002 },
+ { 0x0000750e, 0x00000002 },
+ { 0x0000750f, 0x00000002 },
+ { 0x00a05000, 0x00000002 },
+ { 0x00600083, 0x0000000c },
+ { 0x006075f0, 0x00000021 },
+ { 0x000075f8, 0x00000002 },
+ { 0x00000083, 0x00000004 },
+ { 0x000a750e, 0x00000002 },
+ { 0x000380e6, 0x00000002 },
+ { 0x040025c5, 0x00000002 },
+ { 0x0020750f, 0x00000002 },
+ { 0x00600086, 0x00000004 },
+ { 0x00007570, 0x00000002 },
+ { 0x00007571, 0x00000002 },
+ { 0x00007572, 0x00000006 },
+ { 0x000380e6, 0x00000002 },
+ { 0x040025c5, 0x00000002 },
+ { 0x00005000, 0x00000002 },
+ { 0x00a05000, 0x00000002 },
+ { 0x00007568, 0x00000002 },
+ { 0x00061000, 0x00000002 },
+ { 0x00000095, 0x0000000c },
+ { 0x00058000, 0x00000002 },
+ { 0x0c607562, 0x00000002 },
+ { 0x00000097, 0x00000004 },
+ { 0x000380e6, 0x00000002 },
+ { 0x040025c5, 0x00000002 },
+ { 0x00600096, 0x00000004 },
+ { 0x400070e5, 0000000000 },
+ { 0x000380e6, 0x00000002 },
+ { 0x040025c5, 0x00000002 },
+ { 0x000380e5, 0x00000002 },
+ { 0x000000a8, 0x0000001c },
+ { 0x000650aa, 0x00000018 },
+ { 0x040025bb, 0x00000002 },
+ { 0x000610ab, 0x00000018 },
+ { 0x040075bc, 0000000000 },
+ { 0x000075bb, 0x00000002 },
+ { 0x000075bc, 0000000000 },
+ { 0x00090000, 0x00000006 },
+ { 0x00090000, 0x00000002 },
+ { 0x000d8002, 0x00000006 },
+ { 0x00007832, 0x00000002 },
+ { 0x00005000, 0x00000002 },
+ { 0x000380e7, 0x00000002 },
+ { 0x04002c97, 0x00000002 },
+ { 0x00007820, 0x00000002 },
+ { 0x00007821, 0x00000002 },
+ { 0x00007800, 0000000000 },
+ { 0x01200000, 0x00000002 },
+ { 0x20077000, 0x00000002 },
+ { 0x01200000, 0x00000002 },
+ { 0x20007000, 0x00000002 },
+ { 0x00061000, 0x00000002 },
+ { 0x0120751b, 0x00000002 },
+ { 0x8040750a, 0x00000002 },
+ { 0x8040750b, 0x00000002 },
+ { 0x00110000, 0x00000002 },
+ { 0x000380e5, 0x00000002 },
+ { 0x000000c6, 0x0000001c },
+ { 0x000610ab, 0x00000018 },
+ { 0x844075bd, 0x00000002 },
+ { 0x000610aa, 0x00000018 },
+ { 0x840075bb, 0x00000002 },
+ { 0x000610ab, 0x00000018 },
+ { 0x844075bc, 0x00000002 },
+ { 0x000000c9, 0x00000004 },
+ { 0x804075bd, 0x00000002 },
+ { 0x800075bb, 0x00000002 },
+ { 0x804075bc, 0x00000002 },
+ { 0x00108000, 0x00000002 },
+ { 0x01400000, 0x00000002 },
+ { 0x006000cd, 0x0000000c },
+ { 0x20c07000, 0x00000020 },
+ { 0x000000cf, 0x00000012 },
+ { 0x00800000, 0x00000006 },
+ { 0x0080751d, 0x00000006 },
+ { 0000000000, 0000000000 },
+ { 0x0000775c, 0x00000002 },
+ { 0x00a05000, 0x00000002 },
+ { 0x00661000, 0x00000002 },
+ { 0x0460275d, 0x00000020 },
+ { 0x00004000, 0000000000 },
+ { 0x01e00830, 0x00000002 },
+ { 0x21007000, 0000000000 },
+ { 0x6464614d, 0000000000 },
+ { 0x69687420, 0000000000 },
+ { 0x00000073, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0x00005000, 0x00000002 },
+ { 0x000380d0, 0x00000002 },
+ { 0x040025e0, 0x00000002 },
+ { 0x000075e1, 0000000000 },
+ { 0x00000001, 0000000000 },
+ { 0x000380e0, 0x00000002 },
+ { 0x04002394, 0x00000002 },
+ { 0x00005000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0x00000008, 0000000000 },
+ { 0x00000004, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+ { 0000000000, 0000000000 },
+};
+
+/* Load the microcode for the CP */
+int radeon_cp_load_microcode( drm_device_t *dev,
+ drm_radeon_private_t *dev_priv)
+{
+ int i;
+ DRM_DEBUG( "\n" );
+
+ radeon_do_wait_for_idle( dev_priv );
+
+ RADEON_WRITE( RADEON_CP_ME_RAM_ADDR, 0 );
+
+ if (dev_priv->is_r200)
+ {
+ DRM_INFO("Loading R200 Microcode\n");
+ for ( i = 0 ; i < 256 ; i++ )
+ {
+ RADEON_WRITE( RADEON_CP_ME_RAM_DATAH,
+ R200_cp_microcode[i][1] );
+ RADEON_WRITE( RADEON_CP_ME_RAM_DATAL,
+ R200_cp_microcode[i][0] );
+ }
+ }
+ else
+ {
+ for ( i = 0 ; i < 256 ; i++ ) {
+ RADEON_WRITE( RADEON_CP_ME_RAM_DATAH,
+ radeon_cp_microcode[i][1] );
+ RADEON_WRITE( RADEON_CP_ME_RAM_DATAL,
+ radeon_cp_microcode[i][0] );
+ }
+ }
+}
diff -ruN linux-2.6.5/drivers/char/drm-old/radeon_firmware_loader.c linux-2.6.5/drivers/char/drm/radeon_firmware_loader.c
--- linux-2.6.5/drivers/char/drm-old/radeon_firmware_loader.c 1969-12-31 19:00:00.000000000 -0500
+++ linux-2.6.5/drivers/char/drm/radeon_firmware_loader.c 2004-04-23 14:42:32.000000000 -0400
@@ -0,0 +1,108 @@
+/* radeon_firmware_loader.c -- Firmware loader for Radeon -*- linux-c -*-
+ *
+ * Copyright 2000 Precision Insight, Inc., Cedar Park, Texas.
+ * Copyright 2000 VA Linux Systems, Inc., Fremont, California.
+ * Copyright 2004 Nathanael Nerode.
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ * Kevin E. Martin <martin@valinux.com>
+ * Gareth Hughes <gareth@valinux.com>
+ * Nathanael Nerode <neroden@gcc.gnu.org>
+ */
+
+/* One and only one of this and radeon_firmware.c should be linked in */
+
+/* TO DO: There's an awful lot of similarity between the Radeon and
+ r128 drivers; unfortunately the few differences prevent unification
+ of the firmware_loader files at the moment. */
+
+#include <asm/byteorder.h>
+#include <linux/string.h>
+
+#include <linux/device.h>
+#include <linux/firmware.h>
+
+#include "radeon.h"
+#include "drmP.h"
+#include "drm.h"
+#include "radeon_drm.h"
+#include "radeon_drv.h"
+
+/* Load the microcode for the CP */
+int radeon_cp_load_microcode( drm_device_t *dev,
+ drm_radeon_private_t *dev_priv)
+{
+ int i, err;
+ u32 temp_h, temp_l;
+ const struct firmware *fw_entry = NULL;
+ char* filename;
+
+ if (dev_priv->is_r200)
+ filename="r200_cp_microcode";
+ else
+ filename="radeon_cp_microcode";
+
+ /* The 'dev' thing is uncovering the struct device buried in
+ drm_device_t (via pci_device) */
+ err = request_firmware( &fw_entry, filename, &(dev->pdev->dev) );
+ if (err) {
+ DRM_ERROR("Firmware file \"%s\" not available.\n", filename);
+ return err;
+ }
+
+ /* Assumes 256 x 2 x 32 bits of data */
+ if (fw_entry->size != 256 * 4 * 2) {
+ DRM_ERROR("Firmware file \"%s\" wrong size!\n", filename);
+ release_firmware(fw_entry);
+ return DRM_ERR(EINVAL);
+ }
+
+ DRM_DEBUG( "\n" );
+
+ radeon_do_wait_for_idle( dev_priv );
+
+ RADEON_WRITE( RADEON_CP_ME_RAM_ADDR, 0 );
+
+ for ( i = 0 ; i < 256 ; i++ ) {
+
+ /* We assume the incoming data is in little-endian byte order,
+ since we would like the firmware file to be
+ architecture-independent. Data will likely be swapped
+ twice on big-endian machines (once here, and
+ once in writel); with luck the compiler will optimize
+ that away. */
+ /* For historical reasons we store the microcode in the same
+ order as the built-in-driver version did, even though
+ that's not the order the writes are made in. */
+
+ memcpy(&temp_l, &(fw_entry->data[i*8]), 4);
+ memcpy(&temp_h, &(fw_entry->data[i*8 + 4]), 4);
+
+ RADEON_WRITE( RADEON_CP_ME_RAM_DATAH, le32_to_cpu(temp_h) );
+ RADEON_WRITE( RADEON_CP_ME_RAM_DATAL, le32_to_cpu(temp_l) );
+
+ }
+ release_firmware(fw_entry);
+
+ return 0;
+}
Information forwarded to debian-bugs-dist@lists.debian.org, Herbert Xu <herbert@debian.org>:
Bug#242866; Package kernel.
(full text, mbox, link).
Acknowledgement sent to Nathanael Nerode <neroden@twcny.rr.com>:
Extra info received and forwarded to list. Copy sent to Herbert Xu <herbert@debian.org>.
(full text, mbox, link).
Message #38 received at 242866@bugs.debian.org (full text, mbox, reply):
[Message part 1 (text/plain, inline)]
Attached is the tg3 patch.
[tg3-irq-d.diff (text/x-diff, attachment)]
Information forwarded to debian-bugs-dist@lists.debian.org, Herbert Xu <herbert@debian.org>:
Bug#242866; Package kernel.
(full text, mbox, link).
Acknowledgement sent to Herbert Xu <herbert@gondor.apana.org.au>:
Extra info received and forwarded to list. Copy sent to Herbert Xu <herbert@debian.org>.
(full text, mbox, link).
Message #43 received at 242866@bugs.debian.org (full text, mbox, reply):
On Fri, Apr 23, 2004 at 02:45:54PM -0400, Nathanael Nerode wrote:
>
> OK. That's actually harder and more annoying to do than you might
> imagine; it was done this way to avoid code duplication, and hopefully
> make easier to merge the r128 and radeon versions. See the changes. I
> made the parallel change to the r128 version for consistency. Most of
> the substantive change in the new patch is due to this change.
Well this doesn't have to prevent you from merging the two functions
later on. You can always have another function that had the check for
radeon chips which called the common firmware loading function.
> Attached is the new version. It compiles. I haven't been able to test
> it, but I hope it works.
Thank you very much. I've merged it into my 2.6 tree and 2.4 tree.
--
Debian GNU/Linux 3.0 is out! ( http://www.debian.org/ )
Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Information forwarded to debian-bugs-dist@lists.debian.org, Herbert Xu <herbert@debian.org>:
Bug#242866; Package kernel.
(full text, mbox, link).
Acknowledgement sent to Herbert Xu <herbert@gondor.apana.org.au>:
Extra info received and forwarded to list. Copy sent to Herbert Xu <herbert@debian.org>.
(full text, mbox, link).
Message #48 received at 242866@bugs.debian.org (full text, mbox, reply):
On Sat, Apr 24, 2004 at 03:19:43PM +1000, herbert wrote:
>
> Thank you very much. I've merged it into my 2.6 tree and 2.4 tree.
BTW, I got rid of the memcpy's since the firmware data should already
be aligned.
--
Debian GNU/Linux 3.0 is out! ( http://www.debian.org/ )
Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Information forwarded to debian-bugs-dist@lists.debian.org, Herbert Xu <herbert@debian.org>:
Bug#242866; Package kernel.
(full text, mbox, link).
Acknowledgement sent to Nathanael Nerode <neroden@twcny.rr.com>:
Extra info received and forwarded to list. Copy sent to Herbert Xu <herbert@debian.org>.
(full text, mbox, link).
Message #53 received at 242866@bugs.debian.org (full text, mbox, reply):
>On Sat, Apr 24, 2004 at 03:19:43PM +1000, herbert wrote: >> >> Thank you very much. I've merged it into my 2.6 tree and 2.4 tree. > >BTW, I got rid of the memcpy's since the firmware data should already >be aligned. I wasn't clear on that; for my edification, do you think you could point out where in firmware_class.c it guarantees that the char array will be sufficiently (32-bit) aligned? The buffer appears to be allocated with 'vmalloc' in page-sized increments; is vmalloc guaranteed to return areas starting at 'maximally aligned' points, or what?
Information forwarded to debian-bugs-dist@lists.debian.org, Herbert Xu <herbert@debian.org>:
Bug#242866; Package kernel.
(full text, mbox, link).
Acknowledgement sent to Herbert Xu <herbert@gondor.apana.org.au>:
Extra info received and forwarded to list. Copy sent to Herbert Xu <herbert@debian.org>.
(full text, mbox, link).
Message #58 received at 242866@bugs.debian.org (full text, mbox, reply):
On Sat, Apr 24, 2004 at 02:19:36AM -0400, Nathanael Nerode wrote:
>
> I wasn't clear on that; for my edification, do you think you could point out
> where in firmware_class.c it guarantees that the char array will be
> sufficiently (32-bit) aligned? The buffer appears to be allocated with
> 'vmalloc' in page-sized increments; is vmalloc guaranteed to return areas
> starting at 'maximally aligned' points, or what?
It's page-aligned.
--
Debian GNU/Linux 3.0 is out! ( http://www.debian.org/ )
Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Information forwarded to debian-bugs-dist@lists.debian.org, Herbert Xu <herbert@debian.org>:
Bug#242866; Package kernel.
(full text, mbox, link).
Acknowledgement sent to neroden@twcny.rr.com (Nathanael Nerode):
Extra info received and forwarded to list. Copy sent to Herbert Xu <herbert@debian.org>.
(full text, mbox, link).
Message #63 received at 242866@bugs.debian.org (full text, mbox, reply):
This one cleans up the tg3 driver a bit more and changes the chosen firmware
name to use a version (in fact, the version from the original firmware).
I also have made a .deb containing the firmware files, available for testing
at http://home.twcny.rr.com/nerode/neroden/debian/ .
--- linux-2.6.5/drivers/net/tg3.c.original 2004-04-20 21:43:05.000000000 -0400
+++ linux-2.6.5/drivers/net/tg3.c.new 2004-04-29 20:32:33.000000000 -0400
@@ -3,6 +3,7 @@
*
* Copyright (C) 2001, 2002, 2003 David S. Miller (davem@redhat.com)
* Copyright (C) 2001, 2002, 2003 Jeff Garzik (jgarzik@pobox.com)
+ * Portions copyright 2004 Nathanael Nerode <neroden@gcc.gnu.org>
*/
#include <linux/config.h>
@@ -27,6 +28,8 @@
#include <linux/tcp.h>
#include <linux/workqueue.h>
+#include <linux/firmware.h>
+
#include <net/checksum.h>
#include <asm/system.h>
@@ -3541,130 +3544,6 @@
return 0;
}
-#define TG3_FW_RELEASE_MAJOR 0x0
-#define TG3_FW_RELASE_MINOR 0x0
-#define TG3_FW_RELEASE_FIX 0x0
-#define TG3_FW_START_ADDR 0x08000000
-#define TG3_FW_TEXT_ADDR 0x08000000
-#define TG3_FW_TEXT_LEN 0x9c0
-#define TG3_FW_RODATA_ADDR 0x080009c0
-#define TG3_FW_RODATA_LEN 0x60
-#define TG3_FW_DATA_ADDR 0x08000a40
-#define TG3_FW_DATA_LEN 0x20
-#define TG3_FW_SBSS_ADDR 0x08000a60
-#define TG3_FW_SBSS_LEN 0xc
-#define TG3_FW_BSS_ADDR 0x08000a70
-#define TG3_FW_BSS_LEN 0x10
-
-static u32 tg3FwText[(TG3_FW_TEXT_LEN / sizeof(u32)) + 1] = {
- 0x00000000, 0x10000003, 0x00000000, 0x0000000d, 0x0000000d, 0x3c1d0800,
- 0x37bd3ffc, 0x03a0f021, 0x3c100800, 0x26100000, 0x0e000018, 0x00000000,
- 0x0000000d, 0x3c1d0800, 0x37bd3ffc, 0x03a0f021, 0x3c100800, 0x26100034,
- 0x0e00021c, 0x00000000, 0x0000000d, 0x00000000, 0x00000000, 0x00000000,
- 0x27bdffe0, 0x3c1cc000, 0xafbf0018, 0xaf80680c, 0x0e00004c, 0x241b2105,
- 0x97850000, 0x97870002, 0x9782002c, 0x9783002e, 0x3c040800, 0x248409c0,
- 0xafa00014, 0x00021400, 0x00621825, 0x00052c00, 0xafa30010, 0x8f860010,
- 0x00e52825, 0x0e000060, 0x24070102, 0x3c02ac00, 0x34420100, 0x3c03ac01,
- 0x34630100, 0xaf820490, 0x3c02ffff, 0xaf820494, 0xaf830498, 0xaf82049c,
- 0x24020001, 0xaf825ce0, 0x0e00003f, 0xaf825d00, 0x0e000140, 0x00000000,
- 0x8fbf0018, 0x03e00008, 0x27bd0020, 0x2402ffff, 0xaf825404, 0x8f835400,
- 0x34630400, 0xaf835400, 0xaf825404, 0x3c020800, 0x24420034, 0xaf82541c,
- 0x03e00008, 0xaf805400, 0x00000000, 0x00000000, 0x3c020800, 0x34423000,
- 0x3c030800, 0x34633000, 0x3c040800, 0x348437ff, 0x3c010800, 0xac220a64,
- 0x24020040, 0x3c010800, 0xac220a68, 0x3c010800, 0xac200a60, 0xac600000,
- 0x24630004, 0x0083102b, 0x5040fffd, 0xac600000, 0x03e00008, 0x00000000,
- 0x00804821, 0x8faa0010, 0x3c020800, 0x8c420a60, 0x3c040800, 0x8c840a68,
- 0x8fab0014, 0x24430001, 0x0044102b, 0x3c010800, 0xac230a60, 0x14400003,
- 0x00004021, 0x3c010800, 0xac200a60, 0x3c020800, 0x8c420a60, 0x3c030800,
- 0x8c630a64, 0x91240000, 0x00021140, 0x00431021, 0x00481021, 0x25080001,
- 0xa0440000, 0x29020008, 0x1440fff4, 0x25290001, 0x3c020800, 0x8c420a60,
- 0x3c030800, 0x8c630a64, 0x8f84680c, 0x00021140, 0x00431021, 0xac440008,
- 0xac45000c, 0xac460010, 0xac470014, 0xac4a0018, 0x03e00008, 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,
- 0x02000008, 0x00000000, 0x0a0001e3, 0x3c0a0001, 0x0a0001e3, 0x3c0a0002,
- 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x00000000,
- 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x00000000,
- 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x00000000,
- 0x0a0001e3, 0x3c0a0007, 0x0a0001e3, 0x3c0a0008, 0x0a0001e3, 0x3c0a0009,
- 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x3c0a000b,
- 0x0a0001e3, 0x3c0a000c, 0x0a0001e3, 0x3c0a000d, 0x0a0001e3, 0x00000000,
- 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x3c0a000e, 0x0a0001e3, 0x00000000,
- 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x00000000,
- 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x00000000, 0x0a0001e3, 0x00000000,
- 0x0a0001e3, 0x00000000, 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, 0x00001821, 0x00001021, 0xafbf0018, 0xafb10014, 0xafb00010,
- 0x3c010800, 0x00220821, 0xac200a70, 0x3c010800, 0x00220821, 0xac200a74,
- 0x3c010800, 0x00220821, 0xac200a78, 0x24630001, 0x1860fff5, 0x2442000c,
- 0x24110001, 0x8f906810, 0x32020004, 0x14400005, 0x24040001, 0x3c020800,
- 0x8c420a78, 0x18400003, 0x00002021, 0x0e000182, 0x00000000, 0x32020001,
- 0x10400003, 0x00000000, 0x0e000169, 0x00000000, 0x0a000153, 0xaf915028,
- 0x8fbf0018, 0x8fb10014, 0x8fb00010, 0x03e00008, 0x27bd0020, 0x3c050800,
- 0x8ca50a70, 0x3c060800, 0x8cc60a80, 0x3c070800, 0x8ce70a78, 0x27bdffe0,
- 0x3c040800, 0x248409d0, 0xafbf0018, 0xafa00010, 0x0e000060, 0xafa00014,
- 0x0e00017b, 0x00002021, 0x8fbf0018, 0x03e00008, 0x27bd0020, 0x24020001,
- 0x8f836810, 0x00821004, 0x00021027, 0x00621824, 0x03e00008, 0xaf836810,
- 0x27bdffd8, 0xafbf0024, 0x1080002e, 0xafb00020, 0x8f825cec, 0xafa20018,
- 0x8f825cec, 0x3c100800, 0x26100a78, 0xafa2001c, 0x34028000, 0xaf825cec,
- 0x8e020000, 0x18400016, 0x00000000, 0x3c020800, 0x94420a74, 0x8fa3001c,
- 0x000221c0, 0xac830004, 0x8fa2001c, 0x3c010800, 0x0e000201, 0xac220a74,
- 0x10400005, 0x00000000, 0x8e020000, 0x24420001, 0x0a0001df, 0xae020000,
- 0x3c020800, 0x8c420a70, 0x00021c02, 0x000321c0, 0x0a0001c5, 0xafa2001c,
- 0x0e000201, 0x00000000, 0x1040001f, 0x00000000, 0x8e020000, 0x8fa3001c,
- 0x24420001, 0x3c010800, 0xac230a70, 0x3c010800, 0xac230a74, 0x0a0001df,
- 0xae020000, 0x3c100800, 0x26100a78, 0x8e020000, 0x18400028, 0x00000000,
- 0x0e000201, 0x00000000, 0x14400024, 0x00000000, 0x8e020000, 0x3c030800,
- 0x8c630a70, 0x2442ffff, 0xafa3001c, 0x18400006, 0xae020000, 0x00031402,
- 0x000221c0, 0x8c820004, 0x3c010800, 0xac220a70, 0x97a2001e, 0x2442ff00,
- 0x2c420300, 0x1440000b, 0x24024000, 0x3c040800, 0x248409dc, 0xafa00010,
- 0xafa00014, 0x8fa6001c, 0x24050008, 0x0e000060, 0x00003821, 0x0a0001df,
- 0x00000000, 0xaf825cf8, 0x3c020800, 0x8c420a40, 0x8fa3001c, 0x24420001,
- 0xaf835cf8, 0x3c010800, 0xac220a40, 0x8fbf0024, 0x8fb00020, 0x03e00008,
- 0x27bd0028, 0x27bdffe0, 0x3c040800, 0x248409e8, 0x00002821, 0x00003021,
- 0x00003821, 0xafbf0018, 0xafa00010, 0x0e000060, 0xafa00014, 0x8fbf0018,
- 0x03e00008, 0x27bd0020, 0x8f82680c, 0x8f85680c, 0x00021827, 0x0003182b,
- 0x00031823, 0x00431024, 0x00441021, 0x00a2282b, 0x10a00006, 0x00000000,
- 0x00401821, 0x8f82680c, 0x0043102b, 0x1440fffd, 0x00000000, 0x03e00008,
- 0x00000000, 0x3c040800, 0x8c840000, 0x3c030800, 0x8c630a40, 0x0064102b,
- 0x54400002, 0x00831023, 0x00641023, 0x2c420008, 0x03e00008, 0x38420001,
- 0x27bdffe0, 0x00802821, 0x3c040800, 0x24840a00, 0x00003021, 0x00003821,
- 0xafbf0018, 0xafa00010, 0x0e000060, 0xafa00014, 0x0a000216, 0x00000000,
- 0x8fbf0018, 0x03e00008, 0x27bd0020, 0x00000000, 0x27bdffe0, 0x3c1cc000,
- 0xafbf0018, 0x0e00004c, 0xaf80680c, 0x3c040800, 0x24840a10, 0x03802821,
- 0x00003021, 0x00003821, 0xafa00010, 0x0e000060, 0xafa00014, 0x2402ffff,
- 0xaf825404, 0x3c0200aa, 0x0e000234, 0xaf825434, 0x8fbf0018, 0x03e00008,
- 0x27bd0020, 0x00000000, 0x00000000, 0x00000000, 0x27bdffe8, 0xafb00010,
- 0x24100001, 0xafbf0014, 0x3c01c003, 0xac200000, 0x8f826810, 0x30422000,
- 0x10400003, 0x00000000, 0x0e000246, 0x00000000, 0x0a00023a, 0xaf905428,
- 0x8fbf0014, 0x8fb00010, 0x03e00008, 0x27bd0018, 0x27bdfff8, 0x8f845d0c,
- 0x3c0200ff, 0x3c030800, 0x8c630a50, 0x3442fff8, 0x00821024, 0x1043001e,
- 0x3c0500ff, 0x34a5fff8, 0x3c06c003, 0x3c074000, 0x00851824, 0x8c620010,
- 0x3c010800, 0xac230a50, 0x30420008, 0x10400005, 0x00871025, 0x8cc20000,
- 0x24420001, 0xacc20000, 0x00871025, 0xaf825d0c, 0x8fa20000, 0x24420001,
- 0xafa20000, 0x8fa20000, 0x8fa20000, 0x24420001, 0xafa20000, 0x8fa20000,
- 0x8f845d0c, 0x3c030800, 0x8c630a50, 0x00851024, 0x1443ffe8, 0x00851824,
- 0x27bd0008, 0x03e00008, 0x00000000, 0x00000000, 0x00000000
-};
-
-static u32 tg3FwRodata[(TG3_FW_RODATA_LEN / sizeof(u32)) + 1] = {
- 0x35373031, 0x726c7341, 0x00000000, 0x00000000, 0x53774576, 0x656e7430,
- 0x00000000, 0x726c7045, 0x76656e74, 0x31000000, 0x556e6b6e, 0x45766e74,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x66617461, 0x6c457272,
- 0x00000000, 0x00000000, 0x4d61696e, 0x43707542, 0x00000000, 0x00000000,
- 0x00000000
-};
-
-#if 0 /* All zeros, don't eat up space with it. */
-u32 tg3FwData[(TG3_FW_DATA_LEN / sizeof(u32)) + 1] = {
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000, 0x00000000
-};
-#endif
-
#define RX_CPU_SCRATCH_BASE 0x30000
#define RX_CPU_SCRATCH_SIZE 0x04000
#define TX_CPU_SCRATCH_BASE 0x34000
@@ -3721,6 +3600,166 @@
u32 *data_data;
};
+/* We are forced to store these firmware bits in memory for the duration
+ of the module load, because they are loaded to hardware in a context
+ where it is unsafe to sleep, and fixing this would require a lot of
+ code refactoring. :-P However, they're only filled if the hardware
+ needs them; otherwise they are NULL and do not need to be dealt with.
+ */
+
+static struct fw_info* tg3_fw_5701_a0 = NULL;
+
+#if TG3_TSO_SUPPORT != 0
+static struct fw_info* tg3_fw_tso = NULL;
+
+static struct fw_info* tg3_fw_tso5 = NULL;
+/* 5705 needs a special version of the TSO firmware, and needs
+ to know the complete length, including the sbss and bss sections. */
+#define TG3_TSO5_FW_SBSS_LEN 0x28
+#define TG3_TSO5_FW_BSS_LEN 0x88
+
+#endif /* TG3_TSO_SUPPORT */
+
+/* Allocate and fill 'info' from a file in userspace.
+ This *must* be called in user context where sleeping is allowed. */
+/* We require the firmware file to be in a certain binary format:
+ * little-endian (so that it's platform-independent -- heh)
+ * struct fw_info fields in this order:
+ * text_base, text_len, rodata_base, rodata_len, data_base, data_len
+ * ('unsigned int' fields as 32-bit integers)
+ * text_data, rodata_data, data_data
+ * ('u32*' fields as a whole bunch of 32-bit integers)
+ */
+static int __devinit tg3_request_firmware(struct fw_info **info_ptr,
+ const char *filename,
+ const struct tg3 *tp)
+{
+ int err, i;
+ const struct firmware *fw_entry = NULL;
+ u32 temp;
+
+ /* The messy dev bit is extracting a struct device from
+ struct tg3 (via pci_dev) */
+ err = request_firmware(&fw_entry, filename, &tp->pdev->dev);
+ if (err) {
+ printk(KERN_WARNING PFX "tg3_request_firmware (%s): "
+ "Couldn't get firmware \"%s\".\n",
+ tp->dev->name, filename);
+ goto cleanup_out;
+ }
+ if (fw_entry->size < 24) {
+ printk(KERN_WARNING PFX "tg3_request_firmware (%s): "
+ "Firmware \"%s\"too short.\n",
+ tp->dev->name, filename);
+ err=-EINVAL;
+ goto cleanup_firmware;
+ }
+
+
+ /* In order to avoid alignment and strict-aliasing problems,
+ we have to copy from the data array to our private version. */
+
+ /* Alloc and blank out (*info_ptr). */
+ *info_ptr = kmalloc(sizeof(**info_ptr), GFP_KERNEL);
+ if (!*info_ptr) {
+ err=-ENOMEM;
+ goto cleanup_firmware;
+ }
+ memset(*info_ptr, 0, sizeof(**info_ptr));
+
+ /* Copy in the non-pointer members of *info_ptr, and byteswap. */
+ memcpy(&temp, &fw_entry->data[0], 4);
+ (*info_ptr)->text_base=le32_to_cpu(temp);
+ memcpy(&temp, &fw_entry->data[4], 4);
+ (*info_ptr)->text_len=le32_to_cpu(temp);
+
+ memcpy(&temp, &fw_entry->data[8], 4);
+ (*info_ptr)->rodata_base=le32_to_cpu(temp);
+ memcpy(&temp, &fw_entry->data[12], 4);
+ (*info_ptr)->rodata_len=le32_to_cpu(temp);
+
+ memcpy(&temp, &fw_entry->data[16], 4);
+ (*info_ptr)->data_base=le32_to_cpu(temp);
+ memcpy(&temp, &fw_entry->data[20], 4);
+ (*info_ptr)->data_len=le32_to_cpu(temp);
+
+ /* Sanity check the size of the remaining firmware */
+ if (fw_entry->size
+ != (*info_ptr)->text_len + (*info_ptr)->rodata_len + (*info_ptr)->data_len + 24) {
+ printk(KERN_WARNING PFX "tg3_request_firmware (%s): "
+ "Firmware \"%s\" length doesn't add up.\n",
+ tp->dev->name, filename);
+ err = -EINVAL;
+ goto cleanup_info;
+ }
+
+ /* Copy appropriate stuff into text_data and byte-swap in place */
+ (*info_ptr)->text_data=kmalloc((*info_ptr)->text_len, GFP_KERNEL);
+ if ((*info_ptr)->text_data == NULL) {
+ err = -ENOMEM;
+ goto cleanup_info;
+ }
+ memcpy((*info_ptr)->text_data,
+ &fw_entry->data[24],
+ (*info_ptr)->text_len);
+ for (i = 0; i < ((*info_ptr)->text_len/4); i++) {
+ le32_to_cpus(&(*info_ptr)->text_data[i]);
+ }
+
+ /* Copy appropriate stuff into rodata_data and byte-swap in place */
+ (*info_ptr)->rodata_data=kmalloc((*info_ptr)->rodata_len, GFP_KERNEL);
+ if ((*info_ptr)->rodata_data == NULL) {
+ err = -ENOMEM;
+ goto cleanup_text;
+ }
+ memcpy((*info_ptr)->rodata_data,
+ &fw_entry->data[24 + (*info_ptr)->text_len],
+ (*info_ptr)->rodata_len);
+ for (i = 0; i < ((*info_ptr)->rodata_len/4); i++) {
+ le32_to_cpus(&(*info_ptr)->rodata_data[i]);
+ }
+
+ /* Copy appropriate stuff into data_data and byte-swap in place */
+ (*info_ptr)->data_data=kmalloc((*info_ptr)->data_len, GFP_KERNEL);
+ if ((*info_ptr)->data_data == NULL) {
+ err = -ENOMEM;
+ goto cleanup_rodata;
+ }
+ memcpy((*info_ptr)->data_data,
+ &fw_entry->data[24 + (*info_ptr)->text_len + (*info_ptr)->rodata_len],
+ (*info_ptr)->data_len);
+ for (i = 0; i < ((*info_ptr)->data_len/4); i++) {
+ le32_to_cpus(&(*info_ptr)->data_data[i]);
+ }
+
+ /* Finally, we're done. (Unless we bailed out.) Since
+ we copied the entire contents of the firmware, release it
+ now. */
+ release_firmware(fw_entry);
+ return 0;
+
+cleanup_rodata:
+ kfree((*info_ptr)->rodata_data);
+cleanup_text:
+ kfree((*info_ptr)->text_data);
+cleanup_info:
+ kfree(*info_ptr);
+ info_ptr=NULL;
+cleanup_firmware:
+ release_firmware(fw_entry);
+cleanup_out:
+ return err;
+}
+
+/* Wipe out one fw_info structure; it must be fully allocated */
+static void tg3_release_firmware(struct fw_info** info_ptr) {
+ kfree((*info_ptr)->data_data);
+ kfree((*info_ptr)->rodata_data);
+ kfree((*info_ptr)->text_data);
+ kfree(*info_ptr);
+ info_ptr = NULL;
+}
+
/* tp->lock is held. */
static int tg3_load_firmware_cpu(struct tg3 *tp, u32 cpu_base, u32 cpu_scratch_base,
int cpu_scratch_size, struct fw_info *info)
@@ -3784,48 +3823,37 @@
/* tp->lock is held. */
static int tg3_load_5701_a0_firmware_fix(struct tg3 *tp)
{
- struct fw_info info;
int err, i;
- info.text_base = TG3_FW_TEXT_ADDR;
- info.text_len = TG3_FW_TEXT_LEN;
- info.text_data = &tg3FwText[0];
- info.rodata_base = TG3_FW_RODATA_ADDR;
- info.rodata_len = TG3_FW_RODATA_LEN;
- info.rodata_data = &tg3FwRodata[0];
- info.data_base = TG3_FW_DATA_ADDR;
- info.data_len = TG3_FW_DATA_LEN;
- info.data_data = NULL;
-
err = tg3_load_firmware_cpu(tp, RX_CPU_BASE,
RX_CPU_SCRATCH_BASE, RX_CPU_SCRATCH_SIZE,
- &info);
+ tg3_fw_5701_a0);
if (err)
return err;
err = tg3_load_firmware_cpu(tp, TX_CPU_BASE,
TX_CPU_SCRATCH_BASE, TX_CPU_SCRATCH_SIZE,
- &info);
+ tg3_fw_5701_a0);
if (err)
return err;
/* Now startup only the RX cpu. */
tw32(RX_CPU_BASE + CPU_STATE, 0xffffffff);
- tw32_f(RX_CPU_BASE + CPU_PC, TG3_FW_TEXT_ADDR);
+ tw32_f(RX_CPU_BASE + CPU_PC, (tg3_fw_5701_a0->text_base));
for (i = 0; i < 5; i++) {
- if (tr32(RX_CPU_BASE + CPU_PC) == TG3_FW_TEXT_ADDR)
+ if (tr32(RX_CPU_BASE + CPU_PC) == (tg3_fw_5701_a0->text_base))
break;
tw32(RX_CPU_BASE + CPU_STATE, 0xffffffff);
tw32(RX_CPU_BASE + CPU_MODE, CPU_MODE_HALT);
- tw32_f(RX_CPU_BASE + CPU_PC, TG3_FW_TEXT_ADDR);
+ tw32_f(RX_CPU_BASE + CPU_PC, (tg3_fw_5701_a0->text_base));
udelay(1000);
}
if (i >= 5) {
printk(KERN_ERR PFX "tg3_load_firmware fails for %s "
"to set RX CPU PC, is %08x should be %08x\n",
tp->dev->name, tr32(RX_CPU_BASE + CPU_PC),
- TG3_FW_TEXT_ADDR);
+ (tg3_fw_5701_a0->text_base));
return -ENODEV;
}
tw32(RX_CPU_BASE + CPU_STATE, 0xffffffff);
@@ -3836,544 +3864,24 @@
#if TG3_TSO_SUPPORT != 0
-#define TG3_TSO_FW_RELEASE_MAJOR 0x1
-#define TG3_TSO_FW_RELASE_MINOR 0x4
-#define TG3_TSO_FW_RELEASE_FIX 0x0
-#define TG3_TSO_FW_START_ADDR 0x08000000
-#define TG3_TSO_FW_TEXT_ADDR 0x08000000
-#define TG3_TSO_FW_TEXT_LEN 0x1a90
-#define TG3_TSO_FW_RODATA_ADDR 0x08001a900
-#define TG3_TSO_FW_RODATA_LEN 0x60
-#define TG3_TSO_FW_DATA_ADDR 0x08001b20
-#define TG3_TSO_FW_DATA_LEN 0x20
-#define TG3_TSO_FW_SBSS_ADDR 0x08001b40
-#define TG3_TSO_FW_SBSS_LEN 0x2c
-#define TG3_TSO_FW_BSS_ADDR 0x08001b70
-#define TG3_TSO_FW_BSS_LEN 0x894
-
-static u32 tg3TsoFwText[] = {
- 0x00000000, 0x10000003, 0x00000000, 0x0000000d, 0x0000000d, 0x3c1d0800,
- 0x37bd4000, 0x03a0f021, 0x3c100800, 0x26100000, 0x0e000010, 0x00000000,
- 0x0000000d, 0x00000000, 0x00000000, 0x00000000, 0x27bdffe0, 0x3c04fefe,
- 0xafbf0018, 0x0e0005d4, 0x34840002, 0x0e000664, 0x00000000, 0x3c030800,
- 0x90631b58, 0x24020002, 0x3c040800, 0x24841a9c, 0x14620003, 0x24050001,
- 0x3c040800, 0x24841a90, 0x24060003, 0x00003821, 0xafa00010, 0x0e000678,
- 0xafa00014, 0x8f625c50, 0x34420001, 0xaf625c50, 0x8f625c90, 0x34420001,
- 0xaf625c90, 0x2402ffff, 0x0e000034, 0xaf625404, 0x8fbf0018, 0x03e00008,
- 0x27bd0020, 0x00000000, 0x00000000, 0x00000000, 0x27bdffe0, 0xafbf001c,
- 0xafb20018, 0xafb10014, 0x0e00005b, 0xafb00010, 0x24120002, 0x24110001,
- 0x8f706820, 0x32020100, 0x10400003, 0x00000000, 0x0e0000bb, 0x00000000,
- 0x8f706820, 0x32022000, 0x10400004, 0x32020001, 0x0e0001ef, 0x24040001,
- 0x32020001, 0x10400003, 0x00000000, 0x0e0000a3, 0x00000000, 0x3c020800,
- 0x90421b88, 0x14520003, 0x00000000, 0x0e0004bf, 0x00000000, 0x0a00003c,
- 0xaf715028, 0x8fbf001c, 0x8fb20018, 0x8fb10014, 0x8fb00010, 0x03e00008,
- 0x27bd0020, 0x27bdffe0, 0x3c040800, 0x24841ab0, 0x00002821, 0x00003021,
- 0x00003821, 0xafbf0018, 0xafa00010, 0x0e000678, 0xafa00014, 0x3c040800,
- 0x248423c8, 0xa4800000, 0x3c010800, 0xa0201b88, 0x3c010800, 0xac201b8c,
- 0x3c010800, 0xac201b90, 0x3c010800, 0xac201b94, 0x3c010800, 0xac201b9c,
- 0x3c010800, 0xac201ba8, 0x3c010800, 0xac201bac, 0x8f624434, 0x3c010800,
- 0xac221b78, 0x8f624438, 0x3c010800, 0xac221b7c, 0x8f624410, 0xac80f7a8,
- 0x3c010800, 0xac201b74, 0x3c010800, 0xac2023d0, 0x3c010800, 0xac2023b8,
- 0x3c010800, 0xac2023bc, 0x3c010800, 0xac2023f0, 0x3c010800, 0xac221b80,
- 0x8f620068, 0x24030007, 0x00021702, 0x10430005, 0x00000000, 0x8f620068,
- 0x00021702, 0x14400004, 0x24020001, 0x3c010800, 0x0a000097, 0xac2023fc,
- 0xac820034, 0x3c040800, 0x24841abc, 0x3c050800, 0x8ca523fc, 0x00003021,
- 0x00003821, 0xafa00010, 0x0e000678, 0xafa00014, 0x8fbf0018, 0x03e00008,
- 0x27bd0020, 0x27bdffe0, 0x3c040800, 0x24841ac8, 0x00002821, 0x00003021,
- 0x00003821, 0xafbf0018, 0xafa00010, 0x0e000678, 0xafa00014, 0x0e00005b,
- 0x00000000, 0x0e0000b4, 0x00002021, 0x8fbf0018, 0x03e00008, 0x27bd0020,
- 0x24020001, 0x8f636820, 0x00821004, 0x00021027, 0x00621824, 0x03e00008,
- 0xaf636820, 0x27bdffd0, 0xafbf002c, 0xafb60028, 0xafb50024, 0xafb40020,
- 0xafb3001c, 0xafb20018, 0xafb10014, 0xafb00010, 0x8f675c5c, 0x3c030800,
- 0x24631bac, 0x8c620000, 0x14470005, 0x3c0200ff, 0x3c020800, 0x90421b88,
- 0x14400118, 0x3c0200ff, 0x3442fff8, 0x00e28824, 0xac670000, 0x00111902,
- 0x306300ff, 0x30e20003, 0x000211c0, 0x00622825, 0x00a04021, 0x00071602,
- 0x3c030800, 0x90631b88, 0x3044000f, 0x14600036, 0x00804821, 0x24020001,
- 0x3c010800, 0xa0221b88, 0x00051100, 0x00821025, 0x3c010800, 0xac201b8c,
- 0x3c010800, 0xac201b90, 0x3c010800, 0xac201b94, 0x3c010800, 0xac201b9c,
- 0x3c010800, 0xac201ba8, 0x3c010800, 0xac201ba0, 0x3c010800, 0xac201ba4,
- 0x3c010800, 0xa42223c8, 0x9622000c, 0x30437fff, 0x3c010800, 0xa4222400,
- 0x30428000, 0x3c010800, 0xa4231bb6, 0x10400005, 0x24020001, 0x3c010800,
- 0xac2223e4, 0x0a000102, 0x2406003e, 0x24060036, 0x3c010800, 0xac2023e4,
- 0x9622000a, 0x3c030800, 0x94631bb6, 0x3c010800, 0xac2023e0, 0x3c010800,
- 0xac2023e8, 0x00021302, 0x00021080, 0x00c21021, 0x00621821, 0x3c010800,
- 0xa42223c0, 0x3c010800, 0x0a000115, 0xa4231b86, 0x9622000c, 0x3c010800,
- 0xa42223dc, 0x3c040800, 0x24841b8c, 0x8c820000, 0x00021100, 0x3c010800,
- 0x00220821, 0xac311bb8, 0x8c820000, 0x00021100, 0x3c010800, 0x00220821,
- 0xac271bbc, 0x8c820000, 0x25030001, 0x306601ff, 0x00021100, 0x3c010800,
- 0x00220821, 0xac261bc0, 0x8c820000, 0x00021100, 0x3c010800, 0x00220821,
- 0xac291bc4, 0x96230008, 0x3c020800, 0x8c421b9c, 0x00432821, 0x3c010800,
- 0xac251b9c, 0x9622000a, 0x30420004, 0x14400018, 0x00061100, 0x8f630c14,
- 0x3063000f, 0x2c620002, 0x1440000b, 0x3c02c000, 0x8f630c14, 0x3c020800,
- 0x8c421b30, 0x3063000f, 0x24420001, 0x3c010800, 0xac221b30, 0x2c620002,
- 0x1040fff7, 0x3c02c000, 0x00e21825, 0xaf635c5c, 0x8f625c50, 0x30420002,
- 0x10400014, 0x00000000, 0x0a000147, 0x00000000, 0x3c030800, 0x8c631b70,
- 0x3c040800, 0x94841b84, 0x01221025, 0x3c010800, 0xa42223ca, 0x24020001,
- 0x3c010800, 0xac221ba8, 0x24630001, 0x0085202a, 0x3c010800, 0x10800003,
- 0xac231b70, 0x3c010800, 0xa4251b84, 0x3c060800, 0x24c61b8c, 0x8cc20000,
- 0x24420001, 0xacc20000, 0x28420080, 0x14400005, 0x00000000, 0x0e000652,
- 0x24040002, 0x0a0001e5, 0x00000000, 0x3c020800, 0x8c421ba8, 0x10400077,
- 0x24020001, 0x3c050800, 0x90a51b88, 0x14a20071, 0x00000000, 0x3c150800,
- 0x96b51b86, 0x3c040800, 0x8c841b9c, 0x32a3ffff, 0x0083102a, 0x1440006b,
- 0x00000000, 0x14830003, 0x00000000, 0x3c010800, 0xac2523e0, 0x1060005b,
- 0x00009021, 0x24d60004, 0x0060a021, 0x24d30014, 0x8ec20000, 0x00028100,
- 0x3c110800, 0x02308821, 0x0e000621, 0x8e311bb8, 0x00402821, 0x10a00053,
- 0x00000000, 0x9628000a, 0x31020040, 0x10400004, 0x2407180c, 0x8e22000c,
- 0x2407188c, 0xaca20018, 0x3c030800, 0x00701821, 0x8c631bc0, 0x3c020800,
- 0x00501021, 0x8c421bc4, 0x00031d00, 0x00021400, 0x00621825, 0xaca30014,
- 0x8ec30004, 0x96220008, 0x00432023, 0x3242ffff, 0x3083ffff, 0x00431021,
- 0x0282102a, 0x14400002, 0x02b23023, 0x00803021, 0x8e620000, 0x30c4ffff,
- 0x00441021, 0xae620000, 0x8e220000, 0xaca20000, 0x8e220004, 0x8e63fff4,
- 0x00431021, 0xaca20004, 0xa4a6000e, 0x8e62fff4, 0x00441021, 0xae62fff4,
- 0x96230008, 0x0043102a, 0x14400005, 0x02469021, 0x8e62fff0, 0xae60fff4,
- 0x24420001, 0xae62fff0, 0xaca00008, 0x3242ffff, 0x14540008, 0x24020305,
- 0x31020080, 0x54400001, 0x34e70010, 0x24020905, 0xa4a2000c, 0x0a0001ca,
- 0x34e70020, 0xa4a2000c, 0x3c020800, 0x8c4223e0, 0x10400003, 0x3c024b65,
- 0x0a0001d2, 0x34427654, 0x3c02b49a, 0x344289ab, 0xaca2001c, 0x30e2ffff,
- 0xaca20010, 0x0e00059f, 0x00a02021, 0x3242ffff, 0x0054102b, 0x1440ffaa,
- 0x00000000, 0x24020002, 0x3c010800, 0x0a0001e5, 0xa0221b88, 0x8ec2083c,
- 0x24420001, 0x0a0001e5, 0xaec2083c, 0x0e0004bf, 0x00000000, 0x8fbf002c,
- 0x8fb60028, 0x8fb50024, 0x8fb40020, 0x8fb3001c, 0x8fb20018, 0x8fb10014,
- 0x8fb00010, 0x03e00008, 0x27bd0030, 0x27bdffd0, 0xafbf0028, 0xafb30024,
- 0xafb20020, 0xafb1001c, 0xafb00018, 0x8f725c9c, 0x3c0200ff, 0x3442fff8,
- 0x3c060800, 0x24c61ba4, 0x02428824, 0x9623000e, 0x8cc20000, 0x00431021,
- 0xacc20000, 0x8e220010, 0x30420020, 0x14400011, 0x00809821, 0x0e000637,
- 0x02202021, 0x3c02c000, 0x02421825, 0xaf635c9c, 0x8f625c90, 0x30420002,
- 0x10400121, 0x00000000, 0xaf635c9c, 0x8f625c90, 0x30420002, 0x1040011c,
- 0x00000000, 0x0a00020c, 0x00000000, 0x8e240008, 0x8e230014, 0x00041402,
- 0x000241c0, 0x00031502, 0x304201ff, 0x2442ffff, 0x3042007f, 0x00031942,
- 0x30637800, 0x00021100, 0x24424000, 0x00625021, 0x9542000a, 0x3084ffff,
- 0x30420008, 0x104000b3, 0x000429c0, 0x3c020800, 0x8c4223f0, 0x1440002d,
- 0x25050008, 0x95020014, 0x3c010800, 0xa42223c0, 0x8d070010, 0x00071402,
- 0x3c010800, 0xa42223c2, 0x3c010800, 0xa42723c4, 0x9502000e, 0x30e3ffff,
- 0x00431023, 0x3c010800, 0xac2223f8, 0x8f626800, 0x3c030010, 0x00431024,
- 0x10400005, 0x00000000, 0x9503001a, 0x9502001c, 0x0a000241, 0x00431021,
- 0x9502001a, 0x3c010800, 0xac2223ec, 0x3c02c000, 0x02421825, 0x3c010800,
- 0xac2823f0, 0x3c010800, 0xac3223f4, 0xaf635c9c, 0x8f625c90, 0x30420002,
- 0x104000df, 0x00000000, 0xaf635c9c, 0x8f625c90, 0x30420002, 0x104000da,
- 0x00000000, 0x0a00024e, 0x00000000, 0x9502000e, 0x3c030800, 0x946323c4,
- 0x00434823, 0x3123ffff, 0x2c620008, 0x1040001c, 0x00000000, 0x95020014,
- 0x24420028, 0x00a22821, 0x00031042, 0x1840000b, 0x00002021, 0x24c60848,
- 0x00403821, 0x94a30000, 0x8cc20000, 0x24840001, 0x00431021, 0xacc20000,
- 0x0087102a, 0x1440fff9, 0x24a50002, 0x31220001, 0x1040001f, 0x3c024000,
- 0x3c040800, 0x248423ec, 0xa0a00001, 0x94a30000, 0x8c820000, 0x00431021,
- 0x0a00028d, 0xac820000, 0x8f626800, 0x3c030010, 0x00431024, 0x10400009,
- 0x00000000, 0x9502001a, 0x3c030800, 0x8c6323ec, 0x00431021, 0x3c010800,
- 0xac2223ec, 0x0a00028e, 0x3c024000, 0x9502001a, 0x9504001c, 0x3c030800,
- 0x8c6323ec, 0x00441023, 0x00621821, 0x3c010800, 0xac2323ec, 0x3c024000,
- 0x02421825, 0xaf635c9c, 0x8f625c90, 0x30420002, 0x1440fffc, 0x00000000,
- 0x9542000a, 0x30420010, 0x10400095, 0x00000000, 0x3c060800, 0x24c623f0,
- 0x3c020800, 0x944223c4, 0x8cc50000, 0x3c040800, 0x8c8423f8, 0x24420030,
- 0x00a22821, 0x94a20004, 0x3c030800, 0x8c6323ec, 0x00441023, 0x00621821,
- 0x00603821, 0x00032402, 0x30e2ffff, 0x00823821, 0x00071402, 0x00e23821,
- 0x00071027, 0x3c010800, 0xac2323ec, 0xa4a20006, 0x3c030800, 0x8c6323f4,
- 0x3c0200ff, 0x3442fff8, 0x00628824, 0x96220008, 0x24040001, 0x24034000,
- 0x000241c0, 0x00e01021, 0xa502001a, 0xa500001c, 0xacc00000, 0x3c010800,
- 0xac241b50, 0xaf635cb8, 0x8f625cb0, 0x30420002, 0x10400003, 0x00000000,
- 0x3c010800, 0xac201b50, 0x8e220008, 0xaf625cb8, 0x8f625cb0, 0x30420002,
- 0x10400003, 0x00000000, 0x3c010800, 0xac201b50, 0x3c020800, 0x8c421b50,
- 0x1040ffec, 0x00000000, 0x3c040800, 0x0e000637, 0x8c8423f4, 0x0a00032c,
- 0x00000000, 0x3c030800, 0x90631b88, 0x24020002, 0x14620003, 0x3c034b65,
- 0x0a0002e3, 0x00008021, 0x8e22001c, 0x34637654, 0x10430002, 0x24100002,
- 0x24100001, 0x01002021, 0x0e000352, 0x02003021, 0x24020003, 0x3c010800,
- 0xa0221b88, 0x24020002, 0x1202000a, 0x24020001, 0x3c030800, 0x8c6323e0,
- 0x10620006, 0x00000000, 0x3c020800, 0x944223c8, 0x00021400, 0x0a000321,
- 0xae220014, 0x3c040800, 0x248423ca, 0x94820000, 0x00021400, 0xae220014,
- 0x3c020800, 0x8c421bac, 0x3c03c000, 0x3c010800, 0xa0201b88, 0x00431025,
- 0xaf625c5c, 0x8f625c50, 0x30420002, 0x10400009, 0x00000000, 0x2484f7e2,
- 0x8c820000, 0x00431025, 0xaf625c5c, 0x8f625c50, 0x30420002, 0x1440fffa,
- 0x00000000, 0x3c020800, 0x24421b74, 0x8c430000, 0x24630001, 0xac430000,
- 0x8f630c14, 0x3063000f, 0x2c620002, 0x1440000c, 0x3c024000, 0x8f630c14,
- 0x3c020800, 0x8c421b30, 0x3063000f, 0x24420001, 0x3c010800, 0xac221b30,
- 0x2c620002, 0x1040fff7, 0x00000000, 0x3c024000, 0x02421825, 0xaf635c9c,
- 0x8f625c90, 0x30420002, 0x1440fffc, 0x00000000, 0x12600003, 0x00000000,
- 0x0e0004bf, 0x00000000, 0x8fbf0028, 0x8fb30024, 0x8fb20020, 0x8fb1001c,
- 0x8fb00018, 0x03e00008, 0x27bd0030, 0x8f634450, 0x3c040800, 0x24841b78,
- 0x8c820000, 0x00031c02, 0x0043102b, 0x14400007, 0x3c038000, 0x8c840004,
- 0x8f624450, 0x00021c02, 0x0083102b, 0x1040fffc, 0x3c038000, 0xaf634444,
- 0x8f624444, 0x00431024, 0x1440fffd, 0x00000000, 0x8f624448, 0x03e00008,
- 0x3042ffff, 0x3c024000, 0x00822025, 0xaf645c38, 0x8f625c30, 0x30420002,
- 0x1440fffc, 0x00000000, 0x03e00008, 0x00000000, 0x27bdffe0, 0x00805821,
- 0x14c00011, 0x256e0008, 0x3c020800, 0x8c4223e4, 0x10400007, 0x24020016,
- 0x3c010800, 0xa42223c2, 0x2402002a, 0x3c010800, 0x0a000366, 0xa42223c4,
- 0x8d670010, 0x00071402, 0x3c010800, 0xa42223c2, 0x3c010800, 0xa42723c4,
- 0x3c040800, 0x948423c4, 0x3c030800, 0x946323c2, 0x95cf0006, 0x3c020800,
- 0x944223c0, 0x00832023, 0x01e2c023, 0x3065ffff, 0x24a20028, 0x01c24821,
- 0x3082ffff, 0x14c0001a, 0x01226021, 0x9582000c, 0x3042003f, 0x3c010800,
- 0xa42223c6, 0x95820004, 0x95830006, 0x3c010800, 0xac2023d4, 0x3c010800,
- 0xac2023d8, 0x00021400, 0x00431025, 0x3c010800, 0xac221bb0, 0x95220004,
- 0x3c010800, 0xa4221bb4, 0x95230002, 0x01e51023, 0x0043102a, 0x10400010,
- 0x24020001, 0x3c010800, 0x0a00039a, 0xac2223e8, 0x3c030800, 0x8c6323d8,
- 0x3c020800, 0x94421bb4, 0x00431021, 0xa5220004, 0x3c020800, 0x94421bb0,
- 0xa5820004, 0x3c020800, 0x8c421bb0, 0xa5820006, 0x3c020800, 0x8c4223e0,
- 0x3c0d0800, 0x8dad23d4, 0x3c0a0800, 0x144000e5, 0x8d4a23d8, 0x3c020800,
- 0x94421bb4, 0x004a1821, 0x3063ffff, 0x0062182b, 0x24020002, 0x10c2000d,
- 0x01435023, 0x3c020800, 0x944223c6, 0x30420009, 0x10400008, 0x00000000,
- 0x9582000c, 0x3042fff6, 0xa582000c, 0x3c020800, 0x944223c6, 0x30420009,
- 0x01a26823, 0x3c020800, 0x8c4223e8, 0x1040004a, 0x01203821, 0x3c020800,
- 0x944223c2, 0x00004021, 0xa520000a, 0x01e21023, 0xa5220002, 0x3082ffff,
- 0x00021042, 0x18400008, 0x00003021, 0x00401821, 0x94e20000, 0x25080001,
- 0x00c23021, 0x0103102a, 0x1440fffb, 0x24e70002, 0x00061c02, 0x30c2ffff,
- 0x00623021, 0x00061402, 0x00c23021, 0x00c02821, 0x00061027, 0xa522000a,
- 0x00003021, 0x2527000c, 0x00004021, 0x94e20000, 0x25080001, 0x00c23021,
- 0x2d020004, 0x1440fffb, 0x24e70002, 0x95220002, 0x00004021, 0x91230009,
- 0x00442023, 0x01803821, 0x3082ffff, 0xa4e00010, 0x00621821, 0x00021042,
- 0x18400010, 0x00c33021, 0x00404821, 0x94e20000, 0x24e70002, 0x00c23021,
- 0x30e2007f, 0x14400006, 0x25080001, 0x8d630000, 0x3c02007f, 0x3442ff80,
- 0x00625824, 0x25670008, 0x0109102a, 0x1440fff3, 0x00000000, 0x30820001,
- 0x10400005, 0x00061c02, 0xa0e00001, 0x94e20000, 0x00c23021, 0x00061c02,
- 0x30c2ffff, 0x00623021, 0x00061402, 0x00c23021, 0x0a00047f, 0x30c6ffff,
- 0x24020002, 0x14c20081, 0x00000000, 0x3c020800, 0x8c4223fc, 0x14400007,
- 0x00000000, 0x3c020800, 0x944223c2, 0x95230002, 0x01e21023, 0x10620077,
- 0x00000000, 0x3c020800, 0x944223c2, 0x01e21023, 0xa5220002, 0x3c020800,
- 0x8c4223fc, 0x1040001a, 0x31e3ffff, 0x8dc70010, 0x3c020800, 0x94421b86,
- 0x00e04021, 0x00072c02, 0x00aa2021, 0x00431023, 0x00823823, 0x00072402,
- 0x30e2ffff, 0x00823821, 0x00071027, 0xa522000a, 0x3102ffff, 0x3c040800,
- 0x948423c4, 0x00453023, 0x00e02821, 0x00641823, 0x006d1821, 0x00c33021,
- 0x00061c02, 0x30c2ffff, 0x0a00047f, 0x00623021, 0x01203821, 0x00004021,
- 0x3082ffff, 0x00021042, 0x18400008, 0x00003021, 0x00401821, 0x94e20000,
- 0x25080001, 0x00c23021, 0x0103102a, 0x1440fffb, 0x24e70002, 0x00061c02,
- 0x30c2ffff, 0x00623021, 0x00061402, 0x00c23021, 0x00c02821, 0x00061027,
- 0xa522000a, 0x00003021, 0x2527000c, 0x00004021, 0x94e20000, 0x25080001,
- 0x00c23021, 0x2d020004, 0x1440fffb, 0x24e70002, 0x95220002, 0x00004021,
- 0x91230009, 0x00442023, 0x01803821, 0x3082ffff, 0xa4e00010, 0x3c040800,
- 0x948423c4, 0x00621821, 0x00c33021, 0x00061c02, 0x30c2ffff, 0x00623021,
- 0x00061c02, 0x3c020800, 0x944223c0, 0x00c34821, 0x00441023, 0x00021fc2,
- 0x00431021, 0x00021043, 0x18400010, 0x00003021, 0x00402021, 0x94e20000,
- 0x24e70002, 0x00c23021, 0x30e2007f, 0x14400006, 0x25080001, 0x8d630000,
- 0x3c02007f, 0x3442ff80, 0x00625824, 0x25670008, 0x0104102a, 0x1440fff3,
- 0x00000000, 0x3c020800, 0x944223dc, 0x00c23021, 0x3122ffff, 0x00c23021,
- 0x00061c02, 0x30c2ffff, 0x00623021, 0x00061402, 0x00c23021, 0x00c04021,
- 0x00061027, 0xa5820010, 0xadc00014, 0x0a00049f, 0xadc00000, 0x8dc70010,
- 0x00e04021, 0x11400007, 0x00072c02, 0x00aa3021, 0x00061402, 0x30c3ffff,
- 0x00433021, 0x00061402, 0x00c22821, 0x00051027, 0xa522000a, 0x3c030800,
- 0x946323c4, 0x3102ffff, 0x01e21021, 0x00433023, 0x00cd3021, 0x00061c02,
- 0x30c2ffff, 0x00623021, 0x00061402, 0x00c23021, 0x00c04021, 0x00061027,
- 0xa5820010, 0x3102ffff, 0x00051c00, 0x00431025, 0xadc20010, 0x3c020800,
- 0x8c4223e4, 0x10400002, 0x25e2fff2, 0xa5c20034, 0x3c020800, 0x8c4223d8,
- 0x3c040800, 0x8c8423d4, 0x24420001, 0x3c010800, 0xac2223d8, 0x3c020800,
- 0x8c421bb0, 0x3303ffff, 0x00832021, 0x3c010800, 0xac2423d4, 0x00431821,
- 0x0062102b, 0x10400003, 0x2482ffff, 0x3c010800, 0xac2223d4, 0x3c010800,
- 0xac231bb0, 0x03e00008, 0x27bd0020, 0x27bdffb8, 0x3c050800, 0x24a51b86,
- 0xafbf0044, 0xafbe0040, 0xafb7003c, 0xafb60038, 0xafb50034, 0xafb40030,
- 0xafb3002c, 0xafb20028, 0xafb10024, 0xafb00020, 0x94a90000, 0x3c020800,
- 0x944223c0, 0x3c030800, 0x8c631ba0, 0x3c040800, 0x8c841b9c, 0x01221023,
- 0x0064182a, 0xa7a9001e, 0x106000bc, 0xa7a20016, 0x24be0022, 0x97b6001e,
- 0x24b3001a, 0x24b70016, 0x8fc20000, 0x14400008, 0x00000000, 0x8fc2fff8,
- 0x97a30016, 0x8fc4fff4, 0x00431021, 0x0082202a, 0x148000ae, 0x00000000,
- 0x97d50818, 0x32a2ffff, 0x104000a1, 0x00009021, 0x0040a021, 0x00008821,
- 0x0e000621, 0x00000000, 0x00403021, 0x14c00007, 0x00000000, 0x3c020800,
- 0x8c4223cc, 0x24420001, 0x3c010800, 0x0a000593, 0xac2223cc, 0x3c100800,
- 0x02118021, 0x8e101bb8, 0x9608000a, 0x31020040, 0x10400004, 0x2407180c,
- 0x8e02000c, 0x2407188c, 0xacc20018, 0x31020080, 0x54400001, 0x34e70010,
- 0x3c020800, 0x00511021, 0x8c421bc0, 0x3c030800, 0x00711821, 0x8c631bc4,
- 0x00021500, 0x00031c00, 0x00431025, 0xacc20014, 0x96040008, 0x3242ffff,
- 0x00821021, 0x0282102a, 0x14400002, 0x02b22823, 0x00802821, 0x8e020000,
- 0x02459021, 0xacc20000, 0x8e020004, 0x00c02021, 0x26310010, 0xac820004,
- 0x30e2ffff, 0xac800008, 0xa485000e, 0xac820010, 0x24020305, 0x0e00059f,
- 0xa482000c, 0x3242ffff, 0x0054102b, 0x1440ffc6, 0x3242ffff, 0x0a00058b,
- 0x00000000, 0x8e620000, 0x8e63fffc, 0x0043102a, 0x10400066, 0x00000000,
- 0x8e62fff0, 0x00028900, 0x3c100800, 0x02118021, 0x0e000621, 0x8e101bb8,
- 0x00403021, 0x14c00005, 0x00000000, 0x8e62082c, 0x24420001, 0x0a000593,
- 0xae62082c, 0x9608000a, 0x31020040, 0x10400004, 0x2407180c, 0x8e02000c,
- 0x2407188c, 0xacc20018, 0x3c020800, 0x00511021, 0x8c421bc0, 0x3c030800,
- 0x00711821, 0x8c631bc4, 0x00021500, 0x00031c00, 0x00431025, 0xacc20014,
- 0x8e63fff4, 0x96020008, 0x00432023, 0x3242ffff, 0x3083ffff, 0x00431021,
- 0x02c2102a, 0x10400003, 0x00802821, 0x97a9001e, 0x01322823, 0x8e620000,
- 0x30a4ffff, 0x00441021, 0xae620000, 0xa4c5000e, 0x8e020000, 0xacc20000,
- 0x8e020004, 0x8e63fff4, 0x00431021, 0xacc20004, 0x8e63fff4, 0x96020008,
- 0x00641821, 0x0062102a, 0x14400006, 0x02459021, 0x8e62fff0, 0xae60fff4,
- 0x24420001, 0x0a00056e, 0xae62fff0, 0xae63fff4, 0xacc00008, 0x3242ffff,
- 0x10560003, 0x31020004, 0x10400006, 0x24020305, 0x31020080, 0x54400001,
- 0x34e70010, 0x34e70020, 0x24020905, 0xa4c2000c, 0x8ee30000, 0x8ee20004,
- 0x14620007, 0x3c02b49a, 0x8ee20860, 0x54400001, 0x34e70400, 0x3c024b65,
- 0x0a000585, 0x34427654, 0x344289ab, 0xacc2001c, 0x30e2ffff, 0xacc20010,
- 0x0e00059f, 0x00c02021, 0x3242ffff, 0x0056102b, 0x1440ff9c, 0x00000000,
- 0x8e620000, 0x8e63fffc, 0x0043102a, 0x1440ff4a, 0x00000000, 0x8fbf0044,
- 0x8fbe0040, 0x8fb7003c, 0x8fb60038, 0x8fb50034, 0x8fb40030, 0x8fb3002c,
- 0x8fb20028, 0x8fb10024, 0x8fb00020, 0x03e00008, 0x27bd0048, 0x27bdffe8,
- 0xafbf0014, 0xafb00010, 0x8f624450, 0x8f634410, 0x0a0005ae, 0x00808021,
- 0x8f626820, 0x30422000, 0x10400003, 0x00000000, 0x0e0001ef, 0x00002021,
- 0x8f624450, 0x8f634410, 0x3042ffff, 0x0043102b, 0x1440fff5, 0x00000000,
- 0x8f630c14, 0x3063000f, 0x2c620002, 0x1440000b, 0x00000000, 0x8f630c14,
- 0x3c020800, 0x8c421b30, 0x3063000f, 0x24420001, 0x3c010800, 0xac221b30,
- 0x2c620002, 0x1040fff7, 0x00000000, 0xaf705c18, 0x8f625c10, 0x30420002,
- 0x10400009, 0x00000000, 0x8f626820, 0x30422000, 0x1040fff8, 0x00000000,
- 0x0e0001ef, 0x00002021, 0x0a0005c1, 0x00000000, 0x8fbf0014, 0x8fb00010,
- 0x03e00008, 0x27bd0018, 0x00000000, 0x00000000, 0x27bdffe8, 0x3c1bc000,
- 0xafbf0014, 0xafb00010, 0xaf60680c, 0x8f626804, 0x34420082, 0xaf626804,
- 0x8f634000, 0x24020b50, 0x3c010800, 0xac221b44, 0x24020b78, 0x3c010800,
- 0xac221b54, 0x34630002, 0xaf634000, 0x0e000601, 0x00808021, 0x3c010800,
- 0xa0221b58, 0x304200ff, 0x24030002, 0x14430005, 0x00000000, 0x3c020800,
- 0x8c421b44, 0x0a0005f4, 0xac5000c0, 0x3c020800, 0x8c421b44, 0xac5000bc,
- 0x8f624434, 0x8f634438, 0x8f644410, 0x3c010800, 0xac221b4c, 0x3c010800,
- 0xac231b5c, 0x3c010800, 0xac241b48, 0x8fbf0014, 0x8fb00010, 0x03e00008,
- 0x27bd0018, 0x3c040800, 0x8c870000, 0x3c03aa55, 0x3463aa55, 0x3c06c003,
- 0xac830000, 0x8cc20000, 0x14430007, 0x24050002, 0x3c0355aa, 0x346355aa,
- 0xac830000, 0x8cc20000, 0x50430001, 0x24050001, 0x3c020800, 0xac470000,
- 0x03e00008, 0x00a01021, 0x27bdfff8, 0x18800009, 0x00002821, 0x8f63680c,
- 0x8f62680c, 0x1043fffe, 0x00000000, 0x24a50001, 0x00a4102a, 0x1440fff9,
- 0x00000000, 0x03e00008, 0x27bd0008, 0x8f634450, 0x3c020800, 0x8c421b4c,
- 0x00031c02, 0x0043102b, 0x14400008, 0x3c038000, 0x3c040800, 0x8c841b5c,
- 0x8f624450, 0x00021c02, 0x0083102b, 0x1040fffc, 0x3c038000, 0xaf634444,
- 0x8f624444, 0x00431024, 0x1440fffd, 0x00000000, 0x8f624448, 0x03e00008,
- 0x3042ffff, 0x3082ffff, 0x2442e000, 0x2c422001, 0x14400003, 0x3c024000,
- 0x0a000644, 0x2402ffff, 0x00822025, 0xaf645c38, 0x8f625c30, 0x30420002,
- 0x1440fffc, 0x00001021, 0x03e00008, 0x00000000, 0x8f624450, 0x3c030800,
- 0x8c631b48, 0x0a00064d, 0x3042ffff, 0x8f624450, 0x3042ffff, 0x0043102b,
- 0x1440fffc, 0x00000000, 0x03e00008, 0x00000000, 0x27bdffe0, 0x00802821,
- 0x3c040800, 0x24841ae0, 0x00003021, 0x00003821, 0xafbf0018, 0xafa00010,
- 0x0e000678, 0xafa00014, 0x0a00065c, 0x00000000, 0x8fbf0018, 0x03e00008,
- 0x27bd0020, 0x00000000, 0x00000000, 0x00000000, 0x3c020800, 0x34423000,
- 0x3c030800, 0x34633000, 0x3c040800, 0x348437ff, 0x3c010800, 0xac221b64,
- 0x24020040, 0x3c010800, 0xac221b68, 0x3c010800, 0xac201b60, 0xac600000,
- 0x24630004, 0x0083102b, 0x5040fffd, 0xac600000, 0x03e00008, 0x00000000,
- 0x00804821, 0x8faa0010, 0x3c020800, 0x8c421b60, 0x3c040800, 0x8c841b68,
- 0x8fab0014, 0x24430001, 0x0044102b, 0x3c010800, 0xac231b60, 0x14400003,
- 0x00004021, 0x3c010800, 0xac201b60, 0x3c020800, 0x8c421b60, 0x3c030800,
- 0x8c631b64, 0x91240000, 0x00021140, 0x00431021, 0x00481021, 0x25080001,
- 0xa0440000, 0x29020008, 0x1440fff4, 0x25290001, 0x3c020800, 0x8c421b60,
- 0x3c030800, 0x8c631b64, 0x8f64680c, 0x00021140, 0x00431021, 0xac440008,
- 0xac45000c, 0xac460010, 0xac470014, 0xac4a0018, 0x03e00008, 0xac4b001c,
- 0x00000000, 0x00000000,
-};
-
-u32 tg3TsoFwRodata[] = {
- 0x4d61696e, 0x43707542, 0x00000000, 0x4d61696e, 0x43707541, 0x00000000,
- 0x00000000, 0x00000000, 0x73746b6f, 0x66666c64, 0x496e0000, 0x73746b6f,
- 0x66662a2a, 0x00000000, 0x53774576, 0x656e7430, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x66617461, 0x6c457272, 0x00000000, 0x00000000,
-};
-
-#if 0 /* All zeros, don't eat up space with it. */
-u32 tg3TsoFwData[] = {
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
- 0x00000000, 0x00000000, 0x00000000
-};
-#endif
-
-/* 5705 needs a special version of the TSO firmware. */
-#define TG3_TSO5_FW_RELEASE_MAJOR 0x1
-#define TG3_TSO5_FW_RELASE_MINOR 0x1
-#define TG3_TSO5_FW_RELEASE_FIX 0x0
-#define TG3_TSO5_FW_START_ADDR 0x00010000
-#define TG3_TSO5_FW_TEXT_ADDR 0x00010000
-#define TG3_TSO5_FW_TEXT_LEN 0xeb0
-#define TG3_TSO5_FW_RODATA_ADDR 0x00010eb0
-#define TG3_TSO5_FW_RODATA_LEN 0x50
-#define TG3_TSO5_FW_DATA_ADDR 0x00010f20
-#define TG3_TSO5_FW_DATA_LEN 0x20
-#define TG3_TSO5_FW_SBSS_ADDR 0x00010f40
-#define TG3_TSO5_FW_SBSS_LEN 0x28
-#define TG3_TSO5_FW_BSS_ADDR 0x00010f70
-#define TG3_TSO5_FW_BSS_LEN 0x88
-
-static u32 tg3Tso5FwText[] = {
- 0x0c004003, 0x00000000, 0x00010f30, 0x00000000, 0x10000003, 0x00000000,
- 0x0000000d, 0x0000000d, 0x3c1d0001, 0x37bde000, 0x03a0f021, 0x3c100001,
- 0x26100000, 0x0c004010, 0x00000000, 0x0000000d, 0x27bdffe0, 0x3c04fefe,
- 0xafbf0018, 0x0c0042f0, 0x34840002, 0x0c00436c, 0x00000000, 0x3c030001,
- 0x90630f54, 0x24020002, 0x3c040001, 0x24840ebc, 0x14620003, 0x24050001,
- 0x3c040001, 0x24840eb0, 0x24060001, 0x00003821, 0xafa00010, 0x0c004380,
- 0xafa00014, 0x0c00402c, 0x00000000, 0x8fbf0018, 0x03e00008, 0x27bd0020,
- 0x00000000, 0x00000000, 0x27bdffe0, 0xafbf001c, 0xafb20018, 0xafb10014,
- 0x0c0042d3, 0xafb00010, 0x3c128000, 0x24110001, 0x8f706810, 0x32020400,
- 0x10400007, 0x00000000, 0x8f641008, 0x00921024, 0x14400003, 0x00000000,
- 0x0c004064, 0x00000000, 0x3c020001, 0x90420f76, 0x10510003, 0x32020200,
- 0x1040fff1, 0x00000000, 0x0c0041b4, 0x00000000, 0x08004034, 0x00000000,
- 0x8fbf001c, 0x8fb20018, 0x8fb10014, 0x8fb00010, 0x03e00008, 0x27bd0020,
- 0x27bdffe0, 0x3c040001, 0x24840ed0, 0x00002821, 0x00003021, 0x00003821,
- 0xafbf0018, 0xafa00010, 0x0c004380, 0xafa00014, 0x0000d021, 0x24020130,
- 0xaf625000, 0x3c010001, 0xa4200f70, 0x3c010001, 0xa0200f77, 0x8fbf0018,
- 0x03e00008, 0x27bd0020, 0x00000000, 0x00000000, 0x3c030001, 0x24630f80,
- 0x90620000, 0x27bdfff0, 0x14400003, 0x0080c021, 0x08004073, 0x00004821,
- 0x3c022000, 0x03021024, 0x10400003, 0x24090002, 0x08004073, 0xa0600000,
- 0x24090001, 0x00181040, 0x30431f80, 0x346f8008, 0x1520004b, 0x25eb0028,
- 0x3c040001, 0x00832021, 0x8c848010, 0x3c050001, 0x24a50f9a, 0x00041402,
- 0xa0a20000, 0x3c010001, 0xa0240f9b, 0x3c020001, 0x00431021, 0x94428014,
- 0x3c010001, 0xa0220f9c, 0x3c0c0001, 0x01836021, 0x8d8c8018, 0x304200ff,
- 0x24420008, 0x000220c3, 0x24020001, 0x3c010001, 0xa0220f80, 0x0124102b,
- 0x1040000c, 0x00003821, 0x24a6000e, 0x01602821, 0x8ca20000, 0x8ca30004,
- 0x24a50008, 0x24e70001, 0xacc20000, 0xacc30004, 0x00e4102b, 0x1440fff8,
- 0x24c60008, 0x00003821, 0x3c080001, 0x25080f9b, 0x91060000, 0x3c020001,
- 0x90420f9c, 0x2503000d, 0x00c32821, 0x00461023, 0x00021fc2, 0x00431021,
- 0x00021043, 0x1840000c, 0x00002021, 0x91020001, 0x00461023, 0x00021fc2,
- 0x00431021, 0x00021843, 0x94a20000, 0x24e70001, 0x00822021, 0x00e3102a,
- 0x1440fffb, 0x24a50002, 0x00041c02, 0x3082ffff, 0x00622021, 0x00041402,
- 0x00822021, 0x3c02ffff, 0x01821024, 0x3083ffff, 0x00431025, 0x3c010001,
- 0x080040fa, 0xac220fa0, 0x3c050001, 0x24a50f9c, 0x90a20000, 0x3c0c0001,
- 0x01836021, 0x8d8c8018, 0x000220c2, 0x1080000e, 0x00003821, 0x01603021,
- 0x24a5000c, 0x8ca20000, 0x8ca30004, 0x24a50008, 0x24e70001, 0xacc20000,
- 0xacc30004, 0x00e4102b, 0x1440fff8, 0x24c60008, 0x3c050001, 0x24a50f9c,
- 0x90a20000, 0x30430007, 0x24020004, 0x10620011, 0x28620005, 0x10400005,
- 0x24020002, 0x10620008, 0x000710c0, 0x080040fa, 0x00000000, 0x24020006,
- 0x1062000e, 0x000710c0, 0x080040fa, 0x00000000, 0x00a21821, 0x9463000c,
- 0x004b1021, 0x080040fa, 0xa4430000, 0x000710c0, 0x00a21821, 0x8c63000c,
- 0x004b1021, 0x080040fa, 0xac430000, 0x00a21821, 0x8c63000c, 0x004b2021,
- 0x00a21021, 0xac830000, 0x94420010, 0xa4820004, 0x95e70006, 0x3c020001,
- 0x90420f9c, 0x3c030001, 0x90630f9a, 0x00e2c823, 0x3c020001, 0x90420f9b,
- 0x24630028, 0x01e34021, 0x24420028, 0x15200012, 0x01e23021, 0x94c2000c,
- 0x3c010001, 0xa4220f98, 0x94c20004, 0x94c30006, 0x3c010001, 0xa4200f96,
- 0x3c010001, 0xa4200f92, 0x00021400, 0x00431025, 0x3c010001, 0xac220f8c,
- 0x95020004, 0x3c010001, 0x08004124, 0xa4220f90, 0x3c020001, 0x94420f90,
- 0x3c030001, 0x94630f92, 0x00431021, 0xa5020004, 0x3c020001, 0x94420f8c,
- 0xa4c20004, 0x3c020001, 0x8c420f8c, 0xa4c20006, 0x3c040001, 0x94840f92,
- 0x3c020001, 0x94420f90, 0x3c0a0001, 0x954a0f96, 0x00441821, 0x3063ffff,
- 0x0062182a, 0x24020002, 0x1122000b, 0x00832023, 0x3c030001, 0x94630f98,
- 0x30620009, 0x10400006, 0x3062fff6, 0xa4c2000c, 0x3c020001, 0x94420f98,
- 0x30420009, 0x01425023, 0x24020001, 0x1122001b, 0x29220002, 0x50400005,
- 0x24020002, 0x11200007, 0x31a2ffff, 0x08004197, 0x00000000, 0x1122001d,
- 0x24020016, 0x08004197, 0x31a2ffff, 0x3c0e0001, 0x95ce0fa0, 0x10800005,
- 0x01806821, 0x01c42021, 0x00041c02, 0x3082ffff, 0x00627021, 0x000e1027,
- 0xa502000a, 0x3c030001, 0x90630f9b, 0x31a2ffff, 0x00e21021, 0x0800418d,
- 0x00432023, 0x3c020001, 0x94420fa0, 0x00442021, 0x00041c02, 0x3082ffff,
- 0x00622021, 0x00807021, 0x00041027, 0x08004185, 0xa502000a, 0x3c050001,
- 0x24a50f9a, 0x90a30000, 0x14620002, 0x24e2fff2, 0xa5e20034, 0x90a20000,
- 0x00e21023, 0xa5020002, 0x3c030001, 0x94630fa0, 0x3c020001, 0x94420f7a,
- 0x30e5ffff, 0x00641821, 0x00451023, 0x00622023, 0x00041c02, 0x3082ffff,
- 0x00622021, 0x00041027, 0xa502000a, 0x3c030001, 0x90630f9c, 0x24620001,
- 0x14a20005, 0x00807021, 0x01631021, 0x90420000, 0x08004185, 0x00026200,
- 0x24620002, 0x14a20003, 0x306200fe, 0x004b1021, 0x944c0000, 0x3c020001,
- 0x94420fa2, 0x3183ffff, 0x3c040001, 0x90840f9b, 0x00431021, 0x00e21021,
- 0x00442023, 0x008a2021, 0x00041c02, 0x3082ffff, 0x00622021, 0x00041402,
- 0x00822021, 0x00806821, 0x00041027, 0xa4c20010, 0x31a2ffff, 0x000e1c00,
- 0x00431025, 0x3c040001, 0x24840f92, 0xade20010, 0x94820000, 0x3c050001,
- 0x94a50f96, 0x3c030001, 0x8c630f8c, 0x24420001, 0x00b92821, 0xa4820000,
- 0x3322ffff, 0x00622021, 0x0083182b, 0x3c010001, 0xa4250f96, 0x10600003,
- 0x24a2ffff, 0x3c010001, 0xa4220f96, 0x3c024000, 0x03021025, 0x3c010001,
- 0xac240f8c, 0xaf621008, 0x03e00008, 0x27bd0010, 0x3c030001, 0x90630f76,
- 0x27bdffe8, 0x24020001, 0xafbf0014, 0x10620026, 0xafb00010, 0x8f620cf4,
- 0x2442ffff, 0x3042007f, 0x00021100, 0x8c434000, 0x3c010001, 0xac230f84,
- 0x8c434008, 0x24444000, 0x8c5c4004, 0x30620040, 0x14400002, 0x24020088,
- 0x24020008, 0x3c010001, 0xa4220f88, 0x30620004, 0x10400005, 0x24020001,
- 0x3c010001, 0xa0220f77, 0x080041d5, 0x00031402, 0x3c010001, 0xa0200f77,
- 0x00031402, 0x3c010001, 0xa4220f74, 0x9483000c, 0x24020001, 0x3c010001,
- 0xa4200f70, 0x3c010001, 0xa0220f76, 0x3c010001, 0xa4230f82, 0x24020001,
- 0x1342001e, 0x00000000, 0x13400005, 0x24020003, 0x13420067, 0x00000000,
- 0x080042cf, 0x00000000, 0x3c020001, 0x94420f82, 0x241a0001, 0x3c010001,
- 0xa4200f7e, 0x3c010001, 0xa4200f72, 0x304407ff, 0x00021bc2, 0x00031823,
- 0x3063003e, 0x34630036, 0x00021242, 0x3042003c, 0x00621821, 0x3c010001,
- 0xa4240f78, 0x00832021, 0x24630030, 0x3c010001, 0xa4240f7a, 0x3c010001,
- 0xa4230f7c, 0x3c060001, 0x24c60f72, 0x94c50000, 0x94c30002, 0x3c040001,
- 0x94840f7a, 0x00651021, 0x0044102a, 0x10400013, 0x3c108000, 0x00a31021,
- 0xa4c20000, 0x3c02a000, 0xaf620cf4, 0x3c010001, 0xa0200f76, 0x8f641008,
- 0x00901024, 0x14400003, 0x00000000, 0x0c004064, 0x00000000, 0x8f620cf4,
- 0x00501024, 0x104000b7, 0x00000000, 0x0800420f, 0x00000000, 0x3c030001,
- 0x94630f70, 0x00851023, 0xa4c40000, 0x00621821, 0x3042ffff, 0x3c010001,
- 0xa4230f70, 0xaf620ce8, 0x3c020001, 0x94420f88, 0x34420024, 0xaf620cec,
- 0x94c30002, 0x3c020001, 0x94420f70, 0x14620012, 0x3c028000, 0x3c108000,
- 0x3c02a000, 0xaf620cf4, 0x3c010001, 0xa0200f76, 0x8f641008, 0x00901024,
- 0x14400003, 0x00000000, 0x0c004064, 0x00000000, 0x8f620cf4, 0x00501024,
- 0x1440fff7, 0x00000000, 0x080042cf, 0x241a0003, 0xaf620cf4, 0x3c108000,
- 0x8f641008, 0x00901024, 0x14400003, 0x00000000, 0x0c004064, 0x00000000,
- 0x8f620cf4, 0x00501024, 0x1440fff7, 0x00000000, 0x080042cf, 0x241a0003,
- 0x3c070001, 0x24e70f70, 0x94e20000, 0x03821021, 0xaf620ce0, 0x3c020001,
- 0x8c420f84, 0xaf620ce4, 0x3c050001, 0x94a50f74, 0x94e30000, 0x3c040001,
- 0x94840f78, 0x3c020001, 0x94420f7e, 0x00a32823, 0x00822023, 0x30a6ffff,
- 0x3083ffff, 0x00c3102b, 0x14400043, 0x00000000, 0x3c020001, 0x94420f7c,
- 0x00021400, 0x00621025, 0xaf620ce8, 0x94e20000, 0x3c030001, 0x94630f74,
- 0x00441021, 0xa4e20000, 0x3042ffff, 0x14430021, 0x3c020008, 0x3c020001,
- 0x90420f77, 0x10400006, 0x3c03000c, 0x3c020001, 0x94420f88, 0x34630624,
- 0x0800427c, 0x0000d021, 0x3c020001, 0x94420f88, 0x3c030008, 0x34630624,
- 0x00431025, 0xaf620cec, 0x3c108000, 0x3c02a000, 0xaf620cf4, 0x3c010001,
- 0xa0200f76, 0x8f641008, 0x00901024, 0x14400003, 0x00000000, 0x0c004064,
- 0x00000000, 0x8f620cf4, 0x00501024, 0x10400015, 0x00000000, 0x08004283,
- 0x00000000, 0x3c030001, 0x94630f88, 0x34420624, 0x3c108000, 0x00621825,
- 0x3c028000, 0xaf630cec, 0xaf620cf4, 0x8f641008, 0x00901024, 0x14400003,
- 0x00000000, 0x0c004064, 0x00000000, 0x8f620cf4, 0x00501024, 0x1440fff7,
- 0x00000000, 0x3c010001, 0x080042cf, 0xa4200f7e, 0x3c020001, 0x94420f7c,
- 0x00021400, 0x00c21025, 0xaf620ce8, 0x3c020001, 0x90420f77, 0x10400009,
- 0x3c03000c, 0x3c020001, 0x94420f88, 0x34630624, 0x0000d021, 0x00431025,
- 0xaf620cec, 0x080042c1, 0x3c108000, 0x3c020001, 0x94420f88, 0x3c030008,
- 0x34630604, 0x00431025, 0xaf620cec, 0x3c020001, 0x94420f7e, 0x00451021,
- 0x3c010001, 0xa4220f7e, 0x3c108000, 0x3c02a000, 0xaf620cf4, 0x3c010001,
- 0xa0200f76, 0x8f641008, 0x00901024, 0x14400003, 0x00000000, 0x0c004064,
- 0x00000000, 0x8f620cf4, 0x00501024, 0x1440fff7, 0x00000000, 0x8fbf0014,
- 0x8fb00010, 0x03e00008, 0x27bd0018, 0x27bdffe0, 0x3c040001, 0x24840ee0,
- 0x00002821, 0x00003021, 0x00003821, 0xafbf0018, 0xafa00010, 0x0c004380,
- 0xafa00014, 0x0000d021, 0x24020130, 0xaf625000, 0x3c010001, 0xa4200f70,
- 0x3c010001, 0xa0200f77, 0x8f636804, 0x3c020001, 0x3442e000, 0x00621824,
- 0x3c020001, 0x14620003, 0x00000000, 0x080042eb, 0x00000000, 0x8fbf0018,
- 0x03e00008, 0x27bd0020, 0x27bdffe8, 0x3c1bc000, 0xafbf0014, 0xafb00010,
- 0xaf60680c, 0x8f626804, 0x34420082, 0xaf626804, 0x8f634000, 0x24020b50,
- 0x3c010001, 0xac220f40, 0x24020b78, 0x3c010001, 0xac220f50, 0x34630002,
- 0xaf634000, 0x0c00431d, 0x00808021, 0x3c010001, 0xa0220f54, 0x304200ff,
- 0x24030002, 0x14430005, 0x00000000, 0x3c020001, 0x8c420f40, 0x08004310,
- 0xac5000c0, 0x3c020001, 0x8c420f40, 0xac5000bc, 0x8f624434, 0x8f634438,
- 0x8f644410, 0x3c010001, 0xac220f48, 0x3c010001, 0xac230f58, 0x3c010001,
- 0xac240f44, 0x8fbf0014, 0x8fb00010, 0x03e00008, 0x27bd0018, 0x03e00008,
- 0x24020001, 0x27bdfff8, 0x18800009, 0x00002821, 0x8f63680c, 0x8f62680c,
- 0x1043fffe, 0x00000000, 0x24a50001, 0x00a4102a, 0x1440fff9, 0x00000000,
- 0x03e00008, 0x27bd0008, 0x8f634450, 0x3c020001, 0x8c420f48, 0x00031c02,
- 0x0043102b, 0x14400008, 0x3c038000, 0x3c040001, 0x8c840f58, 0x8f624450,
- 0x00021c02, 0x0083102b, 0x1040fffc, 0x3c038000, 0xaf634444, 0x8f624444,
- 0x00431024, 0x1440fffd, 0x00000000, 0x8f624448, 0x03e00008, 0x3042ffff,
- 0x3082ffff, 0x2442e000, 0x2c422001, 0x14400003, 0x3c024000, 0x0800434f,
- 0x2402ffff, 0x00822025, 0xaf645c38, 0x8f625c30, 0x30420002, 0x1440fffc,
- 0x00001021, 0x03e00008, 0x00000000, 0x8f624450, 0x3c030001, 0x8c630f44,
- 0x08004358, 0x3042ffff, 0x8f624450, 0x3042ffff, 0x0043102b, 0x1440fffc,
- 0x00000000, 0x03e00008, 0x00000000, 0x27bdffe0, 0x00802821, 0x3c040001,
- 0x24840ef0, 0x00003021, 0x00003821, 0xafbf0018, 0xafa00010, 0x0c004380,
- 0xafa00014, 0x08004367, 0x00000000, 0x8fbf0018, 0x03e00008, 0x27bd0020,
- 0x3c020001, 0x3442d600, 0x3c030001, 0x3463d600, 0x3c040001, 0x3484ddff,
- 0x3c010001, 0xac220f60, 0x24020040, 0x3c010001, 0xac220f64, 0x3c010001,
- 0xac200f5c, 0xac600000, 0x24630004, 0x0083102b, 0x5040fffd, 0xac600000,
- 0x03e00008, 0x00000000, 0x00804821, 0x8faa0010, 0x3c020001, 0x8c420f5c,
- 0x3c040001, 0x8c840f64, 0x8fab0014, 0x24430001, 0x0044102b, 0x3c010001,
- 0xac230f5c, 0x14400003, 0x00004021, 0x3c010001, 0xac200f5c, 0x3c020001,
- 0x8c420f5c, 0x3c030001, 0x8c630f60, 0x91240000, 0x00021140, 0x00431021,
- 0x00481021, 0x25080001, 0xa0440000, 0x29020008, 0x1440fff4, 0x25290001,
- 0x3c020001, 0x8c420f5c, 0x3c030001, 0x8c630f60, 0x8f64680c, 0x00021140,
- 0x00431021, 0xac440008, 0xac45000c, 0xac460010, 0xac470014, 0xac4a0018,
- 0x03e00008, 0xac4b001c, 0x00000000, 0x00000000,
-};
-
-u32 tg3Tso5FwRodata[] = {
- 0x4d61696e, 0x43707542, 0x00000000, 0x4d61696e, 0x43707541, 0x00000000,
- 0x00000000, 0x00000000, 0x73746b6f, 0x66666c64, 0x00000000, 0x00000000,
- 0x73746b6f, 0x66666c64, 0x00000000, 0x00000000, 0x66617461, 0x6c457272,
- 0x00000000, 0x00000000, 0x00000000
-};
-
-u32 tg3Tso5FwData[] = {
- 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x73746b6f,
- 0x66666c64, 0x5f76312e, 0x312e3000, 0x00000000
-};
-
/* tp->lock is held. */
static int tg3_load_tso_firmware(struct tg3 *tp)
{
- struct fw_info info;
+ struct fw_info** fw_ptr;
unsigned long cpu_base, cpu_scratch_base, cpu_scratch_size;
int err, i;
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705) {
- info.text_base = TG3_TSO5_FW_TEXT_ADDR;
- info.text_len = TG3_TSO5_FW_TEXT_LEN;
- info.text_data = &tg3Tso5FwText[0];
- info.rodata_base = TG3_TSO5_FW_RODATA_ADDR;
- info.rodata_len = TG3_TSO5_FW_RODATA_LEN;
- info.rodata_data = &tg3Tso5FwRodata[0];
- info.data_base = TG3_TSO5_FW_DATA_ADDR;
- info.data_len = TG3_TSO5_FW_DATA_LEN;
- info.data_data = &tg3Tso5FwData[0];
+ fw_ptr = &tg3_fw_tso5;
cpu_base = RX_CPU_BASE;
cpu_scratch_base = NIC_SRAM_MBUF_POOL_BASE5705;
- cpu_scratch_size = (info.text_len +
- info.rodata_len +
- info.data_len +
+ cpu_scratch_size = ((*fw_ptr)->text_len +
+ (*fw_ptr)->rodata_len +
+ (*fw_ptr)->data_len +
TG3_TSO5_FW_SBSS_LEN +
TG3_TSO5_FW_BSS_LEN);
} else {
- info.text_base = TG3_TSO_FW_TEXT_ADDR;
- info.text_len = TG3_TSO_FW_TEXT_LEN;
- info.text_data = &tg3TsoFwText[0];
- info.rodata_base = TG3_TSO_FW_RODATA_ADDR;
- info.rodata_len = TG3_TSO_FW_RODATA_LEN;
- info.rodata_data = &tg3TsoFwRodata[0];
- info.data_base = TG3_TSO_FW_DATA_ADDR;
- info.data_len = TG3_TSO_FW_DATA_LEN;
- info.data_data = NULL;
+ fw_ptr = &tg3_fw_tso;
cpu_base = TX_CPU_BASE;
cpu_scratch_base = TX_CPU_SCRATCH_BASE;
cpu_scratch_size = TX_CPU_SCRATCH_SIZE;
@@ -4381,27 +3889,27 @@
err = tg3_load_firmware_cpu(tp, cpu_base,
cpu_scratch_base, cpu_scratch_size,
- &info);
+ (*fw_ptr));
if (err)
return err;
/* Now startup the cpu. */
tw32(cpu_base + CPU_STATE, 0xffffffff);
- tw32_f(cpu_base + CPU_PC, info.text_base);
+ tw32_f(cpu_base + CPU_PC, (*fw_ptr)->text_base);
for (i = 0; i < 5; i++) {
- if (tr32(cpu_base + CPU_PC) == info.text_base)
+ if (tr32(cpu_base + CPU_PC) == (*fw_ptr)->text_base)
break;
tw32(cpu_base + CPU_STATE, 0xffffffff);
tw32(cpu_base + CPU_MODE, CPU_MODE_HALT);
- tw32_f(cpu_base + CPU_PC, info.text_base);
+ tw32_f(cpu_base + CPU_PC, (*fw_ptr)->text_base);
udelay(1000);
}
if (i >= 5) {
printk(KERN_ERR PFX "tg3_load_tso_firmware fails for %s "
"to set CPU PC, is %08x should be %08x\n",
tp->dev->name, tr32(cpu_base + CPU_PC),
- info.text_base);
+ (*fw_ptr)->text_base);
return -ENODEV;
}
tw32(cpu_base + CPU_STATE, 0xffffffff);
@@ -4599,9 +4107,9 @@
else if (tp->tg3_flags2 & TG3_FLG2_TSO_CAPABLE) {
int fw_len;
- fw_len = (TG3_TSO5_FW_TEXT_LEN +
- TG3_TSO5_FW_RODATA_LEN +
- TG3_TSO5_FW_DATA_LEN +
+ fw_len = (tg3_fw_tso5->text_len +
+ tg3_fw_tso5->rodata_len +
+ tg3_fw_tso5->data_len +
TG3_TSO5_FW_SBSS_LEN +
TG3_TSO5_FW_BSS_LEN);
fw_len = (fw_len + (0x80 - 1)) & ~(0x80 - 1);
@@ -7642,6 +7150,18 @@
DEFAULT_MB_HIGH_WATER_5705;
}
+ if (tp->pci_chip_rev_id == CHIPREV_ID_5701_A0) {
+ /* Ick. This needs firmware loading. */
+ /* Clear existing firmware, just in case */
+ if (tg3_fw_5701_a0 != NULL)
+ tg3_release_firmware(&tg3_fw_5701_a0);
+ /* Get new firmware */
+ err = tg3_request_firmware(&tg3_fw_5701_a0,
+ "tg3/5701_a0-0.0.0", tp);
+ if (err)
+ return err;
+ }
+
#if TG3_TSO_SUPPORT != 0
if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 ||
GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701 ||
@@ -7649,8 +7169,40 @@
(tp->tg3_flags & TG3_FLAG_ENABLE_ASF) != 0 ||
(tp->tg3_flags2 & TG3_FLG2_IS_5788)) {
tp->tg3_flags2 &= ~TG3_FLG2_TSO_CAPABLE;
+ } else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705) {
+ /* 5705 needs a special version of the TSO firmware. */
+ /* Clear existing firmware, just in case */
+ if (tg3_fw_tso5 != NULL)
+ tg3_release_firmware(&tg3_fw_tso5);
+ /* Load new firmware */
+ err = tg3_request_firmware(&tg3_fw_tso5, "tg3/tso_5705-1.1.0", tp);
+ if (err) {
+ /* We can function without TSO; pretend it's
+ not supported. */
+ printk(KERN_INFO PFX
+ "%s: Firmware \"tg3/tso_5705-1.1.0\" not "
+ "loaded; continuing without TSO.\n",
+ tp->dev->name);
+ tp->tg3_flags2 &= ~TG3_FLG2_TSO_CAPABLE;
+ } else
+ tp->tg3_flags2 |= TG3_FLG2_TSO_CAPABLE;
} else {
- tp->tg3_flags2 |= TG3_FLG2_TSO_CAPABLE;
+ /* Load TSO firmware */
+ /* Clear existing firmware, just in case */
+ if (tg3_fw_tso != NULL)
+ tg3_release_firmware(&tg3_fw_tso);
+ /* Load new firmware */
+ err = tg3_request_firmware(&tg3_fw_tso, "tg3/tso-1.4.0", tp);
+ if (err) {
+ /* We can function without TSO; pretend it's
+ not supported. */
+ printk(KERN_INFO PFX
+ "%s: Firmware \"tg3/tso-1.4.0\" not "
+ "loaded; continuing without TSO.\n",
+ tp->dev->name);
+ tp->tg3_flags2 &= ~TG3_FLG2_TSO_CAPABLE;
+ } else
+ tp->tg3_flags2 |= TG3_FLG2_TSO_CAPABLE;
}
/* TSO is off by default, user can enable using ethtool. */
@@ -7866,6 +7418,18 @@
static void __exit tg3_cleanup(void)
{
+ /* Clean up any leftover firmware. We can't currently
+ do this in tg3_remove_one, because we don't know whether
+ any of the other devices need the firmware. */
+ if (tg3_fw_5701_a0 != NULL)
+ tg3_release_firmware(&tg3_fw_5701_a0);
+#if TG3_TSO_SUPPORT != 0
+ if (tg3_fw_tso5 != NULL)
+ tg3_release_firmware(&tg3_fw_tso5);
+ if (tg3_fw_tso != NULL)
+ tg3_release_firmware(&tg3_fw_tso);
+#endif /* TG3_TSO_SUPPORT */
+
pci_unregister_driver(&tg3_driver);
}
--- linux-2.6.5/drivers/net/Kconfig.old 2004-04-21 00:24:23.000000000 -0400
+++ linux-2.6.5/drivers/net/Kconfig 2004-04-21 00:08:35.000000000 -0400
@@ -2054,6 +2054,7 @@
config TIGON3
tristate "Broadcom Tigon3 support"
depends on PCI
+ select FW_LOADER
help
This driver supports Broadcom Tigon3 based gigabit Ethernet cards.
--
There are none so blind as those who will not see.
Information forwarded to debian-bugs-dist@lists.debian.org, Herbert Xu <herbert@debian.org>:
Bug#242866; Package kernel.
(full text, mbox, link).
Acknowledgement sent to Nathanael Nerode <neroden@twcny.rr.com>:
Extra info received and forwarded to list. Copy sent to Herbert Xu <herbert@debian.org>.
(full text, mbox, link).
Message #68 received at 242866@bugs.debian.org (full text, mbox, reply):
Herbert, could you send me your changes to my radeon/r128 patch, so that I can integrate them in my submissions upstream? Thanks.
Information forwarded to debian-bugs-dist@lists.debian.org, Herbert Xu <herbert@debian.org>:
Bug#242866; Package kernel.
(full text, mbox, link).
Acknowledgement sent to Herbert Xu <herbert@gondor.apana.org.au>:
Extra info received and forwarded to list. Copy sent to Herbert Xu <herbert@debian.org>.
(full text, mbox, link).
Message #73 received at 242866@bugs.debian.org (full text, mbox, reply):
On Thu, Apr 29, 2004 at 08:55:42PM -0400, Nathanael Nerode wrote:
> Herbert, could you send me your changes to my radeon/r128 patch, so that I can
> integrate them in my submissions upstream? Thanks.
As the recent bug reports showed that X is not able to deal with the
module without firmware properly, I've decided to revert your patch.
Please modify it so that it fails earlier if the firmware is not
available. For example, you can do it at module load time or
perhaps PCI probe time. Of course, you'll need to keep the firmware
around until it is actually needed.
--
Debian GNU/Linux 3.0 is out! ( http://www.debian.org/ )
Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Information forwarded to debian-bugs-dist@lists.debian.org, Herbert Xu <herbert@debian.org>:
Bug#242866; Package kernel.
(full text, mbox, link).
Acknowledgement sent to Nathanael Nerode <neroden@twcny.rr.com>:
Extra info received and forwarded to list. Copy sent to Herbert Xu <herbert@debian.org>.
(full text, mbox, link).
Message #78 received at 242866@bugs.debian.org (full text, mbox, reply):
>As the recent bug reports showed that X is not able to deal with the
>module without firmware properly, I've decided to revert your patch.
OK. I'm sure you know that the radeon firmware is still of questionable
*distributability*, let alone DFSG-freeness. You may have to remove the
Radeon and R128 modules from the kernel.
>Please modify it so that it fails earlier if the firmware is not
>available. For example, you can do it at module load time or
>perhaps PCI probe time.
Unfortunately, there is no good way to do either of these, given the kooky
design of the DRM modules. Module load is in drm_drv.h (a multi-driver file)
and has no usable hooks (the available ones must be written as macros and do
not have access to a struct device). PCI probing is not really done at all.
Fixing these design issues is beyond my powers. It would probably be easier
to make XFree86 recover properly. So I'm taking a look at that....
:-)
Quoting Michel Daenzer from bug 246627:
>The r128 and radeon 2D drivers don't deal gracefully with the DRM
>failing to load the firmware. That's a bug which has been fixed at least
>in the radeon driver in DRI CVS. I suggest those who insisted on
>inconveniencing users by crippling the kernel-image packages dig up the
>fix and provide it to the XSF.
So I will look for this and push it to the XSF; when this is done, I assume
the kernel fix can go back in.
Michel Danzer continued
> Alternatively, they could provide the
>microcode in a convenient way.
As you know, I have not done this because I am worried about the actual
legality of distributing it, given the questionable-on-its-face copyright
statement ("Copyright VA Linux... microcode (from ATI)..."). If you or
someone else are not worried about that, please do provide it in a convenient
form.
Information forwarded to debian-bugs-dist@lists.debian.org, Herbert Xu <herbert@debian.org>:
Bug#242866; Package kernel.
(full text, mbox, link).
Acknowledgement sent to Herbert Xu <herbert@gondor.apana.org.au>:
Extra info received and forwarded to list. Copy sent to Herbert Xu <herbert@debian.org>.
(full text, mbox, link).
Message #83 received at 242866@bugs.debian.org (full text, mbox, reply):
On Fri, Apr 30, 2004 at 01:27:15PM -0400, Nathanael Nerode wrote:
>
> *distributability*, let alone DFSG-freeness. You may have to remove the
> Radeon and R128 modules from the kernel.
Depending on the outcome of the current GR, I will decide on whether
to remove these modules.
> So I will look for this and push it to the XSF; when this is done, I assume
> the kernel fix can go back in.
Yes.
--
Debian GNU/Linux 3.0 is out! ( http://www.debian.org/ )
Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Information forwarded to debian-bugs-dist@lists.debian.org, Herbert Xu <herbert@debian.org>:
Bug#242866; Package kernel.
(full text, mbox, link).
Acknowledgement sent to Nathanael Nerode <neroden@twcny.rr.com>:
Extra info received and forwarded to list. Copy sent to Herbert Xu <herbert@debian.org>.
(full text, mbox, link).
Message #88 received at 242866@bugs.debian.org (full text, mbox, reply):
FYI, the last version of tg3 userland firmware loader patch is tested and works both with and without the firmware. I may tweak it a little bit to give more verbose debugging messages in the kernel logs, but it should be good to go as is.
Information forwarded to debian-bugs-dist@lists.debian.org, Herbert Xu <herbert@debian.org>:
Bug#242866; Package kernel.
(full text, mbox, link).
Acknowledgement sent to Herbert Xu <herbert@gondor.apana.org.au>:
Extra info received and forwarded to list. Copy sent to Herbert Xu <herbert@debian.org>.
(full text, mbox, link).
Message #93 received at 242866@bugs.debian.org (full text, mbox, reply):
[Message part 1 (text/plain, inline)]
On Thu, Apr 29, 2004 at 08:53:06PM -0400, Nathanael Nerode wrote:
> This one cleans up the tg3 driver a bit more and changes the chosen firmware
> name to use a version (in fact, the version from the original firmware).
>
> I also have made a .deb containing the firmware files, available for testing
> at http://home.twcny.rr.com/nerode/neroden/debian/ .
Thank you very much for the patch.
I've modified it a bit before including it. In particular, I added
bss_len/sbss_len to the preamble as well as words indicating whether
the text/data/rodata sections are present or not.
Can you please update your firmware files accordingly?
Cheers,
--
Debian GNU/Linux 3.0 is out! ( http://www.debian.org/ )
Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
[p (text/plain, attachment)]
Information forwarded to debian-bugs-dist@lists.debian.org, Herbert Xu <herbert@debian.org>:
Bug#242866; Package kernel.
(full text, mbox, link).
Acknowledgement sent to Herbert Xu <herbert@gondor.apana.org.au>:
Extra info received and forwarded to list. Copy sent to Herbert Xu <herbert@debian.org>.
(full text, mbox, link).
Message #98 received at 242866@bugs.debian.org (full text, mbox, reply):
[Message part 1 (text/plain, inline)]
On Tue, May 11, 2004 at 10:27:46PM +1000, herbert wrote:
>
> I've modified it a bit before including it. In particular, I added
> bss_len/sbss_len to the preamble as well as words indicating whether
> the text/data/rodata sections are present or not.
There was another bug in there where the firmware being freed on a
reload may still be used by another device.
The following patch removes the reloading of the firmware in tg3_open.
--
Debian GNU/Linux 3.0 is out! ( http://www.debian.org/ )
Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
[p (text/plain, attachment)]
Information forwarded to debian-bugs-dist@lists.debian.org, Herbert Xu <herbert@debian.org>:
Bug#242866; Package kernel.
(full text, mbox, link).
Acknowledgement sent to Nathanael Nerode <neroden@twcny.rr.com>:
Extra info received and forwarded to list. Copy sent to Herbert Xu <herbert@debian.org>.
(full text, mbox, link).
Message #103 received at 242866@bugs.debian.org (full text, mbox, reply):
-------- Original Message -------- Subject: Re: Bug#242866: Revised tg3 userland firmware loading patch Date: Fri, 14 May 2004 15:19:41 -0400 From: Nathanael Nerode <neroden@twcny.rr.com> To: Herbert Xu <herbert@gondor.apana.org.au> References: <20040430005306.GA14847@twcny.rr.com> <20040511122746.GA12070@gondor.apana.org.au> Herbert Xu wrote: > On Thu, Apr 29, 2004 at 08:53:06PM -0400, Nathanael Nerode wrote: > >>This one cleans up the tg3 driver a bit more and changes the chosen firmware >>name to use a version (in fact, the version from the original firmware). >> >>I also have made a .deb containing the firmware files, available for testing >>at http://home.twcny.rr.com/nerode/neroden/debian/ . > > > Thank you very much for the patch. > > I've modified it a bit before including it. In particular, I added > bss_len/sbss_len to the preamble as well as words indicating whether > the text/data/rodata sections are present or not. > > Can you please update your firmware files accordingly? Updated to match. Package is Lintian-clean; gets a Linda error which is hotplug's fault. I will look for a sponsor for the package now. Or would you care to sponsor it? :-)
Information forwarded to debian-bugs-dist@lists.debian.org, Herbert Xu <herbert@debian.org>:
Bug#242866; Package kernel.
(full text, mbox, link).
Acknowledgement sent to Nathanael Nerode <neroden@twcny.rr.com>:
Extra info received and forwarded to list. Copy sent to Herbert Xu <herbert@debian.org>.
(full text, mbox, link).
Message #108 received at 242866@bugs.debian.org (full text, mbox, reply):
-------- Original Message --------
Subject: Re: Bug#242866: Revised tg3 userland firmware loading patch
Date: Fri, 14 May 2004 14:16:57 -0400
From: Nathanael Nerode <neroden@twcny.rr.com>
To: Herbert Xu <herbert@gondor.apana.org.au>
References: <20040430005306.GA14847@twcny.rr.com>
<20040511122746.GA12070@gondor.apana.org.au>
<20040511230700.GA15795@gondor.apana.org.au>
Herbert Xu wrote:
> On Tue, May 11, 2004 at 10:27:46PM +1000, herbert wrote:
>
>>I've modified it a bit before including it. In particular, I added
>>bss_len/sbss_len to the preamble as well as words indicating whether
>>the text/data/rodata sections are present or not.
Right. I guess that means my comment regarding the format of the file
should be updated (or removed in favor of a line like "Read the code",
perhaps).
+ * We require the firmware file to be in a certain binary format:
+ * little-endian (so that it's platform-independent -- heh)
+ * struct fw_info fields in this order:
+ * text_base, text_len, rodata_base, rodata_len, data_base, data_len
Should now be:
text_base, text_len, text_zero,
rodata_base, rodata_len, rodata_zero,
data_base, data_len, data_zero,
sbss_len, bss_len
+ * ('unsigned int' fields as 32-bit integers)
+ * text_data, rodata_data, data_data
+ * ('u32*' fields as a whole bunch of 32-bit integers)
+ */
This comment is also inaccurate now:
/* Wipe out one fw_info structure; it must be fully allocated */
Should now be:
/* Wipe out one fw_info structure; it must be either fully allocated
* or NULL */
> There was another bug in there where the firmware being freed on a
> reload may still be used by another device.
Lack of thread safety? Right, I see.
> The following patch removes the reloading of the firmware in tg3_open.
It took me a few minutes to find the changes, both in this case and the
previous one. Could you possibly provide diffs from my patched version
to yours in future? :-)
This means a forced firmware change will require a driver unload/reload,
right? OK.
I've also had a request to provide informational messages in the kernel
log indicating what firmware file was loaded, when firmware is loaded.
Information forwarded to debian-bugs-dist@lists.debian.org, Herbert Xu <herbert@debian.org>:
Bug#242866; Package kernel.
(full text, mbox, link).
Acknowledgement sent to Herbert Xu <herbert@gondor.apana.org.au>:
Extra info received and forwarded to list. Copy sent to Herbert Xu <herbert@debian.org>.
(full text, mbox, link).
Message #113 received at 242866@bugs.debian.org (full text, mbox, reply):
On Fri, May 14, 2004 at 08:05:33PM -0400, Nathanael Nerode wrote:
>
> Updated to match.
Thanks.
> Package is Lintian-clean; gets a Linda error which is hotplug's fault.
>
> I will look for a sponsor for the package now. Or would you care to
> sponsor it? :-)
If you get it to mean before next Wednesday then I'll sponsor it.
--
Debian GNU/Linux 3.0 is out! ( http://www.debian.org/ )
Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Information forwarded to debian-bugs-dist@lists.debian.org, Herbert Xu <herbert@debian.org>:
Bug#242866; Package kernel.
(full text, mbox, link).
Acknowledgement sent to Herbert Xu <herbert@gondor.apana.org.au>:
Extra info received and forwarded to list. Copy sent to Herbert Xu <herbert@debian.org>.
(full text, mbox, link).
Message #118 received at 242866@bugs.debian.org (full text, mbox, reply):
[Message part 1 (text/plain, inline)]
On Fri, May 14, 2004 at 08:05:46PM -0400, Nathanael Nerode wrote:
>
> Should now be:
>
> text_base, text_len, text_zero,
> rodata_base, rodata_len, rodata_zero,
> data_base, data_len, data_zero,
> sbss_len, bss_len
Updated. Thanks.
> This comment is also inaccurate now:
> /* Wipe out one fw_info structure; it must be fully allocated */
>
> Should now be:
> /* Wipe out one fw_info structure; it must be either fully allocated
> * or NULL */
It doesn't have to be fully allocated as each section can be NULL if
they're entirely made up of zeros.
> >The following patch removes the reloading of the firmware in tg3_open.
> It took me a few minutes to find the changes, both in this case and the
> previous one. Could you possibly provide diffs from my patched version
> to yours in future? :-)
Sure.
> I've also had a request to provide informational messages in the kernel
> log indicating what firmware file was loaded, when firmware is loaded.
That would be good. Please send a patch to this BTS entry.
Cheers,
--
Debian GNU/Linux 3.0 is out! ( http://www.debian.org/ )
Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
[p (text/plain, attachment)]
Information forwarded to debian-bugs-dist@lists.debian.org, Herbert Xu <herbert@debian.org>:
Bug#242866; Package kernel.
(full text, mbox, link).
Acknowledgement sent to neroden@twcny.rr.com (Nathanael Nerode):
Extra info received and forwarded to list. Copy sent to Herbert Xu <herbert@debian.org>.
(full text, mbox, link).
Message #123 received at 242866@bugs.debian.org (full text, mbox, reply):
The firmware-tg3 package (full what-I-would-have-uploaded) is at http://home.twcny.rr.com/nerode/neroden/debian/, which is part of my website. Is this good enough to sponsor? -- There are none so blind as those who will not see.
Information forwarded to debian-bugs-dist@lists.debian.org, Herbert Xu <herbert@debian.org>:
Bug#242866; Package kernel.
(full text, mbox, link).
Acknowledgement sent to Martin Michlmayr <tbm@cyrius.com>:
Extra info received and forwarded to list. Copy sent to Herbert Xu <herbert@debian.org>.
(full text, mbox, link).
Message #128 received at 242866@bugs.debian.org (full text, mbox, reply):
* Nathanael Nerode <neroden@twcny.rr.com> [2004-05-16 11:36]: > The firmware-tg3 package (full what-I-would-have-uploaded) is > at http://home.twcny.rr.com/nerode/neroden/debian/, which is part of > my website. Is this good enough to sponsor? The diff is empty; this is broken. Either it's a native package and you use proper native package version numbers and everything, or it's not and the diff contains the debian change (I'd go with the latter). -- Martin Michlmayr tbm@cyrius.com
Information forwarded to debian-bugs-dist@lists.debian.org, Herbert Xu <herbert@debian.org>:
Bug#242866; Package kernel.
(full text, mbox, link).
Acknowledgement sent to Nathanael Nerode <neroden@twcny.rr.com>:
Extra info received and forwarded to list. Copy sent to Herbert Xu <herbert@debian.org>.
(full text, mbox, link).
Message #133 received at 242866@bugs.debian.org (full text, mbox, reply):
Martin Michlmayr >The diff is empty; this is broken. Thanks for catching that; apparently a mess-up in my last build. (sigh). Fixed build is up at the same location.
Information forwarded to debian-bugs-dist@lists.debian.org, Herbert Xu <herbert@debian.org>:
Bug#242866; Package kernel.
(full text, mbox, link).
Acknowledgement sent to Herbert Xu <herbert@gondor.apana.org.au>:
Extra info received and forwarded to list. Copy sent to Herbert Xu <herbert@debian.org>.
(full text, mbox, link).
Message #138 received at 242866@bugs.debian.org (full text, mbox, reply):
On Mon, May 17, 2004 at 05:17:10AM -0400, Nathanael Nerode wrote:
> Martin Michlmayr
> >The diff is empty; this is broken.
>
> Thanks for catching that; apparently a mess-up in my last build. (sigh).
>
> Fixed build is up at the same location.
Thanks.
Since I won't be in this project for much longer, perhaps Martin
could sponsor this package instead.
Martin, would you like to do this?
Cheers,
--
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
Information forwarded to debian-bugs-dist@lists.debian.org, Herbert Xu <herbert@debian.org>:
Bug#242866; Package kernel.
(full text, mbox, link).
Acknowledgement sent to Martin Michlmayr <tbm@cyrius.com>:
Extra info received and forwarded to list. Copy sent to Herbert Xu <herbert@debian.org>.
(full text, mbox, link).
Message #143 received at 242866@bugs.debian.org (full text, mbox, reply):
* Herbert Xu <herbert@gondor.apana.org.au> [2004-05-17 21:59]: > Martin, would you like to do this? I doubt it. -- Martin Michlmayr tbm@cyrius.com
Tags removed: sarge
Request was from Christoph Hellwig <hch@lst.de>
to control@bugs.debian.org.
(full text, mbox, link).
Severity set to `normal'.
Request was from Christoph Hellwig <hch@lst.de>
to control@bugs.debian.org.
(full text, mbox, link).
Tags removed: sid
Request was from Christoph Hellwig <hch@lst.de>
to control@bugs.debian.org.
(full text, mbox, link).
Tags added: upstream
Request was from Christoph Hellwig <hch@lst.de>
to control@bugs.debian.org.
(full text, mbox, link).
Disconnected #240812 from all other report(s).
Request was from Christoph Hellwig <hch@infradead.org>
to control@bugs.debian.org.
(full text, mbox, link).
Tags added: sarge
Request was from Christoph Hellwig <hch@lst.de>
to control@bugs.debian.org.
(full text, mbox, link).
Tags added: sid
Request was from Christoph Hellwig <hch@lst.de>
to control@bugs.debian.org.
(full text, mbox, link).
Tags removed: upstream
Request was from Christoph Hellwig <hch@lst.de>
to control@bugs.debian.org.
(full text, mbox, link).
Severity set to `serious'.
Request was from Christoph Hellwig <hch@lst.de>
to control@bugs.debian.org.
(full text, mbox, link).
Disconnected #242500 from all other report(s).
Request was from Christoph Hellwig <hch@lst.de>
to control@bugs.debian.org.
(full text, mbox, link).
Reply sent to Jens Schmalzing <jensen@debian.org>:
You have taken responsibility.
(full text, mbox, link).
Notification sent to Marco d'Itri <md@Linux.IT>:
Bug acknowledged by developer.
(full text, mbox, link).
Message #168 received at 242895-close@bugs.debian.org (full text, mbox, reply):
Source: kernel-source-2.6.7
Source-Version: 2.6.7-2
We believe that the bug you reported is fixed in the latest version of
kernel-source-2.6.7, which is due to be installed in the Debian FTP archive:
kernel-doc-2.6.7_2.6.7-2_all.deb
to pool/main/k/kernel-source-2.6.7/kernel-doc-2.6.7_2.6.7-2_all.deb
kernel-patch-debian-2.6.7_2.6.7-2_all.deb
to pool/main/k/kernel-source-2.6.7/kernel-patch-debian-2.6.7_2.6.7-2_all.deb
kernel-source-2.6.7_2.6.7-2.diff.gz
to pool/main/k/kernel-source-2.6.7/kernel-source-2.6.7_2.6.7-2.diff.gz
kernel-source-2.6.7_2.6.7-2.dsc
to pool/main/k/kernel-source-2.6.7/kernel-source-2.6.7_2.6.7-2.dsc
kernel-source-2.6.7_2.6.7-2_all.deb
to pool/main/k/kernel-source-2.6.7/kernel-source-2.6.7_2.6.7-2_all.deb
kernel-tree-2.6.7_2.6.7-2_all.deb
to pool/main/k/kernel-source-2.6.7/kernel-tree-2.6.7_2.6.7-2_all.deb
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to 242895@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Jens Schmalzing <jensen@debian.org> (supplier of updated kernel-source-2.6.7 package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@debian.org)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Format: 1.7
Date: Thu, 24 Jun 2004 09:56:13 +0200
Source: kernel-source-2.6.7
Binary: kernel-source-2.6.7 kernel-tree-2.6.7 kernel-patch-debian-2.6.7 kernel-doc-2.6.7
Architecture: source all
Version: 2.6.7-2
Distribution: unstable
Urgency: low
Maintainer: Debian kernel team <debian-kernel@lists.debian.org>
Changed-By: Jens Schmalzing <jensen@debian.org>
Description:
kernel-doc-2.6.7 - Linux kernel specific documentation for version 2.6.7
kernel-patch-debian-2.6.7 - Debian patches to Linux 2.6.7
kernel-source-2.6.7 - Linux kernel source for version 2.6.7 with Debian patches
kernel-tree-2.6.7 - Linux kernel tree for building prepackaged Debian kernel images
Closes: 242895
Changes:
kernel-source-2.6.7 (2.6.7-2) unstable; urgency=low
.
* Removed another tainted driver (closes: Bug#242895), and amended
remove-references-to-removed-drivers.dpatch accordingly. Actually,
this was done in the previous revision, but we forgot the changelog
entry (Christoph Hellwig, Jens Schmalzing).
.
* Renamed debian/revision back to version.Debian. Having it outside the
debian/ directory is mandatory for kernel-tree to work (Jens Schmalzing).
.
* Added the drivers-net-tg3 patch. It only adds firmware loading
support, contrary to the drivers-net-tg3-readd patch which re-adds the
whole driver. As a consequence, the Debian patch also applies to the
vanilla kernel again. Note that this patch is only kept here for
reference for the time being and will not be activated until the next
upstream release (Jens Schmalzing).
.
* Added the fs-asfs patch by Marek Szyprowski, containing support for
the Amiga Smart Filesystem. Actually, the patch was already part of
the kernel-patch-powerpc package and has been moved over from there
(Jens Schmalzing).
Files:
c82fffb0324b3670507170da3ab6ed57 841 devel optional kernel-source-2.6.7_2.6.7-2.dsc
a5a5f13ec86c84f6967efe82ccac1274 469513 devel optional kernel-source-2.6.7_2.6.7-2.diff.gz
a4e9159006993a44deeacb3c141315d3 167466 devel optional kernel-patch-debian-2.6.7_2.6.7-2_all.deb
b2c6caec412e732ce68da3bd4d1e8e0d 284032 devel optional kernel-tree-2.6.7_2.6.7-2_all.deb
4b00a8cfa7521e6617e3e0c147d877ac 34371252 devel optional kernel-source-2.6.7_2.6.7-2_all.deb
e78f5e7a399228ee9941514292d15ee5 6051710 doc optional kernel-doc-2.6.7_2.6.7-2_all.deb
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)
iD8DBQFA2qKxqYZgyBJFIH4RAtquAKDD+ss29T5TUME1UJ8ijbZ9T9ajvwCgwKI1
7BfPat7Z9h9PJGzwOvw+4qY=
=Da9e
-----END PGP SIGNATURE-----
Disconnected #242895 from all other report(s).
Request was from Christoph Hellwig <hch@lst.de>
to control@bugs.debian.org.
(full text, mbox, link).
Bug reopened, originator not changed.
Request was from Christoph Hellwig <hch@lst.de>
to control@bugs.debian.org.
(full text, mbox, link).
Tags set to: sarge-ignore
Request was from Steve Langasek <vorlon@debian.org>
to control@bugs.debian.org.
(full text, mbox, link).
Information forwarded to debian-bugs-dist@lists.debian.org, Debian Kernel Team <debian-kernel@lists.debian.org>:
Bug#242866; Package kernel.
(full text, mbox, link).
Acknowledgement sent to Sam Johnston <samjie@gmail.com>:
Extra info received and forwarded to list. Copy sent to Debian Kernel Team <debian-kernel@lists.debian.org>.
(full text, mbox, link).
Message #179 received at 242866@bugs.debian.org (full text, mbox, reply):
> > I just upgraded pound-1.8.2 to pound-1.9.4-1 on a Debian 3.1 serving > > up subversion repository. > > > > I verified that pound.cfg (unmodified) still contains these 2 entries: > > > > ExtendedHTTP 1 > > WebDAV 1 > > > > After restarting pound, I get PROFIND 501 Not Implemented errors when > > I try to access the repository. > > > > I installed pound-1.9.4-1 using apt-get (did not compile from source). > > > Well, turns out the prior version was compiled from source with > --enable-msdav added. I don't recall this ever having been the case for the Debian package (see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=242066), but it would be easy enough to verify - it's public information :) Here were my comments on the issue back in August: #242066: please enable DAV support Apparently one also needs a config setting, but to be sure I trawled through the code and found that the list of characters matched in regular expressions is more lenient with this option enabled, even when the config file setting is disabled. The functionality seems useful enough to be included in pound proper (eg for subversion support), even if without the extra characters. Ideally they would be separate runtime options. This would no doubt require an amount of work upstream though. > To fix, just use dpkg-source and then dpkg-buildpackage after modifying > ./debian/rules in the unpacked directory. I would like to support subversion by default. My understanding of the situation is this: - we enforce RFC compliance. this is good and i agree with it. - subversion should be RFC compliant - is it? - MSDAV is not RFC compliant and needs workarounds which have to be enabled at compile time - currently subversion and msdav are bundled together under the same compile time and config directives and as such I can't make a subversion friendly package without also introducing potential security issues associated with allowing MSDAV. Please let me know if these assumptions are accurate, Sam
Information forwarded to debian-bugs-dist@lists.debian.org, Debian Kernel Team <debian-kernel@lists.debian.org>:
Bug#242866; Package kernel.
(full text, mbox, link).
Acknowledgement sent to Sam Johnston <samjie@gmail.com>:
Extra info received and forwarded to list. Copy sent to Debian Kernel Team <debian-kernel@lists.debian.org>.
(full text, mbox, link).
Message #184 received at 242866@bugs.debian.org (full text, mbox, reply):
Obviously this message was not meant for you. Unfortunately it was cc'd to a list so you may receive responses (despite my following up to the list asking that they not respond). Of all the bugs to pick (242866 instead of 242066) it would have to be a kernel bug that points at the kernel team. Apologies. ---------- Forwarded message ---------- From: Sam Johnston <samjie@gmail.com> Date: Nov 2, 2005 11:55 AM Subject: Re: [Pound Mailing List] PROPFIND 501 Not Implemented - after upgrading from 1.8.2 to 1.9.4 To: pound@apsis.ch Cc: 242866@bugs.debian.org
Information forwarded to debian-bugs-dist@lists.debian.org, Debian Kernel Team <debian-kernel@lists.debian.org>:
Bug#242866; Package kernel.
(full text, mbox, link).
Acknowledgement sent to ldoolitt@recycle.lbl.gov:
Extra info received and forwarded to list. Copy sent to Debian Kernel Team <debian-kernel@lists.debian.org>.
(full text, mbox, link).
Message #189 received at 242866@bugs.debian.org (full text, mbox, reply):
[Message part 1 (text/plain, inline)]
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
[tg3.diff3 (text/plain, attachment)]
Information forwarded to debian-bugs-dist@lists.debian.org, Debian Kernel Team <debian-kernel@lists.debian.org>:
Bug#242866; Package kernel.
(full text, mbox, link).
Acknowledgement sent to Michael Olbrich <michael.olbrich@gmx.net>:
Extra info received and forwarded to list. Copy sent to Debian Kernel Team <debian-kernel@lists.debian.org>.
(full text, mbox, link).
Message #194 received at 242866@bugs.debian.org (full text, mbox, reply):
[Message part 1 (text/plain, inline)]
On Thu, Aug 17, 2006 at 08:34:57PM -0700, ldoolitt@recycle.lbl.gov wrote: > 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? I could test it. Where can I find the firmware files? I asume they were created with the original patch. I've never used a driver with external firmware before. Anything special I have to take care off? michael
[signature.asc (application/pgp-signature, inline)]
Bug reassigned from package `kernel' to `linux-2.6'.
Request was from Nathanael Nerode <neroden@fastmail.fm>
to control@bugs.debian.org.
(full text, mbox, link).
Bug reassigned from package `linux-2.6' to `linux-2.6'.
Request was from Nathanael Nerode <neroden@fastmail.fm>
to control@bugs.debian.org.
(full text, mbox, link).
Merged 242866 243022 383403.
Request was from maximilian attems <maks@sternwelten.at>
to control@bugs.debian.org.
(full text, mbox, link).
Tags removed: confirmed
Request was from maximilian attems <maks@sternwelten.at>
to control@bugs.debian.org.
(full text, mbox, link).
Information forwarded to debian-bugs-dist@lists.debian.org, Debian Kernel Team <debian-kernel@lists.debian.org>:
Bug#242866; Package linux-2.6.
(full text, mbox, link).
Acknowledgement sent to Andreas Barth <aba@not.so.argh.org>:
Extra info received and forwarded to list. Copy sent to Debian Kernel Team <debian-kernel@lists.debian.org>.
(full text, mbox, link).
Message #207 received at 242866@bugs.debian.org (full text, mbox, reply):
tags 242866 + etch-ignore tags 243022 + etch-ignore tags 383403 + etch-ignore thanks Hi, AFAICS, all items needing clean up prior to etch are cleaned up now, so tagging these bug reports etch-ignore. Cheers, Andi -- http://home.arcor.de/andreas-barth/
Tags added: etch-ignore
Request was from Andreas Barth <aba@not.so.argh.org>
to control@bugs.debian.org.
(full text, mbox, link).
Tags added: etch-ignore
Request was from Andreas Barth <aba@not.so.argh.org>
to control@bugs.debian.org.
(full text, mbox, link).
Tags added: etch-ignore
Request was from Andreas Barth <aba@not.so.argh.org>
to control@bugs.debian.org.
(full text, mbox, link).
Merged 242866 243022 383403 412950.
Request was from Steve Langasek <vorlon@debian.org>
to control@bugs.debian.org.
(full text, mbox, link).
Disconnected #412950 from all other report(s).
Request was from Sven Luther <sven.luther@wanadoo.fr>
to control@bugs.debian.org.
(full text, mbox, link).
Merged 242866 243022 383403 412950.
Request was from Steve Langasek <vorlon@debian.org>
to control@bugs.debian.org.
(full text, mbox, link).
Tags removed: etch
Request was from maximilian attems <maks@debian.org>
to control@bugs.debian.org.
(Thu, 05 Jul 2007 11:51:07 GMT) (full text, mbox, link).
Tags removed: sid
Request was from maximilian attems <maks@debian.org>
to control@bugs.debian.org.
(Thu, 05 Jul 2007 11:51:09 GMT) (full text, mbox, link).
Reply sent to maximilian attems <max@stro.at>:
You have taken responsibility.
(full text, mbox, link).
Notification sent to Marco d'Itri <md@Linux.IT>:
Bug acknowledged by developer.
(full text, mbox, link).
Message #228 received at 242866-done@bugs.debian.org (full text, mbox, reply):
Version: 2.6.24-1 The Debian Kernel Team is guilty of uploading a disjointed kernel. For the record Bastian Blank <waldi@debian.org> coded the infrastructure for the stripping and the stripping itself. The FTP masters threatened to block any future Linux uploads or alternatively would launch an NMU (non maintainer upload) stripping the affected drivers. I very strongly disagreed with that decision, but the Debian Developer made their position clear in the General Resolution 2006-007, which is binding for us. In the long run it might be a win for Free Software - history will tell. In the short term this is an annoyance for existing hardware driver support. As expected none of the vocal minority, aka Mr. Nerode and Mr. Doolittle, demanding DFSG freeness helped to work out this transition nor to cleanup the created mess. The stripping presents an additional maintenance burden. But I'm sick of the arguments. Rather then fighting I'd like to see people working together to make things work, both on the licensing side (BSD firmware) and on the code side (firmware_request()), neither is easy. I'm thus closing the bug reports regarding firmware blobs and pointing the reporters to the following wiki page in order to finaly help a bit -> http://wiki.debian.org/KernelFirmwareLicensing Possible DFSG violations in current and future linux-2.6 uploads should be filed seperately. kthxbye -- maks
Reply sent to maximilian attems <max@stro.at>:
You have taken responsibility.
(full text, mbox, link).
Reply sent to maximilian attems <max@stro.at>:
You have taken responsibility.
(full text, mbox, link).
Notification sent to Larry Doolittle <ldoolitt@recycle.lbl.gov>:
Bug acknowledged by developer.
(full text, mbox, link).
Reply sent to maximilian attems <max@stro.at>:
You have taken responsibility.
(full text, mbox, link).
Notification sent to Sven Luther <luther@debian.org>:
Bug acknowledged by developer.
(full text, mbox, link).
Bug marked as found in version 2.6.25-3 and reopened.
Request was from Markus Laire <malaire@gmail.com>
to control@bugs.debian.org.
(Thu, 15 May 2008 16:15:04 GMT) (full text, mbox, link).
Information forwarded to debian-bugs-dist@lists.debian.org, Debian Kernel Team <debian-kernel@lists.debian.org>:
Bug#242866; Package linux-2.6.
(full text, mbox, link).
Acknowledgement sent to Larry Doolittle <ldoolitt@recycle.lbl.gov>:
Extra info received and forwarded to list. Copy sent to Debian Kernel Team <debian-kernel@lists.debian.org>.
(full text, mbox, link).
Message #250 received at 242866@bugs.debian.org (full text, mbox, reply):
On Thu, May 15, 2008 at 02:57:05PM +0000, maximilian attems wrote: > The Debian Kernel Team is guilty of uploading a disjointed kernel. > For the record Bastian Blank coded the infrastructure for the > stripping and the stripping itself. > [chop] In the long run it might be a win for Free Software - > history will tell. In the short term this is an annoyance for existing > hardware driver support. I want to publicly congratulate the entire Kernel team for their efforts, both on the firmware problem, and all the other issues that come with dealing with such a large code base. The results are real and appreciated. > As expected none of the vocal minority, aka Mr. Nerode and Mr. > Doolittle, demanding DFSG freeness helped to work out this transition > nor to cleanup the created mess. IANADD, and never pretend to be. I help out as much as I can [*], and if you don't like me acting as a messenger in this case, tough noogies. I didn't write the DFSG. The real blame here lies with Linus's historical sloppiness in accepting non-DFSG-free code. I hear he has improved his process this past couple of years. - Larry Doolittle [*] and yes, that includes developing, debugging, and releasing Free Software, not just complaining. Anyone with two minutes and Google can confirm that.
Information forwarded to debian-bugs-dist@lists.debian.org, Debian Kernel Team <debian-kernel@lists.debian.org>:
Bug#242866; Package linux-2.6.
(full text, mbox, link).
Acknowledgement sent to dr@jones.dk:
Extra info received and forwarded to list. Copy sent to Debian Kernel Team <debian-kernel@lists.debian.org>.
(full text, mbox, link).
Message #255 received at 242866@bugs.debian.org (full text, mbox, reply):
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Thu, May 15, 2008 at 04:11:15PM -0700, Larry Doolittle wrote: >On Thu, May 15, 2008 at 02:57:05PM +0000, maximilian attems wrote: >> As expected none of the vocal minority, aka Mr. Nerode and Mr. >> Doolittle, demanding DFSG freeness helped to work out this transition >> nor to cleanup the created mess. > >IANADD, and never pretend to be. I help out as much as I can [*], >and if you don't like me acting as a messenger in this case, tough >noogies. I didn't write the DFSG. The real blame here lies with >Linus's historical sloppiness in accepting non-DFSG-free code. >I hear he has improved his process this past couple of years. Rest assured that max speaks on behalf of the Debian _kernel_ team, not all of Debian. With this I do not mean to say that I disagree with max' interpretation of the DFSG or dislike his hard work on maintaining the kernel - only that I (and others, I suspect) dislike his way of treating those being so kind as to help filing bugreports with our system. - Jonas Former member of the kernel team - -- * Jonas Smedegaard - idealist og Internet-arkitekt * Tlf.: +45 40843136 Website: http://dr.jones.dk/ - Enden er nær: http://www.shibumi.org/eoti.htm -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) iD8DBQFILTcLn7DbMsAkQLgRAnogAJ9P0K8vwJEeCPKTF0pl3zEJEG8rQwCfVazk EG3mMYMxCjq605jSVlXwkgY= =ay/z -----END PGP SIGNATURE-----
Information forwarded to debian-bugs-dist@lists.debian.org, Debian Kernel Team <debian-kernel@lists.debian.org>:
Bug#242866; Package linux-2.6.
(full text, mbox, link).
Acknowledgement sent to maximilian attems <maks@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Kernel Team <debian-kernel@lists.debian.org>.
(full text, mbox, link).
Message #260 received at 242866@bugs.debian.org (full text, mbox, reply):
# Automatically generated email from bts, devscripts version 2.10.27 # stop stupid ping pong games close 242866
Bug closed, send any further explanations to Marco d'Itri <md@Linux.IT>
Request was from maximilian attems <maks@debian.org>
to control@bugs.debian.org.
(Fri, 16 May 2008 08:54:11 GMT) (full text, mbox, link).
Bug reopened, originator not changed.
Request was from Sven Luther <sven@powerlinux.fr>
to control@bugs.debian.org.
(Fri, 16 May 2008 09:09:05 GMT) (full text, mbox, link).
Information forwarded to debian-bugs-dist@lists.debian.org, Debian Kernel Team <debian-kernel@lists.debian.org>:
Bug#242866; Package linux-2.6.
(full text, mbox, link).
Acknowledgement sent to Steve Langasek <vorlon@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Kernel Team <debian-kernel@lists.debian.org>.
(full text, mbox, link).
Message #269 received at 242866@bugs.debian.org (full text, mbox, reply):
On Fri, May 16, 2008 at 09:26:03AM +0200, Jonas Smedegaard wrote: > Rest assured that max speaks on behalf of the Debian _kernel_ team, not > all of Debian. No, he speaks on behalf of himself. -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. Ubuntu Developer http://www.debian.org/ slangasek@ubuntu.com vorlon@debian.org
Information forwarded to debian-bugs-dist@lists.debian.org, Debian Kernel Team <debian-kernel@lists.debian.org>:
Bug#242866; Package linux-2.6.
(full text, mbox, link).
Acknowledgement sent to Sven Luther <sven@powerlinux.fr>:
Extra info received and forwarded to list. Copy sent to Debian Kernel Team <debian-kernel@lists.debian.org>.
(full text, mbox, link).
Message #274 received at 242866@bugs.debian.org (full text, mbox, reply):
On Fri, May 16, 2008 at 02:29:10AM -0700, Steve Langasek wrote: > On Fri, May 16, 2008 at 09:26:03AM +0200, Jonas Smedegaard wrote: > > Rest assured that max speaks on behalf of the Debian _kernel_ team, not > > all of Debian. > > No, he speaks on behalf of himself. Well, together with waldi, he is the kernel team, or what is left of it. And since waldi doesn't speak much, ... Friendly, Sven Luther
Reply sent to maximilian attems <max@stro.at>:
You have taken responsibility.
(full text, mbox, link).
Notification sent to Marco d'Itri <md@Linux.IT>:
Bug acknowledged by developer.
(full text, mbox, link).
Message #279 received at 242866-done@bugs.debian.org (full text, mbox, reply):
Version: 2.6.24-1 the "offended" firmware is stripped in linux-2.6 since aboves metioned version. stop reopening that bug if you are not a MAINTAINER nor have any valid piece of info that it has *not* been dealt with. if you find additional DFSG violations report a new bug. kthxbye -- maks
Reply sent to maximilian attems <max@stro.at>:
You have taken responsibility.
(full text, mbox, link).
Reply sent to maximilian attems <max@stro.at>:
You have taken responsibility.
(full text, mbox, link).
Notification sent to Larry Doolittle <ldoolitt@recycle.lbl.gov>:
Bug acknowledged by developer.
(full text, mbox, link).
Reply sent to maximilian attems <max@stro.at>:
You have taken responsibility.
(full text, mbox, link).
Notification sent to Sven Luther <luther@debian.org>:
Bug acknowledged by developer.
(full text, mbox, link).
Information forwarded to debian-bugs-dist@lists.debian.org, Debian Kernel Team <debian-kernel@lists.debian.org>:
Bug#242866; Package linux-2.6.
(full text, mbox, link).
Acknowledgement sent to Markus Laire <malaire@gmail.com>:
Extra info received and forwarded to list. Copy sent to Debian Kernel Team <debian-kernel@lists.debian.org>.
(full text, mbox, link).
Message #299 received at 242866@bugs.debian.org (full text, mbox, reply):
found 242866 2.6.24-6 found 242866 2.6.25-3 thanks maximilian attems wrote: > Version: 2.6.24-1 > > the "offended" firmware is stripped in linux-2.6 since > aboves metioned version. > > stop reopening that bug if you are not a MAINTAINER > nor have any valid piece of info that it has *not* been > dealt with. File drivers/net/pcmcia/ositech.h (which is mentioned in first message and marked as "nondistributable" at http://wiki.debian.org/KernelFirmwareLicensing ) has *not* been dealt with yet. It is present in both 2.6.24-6 [*] and 2.6.25-3, under GPL-license and containing binary firmware. [*] This is earliest version >= 2.6.24-1 which I could find for downloading ps. I recently sent additional information to bug #383403 (merged with this bug) which shows that is has *not* been dealt with either. > if you find additional DFSG violations report a new bug. This clearly isn't additional DFSG violation. I hope you don't continue closing bugs which has *not* been dealt with yet (unless you can show that such behaviour is acceptable by Debian, which I doubt.) -- Markus Laire
Bug marked as found in version 2.6.24-6 and reopened.
Request was from Markus Laire <malaire@gmail.com>
to control@bugs.debian.org.
(Fri, 16 May 2008 16:39:55 GMT) (full text, mbox, link).
Bug marked as found in version 2.6.25-3.
Request was from Markus Laire <malaire@gmail.com>
to control@bugs.debian.org.
(Fri, 16 May 2008 16:39:56 GMT) (full text, mbox, link).
Information forwarded to debian-bugs-dist@lists.debian.org, Debian Kernel Team <debian-kernel@lists.debian.org>:
Bug#242866; Package linux-2.6.
(full text, mbox, link).
Acknowledgement sent to maximilian attems <max@stro.at>:
Extra info received and forwarded to list. Copy sent to Debian Kernel Team <debian-kernel@lists.debian.org>.
(full text, mbox, link).
Message #308 received at 242866@bugs.debian.org (full text, mbox, reply):
On Fri, May 16, 2008 at 07:17:04PM +0300, Markus Laire wrote: > > File drivers/net/pcmcia/ositech.h (which is mentioned in first message > and marked as "nondistributable" at > http://wiki.debian.org/KernelFirmwareLicensing ) has *not* been dealt > with yet. fine report a new bug against linux-2.6, we'll deal about it. > It is present in both 2.6.24-6 [*] and 2.6.25-3, under GPL-license and > containing binary firmware. > > [*] This is earliest version >= 2.6.24-1 which I could find for > downloading > > ps. I recently sent additional information to bug #383403 (merged with > this bug) which shows that is has *not* been dealt with either. > > > if you find additional DFSG violations report a new bug. > > This clearly isn't additional DFSG violation. > > I hope you don't continue closing bugs which has *not* been dealt with > yet (unless you can show that such behaviour is acceptable by > Debian, which I doubt.) stop playing with this bugs or i get your email blacklisted for the Debian bug tracking system. The bugs where about having a pruning infrastructure aka disjointing the upstream linux-2.6 which is done. file a separate report on each issue that you find and we'll analyse your findings. it be cooler if you'd asked the copyright holder of those firmware files to license them under BSD. but i guess there your involvment will not help out anymore. over and out -- maks
Information forwarded to debian-bugs-dist@lists.debian.org, Debian Kernel Team <debian-kernel@lists.debian.org>:
Bug#242866; Package linux-2.6.
(full text, mbox, link).
Acknowledgement sent to Markus Laire <malaire@gmail.com>:
Extra info received and forwarded to list. Copy sent to Debian Kernel Team <debian-kernel@lists.debian.org>.
(full text, mbox, link).
Message #313 received at 242866@bugs.debian.org (full text, mbox, reply):
maximilian attems wrote: > On Fri, May 16, 2008 at 04:39:58PM +0000, Debian Bug Tracking System > wrote: > > Processing commands for control@bugs.debian.org: > > > > > found 242866 2.6.24-6 > > Bug#242866: drivers containing firmware blobs > > Bug#243022: ymfpci_image.h: Sourceless microcode without permission > > to redistribute Bug#383403: linux-2.6: includes nondistributable > > and non-free binary firmware Bug#412950: linux-2.6: [legal] the > > current kernel tarball doesn't respect the GR 2006-007 Bug marked > > as found in version 2.6.24-6 and reopened. > > > > > found 242866 2.6.25-3 > > Bug#242866: drivers containing firmware blobs > > Bug#243022: ymfpci_image.h: Sourceless microcode without permission > > to redistribute Bug#383403: linux-2.6: includes nondistributable > > and non-free binary firmware Bug#412950: linux-2.6: [legal] the > > current kernel tarball doesn't respect the GR 2006-007 Bug marked > > as found in version 2.6.25-3. > > > > > thanks > > Stopping processing here. > > stop this game or i get you blacklisted on debian bug tracking system. I do not like such threats when I havn't done anything wrong (according to my knowledge). I was acting exactly as you requested. IMHO you said that reopening should be done only by maintainer or by someone with info that bug had not been dealt with. I'm not a maintainer, but I did have info that bug had not been dealt with, so I reopened the bug with that info. I fail to see any reason to threaten me with blacklisting. IMHO it is you who should've been threatened with blacklisting if anyone, since you have insisted on closing bugs which clearly havn't been fixed. If I did something wrong, IMHO the right response would've been to point out my mistake to me, and not to threaten with blacklisting without giving any reason for it. > it is up to the maintainer to decide if that is closed or not. If maintainer decides that bug must not be reopened anymore, that should be mentioned in the bug-report. -- Markus Laire
Bug no longer marked as found in version 2.6.25-3.
Request was from maximilian attems <maks@debian.org>
to control@bugs.debian.org.
(Fri, 16 May 2008 17:36:16 GMT) (full text, mbox, link).
Bug no longer marked as found in version 2.6.24-6.
Request was from maximilian attems <maks@debian.org>
to control@bugs.debian.org.
(Fri, 16 May 2008 17:36:18 GMT) (full text, mbox, link).
Information forwarded to debian-bugs-dist@lists.debian.org, Debian Kernel Team <debian-kernel@lists.debian.org>:
Bug#242866; Package linux-2.6.
(full text, mbox, link).
Message #320 received at 242866@bugs.debian.org (full text, mbox, reply):
On Fri, May 16, 2008 at 08:31:40PM +0300, Markus Laire wrote: > > I'm not a maintainer, but I did have info that bug had not been > dealt with, so I reopened the bug with that info. I see that you sent info, but only to the BTS control bot, which prevents it from being reflected in the bug log. I suggest you re-send it. -- Robert Millan <GPLv2> I know my rights; I want my phone call! <DRM> What use is a phone call… if you are unable to speak? (as seen on /.)
Information forwarded to debian-bugs-dist@lists.debian.org, Debian Kernel Team <debian-kernel@lists.debian.org>:
Bug#242866; Package linux-2.6.
(full text, mbox, link).
Message #323 received at 242866@bugs.debian.org (full text, mbox, reply):
On Sat, May 17, 2008 at 12:03:39AM +0200, Robert Millan wrote: > On Fri, May 16, 2008 at 08:31:40PM +0300, Markus Laire wrote: > > > > I'm not a maintainer, but I did have info that bug had not been > > dealt with, so I reopened the bug with that info. > > I see that you sent info, but only to the BTS control bot, which prevents it > from being reflected in the bug log. > > I suggest you re-send it. Btw, as for this BTS ping-pong game, Max asked that you file separate bugs instead of reopening this one. This doesn't sound like an unreasonable request, so why not just do that? It's probably helpful to the maintainers to have a separate bug for each violation. I can imagine that working with one [1] huge report while trying to actually fix stuff can be a PITA. [1] well, actually a few merged reports, but it amounts to the same. -- Robert Millan <GPLv2> I know my rights; I want my phone call! <DRM> What use is a phone call… if you are unable to speak? (as seen on /.)
Information forwarded to debian-bugs-dist@lists.debian.org, Debian Kernel Team <debian-kernel@lists.debian.org>:
Bug#242866; Package linux-2.6.
(full text, mbox, link).
Acknowledgement sent to Sven Luther <sven@powerlinux.fr>:
Extra info received and forwarded to list. Copy sent to Debian Kernel Team <debian-kernel@lists.debian.org>.
(full text, mbox, link).
Message #328 received at 242866@bugs.debian.org (full text, mbox, reply):
On Sat, May 17, 2008 at 12:30:58AM +0200, Robert Millan wrote: > On Sat, May 17, 2008 at 12:03:39AM +0200, Robert Millan wrote: > > On Fri, May 16, 2008 at 08:31:40PM +0300, Markus Laire wrote: > > > > > > I'm not a maintainer, but I did have info that bug had not been > > > dealt with, so I reopened the bug with that info. > > > > I see that you sent info, but only to the BTS control bot, which prevents it > > from being reflected in the bug log. > > > > I suggest you re-send it. > > Btw, as for this BTS ping-pong game, Max asked that you file separate bugs > instead of reopening this one. This doesn't sound like an unreasonable > request, so why not just do that? Robert, i don't really see the reason why this should be done. > It's probably helpful to the maintainers to have a separate bug for each > violation. I can imagine that working with one [1] huge report while trying > to actually fix stuff can be a PITA. Well, i suppose that callign the reporter stupid, as max did is not helpful also. Nor threatenenign me to be blacklisted from the BTS. Max should really calm down, i know he is not agreeing with the firmware split, but this doesn't allow him to be impolite and threatening. I suppose the right way would be to split the bug report, and retitle it for each actual violation case, but hey ... > [1] well, actually a few merged reports, but it amounts to the same. Sadly, Sven Luther
Information forwarded to debian-bugs-dist@lists.debian.org, Debian Kernel Team <debian-kernel@lists.debian.org>:
Bug#242866; Package linux-2.6.
(full text, mbox, link).
Message #331 received at 242866@bugs.debian.org (full text, mbox, reply):
On Sat, May 17, 2008 at 09:13:34AM +0200, Sven Luther wrote: > On Sat, May 17, 2008 at 12:30:58AM +0200, Robert Millan wrote: > > On Sat, May 17, 2008 at 12:03:39AM +0200, Robert Millan wrote: > > > On Fri, May 16, 2008 at 08:31:40PM +0300, Markus Laire wrote: > > > > > > > > I'm not a maintainer, but I did have info that bug had not been > > > > dealt with, so I reopened the bug with that info. > > > > > > I see that you sent info, but only to the BTS control bot, which prevents it > > > from being reflected in the bug log. > > > > > > I suggest you re-send it. > > > > Btw, as for this BTS ping-pong game, Max asked that you file separate bugs > > instead of reopening this one. This doesn't sound like an unreasonable > > request, so why not just do that? > > Robert, i don't really see the reason why this should be done. But the maintainer does, and for a change this request doesn't conflict with the Social Contract. Why are we discussing on whether we prefer one bug or multiple bugs when we have actual SC violations right now that need fixing? > > It's probably helpful to the maintainers to have a separate bug for each > > violation. I can imagine that working with one [1] huge report while trying > > to actually fix stuff can be a PITA. > > Well, i suppose that callign the reporter stupid, as max did is not > helpful also. Nor threatenenign me to be blacklisted from the BTS. Max > should really calm down, i know he is not agreeing with the firmware > split, but this doesn't allow him to be impolite and threatening. IIRC he was threatening Markus, not you. Anyway, I suppose by now he realises that was completely inappropiate, and actually counterproductive. Now can we please get this over with? -- Robert Millan <GPLv2> I know my rights; I want my phone call! <DRM> What use is a phone call… if you are unable to speak? (as seen on /.)
Information forwarded to debian-bugs-dist@lists.debian.org, Debian Kernel Team <debian-kernel@lists.debian.org>:
Bug#242866; Package linux-2.6.
(full text, mbox, link).
Acknowledgement sent to Sven Luther <sven@powerlinux.fr>:
Extra info received and forwarded to list. Copy sent to Debian Kernel Team <debian-kernel@lists.debian.org>.
(full text, mbox, link).
Message #336 received at 242866@bugs.debian.org (full text, mbox, reply):
On Sat, May 17, 2008 at 11:21:18AM +0200, Robert Millan wrote: > On Sat, May 17, 2008 at 09:13:34AM +0200, Sven Luther wrote: > > On Sat, May 17, 2008 at 12:30:58AM +0200, Robert Millan wrote: > > > On Sat, May 17, 2008 at 12:03:39AM +0200, Robert Millan wrote: > > > > On Fri, May 16, 2008 at 08:31:40PM +0300, Markus Laire wrote: > > > > > > > > > > I'm not a maintainer, but I did have info that bug had not been > > > > > dealt with, so I reopened the bug with that info. > > > > > > > > I see that you sent info, but only to the BTS control bot, which prevents it > > > > from being reflected in the bug log. > > > > > > > > I suggest you re-send it. > > > > > > Btw, as for this BTS ping-pong game, Max asked that you file separate bugs > > > instead of reopening this one. This doesn't sound like an unreasonable > > > request, so why not just do that? > > > > Robert, i don't really see the reason why this should be done. > > But the maintainer does, and for a change this request doesn't conflict with > the Social Contract. Why are we discussing on whether we prefer one bug or > multiple bugs when we have actual SC violations right now that need fixing? What does it gain to close the bug that contains the history of the problem ? > > > It's probably helpful to the maintainers to have a separate bug for each > > > violation. I can imagine that working with one [1] huge report while trying > > > to actually fix stuff can be a PITA. > > > > Well, i suppose that callign the reporter stupid, as max did is not > > helpful also. Nor threatenenign me to be blacklisted from the BTS. Max > > should really calm down, i know he is not agreeing with the firmware > > split, but this doesn't allow him to be impolite and threatening. > > IIRC he was threatening Markus, not you. 15:22:53 < maks> svenl: don't fuck with the bts or get your email blacklisted kthx > Anyway, I suppose by now he realises > that was completely inappropiate, and actually counterproductive. Nice of you to have such good faith in the socialness of the members of the kernel team. I have learned not to have such faith myself though. > Now can we please get this over with? fine with me, but then, as always, the other side will never forget, and issues will not improve until they recognize that their behaviour is not appropriate, which i have some serious doubt they have the strength of character to do. Sadly, Sven Luther
Information forwarded to debian-bugs-dist@lists.debian.org, Debian Kernel Team <debian-kernel@lists.debian.org>:
Bug#242866; Package linux-2.6.
(full text, mbox, link).
Message #339 received at 242866@bugs.debian.org (full text, mbox, reply):
On Sat, May 17, 2008 at 11:33:03AM +0200, Sven Luther wrote: > > > > But the maintainer does, and for a change this request doesn't conflict with > > the Social Contract. Why are we discussing on whether we prefer one bug or > > multiple bugs when we have actual SC violations right now that need fixing? > > What does it gain to close the bug that contains the history of the > problem ? My guess is that this makes it easier to track the problems, by closing stuff in changelog when a partial fix is done. -- Robert Millan <GPLv2> I know my rights; I want my phone call! <DRM> What use is a phone call… if you are unable to speak? (as seen on /.)
Disconnected #243022 from all other report(s).
Request was from Nathanael Nerode <neroden@fastmail.fm>
to control@bugs.debian.org.
(Mon, 03 Nov 2008 14:03:14 GMT) (full text, mbox, link).
Information forwarded
to debian-bugs-dist@lists.debian.org, Debian Kernel Team <debian-kernel@lists.debian.org>:
Bug#242866; Package linux-2.6.
(Sun, 22 Mar 2009 23:30:02 GMT) (full text, mbox, link).
Acknowledgement sent
to Rudy Godoy Guillén <rudy@stone-head.org>:
Extra info received and forwarded to list. Copy sent to Debian Kernel Team <debian-kernel@lists.debian.org>.
(Sun, 22 Mar 2009 23:30:03 GMT) (full text, mbox, link).
Message #346 received at 242866@bugs.debian.org (full text, mbox, reply):
Package: linux-image-2.6.26-1-686 Version: 2.6.26-13 Followup-For: Bug #242866 After upgrading to latest kernel I'm unable to load alsa's ymfpci firmware anymore. I get the following error: [ 14.696499] firmware: requesting yamaha/ds1e_ctrl.fw [ 16.012014] AC'97 0 does not respond - RESET [ 16.020009] AC'97 0 access is not valid [0x0], removing mixer. [ 16.020453] ACPI: PCI interrupt for device 0000:00:06.0 disabled [ 16.020499] Yamaha DS-1 PCI: probe of 0000:00:06.0 failed with error -5 [ 16.862560] Filesystem "dm-0": Disabling barriers, not supported by the underlying device thanks -- Package-specific info: ** Version: Linux version 2.6.26-1-686 (Debian 2.6.26-13) (waldi@debian.org) (gcc version 4.1.3 20080704 (prerelease) (Debian 4.1.2-24)) #1 SMP Sat Jan 10 18:29:31 UTC 2009 ** Command line: root=/dev/mapper/Sys-root ro ** Tainted: P (1) ** Kernel log: [ 5.239613] ACPI: PCI Interrupt 0000:00:0f.1[A] -> GSI 20 (level, low) -> IRQ 20 [ 5.239635] VP_IDE: not 100% native mode: will probe irqs later [ 5.239661] VP_IDE: VIA vt8237 (rev 00) IDE UDMA133 controller on pci0000:00:0f.1 [ 5.239678] ide0: BM-DMA at 0xfc00-0xfc07 [ 5.239691] ide1: BM-DMA at 0xfc08-0xfc0f [ 5.239697] Probing IDE interface ide0... [ 5.528032] usb 1-1: device not accepting address 2, error -71 [ 5.584043] hub 1-0:1.0: unable to enumerate USB device on port 1 [ 5.808097] Probing IDE interface ide1... [ 6.672150] hdc: HL-DT-ST GCE-8400B, ATAPI CD/DVD-ROM drive [ 7.088015] usb 1-1: new low speed USB device using uhci_hcd and address 4 [ 7.252004] usb 1-1: configuration #1 chosen from 1 choice [ 7.281158] usb 1-1: New USB device found, idVendor=0458, idProduct=001a [ 7.281169] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [ 7.281175] usb 1-1: Product: PowerScroll EYE [ 7.281178] usb 1-1: Manufacturer: KYE [ 7.307340] usbcore: registered new interface driver hiddev [ 7.324016] input: KYE PowerScroll EYE as /class/input/input1 [ 7.324016] input,hidraw0: USB HID v1.10 Mouse [KYE PowerScroll EYE] on usb-0000:00:10.0-1 [ 7.324016] usbcore: registered new interface driver usbhid [ 7.324016] usbhid: v2.6:USB HID core driver [ 7.456109] hdd: CREATIVE CD5250E, ATAPI CD/DVD-ROM drive [ 7.492004] hdc: host max PIO5 wanted PIO255(auto-tune) selected PIO4 [ 7.492004] hdc: MWDMA2 mode selected [ 7.492004] hdd: host max PIO5 wanted PIO255(auto-tune) selected PIO4 [ 7.492004] hdd: MWDMA2 mode selected [ 7.492004] ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 [ 7.492004] ide1 at 0x170-0x177,0x376 on irq 15 [ 7.583604] hdc: ATAPI 40X CD-ROM CD-R/RW drive, 8192kB Cache [ 7.583620] Uniform CD-ROM driver Revision: 3.20 [ 7.587709] hdd: ATAPI 52X CD-ROM drive, 128kB Cache [ 7.798340] device-mapper: uevent: version 1.0.3 [ 7.800381] device-mapper: ioctl: 4.13.0-ioctl (2007-10-18) initialised: dm-devel@redhat.com [ 8.345289] PM: Starting manual resume from disk [ 8.438244] SGI XFS with ACLs, security attributes, realtime, large block numbers, no debug enabled [ 8.440782] SGI XFS Quota Management subsystem [ 8.443762] Filesystem "dm-0": Disabling barriers, not supported by the underlying device [ 8.443996] XFS mounting filesystem dm-0 [ 8.476029] Ending clean XFS mount for filesystem: dm-0 [ 10.276035] udevd version 125 started [ 12.521288] pci_hotplug: PCI Hot Plug PCI Core version: 0.5 [ 12.532062] shpchp: Standard Hot Plug PCI Controller Driver version: 0.4 [ 12.542491] Linux agpgart interface v0.103 [ 12.545199] agpgart: Detected VIA KT400/KT400A/KT600 chipset [ 12.550660] agpgart: AGP aperture is 64M @ 0xe0000000 [ 12.801986] ACPI: PCI Interrupt 0000:00:06.0[A] -> GSI 17 (level, low) -> IRQ 17 [ 12.804039] firmware: requesting yamaha/ds1_dsp.fw [ 12.946033] input: Power Button (FF) as /class/input/input2 [ 12.972603] ACPI: Power Button (FF) [PWRF] [ 12.972749] input: Power Button (CM) as /class/input/input3 [ 13.000183] ACPI: Power Button (CM) [PWRB] [ 13.000363] input: Sleep Button (CM) as /class/input/input4 [ 13.029894] ACPI: Sleep Button (CM) [SLPB] [ 14.228179] input: PC Speaker as /class/input/input5 [ 14.613397] parport_pc 00:0a: reported by Plug and Play ACPI [ 14.613499] parport0: PC-style at 0x378 (0x778), irq 7 [PCSPP,TRISTATE,EPP] [ 14.696499] firmware: requesting yamaha/ds1e_ctrl.fw [ 16.012014] AC'97 0 does not respond - RESET [ 16.020009] AC'97 0 access is not valid [0x0], removing mixer. [ 16.020453] ACPI: PCI interrupt for device 0000:00:06.0 disabled [ 16.020499] Yamaha DS-1 PCI: probe of 0000:00:06.0 failed with error -5 [ 16.862560] Filesystem "dm-0": Disabling barriers, not supported by the underlying device [ 18.114818] ide_generic: please use "probe_mask=0x3f" module parameter for probing all legacy ISA IDE ports [ 18.114838] ide_generic: I/O resource 0x1F0-0x1F7 not free. [ 18.114844] ide_generic: I/O resource 0x170-0x177 not free. [ 20.176139] fuse init (API version 7.9) [ 20.445773] kjournald starting. Commit interval 5 seconds [ 20.446009] EXT3 FS on sda1, internal journal [ 20.446019] EXT3-fs: mounted filesystem with ordered data mode. [ 20.452576] Filesystem "dm-4": Disabling barriers, not supported by the underlying device [ 20.463433] XFS mounting filesystem dm-4 [ 20.544831] Ending clean XFS mount for filesystem: dm-4 [ 20.556098] Filesystem "dm-6": Disabling barriers, not supported by the underlying device [ 20.566310] XFS mounting filesystem dm-6 [ 20.632004] Ending clean XFS mount for filesystem: dm-6 [ 20.636005] Filesystem "dm-2": Disabling barriers, not supported by the underlying device [ 20.636005] XFS mounting filesystem dm-2 [ 20.758424] Ending clean XFS mount for filesystem: dm-2 [ 20.758424] Filesystem "dm-3": Disabling barriers, not supported by the underlying device [ 20.758424] XFS mounting filesystem dm-3 [ 20.828620] Ending clean XFS mount for filesystem: dm-3 [ 20.828620] Filesystem "dm-5": Disabling barriers, not supported by the underlying device [ 20.828620] XFS mounting filesystem dm-5 [ 20.914517] Ending clean XFS mount for filesystem: dm-5 [ 21.204317] Adding 815096k swap on /dev/mapper/Sys-Swap. Priority:-1 extents:1 across:815096k [ 25.123862] NET: Registered protocol family 10 [ 25.124665] lo: Disabled Privacy Extensions [ 25.126253] ADDRCONF(NETDEV_UP): eth0: link is not ready [ 26.816175] b44: eth0: Link is up at 100 Mbps, full duplex. [ 26.816186] b44: eth0: Flow control is off for TX and off for RX. [ 26.816307] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 31.740621] lp0: using parport0 (interrupt-driven). [ 31.781057] ppdev: user-space parallel port driver [ 37.032036] eth0: no IPv6 routers present [ 40.597723] nvidia: module license 'NVIDIA' taints kernel. [ 40.859112] ACPI: PCI Interrupt 0000:01:00.0[A] -> GSI 16 (level, low) -> IRQ 16 [ 40.859950] NVRM: loading NVIDIA UNIX x86 Kernel Module 173.14.09 Wed Jun 4 23:43:17 PDT 2008 [ 41.009917] agpgart: Found an AGP 3.5 compliant device at 0000:00:00.0. [ 41.009945] agpgart: Putting AGP V3 device at 0000:00:00.0 into 8x mode [ 41.010011] agpgart: Putting AGP V3 device at 0000:01:00.0 into 8x mode ** Loaded modules: Module Size Used by nvidia 7086148 24 ppdev 6468 0 lp 8164 0 ipv6 235300 14 ext3 105512 1 jbd 39444 1 ext3 mbcache 7108 1 ext3 fuse 42908 1 psmouse 32336 0 ide_generic 2464 0 [permanent] ide_disk 10496 0 parport_pc 22500 1 parport 30988 3 ppdev,lp,parport_pc i2c_viapro 6836 0 i2c_core 19828 2 nvidia,i2c_viapro pcspkr 2432 0 button 6096 0 snd_ymfpci 28224 0 gameport 10700 1 snd_ymfpci snd_ac97_codec 88484 1 snd_ymfpci ac97_bus 1728 1 snd_ac97_codec snd_pcm_oss 32800 0 snd_mixer_oss 12320 1 snd_pcm_oss snd_pcm 62596 3 snd_ymfpci,snd_ac97_codec,snd_pcm_oss snd_opl3_lib 9344 1 snd_ymfpci snd_timer 17800 3 snd_ymfpci,snd_pcm,snd_opl3_lib snd_hwdep 6212 1 snd_opl3_lib snd_page_alloc 7816 2 snd_ymfpci,snd_pcm snd_mpu401_uart 6368 1 snd_ymfpci via_agp 7744 1 agpgart 28776 2 nvidia,via_agp shpchp 25528 0 pci_hotplug 23460 1 shpchp snd_rawmidi 18496 1 snd_mpu401_uart snd_seq_device 6380 2 snd_opl3_lib,snd_rawmidi snd 45604 11 snd_ymfpci,snd_ac97_codec,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_opl3_lib,snd_timer,snd_hwdep,snd_mpu401_uart,snd_rawmidi,snd_seq_device soundcore 6368 1 snd joydev 8480 0 evdev 8000 4 xfs 458072 6 dm_mirror 15104 0 dm_log 8452 1 dm_mirror dm_snapshot 14340 0 dm_mod 46184 18 dm_mirror,dm_log,dm_snapshot ide_cd_mod 27652 0 cdrom 30176 1 ide_cd_mod ata_generic 4676 0 usbhid 35904 0 hid 33184 1 usbhid ff_memless 4392 1 usbhid via82cxxx 6948 0 [permanent] sd_mod 22200 4 floppy 47716 0 ehci_hcd 28428 0 uhci_hcd 18672 0 usbcore 118160 4 usbhid,ehci_hcd,uhci_hcd ide_pci_generic 3908 0 [permanent] ide_core 96168 5 ide_generic,ide_disk,ide_cd_mod,via82cxxx,ide_pci_generic sata_via 6980 3 libata 140384 2 ata_generic,sata_via scsi_mod 129356 2 sd_mod,libata dock 8304 1 libata b44 22288 0 ssb 33476 1 b44 pcmcia 29548 1 ssb pcmcia_core 31892 2 ssb,pcmcia firmware_class 6816 2 snd_ymfpci,pcmcia mii 4896 1 b44 thermal 15228 0 processor 32576 1 thermal fan 4164 0 thermal_sys 10856 3 thermal,processor,fan ** PCI devices: 00:00.0 Host bridge [0600]: VIA Technologies, Inc. VT8377 [KT400/KT600 AGP] Host Bridge [1106:3189] (rev 80) Subsystem: VIA Technologies, Inc. KT4AV motherboard (KT400A) [1106:0000] Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx- Latency: 8 Region 0: Memory at e0000000 (32-bit, prefetchable) [size=64M] Capabilities: <access denied> Kernel driver in use: agpgart-via Kernel modules: via-agp 00:01.0 PCI bridge [0604]: VIA Technologies, Inc. VT8237/VX700 PCI Bridge [1106:b198] (prog-if 00 [Normal decode]) Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx- Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort+ >SERR- <PERR- INTx- Latency: 0 Bus: primary=00, secondary=01, subordinate=01, sec-latency=0 Memory behind bridge: dde00000-dfefffff Prefetchable memory behind bridge: cdd00000-ddcfffff Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR- BridgeCtl: Parity- SERR- NoISA+ VGA+ MAbort- >Reset- FastB2B- PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- Capabilities: <access denied> Kernel modules: shpchp 00:06.0 Multimedia audio controller [0401]: Yamaha Corporation YMF-754 [DS-1E Audio Controller] [1073:0012] Subsystem: Yamaha Corporation DS-XG PCI Audio Codec [1073:0012] Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Interrupt: pin A routed to IRQ 17 Region 0: Memory at dfff0000 (32-bit, non-prefetchable) [size=32K] Region 1: I/O ports at d400 [size=64] Region 2: I/O ports at d000 [size=4] Capabilities: <access denied> Kernel modules: snd-ymfpci 00:0b.0 Ethernet controller [0200]: Broadcom Corporation BCM4401 100Base-T [14e4:4401] (rev 01) Subsystem: Micro-Star International Co., Ltd. Device [1462:590c] Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 32 Interrupt: pin A routed to IRQ 18 Region 0: Memory at dfffa000 (32-bit, non-prefetchable) [size=8K] Capabilities: <access denied> Kernel driver in use: b44 Kernel modules: b44 00:0f.0 RAID bus controller [0104]: VIA Technologies, Inc. VIA VT6420 SATA RAID Controller [1106:3149] (rev 80) Subsystem: Micro-Star International Co., Ltd. KT6 Delta-FIS2R (MS-6590) [1462:5901] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 32 Interrupt: pin A routed to IRQ 20 Region 0: I/O ports at ec00 [size=8] Region 1: I/O ports at e800 [size=4] Region 2: I/O ports at e400 [size=8] Region 3: I/O ports at e000 [size=4] Region 4: I/O ports at dc00 [size=16] Region 5: I/O ports at d800 [size=256] Capabilities: <access denied> Kernel driver in use: sata_via Kernel modules: sata_via 00:0f.1 IDE interface [0101]: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE [1106:0571] (rev 06) (prog-if 8a [Master SecP PriP]) Subsystem: Micro-Star International Co., Ltd. KT6 Delta-FIS2R (MS-6590) [1462:5901] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 32 Interrupt: pin A routed to IRQ 20 Region 0: [virtual] Memory at 000001f0 (32-bit, non-prefetchable) [size=8] Region 1: [virtual] Memory at 000003f0 (type 3, non-prefetchable) [size=1] Region 2: [virtual] Memory at 00000170 (32-bit, non-prefetchable) [size=8] Region 3: [virtual] Memory at 00000370 (type 3, non-prefetchable) [size=1] Region 4: I/O ports at fc00 [size=16] Capabilities: <access denied> Kernel driver in use: VIA_IDE Kernel modules: via82cxxx 00:10.0 USB Controller [0c03]: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller [1106:3038] (rev 81) (prog-if 00 [UHCI]) Subsystem: Micro-Star International Co., Ltd. KT6 Delta-FIS2R (MS-6590) [1462:5901] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 32, Cache Line Size: 32 bytes Interrupt: pin A routed to IRQ 21 Region 4: I/O ports at c000 [size=32] Capabilities: <access denied> Kernel driver in use: uhci_hcd Kernel modules: uhci-hcd 00:10.1 USB Controller [0c03]: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller [1106:3038] (rev 81) (prog-if 00 [UHCI]) Subsystem: Micro-Star International Co., Ltd. KT6 Delta-FIS2R (MS-6590) [1462:5901] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 32, Cache Line Size: 32 bytes Interrupt: pin A routed to IRQ 21 Region 4: I/O ports at c400 [size=32] Capabilities: <access denied> Kernel driver in use: uhci_hcd Kernel modules: uhci-hcd 00:10.2 USB Controller [0c03]: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller [1106:3038] (rev 81) (prog-if 00 [UHCI]) Subsystem: Micro-Star International Co., Ltd. KT6 Delta-FIS2R (MS-6590) [1462:5901] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 32, Cache Line Size: 32 bytes Interrupt: pin B routed to IRQ 21 Region 4: I/O ports at c800 [size=32] Capabilities: <access denied> Kernel driver in use: uhci_hcd Kernel modules: uhci-hcd 00:10.3 USB Controller [0c03]: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller [1106:3038] (rev 81) (prog-if 00 [UHCI]) Subsystem: Micro-Star International Co., Ltd. KT6 Delta-FIS2R (MS-6590) [1462:5901] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 32, Cache Line Size: 32 bytes Interrupt: pin B routed to IRQ 21 Region 4: I/O ports at cc00 [size=32] Capabilities: <access denied> Kernel driver in use: uhci_hcd Kernel modules: uhci-hcd 00:10.4 USB Controller [0c03]: VIA Technologies, Inc. USB 2.0 [1106:3104] (rev 86) (prog-if 20 [EHCI]) Subsystem: Micro-Star International Co., Ltd. KT6 Delta-FIS2R (MS-6590) [1462:5901] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 32, Cache Line Size: 64 bytes Interrupt: pin C routed to IRQ 21 Region 0: Memory at dfff9e00 (32-bit, non-prefetchable) [size=256] Capabilities: <access denied> Kernel driver in use: ehci_hcd Kernel modules: ehci-hcd 00:11.0 ISA bridge [0601]: VIA Technologies, Inc. VT8237 ISA bridge [KT600/K8T800/K8T890 South] [1106:3227] Subsystem: VIA Technologies, Inc. Device [1106:0000] Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping+ SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Capabilities: <access denied> Kernel modules: i2c-viapro 01:00.0 VGA compatible controller [0300]: nVidia Corporation NV34 [GeForce FX 5200] [10de:0322] (rev a1) (prog-if 00 [VGA controller]) Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 248 (1250ns min, 250ns max) Interrupt: pin A routed to IRQ 16 Region 0: Memory at de000000 (32-bit, non-prefetchable) [size=16M] Region 1: Memory at d0000000 (32-bit, prefetchable) [size=128M] [virtual] Expansion ROM at dfee0000 [disabled] [size=128K] Capabilities: <access denied> Kernel driver in use: nvidia Kernel modules: nvidiafb, nvidia -- System Information: Debian Release: squeeze/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: i386 (i686) Kernel: Linux 2.6.26-1-686 (SMP w/1 CPU core) Locale: LANG=es_PE.UTF-8, LC_CTYPE=es_PE.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages linux-image-2.6.26-1-686 depends on: ii debconf [debconf-2.0] 1.5.25 Debian configuration management sy ii initramfs-tools [linux-initra 0.93 tools for generating an initramfs ii module-init-tools 3.4-1 tools for managing Linux kernel mo ii yaird [linux-initramfs-tool] 0.0.13-5 Yet Another mkInitRD Versions of packages linux-image-2.6.26-1-686 recommends: ii libc6-i686 2.9-6 GNU C Library: Shared libraries [i Versions of packages linux-image-2.6.26-1-686 suggests: ii grub 0.97-47lenny2 GRand Unified Bootloader (Legacy v pn linux-doc-2.6.26 <none> (no description available) -- debconf information: linux-image-2.6.26-1-686/preinst/abort-overwrite-2.6.26-1-686: linux-image-2.6.26-1-686/postinst/bootloader-error-2.6.26-1-686: linux-image-2.6.26-1-686/postinst/depmod-error-initrd-2.6.26-1-686: false linux-image-2.6.26-1-686/postinst/old-system-map-link-2.6.26-1-686: true linux-image-2.6.26-1-686/prerm/would-invalidate-boot-loader-2.6.26-1-686: true linux-image-2.6.26-1-686/preinst/elilo-initrd-2.6.26-1-686: true linux-image-2.6.26-1-686/postinst/kimage-is-a-directory: linux-image-2.6.26-1-686/postinst/old-dir-initrd-link-2.6.26-1-686: true linux-image-2.6.26-1-686/postinst/create-kimage-link-2.6.26-1-686: true linux-image-2.6.26-1-686/preinst/overwriting-modules-2.6.26-1-686: true linux-image-2.6.26-1-686/postinst/depmod-error-2.6.26-1-686: false shared/kernel-image/really-run-bootloader: true linux-image-2.6.26-1-686/prerm/removing-running-kernel-2.6.26-1-686: true linux-image-2.6.26-1-686/preinst/abort-install-2.6.26-1-686: linux-image-2.6.26-1-686/preinst/lilo-has-ramdisk: linux-image-2.6.26-1-686/preinst/bootloader-initrd-2.6.26-1-686: true linux-image-2.6.26-1-686/preinst/lilo-initrd-2.6.26-1-686: true linux-image-2.6.26-1-686/postinst/old-initrd-link-2.6.26-1-686: true linux-image-2.6.26-1-686/postinst/bootloader-test-error-2.6.26-1-686: linux-image-2.6.26-1-686/preinst/failed-to-move-modules-2.6.26-1-686: linux-image-2.6.26-1-686/preinst/initrd-2.6.26-1-686:
Reply sent
to maximilian attems <max@stro.at>:
You have taken responsibility.
(Wed, 25 Mar 2009 11:42:03 GMT) (full text, mbox, link).
Notification sent
to Marco d'Itri <md@Linux.IT>:
Bug acknowledged by developer.
(Wed, 25 Mar 2009 11:42:03 GMT) (full text, mbox, link).
Message #351 received at 242866-done@bugs.debian.org (full text, mbox, reply):
Version: 2.6.29-1 allmost all drivers are now using request_firmware(), just one or two that aren't, but are to be switched are still disabled. woow closing this, let's be happy we wont have a new firmware dance on squeeze release. -- maks
Reply sent
to maximilian attems <max@stro.at>:
You have taken responsibility.
(Wed, 25 Mar 2009 11:42:03 GMT) (full text, mbox, link).
Notification sent
to Larry Doolittle <ldoolitt@recycle.lbl.gov>:
Bug acknowledged by developer.
(Wed, 25 Mar 2009 11:42:03 GMT) (full text, mbox, link).
Reply sent
to maximilian attems <max@stro.at>:
You have taken responsibility.
(Wed, 25 Mar 2009 11:42:04 GMT) (full text, mbox, link).
Notification sent
to Sven Luther <luther@debian.org>:
Bug acknowledged by developer.
(Wed, 25 Mar 2009 11:42:04 GMT) (full text, mbox, link).
Bug archived.
Request was from Debbugs Internal Request <owner@bugs.debian.org>
to internal_control@bugs.debian.org.
(Mon, 07 Mar 2011 07:38:02 GMT) (full text, mbox, link).
Send a report that this bug log contains spam.
Debbugs is free software and licensed under the terms of the GNU Public License version 2. The current version can be obtained from https://bugs.debian.org/debbugs-source/.
Copyright © 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson, 2005-2017 Don Armstrong, and many other contributors.