Hysterical Documentation Only! Execise Caution using this document!

NetWinder Hardware FAQ

Version 0.0.2 Very Alpha Release

Tue May 7 08:32:09 EDT 2002

by Stanislav N. Vardomskiy


The Original, and probably more out of date version of this document may be found at http://www.netwinder.org/~stany/netwinder_board_rev_faq.html.

Abstract: this FAQ attempts to answer the most common questions regarding the different board revisions of the Corel NetWinder.

WARNING: this document is completely unofficial, and is not supported nor endorsed by Corel. If you have used any of the techniques described in this FAQ to do some changes to your system, and the changes did not work out as advertised, please do not go to Corel Computer Corporation for help. Also, I can provide help on the "best attempt" bases only, so please do not hold me responsible if it did not work out either. Never the less the information present in it is believed to be correct. If I have made a mistake, please do not hesitate to point it out by mailing to stany at pet dot ml dot org.


Table of Contents

1.0 Introduction

2.0 The Hardware 3.0 Acknowledgments

4.0 Copyright and other legal blurb


1.0 Introduction

1.1 Why this FAQ?

Lately there have been a number of discussions on the mailing list regarding the hardware and software differences between the different NetWinder systems that Corel markets. People seem to be confused by the fact that both Corel NetWinder Web Server and Developers Machine have both the same price and hardware configuration. I am attempting to summarize the different facts known about the different board revisions. Please keep in mind that this deals only with the hardware side of things.

1.2 Who are you any way?

My name is at the top of this document. I deal with hardware for living, unfortunately not at the design level, but at the maintenance level.


2.0 The Hardware

2.1 Finding out what board revision one has.

On all shipping NetWinders (except for the early ones, that do not have NetWinder logo on the front) there should be a sticker telling what this is, and who manufactured the NetWinder, etc. On it there should be a string of numbers similar to this: NW644DM1.1. The Sticker tells in what configuration the system have left the factory:

NW stands for NetWinder.
64 is the amount of RAM (can be 32).
4 is the size of hard drive in gigabytes (Currently shipping are only 2 gig and 4 gig drives).
DM is the Developers Machine in Corel classification (There is also WS - Web Server, and GS- workGroup Server).
1.1 is the most interesting one - 1.1 means that the board is Rev 5.x. 1.0 would mean that the board is Rev 4.x.
This string of digits is the only sure data on the entire sticker. ;-)
My machine, for example would have the following ID string: NW323DM1.0

In order to find out what board revision one has one has to have a kernel dated later then early October 1998. The kernel and associated modules are available at ftp://ftp.netwinder.org/pub/ccc/kernel. In that case one can
cat /proc/cpuinfo to find all sorts of interesting things about both the CPU and the motherboard.

root@pooga:~[234]# cat /proc/cpuinfo
Type : sa110
Revision : 0
Manufacturer : DEC
32bit modes : yes
BogoMips : 262.14
Board Rev : 42FF
Board Serial # : 00004097

Misaligned Accesses : 912363 (sys: 33) (usr: 912330)
 LDR/STR accesses : 912363
 LDRH/STRH accesses : 0
 LDM/STM accesses : 0
 SWP accesses : 0
 Invalid accesses : 0
The more interesting field is, of course, Board Rev. It tells one what is the revision of the motherboard of your NetWinder.

The entries for this field are calculated by the kernel probing a resistor pack on the motherboard. The last 2 digits are calculated by probing the daughter card.

Currently there are systems out there in the field that are known to have the following signatures: 41FF, 42FF, 44FF, 51FF, 52FF, FFFF and F1FF. If it is rather obvious what the first 4 signatures are, the FFFF and F1FF cause confusion. FFFF is the signature of the Rev 3 boards. If you have encountered this, then something is horribly wrong, as there should not be any Rev 3s in the field (unless you are from Corel of course ;-). According to what people from Corel have mentioned, F1FF was the signature present in the first 75 Rev 4 boards. Current data posted by some people onto the mailing list indicates that this might be a mistake, and some revision 5 boards have made it out into the field sporting F1FF signature.

Pat Beirne of Corel Computers have mentioned that "The last two digits indicate which options are present in the system. FF means you have everything. We are expecting some customers to order quantities of NetWinders without "this" or "that", and we will be able to detect the absence of hardware by missing bits in the last two digits. To repeat, FF means you have "everything"."

Woody Suwalski of Corel Computers have at one point mentioned on the mailing list: "As to the FF, AFAIK we pull some of the ID lines up to the daughter card. So as such the new daughter cards (SCSI, modem, etc) will probably report something different then FF..."

Hopefully this will provide enough information to help identify what board one has.

Another interesting entry outputted by looking into /proc/cpuinfo is the Board's Serial Number. Once again, according to Pat Beirne of Corel: "The board serial number should match your eth0 mac address. If it doesn't, then our manufacturing screwed up. Please let me know if this is the case."

2.2 Why does the clock on my NetWinder drifts, and what can I do?
In order for a NetWinder to meet the part 15 of the FCC rules (the guidelines for the radiation emissions for the electronic products) there were two alternatives: shield the NetWinder better, or spread the emissions across the wider band. The later solution was chosen, and a "shaker" circuit was installed. The first boards to get the "shaker" circuit were board revision 4.5. Unfortunately at the time many of the rev 4.5 boards did not have their resistor packs adjusted and still report that they are board revisions 4.4. At the same time rev 4.5s did not have an alternate clock source installed, and as a result do not have means of keeping the right time. As a matter of fact, one of the sure signs of the wrong clock used by kernel is the BogoMips value displayed at startup and through catting /proc/cpuinfo. The value should be 262.14 BogoMips, or something very close. If the value is more then 0.5% off, then you might have problems (This test relies on the fact that so far all of the NetWinders have been identical CPU wise. When a faster CPU will be used, then some adjustments will have to be made to this procedure).

Starting with rev 5.0, an alternate clock source was installed. Most of the older kernels were getting the time from the wrong device, though, and as a result might show a significant clock drift. The latest kernels from ftp.netwinder.org/pub/ccc/kernel/ have been fixed for most systems. If you are still experiencing problems, this is what Ralph Siemsen of Corel has to say:

For those of you who can't wait, grab yerself kernel sources and edit
arch/arm/kernel/time.c. At the very end you will see a statement: if
(board_id & 0xF000) == 0x5000 which you should change so that it matches
whatever board rev your /proc/cpuinfo reports. THen your timers will get
set up correctly.

NOTE NOTE NOTE! If you have a rev 4 board, DO NOT TRY THIS! if you move
the timer as a result your machine will not boot, since it does not have the
new timer. ONLY TRY IT on a rev 5 that is reporting back the wrong board
The fix is using time 4 as the time base, because timer 4 is crystal controlled. Timer 1 is crystal controlled on some boards (mostly rev 4 before rev 4.5) but not on the others. The interrupt used is interrupt 16. The mean error of the crystal oscillator is 38 seconds a month, +/- 65 seconds.

So occasional calibration against an external time source is still advisable. If the problems with the clock drifting are experienced, one should upgrade their kernel.

2.3 Changing your MAC address for fun and profit.
NOTE: This capability have been removed from the tulip.c in the recent kernels. It is here only for hysterical raisins. WARNING: This has a potential to hose your NetWinder, and is potentially illegal. If you did something questionable from your NetWinder, and then changed the MAC address to avoid prosecution, you are on your own. Also do not come to whine to Corel Computers if this broke your system. Do not come to whine to me either - I will try to help, but this is on the "best try" basis. The only reason I am passing it on, is because this is knowledge, and I do not want it lost.

NOTE: the official Corel Computer manufacturer ID for the Ethernet is 00:10:57. This has to be the first 3 bits. Changing that would cause confusion. The difference between eth0 and eth1 is in the 4th bit. For eth0 is it :00:, and for eth1 it should be :c0:, so if your eth0 has hardware ethernet address of 00:10:57:00:07:15, then your eth1 should have an ethernet address of 00:10:57:C0:07:15.

If you have a Rev 5 machine, you can try looking through the vents that are right over the memory slot. You should see the sticker, which in plain test should have the eithernet address of your system. Note that the value on the sticker is in base 10, so converting it might be of use. The value converted to base 16 should correspond to bits 5 and 6 of your MAC address. If you have Rev 4, the sticker is also present on the motherboard, but is not visible through the vents.

In theory, every different network card ever made has a different MAC address. The first 3 digits are the manufacturer ID, and the last 3 digits are assigned by manufacturer. In theory that means that every manufacturer has to change the manufacturers ID after manufacturing 16.7 million of cards. For example all Sun on board Ethernet adapters have 8:0:20 as the first 3 values (Suns are a special case. All Ethernet adapters have the same MAC address on the same system, because this information is encoded in the firmware). By changing your MAC address, you are using someone else's name space, and even though you will potentially not be persecuted, this is not a nice thing to do. If there is a system on your network with the same MAC address as yours, you will interfere with network operation of that system. The situation is essentially the same as with the case of an identical IP address.

Back when I just got a fresh rev 4.0 board, on startup the kernel was complaining about hardware Ethernet address being not set. At one point I brought the system into Corel Computers for a software upgrade, and Andrew Mileski have then also set the hardware Ethernet address for me.

This have intrigued me a bit, and I did some digging with binary editor. This is what I have came up with. Please keep in mind that this is strictly unofficial, and is in no way, shape or form supported by Corel Computers. On the other hand it is knowledge, so I am passing it on:

If one wants to set the hardware Ethernet address of one's system, one can try the following:

root@pooga:~[240]# ifconfig eth1 down
root@pooga:~[241]# rmmod tulip
root@pooga:~[242]# insmod tulip vnc_mac_addr=0xfee123
root@pooga:~[243]# insmod tulip
root@pooga:~[244]# ifconfig eth1 up inet <your inet here> netmask <yournetmask here> broadcast <your broadcast here>
In my trials, f part of the mac address has to be either b, c, d, e, or f. The rest seems to be up to the user.
Of course real hackers would just look at the kernel source, and figure it out from there ;-)
2.4 Differences between the board revisions