You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(79) |
Aug
(27) |
Sep
(64) |
Oct
(202) |
Nov
(31) |
Dec
(59) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(125) |
Feb
(173) |
Mar
(13) |
Apr
(140) |
May
(75) |
Jun
(1) |
Jul
(37) |
Aug
(14) |
Sep
|
Oct
(20) |
Nov
(9) |
Dec
(2) |
2003 |
Jan
(51) |
Feb
(12) |
Mar
(18) |
Apr
(24) |
May
(1) |
Jun
|
Jul
|
Aug
(72) |
Sep
(12) |
Oct
(18) |
Nov
(60) |
Dec
(26) |
2004 |
Jan
(1) |
Feb
(40) |
Mar
(3) |
Apr
(3) |
May
|
Jun
(1) |
Jul
(4) |
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
(1) |
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
(1) |
Dec
(5) |
2006 |
Jan
(13) |
Feb
(5) |
Mar
(8) |
Apr
(13) |
May
(7) |
Jun
(6) |
Jul
(10) |
Aug
(6) |
Sep
(6) |
Oct
(35) |
Nov
(20) |
Dec
(10) |
2007 |
Jan
(13) |
Feb
(9) |
Mar
(2) |
Apr
(1) |
May
(1) |
Jun
(2) |
Jul
(2) |
Aug
(3) |
Sep
(1) |
Oct
|
Nov
(1) |
Dec
(1) |
2008 |
Jan
|
Feb
|
Mar
(1) |
Apr
(4) |
May
(1) |
Jun
|
Jul
|
Aug
(2) |
Sep
(1) |
Oct
|
Nov
|
Dec
|
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(54) |
Jun
(78) |
Jul
(35) |
Aug
(21) |
Sep
(21) |
Oct
(29) |
Nov
(10) |
Dec
(5) |
2010 |
Jan
|
Feb
|
Mar
(26) |
Apr
(55) |
May
(73) |
Jun
(63) |
Jul
(38) |
Aug
(39) |
Sep
(19) |
Oct
(2) |
Nov
(1) |
Dec
(1) |
2011 |
Jan
(2) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
From: zhaohj<wor...@to...> - 2005-05-11 06:32:21
|
aGksDQoJSSdtIHF1aXRlIG5ldyB0byBCTE9CLg0KCUkgYnVpbGQgdGhlIEJMT0IoMi4wLjQpIHdp dGggdGhlIGJsb3cgVFdPIHRvb2NoYWluIGFuZCBnb3QgdGhlIHNhbWUgZXJyb3IuDQoJDQoJVG9v bGNoYWluMToNCgliaW51dGlscy0yLjExLjIudGFyLmd6OwlnY2MtMi45NS4zLnRhci5nejsJZ2xp YmMtMi4yLjIudGFyLmd6OwlnbGliYy1saW51eHRocmVhZHMtMi4yLjIudGFyLmd6DQoJbGludXgt Mi40LjE3LnRhci5nejsJcGF0Y2gtMi40LjE3LXJtazQuZ3ooSSBidWlsZCBhIHRvb2xjaGFpbiBm cm9tIHNjcmF0Y2gpDQoNCglUb29sY2hpYWluMjoNCgllbGRrIDMuMS4xICh0b29sY2hhaW4gb2Yg dS1ib290KQ0KDQoJSSB1c2UgdGhlIGNvbW1hbmQ6DQoJIg0KCWV4cG9ydCBDQz1hcm0tbGludXgt Z2NjDQoJZXhwb3J0IE9CSkNPUFk9YXJtLWxpbnV4LW9iamNvcHkNCgkuL2NvbmZpZ3VyZSAtLXdp dGgtYm9hcmQ9YXNzYWJldCBcDQoJCQkJCSAtLXdpdGgtbGludXgtcHJlZml4PS9yb290L1NvdXJj ZS9saW51eCBcDQoJCQkJCWFybS11bmtub3duLWxpbnV4LWdudQ0KCSINCglJIG1hZGUgTk8gY2hh bmdlIHRvIHRoZSBCTEJPIHNvdXJjZSBjb2RlISEhDQoJSSBnb3QgdGhlIHNhbWUgRVJST1I6DQoJ Ig0KICAJY2xvY2suYzogSW4gZnVuY3Rpb24gYEdldEhleFZhbHVlJzoNCgljbG9jay5jOjgxOiB3 YXJuaW5nOiBjb25jYXRlbmF0aW9uIG9mIHN0cmluZyBsaXRlcmFscyB3aXRoIF9fRlVOQ1RJT05f XyBpcyBkZXByZWNhdGVkDQoJY2xvY2suYzo5MTogd2FybmluZzogY29uY2F0ZW5hdGlvbiBvZiBz dHJpbmcgbGl0ZXJhbHMgd2l0aCBfX0ZVTkNUSU9OX18gaXMgZGVwcmVjYXRlZA0KCWNsb2NrLmM6 MTAxOiB3YXJuaW5nOiBjb25jYXRlbmF0aW9uIG9mIHN0cmluZyBsaXRlcmFscyB3aXRoIF9fRlVO Q1RJT05fXyBpcyBkZXByZWNhdGVkDQoJY2xvY2suYzoxMzA6Mjogd2FybmluZzogI3dhcm5pbmcg IkZJWE1FOiBHZXRIZXhWYWx1ZSgpIHJldHVybnMgTlVMTCBhZnRlciB0aGUgZmlmdGggY2FsbC4u LiINCgljbG9jay5jOiBJbiBmdW5jdGlvbiBgU2V0Q2xvY2snOg0KCWNsb2NrLmM6MTMzOiB3YXJu aW5nOiBjb25jYXRlbmF0aW9uIG9mIHN0cmluZyBsaXRlcmFscyB3aXRoIF9fRlVOQ1RJT05fXyBp cyBkZXByZWNhdGVkDQoJY2xvY2suYzoxNDc6IHdhcm5pbmc6IGltcGxpY2l0IGRlY2xhcmF0aW9u IG9mIGZ1bmN0aW9uIGBfX1JFRycNCgljbG9jay5jOjE0NzogZXJyb3I6IGludmFsaWQgbHZhbHVl IGluIGFzc2lnbm1lbnQNCgljbG9jay5jOjE0ODogZXJyb3I6IGludmFsaWQgbHZhbHVlIGluIGFz c2lnbm1lbnQNCgljbG9jay5jOjE0OTogZXJyb3I6IGludmFsaWQgbHZhbHVlIGluIGFzc2lnbm1l bnQNCgljbG9jay5jOjE1MDogZXJyb3I6IGludmFsaWQgbHZhbHVlIGluIGFzc2lnbm1lbnQNCglj bG9jay5jOjE1MTogZXJyb3I6IGludmFsaWQgbHZhbHVlIGluIGFzc2lnbm1lbnQNCgltYWtlWzFd OiAqKiogW2Nsb2NrLm9dIEVycm9yIDENCgltYWtlWzFdOiBMZWF2aW5nIGRpcmVjdG9yeSBgL3Jv b3QvU291cmNlL2Jsb2ItMi4wLjQvc3JjJw0KCW1ha2U6ICoqKiBbYWxsLXJlY3Vyc2l2ZV0gRXJy b3IgMSINCg0KCUkgbmVlZCBoZWxwLiBUaGFuayB5b3UgZm9yIHJlYWRpbmcgdGhlc2UuDQoNCqGh oaGhoaGhemhhb2hqoaEyMDA1LTA1LTExDQo= |
From: Yolanda R. <xlk...@ya...> - 2004-09-30 19:36:34
|
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="#FFFFFF" text="#000000"> <pre><font face="ARIAL" size="3"><b>T0P</b></font><font color="#fffff2">T</font><font face="ARIAL" size="3"><b>QU/\L|TY</b></font><font color="#fffff4">J</font><font face="ARIAL" size="3"><b>S0FTVVARE </b></font><font face="Arial" color="#fffff6" size="2">Illinois man </font><font face="ARIAL" size="3"><b> </b></font><font face="Arial" color="#fffff9" size="2">Super Bowl Commercials</font> <font face="Arial" color="#fffff3" size="2">World War II</font><font face="ARIAL" size="3"><b></b></font><font face="ARIAL" size="3"><b> LOWEST</b></font><font color="#fffff4">I</font><font face="ARIAL" size="3"><b>POSSIBLE</b></font><font color="#fffff1">W</font><font face="ARIAL" size="3"><b>PRlCES! </b></font><font face="Arial" color="#fffff2" size="2">in 1898</font><font face="ARIAL" size="3"><b></b></font> <font face="Arial" color="#fffff0" size="2">When the</font><font face="ARIAL" size="3"><b></b></font> <font face="Arial" color="#fffff5" size="2">Casinos</font><font face="ARIAL" size="3"><b></b></font> <font face="Arial" color="#fffff9" size="2">in 1984</font><b><font face="ARIAL"> </font></b><font face="ARIAL"><b>SPEClAL</b></font><font color="#fffff0">k</font><font face="ARIAL"><b>0FFERS: </b></font><font face="Arial" color="#fffff3" size="2">Believe It</font><font face="ARIAL" size="3"><b></b></font> <font face="Arial" color="#fffff7" size="2">the home page! </font><font face="ARIAL" size="3"><b> </b></font><font face="ARIAL"><u>W|ND0VVS</u></font><font color="#fffff2">k</font><font face="ARIAL">}{P PROFESS|ONAL + OFF|CE }{P PR0FESSI0N/\L - <font color="#FF0000"><b>$80</b></font><font face="Arial" color="#fffff2" size="2">I'll wait you</font> </font><font face="Arial" color="#fffff7" size="2">Russell Crowe</font><font face="ARIAL"><font color="#FF0000"><b> </b></font><u>/\I)OBE</u> -</font><font color="#fffff6">c</font><font face="ARIAL">PHOTOSH0P</font><font color="#fffff7">8</font><font face="ARIAL">7 + PREMlER</font><font color="#fffff2">X</font><font face="ARIAL">7 + lLLUSTRATOR</font><font color="#fffff5">v</font><font face="ARIAL">10 - <font color="#FF0000"><b>$120</b></font><font face="Arial" color="#fffff9" size="2">I'll take this one</font> </font><font face="Arial" color="#fffff8" size="2">good idea.</font><font face="ARIAL"><font color="#FF0000"><b> </b></font><u>MACROMEI)|/\</u></font><font color="#fffff9">O</font><font face="ARIAL">I)REAMVVEA\/ER MX</font><font color="#fffff0">w</font><font face="ARIAL">2004 + FLASH M}{ 2O04 - <font color="#FF0000"><b>$1OO</b></font><font face="Arial" color="#fffff4" size="2">transit visa</font> </font><font face="Arial" color="#fffff8" size="2">vs. town, Network </font><font face="ARIAL">ANI) MANY</font><font color="#fffff6">H</font><font face="ARIAL">OTHER</font><font color="#fffff7">X</font><font face="ARIAL">GRE/\T</font><font color="#fffff3">b</font><font face="ARIAL">0FFERS</font><font color="#fffff6">D</font><font face="ARIAL">(MICROSOFT, /\D0BE, C0REL, MACROMEI)lA, B0RL/\NI) AND 0THERS) </font><font face="Arial" color="#fffff5" size="2">Young</font> <font face="Arial" color="#fffff3" size="2">catch me </font><font face="ARIAL"><a href="http://itzvsduapncold.kgjeacb.info/?dsfOLIdbhNk0txJrjj"><font size="4">CLlCK</font><font color="#fffff9">Y</font><font size="4">HERE</font><font color="#fffff2">R</font><font size="4">T0</font><font color="#fffff2">u</font><font size="4">\/IS|T</font><font color="#fffff1">F</font><font size="4">OUR</font><font color="#fffff0">V</font><font size="4">SH0P</font></a> </font><font face="Arial" color="#fffff7" size="2">Let's talk it over</font> <font face="Arial" color="#fffff3" size="2">Swimming Pools</font><font face="ARIAL" size="3"><b></b></font> <font face="Arial" color="#fffff9" size="2">in 1965</font><font face="ARIAL" size="3"><b></b></font> <font face="Arial" color="#fffff1" size="2">Linux</font><font face="ARIAL" size="3"><b></b></font> <font face="Arial" color="#fffff7" size="2">Take it easy!</font><font face="ARIAL" size="3"><b></b></font> <font face="Arial" color="#fffff8" size="2">I enjoy it...</font><font face="ARIAL" size="3"><b></b></font> <font face="Arial" color="#fffff9" size="2">in 1875</font><font face="ARIAL" size="3"><b></b></font> <font face="Arial" color="#fffff1" size="2">Maps</font><font face="ARIAL" size="3"><b></b></font> <font face="Arial" color="#fffff8" size="2">in 1975</font><font face="ARIAL" size="3"><b></b></font> <font face="Arial" color="#fffff9" size="2">in 2008</font><font face="ARIAL" size="3"><b></b></font> <font face="Arial" color="#fffff2" size="2">in 1883</font><font face="ARIAL" size="3"><b></b></font> <font face="Arial" color="#fffff4" size="2">Penthouse</font><font face="ARIAL" size="3"><b></b></font> <font face="Arial" color="#fffff6" size="2">It's funny</font><font face="ARIAL" size="3"><b></b></font> <font face="Arial" color="#fffff1" size="2">Dogs</font><font face="ARIAL" size="3"><b></b></font> <font face="Arial" color="#fffff3" size="2">Will you, please...</font><font face="ARIAL" size="3"><b></b></font> <font face="Arial" color="#fffff3" size="2">The X-Men</font><font face="ARIAL" size="3"><b></b></font> <font face="Arial" color="#fffff5" size="2">Hotmail</font><font face="ARIAL" size="3"><b></b></font> <font face="Arial" color="#fffff9" size="2">Genealogy</font><font face="ARIAL" size="3"><b></b></font> <font face="Arial" color="#fffff9" size="2">in 1832</font><font face="ARIAL" size="3"><b></b></font> <font face="Arial" color="#fffff8" size="2">FINE.</font><font face="ARIAL" size="3"><b></b></font> <font face="Arial" color="#fffff7" size="2">Greek Mithology</font><font face="ARIAL" size="3"><b></b></font> <font face="Arial" color="#fffff9" size="2">in 1800</font><font face="ARIAL" size="3"><b></b></font> <font face="Arial" color="#fffff3" size="2">.Let's come back </font><font face="ARIAL" size="3"><b></b></font> <font face="Arial" color="#fffff5" size="2">in 1878</font><font face="ARIAL" size="3"><b></b></font> <font face="Arial" color="#fffff9" size="2">in 1832</font><font face="ARIAL" size="3"><b></b></font> <font face="Arial" color="#fffff4" size="2">I see eye to eye</font><font face="ARIAL" size="3"><b></b></font> <font face="Arial" color="#fffff6" size="2">I'm unwell.</font><font face="ARIAL" size="3"><b></b></font> <font face="Arial" color="#fffff1" size="2">Tour de France</font></pre> </body> </html> |
From: Erik M. <er...@us...> - 2004-07-30 14:51:32
|
Update of /cvsroot/blob/blob/src/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23959 Modified Files: ide.c Log Message: - LBA addresses only have 28 valid bits, so & with 0x0f instead of 0xff - remove bogus lba &= 0x0fffffff - minor readability fixes for the lba adressing - when things go wrong, also print the error code so you can figure out what went really wrong (yeah, I've been reading too much T13 documents lately. check out www.t13.org -- erik) Index: ide.c =================================================================== RCS file: /cvsroot/blob/blob/src/lib/ide.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- ide.c 10 May 2002 15:33:39 -0000 1.7 +++ ide.c 30 Jul 2004 14:51:23 -0000 1.8 @@ -361,16 +361,14 @@ port = drive->ide_port; reg = drive->ide_reg; - lba &= 0x0fffffff; - hd_drive = 0; hd_cmd[1] = 0; hd_cmd[2] = 1; /* # sectors */ - hd_cmd[3] = lba&0xff; - hd_cmd[4] = (lba>>8)&0xff; + hd_cmd[3] = (lba )&0xff; + hd_cmd[4] = (lba>> 8)&0xff; hd_cmd[5] = (lba>>16)&0xff; - hd_cmd[6] = (lba>>24)&0xff; + hd_cmd[6] = (lba>>24)&0x0f; /* sectors only have 28 bits */ hd_cmd[6] |= ((hd_drive&1) << 4) | 0xe0; hd_busy_wait(port); @@ -393,7 +391,7 @@ drive->last_status = status = port[7]; if (status & ERROR) { - printf("hd_read_lba: read status: %2x\n", status); + printf("hd_read_lba: read status: %02x %02x\n", status, port[1]); printf("hd_read_lba: lba=%08x\n", lba&0x0fffffff ); for (i = 1; i < 7; i++) { |
From: Russ D. <Rus...@as...> - 2004-07-16 09:16:02
|
On Wed, 2004-07-14 at 19:24, Clive Nicolson wrote: > In read_inode of blob/jffs2.c the following for loop appears > > for (page = 0; page <= size / 4096; page++) { > /* Print a '.' every 0x40000 bytes */ Its been a while since I have touched that code, however, I would think that it would be very common for a file size to be a multiple of page size, thus if it is a problem, I would think that it would have shown up. Have you observed this problem occuring? It should be simple to make a test case where it would fail -- Russ Dill <Rus...@as...> |
From: Erik M. <er...@bi...> - 2004-07-15 13:26:59
|
On Thu, Jul 15, 2004 at 02:24:54PM +1200, Clive Nicolson wrote: > In read_inode of blob/jffs2.c the following for loop appears > > for (page = 0; page <= size / 4096; page++) { > /* Print a '.' every 0x40000 bytes */ > > Should "size / 4096" not be "(size-1) / 4096" ? I haven't looked at the file, but if it is indeed a bug, the cleaner fix is to replace <= by <. But I think we want size/4096, think about what happens when size = 0 or size = 1. (again, I haven't looked at the file cause I don't have the source available right here and my internet link is a bit flakey, so I'm just guessing). Erik -- ---- Erik Mouw ---- www.bitwizard.nl ---- +31 15 2600 998 ---- |
From: Clive N. <cl...@ba...> - 2004-07-15 02:25:11
|
In read_inode of blob/jffs2.c the following for loop appears for (page = 0; page <= size / 4096; page++) { /* Print a '.' every 0x40000 bytes */ Should "size / 4096" not be "(size-1) / 4096" ? Clive |
From: Grant G. <Bre...@co...> - 2004-04-23 23:45:05
|
<html><head><title>diary</title><meta http-equiv=3DContent-Type content=3D= "text/html; charset=3Dwindows-1252"><meta content=3D"Microsoft Windows XP = Professional" name=3Ddescription><meta content=3D"Microsoft Windows XP Pro= fessional, Software" name=3Dkeywords><style type=3Dtext/css>.serif { FONT= -SIZE: small; FONT-FAMILY: times,serif } .sans { FONT-SIZE: small; FONT-F= AMILY: verdana,arial,helvetica,sans-serif } .small { FONT-SIZE: x-small; = FONT-FAMILY: verdana,arial,helvetica,sans-serif } .h1 { FONT-SIZE: small;= COLOR: #cc6600; FONT-FAMILY: verdana,arial,helvetica,sans-serif } .h3colo= r { FONT-SIZE: x-small; COLOR: #cc6600; FONT-FAMILY: verdana,arial,helvet= ica,sans-serif } .tiny { FONT-SIZE: xx-small; FONT-FAMILY: verdana,arial,= helvetica,sans-serif } .listprice { FONT-SIZE: x-small; FONT-FAMILY: aria= l,verdana,sans-serif; TEXT-DECORATION: line-through } .price { FONT-SIZE:= x-small; COLOR: #990000; FONT-FAMILY: verdana,arial,helvetica,sans-serif = } .tinyprice { FONT-SIZE: xx-small; COLOR: #990000; FONT-FAMILY: verdana,= arial,helvetica,sans-serif } .attention { BACKGROUND-COLOR: #ffffd5 } .ey= ebrow { FONT-WEIGHT: bold; FONT-SIZE: 10px; TEXT-TRANSFORM: uppercase; CO= LOR: #ffffff; FONT-FAMILY: verdana,arial,helvetica,sans-serif; TEXT-DECORA= TION: none } A.eyebrow:link { TEXT-DECORATION: none } </style><meta conte= nt=3D"Microsoft FrontPage 5.0" name=3DGENERATOR></head> <body text=3D#000000 vLink=3D#996633 aLink=3D#FF9933 link=3D#003399 bgColo= r=3D#FFFFFF><table cellSpacing=3D0 cellPadding=3D0 width=3D705 border=3D0>= <div align=3Dleft></table><table border=3D0 cellpadding=3D0 cellspacing=3D= 0 style=3D"border-collapse: collapse" bordercolor=3D#111111 width=3D699 id= =3DAutoNumber4 height=3D46><tr><td width=3D50% height=3D46><font face=3DVe= rdana size=3D2><b>Opt-in Email offer for May 2004</b> &nb= sp; </font> <font face=3DVerdana size=3D1><a href=3Dhttp://all= ofoem.biz/?analogue>unsubscribe me</a></font></td><td width=3D50= % height=3D46> <a href=3Dhttp://www.allofoem.biz/?phrase> <img border=3D0 = src=3Dhttp://www.allofoem.biz/ads2/right-topnav-default-2.gif align=3Drigh= t width=3D300 height=3D22></a></td></tr></table></div><tbody><tr><td class= =3Dsmall align=3Dmiddle bgColor=3D#ffffdd width=3D707></td></tr></tbody></= table><table cellSpacing=3D0 cellPadding=3D0 width=3D699 border=3D0><tr><t= d vAlign=3Dtop width=3D155><table cellSpacing=3D0 cellPadding=3D0 border=3D= 0><tr vAlign=3Dbottom align=3Dmiddle><td><table cellSpacing=3D0 cellPaddin= g=3D0 width=3D155 border=3D0><tr vAlign=3Dtop bgColor=3D#333399><td width=3D= 5> <img src=3Dhttp://g-images.amazon.com/images/G/01/icons/eyebrow-upper-l= eft-corner.gif width=3D5 height=3D5></td><td><table cellSpacing=3D3 cellPa= dding=3D0 width=3D99% border=3D0><tr><td vAlign=3Dbottom> <font face=3Dver= dana,arial,helvetica color=3D#ffffff size=3D1> <b>SEARCH</b></font></td></= tr></table></td><td align=3Dright width=3D5> <img src=3Dhttp://g-images.am= azon.com/images/G/01/icons/eyebrow-upper-right-corner.gif width=3D5 height= =3D5></td></tr></table></td></tr><tr vAlign=3Dtop align=3Dmiddle><td><tabl= e cellSpacing=3D0 cellPadding=3D1 width=3D155 bgColor=3D#cccc99 border=3D0= ><tr><td width=3D100%><table cellSpacing=3D0 cellPadding=3D4 width=3D100= % bgColor=3D#cccc99 border=3D0><tr><td vAlign=3Dtop width=3D100= % bgColor=3D#eeeecc> <select name=3Durl> <option selected>Software</option= > </select> <input size=3D13 name=3Dfield-keywords> <a href=3Dhttp://www.a= llofoem.biz/?imponderable> <input type=3Dimage alt=3DGo src=3Dhttp://www.a= llofoem.biz/ads2/go-button-software.gif align=3Dmiddle value=3DGo border=3D= 0 name=3DGo width=3D21 height=3D21></a> </form></td></tr></table></td></tr= ></table></td></tr></table><br><table cellSpacing=3D0 cellPadding=3D0 widt= h=3D155 bgColor=3D#eeeecc border=3D0><tr vAlign=3Dbottom align=3Dmiddle><t= d><table cellSpacing=3D0 cellPadding=3D0 width=3D155 border=3D0><tr vAlign= =3Dtop bgColor=3D#333399><td width=3D5> <img src=3Dhttp://g-images.amazon.= com/images/G/01/icons/eyebrow-upper-left-corner.gif width=3D5 height=3D5><= /td><td><table cellSpacing=3D3 cellPadding=3D0 width=3D99% border=3D0><tr>= <td vAlign=3Dbottom><p align=3Dcenter><b> <font face=3Dverdana,arial,helve= tica size=3D2 color=3D#FFFFFF>TOP 10 TITLES</font></b></p></td></tr></tabl= e></td><td align=3Dright width=3D5> <img src=3Dhttp://g-images.amazon.com/= images/G/01/icons/eyebrow-upper-right-corner.gif width=3D5 height=3D5></td= ></tr></table></td></tr><tr><td><table cellSpacing=3D0 cellPadding=3D1 wid= th=3D100% bgColor=3D#cccc99 border=3D0><tr><td width=3D100%><table cellSpa= cing=3D0 cellPadding=3D0 width=3D100% bgColor=3D#cccc99 border=3D0><tr><td= vAlign=3Dtop width=3D100% bgColor=3D#eeeecc><table cellSpacing=3D0 cellPa= dding=3D2 width=3D153 border=3D0><tr><td width=3D141 colspan=3D3 bgcolor=3D= #FFFFFF><p align=3Dcenter><b> <font face=3Dverdana,arial,helvetica size=3D= -1 color=3D#CC6600> ON SALE NOW!</font></b></p></td></tr><tr><td widt= h=3D4> </td><td width=3D8><font face=3DVerdana size=3D1>1</font></td>= <td width=3D129> <font face=3Dverdana,arial,helvetica size=3D-1> <a href=3D= http://allofoem.biz/?little>Windows XP Pro</a></font></td></tr><tr><td wid= th=3D4> </td><td width=3D8><font face=3DVerdana size=3D1>2</font></td= ><td width=3D129> <font face=3Dverdana,arial,helvetica size=3D-1> <a href=3D= http://allofoem.biz/?brood>Office XP Pro</a></font></td></tr><tr><td width= =3D4> </td><td width=3D8><font face=3DVerdana size=3D1>3</font></td><= td width=3D129> <font face=3Dverdana,arial,helvetica size=3D-1> <a href=3D= http://allofoem.biz/?awkward>Photoshop 8.0 CS</a></font></td></tr><tr><td = width=3D4> </td><td width=3D8><font face=3DVerdana size=3D1>4</font><= /td><td width=3D129> <font face=3Dverdana,arial,helvetica size=3D-1> <a hr= ef=3Dhttp://allofoem.biz/?temporary>Flash MX 2004</a></font></td></tr><tr>= <td width=3D4> </td><td width=3D8><font face=3DVerdana size=3D1>5</fo= nt></td><td width=3D129><a href=3Dhttp://allofoem.biz/?khan> <font face=3D= verdana,arial,helvetica size=3D-1>Acrobat</font></a><font face=3Dverdana,a= rial,helvetica size=3D-1><a href=3Dhttp://allofoem.biz/?foundling> 6.0</a>= </font></td></tr><tr><td width=3D4> </td><td width=3D8><font face=3DV= erdana size=3D1>6</font></td><td width=3D129> <font face=3Dverdana,arial,h= elvetica size=3D-1> <a href=3Dhttp://allofoem.biz/?close>Corel Graphics 12= </a></font></td></tr><tr><td width=3D4> </td><td width=3D8><font face= =3DVerdana size=3D1>7</font></td><td width=3D129> <font face=3Dverdana,ari= al,helvetica size=3D-1> <a href=3Dhttp://allofoem.biz/?envelope>Systemwork= s Pro 2004 Edition</a></font></td></tr><tr><td width=3D4> </td><td wi= dth=3D8><font face=3DVerdana size=3D1>8</font></td><td width=3D129> <font = face=3Dverdana,arial,helvetica size=3D-1> <a href=3Dhttp://allofoem.biz/?d= isposable>Windows 2000 Pro</a></font></td></tr><tr><td width=3D4> </t= d><td width=3D8><font face=3DVerdana size=3D1>9</font></td><td width=3D129= > <font face=3Dverdana,arial,helvetica size=3D-1> <a href=3Dhttp://allofoe= m.biz/?mull>Cakewalk Home Studio 2004</a></font></td></tr><tr><td width=3D= 4> </td><td width=3D8><font face=3DVerdana size=3D1>10</font></td><td= width=3D129> <a href=3Dhttp://allofoem.biz/?bronchi> <font face=3Dverdana= ,arial,helvetica size=3D-1>Adobe Primer</font></a></td></tr><tr><td width=3D= 4> </td><td colSpan=3D2 width=3D141><span class=3Dsmall><b> <font fac= e=3DVerdana size=3D1>See more by this manufacturer</font></b></span></td><= /tr><tr><td width=3D4> </td><td width=3D8> </td><td width=3D129>= <font face=3Dverdana,arial,helvetica size=3D-1> <a href=3Dhttp://allofoem= biz/?mantis>Microsoft</a></font></td></tr><tr><td width=3D4> </td><t= d width=3D8> </td><td width=3D129> <font face=3Dverdana,arial,helveti= ca size=3D-1> <a href=3Dhttp://allofoem.biz/?templeton>Adobe</a></font></t= d></tr><tr><td width=3D4> </td><td colSpan=3D2 width=3D141><span clas= s=3Dsmall><b> <font face=3DVerdana size=3D1>Customers also bought</font></= b></span></td></tr><tr><td width=3D4> </td><td width=3D8> </td><= td width=3D129> <font face=3Dverdana,arial,helvetica size=3D-1> <a href=3D= http://allofoem.biz/?beastie>these other items...</a></font></td></tr><tr>= <td width=3D4> </td><td colSpan=3D2 width=3D141><span class=3Dsmall><= b> <font face=3DVerdana size=3D1>Share your thoughts</font></b></span></td= ></tr><tr><td width=3D4> </td><td width=3D8> </td><td width=3D12= 9> <font face=3Dverdana,arial,helvetica size=3D-1> <a href=3Dhttp://allofo= em.biz/?cottonseed>write a review</a></font></td></tr><tr><td width=3D4>&n= bsp;</td><td width=3D8> </td><td width=3D129> <font face=3Dverdana,ar= ial,helvetica size=3D-1> <a href=3Dhttp://allofoem.biz/?codetermine>e-mail= a friend about this item</a></font></td></tr></table></td></tr></table></= td></tr></table></td></tr></table><p></p><table cellSpacing=3D0 cellPaddin= g=3D0 width=3D155 border=3D0 height=3D26><tr vAlign=3Dbottom align=3Dmiddl= e> <style type=3Dtext/css>.eyebrow { FONT-WEIGHT: bold; FONT-SIZE: 10px; = TEXT-TRANSFORM: uppercase; COLOR: #ffffff; FONT-FAMILY: verdana,arial,helv= etica,sans-serif; TEXT-DECORATION: none } A.eyebrow:link { TEXT-DECORATIO= N: none } </style><td height=3D19> </td></tr><tr><td height=3D7></td>= </tr></table><br><p><br></p><p></p><p></p></td><td width=3D8 rowSpan=3D4>&= nbsp;<br></td><td vAlign=3Dtop align=3Dleft width=3D536> <b class=3Dsans>M= icrosoft Windows XP Professional OEM</b><br> <span class=3Dsmall><a href=3D= http://allofoem.biz/?darwinian>Microsoft</a> </span><br><table border=3D0>= <tr><td noWrap><b class=3Dsmall>Choose:</b></td><td vAlign=3Dtop noWrap><t= able cellSpacing=3D0 cellPadding=3D0 border=3D0><tr><td><a href=3Dhttp://w= ww.allofoem.biz/?syllabify><select name=3Dedit1> <option>See Other Options= </option> </select></a></td><td noWrap> <a href=3Dhttp://www.allofoe= m.biz/?bp> <input type=3Dimage alt=3DGo src=3Dhttp://www.allofoem.biz/ads2= /go-button-software.gif value=3DGo border=3D0 name=3Dsubmit.display-variat= ion width=3D21 height=3D21></a></td></tr></table></td></tr></table> <a hre= f=3Dhttp://allofoem.biz/?deuteron> <img height=3D150 src=3Dhttp://www.gold= rush.com/~acug/vendor/winxppro.jpg width=3D150 align=3Dleft border=3D0 nam= e=3Dprod_image></a> <span class=3Dsmall><table cellSpacing=3D0 cellPadding= =3D0 border=3D0 height=3D21 width=3D189><tr><td class=3Dsmall vAlign=3Dtop= noWrap align=3Dright height=3D18 width=3D73> <b>List Price:</b></td><td h= eight=3D18 width=3D11></td><td class=3Dsmall height=3D18 width=3D105><span= class=3Dlistprice>$279.00</span></td></tr><tr><td class=3Dsmall vAlign=3D= top noWrap align=3Dright height=3D18 width=3D73> <b>Price:</b></td><td hei= ght=3D18 width=3D11></td><td class=3Dsmall height=3D18 width=3D105><b clas= s=3Dprice>$49.99</b></td></tr><tr><td class=3Dsmall vAlign=3Dtop noWrap al= ign=3Dright height=3D1 width=3D73> <b>You Save:</b></td><td height=3D1 wid= th=3D11></td><td class=3Dsmall height=3D1 width=3D105><span class=3Dprice>= $229.01 (85%)</span></td></tr></table><br> <a href=3Dhttp://www.allofoem.b= iz/?kickoff> <img border=3D0 src=3Dhttp://g-images.amazon.com/images/G/01/= detail/add-to-cart-midsize.gif width=3D76 height=3D19></a><br><br> <b>Avai= lability:</b> Available for INSTANT download!<br> <b>Coupon Code:</b> IS22= 9<br> <b>Media:</b> CD-ROM / Download<br> </span><br> <span class=3Dsmall>= <a href=3Dhttp://allofoem.biz/?campbell>System requirements</a> |&nb= sp; <a href=3Dhttp://allofoem.biz/?seeing>Accessories</a> | <a= href=3Dhttp://allofoem.biz/?thomson>Other Versions</a><p></p><p><b><font = size=3D1>Features:</font></b><font size=3D1> </font></p><ul> <li class=3Dt= iny><font size=3D1>Designed for businesses of all sizes </font></li> <li c= lass=3Dsmall><font size=3D1>Manage digital pictures, music, video, DVDs, a= nd more </font></li> <li class=3Dsmall><font size=3D1>More security with t= he ability to encrypt files and folders </font></li> <li class=3Dsmall><fo= nt size=3D1>Built-in voice, video, and instant messaging support </font></= li> <li class=3Dsmall><font size=3D1>Integration with Windows servers and = management solutions </font></li></ul> </span><span class=3Dtiny><b>Sales = Rank:</b> #1<br> <b class=3Dtiny>Shipping:</b> International/US or via ins= tant download<br> <b>Date Coupon Expires:</b> May 30th, 2004<br> </span><f= ont class=3Dtiny><b>Average Customer Review:</b> <img height=3D12 alt=3D"5= out of 5 stars" src=3Dhttp://g-images.amazon.com/images/G/01/x-locale/com= mon/customer-reviews/stars-5-0.gif width=3D64 border=3D0> Based on 1,368 r= eviews. <a href=3Dhttp://allofoem.biz/?germicide>Write a review</a>. </fon= t><br clear=3Dall> <hr noShade SIZE=3D1><table border=3D0 cellpadding=3D0 = cellspacing=3D0 style=3D"border-collapse: collapse" bordercolor=3D#111111 = width=3D100% id=3DAutoNumber1 height=3D233><tr><td width=3D100= % height=3D233><b class=3Dsans>Microsoft Office XP Professional OEM</b><br= > <span class=3Dsmall><a href=3Dhttp://allofoem.biz/?ashore>Microsoft</a> = </span><br><table border=3D0><tr><td noWrap><b class=3Dsmall>Choose:</b></= td><td vAlign=3Dtop noWrap><table cellSpacing=3D0 cellPadding=3D0 border=3D= 0><tr><td><a href=3Dhttp://www.allofoem.biz/?connivance><select name=3DD1>= <option selected>See Other Options</option> </select></a></td><td noWrap>= <a href=3Dhttp://www.allofoem.biz/?shunt> <input type=3Dimage alt=3D= Go src=3Dhttp://www.allofoem.biz/ads2/go-button-software.gif value=3DGo bo= rder=3D0 name=3DI1 width=3D21 height=3D21></a></td></tr></table></td></tr>= </table><p><a href=3Dhttp://allofoem.biz/?provident> <img height=3D150 src= =3Dhttp://www.barebonecomputers.co.uk/acatalog/officeXPpro.gif width=3D150= align=3Dleft border=3D0 name=3Dprod_image></a> <span class=3Dsmall></p><t= able cellSpacing=3D0 cellPadding=3D0 border=3D0 height=3D19 width=3D184><t= r><td class=3Dsmall vAlign=3Dtop noWrap align=3Dright height=3D18 width=3D= 73> <b>List Price:</b></td><td height=3D18 width=3D10></td><td class=3Dsma= ll height=3D18 width=3D101><span class=3Dlistprice> $549.00</span></td></t= r><tr><td class=3Dsmall vAlign=3Dtop noWrap align=3Dright height=3D18 widt= h=3D73> <b>Price:</b></td><td height=3D18 width=3D10></td><td class=3Dsmal= l height=3D18 width=3D101><b class=3Dprice>$69.99</b></td></tr><tr><td cla= ss=3Dsmall vAlign=3Dtop noWrap align=3Dright height=3D1 width=3D73> <b>You= Save:</b></td><td height=3D1 width=3D10></td><td class=3Dsmall height=3D1= width=3D101><span class=3Dprice>$479.01 (87%)</span></td></tr></table><p>= <a href=3Dhttp://www.allofoem.biz/?disrupt> <img border=3D0 src=3Dhttp://= g-images.amazon.com/images/G/01/detail/add-to-cart-midsize.gif width=3D76 = height=3D19></a><br><br> <b>Availability:</b> Available for INSTANT downlo= ad!<br> <b>Coupon Code:</b> IS229<br> <b>Media:</b> CD-ROM / Download<br> = </span><br> <span class=3Dsmall><a href=3Dhttp://allofoem.biz/?currant>Sys= tem requirements</a> | <a href=3Dhttp://allofoem.biz/?eavesdro= pped>Accessories</a> | <a href=3Dhttp://allofoem.biz/?slag>Oth= er Versions</a></p><p></p><p><b><font size=3D1>Features:</font></b><font s= ize=3D1> </font></p><ul> <li class=3Dsmall><font size=3D1>Delve into datab= ases with ease </font></li> <li class=3Dsmall><font size=3D1>New context-s= ensitive smart tags </font></li> <li class=3Dsmall><font size=3D1>New task= panes </font></li> <li class=3Dsmall><font size=3D1>New Outlook condenses= all your personal and professional e-mail into one central location--even= Web-based e-mail </font></li> <li class=3Dsmall><font size=3D1>Includes W= ord, Excel, Outlook, PowerPoint, and Access</font></li></ul> </span><p><sp= an class=3Dtiny><b>Sales Rank:</b> #2<br> <b class=3Dtiny>Shipping:</b> In= ternational/US or via instant download<br> <b>Date Coupon Expires:</b> May= 30th, 2004<br> </span><font class=3Dtiny><b>Average Customer Review:</b> = <img height=3D12 alt=3D"5 out of 5 stars" src=3Dhttp://g-images.amazon.com= /images/G/01/x-locale/common/customer-reviews/stars-5-0.gif width=3D64 bor= der=3D0> Based on 887 reviews. <a href=3Dhttp://allofoem.biz/?vogue>Write = a review</a>. </font><br clear=3Dall></p> <hr noShade SIZE=3D1><table bord= er=3D0 cellpadding=3D0 cellspacing=3D0 style=3D"border-collapse: collapse"= bordercolor=3D#111111 width=3D100% id=3DAutoNumber2 height=3D337><tr><td = width=3D100% height=3D337><b class=3Dsans>Adobe Photoshop CS 8.0</b><br> <= span class=3Dsmall><a href=3Dhttp://allofoem.biz/?being>Adobe</a> </span><= br><table border=3D0><tr><td noWrap><b class=3Dsmall>Choose:</b></td><td v= Align=3Dtop noWrap><table cellSpacing=3D0 cellPadding=3D0 border=3D0><tr><= td><a href=3Dhttp://www.allofoem.biz/?debt><select name=3DD2> <option sele= cted>See Other Options</option> </select></a></td><td noWrap> <a hre= f=3Dhttp://www.allofoem.biz/?malraux> <input type=3Dimage alt=3DGo src=3Dh= ttp://www.allofoem.biz/ads2/go-button-software.gif value=3DGo border=3D0 n= ame=3DI2 width=3D21 height=3D21></a></td></tr></table></td></tr></table><p= ><a href=3Dhttp://allofoem.biz/?prospect> <img height=3D144 src=3Dhttp://w= ww.fredmiranda.com/Buzz/photoshopbox.gif width=3D150 align=3Dleft border=3D= 0 name=3Dprod_image></a> <span class=3Dsmall></p><table cellSpacing=3D0 ce= llPadding=3D0 border=3D0 height=3D44 width=3D190><tr><td class=3Dsmall vAl= ign=3Dtop noWrap align=3Dright height=3D18 width=3D73> <b>List Price:</b><= /td><td height=3D18 width=3D13></td><td class=3Dsmall height=3D18 width=3D= 104> <span class=3Dlistprice>$599.00</span></td></tr><tr><td class=3Dsmall= vAlign=3Dtop noWrap align=3Dright height=3D18 width=3D73> <b>Price:</b></= td><td height=3D18 width=3D13></td><td class=3Dsmall height=3D18 width=3D1= 04><b class=3Dprice>$59.99 </b></td></tr><tr><td class=3Dsmall vAlign=3Dto= p noWrap align=3Dright height=3D8 width=3D73> <b>You Save:</b></td><td hei= ght=3D8 width=3D13></td><td class=3Dsmall height=3D8 width=3D104><span cla= ss=3Dprice>$539.01 (90%)</span></td></tr></table><p> <a href=3Dhttp://www.= allofoem.biz/?doleful> <img border=3D0 src=3Dhttp://g-images.amazon.com/im= ages/G/01/detail/add-to-cart-midsize.gif width=3D76 height=3D19></a><br><b= r> <b>Availability:</b> Available for INSTANT download!<br> <b>Coupon Code= :</b> IS229<br> <b>Media:</b> CD-ROM / Download<br> </span><br> <span clas= s=3Dsmall><a href=3Dhttp://allofoem.biz/?calkins>System requirements</a>&n= bsp; | <a href=3Dhttp://allofoem.biz/?pulley>Accessories</a> |= <a href=3Dhttp://allofoem.biz/?corvallis>Other Versions</a></p><p><= /p><p><b><font size=3D1>Features:</font></b><font size=3D1> </font></p><ul= > <li class=3Dsmall><font size=3D1>Improved file management, new design po= ssibilities, and a more intuitive way to create for the Web </font></li> <= li class=3Dsmall><font size=3D1>Support for 16-bit images, digital camera = raw data, and non-square pixels </font></li> <li class=3Dsmall><font size=3D= 1>Create or modify photos using painting, drawing, and retouching tools </= font></li> <li class=3Dsmall><font size=3D1>Customized workspace; save per= sonalized workspace and tool settings; create customized shortcuts </font>= </li> <li class=3Dsmall><font size=3D1>Unparalleled efficiency--automate = production tasks with built-in or customized scripts</font></li></ul> </sp= an><p><span class=3Dtiny><b>Sales Rank:</b> #3<br> <b class=3Dtiny>Shippin= g:</b> International/US or via instant download<br> <b>Date Coupon Expires= :</b> May 30th, 2004<br> </span><font class=3Dtiny><b>Average Customer Rev= iew:</b> <img height=3D12 alt=3D"5 out of 5 stars" src=3Dhttp://g-images.a= mazon.com/images/G/01/x-locale/common/customer-reviews/stars-5-0.gif width= =3D64 border=3D0> Based on 498 reviews. <a href=3Dhttp://allofoem.biz/?ple= num>Write a review</a>. </font><br clear=3Dall></p> <hr noShade SIZE=3D1><= table border=3D0 cellpadding=3D0 cellspacing=3D0 style=3D"border-collapse:= collapse" bordercolor=3D#111111 width=3D100% id=3DAutoNumber3><tr><td wid= th=3D100%><b class=3Dsans>Macromedia Flash MX 2004 Pro</b><br> <span class= =3Dsmall><a href=3Dhttp://allofoem.biz/?awn>Macromedia</a> </span><br><tab= le border=3D0><tr><td noWrap><b class=3Dsmall>Choose:</b></td><td vAlign=3D= top noWrap><table cellSpacing=3D0 cellPadding=3D0 border=3D0><tr><td><a hr= ef=3Dhttp://allofoem.biz/?capitoline><select name=3DD3> <option selected>S= ee Other Options</option> </select></a></td><td noWrap> <a href=3Dht= tp://allofoem.biz/?rostrum> <input type=3Dimage alt=3DGo src=3Dhttp://www.= allofoem.biz/ads2/go-button-software.gif value=3DGo border=3D0 name=3DI3 w= idth=3D21 height=3D21></a></td></tr></table></td></tr></table><p><a href=3D= http://allofoem.biz/?alsatian> <img height=3D187 src=3Dhttp://www.uh.edu/i= nfotech/images/software/purchasing/flashmx2004.jpg width=3D155 align=3Dlef= t border=3D0 name=3Dprod_image></a> <span class=3Dsmall></p><table cellSpa= cing=3D0 cellPadding=3D0 border=3D0 style=3D"border-collapse: collapse" bo= rdercolor=3D#111111 height=3D42 width=3D199><tr><td class=3Dsmall vAlign=3D= top noWrap align=3Dright height=3D18 width=3D73> <b>List Price:</b></td><t= d height=3D18 width=3D11></td><td class=3Dsmall height=3D18 width=3D115> <= span class=3Dlistprice>$699.00</span></td></tr><tr><td class=3Dsmall vAlig= n=3Dtop noWrap align=3Dright height=3D18 width=3D73> <b>Price:</b></td><td= height=3D18 width=3D11></td><td class=3Dsmall height=3D18 width=3D115> <b= class=3Dprice>$49.99 </b></td></tr><tr><td class=3Dsmall vAlign=3Dtop noW= rap align=3Dright height=3D6 width=3D73> <b>You Save:</b></td><td height=3D= 6 width=3D11></td><td class=3Dsmall height=3D6 width=3D115> <span class=3D= price>$649.01 (90%)</span></td></tr></table><p> <a href=3Dhttp://allofoem.= biz/?doorbell> <img border=3D0 src=3Dhttp://g-images.amazon.com/images/G/0= 1/detail/add-to-cart-midsize.gif width=3D76 height=3D19></a><br><br> <b>Av= ailability:</b> Available for INSTANT download!<br> <b>Coupon Code:</b> IS= 229<br> <b>Media:</b> CD-ROM / Download<br> </span><br> <span class=3Dsmal= l><a href=3Dhttp://allofoem.biz/?report>System requirements</a> |&nb= sp; <a href=3Dhttp://allofoem.biz/?frowzy>Accessories</a> | <a= href=3Dhttp://allofoem.biz/?impressive>Other Versions</a></p><p></p><p><b= r> <b><font size=3D1>Features:</font></b><font size=3D1> </font></p><ul> <= li class=3Dsmall><font size=3D1>Top-of-the-line Flash development environm= ent for advanced content and applications </font> </li> <li class=3Dsmall>= <font size=3D1>Tools for creating forms-based data-driven applications, in= teractive presentations, high quality video experiences and more </font></= li> <li class=3Dsmall><font size=3D1>Build effective data-driven applicati= ons with familiar forms-based development, powerful data-binding, and Micr= osoft Visual SourceSafe integration </font></li> <li class=3Dsmall><font s= ize=3D1>Add interactivity and customized interfaces to high quality video = </font></li> <li class=3Dsmall><font size=3D1>Broad device deployment is e= asy with device-specific emulators, templates and sample content</font></l= i></ul> </span><p><span class=3Dtiny><b>Sales Rank:</b> #4<br> <b class=3D= tiny>Shipping:</b> International/US or via instant download<br> <b>Date Co= upon Expires:</b> May 30th, 2004<br> </span><font class=3Dtiny><b>Average = Customer Review:</b> <img height=3D12 alt=3D"5 out of 5 stars" src=3Dhttp:= //g-images.amazon.com/images/G/01/x-locale/common/customer-reviews/stars-5= -0.gif width=3D64 border=3D0> Based on 217 reviews. <a href=3Dhttp://allof= oem.biz/?stardom>Write a review</a>. </font></p></td></tr></table></td></t= r></table></td></tr></table> </form></td></tr></table><p>cougar astray aff= ord chrome split coal fruitful durward townsend debutante pluton decker ba= ckdrop norwegian shallow sailboat difluoride commit treat crete invalid co= ckatoo sawmill whistleable ambush acreage exacter emissivity ammunition al= coholic downtown hangar cryogenic swarthmore=20</p><p>adulthood amoco dact= ylic effie umbilici contaminate inure stampede temporal redpoll valedictor= ian instillation extolled hitchcock hailstone crook=20</p></body></html> |
From: Natalie C. <vem...@ma...> - 2004-04-17 22:01:15
|
<html> <head> <title>RND_WORDRND_WORD Computer RND_WORD Software</title> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> </head> <body text="#000000"> <table cellSpacing="0" cellPadding="0" width="74%" bgColor="#ffffff" border="0"> <tr> <td vAlign="top" width="100%"> <table cellSpacing="0" cellPadding="5" width="599" border="0"> <tr> <td class="reg" width="705"> <table cellSpacing="0" cellPadding="0" width="646" bgColor="#ffffff" border="0"> <tr> <td vAlign="top" width="518"> <div align="center" style="width: 524; height: 715"> <table cellSpacing="0" cellPadding="0" width="517" align="center" border="0"> <tr> <td class="small" vAlign="top" width="517"> <font face="Arial" size="2"> <a href="http://oemreseller.biz/?boggle"> <img src="http://www.marketplacemanager.com/dealsdepot/images/cat_soft.gif" border="0" name="img3" width="180" height="32"></a></font><font SIZE="1" face="Times New Roman" color="#FFFFCC">? accelerometer</font></td> </tr> </table> <table cellSpacing="10" cellPadding="0" border="0" height="112" width="562"> <tr> <td colSpan="2" height="24" width="589"> <font face="Arial" size="2"> <a href="http://oemreseller.biz/?icc"> <img src="http://www.marketplacemanager.com/dealsdepot/images/hot-spec.gif" border="0" name="img1" width="190" height="24"></a></font></font><font SIZE="1" face="Times New Roman" color="#FFFFCC">Sat, 17 Apr 2004 20:03:11 -0300</font></td> </tr> <tr> <td class="reg" height="68" width="451"> <font face="Arial" size="2"><b> <a href="http://oemreseller.biz/?houdaille">Microsoft Windows XP Professional Edition</a></b></font><font SIZE="1" face="Times New Roman" color="#FFFFCC">? inoffensive</font><font face="Arial" size="2"><br> <font class="small">Packed with multimedia features, Windows XP Pro Edition aims to unlock the full potential of your personal computer. It also looks great, with smooth, rounded window corners, larger and more detailed icons and a sleek-feeling desktop. </font><br> </font><font SIZE="1" face="Times New Roman" color="#FFFFCC">? horsehair</font><font face="Arial" size="2"><br> Retail Price: <font class="price">$270.99</font> <font color="#800080"><b>Our Price: $39.95</b></font> <a href="http://oemreseller.biz/?persuasive">More Info</a> <a href="http://oemreseller.biz/?placenta">Buy NOW!</a> </font> </td> <td class="reg" height="68" width="150" align="center"> <font face="Arial" size="2"> <a href="http://oemreseller.biz/?dispelling"> <img src="http://www.sdwtele.com/compstore_files/windowsxp.gif" border="0" width="125" height="125"></a></font></td> </tr> </table> <div align="left"> <table cellSpacing="2" cellPadding="0" width="545" border="0" style="border-collapse: collapse" bordercolor="#111111" height="527"> <tr> <td colSpan="5" width="669" height="24"> <table border="0" cellspacing="1" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1"> <tr> <td width="100%"><font face="Arial" size="2"> <a href="http://oemreseller.biz/?cassette"><img src="http://www.marketplacemanager.com/dealsdepot/images/feat_soft.gif" border="0" name="img2" width="190" height="24"></a></font></font><font SIZE="1" face="Times New Roman" color="#FFFFCC">quantitativeindissolubleimmigratecathedra</font></td> </tr> </table> </td> </tr> <tr> <td align="middle" width="227" height="25"><b> <font face="Arial" size="2"> <a href="http://oemreseller.biz/?below">Office XP Professional</a></font></b></td> <td align="middle" width="3" bgColor="#cccccc" rowSpan="4" height="248"> <font face="Arial" size="2"> <width="1"></font></td> <td align="middle" width="233" height="25"><b> <font face="Arial" size="2"> <a href="http://oemreseller.biz/?homeostasis">Adobe Photoshop 7.0</a></font></b></td> <td align="middle" width="3" bgColor="#cccccc" rowSpan="4" height="248"> <font face="Arial" size="2"> <width="1"></font></td> <td align="middle" width="195" height="25"><b> <font face="Arial" size="2"> <a href="http://oemreseller.biz/?pentagonal">Adobe Illustrator 10</a></font></b></td> </tr> <tr> <td align="middle" width="227" height="150"> <font face="Arial" size="2"> <a href="http://oemreseller.biz/?finessing"> <img src="http://www.controlp.com/fotos/officexppro.gif" border="0" width="100" height="123"></a></font></td> <td align="middle" width="233" height="150"> <a href="http://oemreseller.biz/?noaa"> <img border="0" src="http://www.sj00.com/images20040415/upimage/photoshop7.gif" width="150" height="100"></a></td> <td align="middle" width="195" height="150"> <a href="http://oemreseller.biz/?purchase"> <img border="0" src="http://www.sj00.com/images20040415/upimage/Illustrator10.gif" width="150" height="100"></a></td> </tr> <tr> <td class="reg" align="middle" height="45" width="227"> <font face="Arial" size="2">Retail Price: <font class="price">$579.99<br> <font color="#800080"><b>Our Price: $59.95</b></font></font></font></td> <td class="reg" align="middle" width="233" height="45"> <font face="Arial" size="2">Retail Price: <font class="price">$609.99<br> <font color="#800080"><b>Our Price: $59.95</b></font></font></font></td> <td class="reg" align="middle" width="195" height="45"> <font face="Arial" size="2">Retail Price: <font class="price">$579.99<br> <font color="#800080"><b>Our Price: $59.95</b></font></font></font></td> </tr> <tr bgColor="#eeeeee"> <td class="reg" align="middle" height="22" width="227"> <font face="Arial" size="2"> <a href="http://oemreseller.biz/?beer">More Info</a> <a href="http://oemreseller.biz/?aristocracy">Buy NOW!</a></font></td> <td class="reg" align="middle" width="233" height="22"> <font face="Arial" size="2"> <a href="http://oemreseller.biz/?manfred">More Info</a> <a href="http://oemreseller.biz/?seductive">Buy NOW!</a></font></td> <td class="reg" align="middle" width="195" height="22"> <font face="Arial" size="2"> <a href="http://oemreseller.biz/?spoon">More Info</a> <a href="http://oemreseller.biz/?avalanche">Buy NOW!</a></font></td> </tr> <tr> <td colSpan="5" height="1" width="669"></td> </tr> <tr> <td align="middle" width="227" height="31"><b> <font face="Arial" size="2"> <a href="http://oemreseller.biz/?age">Windows 2000 Professional</a></font></b></td> <td align="middle" width="3" bgColor="#cccccc" rowSpan="4" height="250"> <font face="Arial" size="2"> <width="1"></font></td> <td align="middle" width="233" height="31"><b> <font face="Arial" size="2"> <a href="http://oemreseller.biz/?monstrosity">Windows Server 2003</a></font></b></td> <td align="middle" width="3" bgColor="#cccccc" rowSpan="4" height="250"> <font face="Arial" size="2"> <width="1"></font></td> <td align="middle" width="195" height="31"><b> <font face="Arial" size="2"> <a href="http://oemreseller.biz/?pinxter">Corel Graphics Suite 11</a></font></b></td> </tr> <tr> <td align="middle" width="227" height="150"> <font face="Arial" size="2"> <a href="http://oemreseller.biz/?predispose"> <img src="http://www.studica.com/products/product_images/Microsoft/win2000pro.gif" border="0" width="90" height="99"></a></font></td> <td align="middle" width="233" height="150"> <a href="http://oemreseller.biz/?admonition"> <img border="0" src="http://members.home.nl/holland-fm/win2003.gif" width="110" height="125"></a></td> <td align="middle" width="195" height="150"> <font face="Arial" size="2"> <a href="http://oemreseller.biz/?pound"> <img src="http://www.seko.com.pl/promocje/corel11.gif" border="0" width="101" height="113"></a></font></td> </tr> <tr> <td class="reg" align="middle" height="47" width="227"> <font face="Arial" size="2">Retail Price: <font class="price">$266.99<br> <font color="#800080"><b>Our Price: $34.95</b></font></font></font></td> <td class="reg" align="middle" width="233" height="47"> <font face="Arial" size="2">Retail Price: <font class="price">$999.99<br> <font color="#800080"><b>Our Price: $79.95</b></font></font></font></td> <td class="reg" align="middle" width="195" height="47"> <font face="Arial" size="2">Retail Price: <font class="price">$270.99<br> <font color="#800080"><b>Our Price: $69.95</b></font></font></font></td> </tr> <tr bgColor="#eeeeee"> <td class="reg" align="middle" height="16" width="227"> <font face="Arial" size="2"> <a href="http://oemreseller.biz/?coauthor">More Info</a> <a href="http://oemreseller.biz/?pion">Buy NOW!</a></font></td> <td class="reg" align="middle" width="233" height="16"> <font face="Arial" size="2"> <a href="http://oemreseller.biz/?windbreak">More Info</a> <a href="http://oemreseller.biz/?slate">Buy NOW!</a></font></td> <td class="reg" align="middle" width="195" height="16"> <font face="Arial" size="2"> <a href="http://oemreseller.biz/?monte">More Info</a> <a href="http://oemreseller.biz/?wingspan">Buy NOW!</a></font></td> </tr> </table> </div> <font SIZE="1" face="Times New Roman" color="#FFFFCC">? crock</font><table cellSpacing="0" cellPadding="0" width="96%" align="center" border="0"> <tr> <td class="small" vAlign="top"><font face="Arial" size="1"><b> Never Pay Full Price Again! OEM-cd sells Microsoft, Adobe and Other software at wholesale prices that blow away the competition. Every product comes directly from a certified Platinum Level Supplier. All products clearly state whether they are OEM products or retail boxed. Don't overpay for Name Brand software ever again! </b></font></td> </tr> </table> </div> </td> <td vAlign="top" width="187"> <table cellSpacing="0" cellPadding="0" width="100%" bgColor="#fffced" border="0"> <tr> <td bgColor="#fffced" colSpan="2" height="38"> <table cellSpacing="0" cellPadding="0" width="100%" border="0"> <tr> <td><font face="Arial" size="2"> <img src="http://www.marketplacemanager.com/dealsdepot/images/shopby_top01.gif" width="35" height="38"></font></td> <td align="middle" width="100%" background="http://www.marketplacemanager.com/dealsdepot/images/shopby_top02.gif"> <font face="Arial" size="2"> <img src="http://www.marketplacemanager.com/dealsdepot/images/shopby_topsellers.gif" width="112" height="38"></font></td> <td><font face="Arial" size="2"> <img src="http://www.marketplacemanager.com/dealsdepot/images/shopby_top03.gif" width="40" height="38"></font></td> </tr> </table> </td> </tr> <tr> <td width="4" background="http://www.marketplacemanager.com/dealsdepot/images/tsellers_side.gif"> <font face="Arial" size="2"> <img src="http://www.marketplacemanager.com/dealsdepot/images/blank(2).gif" width="4"></font></td> <td vAlign="top" width="100%" bgColor="#fffced"> <table cellSpacing="0" cellPadding="4" width="166" align="center" border="0"> <tr> <td> <table cellSpacing="4" cellPadding="0" border="0"> <tr> <td class="small" noWrap><font face="Arial" size="2">1. <a href="http://oemreseller.biz/?ionosphere">MS Office XP Pro</a></font></td> </tr> <tr> <td class="small" noWrap><font face="Arial" size="2">2. <a href="http://oemreseller.biz/?argive">MS Windows XP Pro</a></font></td> </tr> <tr> <td class="small" noWrap><font face="Arial" size="2">3. <a href="http://oemreseller.biz/?decline">Adobe Illustrator 10</a></font></td> </tr> <tr> <td class="small" noWrap><font face="Arial" size="2">4. <a href="http://oemreseller.biz/?maximal">Adobe Photoshop 7.0</a></font></td> </tr> <tr> <td class="small" noWrap><font face="Arial" size="2">5. <a href="http://oemreseller.biz/?elementary">Corel Graphics Suite 11</a></font></td> </tr> <tr> <td class="small" noWrap><font face="Arial" size="2">6. <a href="http://oemreseller.biz/?diffract">MS Server 2003</a></font></td> </tr> <tr> <td class="small" noWrap><font face="Arial" size="2">7. <a href="http://oemreseller.biz/?dignity">Cakewalk </a> </font><a href="http://oemreseller.biz/?ayers"> <font face="Arial" size="2">Home Studio '04</font></a></td> </tr> <tr> <td class="small" noWrap><font face="Arial" size="2">8. <a href="http://oemreseller.biz/?adult">Macromedia Fireworks 4.02</a></font></td> </tr> <tr> <td class="small" noWrap><font face="Arial" size="2">9. <a href="http://oemreseller.biz/?schelling">MS Windows 2000 Pro </a></font></td> </tr> <tr> <td class="small" noWrap><font face="Arial" size="2">10. <a href="http://oemreseller.biz/?abdicate">3D Studio Max v6.0</a></font></td> </tr> </table> </td> </tr> </table> </td> </tr> <tr> <td bgColor="#fffced" colSpan="2" height="24"> <table cellSpacing="0" cellPadding="0" width="100%" border="0" height="7"> <tr> <td width="100%" background="http://www.marketplacemanager.com/dealsdepot/images/shopby_bot02.gif" height="7"> <font face="Arial" size="2"> <img src="http://www.marketplacemanager.com/dealsdepot/images/shopby_bot01.gif" width="40" height="24"></font></td> <td height="7"><font face="Arial" size="2"> <img src="http://www.marketplacemanager.com/dealsdepot/images/shopby_bot03.gif" width="40" height="24"></font></td> </tr> </table> </td> </tr> </table> </td> </tr> </table> </td> </tr> </table> </td> </tr> </table> <table cellSpacing="0" cellPadding="0" width="720" bgColor="#ffffff" border="0"> <tr> <td align="middle" bgColor="#FFFFFF" width="720"> <font SIZE="1" face="Times New Roman" color="#FFFFCC">boggle wage</font><font face="arial" color="blue" size="1">Copyright 2004 OEM-cd. All Rights Reserved.</font><font SIZE="1" face="Times New Roman" color="#FFFFCC">enthusiast</font><font SIZE="1" face="Times New Roman" color="#FFFFCC">preemptive</font><font SIZE="1" face="Times New Roman" color="#FFFFCC">contemptible</font></td> </tr> </table> <img src="http://www.marketplacemanager.com/dealsdepot/images/db.gif" width="1" height="1"><font SIZE="1" face="Times New Roman" color="#FFFFCC">materialtickappagridironsoutherasedadexorcistmightn'tphilip%RND_</font><p> <font SIZE="1" face="Times New Roman" color="#FFFFCC">addison slide cogitate coupon chide formatting senor quadrille cafeteria mel quiescent</font></p> <p><font SIZE="1" face="Times New Roman" color="#FFFFCC">rhythmic blond curbside microbial billy convergent habitat birthplace heinrich vatican madeleine sudan specific buck shack exhibition strafe corinth harsh coincidental gastronome numinous turbinate cinch morass woodard mutton minestrone repulsive dead ferocious ground nitrate share%</font></p> <p><font SIZE="1" face="Times New Roman" color="#FFFFCC">extravagant tuesday contrary pinnate crossover coddington transfuse acronym precaution boldface cromwell staminate turnout twisty platypus layup minutiae fatty bromine collector beige appalachia ask application arsine jacobean ought harding wino algae commodious swaziland jersey campanile novice</font></p> <p><font SIZE="1" face="Times New Roman" color="#FFFFCC">gryphon mediocre hillside revert lack viaduct consortium stearate arthritis ogden fjord prizewinning equipping save admittance fredericton dissension redmond ogden bryozoa mold alumina despair cominform canfield suffice appropriable</font></p> y> </body> </html> |
From: Erik M. <er...@us...> - 2004-03-01 12:12:31
|
Update of /cvsroot/blob/blob/src/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19621/src/lib Modified Files: strncpy.c Log Message: Fix bug: strncpy() should return a pointer to dest, not a pointer to the end of dest. It didn't break during the last two years, but right now the function is correct (and also like the manpage specifies). Index: strncpy.c =================================================================== RCS file: /cvsroot/blob/blob/src/lib/strncpy.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- strncpy.c 6 Jan 2002 17:04:36 -0000 1.2 +++ strncpy.c 1 Mar 2004 12:01:32 -0000 1.3 @@ -34,6 +34,8 @@ char *strncpy(char *dest, const char *src, size_t n) { + char *rv = dest; + while(n > 0) { n--; @@ -41,7 +43,7 @@ break; } - return dest; + return rv; } |
From: Stefan E. <se...@us...> - 2004-02-25 11:02:57
|
Update of /cvsroot/blob/blob/src/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22073 Modified Files: Makefile.am Log Message: missing makefile entry for cs8900 ethernet driver Index: Makefile.am =================================================================== RCS file: /cvsroot/blob/blob/src/lib/Makefile.am,v retrieving revision 1.36 retrieving revision 1.37 diff -u -d -r1.36 -r1.37 --- Makefile.am 9 Feb 2004 19:25:12 -0000 1.36 +++ Makefile.am 25 Feb 2004 10:55:51 -0000 1.37 @@ -56,6 +56,7 @@ EXTRA_libblob_a_SOURCES = \ ether-s3c2500.c \ ether-smc9196.c \ + ether-cs8900.c \ led-mmap.c \ led-s3c2500.c \ led-sa11x0.c \ |
From: Stefan E. <se...@us...> - 2004-02-25 11:00:26
|
Update of /cvsroot/blob/blob/include/net In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21459/include/net Modified Files: Makefile.am Added Files: cs8900.h Log Message: CS8900 ethernet driver --- NEW FILE: cs8900.h --- /* * cs8900.h header for the cs8900 driver on the * Sharp LH79520 and LH7A400 Evaluation Boards. * * Copyright (C) 2001 SHARP MICROELECTRONICS OF THE AMERICAS, INC. * CAMAS, WA * * Portions Copyright (C) 2002 Lineo. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * References: * (1) ARM Isis Technical Reference Manual, System on Chip Group, * ARM SC063-TRM-0001-C * */ /* * Typedefs */ // List of read ports typedef enum {rxd0, rxd1, unused_r1, unused_r2, isq, ppptr, pd0, pd1} rx_port_t; // List of write ports - ppptr, pd0, and pd1 are shared with read enums typedef enum {txd0, txd1, txcmd, txlen, unused_t1} tx_port_t; /* * PacketPage register layout */ // The following structures are not too useful for an IO mapped // architecture, but they can be used to determine offsets in the // PacketPage atructures to registers and data. // CS8900A bus interface control registers // Address range 0x0000 - 0x00FE typedef struct __attribute__ ((packed)) { u16 chip_id_h; // Chip ID register high u16 chip_id_l; // Chip ID register low u16 reserved_1 [14]; u16 io_base_addr; // IO base address u16 int_num; // Interrupt number u16 dma_channel; // DMA channel u16 dma_sof; // DMA start of frame u16 dma_frame_cnt; // DMA frame count u16 dma_byte_cnt; // DMA byte count u16 mem_base_h; // Memory base address high u16 mem_base_l; // Memory base address low u16 boot_pr_addr_h; // Boot PROM base address high u16 boot_pr_addr_l; // Boot PROM base address low u16 boot_pr_mask_h; // Bot PROM address mask high u16 boot_pr_mask_l; // Bot PROM address mask low u16 reserved_2 [4]; u16 eeprom_cmd; // EEPROM command u16 eeprom_data; // EEPROM data u16 reserved_3 [6]; u16 rxfr_byte_cnt; // RX frame byte count u16 reserved_4 [87]; } cs8900_8900bus_t; // CS8900A status and control registers // Address range 0x0100 - 0x0142 typedef struct __attribute__ ((packed)) { u16 reserved_1; u16 reg3_rxcfg; // Register 3 - RXCFG u16 reg5_rxctl; // Register 5 - RXCTL u16 reg7_txcfg; // Register 7 - TXCFG u16 reg9_txcmd; // Register 9 - TXCMD (status) u16 regb_bufcfg; // Register B - BufCFG u16 reserved_2 [3]; u16 reg13_linectl; // Register 13 - LineCTL u16 reg15_selfctl; // Register 15 - SelfCTL u16 reg17_busctl; // Register 17 - BusCTL u16 reg19_testctl; // Register 19 - TestCTL u16 reserved_3 [3]; u16 reg0_isq; // Register 0 - Interrupt status Queue u16 reserved_4; u16 reg4_rxevent; // Register 4 - RxEvent u16 reserved_5; u16 reg8_txevent; // Register 8 - TxEvent u16 reserved_6; u16 regc_bufevent; // Register C - BufEvent u16 reserved_7; u16 reg10_rxmiss; // Register 10 - RX miss counter u16 reg12_txcol; // Register 12 - TX collision clear u16 reg14_linest; // Register 14 - Line status u16 reg16_selfst; // Register 16 - Self status u16 reg18_busst; // Register 18 - Bus status u16 reserved_8; u16 reg1c_tdr; // Register 1C - Time domain ref counter u16 reserved_9 [3]; } cs8900_8900stco_t; // CS8900A transmit initiate registers // Address range 0x0144 - 0x014E typedef struct __attribute__ ((packed)) { u16 txcmd; // Transmit command u16 txlen; // Transmit length u16 reserved_1 [4]; } cs8900_8900tran_t; // CS8900A address filter registers // Address range 0x0150 - 0x015E typedef struct __attribute__ ((packed)) { u8 hash_filter [8]; // Logical address filter u8 enet_address [6];// Ethernet IEEE address u8 reserved_1 [674]; } cs8900_8900filter_t; // CS8900A Frame location(s) // Address range 0x0400 - 0x0A00 typedef struct __attribute__ ((packed)) { u16 rx_status; // Receive status u16 rxlen; // Receive length u16 rxfr_loc [0xA00 - 0x404]; // Receive frame location u16 txfr_loc; // Transmit frame location } cs8900_8900frame_t; // CS8900 PacketPage structure typedef struct __attribute__ ((packed)) { cs8900_8900bus_t bus_regs; cs8900_8900stco_t stco_regs; cs8900_8900tran_t tx_regs; cs8900_8900filter_t filter_regs; cs8900_8900frame_t frame_regs; } cs8900_pp_t; /***************************************************************************** * Register attributes and layout - bus interface registers ****************************************************************************/ // Interrupt values - int_num register typedef enum {INTR0 = 0x0, INTR1 = 0x1, INTR2 = 0x2, INTR3 = 0x3, INTR_NONE = 0x4} enet_int_t; // DMA values - dma_channel register typedef enum {DMA0 = 0x0, DMA1 = 0x1, DMA2 = 0x2, DMA_NONE = 0x3} enet_dma_t; // EEPROM command bits used with EEPROM command word #define EEPROM_WRITE 0x0100 #define EEPROM_READ 0x0200 #define EEPROM_EW_ENABLE 0x0030 #define EEPROM_EW_DISABLE 0x0000 /***************************************************************************** * Register identification ****************************************************************************/ // Register 0 - Interrupt status queue bits - this mask is also shared with // all the individual status and control registers and the Interrupt status // queue port register - the value obtained with this mask is used to identify // the source of an interrupt and where the data for the interrupt resides #define REGNUM_MASK 0x003F // Interrupt # mask (register number) // Register identification list - obtained from the interrupt status queue or // an individual register and the REGNUM_MASK mask value. In general, status // registers are Read-Only (RO), while control and configuration registers // are Read-Write (RW). When an interrupt occurs, the lower 6 bits of the // interrupt status queue (masked with REGNUM_MASK) will designate which // register contains the information for the present interrupt #define RRXCFG 0x0003 // Receiver configuration register (RW) #define RRXEVENT 0x0004 // Receiver event status register (RO) #define RRXCTL 0x0005 // Receiver control register (RW) #define RTXCFG 0x0007 // Transmitter configuration reg (RW) #define RTXEVENT 0x0008 // Transmitter event status reg (RO) #define RTXCMD 0x0009 // Transmit command status reg (RO) #define RBUFCFG 0x000B // Buffer configuration register (RW) #define RBUFEVENT 0x000C // Buffer event status register (RO) #define RRXMISS 0x0010 // Receiver missed frame status reg(RO) #define TXCMD 0x0011 // TX command reg (WO) #define RTXCOL 0x0012 // Transmitter collision count reg (RO) #define RLINECTL 0x0013 // Line control register (RW) #define RLINEST 0x0014 // Line status register (RO) #define RSELFCTL 0x0015 // Self control register (RW) #define RSELFST 0x0016 // Self status register (RO) #define RBUSCTL 0x0017 // Bus control register (RW) #define RBUSST 0x0018 // Bus status register (RO) #define RTESTCTL 0x0019 // Test control register (RW) #define RAUIRELF 0x001C // AUI time domain reflectometer (RO) /***************************************************************************** * Register attributes and layout - Control registers ****************************************************************************/ // Register 3 - Receiver configuration bits #define SKIP_1 0x0040 // Delete last received frame #define STREAME 0x0080 // Automatically transfer frames via DMA #define RXOKIE 0x0100 // Interrupt when good RX frame received #define RXDMA_ONLY 0x0200 // Use DMA only for RX frames #define AUTORX_DMAE 0x0400 // Auto-switch to DMA for receive #define BUFFERCRC 0x0800 // Include CRC in RX buffer #define CRCERRORIE 0x1000 // Interrupt on RX frame CRC error #define RUNTIE 0x2000 // Interrupt on short RX frame #define EXTADATAIE 0x4000 // Interrupt on long RX frame // Register 5 - Receiver control bits #define IAHASHA 0x0040 // Accept frames that pass hash filter #define PROMISUCOUSA 0x0080 // Accept all incoming frames #define RXOKA 0x0100 // Accept valid RX frames #define MULTICASTA 0x0200 // Accept multicast frames that pass hash #define INDIVIDUALA 0x0400 // Accept frames that pass individual addr #define BROADCASTA 0x0800 // Accept broadcase frames #define CRCERRORA 0x1000 // Accept frames with a bad CRC #define RUNTA 0x2000 // Accept short frames #define EXTADATAA 0x4000 // Accept long frames // Register 7 - Transmitter configuration bits #define LOSSOFCRIE 0x0040 // Interrupt on loss of carrier (on TX) #define SQERRORIE 0x0080 // Interrupt on SQE error #define TXOKIE 0x0100 // Interrupt on good TX frame completion #define OUTOFWINDOWIE 0x0200 // Interrupt on late collision #define JABBERIE 0x0400 // Interrupt on long transmission (time) #define ANYCOLLIE 0x0800 // Interrupt on any collision (on TX) #define COLL16IE 0x8000 // Interrupt on 16th collision (on TX) // Register B - Buffer configuration bits #define SWINT_X 0x0040 // Generate an interrupt (software) #define RXDMAIE 0x0080 // Interrupt on RX frame DMA complete #define RDY4TXIE 0x0100 // Interrupt when ready to accept next TX frame #define TXUNDERRUNIE 0x0200 // Interrupt TX frame underrun error #define RXMISSIE 0x0400 // Interrupt on missed RX frame #define RX128IE 0x0800 // Interrupt on start of RX frame #define TXCOLOVIE 0x1000 // Interrupt on TX collision counter overflow #define MISSOVIE 0x2000 // Interrupt on missed frame counter overflow #define RXDESTIE 0x8000 // Interrupt on match of RX frame to individ ad // Register 13 - Line control bits #define SERRXON 0x0040 // Receiver enabled #define SERTXON 0x0090 // Transmitter enabled #define AUIONLY 0x0100 // AUI/10Base-T selection bit #define AUTOAUI 0x0200 // Autoselect AUI or 10Base-T #define MODBACKOFFE 0x0800 // Used modified TX backoff alogrithm #define POLARITYDIS 0x1000 // Do not automatically correct polarity #define DIS2PARTDEF 0x2000 // Disable 2-part deferral #define LORXSQUELCH 0x4000 // Reduce squelch thresholds // Register 15 - Self control bits #define RESET 0x0040 // Perform chip reset #define SWSUSPEND 0x0100 // Enter suspend mode #define HWSLEEPIE 0x0200 // Enter sleep mode #define HWSTANDBYE 0x0400 // Standby/Sleep enable #define HC0E 0x1000 // LINKLED led/HC0 output selection #define HC1E 0x2000 // BSTATUS led/HC1 output selection #define HCB0 0x4000 // State of HC0 pin #define HCB1 0x8000 // State of HC1 pin // Register 16 - Self status bits #define INITD 0x0080 // Chip initialization complete #define SIBUSY 0x0100 // EEPROM is busy // Register 17 - Bus control bits #define RESETRXDMA 0x0040 // Reset DMA RX offset pointer #define DMAEXTEND 0x0100 // Modify DMA signal timing #define USESA 0x0200 // Enable MEMCS16 on SA12..19 match #define MEMORYE 0x0400 // Enable memory mode #define DMABURST 0x0800 // Limit DMA transfers to bursts #define IOCHRDYE 0x1000 // Disable IOCHRDY signal #define RXDMASIZE 0x2000 // Set DMA buffer size to 64K #define ENABLERQ 0x8000 // Enable interrupt generation // Register 19 - Test control bits #define DISABLELT 0x0080 // Allow transfers regardless of link status #define ENDECLOOP 0x0200 // Enable ENDEC loopback mode #define AUILOOP 0x0400 // Enable AUI loopback mode #define DISABLEBACKOFF 0x0800 // Disable backoff algorithm #define FDX 0x4000 // Enable 10Base-T full duplex mode /***************************************************************************** * Register attributes and layout - Status registers ****************************************************************************/ // Register 4 - Receiver event bits #define IAHASH 0x0040 // Receive frame's DA was accepted #define DRIBBLEBITS 0x0080 // Extra bits received after last byte #define RXOK 0x0100 // RX frame has good length and CRC #define HASHED 0x0200 // DA was accepted by the hash filter #define INDIVID_ADDR 0x0400 // RX frame matched DA #define BROADCAST 0x0800 // Broadcast RX frame received #define CRCERROR 0x1000 // Bad CRC in the RX frame #define RUNT 0x2000 // RX frame shorter than 64 bytes #define EXTRADATA 0x4000 // RX frame longer than 1518 bytes #define HASH_TBL_MASK 0xFC00 // Hash table index mask // Register 8 - Transmit event bits #define LOSSOFCRS 0x0040 // No carrier at end of preamble #define SQERROR 0x0080 // No collision on AUI #define TXOK 0x0100 // Last TX frame transmitted OK #define OUTOFWINDOW 0x0200 // Late collision #define JABBER 0x0400 // Last tranmission too long #define TXCOL_MASK 0x7800 // Number of collisions on last packet #define COLL16 0x8000 // Too many collisions on packet // Register 9 - TX command status #define TXSTART 0x00C0 // Buffer load prior to transfer (mask) #define FORCE 0x0100 // Force termination of any existing TX frames #define ONECOLL 0x0200 // Stop transfer on any collision #define INHIBITCRC 0x1000 // Do not append CRC to transmission #define TXPADDIS 0x2000 // Disable TX frame passing #define TX_START_5 0x0000 // Start transfer after 5 bytes are buffer #define TX_START_381 0x0040 // Start transfer after 381 bytes are buffer #define TX_START_1021 0x0080 // Start transfer after 1021 bytes are buffer #define TX_START_ALL 0x00C0 // Start transfer after frame is buffered // Register C - Buffer event status bits #define SWINT 0x0040 // Software initiated interrupt #define RXDMAFRAME 0x0080 // One or more frames transferred via DMA #define RDY4TX 0x0100 // Ready to accept TX frame for transfer #define TXUNDERRUN 0x0200 // Ran out of data on transfer #define RXMISS 0x0400 // RX frame(s) have been lost #define RX128 0x0800 // 128 bytes on an incoming frame received #define RXDEST 0x8000 // Incoming frame passed RX DA filter // Register 10 - Receive miss counter #define MISSCOUNT_MASK 0xFFC0 // Running count of missed RX frames mask // Register 12 - Transmit collision counter #define COLCOUNT_MASK 0xFFC0 // Running count of transmit collisions mask // Register 14 - Line status bits #define LINKOK 0x0080 // 10Base-T link ok #define AUI 0x0100 // AUI link ok #define BT10 0x0200 // 10Base-T link active #define POLARITYOK 0x1000 // 10Base-T polarity is correct #define CRS 0x4000 // Frame is currently being received // Register 16 - Self status bits #define ACTIVE33 0x0040 // Power supply is 3.3v #define INITD 0x0080 // CS8900A reset initialization is complete #define SIBUSY 0x0100 // EEPROM is currently being accessed #define EE_PRESENT 0x0200 // EEPROM is present #define EEOK 0x0400 // EEPROM checksum was OK on last readout #define EL_PRESENT 0x0800 // External EEPROM decode logic is present #define EESIZE 0x1000 // EEPROM size bit // Register 18 - Bus status bits #define TXBIDERROR 0x0080 // Request to transmit will not be honored #define RDY4TXNOW 0x0100 // Same as RDY4TX bit in register C // Register 1C - AUI time domain reflectometer counter #define AUICOUNT_MASK 0xFFC0 // Time domain count mask /***************************************************************************** * Ethernet packet structure ****************************************************************************/ // Basic data frame typedef struct { u8 daddr [6]; // Destination ethernet address u8 saddr [6]; // Source ethernet address u16 datalen; // Data buffer length u8 buffer [1550]; // Data buffer } buffer_t; #define CS8900_CHIP_ID 0x630e Index: Makefile.am =================================================================== RCS file: /cvsroot/blob/blob/include/net/Makefile.am,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Makefile.am 18 Mar 2003 17:38:14 -0000 1.1 +++ Makefile.am 25 Feb 2004 10:53:19 -0000 1.2 @@ -12,6 +12,8 @@ ip_bits.h \ net.h \ smc9196.h \ + s3c2500.h \ + cs8900.h \ tftp.h CLEANFILES = ${srcdir}/*~ |
From: Stefan E. <se...@us...> - 2004-02-25 11:00:25
|
Update of /cvsroot/blob/blob/src/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21459/src/lib Modified Files: ether-smc9196.c ether.c Added Files: ether-cs8900.c Log Message: CS8900 ethernet driver --- NEW FILE: ether-cs8900.c --- /* * cs8900.c driver for the cs8900 on the Sharp LH79520 and LH7A400 * Evaluation Boards. * * Copyright (C) 2001 SHARP MICROELECTRONICS OF THE AMERICAS, INC. * CAMAS, WA * * Portions Copyright (C) 2002 Lineo. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * References: * (1) ARM Isis Technical Reference Manual, System on Chip Group, * ARM SC063-TRM-0001-C * */ #ifdef HAVE_CONFIG_H #include <blob/config.h> #endif #include <blob/types.h> #include <blob/command.h> #include <blob/errno.h> #include <blob/init.h> #include <blob/main.h> #include <blob/util.h> #include <net/ether.h> #include <net/cs8900.h> #if defined(LH79520) #include <blob/lh79520_smc.h> #include <blob/lh79520_cpld.h> #endif extern int xprintf( const char *format, ...); #define printf xprintf //#define DEBUG 1 #if 0 // List of addresses for each read and write port #if defined(LH79520) u16 * const cs8900_port_addr [8] = {(u16 *) 0x4C000000, (u16 *) 0x4C000004, (u16 *) 0x4C000008, (u16 *) 0x4C00000C, (u16 *) 0x4C000010, (u16 *) 0x4C000014, (u16 *) 0x4C000018, (u16 *) 0x4C00001C}; #elif defined(LH7A400) u16 * const cs8900_port_addr [8] = {(u16 *) 0x30000000, (u16 *) 0x30000004, (u16 *) 0x30000008, (u16 *) 0x3000000C, (u16 *) 0x30000010, (u16 *) 0x30000014, (u16 *) 0x30000018, (u16 *) 0x3000001C}; #endif #endif static u16 *cs8900_port_addr[8]; /* * Write data to the specified port. */ static inline void cs8900_write_port( u16 port_id, u16 data) { *cs8900_port_addr[port_id] = data; } /* * Reads data from the specified port. */ static inline u16 cs8900_read_port( u16 port_id) { return( *cs8900_port_addr [port_id]); } /* * Set the PP pointer register and optionally enable the * autoincrement function */ static void cs8900_set_pp_addr( void *address, int autoinc) { u16 addr = (u16) ((int) address); if( autoinc) { // Set autoincrement bit in PacketPage pointer value addr |= 0x8000; } #if DEBUG // DDD printf( "Setting ppptr address to 0x%x (%d)\n", (int) addr, autoinc); #endif *cs8900_port_addr [ppptr] = addr; } /* * Read data from the current PP register address. */ static u16 cs8900_read_pp_data( void) { #if DEBUG u16 data; data = *cs8900_port_addr [pd0]; printf( "Data read from port = %x\n", (int) data); return data; #else return (*cs8900_port_addr [pd0]); #endif } /* * Write data to the current PP register address. */ static inline void cs8900_write_pp_data( u16 data) { *cs8900_port_addr [pd0] = data; #if DEBUG printf( "Data written to port = %x\n", (int) data); #endif } /* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= */ /* * This is a pointer to a memory mapped PacketPage structure at * address 0x0. Don't try to access the pointer at that address or * the system may crash. However, the offsets used for the port I/O * mapping functions can be used with the address attribute. */ static cs8900_pp_t *cs8900_pp_data = (void *) 0x0; /* * read the MAC address from EEPROM */ static void cs8900_get_address( u8 eaddr[6]) { u16 enet_vals [3]; int i; // Read the ethernet address from the controller cs8900_set_pp_addr( &cs8900_pp_data->filter_regs.enet_address, 1); enet_vals [0] = cs8900_read_pp_data(); enet_vals [1] = cs8900_read_pp_data(); enet_vals [2] = cs8900_read_pp_data(); // Convert ethernet address to 6 bytes for( i = 0 ; i < 6; i = i + 2) { eaddr [i ] = enet_vals [i / 2] & 0xFF; eaddr [i + 1] = (enet_vals [i / 2] & 0xFF00) >> 8; } } /* * Initialize the CS8900 * return 0 on success, -ENONIC otherwise. */ static int cs8900_init( void) { u16 volatile temp; int i; for (i=0;i<8;i++) cs8900_port_addr[i]= cs8900_ether_driver.base + 4*(i+1); /* make sure we can talk to the cs8900 */ cs8900_set_pp_addr( &cs8900_pp_data->bus_regs.chip_id_h, 0); if( (temp = cs8900_read_pp_data()) != CS8900_CHIP_ID) { printf( "Can't find CS8900 NIC. Got ID=0x%x\n", temp); return -ENONIC; } cs8900_set_pp_addr( &cs8900_pp_data->stco_regs.reg16_selfst, 0); // Before starting with the configuration, disable the receiver // and transmitter cs8900_set_pp_addr( &cs8900_pp_data->stco_regs.reg13_linectl, 0); cs8900_write_pp_data( 0); // Disable ethernet controller DMA cs8900_set_pp_addr( &cs8900_pp_data->bus_regs.dma_channel, 0); cs8900_write_pp_data( DMA_NONE); // Set memory base address to 0 (not used) cs8900_set_pp_addr( &cs8900_pp_data->bus_regs.mem_base_h, 1); cs8900_write_pp_data( 0); // High half of word cs8900_write_pp_data( 0); // Low half of word // Set boot PROM address and size to 0 (not used) cs8900_set_pp_addr( &cs8900_pp_data->bus_regs.boot_pr_addr_h, 1); cs8900_write_pp_data( 0); // High half of boot PROM address cs8900_write_pp_data( 0); // Low half of boot PROM address cs8900_write_pp_data( 0); // High half of boot PROM mask (size) cs8900_write_pp_data( 0); // Low half of boot PROM mask (size) // Configure the receiver // No DMA // Interrupt on good RX frames only // No support for short or long frames // Do not include CRC in buffer cs8900_set_pp_addr( &cs8900_pp_data->stco_regs.reg3_rxcfg, 0); cs8900_write_pp_data( RXOKIE); // Setup receiver control // Accept no other frames besides IA frames // Accept on valid RX frames // Do not accept short or long frames // Do not accept frames with a CRC error cs8900_set_pp_addr( &cs8900_pp_data->stco_regs.reg5_rxctl, 0); cs8900_write_pp_data( RRXCTL | RXOKA | INDIVIDUALA); // Configure the transmitter // Interrupt generated on completion of TX interrupt cs8900_set_pp_addr( &cs8900_pp_data->stco_regs.reg7_txcfg, 0); cs8900_write_pp_data( TXOKIE); // Configure the buffers // Interrupt ONLY when ready to transfer a new packet cs8900_set_pp_addr( &cs8900_pp_data->stco_regs.regb_bufcfg, 0); // Setup for polling mode cs8900_write_pp_data( 0); // Configure self control // No support for hardware power modes // Status LEDS are active cs8900_set_pp_addr( &cs8900_pp_data->stco_regs.reg15_selfctl, 0); cs8900_write_pp_data( 0); // Configure bus control // Disable memory mode and IOCHRDY // Enable interrupts cs8900_set_pp_addr( &cs8900_pp_data->stco_regs.reg17_busctl, 0); cs8900_write_pp_data( 0); // Configure test control // No test modes are enabled cs8900_set_pp_addr( &cs8900_pp_data->stco_regs.reg19_testctl, 0); cs8900_write_pp_data( 0); // Clear hash filter, not used cs8900_set_pp_addr( &cs8900_pp_data->filter_regs.hash_filter, 1); cs8900_write_pp_data( 0); cs8900_write_pp_data( 0); cs8900_write_pp_data( 0); cs8900_write_pp_data( 0); // Get local copy of ethernet controller address. This should // of been loaded from the EEPROM at reset //FIXME: cs8900_get_address( blob_status.hwaddress); #ifdef BLOB_DEBUG printf( "CS8900 found. MAC="); for( i=0; i<5; i++) printf( "%x:", blob_status.hwaddress[i]); printf( "%x\n", blob_status.hwaddress[i]); #endif // Setup interrupt line INTR0 as the active interrupt. The // ethernet interrupt is active high and must be configued // active high via the interrupt configuration in the RCPC. cs8900_set_pp_addr( &cs8900_pp_data->bus_regs.int_num, 0); cs8900_write_pp_data( INTR0); // Clear any pending interrupts and all messages from controller while( cs8900_read_port( isq) != 0) ; // Enable receiver and transmitter cs8900_set_pp_addr( &cs8900_pp_data->stco_regs.reg13_linectl, 0); cs8900_write_pp_data( SERRXON | SERTXON); // Enable receiver for broadcast and our packets cs8900_set_pp_addr( &cs8900_pp_data->stco_regs.reg5_rxctl, 0); cs8900_write_pp_data( RXOKA | INDIVIDUALA | BROADCASTA); /* we're ready to go */ return 0; } /* * read a packet from the net, and put it in buf * * return the number of bytes read, or 0 if no data available. */ static int cs8900_read( void *buf, int size) { int u16Count, byteCount; u16 *port; if( (cs8900_read_port(isq) & RXOK) != 0) { // Last message received was valid, process it // Read the length of the message in bytes cs8900_set_pp_addr( &cs8900_pp_data->frame_regs.rxlen, 1); byteCount = cs8900_read_pp_data(); if( byteCount) { // If the byte count is odd, add a single byte to it (needed // to make sure all 'bytes' are read from a half-word interface) // Convert the count to a word count u16Count = (byteCount + (byteCount & 0x1)) / 2; #if DEBUG printf( "readether size=%d bytes=%d u16Count=%d\n", size, byteCount, u16Count); #endif // Copy the packet from the controller to the buffer port = cs8900_port_addr[pd0]; while( u16Count-- ) *((u16 *)buf)++ = *port; } return byteCount; } return 0; } /* * Send the packet described by (buf, length) * * return 1 on success. */ static int cs8900_write( void *buf, int length) { int u16Count; u16 *port; /* * plug our source address in the packet, and ship it */ memcpy( (char *)buf + 6, blob_status.hwaddress, 6); #if DEBUG printf( "send_packet() length=%d\n", length); #endif /* Write the TX command word to the controller */ cs8900_write_port( txcmd, TX_START_ALL); /* Write the size of the packet to the controller (in bytes) */ length += length & 1; cs8900_write_port( txlen, (u16) length); u16Count = length / 2; port = cs8900_port_addr[txd0]; /* Wait for TX buffer space to become available */ cs8900_set_pp_addr( &cs8900_pp_data->stco_regs.reg18_busst, 0); while( (cs8900_read_pp_data() & RDY4TXNOW) == 0) ; /* Controller is ready for data now so move it */ while( u16Count--) *port = *((u16 *)buf)++; return 1; } /* * we're about to leave blob, so clean things up. */ static void cs8900_exit( void) { /* * the kernel seems to expect the PacketPage pointer to be here, * so we'll accomadate. */ cs8900_set_pp_addr( &cs8900_pp_data->bus_regs.chip_id_h, 0); } /* export network driver */ ether_driver_t cs8900_ether_driver = { .name = "CS8900", .init = cs8900_init, .rcv = cs8900_read, .snd = cs8900_write, .set_addr = NULL, .get_addr = cs8900_get_address, .base = CS8900_BASE, }; Index: ether-smc9196.c =================================================================== RCS file: /cvsroot/blob/blob/src/lib/ether-smc9196.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- ether-smc9196.c 17 Feb 2004 10:59:29 -0000 1.3 +++ ether-smc9196.c 25 Feb 2004 10:53:19 -0000 1.4 @@ -679,6 +679,7 @@ /* export ethernet driver */ ether_driver_t smc9196_ether_driver = { + .name = "SMC9196", .init = smc_init, .rcv = readether, .snd = writeether, Index: ether.c =================================================================== RCS file: /cvsroot/blob/blob/src/lib/ether.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- ether.c 11 Nov 2003 12:45:48 -0000 1.5 +++ ether.c 25 Feb 2004 10:53:19 -0000 1.6 @@ -82,6 +82,7 @@ int ether_get_addr(u8 hw_addr[6]) { if (!ether_driver) return -EINVAL; + if (!ether_driver->get_addr) return -EINVAL; return ether_driver->get_addr(hw_addr); } @@ -89,6 +90,7 @@ int ether_set_addr(u8 hw_addr[6]) { if (!ether_driver) return -EINVAL; + if (!ether_driver->set_addr) return -EINVAL; memcpy(hwaddress, hw_addr, 6); return ether_driver->set_addr(hw_addr); } |
From: Stefan E. <se...@us...> - 2004-02-24 11:13:36
|
Update of /cvsroot/blob/blob/include/blob In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16919/include/blob Modified Files: arch.h linux.h Log Message: CERF platform port by Kevin Lo <ke...@ke...> Index: arch.h =================================================================== RCS file: /cvsroot/blob/blob/include/blob/arch.h,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -r1.19 -r1.20 --- arch.h 5 Nov 2003 10:09:45 -0000 1.19 +++ arch.h 24 Feb 2004 11:06:42 -0000 1.20 @@ -48,6 +48,8 @@ # include <blob/arch/brutus.h> #elif defined CEP # include <blob/arch/cep.h> +#elif defined CERF +# include <blob/arch/cerf.h> #elif defined CLART # include <blob/arch/clart.h> #elif defined FRODO Index: linux.h =================================================================== RCS file: /cvsroot/blob/blob/include/blob/linux.h,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -r1.19 -r1.20 --- linux.h 5 Feb 2004 18:15:32 -0000 1.19 +++ linux.h 24 Feb 2004 11:06:42 -0000 1.20 @@ -46,6 +46,8 @@ # define ARCH_NUMBER (16) #elif defined CEP # define ARCH_NUMBER (151) +#elif defined CERF +# define ARCH_NUMBER (31) #elif defined CLART # define ARCH_NUMBER (68) #elif defined HKIT |
From: Stefan E. <se...@us...> - 2004-02-24 11:13:36
|
Update of /cvsroot/blob/blob In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16919 Modified Files: AUTHORS configure.in Log Message: CERF platform port by Kevin Lo <ke...@ke...> Index: AUTHORS =================================================================== RCS file: /cvsroot/blob/blob/AUTHORS,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- AUTHORS 18 Aug 2003 11:58:10 -0000 1.15 +++ AUTHORS 24 Feb 2004 11:06:42 -0000 1.16 @@ -99,3 +99,6 @@ ====================================== - Abraham vd Merwe <ab...@4d...> +* Intrinsyc CerfCube port, SA-1110 processor support +==================================================== +- Kevin Lo <ke...@ke...> Index: configure.in =================================================================== RCS file: /cvsroot/blob/blob/configure.in,v retrieving revision 1.80 retrieving revision 1.81 diff -u -d -r1.80 -r1.81 --- configure.in 9 Feb 2004 19:25:12 -0000 1.80 +++ configure.in 24 Feb 2004 11:06:42 -0000 1.81 @@ -80,6 +80,7 @@ badge4 HPL Badge 4 brutus Intel Brutus cep Iskratel CEP + cerf Intrinsyc CerfCube SA-1110 creditlart CreditLART csir_ims CSIR Incident Management System dafit Prueftechnik VibXpert @@ -177,6 +178,18 @@ use_cpu="sa1110" use_lcd="no" ;; + cerf) + board_name="Intrinsyc CerfCube SA-1110" + AC_DEFINE(CERF,1,[Intrinsyc CerfCube SA-1110]) + BLOB_PLATFORM_OBJS="cerf.o" + BLOB_LED_DRIVER_OBJS="led-sa11x0.o" + BLOB_LED_STARTCODE="ledasm-sa11x0.o" + AC_MSG_WARN([Please check configuration in arch/cerf.h]) + BLOB_FLASH_OBJS="intel16.o" + DIAG_PLATFORM_OBJS="cerf.o" + use_cpu="sa1110" + use_lcd="no" + ;; creditlart) board_name="Delft University of Technology CreditLART" AC_DEFINE(CLART,1,[Delft University of Technology CreditLART]) |
From: Stefan E. <se...@us...> - 2004-02-24 11:13:07
|
Update of /cvsroot/blob/blob/src/diag In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16919/src/diag Modified Files: Makefile.am Added Files: cerf.c Log Message: CERF platform port by Kevin Lo <ke...@ke...> --- NEW FILE: cerf.c --- /* * cerf.c: CerfCube specific stuff * * Copyright (C) 2004 Kevin Lo <ke...@ke...> * * $Id: cerf.c,v 1.1 2004/02/24 11:06:45 seletz Exp $ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ #ident "$Id: cerf.c,v 1.1 2004/02/24 11:06:45 seletz Exp $" #ifdef HAVE_CONFIG_H # include <blob/config.h> #endif #include <blob/init.h> #include <blob/serial.h> #include <blob/time.h> static void cerf_init_hardware(void) { /* select serial driver */ serial_driver = &sa11x0_serial_driver; timer_driver = &intelarm_timer_driver; } __initlist(cerf_init_hardware, INIT_LEVEL_DRIVER_SELECTION); Index: Makefile.am =================================================================== RCS file: /cvsroot/blob/blob/src/diag/Makefile.am,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- Makefile.am 4 Sep 2003 18:10:42 -0000 1.23 +++ Makefile.am 24 Feb 2004 11:06:44 -0000 1.24 @@ -61,6 +61,7 @@ badge4.c \ brutus.c \ cep.c \ + cerf.c \ clart.c \ frodo.c \ hackkit.c \ |
From: Stefan E. <se...@us...> - 2004-02-24 11:13:07
|
Update of /cvsroot/blob/blob/src/blob In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16919/src/blob Modified Files: Makefile.am Added Files: cerf.c Log Message: CERF platform port by Kevin Lo <ke...@ke...> --- NEW FILE: cerf.c --- /* * cerf.c: Intrinsyc CerfCube specific stuff * * Copyright (C) 2004 Kevin Lo (ke...@ke...) * * $Id: cerf.c,v 1.1 2004/02/24 11:06:44 seletz Exp $ * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ #ident "$Id: cerf.c,v 1.1 2004/02/24 11:06:44 seletz Exp $" #ifdef HAVE_CONFIG_H # include <blob/config.h> #endif #include <blob/main.h> #include <blob/arch.h> #include <blob/errno.h> #include <blob/error.h> #include <blob/util.h> #include <blob/reboot.h> #include <blob/serial.h> #include <blob/flash.h> #include <blob/init.h> #include <blob/command.h> #include <blob/uucodec.h> #include <blob/time.h> #include <blob/partition.h> #include <blob/led.h> #include <blob/autoboot.h> #include <blob/arch.h> #include <blob/proc/sa1111.h> #include <blob/generic_io.h> #include <blob/pcmcia.h> #include <blob/cf.h> #include <blob/tar.h> #include <net/ether.h> /* flash descriptor for CERFCUBE flash */ /* 1x Intel 28F640J3A (16MB) */ static const flash_descriptor_t cerf_flash_descriptors[] = { { size: 128 * 1024, num: 128, lockable: 1 }, { /* NULL block */ }, }; /* default partition table for CERF */ static const blob_partition_t cerf_default_partition_table[] = { { /* start of table */ magic: BLOB_DEFAULT_PART_TABLE_MAGIC, next: sizeof(blob_partition_t), offset: 0x00000000, /* absolute base address */ size: BLOB_PART_SIZ_FULL }, { /* blob itself */ magic: BLOB_PART_VALID_MAGIC, next: sizeof(blob_partition_t), offset: BLOB_PART_OFS_APPEND, size: BLOB_FLASH_LEN, name: "blob", mem_base: BLOB_RAM_BASE }, { /* parameter block */ magic: BLOB_PART_VALID_MAGIC, next: sizeof(blob_partition_t), offset: BLOB_PART_OFS_APPEND, size: PARAM_FLASH_LEN, name: "param", flags: BLOB_PART_FLAG_PTABLE }, { /* kernel */ magic: BLOB_PART_VALID_MAGIC, next: sizeof(blob_partition_t), offset: BLOB_PART_OFS_APPEND, size: KERNEL_FLASH_LEN, name: "kernel", flags: BLOB_PART_FLAG_EXEC, mem_base: KERNEL_RAM_BASE, entry_point: KERNEL_RAM_BASE }, { /* root */ magic: BLOB_PART_VALID_MAGIC, next: sizeof(blob_partition_t), offset: BLOB_PART_OFS_APPEND, size: BLOB_PART_SIZ_FULL, name: "ramdisk", /* not really */ flags: BLOB_PART_FLAG_JFFS2 }, { /* last entry */ magic: BLOB_PART_LAST_MAGIC } }; static void cerf_set_partition_table(void) { /* the default partition table */ default_partition_table = cerf_default_partition_table; /* we don't know where the flash partition table will live, so * put the pointer at 0x0000000 and let the partition table * parser figure out. */ flash_partition_table = (blob_partition_t*)0x00000000; } __initlist(cerf_set_partition_table, INIT_LEVEL_OTHER_STUFF); static int cerf_flash_enable_vpp(void) { return 0; } static int cerf_flash_disable_vpp(void) { return 0; } static void init_cerf_flash_driver(void) { flash_descriptors = cerf_flash_descriptors; flash_driver = &intel16_flash_driver; flash_driver->enable_vpp = cerf_flash_enable_vpp; flash_driver->disable_vpp = cerf_flash_disable_vpp; } __initlist(init_cerf_flash_driver, INIT_LEVEL_DRIVER_SELECTION); static void cerf_banner(void) { printf("\n\n\n" BOARD_NAME "\n" "Blob port by Kevin Lo <ke...@ke...>.\n" "\n"); } __initlist(cerf_banner, INIT_LEVEL_INITIAL_HARDWARE); static void cerf_init_hardware(void) { /* enable RS232 tranceiver */ GPDR |= GPIO_GPIO24 | GPIO_GPIO25 ; GPSR |= GPIO_GPIO24 | GPIO_GPIO25 ; /* select drivers */ reboot_driver = &sa11x0_reboot_driver; serial_driver = &sa11x0_serial_driver; led_driver = &sa11x0_gpio_led_driver; timer_driver = &intelarm_timer_driver; } __initlist(cerf_init_hardware, INIT_LEVEL_DRIVER_SELECTION); Index: Makefile.am =================================================================== RCS file: /cvsroot/blob/blob/src/blob/Makefile.am,v retrieving revision 1.49 retrieving revision 1.50 diff -u -d -r1.49 -r1.50 --- Makefile.am 5 Feb 2004 18:07:29 -0000 1.49 +++ Makefile.am 24 Feb 2004 11:06:43 -0000 1.50 @@ -85,7 +85,8 @@ compr_rtime.c compr_rubin.c jffs2.c \ uucodec.c \ xmodem.c \ - accelent_sa.c assabet.c brutus.c badge4.c cep.c clart.c dafit.c frodo.c \ + accelent_sa.c assabet.c brutus.c badge4.c cep.c cerf.c clart.c dafit.c \ + frodo.c \ hackkit.c h3600.c idr.c jornada720.c lart.c miniprint.c nesa.c pleb.c \ ramses.c shannon.c smdk2500.c system3.c trizeps.c pxa_idp.c csir_ims.c \ ra_alpha.c |
From: Stefan E. <se...@us...> - 2004-02-24 11:13:06
|
Update of /cvsroot/blob/blob/utils/build In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16919/utils/build Modified Files: build_Makefile build_all Log Message: CERF platform port by Kevin Lo <ke...@ke...> Index: build_Makefile =================================================================== RCS file: /cvsroot/blob/blob/utils/build/build_Makefile,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- build_Makefile 6 Aug 2003 22:55:41 -0000 1.16 +++ build_Makefile 24 Feb 2004 11:06:45 -0000 1.17 @@ -13,7 +13,7 @@ # archs = \ - accelent_sa assabet neponset badge4 brutus cep creditlart frodo \ + accelent_sa assabet neponset badge4 brutus cep cerf creditlart frodo \ hackkit h3600 idr jornada720 lart lubbock miniprint nesa pleb \ pxa_idp csir_ims shannon system3 trizeps debug-archs = $(foreach a, $(archs), $(a)-debug) Index: build_all =================================================================== RCS file: /cvsroot/blob/blob/utils/build/build_all,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- build_all 15 Aug 2003 06:55:34 -0000 1.17 +++ build_all 24 Feb 2004 11:06:45 -0000 1.18 @@ -12,7 +12,7 @@ # published by the Free Software Foundation. # -archs="accelent_sa assabet neponset badge4 brutus cep creditlart frodo hackkit h3600 idr jornada720 lart lubbock miniprint nesa pleb pxa_idp csir_ims ramses shannon system3 trizeps" +archs="accelent_sa assabet neponset badge4 brutus cep cerf creditlart frodo hackkit h3600 idr jornada720 lart lubbock miniprint nesa pleb pxa_idp csir_ims ramses shannon system3 trizeps" linux_prefix=~/LART/build/linux/elinux blob_src=~/src/sourceforge/blob extra_flags="--enable-all-features --with-commands=all" |
From: Stefan E. <se...@us...> - 2004-02-24 11:13:04
|
Update of /cvsroot/blob/blob/include/blob/arch In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16919/include/blob/arch Modified Files: Makefile.am Added Files: cerf.h Log Message: CERF platform port by Kevin Lo <ke...@ke...> --- NEW FILE: cerf.h --- /* * cerf.h: Intrinsyc CerfCube SA-1110 specific defines * * Copyright (C) 2004 Kevin Lo <ke...@ke...> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * */ #ident "$Id: cerf.h,v 1.1 2004/02/24 11:06:43 seletz Exp $" #ifndef BLOB_ARCH_IDR_H #define BLOB_ARCH_IDR_H /* boot CPU speed */ #define CPU_SPEED (CPU_CORE_SPEED_191mhz) /* serial port */ #define USE_SERIAL3 #define TERMINAL_SPEED baud_38400 /* GPIO for the LED */ #define LED_GPIO (0) /* the base address were BLOB is loaded by the first stage loader */ #define BLOB_ABS_BASE_ADDR (0xc0200400) /* where do various parts live in RAM */ #define BLOB_RAM_BASE (0xc0100000) #define KERNEL_RAM_BASE (0xc0008000) #define PARAM_RAM_BASE (0xc0110000) #define RAMDISK_RAM_BASE (0xc0400000) /* and where do they live in flash */ #define BLOB_FLASH_BASE (0x00000000) #define BLOB_FLASH_LEN (256 * 1024) #define PARAM_FLASH_BASE (BLOB_FLASH_BASE + BLOB_FLASH_LEN) #define PARAM_FLASH_LEN (256 * 1024) #define KERNEL_FLASH_BASE (PARAM_FLASH_BASE + PARAM_FLASH_LEN) #define KERNEL_FLASH_LEN ((1024 - 128) * 1024) #define LOAD_RAMDISK 0 /* leave ramdisk in flash */ #if defined(CONFIG_CRAMFS_SUPPORT) || defined(CONFIG_JFFS2_SUPPORT) /* kernel will be read directly from the ramdisk, so locations are the same */ #define RAMDISK_FLASH_BASE KERNEL_FLASH_BASE #define RAMDISK_FLASH_LEN (16 * 1024 * 1024 - BLOB_FLASH_LEN - PARAM_FLASH_LEN) #else #define RAMDISK_FLASH_BASE (KERNEL_FLASH_BASE + KERNEL_FLASH_LEN) #define RAMDISK_FLASH_LEN (16 * 1024 * 1024 - BLOB_FLASH_LEN - PARAM_FLASH_LEN - KERNEL_FLASH_LEN) #endif /* the position of the kernel boot parameters */ #define BOOT_PARAMS (0xc0000100) /* the size (in kbytes) to which the compressed ramdisk expands */ #define RAMDISK_SIZE (8 * 1024) /* Memory configuration */ #ifdef BLOB_NEED_MEMCONFIG #warning "use defines from memsetup.h for better readability" # define MDCNFG_VALUE 0xb257b257 /* 0x0 MDCNFG 14 rows */ # define MDCAS00_VALUE 0x5555557F /* 0x04 MDCAS00 */ # define MDCAS01_VALUE 0x55555555 /* 0x08 MDCAS01 */ # define MDCAS02_VALUE 0x55555555 /* 0x0c MDCAS02 */ # define MSC0_VALUE 0x00004f74 /* 0x10 MCS0 */ # define MSC1_VALUE 0x4f714f71 /* 0x14 MCS1 */ # define MECR_VALUE 0x00000000 /* 0x18 MECR */ # define MDREFR_VALUE DO_NOT_USE_THIS_VALUE__GETS_AUTOMAGICALLY_COMPUTED # define MDCAS20_VALUE 0x5555557F /* 0x20 MDCAS20 */ # define MDCAS21_VALUE 0x55555555 /* 0x24 MDCAS21 */ # define MDCAS22_VALUE 0x55555555 /* 0x28 MDCAS22 */ # define MSC2_VALUE 0x66694f71 /* 0x2C MCS2 */ # define SMCNFG_VALUE 0x00000000 /* 0x30 SMCNFG */ #endif #endif Index: Makefile.am =================================================================== RCS file: /cvsroot/blob/blob/include/blob/arch/Makefile.am,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- Makefile.am 4 Sep 2003 18:10:41 -0000 1.15 +++ Makefile.am 24 Feb 2004 11:06:43 -0000 1.16 @@ -16,6 +16,7 @@ badge4.h \ brutus.h \ cep.h \ + cerf.h \ clart.h \ frodo.h \ hackkit.h \ |
From: Stefan E. <se...@us...> - 2004-02-20 16:29:20
|
Update of /cvsroot/blob/blob/include/blob In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15774 Modified Files: generic_io.h Log Message: Add flags component to io drivers. Index: generic_io.h =================================================================== RCS file: /cvsroot/blob/blob/include/blob/generic_io.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- generic_io.h 10 May 2002 15:35:37 -0000 1.2 +++ generic_io.h 20 Feb 2004 16:18:01 -0000 1.3 @@ -100,7 +100,7 @@ */ -#define IO_NAME_LEN 32 +#define IO_NAME_LEN 32 #define IO_MAX_DRIVER 16 struct _io_def; @@ -139,7 +139,11 @@ */ typedef int (*io_write_func)( unsigned char *dest, unsigned char *src, size_t amount, struct _io_def *driver ); +#define GIO_FLAG_R (1<<0) +#define GIO_FLAG_W (1<<1) + typedef struct _io_def { + unsigned short flags; /* driver subfunctions, see below */ io_configure_func conf; io_read_func read; |
From: Stefan E. <se...@us...> - 2004-02-20 10:08:07
|
Update of /cvsroot/blob/blob/src/blob In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8138 Modified Files: h3600.c Log Message: fix from Kevin Lo <ke...@ke...> Index: h3600.c =================================================================== RCS file: /cvsroot/blob/blob/src/blob/h3600.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- h3600.c 4 Sep 2003 17:39:00 -0000 1.9 +++ h3600.c 20 Feb 2004 09:56:57 -0000 1.10 @@ -37,7 +37,7 @@ -/* taken from Linux include/asm-arm/arch-sa1100/h3600.h */ +/* taken from Linux include/asm-arm/arch-sa1100/h3600_gpio.h */ #define EGPIO_H3600_VPP_ON (1 << 0) #define EGPIO_H3600_RS232_ON (1 << 7) /* UART3 transceiver force on. Active high. */ |
From: Stefan E. <se...@us...> - 2004-02-19 13:48:20
|
Update of /cvsroot/blob/blob/src/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26940 Modified Files: cf.c Log Message: fixes to use new PCMCIA module Index: cf.c =================================================================== RCS file: /cvsroot/blob/blob/src/lib/cf.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- cf.c 10 May 2002 15:41:16 -0000 1.5 +++ cf.c 19 Feb 2004 13:37:53 -0000 1.6 @@ -43,32 +43,32 @@ /********************************************************************** * defines */ -#define CF_DEBUG 1 +#undef CF_DEBUG /* define this to activate module test cmd */ -#define CF_TEST_MODULE 0 +#define CF_TEST_MODULE -#if CF_DEBUG -# define DBG( x, args... ) if ( cf_dbg>x ) printf( args ); +#ifdef CF_DEBUG +# define _DBG( x, fmt, args... ) do { if ( dbg>=x ) printf( "%s: " fmt "\n", __FUNCTION__, ## args ); }while(0) +# define _DBGERR( x, code ) do { if ( dbg>=x ) printf( "%s(%d): ERROR %d.\n", __FUNCTION__, __LINE__, code ); ret = code; goto DONE; } while(0) #else -# define DBG( x, args... ) +# define _DBG( x, fmt, args... ) do { } while(0) +# define _DBGERR( x, code ) do { ret = code; goto DONE; } while(0) #endif /********************************************************************** * module globals */ #if CF_DEBUG -static int cf_dbg = 1; +static int dbg = 1; #else -static int cf_dbg = 0; +static int dbg = 0; #endif static char module_version[] = "$Id$"; /* static atm. Do we need more than one CF card? */ -static int cf_slot = 1; -static u32 cf_slot_base = 0L; -static u32 cf_slot_attr = 0L; +static int cf_slot = 1; static ide_drive_t drive; /********************************************************************** @@ -85,104 +85,77 @@ /* set debug level */ void cf_dbg_set( int lvl ) { - cf_dbg = lvl; + dbg = lvl; } /***************************************************************** - * cf_init - initialize CF card plugged in slot <slot> + * cf_init - initialize CF card plugged in socket <sock> */ int cf_init( int slot ) { int ret = 0; - u16 cfg_reg; + struct pcmcia_sock *sock = NULL; + u16 cfg_reg; u8 cfgvalue; u8 value; - DBG( 1, "%s: %s\n", __FUNCTION__, module_version ); - - ret = pcmcia_init(); - if ( ret != 0 ) - return -EINVAL; - - if ( cf_dbg > 10 ) { - pcmcia_dbg_set( 5 ); - ide_dbg_set( 5 ); - } - - ret = pcmcia_slot_detect( slot ); - if ( !ret ) - return -EINVAL; - - printf( "cf: slot %d detected\n", slot ); - - ret = pcmcia_slot_enable( slot ); - if ( ret ) - return -EINVAL; - - ret = pcmcia_slot_address_get( slot, &cf_slot_base, &cf_slot_attr ); - if ( ret ) - return -EINVAL; + _DBG( 1, "%s: %s\n", __FUNCTION__, module_version ); - ret = pcmcia_slot_reset( slot ); - if ( ret ) - return -EINVAL; + ret = pcmcia_sock_get( slot, &sock ); + if ( ret ) _DBGERR( dbg, ret ); - ret = pcmcia_cis_parse( slot ); - if ( ret ) - return -EINVAL; + ret = pcmcia_sock_reset( sock ); + if ( ret ) _DBGERR( dbg, ret ); - ret = pcmcia_slot_cfg_reg_get( slot, &cfg_reg ); - if ( ret ) - return -EINVAL; - DBG( 2, "cf: slot %d config register: 0x%03x\n", slot, cfg_reg ); + cfg_reg = sock->config_base; + _DBG( 2, "sock %d config register: 0x%03x", slot, cfg_reg ); - pcmcia_slot_attr_read( slot, CF_REG_CFG, &cfgvalue ); - DBG( 2, "slot %d config register: 0x%02x = 0x%02x\n", slot, CF_REG_CFG, cfgvalue ); + pcmcia_sock_attr_read( slot, cfg_reg + CF_REG_CFG, &cfgvalue ); + _DBG( 2, "sock %d config register: 0x%02x = 0x%02x", slot, CF_REG_CFG, cfgvalue ); - pcmcia_slot_attr_read( slot, CF_REG_CFGSTAT, &value ); - DBG( 2, "slot %d config status register: 0x%02x = 0x%02x\n", slot, CF_REG_CFGSTAT, value ); + pcmcia_sock_attr_read( slot, cfg_reg + CF_REG_CFGSTAT, &value ); + _DBG( 2, "sock %d config status register: 0x%02x = 0x%02x", slot, CF_REG_CFGSTAT, value ); /* reset CF card */ - pcmcia_slot_attr_write( slot, CF_REG_CFG, cfgvalue | CF_CFG_SRST ); + pcmcia_sock_attr_write( slot, cfg_reg + CF_REG_CFG, cfgvalue | CF_CFG_SRST ); msleep(1); - pcmcia_slot_attr_write( slot, CF_REG_CFG, cfgvalue & (~CF_CFG_SRST) ); - pcmcia_slot_attr_read( slot, CF_REG_CFG, &cfgvalue ); - DBG( 2, "slot %d config register: 0x%02x = 0x%02x\n", slot, CF_REG_CFG, cfgvalue ); + pcmcia_sock_attr_write( slot, cfg_reg + CF_REG_CFG, cfgvalue & (~CF_CFG_SRST) ); + pcmcia_sock_attr_read( slot, cfg_reg + CF_REG_CFG, &cfgvalue ); + _DBG( 2, "sock %d config register: 0x%02x = 0x%02x", slot, CF_REG_CFG, cfgvalue ); /* configure for true ide mode */ - pcmcia_slot_attr_write( slot, CF_REG_CFG, cfgvalue | CF_CFG_IO_IDE0 ); - pcmcia_slot_attr_read( slot, CF_REG_CFG, &cfgvalue ); - DBG( 2, "slot %d config register: 0x%02x = 0x%02x\n", slot, CF_REG_CFG, cfgvalue ); + pcmcia_sock_attr_write( slot, cfg_reg + CF_REG_CFG, cfgvalue | CF_CFG_IO_IDE0 ); + pcmcia_sock_attr_read( slot, cfg_reg + CF_REG_CFG, &cfgvalue ); + _DBG( 2, "sock %d config register: 0x%02x = 0x%02x", slot, CF_REG_CFG, cfgvalue ); - pcmcia_slot_attr_read( slot, CF_REG_CFGSTAT, &value ); - DBG( 2, "slot %d config status register: 0x%02x = 0x%02x\n", slot, CF_REG_CFGSTAT, value ); + pcmcia_sock_attr_read( slot, cfg_reg + CF_REG_CFGSTAT, &value ); + _DBG( 2, "sock %d config status register: 0x%02x = 0x%02x", slot, CF_REG_CFGSTAT, value ); - DBG( 2, "slot %d enabled\n", slot ); + _DBG( 2, "sock %d enabled", slot ); - ret = ide_init( &drive, (u32)cf_slot_base ); - if ( ret ) - return -EINVAL; + /* FIXME the code below should be moved away */ + ret = ide_init( &drive, (u32)sock->io_base ); + if ( ret ) _DBGERR( dbg, ret ); ret = ide_reset( &drive ); + if ( ret ) _DBGERR( dbg, ret ); ret = ide_identify_drive( &drive ); - if ( ret ) - return -EINVAL; + if ( ret ) _DBGERR( dbg, ret ); ret = ide_setfeature( &drive, IDE_FEAT_8BITON, 0 ); - if ( ret ) - return -EINVAL; + if ( ret ) _DBGERR( dbg, ret ); ret = ide_setfeature( &drive, IDE_FEAT_IOMODE, IDE_IOM_PIO ); - if ( ret ) - return -EINVAL; + if ( ret ) _DBGERR( dbg, ret ); ret = ide_status_dump( &drive ); - if ( ret ) - return -EINVAL; + if ( ret ) _DBGERR( dbg, ret ); - return 0; + ret = 0; +DONE: + return ret; } /********************************************************************** @@ -209,8 +182,9 @@ int cf_io_init( io_driver_t *io ) { - DBG( 5, "%s: io=%p\n", __FUNCTION__, io ); + _DBG( 5, "%s: io=%p\n", __FUNCTION__, io ); + io->flags = GIO_FLAG_R; io->conf = cf_io_conf; io->read = cf_io_read; io->write = cf_io_write; @@ -229,14 +203,14 @@ { int ret; - DBG( 5, "%s: io=%p, conf=%p\n", __FUNCTION__, + _DBG( 5, "%s: io=%p, conf=%p\n", __FUNCTION__, io, conf ); if ( !io || !conf ) return -EINVAL; cf_slot = (int)conf; - DBG( 5, "%s: cf_slot=%d\n", __FUNCTION__, cf_slot ); + _DBG( 5, "%s: cf_slot=%d\n", __FUNCTION__, cf_slot ); ret = cf_init( cf_slot ); if ( ret ) @@ -246,7 +220,7 @@ /* FIXME: is this ok? How to calculate the correct size? */ io->io_size = (drive.driveid.vendor1 | (drive.driveid.vendor0 << 16)) * IDE_BLOCK_SIZE; - DBG( 1, "%s: io_size=%d\n", __FUNCTION__, io_get_size( io ) ); + _DBG( 1, "%s: io_size=%d\n", __FUNCTION__, io_get_size( io ) ); return 0; } @@ -268,7 +242,7 @@ /* start offset (in-block-offset)*/ start_off = (u32)src - start_block*IDE_BLOCK_SIZE; - DBG( 1, "%s: start_block=%d, start_off=%d, src=%p, dest=%p, amount=%d\n", + _DBG( 1, "%s: start_block=%d, start_off=%d, src=%p, dest=%p, amount=%d\n", __FUNCTION__, start_block, start_off, src, dest, amount ); block = start_block; @@ -279,7 +253,7 @@ if ( ret != 0 ) return -EINVAL; - if ( cf_dbg>5 ) { + if ( dbg>5 ) { ret = ide_status_dump( &drive ); if ( ret ) return -EINVAL; @@ -296,7 +270,7 @@ to_copy = amount; } - DBG( 15, "%s: block=%d, to_copy=%d, amount=%d\n", + _DBG( 15, "%s: block=%d, to_copy=%d, amount=%d\n", __FUNCTION__, block, to_copy, amount ); /* copy data */ @@ -319,46 +293,34 @@ return -EINVAL; } - /********************************************************************** * Module test */ -#if defined(CF_TEST_MODULE) -int cf_test_module( int argc, char *argv[] ) +#ifdef CF_TEST_MODULE +int test_cf_cmd( int argc, char *argv[] ) { int ret; - static io_driver_t cf_def_io; - char buffer[1024]; + int slot = 1; /* this is a debug command. be verbose. */ cf_dbg_set( 100 ); - - /* init default cf drv */ - ret = cf_io_init( &cf_def_io ); - if ( ret ) { - DBG( 1, "%s: cf_io_init: %d\n", __FUNCTION__, ret ); - return ret; - } - - ret = io_register( &cf_def_io, "CF" ); - if ( ret ) { - DBG( 1, "%s: cf_io_register: %d\n", __FUNCTION__, ret ); - return ret; - } + ide_dbg_set( 100 ); + pcmcia_dbg_set( 100 ); - ret = io_configure( "CF", (void *)1 ); - if ( ret ) { - DBG( 1, "%s: cf_io_configure: %d\n", __FUNCTION__, ret ); - return ret; - } + if ( argc > 1 ) + strtou32( argv[1], &slot ); - ret = io_read( buffer, (unsigned char *)256, 512, &cf_def_io ); - if ( ret ) { - DBG( 1, "%s: io_read: %d\n", __FUNCTION__, ret ); - return ret; - } + printf( "CF Test\n" ); + printf( "-------\n" ); + printf( "\n" ); + printf( "Slot: %d\n", slot ); - return 0; + ret = cf_init( slot ); + if ( ret ) _DBGERR( dbg, ret ); + +DONE: + return ret; } char cf_help[] = "cf test function\n"; +__commandlist(test_cf_cmd, "cf_test", cf_help ); #endif |
From: Stefan E. <se...@us...> - 2004-02-19 13:46:04
|
Update of /cvsroot/blob/blob/src/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26389 Modified Files: pcmcia.c Log Message: initlist fix Index: pcmcia.c =================================================================== RCS file: /cvsroot/blob/blob/src/lib/pcmcia.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- pcmcia.c 17 Feb 2004 10:40:16 -0000 1.10 +++ pcmcia.c 19 Feb 2004 13:35:34 -0000 1.11 @@ -40,6 +40,7 @@ #include <blob/serial.h> #include <blob/arch.h> #include <blob/pcmcia.h> +#include <blob/init.h> /********************************************************************** * Defines / Makros @@ -377,7 +378,7 @@ DONE: return ret; } -__initlist(pcmcia_init, INIT_LEVEL_OTHER_STUFF); +__initlist(pcmcia_init, INIT_LEVEL_OTHER_HARDWARE); /********************************************************************* * pcmcia_sock_dump_status - dump socket status |
From: Stefan E. <se...@us...> - 2004-02-19 13:45:33
|
Update of /cvsroot/blob/blob/src/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26260 Modified Files: gio_flash.c Log Message: unlock flash region at write Index: gio_flash.c =================================================================== RCS file: /cvsroot/blob/blob/src/lib/gio_flash.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- gio_flash.c 3 Apr 2003 14:32:50 -0000 1.1 +++ gio_flash.c 19 Feb 2004 13:35:05 -0000 1.2 @@ -77,6 +77,7 @@ if ( !io ) return -EINVAL; + io->flags = GIO_FLAG_R|GIO_FLAG_W; io->private_data = NULL; io->io_size = 0; io->conf = flash_io_conf; @@ -159,6 +160,11 @@ DBG( 5, "%s: adr=0x%08x, nwords=%d.\n", __FUNCTION__, adr, amount/4 + (amount%4?1:0)); + if ( flash_unlock_region( adr, amount>>2 ) ) { + printf( "%s: can't unlock flash at %p\n", __FUNCTION__, adr ); + return -1; + } + return flash_write_region( (u32 *)adr, (u32*)src, amount/4 + (amount%4?1:0)); } |
From: Stefan E. <se...@us...> - 2004-02-19 13:45:07
|
Update of /cvsroot/blob/blob/src/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26035 Modified Files: command.c Log Message: remove unused vars Index: command.c =================================================================== RCS file: /cvsroot/blob/blob/src/lib/command.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- command.c 4 Feb 2004 19:13:19 -0000 1.15 +++ command.c 19 Feb 2004 13:34:26 -0000 1.16 @@ -199,7 +199,6 @@ int ret; commandlist_t *cmd; int argc, num_commands, len; - int exact = 0, found = 0;; char *argv[MAX_ARGS]; parse_args(cmdline, &argc, argv); |
From: Stefan E. <se...@us...> - 2004-02-17 11:08:17
|
Update of /cvsroot/blob/blob/src/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24346 Modified Files: ether-smc9196.c Log Message: cleanup; try to fix 'packet too large errors' Index: ether-smc9196.c =================================================================== RCS file: /cvsroot/blob/blob/src/lib/ether-smc9196.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- ether-smc9196.c 11 Nov 2003 14:30:45 -0000 1.2 +++ ether-smc9196.c 17 Feb 2004 10:59:29 -0000 1.3 @@ -35,6 +35,7 @@ * defines */ #undef SMC_DEBUG +#undef TEST_MODULE #ifdef SMC_DEBUG # define DBG( x, args... ) if ( dbg>=x ) printf( args ) @@ -75,6 +76,15 @@ static u8 pkt[1024]; /********************************************************************** + * prototypes + */ +static int smc_init(u32 base); +static int writeether( u8 *buf, int size ); +static int readether( u8 *buf, int size ); +static int set_ethaddr( u8 hw_addr[6] ); +static int get_ethaddr( u8 hw_addr[6] ); + +/********************************************************************** * smc memory access functions */ static inline u8 smc_inb( u32 base, int reg ) @@ -418,7 +428,7 @@ */ if ( packet_length > size ) { - printf( "%s: packet (%d) too large for buffer (%d).\n", __FUNCTION__, + DBG( 1, "%s: packet (%d) too large for buffer (%d).\n", __FUNCTION__, packet_length, size ); ret = -1; goto done; @@ -565,7 +575,7 @@ smc_outb(IM_ALLOC_INT, ioaddr, INTERRUPT); break; } - //msleep(1); + msleep(1); } while (-- time_out); if (!time_out) { @@ -579,74 +589,6 @@ } -/********************************************************************** - * test command - */ -static int smctest( int argc, char *argv[] ) -{ - u32 base = smc9196_ether_driver.base; - u8 hw_addr_set[6] = { 2,3,4,5,6,7 }; - //u8 hw_addr_set[6] = { 0x00, 0x50, 0x7f, 0x01, 0xcf, 0x0f }; - u8 hw_addr[6]; - u8 serverip[4] = { 192, 168, 1, 1 }; - u8 clientip[4] = { 192, 168, 1, 191 }; - int i; - static const unsigned char arp_txpacket[] = - { /* destination address */ - /* source address */ - 0x08, 0x06, /* proto */ - /* arp */ - 0x00, 0x01, /* hardware format: ethernet */ - 0x08, 0x00, /* protocol format: ip */ - 0x06, /* hardware length */ - 0x04, /* protocol length */ - 0x00, 0x01 /* arp request */ - }; - static unsigned char arp_tx[64]; - unsigned char *p = arp_tx; - - if (smc_init(base)) - return -EINVAL; - - set_ethaddr( hw_addr_set ); - get_ethaddr( hw_addr ); - - printf( "eth hw addr %02x:%02x:%02x:%02x:%02x:%02x\n", - hw_addr[0], hw_addr[1], hw_addr[2], - hw_addr[3], hw_addr[4], hw_addr[5] ); - - memset (p, 0, sizeof (arp_tx)); - memset (p, 0xff, 6); - memcpy (p + 12, arp_txpacket, sizeof (arp_txpacket)); - memcpy (p + 22, hw_addr, 6); - memcpy (p + 28, clientip, 4); - memcpy (p + 38, serverip, 4); - - i=1024; - while (i-- ) { - //msleep( 100 ); - if (!(i & (~0xf ))) - printf( "." ); - writeether( p, 60 ); - } - - i=1024; - while (i-- ) { - int pkt_size; - - pkt_size = readether( pkt, 1024 ); - if ( pkt_size > 0 ) { - printf( "[%02d]", pkt_size ); - } else { - printf( "." ); - } - } - printf( "\n" ); - - return 0; -} -static char smctesthelp[] = "test smc 91c96 ethernet chip\n"; -__commandlist(smctest, "smctest", smctesthelp); /********************************************************************** * exported functions @@ -737,12 +679,80 @@ /* export ethernet driver */ ether_driver_t smc9196_ether_driver = { - init: smc_init, - rcv: readether, - snd: writeether, - set_addr: set_ethaddr, - get_addr: get_ethaddr, - base: SMC_BASE, + .init = smc_init, + .rcv = readether, + .snd = writeether, + .set_addr = set_ethaddr, + .get_addr = get_ethaddr, + .base = SMC_BASE, }; +/********************************************************************** + * test command + */ +#ifdef TEST_MODULE +static int smctest( int argc, char *argv[] ) +{ + u32 base = smc9196_ether_driver.base; + u8 hw_addr_set[6] = { 2,3,4,5,6,7 }; + u8 hw_addr[6]; + u8 serverip[4] = { 192, 168, 1, 1 }; + u8 clientip[4] = { 192, 168, 1, 191 }; + int i; + static const unsigned char arp_txpacket[] = + { /* destination address */ + /* source address */ + 0x08, 0x06, /* proto */ + /* arp */ + 0x00, 0x01, /* hardware format: ethernet */ + 0x08, 0x00, /* protocol format: ip */ + 0x06, /* hardware length */ + 0x04, /* protocol length */ + 0x00, 0x01 /* arp request */ + }; + static unsigned char arp_tx[64]; + unsigned char *p = arp_tx; + + if (smc_init(base)) + return -EINVAL; + set_ethaddr( hw_addr_set ); + get_ethaddr( hw_addr ); + + printf( "eth hw addr %02x:%02x:%02x:%02x:%02x:%02x\n", + hw_addr[0], hw_addr[1], hw_addr[2], + hw_addr[3], hw_addr[4], hw_addr[5] ); + + memset (p, 0, sizeof (arp_tx)); + memset (p, 0xff, 6); + memcpy (p + 12, arp_txpacket, sizeof (arp_txpacket)); + memcpy (p + 22, hw_addr, 6); + memcpy (p + 28, clientip, 4); + memcpy (p + 38, serverip, 4); + + i=1024; + while (i-- ) { + //msleep( 100 ); + if (!(i & (~0xf ))) + printf( "." ); + writeether( p, 60 ); + } + + i=1024; + while (i-- ) { + int pkt_size; + + pkt_size = readether( pkt, 1024 ); + if ( pkt_size > 0 ) { + printf( "[%02d]", pkt_size ); + } else { + printf( "." ); + } + } + printf( "\n" ); + + return 0; +} +static char smctesthelp[] = "test smc 91c96 ethernet chip\n"; +__commandlist(smctest, "smctest", smctesthelp); +#endif |