2.10 kernel and Cobalts.

David W Studeman <[email protected]> Thu, 12 Feb 2015 23:26:35 -0800
Newsgroups gmane.comp.security.ipcop.devel
Message-ID <[email protected]>
I had begun trying to port over the Cobalt driver patch to the 2.10 kernel 
for awhile and the kernel has just changed so much since 3.4 that I am not 
100% certain it can be done and if ever so, is it worth the effort? About 
four years ago when I had to modify for things like spinlock changes and 
moving some things from traps.c to elsewhere, I did catch up with Jeff 
Walter who was the person who ported all the drivers to 2.6 in the first 
place but could not put more time into it after the 2.6.32 kernel. During 
this conversation he stated then that it was almost to the point where new 
drivers should be written from scratch. After the 3.4 kernel it IS to that 
point. Do we really need unique Cobalt drivers in the first place?

Every chip on a Cobalt x86 board has a kernel driver already. The serial 
number is derived from a Dallas 1 wire DS2401 chip, in the 550 they get it 
from the eeprom. I believe the serial number scheme is bogus anyway as it 
changes after every rom reset. The Raq3/4 Qube3 and Raq XTR use an LM77 for 
things like cpu temp and in the XTR, fan speeds as well as system temp. The 
550 uses an adm1029 for monitor functions. For i2c the Raq3/4 and Qube3 use 
the Ali chipset for i2c of which the kernel driver exists. The Raq XTR and 
550 use a Serverworks chipset which uses piix4 as it's i2c.

I have a Raq4 running with the 2.10 kernel and I included the above drivers. 
I only had to patch the e100 driver to ignore the checksum which has always 
been the case with the e100 driver and the weird 82551er implementation on 
the Raq3/4. Prior to that, everyone used Donald Becker's eepro100 driver 
which did not care about the checksum being strange. 

Looking at the source code for Cobalt sensors, it does give the 
multiplication factors to get meaningful values from the sensors. 

Another important thing is that the Cobalt rom tries to pass a command line 
to the system kernel. The serial terminal one quit working many kernels ago 
and Jeff had come up with a hack that allowed the rom serial terminal 
commandline to talk to the new one. This was before the kernel had the 
option of embedding command line parameters. To get this kernel to show the 
cli over serial terminal, I had to embed console=ttyS0,115200n8 into it. 
It's also the only one that shows when running:
root@raqcop:~ # cat /proc/cmdline
console=ttyS0,115200n8

Prior Cobalt patched kernels with Jeff's command line fix show this:
root@cellcop:~ # cat /proc/cmdline
console=ttyS0,115200 debug ip=off

I've added debug and ip=off to my kernel config. The ip=off I believe is 
there because the rom has some nfs booting capabilities.

So there it is, to try to fix the patch if possible or use all in kernel 
drivers for the chips. Thoughts? 



-- 
Dave Studeman
http://www.raqcop.com 



------------------------------------------------------------------------------
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/