Unix Technical Forum

SBus-based drivers (32-bit vs 64-bit Solais Kernels)

This is a discussion on SBus-based drivers (32-bit vs 64-bit Solais Kernels) within the Sun Solaris Hardware forums, part of the Solaris Operating System category; --> Hi, I have an sbus-based coprocessor board (see http://www.classiccmp.org/transputer/bbks4.htm ) that used to work fine under Solaris 2.6, but ...


Go Back   Unix Technical Forum > Unix Operating Systems > Solaris Operating System > Sun Solaris Hardware

FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 01-16-2008, 03:32 PM
rmeenaks@olf.com
 
Posts: n/a
Default SBus-based drivers (32-bit vs 64-bit Solais Kernels)

Hi,

I have an sbus-based coprocessor board (see
http://www.classiccmp.org/transputer/bbks4.htm) that used to work fine
under Solaris 2.6, but it no longer works correctly under Solaris 10.0.
I suspect this is due to the 32-bit vs 64-bit kernel issue. However,
the way that boards are setup is the following:

Create two symlinks in /dev:
sbus1 -> /devices/iommu@0,10000000/sbus@0,10001000/sbusmem@1,0:slot1
sbus2 -> /devices/iommu@0,10000000/sbus@0,10001000/sbusmem@2,0:slot2

These two links are then opened in the application to communicate back
and forth with the SBUS card. I do have the source code to the actual
application. Eventhough, it is doing raw reads/writes to the SBUS
card, do I need to compile the application in 64-bit or 32-bit? Since
it really doesnt have a device driver and uses the raw drivers, how
does it work??

Thanks,

Ram

PS: The machine if anyone is interested is an Ultra-2 Enterprise with
Dual 400Mhz processors and 2GB of memory running Solaris 10 in 64-bit
mode

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #2 (permalink)  
Old 01-16-2008, 03:32 PM
Darren Dunham
 
Posts: n/a
Default Re: SBus-based drivers (32-bit vs 64-bit Solais Kernels)

In comp.unix.solaris rmeenaks@olf.com wrote:
> I have an sbus-based coprocessor board (see
> http://www.classiccmp.org/transputer/bbks4.htm) that used to work fine
> under Solaris 2.6, but it no longer works correctly under Solaris 10.0.
> I suspect this is due to the 32-bit vs 64-bit kernel issue.


Right. You'll have to have 64-bit drivers.

> Create two symlinks in /dev:
> sbus1 -> /devices/iommu@0,10000000/sbus@0,10001000/sbusmem@1,0:slot1
> sbus2 -> /devices/iommu@0,10000000/sbus@0,10001000/sbusmem@2,0:slot2


So the targets there are the device files which are handled by the
driver (which you probably don't have).

> These two links are then opened in the application to communicate back
> and forth with the SBUS card. I do have the source code to the actual
> application.


Do you have source to the driver?

> Eventhough, it is doing raw reads/writes to the SBUS
> card, do I need to compile the application in 64-bit or 32-bit?


Either is fine. Unless it's doing something esoteric, leaving the
application 32-bit shouldn't be an issue.

> Since
> it really doesnt have a device driver and uses the raw drivers, how
> does it work??


Huh? I don't follow that sentence.

Almost certainly your system needs a driver for the SBUS hardware.
Without it, those device files aren't going to work.

--
Darren Dunham ddunham@taos.com
Senior Technical Consultant TAOS http://www.taos.com/
Got some Dr Pepper? San Francisco, CA bay area
< This line left intentionally blank to confuse you. >
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #3 (permalink)  
Old 01-16-2008, 03:32 PM
rmeenaks@olf.com
 
Posts: n/a
Default Re: SBus-based drivers (32-bit vs 64-bit Solais Kernels)

Hi Darren,

Thanks for the response. The two device files /dev/sbus0 and
/dev/sbus1 are Solaris-supplied devices and are supposed to be the raw
sbus cards that are present in the machine. The so-called application
(which is really an a bunch of functions to use the card) is just
opening, reading, writing, and closing the /dev/sbus0. So, it is doing
raw access to the sbus card. Hence, there really isnt any device
driver in Solaris terms.

Since it is doing such raw access, does it need to be 32-bit or 64-bit
if I recompile it under Solaris 10. Would it work? I might run into
similar issues with another device (a SCSI device) that probably does
the same thing. However, I dont have the source for the SCSI device
unfortunately...

Any help is much appreciated,

Ram

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #4 (permalink)  
Old 01-16-2008, 03:32 PM
Michael Vilain
 
Posts: n/a
Default Re: SBus-based drivers (32-bit vs 64-bit Solais Kernels)

In article <1128373832.416676.181240@g14g2000cwa.googlegroups .com>,
rmeenaks@olf.com wrote:

> Hi Darren,
>
> Thanks for the response. The two device files /dev/sbus0 and
> /dev/sbus1 are Solaris-supplied devices and are supposed to be the raw
> sbus cards that are present in the machine. The so-called application
> (which is really an a bunch of functions to use the card) is just
> opening, reading, writing, and closing the /dev/sbus0. So, it is doing
> raw access to the sbus card. Hence, there really isnt any device
> driver in Solaris terms.
>
> Since it is doing such raw access, does it need to be 32-bit or 64-bit
> if I recompile it under Solaris 10. Would it work? I might run into
> similar issues with another device (a SCSI device) that probably does
> the same thing. However, I dont have the source for the SCSI device
> unfortunately...
>
> Any help is much appreciated,
>
> Ram


Excuse me, but I think I misunderstand this. Unless there's a driver
that attaches to the card, there won't be a /dev/sbus0 device? Yes?
So, you _are_ using a driver to access the card. It's my understanding
that's how UNIX works. The question is, what driver? And is there a
64-bit version on Solaris 10?

--
DeeDee, don't press that button! DeeDee! NO! Dee...



Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #5 (permalink)  
Old 01-16-2008, 03:32 PM
Darren Dunham
 
Posts: n/a
Default Re: SBus-based drivers (32-bit vs 64-bit Solais Kernels)

In comp.unix.solaris rmeenaks@olf.com wrote:
> Hi Darren,


> Thanks for the response. The two device files /dev/sbus0 and
> /dev/sbus1 are Solaris-supplied devices and are supposed to be the raw
> sbus cards that are present in the machine.


I don't think so.

Do you still have these devices (on a pre-10 machine)?

Please do the following on it..

#1 ls -lL /dev/sbus0

You'll get a major and minor number separated by a comma like this: (my
example is on a different file) (That's a lower-case L, not a 1).

$ ls -lL /dev/rmt/0cbn
crw-rw-rw- 1 root sys 33,2783 Oct 3 03:38 /dev/rmt/0cbn

#2 grep for the major number (the first one) in /etc/name_to_major

$ grep 33 /etc/name_to_major
st 33
cvcredir 133
wrsm 233

Thanks.

> The so-called application
> (which is really an a bunch of functions to use the card) is just
> opening, reading, writing, and closing the /dev/sbus0. So, it is doing
> raw access to the sbus card. Hence, there really isnt any device
> driver in Solaris terms.


That's like saying an an application that just opens,reads, etc. from
/dev/rmt/0cbn isn't using a driver. Yes it is. The operating system
knows the file is special and passes the requests on to the driver. The
app itself doesn't know about the driver, but the OS does.

> Since it is doing such raw access, does it need to be 32-bit or 64-bit
> if I recompile it under Solaris 10.


The driver (which isn't part of the application) must be the same as the
running kernel (64-bit on SPARC Solaris 10)

The application can do everything you've said so far as a 32-bit app, no
problem.

> Would it work?


Only if the driver is there.

> I might run into
> similar issues with another device (a SCSI device) that probably does
> the same thing. However, I dont have the source for the SCSI device
> unfortunately...


Also, it's more likely that Solaris 10 comes with a SCSI driver
already. I doubt that there's one for your SBUS device in the base OS.

--
Darren Dunham ddunham@taos.com
Senior Technical Consultant TAOS http://www.taos.com/
Got some Dr Pepper? San Francisco, CA bay area
< This line left intentionally blank to confuse you. >
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #6 (permalink)  
Old 01-16-2008, 03:32 PM
Doug McIntyre
 
Posts: n/a
Default Re: SBus-based drivers (32-bit vs 64-bit Solais Kernels)

rmeenaks@olf.com writes:
>Thanks for the response. The two device files /dev/sbus0 and
>/dev/sbus1 are Solaris-supplied devices and are supposed to be the raw
>sbus cards that are present in the machine. The so-called application
>(which is really an a bunch of functions to use the card) is just
>opening, reading, writing, and closing the /dev/sbus0. So, it is doing
>raw access to the sbus card. Hence, there really isnt any device
>driver in Solaris terms.


/dev/sbus0 and /dev/sbus1 don't exist normally. Your device driver
must map in under these names. If there were system supplied drivers
that had these names, they should show up in section 7d of the man
pages, but nothing there... My Ultra SBUS systems don't have these
devices even though they have SBUS cards installed.

Solaris systems typically don't have generic device drivers for raw
accessing. *All* devices typically require device drivers written, even
if its just some raw access to some registers on the card.

So, if you don't have a working 64-bit driver for these cards, you are
fighting an uphill battle, and you'll either have to revert to an OS
level that supports the drivers you have, pester the maker to build
drivers to match your desired OS, or reverse engineer your old driver,
write a new one, and hope the Ultra 2 support still exists later on
for the many man-month effort you exerted.


>Since it is doing such raw access, does it need to be 32-bit or 64-bit
>if I recompile it under Solaris 10. Would it work? I might run into
>similar issues with another device (a SCSI device) that probably does
>the same thing. However, I dont have the source for the SCSI device
>unfortunately...


No such thing as raw access in Solaris.

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #7 (permalink)  
Old 01-16-2008, 03:32 PM
Thomas Orgelmacher
 
Posts: n/a
Default Re: SBus-based drivers (32-bit vs 64-bit Solais Kernels)

Doug McIntyre <merlyn@geeks.org> wrote:

> rmeenaks@olf.com writes:
> >Thanks for the response. The two device files /dev/sbus0 and
> >/dev/sbus1 are Solaris-supplied devices and are supposed to be the
> >raw sbus cards that are present in the machine. The so-called
> >application(which is really an a bunch of functions to use the card)
> >is just opening, reading, writing, and closing the /dev/sbus0. So,
> >it is doing raw access to the sbus card. Hence, there really isnt
> >any device driver in Solaris terms.

>
> /dev/sbus0 and /dev/sbus1 don't exist normally. Your device driver
> must map in under these names. If there were system supplied drivers
> that had these names, they should show up in section 7d of the man
> pages, but nothing there... My Ultra SBUS systems don't have these
> devices even though they have SBUS cards installed.


Hmm, I have the same card in use (under Solaris 2.5.1) and without
being a specialist on these terms: there isn't a driver...

Just put in the card, create the links and the applications will
use them. Really.

Could it have something to do with the proms on the card?

Orgel

--
I have seen things you lusers would not believe. I've seen Sun
monitors on fire off the side of the multimedia lab. I've seen
NTU lights glitter in the dark near the Mail Gate. All these
things will be lost in time, like the root partition last week.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #8 (permalink)  
Old 01-16-2008, 03:32 PM
Michael Vilain
 
Posts: n/a
Default Re: SBus-based drivers (32-bit vs 64-bit Solais Kernels)

In article <20051004064546.3aee4676.legro70@netscape.net>,
Thomas Orgelmacher <legro70@netscape.net> wrote:

> Doug McIntyre <merlyn@geeks.org> wrote:
>
> > rmeenaks@olf.com writes:
> > >Thanks for the response. The two device files /dev/sbus0 and
> > >/dev/sbus1 are Solaris-supplied devices and are supposed to be the
> > >raw sbus cards that are present in the machine. The so-called
> > >application(which is really an a bunch of functions to use the card)
> > >is just opening, reading, writing, and closing the /dev/sbus0. So,
> > >it is doing raw access to the sbus card. Hence, there really isnt
> > >any device driver in Solaris terms.

> >
> > /dev/sbus0 and /dev/sbus1 don't exist normally. Your device driver
> > must map in under these names. If there were system supplied drivers
> > that had these names, they should show up in section 7d of the man
> > pages, but nothing there... My Ultra SBUS systems don't have these
> > devices even though they have SBUS cards installed.

>
> Hmm, I have the same card in use (under Solaris 2.5.1) and without
> being a specialist on these terms: there isn't a driver...
>
> Just put in the card, create the links and the applications will
> use them. Really.
>
> Could it have something to do with the proms on the card?
>
> Orgel


Nope. When you "create the links", the OS is recognizing the device and
assigning a driver to that device. If you look at the device files with
ls -l, the major and minor numbers will be displayed. You can look
those up as has been previously described.

So, a driver is _really_ being used to access this device. Truly.
Otherwise, there would be no device file created. This is how the I/O
system works on UNIX even if you don't realize it.

--
DeeDee, don't press that button! DeeDee! NO! Dee...



Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #9 (permalink)  
Old 01-16-2008, 03:33 PM
Casper H.S. Dik
 
Posts: n/a
Default Re: SBus-based drivers (32-bit vs 64-bit Solais Kernels)

Darren Dunham <ddunham@redwood.taos.com> writes:

>Almost certainly your system needs a driver for the SBUS hardware.
>Without it, those device files aren't going to work.


Well, with VME and Sbus there are some default memory mappings which
do not require an actual device driver... You can just map the device
using generic devices.

Casper
--
Expressed in this posting are my opinions. They are in no way related
to opinions held by my employer, Sun Microsystems.
Statements on Sun products included here are not gospel and may
be fiction rather than truth.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #10 (permalink)  
Old 01-16-2008, 03:33 PM
Darren Dunham
 
Posts: n/a
Default Re: SBus-based drivers (32-bit vs 64-bit Solais Kernels)

In comp.unix.solaris Thomas Orgelmacher <legro70@netscape.net> wrote:
> Hmm, I have the same card in use (under Solaris 2.5.1) and without
> being a specialist on these terms: there isn't a driver...


Can you run those two commands on your 2.5.1 machine I had in the other
post?

ls -lL /dev/sbus0

Then take the number before the comma and do...

grep <number> /etc/name_to_major

--
Darren Dunham ddunham@taos.com
Senior Technical Consultant TAOS http://www.taos.com/
Got some Dr Pepper? San Francisco, CA bay area
< This line left intentionally blank to confuse you. >
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump


All times are GMT. The time now is 05:06 AM.


Powered by vBulletin® Version 3.6.5
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.2.0
www.UnixAdminTalk.com