From vxwexplo-errs@csg.lbl.gov Fri Mar 1 04:03:27 2002 From: Vxworks Exploder Date: Fri Mar 1 04:03:30 PST 2002 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Fri Mar 1 04:03:21 PST 2002 Subject: Re: Help! Cannot access vxworks from another network Subject: Re: Help! Cannot access vxworks from another network Subject: [comp.os.vxworks] FAQ - index Subject: Re: Help! Cannot access vxworks from another network Subject: Re: Help! Cannot access vxworks from another network Subject: Re: Help! Cannot access vxworks from another network Subject: Re: DOS file system Subject: Re: DOS file system Subject: Re: DOS file system Subject: DHCP and WINS Subject: Re: problem creating new project Subject: Re: Having trouble with dynamicly loading modules Subject: Ethernet problem on an mvme2700 Subject: Re: Having trouble with dynamicly loading modules Subject: Re: Having trouble with dynamicly loading modules Subject: Re: DOS file system Subject: Re: DHCP and WINS Subject: Re: Ethernet problem on an mvme2700 Subject: Re: Help! Cannot access vxworks from another network Subject: Re: Why do I need to do eieio behavior after sysInByte() and sysOutByte()? Subject: Re: clock_gettime fails with write() but not fwrite Subject: Re: [question]Memory access in mpc750.. Subject: Re: [question]Memory access in mpc750.. Subject: Re: DHCP and WINS Subject: Re: NFS File - Appending Subject: Re: Ethernet problem on an mvme2700 Subject: Re: Ethernet problem on an mvme2700 Subject: How do I echo my input back to windshell Subject: Re: Ethernet problem on an mvme2700 Subject: Re: Ethernet problem on an mvme2700 - a new test Subject: ISOLATE and PRATITION states on LXT9880 ethernet Repeater? Subject: Re: Ethernet problem on an mvme2700 - a new test Subject: Re: Ethernet problem on an mvme2700 - a new test Subject: Flash MVME162 under VxWorks Subject: Re: Binding to a socket Subject: Re: DOS file system Subject: Re: DOS file system Subject: Re: Ethernet problem on an mvme2700 - a new test Subject: Finding undefined symbols in .out file Subject: Re: NFS File - Appending Subject: Re: Ethernet problem on an mvme2700 - a new test Subject: Re: Help! Cannot access vxworks from another network Subject: Re: Ethernet problem on an mvme2700 - a new test Subject: Re: Finding undefined symbols in .out file Subject: post-mortem debugging, upper memory, and USER_RESERVED_MEM Subject: Difference between MPC860SAR and MPC860MH Subject: Re: source code for SCSI Fibre Channel implementation Subject: Re: Finding undefined symbols in .out file Subject: Re: GP fault from "hello World" Subject: How to make assert break into debugger with hardcoded breakpoint Subject: Re: problem creating new project Subject: Re: Having trouble with dynamicly loading modules Subject: Re: Binding to a socket Subject: muxLoad Failed while picking up the VxWorks image from host Subject: Re: Finding undefined symbols in .out file Subject: Re: How to make assert break into debugger with hardcoded breakpoint Subject: Re: source code for SCSI Fibre Channel implementation Subject: Re: Binding to a socket Subject: Re: DOS file system Subject: Re: post-mortem debugging, upper memory, and USER_RESERVED_MEM Subject: Re: source code for SCSI Fibre Channel implementation ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Re: Help! Cannot access vxworks from another network Date: Thu, 28 Feb 2002 08:03:01 -0500 From: "Joe Georger" Message-ID: <4Qpf8.71$Sk3.3151@llslave.llan.ll.mit.edu> References: <0Baf8.69$Sk3.3211@llslave.llan.ll.mit.edu> <3C7D9038.A51390B8@dsto.defence.gov.au> > Have you set up an entry in your development PC's route table. Although the > gateway is specified at the boot prompt, the PC has to know how to get back to > the vxWorks machine. If you haven't try adding the following at a DOS prompt on > the development PC: > > route ADD 155.34.103.0 MASK 255.255.255.0 METRIC 2 IF 1 > > where is the IP address of your hostname on your 155.34.99.0 network. > The gateway on my development pc is 155.34.99.1. I have no trouble pinging the host pc (155.34.103.41) on the 103 subnet. Therefore I would think that I should be able to ping the VxWorks board as well. Unless I am missing some nuance of networking.... > To be honest, I'd be surprised if there were errors in the vmetro software, as > I've always found their software excellent. Well, we've encountered a number of files limit of 248 on their mdr software, which is just plain inexcusable when several hundred gigabyte raids are commonly available. We've also encountered a limit of 10 mdr-220 boards that can be used in 1 cage with their midas-120 gateway and shared-memory networking. They have since recitified the situation, but having such low, fixed numbers in software is pretty bad. I suppose these are minor annoyances, since their software is stable. Thanks, Joe --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Help! Cannot access vxworks from another network Date: Thu, 28 Feb 2002 08:08:08 -0500 From: "Joe Georger" Message-ID: References: <0Baf8.69$Sk3.3211@llslave.llan.ll.mit.edu> <3C7D47FB.699925C1@notifier-is.net> > I had to turn on IP Forwarding on my host. > > doug My host is a WinNT machine. I'm not even sure this is an option. Our gateway on that subnet is a router. The only reason the host pc is even down there on the same subnet was for VxWorks to ftp and boot off of. And I was going to switch that over to my development pc.... Thanks, Joe --------------------------- Newsgroups: comp.os.vxworks,comp.realtime,comp.embedded,comp.answers,news.answers Subject: [comp.os.vxworks] FAQ - index Date: 28 Feb 2002 13:10:22 GMT From: johan@borksoft.xs4all.nl (Johan Borkhuis) Organization: none Message-ID: Followup-To: comp.os.vxworks Archive-name: vxworks-faq/index Posting-Frequency: monthly Last-modified: 2001/12/31 Version: 1.41 URL: http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html Copyright: (c) 1999 - 2002 Johan Borkhuis Maintainer: Johan Borkhuis This is the index of the FAQ for the newsgroup comp.os.vxworks. The FAQ itself can be found at http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html Contents: 1. Tool problems 1.1 Compiler and Linker 1.2 Debugger 1.3 FTP 1.4 Host tools 1.5 Installation 1.6 Make 1.7 Project facility 1.7.1 Hierarchical projects 1.7.2 Super projects 1.8 Target Server 1.9 Target Shell 1.10 Telnet 1.11 Tornado 1.11.1 Tornado (General) 1.11.2 Tornado (Windows) 1.12 Version Control 1.13 Visual Studio integration 1.14 Windsh 1.15 WindView 2. Changes/additions to be made to BSP's 2.1 Different BSP's 2.2 Processor specific issues 2.2.1 Power PC 2.2.2 I960 2.2.3 MIPS 2.2.4 ARM 2.3 Bootstrap 2.4 Adding component to your VxWorks configuration 2.5 VME problems 2.6 VxWorks environment 2.6.1 usrSerial.c 2.6.2 prj_vxworks.tcl 2.7 PCI problems 3. File System problems 3.1 Dos file system 3.2 Flash File system 3.3 Floppy-disk File system 3.4 RAM-disk File system 3.5 General file system questions 4. Network 4.1 Configuration problems 4.2 ARP 4.3 DHCP 4.4 FTP and TFTP 4.5 PPP 4.5.1 PPP on Windows 95 4.5.2 PPP on Windows NT 4.5.3 PPP on Solaris 4.6 Sockets 4.7 Telnet 4.8 Other network related questions 5. VxWorks Questions 5.1 C++ issues 5.2 Communication problems 5.3 Interrupts 5.4 LoadModule problems 5.5 pthreads 5.6 Reboot 5.7 Semaphores 5.8 Simulator (VxSim) 5.9 Task related items 5.10 Time/timer related items 5.11 Wind Web Server related items 5.12 Zinc/windML related items 5.13 Other items 6. Extra information 6.1 Hard delay 6.2 Memory leaks 6.3 Corba engines 6.4 Web servers 6.5 NTP usage 6.6 Performace / Benchmarks 6.7 SNMP 6.8 Lint 6.9 Encryption Other Links The News Department Overall question index Overall Sources index Change history - -- o o o o o o o . . . _____J_o_h_a_n___B_o_r_k_h_u_i_s___ o _____ || http://www.xs4all.nl/~borkhuis | .][__n_n_|DD[ ====_____ | johan@borksoft.xs4all.nl | >(________|__|_[_________]_|________________________________| _/oo OOOOO oo` ooo ooo 'o!o!o o!o!o` ==== VxWorks-FAQ: http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html ==== --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Help! Cannot access vxworks from another network Date: 28 Feb 2002 07:33:13 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0202280733.5ebde2be@posting.google.com> References: <0Baf8.69$Sk3.3211@llslave.llan.ll.mit.edu> <3C7D47FB.699925C1@notifier-is.net> Hello all, "Joe Georger" wrote in message news:... > > do you need a routing table entry? > > > I wouldn't think so. Isn't that what the gateway entry is for? To tell the > machine this is where you send packets destined for other networks..... No, the gateway in the bootline tells the target where to send packets destined for the host. It does not add a default route. Try adding the following somewhere in the target's init sequence (or you can type it at the target shell if you have that installed): routeAdd ("0", "155.34.103.1") That should get you a default route pointing at your router OK. HTH, John... --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Help! Cannot access vxworks from another network Date: Thu, 28 Feb 2002 10:55:28 -0500 From: "Joe Georger" Message-ID: References: <0Baf8.69$Sk3.3211@llslave.llan.ll.mit.edu> <3C7D47FB.699925C1@notifier-is.net> <488e459a.0202280733.5ebde2be@posting.google.com> > No, the gateway in the bootline tells the target where to send packets > destined for the host. It does not add a default route. > > Try adding the following somewhere in the target's init sequence (or > you can type it at the target shell if you have that installed): > > routeAdd ("0", "155.34.103.1") > > That should get you a default route pointing at your router OK. > > HTH, > > John... John, You are on the right track I believe. I've been doing a little more digging, searching the old archives, and from over 2 years ago I think I found the answer. It looks like VxWorks only adds a route to the host's subnet. So there is no route for packets destined for other networks. This makes very little sense to me. What this means is that if I chose my 155.34.99.99 pc as my host (with the VxWorks board being 155.34.103.42 and it's gateway being 155.34.103.1), then VxWorks would only set up a route to the 155.34.103.0 network, but no other. The apparent solution is to modify the bootConfig.c file with the routeAdd command above and build a new bootrom. It has also been suggested to modify the usrNetwork.c file, but I am not sure where that file is used (if anyone could help me out here that would be great!). So I am currently building a new bootrom and let everyone know what happens after I flash it. Thanks, Joe --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Help! Cannot access vxworks from another network Date: Thu, 28 Feb 2002 16:06:25 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C7E55E2.7000900@spamm.me.l8s.co.uk> References: <0Baf8.69$Sk3.3211@llslave.llan.ll.mit.edu> <3C7D47FB.699925C1@notifier-is.net> <488e459a.0202280733.5ebde2be@posting.google.com> Joe Georger wrote: >>No, the gateway in the bootline tells the target where to send packets >>destined for the host. It does not add a default route. >> >>Try adding the following somewhere in the target's init sequence (or >>you can type it at the target shell if you have that installed): >> >>routeAdd ("0", "155.34.103.1") >> >>That should get you a default route pointing at your router OK. >> >>HTH, >> >>John... >> > > John, > > You are on the right track I believe. I've been doing a little more > digging, searching the old archives, and from over 2 years ago I think I > found the answer. It looks like VxWorks only adds a route to the host's > subnet. So there is no route for packets destined for other networks. This > makes very little sense to me. > > What this means is that if I chose my 155.34.99.99 pc as my host (with the > VxWorks board being 155.34.103.42 and it's gateway being 155.34.103.1), then > VxWorks would only set up a route to the 155.34.103.0 network, but no other. > The apparent solution is to modify the bootConfig.c file with the routeAdd > command above and build a new bootrom. It has also been suggested to modify > the usrNetwork.c file, but I am not sure where that file is used (if anyone > could help me out here that would be great!). So I am currently building a > new bootrom and let everyone know what happens after I flash it. I call the vxWorks code broken. It is possible to have a system where the 'boot' host isn't found using the default route. But those systems have hand crafted IP routing and people who understand what they are doing. I changed the code in usrNetwork.c to make the 'gateway' parameter be the default route. I didn't bother with network booting (target was going to be standalone), so dunno what the boot roms do. Hoever they probably only need to talk to the subnet that contains the boot host... David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: DOS file system Date: Thu, 28 Feb 2002 16:16:09 GMT From: "H. E. Taylor" Organization: MTS Internet Message-ID: <3C7E72B3.5740@despam.autobahn.mb.ca> References: In article , Leonid Rosenboim wrote: > > "Richard" wrote in message > news:b3ec7c99.0202271412.1d9ed685@posting.google.com.. >> We are using Wind River's Flash File System and DOS File System with >> Tornado 5.3.1 on a card with an Intel 386EX processor. We are >> transfering files over a LAN from one card to another and storing the >> files in the Flash File System. We have found the DOS file sytem to be >> an incredible bottle neck, slowing down the file transfer to a crawl. >>[...] > > Frankly, Richard, > all Flash memories are rather slow on writing (except of some new > CompactFlash cards) so I think the true bottle neck is your > Flash device, hence whatever the file system you use, the > performance will stay pretty much the same. >[...] > I have seen people get around this problem by downloading to ramdrive and doing a copy to flash later. Depending upon your pattern of usage and required reliability, this may or may not be useful to you. - -het - -- "progress in software has not followed Moore's law." -John Holland Energy Alternatives: http://www.autobahn.mb.ca/~het/energy.html H.E. Taylor http://www.autobahn.mb.ca/~het/ --------------------------- Newsgroups: comp.os.vxworks Subject: Re: DOS file system Date: Thu, 28 Feb 2002 18:22:03 +0200 From: "Leonid Rosenboim" Organization: Verio Message-ID: References: <3C7DFD92.7060908@spamm.me.l8s.co.uk> "David Laight" wrote in message news:3C7DFD92.7060908@spamm.me.l8s.co.uk... [snip] > > Actually it is the 'erase' that takes the time. I have a feeling > that some manufacturers are quoting a fast 'write' time - which > isn't actually significant! > Dave, erase is indeed a pain in the neck, but even without it raw writing speed of common Flash devices is a drag. For example, common NOR devices that I recall like 38F016 have a write time of 6 microseconds per byte, which translates into less then 500KBytes/sec. NAND flash has a cool trick around this by using an internal RAM buffer that holds an entire 512 byte sector, and then writes all the 512 bytes at the same time - in parallel. FlashLib happend a while back, but I sitll remember a thing or two about it ;-)) --------------------------- Newsgroups: comp.os.vxworks Subject: Re: DOS file system Date: 28 Feb 2002 11:33:17 -0500 From: Bill Pringlemeir Organization: Bell Sympatico Message-ID: References: Sender: bpringlemeir@DeadDuck Leonid> Frankly, Richard, all Flash memories are rather slow on Leonid> writing (except of some new CompactFlash cards) so I think Leonid> the true bottle neck is your Flash device, hence whatever the Leonid> file system you use, the performance will stay pretty much Leonid> the same. Actually, I have removed the code to modify the `last accessed' field in DosFs. This make DosFs not write when you read a file. However, we have application people who read files constantly. An actual bottle neck appears to be the semaphores. Each layer of DosFs tends to grab a semaphore. A naive implementation of "a Windows like INI file API" can give horrendous performance for only _READ_ operations. I think that a journalling file system would do far better; Not to criticize the authors of DosFs. DosFs's goal was to emulate the Dos file system. If you are allowed to switch technologies, then FAT and directory re-writes can be minimize or eliminated, meaning that flash writes and erase can be reduced. I would estimate that this is about 10-30% from looking at traces on the TFFS level functions. Frankly, I think that you are both right (or both wrong if the glass is half empty). Regards, Bill Pringlemeir. - -- I firmly believe that you remind me of the Pope. It's well known that the Russians are tapping your phone. vxWorks FAQ, "http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html" --------------------------- Newsgroups: comp.os.vxworks Subject: DHCP and WINS Date: 28 Feb 2002 08:38:12 -0800 From: zachary.isom@anritsu.com (Zac Isom) Organization: http://groups.google.com/ Message-ID: <2df4589f.0202280838.15fb4da@posting.google.com> I am using DHCP to assign an IP address to my target. That is working just fine. I also would like to be able to find my target on the network by name. That works when I use a static IP address that is assigned a name in our DNS server. However, I would like to be able to register my targets with our local WINS server so that local hosts can find the target by name when it is assigned an IP address through DHCP. The reason this is so important is because when I try to connect a target server to a unit that has been assigned a dynamic IP address I first have to discover the IP address of the target and change it in the Tornado target server configuration dialog. It would be much easier to simply provide a name. Has anyone out there got a solution for this? Thank you in advance for your help. Zac Isom Firmware Engineer Anritsu Company --------------------------- Newsgroups: comp.os.vxworks Subject: Re: problem creating new project Date: Thu, 28 Feb 2002 11:46:58 -0500 From: david lindauer Message-ID: <3C7E5F02.2545B753@notifier-is.net> References: I'm having the same problem. I don't have PCMCIA installed though... I would really like to know what causes this in general. David meekes wrote: > Hi, > > I have a problem creating a new project based on an existing BSP. > > Using Tornado-2, I created a project (bootable vxWorks image) based on a > pcPentium BSP. > The project initially had only an IDE_LOCAL disk and no PCMCIA support. > Later on I added PCMCIA support by defining INCLUDE_PCMCIA in config.h. > The PCMCIA functionality (ATA compact flash disk) is working OK in my > project. > > Now, when I try to create a new project (in the same workspace) based on the > same BSP, > the creation fails. > The messages I get are: > - parsing BSP makefile > - parsing user defined rules from BSP makefile > - parsing BSP's config.h > - creating project file > - calculating included components > -> project creation failed: > "list must have an even number of elements" > > If I undefine INCLUDE_PCMCIA in config.h the creation of a new project is > OK. > I have examined the config.h, pc.h and sysLib.c files, but could not find a > clue. > > One thing I noticed in the first project was that the PC card show routines > were not > included by defining INCLUDE_SHOW_ROUTINES in config.h. > I added a call to pcmciaShowInit in usrAppInit.c to get the show routines > available. > > What can be the problem here? > > TIA, > Michiel --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Having trouble with dynamicly loading modules Date: 28 Feb 2002 11:45:45 -0500 From: Bill Pringlemeir Organization: Bell Sympatico Message-ID: References: <0cff8.5682$G7.1085@nwrddc01.gnilink.net> <3C7DFE80.7040702@spamm.me.l8s.co.uk> Sender: bpringlemeir@DeadDuck >>>>> me writes: >> You do indeed have this right. Loading kernel modules under Linux >> or DLL's under Windows also follow this rule afaik. The basic >> problem is that when module A loads, the kernel must keep track of >> all `unresolved places'. >>>>> "David" == David Laight replies: David> Actually it will load A, add A's symbols load B add B's David> symbols fixup B's references fixup A's references I am not sure what `it' refers to here as I have degenerated in to discussing Linux kernel modules, Windows DLLs and vxWorks modules. You could use your algorithm and the Gnu linker/load (ld) does. However, you have to specify a list of modules to do this, or store the fixups and run the relocation before things are run/installed, etc. My understanding is that vxWorks's moduleLoad(), Window's LoadLibrary(), and Linux's init_module() are only called in sequence per module. The load and fixups are all done at the same time on a per module basis AFAIK. Anyways, I am quite sure that `it' doesn't refer to vxWorks. Linux and/or Windows could resolve things this way. I suspect if anything does, _IT_ is Linux... will you please tell us? Regards, Bill - -- You must be a real fool to think that Multics is a really primitive operating system. No nukes! vxWorks FAQ, "http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html" --------------------------- Newsgroups: comp.os.vxworks Subject: Ethernet problem on an mvme2700 Date: 28 Feb 2002 08:50:19 -0800 From: jperkins@ll.mit.edu (J. Perkins) Organization: http://groups.google.com/ Message-ID: <514a749c.0202280850.348a6474@posting.google.com> I have a system that we built using an mvme2700. We want to replicate the system so we purchased the exact same hardware. The new mvme2700 has the following issues. 1) It will not boot using ftp (the first one will), but it will boot using tftp. 2) Once it boots it will not except commands (via ethernet) from our control software. I want to say the ethernet controller is bad but why would tftp work and ftp fail? I can ping the troubled board without a problem. Any ideas? Jim --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Having trouble with dynamicly loading modules Date: Thu, 28 Feb 2002 17:06:04 GMT From: "Matt Schuckmann" Message-ID: <0stf8.8225$G7.2065@nwrddc01.gnilink.net> References: <0cff8.5682$G7.1085@nwrddc01.gnilink.net> <3C7DFE80.7040702@spamm.me.l8s.co.uk> David, how would you perform the last 2 steps in VxWorks? Thanks Matt S. "David Laight" wrote in message news:3C7DFE80.7040702@spamm.me.l8s.co.uk... > > > You do indeed have this right. Loading kernel modules under Linux or > > DLL's under Windows also follow this rule afaik. The basic problem is > > that when module A loads, the kernel must keep track of all > > `unresolved places'. > > > Actually it will > load A, > add A's symbols > load B > add B's symbols > fixup B's references > fixup A's references > > David > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Having trouble with dynamicly loading modules Date: Thu, 28 Feb 2002 17:12:22 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C7E6559.3000300@spamm.me.l8s.co.uk> References: <0cff8.5682$G7.1085@nwrddc01.gnilink.net> <3C7DFE80.7040702@spamm.me.l8s.co.uk> <0stf8.8225$G7.2065@nwrddc01.gnilink.net> Matt Schuckmann wrote: > David, how would you perform the last 2 steps in VxWorks? You can't - it is only done when libraries 'cascade' load other libraries. the vxWorks loader doesn't even do anything sensible for 'common' data items.... (mind you we had to fix the one in UnixWare 2) David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: DOS file system Date: Thu, 28 Feb 2002 20:01:26 +0200 From: "Leonid Rosenboim" Organization: Verio Message-ID: References: Hey Bill, I dreamt to do a Journaling file system for WIndRiver, but it did not work out. As to the access date updates in directory entries, you are quite right, this should have been done as another option (to go with case sensitive) to be set when a device is being mounted. Still, if there is disk cache, these updates won't be causing much of a performance penalty, as small modification swill be delayed to the tDcacheUpd task, which will cick in when the application task lays off the Flash disk. The udpates do cause unnecesary wearing of the Flash device. As to the original question herein, he is using the OLD dosFs 1.x, so he eint got disk cache and he eint got access time updates, and all of his directory entires are cached in RAM (yuk!), and he got a cluster-sized data buffer per open file, so the MTD operations would be same size as his cluster. Hence there really eint much I can do for him, except suggest he redesigns the Flash in 4-way interleaved setup, and dig into the MTD to make it to 4-way parallel writes and boost 4x on the write speed. Not very likely he is going to redesign the H/W me thinks, and he could violate a Lexar patent if he does, so I skipped this advise altogether. Ceers, Dude! Leonid "Bill Pringlemeir" wrote in message news:ur8n5r2gi.fsf@yahoo.com... > > Leonid> Frankly, Richard, all Flash memories are rather slow on > Leonid> writing (except of some new CompactFlash cards) so I think > Leonid> the true bottle neck is your Flash device, hence whatever the > Leonid> file system you use, the performance will stay pretty much > Leonid> the same. > > Actually, I have removed the code to modify the `last accessed' field > in DosFs. This make DosFs not write when you read a file. However, > we have application people who read files constantly. An actual > bottle neck appears to be the semaphores. Each layer of DosFs tends > to grab a semaphore. A naive implementation of "a Windows like INI > file API" can give horrendous performance for only _READ_ operations. > > I think that a journalling file system would do far better; Not to > criticize the authors of DosFs. DosFs's goal was to emulate the Dos > file system. If you are allowed to switch technologies, then FAT and > directory re-writes can be minimize or eliminated, meaning that flash > writes and erase can be reduced. I would estimate that this is about > 10-30% from looking at traces on the TFFS level functions. > > Frankly, I think that you are both right (or both wrong if the glass > is half empty). > > Regards, > Bill Pringlemeir. > -- > I firmly believe that you remind me of the Pope. It's well known that > the Russians are tapping your phone. > vxWorks FAQ, "http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html" --------------------------- Newsgroups: comp.os.vxworks Subject: Re: DHCP and WINS Date: Thu, 28 Feb 2002 20:05:36 +0200 From: "Leonid Rosenboim" Organization: Verio Message-ID: References: <2df4589f.0202280838.15fb4da@posting.google.com> Franky Zacky, you are posting on the wrong newsgroup! This is by no means VxWorks specific, it could be any kinda box hooked to the net and getting dynamic IP address that you want a name mapped to. It does call for some groovy Windoze intimacy to answer this, you are using a Win NT WINS server, and probably a MSFT DHCP server on the same machine, and you're after making these two Dudes from Seatle to get to know eachother, and exchange some data. Try to post it on a Windows-specific newsgroup or on MSDN. Leonid "Zac Isom" wrote in message news:2df4589f.0202280838.15fb4da@posting.google.com... > I am using DHCP to assign an IP address to my target. That is working > just fine. I also would like to be able to find my target on the > network by name. That works when I use a static IP address that is > assigned a name in our DNS server. However, I would like to be able > to register my targets with our local WINS server so that local hosts > can find the target by name when it is assigned an IP address through > DHCP. > > The reason this is so important is because when I try to connect a > target server to a unit that has been assigned a dynamic IP address I > first have to discover the IP address of the target and change it in > the Tornado target server configuration dialog. It would be much > easier to simply provide a name. > > Has anyone out there got a solution for this? Thank you in advance > for your help. > > Zac Isom > Firmware Engineer > Anritsu Company --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Ethernet problem on an mvme2700 Date: Thu, 28 Feb 2002 20:10:23 +0200 From: "Leonid Rosenboim" Organization: Verio Message-ID: References: <514a749c.0202280850.348a6474@posting.google.com> Here goes a wild guess: your new board might be using the same MAC address as your old one? "J. Perkins" wrote in message news:514a749c.0202280850.348a6474@posting.google.com... > I have a system that we built using an mvme2700. We want to replicate > the system so we purchased the exact same hardware. The new mvme2700 > has the following issues. > > 1) It will not boot using ftp (the first one will), but it will boot > using tftp. > 2) Once it boots it will not except commands (via ethernet) from our > control software. > > I want to say the ethernet controller is bad but why would tftp work > and ftp fail? I can ping the troubled board without a problem. > > Any ideas? > > Jim --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Help! Cannot access vxworks from another network Date: Thu, 28 Feb 2002 16:18:59 -0000 From: "Dave Korn" Organization: Lumber Cartel (tinlc) Members #2234-2237 (owing to browser refresh) Message-ID: References: <0Baf8.69$Sk3.3211@llslave.llan.ll.mit.edu> <3C7D9038.A51390B8@dsto.defence.gov.au> <4Qpf8.71$Sk3.3151@llslave.llan.ll.mit.edu> "Joe Georger" wrote in message news:4Qpf8.71$Sk3.3151@llslave.llan.ll.mit.edu... > > Have you set up an entry in your development PC's route table. Although > the > > gateway is specified at the boot prompt, the PC has to know how to get > back to > > the vxWorks machine. If you haven't try adding the following at a DOS > prompt on > > the development PC: > > > > route ADD 155.34.103.0 MASK 255.255.255.0 METRIC 2 IF 1 > > > > where is the IP address of your hostname on your 155.34.99.0 > network. > > > The gateway on my development pc is 155.34.99.1. I have no trouble pinging > the host pc (155.34.103.41) on the 103 subnet. Therefore I would think that > I should be able to ping the VxWorks board as well. Unless I am missing > some nuance of networking.... You're going to have to draw an ascii-art diagram of the subnets, showing the two pcs, the gateway, and the vxworks target, I think... DaveK - -- moderator of alt.talk.rec.soc.biz.news.comp.humanities.meow.misc.moderated.meow Burn your ID card! http://www.optional-identity.org.uk/ Help support the campaign, copy this into your .sig! Proud Member of the Exclusive "I have been plonked by Davee because he thinks I'm interesting" List Member # Master of Many Meowing Minions Holder of the exhalted PF Chang's Crab Wonton Award for kook spankage above and beyond the call of hilarity. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Why do I need to do eieio behavior after sysInByte() and sysOutByte()? Date: Thu, 28 Feb 2002 16:19:03 -0000 From: "Dave Korn" Organization: Lumber Cartel (tinlc) Members #2234-2237 (owing to browser refresh) Message-ID: References: <3C728BDC.8070407@spamm.me.l8s.co.uk> <3C75867E.9020908@spamm.me.l8s.co.uk> "David Laight" wrote in message news:3C75867E.9020908@spamm.me.l8s.co.uk... > Vinh wrote: > > > David Laight wrote in message news:<3C728BDC.8070407@spamm.me.l8s.co.uk>... > > > > >>Also remember that a write could still be buffered (eg in a > >>PCI bridge) even after the eieio completes. Reading the same > >>location back is necessary in order to flush the written data. > >> > > > > Agree, but what happen if data cache is enable? > > if the cache is not in a write-through mode, a read will not flush the > > written data...? > > Ok - we are talking about uncached accesses, enabling the cache > for IO (device) addresses is not for the faint hearted :-) > > Consider the write at the end of an ISR that causes the IO chip > to remove its interrupt request. > You don't want the ISR to exit until this write has happened (or > the ISR is entered again). > In order to increase performance, a significant number of devices > will buffer the address and data for a write cycle, telling the > cycle initiator that the cycle is complete, but completeing the > cycle (eg on a target bus) at a later time. > Normally this doesn't matter, but is you REALLY need the cycle to > have completed you must force the cycle out of the buffer. The > easiest (maybe only) way is to issue a read cycle for the same > address - if you have written to a register you cannot read > without destroying some status info, you may have to write to > a differenent register just to do the readback. Even this > required that writes not re reordered..... You generally also need to set the G (guarded) bit in the appropriate BAT/PTE as well as the I (cache-inhibited) and M (memory coherency) bits.... that pretty much serializes and de-speculates everything. (OMG... imagine the consequences of doing a read from a cached memory-mapped IO device with lots of read-clear registers and the cache goes and pulls in an entire cache-line's worth of data...yuk!) DaveK - -- moderator of alt.talk.rec.soc.biz.news.comp.humanities.meow.misc.moderated.meow Burn your ID card! http://www.optional-identity.org.uk/ Help support the campaign, copy this into your .sig! Proud Member of the Exclusive "I have been plonked by Davee because he thinks I'm interesting" List Member # Master of Many Meowing Minions Holder of the exhalted PF Chang's Crab Wonton Award for kook spankage above and beyond the call of hilarity. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: clock_gettime fails with write() but not fwrite Date: Thu, 28 Feb 2002 16:19:06 -0000 From: "Dave Korn" Organization: Lumber Cartel (tinlc) Members #2234-2237 (owing to browser refresh) Message-ID: References: <6wBb8.3387$zl4.2197904@typhoon3.we.ipsvc.net> <3C714455.4050207@spamm.me.l8s.co.uk> <22vd8.2703$5o.1592814@newsr2.u-net.net> <3C7688A1.8050805@spamm.me.l8s.co.uk> <2pve8.2770$5o.1748555@newsr2.u-net.net> <3C7A8869.3020108@spamm.me.l8s.co.uk> "David Laight" wrote in message news:3C7A8869.3020108@spamm.me.l8s.co.uk... > Dave Korn wrote: > > > > > Oh... gotcha now. We can deduce that that has to be *why* vxTicks gets > > reset - but not necessarily where or when. Yeh, I see. Ok, I think I know > > how to track it down. If I were to set a h/w write breakpoint on vxTicks... > > well, it would get triggered every interrupt for starters, but if I were to > > make it return from the exception every time the value being written into > > vxTicks was non-zero.... hmmmm.... > > > It is much easier than that, just put a code breakpoint on the routine > that resorts the list. I've forgotten it's name, but is it easily > determinable from the code - try _qPriListCalibrate (guess from > namelist) I convinced myself that it had to be tScsiTask, simply by issuing a huge scsi read from my application while tScsiTask was taskSuspend'ed from the shell, then waiting a while and seeing vxTicks wasn't zeroed yet, suspending everything else (except tShell and tNetTask), waiting a while, and verifying vxTicks wasn't reset; then taskResume'ing tScsiTask and spotting vxTicks get zeroed at once. But not having the source code, I never felt it was much worth narrowing it down any further. > Sometimes it is faster to read likely source files looking > for a bug that might cause what you are seeing, fix the > bug you found and see if it solves the problem you have. Heh, of course, if you feel you can dip into any source file at random and stand a good chance of just spotting a bug, that's not *really* a good sign. Anyway, my chances of convincing my management to spend 10's of kiloquids just so I could help WRS find their own bugs have gotta be next to zero :) which is fair enough since I got other things to do with me time anyway :P DaveK - -- moderator of alt.talk.rec.soc.biz.news.comp.humanities.meow.misc.moderated.meow Burn your ID card! http://www.optional-identity.org.uk/ Help support the campaign, copy this into your .sig! Proud Member of the Exclusive "I have been plonked by Davee because he thinks I'm interesting" List Member # Master of Many Meowing Minions Holder of the exhalted PF Chang's Crab Wonton Award for kook spankage above and beyond the call of hilarity. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: [question]Memory access in mpc750.. Date: 28 Feb 2002 10:31:50 -0800 From: mremski@cetacean.com (mike remski) Organization: http://groups.google.com/ Message-ID: <9156104d.0202281031.1aff1529@posting.google.com> References: <2b0ae335.0202280148.3d1be3ab@posting.google.com> The data access exception is saying that you do not have any memory management unit translations set up to cover that address. You need to go to sysLib.c and look for the section that is setting up BATs and PTEs. Add either a DBAT to cover the range or another entry in the PTE table to cover it. Look in the users guide for the 750 about this. emycall@dreamx.net (Ahn Jung Hoon) wrote in message news:<2b0ae335.0202280148.3d1be3ab@posting.google.com>... > Hi, all.. > > I can access PCI memory to 16Mb, 64Mb and 128Mb size in MPC750 board. > > /* 16MB : 0x02000000, > 64MB : 0x08000000, > 128MB : 0x10000000, > 256MB : 0x20000000, > 512MB : 0x40000000 > */ > #define CPU_PCI_MEM_SIZE 0x20000000 > > I can read 256Mb size, but I can not access PCI memory more than 256Mb size.. > > I don't know that what is problem.. > > please, help me.. > > -=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=- > > 1.. > -> pciHeaderShow(2, 0, 0) > vendor ID = 0x11b0 > device ID = 0x0200 > command register = 0x0002 > status register = 0x0280 > revision ID = 0x00 > class code = 0x05 > sub class code = 0x00 > programming interface = 0x00 > cache line = 0x00 > latency time = 0xf8 > header type = 0x00 > BIST = 0x00 > base address 0 = 0x10000000 > base address 1 = 0x00000000 > base address 2 = 0x00000000 > base address 3 = 0x00000000 > base address 4 = 0x00000000 > base address 5 = 0x00000000 > cardBus CIS pointer = 0x00000000 > sub system vendor ID = 0x4754 > sub system ID = 0x0005 > expansion ROM base address = 0x00000000 > interrupt line = 0xff > interrupt pin = 0x00 > min Grant = 0x00 > max Latency = 0x00 > value = 0 = 0x0 > -> > > 2.. > -> d 0x10000000 > 10000000: > data access > Exception current instruction address: 0x0015c070 > Machine Status Register: 0x0000b030 > Data Access Register: 0x10000000 > Condition Register: 0x48200080 > Data storage interrupt Register: 0x40000000 > > 1812e0 vxTaskEntry +60 : shell () > 177118 shell +18c: 177144 () > 177368 shell +3dc: execute () > 1774ec execute +d8 : yyparse () > 1a96ec yyparse +7a8: 1a7634 () > 1a77ac yystart +8f8: d () > shell restarted. > > -> --------------------------- Newsgroups: comp.os.vxworks Subject: Re: [question]Memory access in mpc750.. Date: 28 Feb 2002 10:41:53 -0800 From: vloscomp@yahoo.com (Vinh) Organization: http://groups.google.com/ Message-ID: References: <2b0ae335.0202280148.3d1be3ab@posting.google.com> Hi, Check you 'sysLib.c' file; you should have an entry in the sysPhysMemDesc that describeb your PCI window. Vinh Lam emycall@dreamx.net (Ahn Jung Hoon) wrote in message news:<2b0ae335.0202280148.3d1be3ab@posting.google.com>... > Hi, all.. > > I can access PCI memory to 16Mb, 64Mb and 128Mb size in MPC750 board. > > /* 16MB : 0x02000000, > 64MB : 0x08000000, > 128MB : 0x10000000, > 256MB : 0x20000000, > 512MB : 0x40000000 > */ > #define CPU_PCI_MEM_SIZE 0x20000000 > > I can read 256Mb size, but I can not access PCI memory more than 256Mb size.. > > I don't know that what is problem.. > > please, help me.. > > -=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=- > > 1.. > -> pciHeaderShow(2, 0, 0) > vendor ID = 0x11b0 > device ID = 0x0200 > command register = 0x0002 > status register = 0x0280 > revision ID = 0x00 > class code = 0x05 > sub class code = 0x00 > programming interface = 0x00 > cache line = 0x00 > latency time = 0xf8 > header type = 0x00 > BIST = 0x00 > base address 0 = 0x10000000 > base address 1 = 0x00000000 > base address 2 = 0x00000000 > base address 3 = 0x00000000 > base address 4 = 0x00000000 > base address 5 = 0x00000000 > cardBus CIS pointer = 0x00000000 > sub system vendor ID = 0x4754 > sub system ID = 0x0005 > expansion ROM base address = 0x00000000 > interrupt line = 0xff > interrupt pin = 0x00 > min Grant = 0x00 > max Latency = 0x00 > value = 0 = 0x0 > -> > > 2.. > -> d 0x10000000 > 10000000: > data access > Exception current instruction address: 0x0015c070 > Machine Status Register: 0x0000b030 > Data Access Register: 0x10000000 > Condition Register: 0x48200080 > Data storage interrupt Register: 0x40000000 > > 1812e0 vxTaskEntry +60 : shell () > 177118 shell +18c: 177144 () > 177368 shell +3dc: execute () > 1774ec execute +d8 : yyparse () > 1a96ec yyparse +7a8: 1a7634 () > 1a77ac yystart +8f8: d () > shell restarted. > > -> --------------------------- Newsgroups: comp.os.vxworks Subject: Re: DHCP and WINS Date: 28 Feb 2002 13:46:44 -0500 From: Bill Pringlemeir Organization: Bell Sympatico Message-ID: References: <2df4589f.0202280838.15fb4da@posting.google.com> Sender: bpringlemeir@DeadDuck >>>>> "Zac" == Zac Isom writes: Zac> I am using DHCP to assign an IP address to my target. That is Zac> working just fine. I also would like to be able to find my Zac> target on the network by name. That works when I use a static Zac> IP address that is assigned a name in our DNS server. However, Zac> I would like to be able to register my targets with our local Zac> WINS server so that local hosts can find the target by name when Zac> it is assigned an IP address through DHCP. DHCP is a misnomer. It is more like `centralized IP registration'. Maybe CIR doesn't sound as good... Anyways, whether the IPs are truly dynamic depends on the DHCP server. vxWorks will only listen to what IP addresses (and other entries) are given to it through the UDP port 67/68 messages. You could use something like "http://clients.dyndns.org/unix.php" to send an update to a DNS server. I don't know why you would want to use WINS. A normal DNS server would do fine. Your quandary is to either have the client notify the `name server' [not my recommendation] or have the DHCP server notify the `name server'. By statically assigning IP addresses in the DHCP server, you can also add fixed records to the name server. In this case, the DHCP server really becomes a `centralized IP registration'; there is nothing dynamic about it. This is still valuable for people who wish to maintain networks as all IPs are recorded in a central location. The last setup I described is one that we use with NT machines and a Linux DHCP and DNS server. The best kind of work to do with vxWorks is no work at all. hth, Bill Pringlemeir. - -- ATTACKED BY ATOMIC BOMB 29W 32S. SINKING. U-382. vxWorks FAQ, "http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html" --------------------------- Newsgroups: comp.os.vxworks Subject: Re: NFS File - Appending Date: Thu, 28 Feb 2002 20:46:14 +0200 From: "Leonid Rosenboim" Organization: Verio Message-ID: References: <3C7E07FB.9040902@spamm.me.l8s.co.uk> Well, simulation is better then trunkation. SunOS eint NetBSD, and it was a while ago, maybe SunOS did simulate O_APPEND over NFS, I think it did not, I think it actually returned an error... it does not really matter. VxWorks NFS client simply ignores O_APPEND, but if simulation is sufficient, there is nothing wring with doing one fseek() call just after the fopen(), just one more line... "David Laight" wrote in message news:3C7E07FB.9040902@spamm.me.l8s.co.uk... > Leonid Rosenboim wrote: > > > Appending to a file has never worked over NFS, not even on the original > > SunOS platform (both client and server). > > > Bullshit.... This fragment is from NetBSD: > > if (ioflag & IO_APPEND) { > np->n_attrstamp = 0; > error = VOP_GETATTR(vp, &vattr, cred, p); > if (error) > return (error); > uio->uio_offset = np->n_size; > } > > Which similates write append by requesting the current offset just > before the write. > > > > > > The reason is that NFS server is state-less, i.e. it does not keep any > > record > > about who are the cleints and what files they access, thus the O_APPEND > > file option available for all local Unix file systems on SunOS is not > > available on NFS. Every NFS write request contains a specific file > > offset field where the data needs to be written relative to start of file. > > > State isn't needed to support O_APPEND! > However the NFS protocol (probably) doesn't include the append feature, > so concurrent appends from different remote systems will fail. > > (FWIW, for a long time the unix shell '>>' redirection did 'open at > end of file' (not open append) so that appending to a file from 2 places > didn't work. Also SVR4 got O_APPEND wrong - failed to lock the write > to the file size change, caused very funny effects with multiple > writers.) > > > > >>I have a NFS file that I want to be able to append to. > > >>The file seems to be truncated everytime I open the file. > >>I perform a fopen(filename,"a"). > > >> > >> This works fine if I open the file on the hard drive on the target, > > >>but the NFS file on the PC workstation will never append. > >>Any ideas? (PC486 BSP) > > I suspect your PC NFS server is broken..... > Try with a unix NFS server. > > David > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Ethernet problem on an mvme2700 Date: Thu, 28 Feb 2002 14:06:28 -0500 From: "James Perkins" Message-ID: References: <514a749c.0202280850.348a6474@posting.google.com> Leonid, I don't have both boards up at the same time. I pull one board out of the card cage and pop the other in. Thanks, Jim "Leonid Rosenboim" wrote in message news:newscache$88b9sg$ql6$1@lnews.actcom.co.il... > Here goes a wild guess: > your new board might be using the same MAC address as your > old one? > > > "J. Perkins" wrote in message > news:514a749c.0202280850.348a6474@posting.google.com... > > I have a system that we built using an mvme2700. We want to replicate > > the system so we purchased the exact same hardware. The new mvme2700 > > has the following issues. > > > > 1) It will not boot using ftp (the first one will), but it will boot > > using tftp. > > 2) Once it boots it will not except commands (via ethernet) from our > > control software. > > > > I want to say the ethernet controller is bad but why would tftp work > > and ftp fail? I can ping the troubled board without a problem. > > > > Any ideas? > > > > Jim > > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Ethernet problem on an mvme2700 Date: 28 Feb 2002 11:41:20 -0800 From: Joe Chung Message-ID: References: <514a749c.0202280850.348a6474@posting.google.com> jperkins@ll.mit.edu (J. Perkins) writes: > I have a system that we built using an mvme2700. We want to replicate > the system so we purchased the exact same hardware. The new mvme2700 > has the following issues. > > 1) It will not boot using ftp (the first one will), but it will boot > using tftp. Whenever that happens to me, it's usually due to a misconfig of the ftp server. Are you using the correct username/password? Is the ftp server somehow limiting who can connect to it? Is the "default" path correct. Is the kernel to be downloaded where it really is, etc. If you look at your ftp server's logs, can you tell what went wrong? Was there ever a connection to the ftp server to begin with? Can you ftp from that server manually, yourself? Etc. > 2) Once it boots it will not except commands (via ethernet) from our > control software. If your client is supposed to be listening on a known port, can you manually connect to it, say with telnet? > I want to say the ethernet controller is bad but why would tftp work > and ftp fail? I can ping the troubled board without a problem. When I had hardware fail on the 2700, it's usually catastrophic. I once got a mvme2700 whose scsi controller started smoking when I powered up the board. I tried another 2700 and that one worked. So I'm thinking this is probably not a hardware issue... > > Any ideas? > > Jim I'm just wondering how did you arrive at those 2 conclusions. Can you provide details of the steps you took and the errors you got? In both cases, if you sniff the network, what do you see? - -jc - -- (apply 'concat (reverse (list "com" (char-to-string 46) "yahoo" (char-to-string 64) "joechung"))) --------------------------- Newsgroups: comp.os.vxworks Subject: How do I echo my input back to windshell Date: 28 Feb 2002 12:25:29 -0800 From: dpraveen@hotmail.com (Praveen Dulam) Organization: http://groups.google.com/ Message-ID: <182ee52a.0202281225.2f4b12a9@posting.google.com> VxWorks Guru's Hope this question is asked many time before , but I could not dig out the exact answers. Can some one tell me how I can echo back the "commands" on the windshell as I type in commands. ( This is for my CLI project ). The fallowing is the code snippet I am using. void test() { char buf[256]; ioctl(STD_IN, FIOSETOPTIONS, OPT_TERMINAL); printf ( "Please enter the Command\n"); gets(buf); printf ( "The entered Commandis %s \n",buf); } THe Characters are echoed only when I hit eneter, but not as when I type. Hope I am clear , I need a interactive command line interface. I think if I do from serial interface , telnet it might work. For now what I want is , from shell integrated in the Tornodo Environment. TIA, - -Praveen --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Ethernet problem on an mvme2700 Date: Thu, 28 Feb 2002 15:39:05 -0500 From: "James Perkins" Message-ID: References: <514a749c.0202280850.348a6474@posting.google.com> In my system the 2700 takes commands from control software on a PC via TCP. The 2700 then issues commands to other boards in the card cage, or it sends commands to other boards via TCP. In the system the only thing I change is the 2700. I put the "good" one in, power up, and it boots, gets the system image via ftp, and works fine. I can run my control software and it connects to the 2700 and all is well. I ran inetstatShow in the Tornado shell and I could see the connection to the control software on the PC. Now, I switch the 2700 with an identical 2700 that is configured identically. It will not get the system image via ftp. It just hangs and then reports an error in the terminal window. To get this board to boot I have to use tftp. After that the "bad" board is running the same system image that was running on the "good" board but it will not accept a connection from my control PC. I run inetstatShow in the shell and all I see is task waiting for TCP connection. I just never accepts the connection. The only thing I have changed here is the 2700. FTP and my control program both use TCP. TFTP uses UDP. So it looks like I have one board that accepts TCP and UDP connections and another board that only accepts UDP connections. So, I don't understand how this is a hardware problem. On the other hand how can it be a software problem? - -Jim "Joe Chung" wrote in message news:rpsbse9gzrz.fsf@nospam.invalid... > jperkins@ll.mit.edu (J. Perkins) writes: > > > I have a system that we built using an mvme2700. We want to replicate > > the system so we purchased the exact same hardware. The new mvme2700 > > has the following issues. > > > > 1) It will not boot using ftp (the first one will), but it will boot > > using tftp. > > Whenever that happens to me, it's usually due to a misconfig of > the ftp server. Are you using the correct username/password? Is > the ftp server somehow limiting who can connect to it? Is the > "default" path correct. Is the kernel to be downloaded where it > really is, etc. > > If you look at your ftp server's logs, can you tell what went > wrong? Was there ever a connection to the ftp server to begin > with? Can you ftp from that server manually, yourself? Etc. > > > 2) Once it boots it will not except commands (via ethernet) from our > > control software. > > If your client is supposed to be listening on a known port, can > you manually connect to it, say with telnet? > > > I want to say the ethernet controller is bad but why would tftp work > > and ftp fail? I can ping the troubled board without a problem. > > When I had hardware fail on the 2700, it's usually catastrophic. > I once got a mvme2700 whose scsi controller started smoking when > I powered up the board. I tried another 2700 and that one worked. > So I'm thinking this is probably not a hardware issue... > > > > > Any ideas? > > > > Jim > > I'm just wondering how did you arrive at those 2 conclusions. > > Can you provide details of the steps you took and the errors you got? > > In both cases, if you sniff the network, what do you see? > > -jc > -- > (apply 'concat (reverse (list "com" > (char-to-string 46) "yahoo" > (char-to-string 64) "joechung"))) --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Ethernet problem on an mvme2700 - a new test Date: Thu, 28 Feb 2002 16:49:49 -0500 From: "James Perkins" Message-ID: References: <514a749c.0202280850.348a6474@posting.google.com> I compiled the following function into my system image: void testTCP(){ ulint * bufFTP; int ctrlSock; int dataSock; bufFTP = new ulint [25]; if(ftpXfer ("192.168.0.107", "quiklook", "quiklook", "", "STOR %s", "", "testdata.bin", &ctrlSock, &dataSock) == ERROR){ cout << "ftp transfer init failed \n"; }else{ cout << "ftp transfer init succeeded \n"; if(write(dataSock, (char *)bufFTP, 100) < 100){ cout << "ftp transfer error 0\n"; }else{ cout << "passed 0\n"; } close (dataSock); if (ftpReplyGet (ctrlSock, TRUE) != FTP_COMPLETE){ cout << "ftp transfer error 1\n"; }else{ cout << "passed 1\n"; } if (ftpCommand (ctrlSock, "QUIT", 0, 0, 0, 0, 0, 0) != FTP_COMPLETE){ cout << "ftp transfer error 2\n"; }else{ cout << "passed 2\n"; } close (ctrlSock); cout << "ftp transfer finished\n"; } delete[]bufFTP; } On my "good" 2700 this function executes properly. It writes 100 bytes to the ftp server into a file named testdata.bin and then exits gracefully. On my "bad" 2700 running the exact SAME system image the function hangs. It starts the ftp session, creates a file on the ftp server, but does not write any data to the file. It just sits there and does nothing. The file on the server is 0 bytes. - -Jim "J. Perkins" wrote in message news:514a749c.0202280850.348a6474@posting.google.com... > I have a system that we built using an mvme2700. We want to replicate > the system so we purchased the exact same hardware. The new mvme2700 > has the following issues. > > 1) It will not boot using ftp (the first one will), but it will boot > using tftp. > 2) Once it boots it will not except commands (via ethernet) from our > control software. > > I want to say the ethernet controller is bad but why would tftp work > and ftp fail? I can ping the troubled board without a problem. > > Any ideas? > > Jim --------------------------- Newsgroups: comp.os.vxworks Subject: ISOLATE and PRATITION states on LXT9880 ethernet Repeater? Date: Thu, 28 Feb 2002 16:48:14 -0500 From: Babu Yama Organization: Lucent Technologies Message-ID: <3C7EA59E.D86B64B8@lucent.com> Hi, On Intel's ethernet repeater device LXT9880, what will be the symptoms of ISOLATE and PARTITION states? When will these states happen? We are seeing that (my previous post about tx-stall dated Tues, Feb 19th), some times, MPC8260 CPM is not transmitting to the LXT9880. That is, after we set up the Buffer Descriptors for DMA, the CPM is not clearing TXBD[Ready] bit on all the BDs. We are stuck in this state for ever. Could this symptom be related to ISOLATE or PARTITION states? If not, what might be causing this? Any ideas to pursue and fix. Thanks in advance, Babu --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Ethernet problem on an mvme2700 - a new test Date: 28 Feb 2002 14:07:54 -0800 From: Joe Chung Message-ID: References: <514a749c.0202280850.348a6474@posting.google.com> Does your server have a firewall? - -jc - -- (apply 'concat (reverse (list "com" (char-to-string 46) "yahoo" (char-to-string 64) "joechung"))) --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Ethernet problem on an mvme2700 - a new test Date: Thu, 28 Feb 2002 14:17:55 -0800 From: "Hwa-Jin Bae" Organization: Posted via Supernews, http://www.supernews.com Message-ID: References: <514a749c.0202280850.348a6474@posting.google.com> I have seen this kind of situation when the ethernet MAC address is set to something bad (like all 1's). It might help to print out the MAC address of the "problem" board. If it looks suspicious, set it to something that makes sense (3 vendor octets followed by 3 unique octets of choice). If that is not the problem, you should get something like ethereal (www.ethereal.com) and sniff the ethernet to see what is going on. My guess is that the vxworks side running on "problem" board never gets any TCP ack's from windows machine, because your vxworks side "problem" board has bad ethernet mac address. --------------------------- Newsgroups: comp.os.vxworks Subject: Flash MVME162 under VxWorks Date: 28 Feb 2002 14:34:01 -0800 From: hoff@bnl.gov (unixmidiplugin) Organization: http://groups.google.com/ Message-ID: <12075c07.0202281434.3ba3f9eb@posting.google.com> Does anyone know of a (free) utility to reprogram the FLASH memory on a MVME162? We just installed a new firewall/router which does not work well with the boot code in our network of MVME162s (based on VxWorks 5.1). I'd like to reprogram the bootcode, but I do not relish the idea of going through 162-Bug by hand on 80 different systems. Thanks -- Larry --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Binding to a socket Date: Thu, 28 Feb 2002 14:46:28 -0800 From: "Hwa-Jin Bae" Organization: Posted via Supernews, http://www.supernews.com Message-ID: References: SO_BINDTODEVICE is Linux specific. BSD does not support it and neither does vxWorks. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: DOS file system Date: 28 Feb 2002 14:47:10 -0800 From: cjohnson@oresis.com (Charles Johnson) Organization: http://groups.google.com/ Message-ID: References: We had to make the exact same modification. (Not modifying the access time attribute on reads.) We also totally disable the disk block cache to reduce the chance of corrupting the file system. - --Charles Johnson Oresis Communications, Inc. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: DOS file system Date: 28 Feb 2002 14:52:13 -0800 From: cjohnson@oresis.com (Charles Johnson) Organization: http://groups.google.com/ Message-ID: References: At one point there was a journalled file system available for VxWorks from a third party company called CrosStor. We were even evaluating it for possible use. It basically was the journaling file system from Unixware with a VxWorks compatible wrapper around the VFS APIs. However CrosStor was purchased by EMC and they were no longer interested in selling the product externally. I've thought about taking either IBM JFS, SGI XFS or ext3 and doing the same. It just takes time. - --Charles Johnson Oresis Communications, Inc. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Ethernet problem on an mvme2700 - a new test Date: Thu, 28 Feb 2002 18:02:47 -0500 From: Organization: Posted via Supernews, http://www.supernews.com Message-ID: References: <514a749c.0202280850.348a6474@posting.google.com> No. "Joe Chung" wrote in message news:rpsheo145vp.fsf@nospam.invalid... > Does your server have a firewall? > > -jc > -- > (apply 'concat (reverse (list "com" > (char-to-string 46) "yahoo" > (char-to-string 64) "joechung"))) --------------------------- Newsgroups: comp.os.vxworks Subject: Finding undefined symbols in .out file Date: Thu, 28 Feb 2002 23:51:13 GMT From: Jon Newbill Organization: EarthLink Inc. -- http://www.EarthLink.net Message-ID: <3C7EC2D5.1B9A2EE9@bitworkssystemsDELETETHIS.com> Being a fairly new to VxWorks I ask some simple questions that field and tech support haven't been able to give simple answers to. The first time I tried to download my application.out file I got a slew of undefined symbols. In any other environment I would have looked at the linker's map file to determine where the undefined symbols were referenced or actually the linker would have told me the module that referenced the undefined symbol. Since with VxWorks the .out file is really an object module built from other object modules it doesn't seem that there is a map to show symbols and what module they were referenced in. My FAE and his tech support person indicated that objdump386 should give me what I need but were unable to tell me what switches would yield a symbol table showing symbol references and what modules the symbols were referenced in. I questioned whether the .out file even has the information in it as to where all its symbols originated from (source or object). The answer I got was was vague, along the lines of "objDump386 should do anything you need". So the question is. How do you find what module referenced an undefined symbol when you download a .out file that was built from 50 or more modules? Jon Newbill jonUN@bitworkssystemsREMOVTHIS.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: NFS File - Appending Date: Thu, 28 Feb 2002 16:30:11 -0800 From: "Hwa-Jin Bae" Organization: Posted via Supernews, http://www.supernews.com Message-ID: References: <3C7E07FB.9040902@spamm.me.l8s.co.uk> NFS servers in Solaris and SunOS always supported appending (as in fopen with "a"). This is not really done in NFS at all, but in a generic way. The fopen() is not a system call in Unix; it is a libc routine. Most fopen() implementations (Solaris, Sunos, netbsd, and vxWorks) will look at the mode string and decode before making a system call open(). If "a" is used, instead of setting O_TRUNC, O_APPEND will be set and sent down to open(). The same behavior is preserved in all Unix machines as well as vxWorks. vxWorks NFS client (nfsDrv) will pay attention to the mode bits (O_CREAT, O_TRUNC, etc.) and only truncate the file if O_TRUNC is set. It might be useful to call open() instead of fopen() and see what happens. Make sure O_TRUNC is not set and O_APPEND is set. Regarding the quote BSD kernel code (IO_APPEND flag handling), that is a seperate thing from the higher level thing. fopen() in libraries will call open() and seek to end of file if O_APPEND is set. The semantics of "a" is handled at C library level, not in kernel level. The IO_APPEND is a flag used as an arg to Vnode ops as per unix style VFS interface within kernel. It is not related to handling "a" flag of fopen(). --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Ethernet problem on an mvme2700 - a new test Date: Thu, 28 Feb 2002 19:39:22 -0500 From: Organization: Posted via Supernews, http://www.supernews.com Message-ID: References: <514a749c.0202280850.348a6474@posting.google.com> I must admit, I did not know that the MAC address can be changed. How do you set the MAC address? - -Jim "Hwa-Jin Bae" wrote in message news:u7tb5ulhm8jg20@corp.supernews.com... > I have seen this kind of situation when the ethernet MAC address is set to > something bad (like all 1's). It might help to print out the MAC address of > the "problem" board. If it looks suspicious, set it to something that > makes sense (3 vendor octets followed by 3 unique octets of choice). > > If that is not the problem, you should get something like ethereal > (www.ethereal.com) and sniff the ethernet to see what is going on. > > My guess is that the vxworks side running on "problem" board never gets any > TCP ack's from windows machine, because your vxworks side "problem" board > has bad ethernet mac address. > > > > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Help! Cannot access vxworks from another network Date: Fri, 01 Mar 2002 11:16:10 +1030 From: Tim Shaw Organization: Defence Science and Technology Organisation Message-ID: <3C7ECF52.8429283C@dsto.defence.gov.au> References: <0Baf8.69$Sk3.3211@llslave.llan.ll.mit.edu> <3C7D9038.A51390B8@dsto.defence.gov.au> <4Qpf8.71$Sk3.3151@llslave.llan.ll.mit.edu> Great suggestion Dave, here's my guess: vx Target PC host 155.34.103.42 155.34.103.41 |__________________|_____________________ 155.34.103.0 net | | 155.34.103.1 Gateway (PC?) 155.34.99.XX | __________________________________|_____ 155.34.99.0 net | 155.34.99.99 dev PC So the vxWorks targets needs to have the following: routeNetAdd "155.34.99.0", "155.34.103.1" which tells it to use the gateway to get to the 155.34.99.0 network. Then on the development PC, you need to add the route: route ADD 155.34.103.0 MASK 255.255.255.0 METRIC 2 IF 1 which you obviously have done if you can ping the 155.34.103.41 host. Dave Korn wrote: > "Joe Georger" wrote in message > news:4Qpf8.71$Sk3.3151@llslave.llan.ll.mit.edu... > > > Have you set up an entry in your development PC's route table. Although > > the > > > gateway is specified at the boot prompt, the PC has to know how to get > > back to > > > the vxWorks machine. If you haven't try adding the following at a DOS > > prompt on > > > the development PC: > > > > > > route ADD 155.34.103.0 MASK 255.255.255.0 METRIC 2 IF 1 > > > > > > where is the IP address of your hostname on your 155.34.99.0 > > network. > > > > > The gateway on my development pc is 155.34.99.1. I have no trouble > pinging > > the host pc (155.34.103.41) on the 103 subnet. Therefore I would think > that > > I should be able to ping the VxWorks board as well. Unless I am missing > > some nuance of networking.... > > You're going to have to draw an ascii-art diagram of the subnets, showing > the two pcs, the gateway, and the vxworks target, I think... > > DaveK > -- > moderator of > alt.talk.rec.soc.biz.news.comp.humanities.meow.misc.moderated.meow > Burn your ID card! http://www.optional-identity.org.uk/ > Help support the campaign, copy this into your .sig! > Proud Member of the Exclusive "I have been plonked by Davee because he > thinks I'm interesting" List Member # > Master of Many Meowing Minions > Holder of the exhalted PF Chang's Crab Wonton Award for kook spankage above > and beyond the call of hilarity. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Ethernet problem on an mvme2700 - a new test Date: Thu, 28 Feb 2002 17:05:23 -0800 From: "Hwa-Jin Bae" Organization: Posted via Supernews, http://www.supernews.com Message-ID: References: <514a749c.0202280850.348a6474@posting.google.com> Typically changing MAC address is done in HW dependent way. If you have ethernet driver source code you can look into that. There is no standard API for that in vxWorks, unless someone added such an API since vxWorks 5.0 (last release I participated in making). The MAC address really should be set it HW. Most vendors will use EEPROM connected to MAC chip to store MAC address unique to the device. However, some VME and compact PCi vendors like to bypass that altogether and have the MAC address programmed from FW. For those boards, vxWorks ethernet driver will typically store the MAC address in NvRAM or flashROM and then program the address at the initialization time. That is not really a good thing to do (ethernet addresses should be unique and should be hardcoded by the manufacturer), but we live in imperfect world. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Finding undefined symbols in .out file Date: Fri, 01 Mar 2002 01:17:20 GMT From: "H. E. Taylor" Organization: MTS Internet Message-ID: <3C7EF18C.5621@despam.autobahn.mb.ca> References: <3C7EC2D5.1B9A2EE9@bitworkssystemsDELETETHIS.com> In article <3C7EC2D5.1B9A2EE9@bitworkssystemsDELETETHIS.com>, Jon Newbill wrote: > >[...] > So the question is. How do you find what module referenced an undefined > symbol when you download a .out file that was built from 50 or more > modules? > This is a problem we have all faced. There are a couple of tactics I used until I got to know the code better. One simple thing you can do is build images with your code added. This way you find out at compile time rather than load time. It just shortens your cycle. Another thing you can do is get real friendly with grep. Another thing you can do is get a source code browser. It seems to me there is a VxWorks version of this now. If you are adventurous and happen to have MSVC (or whatever they are calling it now), you can set up a static lib project of the files you are compiling (to the .out) and use the MSVC source code browser (the lib will be throwaway). - -het - -- "progress in software has not followed Moore's law." -John Holland Zimbabwe Links & News: http://www.autobahn.mb.ca/~het/zimbabwe.html H.E. Taylor http://www.autobahn.mb.ca/~het/ --------------------------- Newsgroups: comp.os.vxworks Subject: post-mortem debugging, upper memory, and USER_RESERVED_MEM Date: 1 Mar 2002 02:13:22 GMT From: Denis Perelyubskiy Message-ID: Hello, There is an upper memory, which is not managed by VxWorks, nor VxWorks knows about its existence. The amount of memory there, from what I understand, is defined by USER_RESERVED_MEM There is also some chunk of memory, in sysPhysMemDesc table, which defines some sort of post-mortem debugging memory area (or so it does in our system) Are the two supposed to co-incide? From their definitions it does not seem that they are: one VxWorks knows nothing about, and the second one it does know about. The main question is how the two are different? I mean, does VxWorks simply not re-initialize memory reserved for post-mortem debugging? If that's the case, why would I want to USER_RESERVED_MEM any memory? thanks, denis - -- if you want to reply by mail, please tweak my address in a reasonable way. sorry for the inconvenience. --------------------------- Newsgroups: comp.os.vxworks Subject: Difference between MPC860SAR and MPC860MH Date: Fri, 1 Mar 2002 10:26:20 +0800 From: "David Wei" Organization: Bentium Ltd. (CN99) Message-ID: In the MPC860MH, if I configure the SCC4 to work in the QMC mode, I couldn't use SMC2 because of the parameter ram confliction. My question: whether or not the MPC860SAR could solute this confliction. --------------------------- Newsgroups: comp.arch.storage,comp.periphs.scsi,comp.os.vxworks Subject: Re: source code for SCSI Fibre Channel implementation Date: Fri, 01 Mar 2002 02:42:41 GMT From: David A. Lethe Message-ID: References: <5c04bc56.0202272342.124108d6@posting.google.com> On 27 Feb 2002 23:42:18 -0800, jjf@bcs.org.uk (J. J. Farrell) wrote: >I'm looking for the source code of a C (or C++) implementation >of the 'SCSI over Fibre Channel' stack - SCSI commands at the >top and Fibre Channel Frames at the bottom. Does anyone know of >an available implementation, free or commercial? > >To help with development based on this stack, I'm also looking >for a PCI card which allows host software access to all incoming >Fibre Channel frames, and allows the software to transmit FC >frames. Does anyone know of one? The cards I've looked at have >various parts of the stack implemented on board, and don't >provide any mechanisms to receive or send raw frames. > >I'm new to FC, so please excuse any naivety in these requests! > >My target OS in both cases is VxWorks, though any source is >better than none. > >Many Thanks, > jjf Just go to http://www.redhat.com, and follow the links to download their source code for LINUX. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Finding undefined symbols in .out file Date: Fri, 01 Mar 2002 02:49:23 GMT From: Jon Newbill Organization: EarthLink Inc. -- http://www.EarthLink.net Message-ID: <3C7EEC94.2A97020B@bitworkssystemsDELETETHIS.com> References: <3C7EC2D5.1B9A2EE9@bitworkssystemsDELETETHIS.com> <3C7EF18C.5621@despam.autobahn.mb.ca> "H. E. Taylor" wrote: > In article <3C7EC2D5.1B9A2EE9@bitworkssystemsDELETETHIS.com>, > Jon Newbill wrote: > > > >[...] > > So the question is. How do you find what module referenced an undefined > > symbol when you download a .out file that was built from 50 or more > > modules? > > > This is a problem we have all faced. There are a couple of > tactics I used until I got to know the code better. > > One simple thing you can do is build images with your code > added. This way you find out at compile time rather than > load time. It just shortens your cycle. > > Another thing you can do is get real friendly with grep. > > Another thing you can do is get a source code browser. It seems > to me there is a VxWorks version of this now. > > If you are adventurous and happen to have MSVC (or whatever they > are calling it now), you can set up a static lib project of the > files you are compiling (to the .out) and use the MSVC source code > browser (the lib will be throwaway). > > -het > > -- > "progress in software has not followed Moore's law." -John Holland > > Zimbabwe Links & News: http://www.autobahn.mb.ca/~het/zimbabwe.html > H.E. Taylor http://www.autobahn.mb.ca/~het/ These solutions assume you have source to all the code and that it's in a convienient place to do a massive grep on. It also assumes no use of #defines to create symbols. From your reply it appears that there really is no way to find the offending object file? When you say build an image you mean a final executable with OS included which would actually use the linker? In that case does the linker/loader report the offending object module for an undefined? Jon Newbill JonUN@bitworkssystemsREMOVTHIS.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: GP fault from "hello World" Date: Fri, 01 Mar 2002 03:11:50 GMT From: Jon Newbill Organization: EarthLink Inc. -- http://www.EarthLink.net Message-ID: <3C7EF1D9.41A59D5C@bitworkssystemsDELETETHIS.com> References: <3C7AD68C.87BA3075@bitworkssystemsDELETETHIS.com> The problem turned out to be a buggy BSP from VMIC V1.2/0. They have sent me V1.2/2 and it's fixed. Jon Newbill Jon Newbill wrote: > I'm getting a GP fault trying to run a simple hello world on a VMIC > VMIVME7750 Pentium III (GNU tools). > > #include > int main() > { > int a; > double pi = 3.141592; > printf("hello world\n"); > } > > This loads without error but the instant I try to run and break at the > entry point, I get > > General Protection Fault > Program Counter: 0x02174d92 > Status Register: 0x00010212 > Error Code: 0x0000001a > Task: 0x1fcbe5c8 "tDbgTask" > > I can single step the program but continue to get another GP > fault on the printf() call even though it does print "hello world" to > the > console. It appears that all CALL's cause a GP fault. This occurs in > all programs I try to debug. Does anyone know where to look up the > Error Code returned by General Protection fault. errno.h shows 0x1A > (26) as file name too long which doesn't make any sense. > > Any help would be appreciated. > > Jon Newbill > jonUN@bitworkssystemsREMOVSPAM.com --------------------------- Newsgroups: comp.os.vxworks Subject: How to make assert break into debugger with hardcoded breakpoint Date: Fri, 01 Mar 2002 03:58:41 GMT From: Jon Newbill Organization: EarthLink Inc. -- http://www.EarthLink.net Message-ID: <3C7EFCCC.A5A03741@bitworkssystemsDELETETHIS.com> Ok here's another VxWorks Newbi question or is that a Newbill question. On every other embedded system debugger I've used I would always create an assert() macro that would execute a hard coded breakpoint instruction to cause a trap into the debugger when an assert occurs. This is quite useful since your in sitting right there in context and can use the full power of the debugger to figure out how you got the assert or in some cases correct the problem and continue on debugging. On Intel platforms INT3 is the usual breakpoint instruction and on 68K systems it was a TRAP 0. Now I'm using Intel on VxWorks 5.4.2 with GNU tools and executing an INT 3 seems to send the target into never never land. Does anyone know a method to programatically break into the debugger? Jon Newbill JonUN@bitworkssystemsREMOVTHIS.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: problem creating new project Date: Fri, 01 Mar 2002 04:17:20 GMT From: "drdiags" Organization: AT&T Broadband Message-ID: References: <3C7E5F02.2545B753@notifier-is.net> David and Michiel, This is an SPR, don't know when it will be fixed since Wind Surf states it was created Apri 22, 1999: TITLE: Including PCMCIA by hand in config.h or #define n in the BSP header file makes it impossible to create a bootable project. SPR #: 26952 STATUS: Assigned IDE: Tornado 2.0 "david lindauer" wrote in message news:3C7E5F02.2545B753@notifier-is.net... > I'm having the same problem. I don't have PCMCIA installed though... I would > really like to know what causes this in general. > > David > > meekes wrote: > > > Hi, > > > > I have a problem creating a new project based on an existing BSP. > > > > Using Tornado-2, I created a project (bootable vxWorks image) based on a > > pcPentium BSP. > > The project initially had only an IDE_LOCAL disk and no PCMCIA support. > > Later on I added PCMCIA support by defining INCLUDE_PCMCIA in config.h. > > The PCMCIA functionality (ATA compact flash disk) is working OK in my > > project. > > > > Now, when I try to create a new project (in the same workspace) based on the > > same BSP, > > the creation fails. > > The messages I get are: > > - parsing BSP makefile > > - parsing user defined rules from BSP makefile > > - parsing BSP's config.h > > - creating project file > > - calculating included components > > -> project creation failed: > > "list must have an even number of elements" > > > > If I undefine INCLUDE_PCMCIA in config.h the creation of a new project is > > OK. > > I have examined the config.h, pc.h and sysLib.c files, but could not find a > > clue. > > > > One thing I noticed in the first project was that the PC card show routines > > were not > > included by defining INCLUDE_SHOW_ROUTINES in config.h. > > I added a call to pcmciaShowInit in usrAppInit.c to get the show routines > > available. > > > > What can be the problem here? > > > > TIA, > > Michiel > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Having trouble with dynamicly loading modules Date: 28 Feb 2002 20:48:16 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0202282048.2b2f8a3e@posting.google.com> References: <0cff8.5682$G7.1085@nwrddc01.gnilink.net> <3C7DFE80.7040702@spamm.me.l8s.co.uk> <0stf8.8225$G7.2065@nwrddc01.gnilink.net> Hello, > David, how would you perform the last 2 steps in VxWorks? You can't in VxWorks 5.x, but AE includes a new loader with an optional feature called out of order loading which handles exactly the problem you've been discussing. You can also unload any of the modules and then load in a new version. HTH, John... > Thanks > Matt S. > "David Laight" wrote in message > news:3C7DFE80.7040702@spamm.me.l8s.co.uk... > > > > > You do indeed have this right. Loading kernel modules under Linux or > > > DLL's under Windows also follow this rule afaik. The basic problem is > > > that when module A loads, the kernel must keep track of all > > > `unresolved places'. > > > > > > Actually it will > > load A, > > add A's symbols > > load B > > add B's symbols > > fixup B's references > > fixup A's references > > > > David > > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Binding to a socket Date: 28 Feb 2002 21:29:13 -0800 From: bryanramesh@yahoo.com (Bryan) Organization: http://groups.google.com/ Message-ID: References: "Hwa-Jin Bae" wrote in message news:... > SO_BINDTODEVICE is Linux specific. BSD does not support it and neither does > vxWorks. Hi Hwa, Yeah SO_BINDTODEVICE is specific to Linux. But how to acheive this functionality in VxWorks. Does VxWorks provides something like this to ensure that a data is going out of a specific interface. Is there any way to do this in VxWorks. Thanks, Bryan --------------------------- Newsgroups: comp.os.vxworks Subject: muxLoad Failed while picking up the VxWorks image from host Date: 28 Feb 2002 22:34:48 -0800 From: ajay_garg@delhi.tcs.co.in (Ajay Garg) Organization: http://groups.google.com/ Message-ID: Hi, I am using 3COM card to communicate across network. I am getting a message "muxLoad failed" after getting the prompt on target. But if I am using a fei card, I am getting everything fine. I am making the necessary changes in config file for my BSP which is pentium. Your help is needed to solve this problem. Regards, Ajay Garg. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Finding undefined symbols in .out file Date: Fri, 01 Mar 2002 06:43:00 GMT From: "H. E. Taylor" Organization: MTS Internet Message-ID: <3C7F3DDC.3032@despam.autobahn.mb.ca> References: <3C7EC2D5.1B9A2EE9@bitworkssystemsDELETETHIS.com> <3C7EF18C.5621@despam.autobahn.mb.ca> <3C7EEC94.2A97020B@bitworkssystemsDELETETHIS.com> In article <3C7EEC94.2A97020B@bitworkssystemsDELETETHIS.com>, Jon Newbill wrote: > "H. E. Taylor" wrote: >> In article <3C7EC2D5.1B9A2EE9@bitworkssystemsDELETETHIS.com>, >> Jon Newbill wrote: >>> >>>[...] >>> So the question is. How do you find what module referenced an undefined >>> symbol when you download a .out file that was built from 50 or more >>> modules? >>> >> This is a problem we have all faced. There are a couple of >> tactics I used until I got to know the code better. >> >> One simple thing you can do is build images with your code >> added. This way you find out at compile time rather than >> load time. It just shortens your cycle. >> >> Another thing you can do is get real friendly with grep. >> >> Another thing you can do is get a source code browser. It seems >> to me there is a VxWorks version of this now. >> >> If you are adventurous and happen to have MSVC (or whatever they >> are calling it now), you can set up a static lib project of the >> files you are compiling (to the .out) and use the MSVC source code >> browser (the lib will be throwaway). > > These solutions assume you have source to all the code and that it's in a > convienient place to do a massive grep on. It also assumes no use of #defines > to create symbols. > Implicitly yes. If the symbols are in VxWorks supplied libraries (and all you have are bin files) you are back to 'ar' and 'objdump'. Note you can use objdump on both your .out and the libraries. > From your reply it appears that there really is no way to > find the offending object file? > If you have only the possibly mangled name to work with and you are unfamiliar with the VxWorks libraries, I would recommend you attack the problem by simpiflication. Divide your .out in half until you get something which will load, then build it up. > When you say build an image you mean a final > executable with OS included which would actually use the linker? > Well I would tend to think of it as an OS image with an embedded app, but yes. >In that case does the linker/loader report the offending object module >for an undefined? > Ah note of caution here. I am familiar with 5.3.1, but have never used 5.4 or AE which use a different GNU toolset version. Plus I am working from memory cause I don't have a VxWorks system to hand, but it seems to me the linker will tell you module.o referenced unknown symbol such&such. You will still have to figure out where symbol such&such lives and if it is in a VxWorks library you are back to dumping libs. - -het - -- "Usenet is a strange place." - Dennis M Ritchie, 29 July 1999. Computer Related Links: http://www.autobahn.mb.ca/~het/clinks.html H.E. Taylor http://www.autobahn.mb.ca/~het/ --------------------------- Newsgroups: comp.os.vxworks Subject: Re: How to make assert break into debugger with hardcoded breakpoint Date: Fri, 1 Mar 2002 09:54:20 +0200 From: "Leonid Rosenboim" Organization: Verio Message-ID: References: <3C7EFCCC.A5A03741@bitworkssystemsDELETETHIS.com> Two solutions: the easiest is simply set a breakpoint on the function abort(), which is called by the standard assert() macro if asserion fails; or define your very own assert() macro and do with it as you please. By the way, you gould put the breakpoint set command into the debugger intialization script file. "Jon Newbill" wrote in message news:3C7EFCCC.A5A03741@bitworkssystemsDELETETHIS.com... > Ok here's another VxWorks Newbi question or is that a Newbill > question. On every other embedded system debugger I've used I would > always create an assert() macro that would execute a hard coded > breakpoint instruction to cause a trap into the debugger when an assert > occurs. This is quite useful since your in sitting right there in > context and can use the full power of the debugger to figure out how you > got the assert or in some cases correct the problem and continue on > debugging. On Intel platforms INT3 is the usual breakpoint > instruction and on 68K systems it was a TRAP 0. > > Now I'm using Intel on VxWorks 5.4.2 with GNU tools and executing an INT > 3 seems to send the target into never never land. Does anyone know a > method to programatically break into the debugger? > > Jon Newbill > JonUN@bitworkssystemsREMOVTHIS.com > > > --------------------------- Newsgroups: comp.arch.storage,comp.periphs.scsi,comp.os.vxworks Subject: Re: source code for SCSI Fibre Channel implementation Date: 1 Mar 2002 00:01:56 -0800 From: kallolm_tech@yahoo.com (Kallol Mallick) Organization: http://groups.google.com/ Message-ID: References: <5c04bc56.0202272342.124108d6@posting.google.com> David A. Lethe wrote in message news:... > On 27 Feb 2002 23:42:18 -0800, jjf@bcs.org.uk (J. J. Farrell) wrote: > > >To help with development based on this stack, I'm also looking > >for a PCI card which allows host software access to all incoming > >Fibre Channel frames, and allows the software to transmit FC > >frames. Does anyone know of one? The cards I've looked at have > >various parts of the stack implemented on board, and don't > >provide any mechanisms to receive or send raw frames. > > You can try to use one of the standard fibre channel controllers cards(QLogic /Tachyon/LSILogic). Most of them provide a mechanism to download firmware. Instead of downloading the firmware, they supply, write your own. The register interfaces gives you a fairly low level access. But why do you want re-invent the wheel, when standard implementation is already availavle? --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Binding to a socket Date: Fri, 1 Mar 2002 00:05:33 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: There is no way to do something like that at socket level in vxworks. You will need to manipulate routing table content to force routing to the interface you wish to use. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: DOS file system Date: Fri, 1 Mar 2002 10:20:37 +0100 From: "Matthias Guelck" Organization: Heidelberger Druckmaschinen AG Message-ID: References: Hi Bill, hi Charles, we are very concerned about the FLASH wearing by read functions modifying the last accessed field. How did you get the source code (bought from WRS? - how much $?). How much time did you need for the rework? Regards, Matthias Matthias Guelck Research & Development Heidelberg Druckmaschinen AG Dr.-Hell-Str. D-24107 Kiel Phone +49-431-386-1608 Fax +49-431-386-3882 E-Mail Matthias.Guelck@DE.Heidelberg.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: post-mortem debugging, upper memory, and USER_RESERVED_MEM Date: Fri, 1 Mar 2002 10:59:46 +0100 From: "Michael Lawnick" Organization: Buergernetz Dillingen Message-ID: References: Reply-To: "Michael Lawnick" Sender: mlawnick@pd9e65e8e.dip.t-dialin.net see below... "Denis Perelyubskiy" schrieb im Newsbeitrag news:slrna7tou1.39r.denis_newsREMOVE-TO-REPLY@finch.lecs.cs.ucla.edu... > Hello, > > There is an upper memory, which is not managed by VxWorks, > nor VxWorks knows about its existence. The amount of memory > there, from what I understand, is defined by > USER_RESERVED_MEM > > There is also some chunk of memory, in sysPhysMemDesc table, > which defines some sort of post-mortem debugging memory area > (or so it does in our system) > > Are the two supposed to co-incide? From their definitions it > does not seem that they are: one VxWorks knows nothing > about, and the second one it does know about. The main > question is how the two are different? I mean, does VxWorks > simply not re-initialize memory reserved for post-mortem > debugging? If that's the case, why would I want to > USER_RESERVED_MEM any memory? just to put your post-mortem into it ! :-) - -- Mit freundlichen Grüßen, Michael Lawnick ============================================== SOFTEC GmbH Tel +49-731-96600-0 Promenade 17 Fax +49-731-96600-23 D-89073 Ulm Michael Lawnick Germany lawnick@softec.de ============================================== --------------------------- Newsgroups: comp.arch.storage,comp.periphs.scsi,comp.os.vxworks Subject: Re: source code for SCSI Fibre Channel implementation Date: Fri, 1 Mar 2002 12:32:41 +0100 From: "jimmy" christiansen@hotmail.com> Organization: TDC Internet Message-ID: <3c7f6642$0$46212$edfadb0f@dspool01.news.tele.dk> References: <5c04bc56.0202272342.124108d6@posting.google.com> > But why do you want re-invent the wheel, when standard implementation > is already availavle? Maybe because ( ?? ): >My target OS in both cases is VxWorks, though any source is >better than none. --------------------------- End of New-News digest ********************** From vxwexplo-errs@csg.lbl.gov Fri Mar 1 07:25:51 2002 From: "Chuck Meade" Date: Fri Mar 1 07:25:53 PST 2002 Subject: Re: Ethernet problem on an mvme2700 VxWorks Greetings! James Perkins writes: > In my system the 2700 takes commands from control software on a PC via TCP. > The 2700 then issues commands to other boards in the card cage, or it sends > commands to other boards via TCP. In the system the only thing I change is > the 2700. I put the "good" one in, power up, and it boots, gets the system > image via ftp, and works fine. I can run my control software and it > connects to the 2700 and all is well. I ran inetstatShow in the Tornado > shell and I could see the connection to the control software on the PC. > Now, I switch the 2700 with an identical 2700 that is configured > identically. It will not get the system image via ftp. It just hangs and > then reports an error in the terminal window. To get this board to boot I > have to use tftp. After that the "bad" board is running the same system > image that was running on the "good" board but it will not accept a > connection from my control PC. I run inetstatShow in the shell and all I > see is task waiting for TCP connection. I just never accepts the > connection. The only thing I have changed here is the 2700. > > FTP and my control program both use TCP. TFTP uses UDP. So it looks like I > have one board that accepts TCP and UDP connections and another board that > only accepts UDP connections. So, I don't understand how this is a hardware > problem. On the other hand how can it be a software problem? > This sounds like an ARP table issue. When you communicate on a network using IP, the machines that you send and receive from store an association between your MAC address and your IP address in their ARP table. Typically this association will timeout after 20 minutes. If your second target is configured identically to the first (meaning that they are using the same IP address), then you will have a period of time after using the first target during which machines you have previously communicated with will "assume" your MAC address has not changed. If you are indeed using a different MAC address, you will see this problem until the peers' ARP table entries are deleted manually or until they timeout. You can delete the ARP entry on the peer machine using "arp -d " or something similar depending on the particular OS. By the way, if my suggestion is correct, your "ftp vs. tftp" issue could just be that a timeout occurred between your 2 attempts. If you are trying to truly create 2 targets identical in *every* way, then you can (possibly) make their MAC addresses equal, if the firmware supports setting the MAC address. But each network device out there should have a unique MAC. Chuck Meade ======================================================= T h e P T R G r o u p, I n c. ======================================================= Embedded, Real-Time Solutions and Training Chuck Meade mailto:chuck@ThePTRGroup.com Principal Engineer http://www.ThePTRGroup.com V: (703)815-3231 F: (703)815-8512 ======================================================= From vxwexplo-errs@csg.lbl.gov Sat Mar 2 04:03:25 2002 From: Vxworks Exploder Date: Sat Mar 2 04:03:28 PST 2002 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Sat Mar 2 04:03:19 PST 2002 Subject: Re: error lookup Subject: Re: Finding undefined symbols in .out file Subject: PING johan! [was Re: Newbie question, please help!] Subject: Re: TCP/IP Support in VxWorks Subject: Re: PPP problem Subject: Re: PMC Span expansion board setup... it works! Subject: Re: Help! Cannot access vxworks from another network Subject: Re: Ethernet problem on an mvme2700 - a new test Subject: final image segment sizes Subject: Problem in accessing PCI I/O Registers in IBM ppc 405GP Subject: Re: Finding undefined symbols in .out file Subject: Re: Help! Cannot access vxworks from another network Subject: test Subject: vxSim networking problem Subject: Re: Problem in accessing PCI I/O Registers in IBM ppc 405GP Subject: Re: DHCP and WINS Subject: Limiting the size of incoming/outgoing TCP packets Subject: Re: post-mortem debugging, upper memory, and USER_RESERVED_MEM Subject: Re: DHCP and WINS Subject: alignment Subject: Re: clock_gettime fails with write() but not fwrite Subject: Re: Problem in accessing PCI I/O Registers in IBM ppc 405GP Subject: Re: problem creating new project Subject: Re: Problem in accessing PCI I/O Registers in IBM ppc 405GP Subject: Re: Finding undefined symbols in .out file Subject: Re: alignment Subject: Re: alignment Subject: Re: post-mortem debugging, upper memory, and USER_RESERVED_MEM Subject: Re: DOS file system Subject: PPP/DHCP bugs [was: clock_gettime fails with write() but not fwrite] Subject: Re: Finding undefined symbols in .out file Subject: Re: problem creating new project Subject: Re: How to make assert break into debugger with hardcoded breakpoint Subject: Re: muxLoad Failed while picking up the VxWorks image from host Subject: Proc Numbers, booting and VME transfers Subject: Re: Limiting the size of incoming/outgoing TCP packets Subject: Re: How to make assert break into debugger with hardcoded breakpoint Subject: Re: PPP problem Subject: Re: muxLoad Failed while picking up the VxWorks image from host Subject: Re: intLock() and "system routines" vs. "kernel services" Subject: LP-VxWin Subject: Re: How to make assert break into debugger with hardcoded breakpoint Subject: Re: June 2001 v/s T2CP4 Subject: Re: PPP/DHCP bugs [was: clock_gettime fails with write() but not fwrite] Subject: Re: problem creating new project Subject: Re: source code for SCSI Fibre Channel implementation Subject: Re: source code for SCSI Fibre Channel implementation Subject: need help: about windNet PPP ? Subject: sendto() failing in Class A network Subject: Re: source code for SCSI Fibre Channel implementation Subject: Re: [question]Memory access in mpc750.. Subject: Re: muxLoad Failed while picking up the VxWorks image from host Subject: how to invoke a task number of times based on radom number ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Re: error lookup Date: Fri, 1 Mar 2002 11:49:43 -0000 From: "Dave Korn" Organization: Lumber Cartel (tinlc) Members #2234-2237 (owing to browser refresh) Message-ID: References: <7z%c8.10429$3k2.2194219@news20> <7vNd8.14668$3k2.2464940@news20> <2pve8.2771$5o.1748555@newsr2.u-net.net> <3C7A88FA.7040908@spamm.me.l8s.co.uk> "David Laight" wrote in message news:3C7A88FA.7040908@spamm.me.l8s.co.uk... > > > > And of course it is always good for people to study each other's code and > > learn how things are done. > > > Unless the code has the GPL license - when you mustn't read it if > you write software for a living...... > > David I think you have that the wrong way around: actually, you mustn't read proprietary sources if you wish to write GPL code, since you might give some company a claim over what ought to be public code. But there's nothing to stop you reading gpl'd source in order to understand how the principles of its design work. If you were to cut and paste chunks into your own code, that would be a copyright breach. If you distribute binaries that have GPL'd code in them, you must open your own source. But the entire point of the GPL is to share the knowledge of programming techniques and thereby improve the standards of practice and skills throughout the entire computing industry. Just say no to GPL FUD! DaveK - -- moderator of alt.talk.rec.soc.biz.news.comp.humanities.meow.misc.moderated.meow Burn your ID card! http://www.optional-identity.org.uk/ Help support the campaign, copy this into your .sig! Proud Member of the Exclusive "I have been plonked by Davee because he thinks I'm interesting" List Member # Master of Many Meowing Minions Holder of the exhalted PF Chang's Crab Wonton Award for kook spankage above and beyond the call of hilarity. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Finding undefined symbols in .out file Date: Fri, 1 Mar 2002 11:58:39 -0000 From: "Dave Korn" Organization: Lumber Cartel (tinlc) Members #2234-2237 (owing to browser refresh) Message-ID: References: <3C7EC2D5.1B9A2EE9@bitworkssystemsDELETETHIS.com> "Jon Newbill" wrote in message news:3C7EC2D5.1B9A2EE9@bitworkssystemsDELETETHIS.com... > Being a fairly new to VxWorks I ask some simple questions that field and > tech support haven't been able to give simple answers to. > object). The answer I got was was vague, along the lines of > "objDump386 should do anything you need". > So the question is. How do you find what module referenced an undefined > symbol when you download a .out file that was built from 50 or more > modules? They should have told you to use nm386 rather than objdump. That prints out a list of symbols for a given obj file. When I have trouble like this, I use a script that calls nm on all the individual .obj files. In NT it's something roughly like for %%i in (*.o) do nmppc %%i >%%i.sym [note that the doubled-up %s are needed in a .bat file; from the command line you only need single then grep for "U Master of Many Meowing Minions Holder of the exhalted PF Chang's Crab Wonton Award for kook spankage above and beyond the call of hilarity. --------------------------- Newsgroups: comp.os.vxworks Subject: PING johan! [was Re: Newbie question, please help!] Date: Fri, 1 Mar 2002 12:15:13 -0000 From: "Dave Korn" Organization: Lumber Cartel (tinlc) Members #2234-2237 (owing to browser refresh) Message-ID: References: <28f07413.0202221001.180f9405@posting.google.com> <28f07413.0202221556.4736f3ba@posting.google.com> <28f07413.0202251349.73780fe7@posting.google.com> "Cuong Pham" wrote in message news:28f07413.0202251349.73780fe7@posting.google.com... > "doug dotson" wrote in message news:... > > I had a problem a while back after installing Tornado that sounds > > similar to this. Turned out that I had djgpp (GNU for PCs) installed > > and the PATH was causing it to pick up the djgpp executables > > instead of the Tornado ones. > > > > doug > > Thanks. I actually had djgpp installed, I deleted their path, now I'm > compiling fine under Tornado. Thanks again for the help! Johan? You listening? The FAQ needs to say at least something about interference between existing cygwin (or as in this case djgpp) installations and Tornado. It can get quite complicated, but at least to mention there must never be two cygwin.dll's in the path at the same time, and that you can run cygwin's command "cygcheck -s -v -r -h" to find out if you do have dll clash. DaveK - -- moderator of alt.talk.rec.soc.biz.news.comp.humanities.meow.misc.moderated.meow Burn your ID card! http://www.optional-identity.org.uk/ Help support the campaign, copy this into your .sig! Proud Member of the Exclusive "I have been plonked by Davee because he thinks I'm interesting" List Member # Master of Many Meowing Minions Holder of the exhalted PF Chang's Crab Wonton Award for kook spankage above and beyond the call of hilarity. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: TCP/IP Support in VxWorks Date: Fri, 1 Mar 2002 12:02:34 -0000 From: "Dave Korn" Organization: Lumber Cartel (tinlc) Members #2234-2237 (owing to browser refresh) Message-ID: References: <3c741e96_4@news1.prserv.net> "Hwa Jin Bae" wrote in message news:ce1027c4.0202261500.1f6b8433@posting.google.com... > "Leonid Rosenboim" wrote in message news:... > > Hey Dude, > > I think you got something wrong here, it couldn't be VxWorks version 3. > > > > I doubt it is vxWorks version 3. > > > The earlies version of VxWorks I have actually used was 5.0.2 in 1990, just > > before to Gulf War. > > The earliest widely used vxWorks with BSD networking is 4.2. I doubt > 4.X is still being used any more, but if it is, it really should be > upgraded. 4.X had severe problems in network code, the least of which > is the subnet mask issue. For example, in 4.X all mbufs were 128 > bytes long and bcopy'ed all the time. I recoded all mbuf stuff in > 5.0, added cluster mbufs, and loanding, etc. The 5.0 was a major > release which had BSD tahoe based TCP/IP stack and WIND kernel. If at > all possible, older version of vxWorks should be updated to use at > least 5.0 and later. Hwa Jin Bae! You're back! Or you were here all along but very quiet! Do you have a website again? I miss the pso site! DaveK - -- moderator of alt.talk.rec.soc.biz.news.comp.humanities.meow.misc.moderated.meow Burn your ID card! http://www.optional-identity.org.uk/ Help support the campaign, copy this into your .sig! Proud Member of the Exclusive "I have been plonked by Davee because he thinks I'm interesting" List Member # Master of Many Meowing Minions Holder of the exhalted PF Chang's Crab Wonton Award for kook spankage above and beyond the call of hilarity. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: PPP problem Date: Fri, 01 Mar 2002 13:57:01 +0100 From: Emmanuel Herbreteau Organization: SEPRO Robotique (BEP) Message-ID: <3C7F7A9D.2AB0A3B2@sepro-robotique.com> References: <3C7E0A02.3F646C90@sepro-robotique.com> Hi, Thanks for this answer. Unfortunately, it didn't solve the problem Leonid Rosenboim wrote: > It could be the NetTask, so I do recommend you double its stack size So, I tried two things : - - add the "Define" in "netBufLib.h" to increase the number of mBlk buffer (used by the network stack). - - change some setting in the FTP server (number of client allowed, miscelleanous time setting, etc...) > If not, this could be due to the serial driver not being able to keep up > with the high rate of interrupt, so I would suggest to repeat the same > test with a lower speed, e.g. 9600 baud. I also tried this but it didn't change anything. Description : the FTP server works (on the target) perfectly when transferring medium size files (64KB), but when I tried to transfer a lot of small files, it's like the PPP driver crash after 8-9 files (CRC error on the serial link, no more IP service available, even "ICMP/ping") (I have to disconnect PPP and then reconnect). It's VxWorks 5.4 with the latest patches and FTP server from DOSFS2 add-on. > Leonid 'Au revoir' and 'Bonne journée' ! ;-) - -- Best regards Emmanuel --------------------------- Newsgroups: comp.os.vxworks Subject: Re: PMC Span expansion board setup... it works! Date: Fri, 01 Mar 2002 13:42:38 +0000 From: Enrique Joven Organization: IAC Message-ID: <3C7F854E.47DE71AB@ll.iac.es> References: <3C7CDFCB.CCE7AEE3@ll.iac.es> <3C7D8E8B.B66B6163@dsto.defence.gov.au> Thanks a lot, Tim. My PMC card is working properly attached to the PMC-span board! For future victims... It is necessary to configure the IO base & limit of the span. In my case, for example, I've only written in my code: pciConfigOutLong (0,0x14,0,0x30,0x00050004) So, now, when we "see" the configuration of the span device, it appears.. > pciHeaderShow(0,0x14,0) vendorID=0x1011 .... IO base upper 16 bits 0x0004 IO limit upper 16 bits 0x0005 ... These parameters are not configured automatically by vxWorks. The rest of the application does not vary. The PMC is configured as I said in my previous e-mail and the access to the registers is "CPU_PCI_IO_ADRS + PMC_DEV_SPACE". Identical. That is all. Enrique Tim Shaw escribió: > > We've been using the SPAN on a MV2604 for some time, though mainly with > memory mapped PMCs. The address 0xfe040000 is the CPU address, this > translates to an PCI IO access at address 0x00040000. You have to make sure > the PCI-PCI bridge has a window opened for this region (and not including > the regions used by the IO devices on the motherboard). From memory (I > haven't checked this) the IO space is actually configured using 2 sets of > registers, being the upper and lower pairs of base and limit. > > HTH > Tim > > Enrique Joven wrote: > > > > > Hi, > > > > "I am trying to setup a PMC card in a PMC adapter carrier board > > from Motorola (PMCspan-002) which is attached to a MVME2431..." > > > > These are the first lines of an old message I've found searching > > with Google-groups... and others similar to it. Now, I am suffering > > the same problem... and I can not fix it. > > > > I am working with the MVME2432 (BSP mv2400). > > My PMC card is rather simple, I only have to use the I/O space to > > see the registers (it is a multi-port RS232 from Technobox) and > > very easy to configure in the main board. But adding the PMCspan-002... > > impossible. > > > > As some people said, I defined INCLUDE_PMC_SPAN in config.h, and created > > a new vxWorks image, I've checked the P2P_IO_BASE and the > > SPAN_IO_DEV_SPACE... and a lot of things more. > > I've also checked that the PMC card is recognized by VxWorks in the > > secondary bus, so the PCI-to-PCI bridge is working, I guess. > > > > But I do not know what is the pysical address > > of the PMC card as seen from the processor. In the main card, I use > > as pci_base=PCI_IO_PMC_ADRS with the "pciDevConfig" function. And > > the offset to see the registers is... "PCI_MSTR_IO_LOCAL + > > PMC_DEV_SPACE" > > (ie,. 0xFE010000 + 0x00040000) ... any one knows the equivalences > > using the SPAN card? > > > > Or, at least, anyone is using this SPAN card without problems? > > > > I will be very thanked if any can suggest me any solution... > > Plase do not tell me to put the SPAN card in the wastebasket. > > At this moment, is my only idea. > > > > Regards, > > Enrique > > > > _____________________________________________________________________ > > > > Enrique Joven Phone : 34 922 605332 > > Electronics & Detectors Department Fax : 34 922 605210 > > Instituto de Astrofisica de Canarias (IAC) E-mail: eja@ll.iac.es > > 38200, La Laguna, Tenerife > > Canary Islands (SPAIN) > > _____________________________________________________________________ > > Official Web-Site http://www.iac.es --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Help! Cannot access vxworks from another network Date: Fri, 1 Mar 2002 09:28:04 -0500 From: "Joe Georger" Message-ID: References: <0Baf8.69$Sk3.3211@llslave.llan.ll.mit.edu> <3C7D9038.A51390B8@dsto.defence.gov.au> <4Qpf8.71$Sk3.3151@llslave.llan.ll.mit.edu> <3C7ECF52.8429283C@dsto.defence.gov.au> Tim, Your diagram is accurate. The 155.34.103.1 gateway is a router (I don't have access to it, though). My development pc has a default gateway of 155.34.99.1 (another router). Therefore I didn't need to add a route to access the 155.34.103.0 network. I have been searching thru this newsgroup's archives and came across the following: You have to set the default route, period. The way I did it was to modify usrNetwork.c and add the following line to usrNetInit() if (params.gad[0] != EOS) routeAdd("0.0.0.0", params.gad); The nice thing about doing it this way is your default route will always be to the gateway you enter at the boot prompt, so if you ever change that the default route will automatically follow. And this: This is a very old issue - in both bootConfig.c and usrNetwork.c, routeAdd() is called to install a default gateway, but the destination network is the same subnet on which the Host is located. This code, as shipped, only good for VME bp/sm networks - it works for the CPU which is connected only to the VME network, and helps it conenct to the Host via the VME/Ethernet gateway. It has been suggested several times to change this statement to add "0.0.0.0" as destination, making the default gateway function in all cases (including the VME network special case), but the suggestion was not incorporated into the product. I beleive that I have filed a TSR about this back in 1991, when I worked for Applied Materials Inc. The only and the most elegant fix is to change the routeAdd() statement in bootCOnfig.c, usrNetwork.c to be: routeAdd("0.0.0.0", params.gad); I did change these files as recommended above. AFAIK the bootConfig.c file is used in compiling the bootrom, so I did that and reflashed my board. That didn't work. I figured that the bootrom code is superseded by the VxWorks image.... I also changed userNetwork.c, but when I rebuilt my VxWorks image, I don't think that file was used?? In any event, that didn't work either. Is this a viable idea? It sure seems like it should work.... Thanks, Joe "Tim Shaw" wrote in message news:3C7ECF52.8429283C@dsto.defence.gov.au... > Great suggestion Dave, here's my guess: > > > > > vx Target PC host > 155.34.103.42 155.34.103.41 > |__________________|_____________________ 155.34.103.0 net > | > | > 155.34.103.1 > Gateway (PC?) > 155.34.99.XX > | > __________________________________|_____ 155.34.99.0 net > | > 155.34.99.99 > dev PC > > > So the vxWorks targets needs to have the following: > routeNetAdd "155.34.99.0", "155.34.103.1" > which tells it to use the gateway to get to the 155.34.99.0 network. > > Then on the development PC, you need to add the route: > route ADD 155.34.103.0 MASK 255.255.255.0 METRIC 2 IF 1 > which you obviously have done if you can ping the 155.34.103.41 host. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Ethernet problem on an mvme2700 - a new test Date: Fri, 01 Mar 2002 09:20:19 -0500 From: David Abbott Organization: TJNAF Message-ID: <3C7F8E23.4EF35E1A@jlab.org> References: <514a749c.0202280850.348a6474@posting.google.com> jbperkins@yahoo.com wrote: > > I must admit, I did not know that the MAC address can be changed. How do > you set the MAC address? > -Jim > > "Hwa-Jin Bae" wrote in message > news:u7tb5ulhm8jg20@corp.supernews.com... > > I have seen this kind of situation when the ethernet MAC address is set to > > something bad (like all 1's). It might help to print out the MAC address > of > > the "problem" board. If it looks suspicious, set it to something that > > makes sense (3 vendor octets followed by 3 unique octets of choice). > > > > If that is not the problem, you should get something like ethereal > > (www.ethereal.com) and sniff the ethernet to see what is going on. > > > > My guess is that the vxworks side running on "problem" board never gets > any > > TCP ack's from windows machine, because your vxworks side "problem" board > > has bad ethernet mac address. > > > > > > > > Motorola has a PPC-Bug utility called SROM that allows one to Read/Modify the Serial ROM on the 21x4x Ethernet chips. This is where the MAC address is stored for your board. Example: PPC4-Bug>SROM Device Address =$00007000 (N/Y)? y Reading SROM into Local Buffer..... $00 (&000) 0000? $02 (&002) 0000? $04 (&004) 0000? $06 (&006) 0000? $08 (&008) 0000? $0A (&010) 0000? $0C (&012) 0000? $0E (&014) 0000? $10 (&016) AF00? $12 (&018) 0301? $14 (&020) 0800? <- This is $16 (&022) 3E2A? <- the ethernet address $18 (&024) 4948? <- for the board. (6 bytes) $1A (&026) 0E1E? $1C (&028) 0000?. PPC4-Bug> One thing that might be an issue with your ethernet problem. Check to see what type chip is on your NEW 2700 vs the old one. The old MV2700 boards used the DEC 21140 chip which as far as I know is discontinued. Intel now provides the successor i21143 chip. There are some differences, and depending on the ethernet driver code you built into your boot rom and kernel for the old MV2700. I suppose it is possible that using it in the new board could initialize the interface in some perverse way. If the chips are both DEC 21140 then this would be moot. Regards, David - --------------------------------------------------------- David Abbott Jefferson Lab Data Acquisition Group MS 12H EMAIL: abbottd@jlab.org 12000 Jefferson Ave. Tel: (757) 269-7190 Newport News, VA 23606 FAX: (757) 269-5800 - --------------------------------------------------------- --------------------------- Newsgroups: comp.os.vxworks Subject: final image segment sizes Date: 1 Mar 2002 06:34:00 -0800 From: DeanMark@Logica.com (Mark) Organization: http://groups.google.com/ Message-ID: My application needs to identify the sizes of the different segments in a final image file at run-time. By looking in the image file header this is relatively easy for the .text and .data but the .bss and .common segments are lumped together. I need the size of the .common segment (its a long story), can anyone tell me how this can be found (I know I can use 'objdump' DOS utility but the vxworks application itself needs to be able to take the file and determine this at run-time). thanks in advance, Mark. P.S. I'm using a PentiumPro target. --------------------------- Newsgroups: comp.os.vxworks Subject: Problem in accessing PCI I/O Registers in IBM ppc 405GP Date: 1 Mar 2002 06:51:30 -0800 From: arun4vxworks@indiatimes.com (Arun Prasad) Organization: http://groups.google.com/ Message-ID: Hi All, I'm facing a problem in accessing my card's (PCI based ethernet card) registers. If anyone of you could help me to fix this, it would be of great help. This is what I did and observe. I used pciFindDevice() routine to probe my card and I was able to find my card. And then I used pciDeviceShow() and pciHeaderShow() for my card. And this is what I got as output. ========== Scanning function 0 of each PCI device on bus 0 Using configuration mechanism 0 bus device function vendorID deviceID class 00000000 00000000 00000000 00001014 00000156 00060000 00000000 00000002 00000000 0000143a 00004e53 00028000 Platys: Before entering the while loop ********** SHOWING PCI HEADER BEFORE AdptPciDevConfig() vendor ID = 0x143a device ID = 0x4e53 command register = 0x0007 status register = 0x02a0 revision ID = 0x10 class code = 0x02 sub class code = 0x80 programming interface = 0x00 cache line = 0x08 latency time = 0x00 header type = 0x00 BIST = 0x00 base address 0 = 0x4000000c base address 1 = 0x00000000 base address 2 = 0x00000001 base address 3 = 0x4000100c base address 4 = 0x00000000 base address 5 = 0x00000000 cardBus CIS pointer = 0x00000000 sub system vendor ID = 0x0000 sub system ID = 0x0000 expansion ROM base address = 0x00000000 interrupt line = 0x1d interrupt pin = 0x01 min Grant = 0x00 max Latency = 0x00 ========== For the same card and for the same IBM PPC 405GP on Hard Hat Linux, We are getting a different sets of BAR addreses like these ========== base address 0 = 0x81000000 base address 1 = 0x00000000 base address 2 = 0x0000ff00 base address 3 = 0x8100100c base address 4 = 0x00000000 base address 5 = 0x00000000 ========== And so I thought there's something wrong in Initializing our PCI based NIC card. We've decided to configure our device on our own by writing our own pciDevConfig() function to get the Base Addresses as we get in Linux. Our implementation of pciDevConfig() function goes like this, it's purely based on existing pciDevConfig() and its linux equivlent implementation. ================== #ifdef ADPT_TARGET_VXWORKS #define PCI_CMD_MASK 0xffff0000 static STATUS AdptPciDevConfig ( int pciBusNo, /* PCI bus number */ int pciDevNo, /* PCI device number */ int pciFuncNo, /* PCI function number */ UINT32 devIoBaseAdrs, /* device IO base address */ UINT32 devMemBaseAdrs, /* device memory base address */ UINT32 command /* command to issue */ ) { INT32 ix; UINT32 tmp32; UINT32 size=0, oldMemSize=0, oldIoSize=0; /* * Disable device by clearing its command register field in its * configuration header. Write 0 clears command and preserves status. */ /* * Due to system constraints, this is a partial implementation * of enabling the Base Address Registers (BARs). * It is hoped that all PCI devices only require at most one * I/O space and/or one memory space. * If not, this code will re-allocate the device's memory to * each BAR implemented. Sounds like future trouble! */ for (ix = PCI_CFG_BASE_ADDRESS_0; ix <= PCI_CFG_BASE_ADDRESS_5; ix+=4) { pciConfigOutLong (pciBusNo, pciDevNo, pciFuncNo, PCI_CFG_COMMAND, 0x0); /* Write all f's and read back value */ pciConfigOutLong (pciBusNo, pciDevNo, pciFuncNo, ix, 0xffffffff); pciConfigInLong (pciBusNo, pciDevNo, pciFuncNo, ix, &tmp32); /* BAR implemented? */ if (tmp32 == 0) { /* * No! According to the spec, BARs must be implemented * in sequence starting at BAR 0. So, all done. */ break; } /* I/O space requested? */ /* Yes, set specified I/O space base address */ if (tmp32 & 0x1) { size = ~(tmp32 & 0xFFFFFFFC) +1; PRINTK("\n@@@@@@@@@@@@@@ size [I/O] -- %x\n",size); devIoBaseAdrs += oldIoSize; oldIoSize += size; pciConfigOutLong (pciBusNo, pciDevNo, pciFuncNo, ix, devIoBaseAdrs | 0x1); } /* No, memory space required, set specified base address */ else { size = ~(tmp32 & 0xFFFFFFF0)+1; PRINTK("\n############## size [MEM] -- %x\n",size); devMemBaseAdrs += oldMemSize; oldMemSize += size; pciConfigOutLong (pciBusNo, pciDevNo, pciFuncNo, ix, devMemBaseAdrs & ~0x1); /* * If we are a 64-bit decoder then increment to the * upper 32 bits of the bar and force it to locate * in the lower 4GB of memory. */ if (tmp32 & 0x4) { /* checking the 3rd bit of tmp32 to check for 64-bit bar */ ix += 4; pciConfigOutLong (pciBusNo, pciDevNo, pciFuncNo, ix, 0x00000000); } } pciConfigOutByte (pciBusNo, pciDevNo, pciFuncNo, PCI_CFG_CACHE_LINE_SIZE, PCI_CACHE_LINE_SIZE); /* Configure Latency Timer */ pciConfigOutByte (pciBusNo, pciDevNo, pciFuncNo, PCI_CFG_LATENCY_TIMER, PCI_LATENCY_TIMER); /* * Enable the device's capabilities as specified, do not * reset any status bits in doing so. */ pciConfigModifyLong (pciBusNo, pciDevNo, pciFuncNo, PCI_CFG_COMMAND, (PCI_CMD_MASK | command), command); }// for (ix = PCI_CFG_BASE_ADDRESS_0 return (OK); }// static STATUS AdptPciDevConfig #endif // ADPT_TARGET_VXWORKS ================== After calling this new AdptPciDevConfig(pdev->BusNo , pdev->DeviceNo, pdev->FuncNo,ADPT_BAR2, ADPT_BAR0,PCI_CMD_MASTER_ENABLE | PCI_CMD_MEM_ENABLE|PCI_CMD_IO_ENABLE) (i.e., after finding our device through pciDevConfig() and where ADPT_BAR2 = 0xff00 and ADPT_BAR0 = 0x81000000), we get the output for pciHeaderShow() like this ================== vendor ID = 0x143a device ID = 0x4e53 command register = 0x0000 status register = 0x02a0 revision ID = 0x10 class code = 0x02 sub class code = 0x80 programming interface = 0x00 cache line = 0x20 latency time = 0xff header type = 0x00 BIST = 0x00 base address 0 = 0x8100000c base address 1 = 0x00000000 base address 2 = 0x0000ff01 base address 3 = 0x8100100c base address 4 = 0x00000000 base address 5 = 0x00000000 cardBus CIS pointer = 0x00000000 sub system vendor ID = 0x0000 sub system ID = 0x0000 expansion ROM base address = 0x00000000 interrupt line = 0x1d interrupt pin = 0x01 min Grant = 0x00 max Latency = 0x00 ================== I thought everything worked fine. And started accessing our card's I/O registers. I directly used the BAR2 (0xff00) in sysPciOutLong() and sysPciInLong() to write and read to/from our card register. Before that I did the usual PCI config read, writing oxffffffff on the BAR , masking it and write back the original BAR value. (That's how I got 0xff00 instead of oxff01). ==== for (i=0; addresses[i]; i++) { PCI_READ_CONFIG_DWORD(pdev, addresses[i], &curr); /*CLI();*/ PCI_WRITE_CONFIG_DWORD(pdev, addresses[i], ~0); PCI_READ_CONFIG_DWORD(pdev, addresses[i], &mask); PCI_WRITE_CONFIG_DWORD(pdev, addresses[i], curr); /*sti();*/ PRINTK("region %i: mask 0x%04x, now at 0x%04x\n", i, mask, curr); if(!mask) { PRINTK("region %i not existent\n", i); break; } /* extract the type, and the programmable bits */ if (mask & PCI_BASE_ADDRESS_SPACE) { type = "I/O"; mask &= PCI_BASE_ADDRESS_IO_MASK; platys_cards[cards_found].io_mapped = i; curr &= IO_BASE; } else { type = "mem"; mask &= PCI_BASE_ADDRESS_MEM_MASK; platys_cards[cards_found].mem_mapped = i; } PRINTK("region %i: type %s, size %x\n", i, type, ~mask+1); platys_cards[cards_found].ba[i] = curr; PRINTK("base address ba%i is %x\n", i, platys_cards[cards_found].ba[i]); } /* for loop */ .......... where PCI_READ_CONFIG_DWORD() is equivalent to pciConfigInLong((pdev)->BusNo,(pdev)->DeviceNo,(pdev)->FuncNo,(ULONG)(offset),pData); and PCI_WRITE_CONFIG_DWORD() is equivalent to pciConfigOutLong((pdev)->BusNo,(pdev)->DeviceNo,(pdev)->FuncNo,(ULONG)(offset),pData); ==== I was able to write and then read back the written values on specific registers of my card. But later when I try to read some default values from the registers I am not getting the expected values. It looks like, I'm not writing/reading anything to/from my card, instead I'm reading/writing from/to some memory. Then I added oxe7ffffff to my offset and tried to read some registers, even then I haven't got the default values. I tried with adding 0xe8000000 instead of adding 0xef777777, but still I am failing to access my card's registers. I don't know what I'm missing. I'm still debugging. It would be of great help if someone could throw some torch. Thanks in advance. Regards Arun --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Finding undefined symbols in .out file Date: 1 Mar 2002 14:03:07 GMT From: litwin@izzy.jpl.nasa.gov (Todd Litwin) Organization: jpl.nasa.gov Message-ID: References: <3C7EC2D5.1B9A2EE9@bitworkssystemsDELETETHIS.com> > They should have told you to use nm386 rather than objdump. I don't know about the 386 version of nm, but the other versions that I have used support a "-u" option that will print out a list of only the undefined symbols. If you've downloaded a composite binary that has an undefined symbol, simply run "nm386 -u" on each of the individual .o files until you find the file that lists the offending symbol. - -- Todd Litwin Jet Propulsion Laboratory Phone: (818) 354-5028; FAX: (818) 354-5028 Email: Todd.E.Litwin@jpl.nasa.gov --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Help! Cannot access vxworks from another network Date: Fri, 01 Mar 2002 10:17:42 -0500 From: david lindauer Message-ID: <3C7F9B96.B16F22AB@notifier-is.net> References: <0Baf8.69$Sk3.3211@llslave.llan.ll.mit.edu> <3C7D9038.A51390B8@dsto.defence.gov.au> <4Qpf8.71$Sk3.3151@llslave.llan.ll.mit.edu> <3C7ECF52.8429283C@dsto.defence.gov.au> when we first caught on that we needed a route, we tried adding it in usrAppInit(), figuring that the network would be available by then. (but I don't know the initialization sequence exactly so that whole idea may have been for the birds). That didn't work so we defered the routeAdd() until kernel initialization was complete (e.g. in a user level task). As the code is written we actually wait for serial port communications to commence before doing the routeAdd(), and I don't know if you can make it work without some sort of delay or not. It is something we didn't look into deeply, we just wanted it to work and had to get on with development. David Joe Georger wrote: > Tim, > > Your diagram is accurate. The 155.34.103.1 gateway is a router (I don't > have access to it, though). My development pc has a default gateway of > 155.34.99.1 (another router). Therefore I didn't need to add a route to > access the 155.34.103.0 network. I have been searching thru this > newsgroup's archives and came across the following: > > You have to set the default route, period. The way I did it was to modify > usrNetwork.c and add the following line to usrNetInit() > > if (params.gad[0] != EOS) routeAdd("0.0.0.0", params.gad); > > The nice thing about doing it this way is your default route will always > be to the gateway you enter at the boot prompt, so if you ever change that > the default route will automatically follow. > > And this: > > This is a very old issue - in both bootConfig.c and usrNetwork.c, routeAdd() > is called to install a default gateway, but the destination network is the > same subnet on which the Host is located. This code, as shipped, only good > for > VME bp/sm networks - it works for the CPU which is connected only to the VME > network, and helps it conenct to the Host via the VME/Ethernet gateway. > > It has been suggested several times to change this statement to add > "0.0.0.0" > as destination, making the default gateway function in all cases (including > the VME network special case), but the suggestion was not incorporated into > the product. I beleive that I have filed a TSR about this back in 1991, when > I > worked for Applied Materials Inc. > > The only and the most elegant fix is to change the routeAdd() statement in > bootCOnfig.c, usrNetwork.c to be: > > routeAdd("0.0.0.0", params.gad); > > I did change these files as recommended above. AFAIK the bootConfig.c file > is used in compiling the bootrom, so I did that and reflashed my board. > That didn't work. I figured that the bootrom code is superseded by the > VxWorks image.... > > I also changed userNetwork.c, but when I rebuilt my VxWorks image, I don't > think that file was used?? In any event, that didn't work either. Is this > a viable idea? It sure seems like it should work.... > > > Thanks, > Joe > > "Tim Shaw" wrote in message > news:3C7ECF52.8429283C@dsto.defence.gov.au... > > Great suggestion Dave, here's my guess: > > > > > > > > > > vx Target PC host > > 155.34.103.42 155.34.103.41 > > |__________________|_____________________ 155.34.103.0 net > > | > > | > > 155.34.103.1 > > Gateway (PC?) > > 155.34.99.XX > > | > > __________________________________|_____ 155.34.99.0 net > > | > > 155.34.99.99 > > dev PC > > > > > > So the vxWorks targets needs to have the following: > > routeNetAdd "155.34.99.0", "155.34.103.1" > > which tells it to use the gateway to get to the 155.34.99.0 network. > > > > Then on the development PC, you need to add the route: > > route ADD 155.34.103.0 MASK 255.255.255.0 METRIC 2 IF 1 > > which you obviously have done if you can ping the 155.34.103.41 host. --------------------------- Newsgroups: comp.os.vxworks Subject: test Date: Fri, 01 Mar 2002 10:29:52 -0500 From: "Xu, Kaihua [BVW:9P82:EXCH]" Organization: Nortel Networks Message-ID: <3C7F9E70.76521E42@nowhere.com> --------------------------- Newsgroups: comp.os.vxworks Subject: vxSim networking problem Date: Fri, 1 Mar 2002 11:06:09 -0500 From: "doug dotson" Organization: Verio Message-ID: I am simulating an application where several nodes periodically send heartbeats to each other. These heartbeats are just UDP datagrams. I start up the first vxSim and start the heartbeat task and it starts sending datagrams to another vxSim which is not yet running. The packets are lost as expected, otherwise life is good. When the second vxSim is started, after about 10 heartbeats the CPU utilization on my NT host goes to 100% and stays there. Performance is severely degraded. Even if I kill the second vxSim the CPU stays pegged. When I kill the first vxSim, things go back to normal. It appears that sending datagrams to a destination that does not have an app running to receive them causes this. If I run the destination vxSim first and have it waiting for datagrams prior to starting the vxSim that sends them, life is good. Also having quite a bit of trouble keeping more than 2 vxSims working well. Target Servers die, Target Servers end up talking to the wrong vxSim, wierdness like that. Any thoughts are welcome. doug --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Problem in accessing PCI I/O Registers in IBM ppc 405GP Date: Fri, 01 Mar 2002 10:20:01 -0500 From: George Varndell Organization: Posted Via Binaries.net = SPEED+RETENTION+COMPLETION = http://www.binaries.net Message-ID: <3C7F9C21.48433D2B@varndellengineering.com> References: Arun Prasad wrote: > > Hi All, > > I'm facing a problem in accessing my card's (PCI based ethernet card) > registers. > If anyone of you could help me to fix this, it would be of great > help. > [snip,snip,snip] Did it occur to you that Linux might setup the bridge registers differently than your vxWorks BSP does? In your second dump of the PCI registers, after unnecessarily changing the original BSP code, the device is not enabled in the command register. Not that it would matter much since you've forced the BARs to contain values which likely bear no relationship to the bridge configuration. Forget what Linux does (unless you look at the entire PCI configuration picture) and go back to step one. The answer to your problem has to be simpler than you've made it appear. You should thoroughly read part IV, chapter 17 of the 405gp manual. Regards, George Varndell - -- Embedded Systems Expertise Varndell Engineering, LLC. http://www.varndellengineering.com Cumberland MD. 21502 ______________________________________________________________________________ Posted Via Binaries.net = SPEED+RETENTION+COMPLETION = http://www.binaries.net --------------------------- Newsgroups: comp.os.vxworks Subject: Re: DHCP and WINS Date: 1 Mar 2002 08:43:53 -0800 From: zachary.isom@anritsu.com (Zac Isom) Organization: http://groups.google.com/ Message-ID: <2df4589f.0203010843.61a63b4e@posting.google.com> References: <2df4589f.0202280838.15fb4da@posting.google.com> Thanks for your help. I have been struggling with our network guys for a while on this. It seems that our network is not set up to automatically update DNS when an IP address is assigned to a new node by DHCP. This would be the easiest solution for me. But, I don't think that they are going to budge on this. That is why I have been looking for something that I can do from my end to get my name published on the Internet. Otherwise, I will just have to stick to static IPs or manually verifying the IP when using DHCP. Zac --------------------------- Newsgroups: comp.os.vxworks Subject: Limiting the size of incoming/outgoing TCP packets Date: 1 Mar 2002 08:46:09 -0800 From: Jack.Cheng@motorola.com (Jack Cheng) Organization: http://groups.google.com/ Message-ID: <23001d98.0203010846.70ea7122@posting.google.com> Hi, I'm interested in limiting the size of incoming/outgoing TCP packets without affecting incoming/outgoing UDP packets. Has anyone ever tried this with VxWorks? Here's the scenario ... Say that Host1 (with a VxWorks OS) establishes a TCP connection with Host2 (with a Solaris OS). Host1 advertises a Maximum Segment Size (MSS) option in the SYN (or SYN ACK). This tells Host2 the maximum size of TCP packets that Host1 can handle. So this limits the packet size on the *incoming* TCP packets on Host1. How can Host1's advertised MSS be set to a lower value? Also, I want to limit the size of *outgoing* TCP packets from Host1 to Host2? One way is to change the advertised MSS that Host2 sends to the desired value. I don't want to do that though since Host2 sends/receives TCP packets from other hosts and doing so will affect these other hosts. I've tried to use setsockopt() (before and after the TCP connection establishment) but that doesn't seem to work. Thanks for the help. - Jack --------------------------- Newsgroups: comp.os.vxworks Subject: Re: post-mortem debugging, upper memory, and USER_RESERVED_MEM Date: 1 Mar 2002 17:01:48 GMT From: Denis Perelyubskiy Message-ID: References: * Michael Lawnick [03-Fri-02 01:59 -0800]: > > see below... > "Denis Perelyubskiy" schrieb im > Newsbeitrag > news:slrna7tou1.39r.denis_newsREMOVE-TO-REPLY@finch.lecs.cs.ucla.edu... > > Hello, > > > > There is an upper memory, which is not managed by VxWorks, > > nor VxWorks knows about its existence. The amount of memory > > there, from what I understand, is defined by > > USER_RESERVED_MEM > > > > There is also some chunk of memory, in sysPhysMemDesc table, > > which defines some sort of post-mortem debugging memory area > > (or so it does in our system) > > > > Are the two supposed to co-incide? From their definitions it > > does not seem that they are: one VxWorks knows nothing > > about, and the second one it does know about. The main > > question is how the two are different? I mean, does VxWorks > > simply not re-initialize memory reserved for post-mortem > > debugging? If that's the case, why would I want to > > USER_RESERVED_MEM any memory? > just to put your post-mortem into it ! :-) But, I guess I dont understand what stops me from putting it into the memory which is managed by VxWorks? Since our description of physiacl memory specifically has a section for post-mortem debugging! :) ... I guess, I am also trying to figure out if this is a standard thing, or if that's someone in our company that I am not aware of changed physical memory description to include such section... denis - -- if you want to reply by mail, please tweak my address in a reasonable way. sorry for the inconvenience. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: DHCP and WINS Date: 1 Mar 2002 09:07:12 -0800 From: igtorque@eliop.es (=?ISO-8859-1?Q?Ignacio_Gonz=E1lez?=) Organization: http://groups.google.com/ Message-ID: <9ec53d11.0203010907.5322a40a@posting.google.com> References: <2df4589f.0202280838.15fb4da@posting.google.com> zachary.isom@anritsu.com (Zac Isom) wrote in message news:<2df4589f.0202280838.15fb4da@posting.google.com>... [snip] > > The reason this is so important is because when I try to connect a > target server to a unit that has been assigned a dynamic IP address I > first have to discover the IP address of the target and change it in > the Tornado target server configuration dialog. It would be much > easier to simply provide a name. > Try putting the target name, instead of the IP address, in the target server. --------------------------- Newsgroups: comp.os.vxworks Subject: alignment Date: 1 Mar 2002 17:15:16 GMT From: Denis Perelyubskiy Message-ID: Hello, Just a couple of simple (for you :-) ) alignment questions. I understand what the concept means, but dont understand how it applies in the real world, so please bear with my questions :) Also, please feel free to point out if my questions do not make much sense (preferrably with a reason why)... 1. Is it pretty much the case (with some exceptions, perhaps) that aligning all my ulongs (assuming ulong is 4 bytes, and I am working with something where compiler won't do this for me) on a 4 byte boundary will speed up access on any 32-bit architecture, or am I way confused about the whole alignment concept? 2. I think some architectures (maybe optionally with a bit set somewhere inthe CPU control register) will disallow access to unaligned data: does that apply only to pointers, or to any types spanning multiple bytes, like longs, ints, shorts? 3. a) If I have a chunk of data, represented as a character array, and then cast it into some structure, access fields in it, should I expect to get an alignment exception on architectures where pointer value is supposed to be aligned on some boundary? b) Would this problem be avoided if I were to use memcopy() to copy my bytes into my integers, or whatever else the type of the structure field may be? (presumably because the function would access individual characters, and those do not have to be aligned; or, maybe, do have to be aligned, but on a 1-byte boundary, which is essentially the same thing) Thanks very much. denis - -- if you want to reply by mail, please tweak my address in a reasonable way. sorry for the inconvenience. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: clock_gettime fails with write() but not fwrite Date: Fri, 1 Mar 2002 17:52:32 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C7FC043.7020700@spamm.me.l8s.co.uk> References: <6wBb8.3387$zl4.2197904@typhoon3.we.ipsvc.net> <3C714455.4050207@spamm.me.l8s.co.uk> <22vd8.2703$5o.1592814@newsr2.u-net.net> <3C7688A1.8050805@spamm.me.l8s.co.uk> <2pve8.2770$5o.1748555@newsr2.u-net.net> <3C7A8869.3020108@spamm.me.l8s.co.uk> > I convinced myself that it had to be tScsiTask, simply by issuing a huge > scsi read from my application while tScsiTask was taskSuspend'ed from the > shell, then waiting a while and seeing vxTicks wasn't zeroed yet, suspending > everything else (except tShell and tNetTask), waiting a while, and verifying > vxTicks wasn't reset; then taskResume'ing tScsiTask and spotting vxTicks get > zeroed at once. But not having the source code, I never felt it was much > worth narrowing it down any further. The thing is you need to find the code that causeing it, knowing the task doesn't really help. It could even be a bug in wdStart() - but I couldn't see it... > > >>Sometimes it is faster to read likely source files looking >>for a bug that might cause what you are seeing, fix the >>bug you found and see if it solves the problem you have. >> > > Heh, of course, if you feel you can dip into any source file at random and > stand a good chance of just spotting a bug, that's not *really* a good sign. > Anyway, my chances of convincing my management to spend 10's of kiloquids > just so I could help WRS find their own bugs have gotta be next to zero :) > which is fair enough since I got other things to do with me time anyway :P Easy - even in my code. But I can find bugs in WRS code from the disassembly, don't need the source.... David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Problem in accessing PCI I/O Registers in IBM ppc 405GP Date: 1 Mar 2002 09:56:53 -0800 From: arun4vxworks@indiatimes.com (Arun Prasad) Organization: http://groups.google.com/ Message-ID: References: <3C7F9C21.48433D2B@varndellengineering.com> Hi, Our card requires 2 64 bit BARs (BAR0 and BAR3. Actually BAR0&BAR1 combination and BAR3 & BAR4 combination forms these 64 bit BAR registers) and one I/O BAR register (BAR2). Since we felt our card's BAR registers haven't been properly initiatlized from the output of pciHeaderShow(), we have gone for configuring it on our own. Do you mean to say, we can make use of the BARs whichever provided by our BSP/VxWorks directly without configuring it, in our case? Regards Arun George Varndell wrote in message news:<3C7F9C21.48433D2B@varndellengineering.com>... > Arun Prasad wrote: > > > > Hi All, > > > > I'm facing a problem in accessing my card's (PCI based ethernet card) > > registers. > > If anyone of you could help me to fix this, it would be of great > > help. > > > > [snip,snip,snip] > > Did it occur to you that Linux might setup the bridge registers > differently than your vxWorks BSP does? > In your second dump of the PCI registers, after unnecessarily > changing the original BSP code, the device is not enabled in the > command register. Not that it would matter much since you've forced > the BARs to contain values which likely bear no relationship to the > bridge configuration. Forget what Linux does (unless you look at the > entire PCI configuration picture) and go back to step one. The answer > to your problem has to be simpler than you've made it appear. > You should thoroughly read part IV, chapter 17 of the 405gp manual. > > Regards, > George Varndell --------------------------- Newsgroups: comp.os.vxworks Subject: Re: problem creating new project Date: Fri, 1 Mar 2002 18:08:21 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C7FC3F8.1000306@spamm.me.l8s.co.uk> References: <3C7E5F02.2545B753@notifier-is.net> drdiags wrote: > David and Michiel, > > This is an SPR, don't know when it will be fixed since Wind Surf states > it was created Apri 22, > 1999: > > TITLE: Including PCMCIA by hand in config.h or #define n in the > BSP header file > makes it impossible to create a bootable project. > SPR #: 26952 > STATUS: Assigned > IDE: Tornado 2.0 >>>-> project creation failed: >>> "list must have an even number of elements" I hit that one in June 99, was told that 'an engineer was working on it', however I never saw a fix! I think WRS stopped looking for the bug when they found a work around - don't enable PCMCIA until after the project is created (or some such). Didn't help me - I wasn't using an x86 BSP and didn't have PCMCIA enabled. However my BSP header file probablyt contained something else it didn't like. Since WRS didn't even find the part of the pcmcia header file that caused the problem, never mind actually FIXING the project build script I didn't ever create a project for T2.... David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Problem in accessing PCI I/O Registers in IBM ppc 405GP Date: Fri, 01 Mar 2002 13:14:52 -0500 From: david lindauer Message-ID: <3C7FC51C.F75E564D@notifier-is.net> References: <3C7F9C21.48433D2B@varndellengineering.com> Arun Prasad wrote: > Hi, > > Our card requires 2 64 bit BARs (BAR0 and BAR3. Actually BAR0&BAR1 > combination and BAR3 & BAR4 combination forms these 64 bit BAR > registers) and one I/O BAR register (BAR2). > > Since we felt our card's BAR registers haven't been properly > initiatlized from the output of pciHeaderShow(), we have gone for > configuring it on our own. > > Do you mean to say, we can make use of the BARs whichever provided by > our BSP/VxWorks directly without configuring it, in our case? > if it is truly initialized via the BSP it might be smarter to leave it be because there may be other related configuration (for example enabling the part of the memory map indicated by the BARS) or you might cause a clash with some memory or other device on the board. But it really depends on the card & whether the person who wrote the BSP had the same idea of how to use it as you do. David > > Regards > Arun > > George Varndell wrote in message news:<3C7F9C21.48433D2B@varndellengineering.com>... > > Arun Prasad wrote: > > > > > > Hi All, > > > > > > I'm facing a problem in accessing my card's (PCI based ethernet card) > > > registers. > > > If anyone of you could help me to fix this, it would be of great > > > help. > > > > > > > [snip,snip,snip] > > > > Did it occur to you that Linux might setup the bridge registers > > differently than your vxWorks BSP does? > > In your second dump of the PCI registers, after unnecessarily > > changing the original BSP code, the device is not enabled in the > > command register. Not that it would matter much since you've forced > > the BARs to contain values which likely bear no relationship to the > > bridge configuration. Forget what Linux does (unless you look at the > > entire PCI configuration picture) and go back to step one. The answer > > to your problem has to be simpler than you've made it appear. > > You should thoroughly read part IV, chapter 17 of the 405gp manual. > > > > Regards, > > George Varndell --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Finding undefined symbols in .out file Date: Fri, 1 Mar 2002 18:13:53 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C7FC546.7000908@spamm.me.l8s.co.uk> References: <3C7EC2D5.1B9A2EE9@bitworkssystemsDELETETHIS.com> Todd Litwin wrote: >> They should have told you to use nm386 rather than objdump. >> > > I don't know about the 386 version of nm, but the other versions that I have > used support a "-u" option that will print out a list of only the undefined > symbols. If you've downloaded a composite binary that has an undefined symbol, > simply run "nm386 -u" on each of the individual .o files until you find the > file that lists the offending symbol. find . -name '*.[oa]' | ( while read f do nmxxx $f 2>/dev/null | grep '\<_symbol_name\>' && echo $f done ) Will sometimes help... David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: alignment Date: Fri, 01 Mar 2002 13:22:55 -0500 From: david lindauer Message-ID: <3C7FC6FF.DB1B5DF4@notifier-is.net> References: Denis Perelyubskiy wrote: > Hello, > > Just a couple of simple (for you :-) ) alignment questions. > I understand what the concept means, but dont understand how > it applies in the real world, so please bear with my > questions :) Also, please feel free to point out if my > questions do not make much sense (preferrably with a reason > why)... > > 1. Is it pretty much the case (with some exceptions, > perhaps) that aligning all my ulongs (assuming ulong is 4 > bytes, and I am working with something where compiler won't > do this for me) on a 4 byte boundary will speed up access on > any 32-bit architecture, or am I way confused about the > whole alignment concept? > depends on the architecture and how it is designed. May also depend on exactly how memory is hooked up to it. > > 2. I think some architectures (maybe optionally with a bit > set somewhere inthe CPU control register) will disallow > access to unaligned data: does that apply only to pointers, > or to any types spanning multiple bytes, like longs, ints, > shorts? > usually any type with size > 1 (a pointer is really an int of some sort; the only thing that makes it a pointer is that the compiler knows how to generate extra code to use it as an address). > > 3. a) If I have a chunk of data, represented as a character > array, and then cast it into some structure, access fields > in it, should I expect to get an alignment exception on > architectures where pointer value is supposed to be aligned > on some boundary? if your structure fields are unaligned, yes you may get an access violation when you try to access one. Depends on the architecture though, and possibly configuration. Note that the GNU compilers typically align things unless you ask them not to. > > b) Would this problem be avoided if I were to use > memcopy() to copy my bytes into my integers, or whatever > else the type of the structure field may be? (presumably > because the function would access individual characters, and > those do not have to be aligned; or, maybe, do have to be > aligned, but on a 1-byte boundary, which is essentially the > same thing) > yes, assuming the compiler and run-time environment were set up to align variables properly based on their size. David > > Thanks very much. > > denis > > -- > if you want to reply by mail, please tweak my > address in a reasonable way. sorry for the > inconvenience. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: alignment Date: Fri, 1 Mar 2002 18:20:50 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C7FC6E5.1040906@spamm.me.l8s.co.uk> References: Denis Perelyubskiy wrote: > > 1. Is it pretty much the case (with some exceptions, > perhaps) that aligning all my ulongs (assuming ulong is 4 > bytes, and I am working with something where compiler won't > do this for me) on a 4 byte boundary will speed up access on > any 32-bit architecture, or am I way confused about the > whole alignment concept? I dont know of any exceptions :-) > > 2. I think some architectures (maybe optionally with a bit > set somewhere inthe CPU control register) will disallow > access to unaligned data: does that apply only to pointers, > or to any types spanning multiple bytes, like longs, ints, > shorts? All items, in some systems 'double' has to be 8 byte aligned. > > 3. a) If I have a chunk of data, represented as a character > array, and then cast it into some structure, access fields > in it, should I expect to get an alignment exception on > architectures where pointer value is supposed to be aligned > on some boundary?] Absolutely, unless you know the alignment of the memory area is ok. Memory returned by malloc() is ok, static data items are not. > b) Would this problem be avoided if I were to use > memcopy() to copy my bytes into my integers, or whatever > else the type of the structure field may be? (presumably > because the function would access individual characters, and > those do not have to be aligned; or, maybe, do have to be > aligned, but on a 1-byte boundary, which is essentially the > same thing) That will work - but beware of endianness issues. If you need to get an integer from a possibly misaligned access it is probably better just to load the bytes and shift them by hand eg p[0] << 24 | p[1] << 16 | p[2] << 8 | [3] David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: post-mortem debugging, upper memory, and USER_RESERVED_MEM Date: 01 Mar 2002 13:28:56 -0500 From: Bill Pringlemeir Organization: Bell Sympatico Message-ID: References: Sender: bpringlemeir@DeadDuck >>>>> "Denis" == Denis Perelyubskiy writes: Denis> But, I guess I dont understand what stops me from putting it Denis> into the memory which is managed by VxWorks? Since our Denis> description of physiacl memory specifically has a section for Denis> post-mortem debugging! :) ... I guess, I am also trying to Denis> figure out if this is a standard thing, or if that's someone Denis> in our company that I am not aware of changed physical memory Denis> description to include such section... `sysPhysMemDesc' is used for MMU configuration. I have a system without any MMU and I have removed `sysPhysMemDesc' entirely. You must have the memory mapped in order to access it from anywhere. So you must "tell vxWorks about it". Don't think of vxWorks as one entity, it is many. USER_RESERVED_MEM on the other hand is used to tell the memory partition sub-system to ignore this memory. So malloc, memPartAlloc, etc will not use it. If no one uses it, it is free for post-mortem to use. It is also important that no other software over-writes this memory on a reset. hth, Bill Pringlemeir. - -- You have the lack of intelligence of a rat. You're a typical feminist person, totally crass. vxWorks FAQ, "http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html" --------------------------- Newsgroups: comp.os.vxworks Subject: Re: DOS file system Date: 01 Mar 2002 13:45:10 -0500 From: Bill Pringlemeir Organization: Bell Sympatico Message-ID: References: Sender: bpringlemeir@DeadDuck >>>>> "Matthias" == Matthias Guelck writes: Matthias> Hi Bill, hi Charles, we are very concerned about the FLASH Matthias> wearing by read functions modifying the last accessed Matthias> field. Matthias> How did you get the source code (bought from WRS? - how Matthias> much $?). Matthias> How much time did you need for the rework? Perhaps you can ask your FAE. The code changes are very easy. "dosFs/dosFsLib.c" needs to be changed. I have a diff below. However, I think you just need to search for "->accessed" and note how the code is being used to understand. There are about three to four occurrences of this. As Leonid noted, this should probably be configurable. hth, Bill Pringlemeir. [dosFsLib.c differences] *** c:/TEMP/dosFsLib.c.~1.2~ Wed Feb 27 19:52:55 2002 - --- c:/TEMP/dosFsLib.c.~1.1.~ Wed Feb 27 19:52:55 2002 *************** *** 2532,2543 **** } /* update file's directory entry */ ! if(cbioModeGet(pVolDesc->pCbio) != O_RDONLY) ! { ! pFd->accessed = 0; ! if(pFd->changed) ! pVolDesc->pDirDesc->updateEntry(pFd, DH_TIME_MODIFY, time(NULL)); ! } /* * flush buffers and deallocate unused clusters beyond EOF, * if last file descriptor is being closed for the file - --- 2532,2547 ---- } /* update file's directory entry */ ! ! if( cbioModeGet(pVolDesc->pCbio) != O_RDONLY && ! ( pFd->accessed || pFd->changed ) ) ! { ! u_int timeFlag = (pFd->accessed)? DH_TIME_ACCESS : ! DH_TIME_MODIFY ; ! pVolDesc->pDirDesc->updateEntry( pFd, timeFlag, time( NULL ) ); ! pFd->accessed = 0; ! } ! /* * flush buffers and deallocate unused clusters beyond EOF, * if last file descriptor is being closed for the file *************** *** 3986,3996 **** retVal = OK; /* store directory entry */ ! if(pFd->changed) ! { retVal = pVolDesc->pDirDesc->updateEntry( ! pFd, DH_TIME_MODIFY, time(NULL)); ! } if( retVal == OK ) { retVal = cbioIoctl( - --- 3990,4003 ---- retVal = OK; /* store directory entry */ ! ! if( pFd->accessed || pFd->changed ) ! { ! ptrBuf = (void *)((pFd->accessed)? DH_TIME_ACCESS : ! DH_TIME_MODIFY ) ; retVal = pVolDesc->pDirDesc->updateEntry( ! pFd, (u_int)ptrBuf, time( NULL ) ); ! } if( retVal == OK ) { retVal = cbioIoctl( - -- The mailman will share intimate feelings today. Don't forget to play Sam and Max Hit the Road. You will meet the man this week. You'll fall into a state of gaiety, but eventually be a Borg. vxWorks FAQ, "http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html" --------------------------- Newsgroups: comp.os.vxworks Subject: PPP/DHCP bugs [was: clock_gettime fails with write() but not fwrite] Date: 01 Mar 2002 14:10:41 -0500 From: Bill Pringlemeir Organization: Bell Sympatico Message-ID: References: <6wBb8.3387$zl4.2197904@typhoon3.we.ipsvc.net> <3C714455.4050207@spamm.me.l8s.co.uk> <22vd8.2703$5o.1592814@newsr2.u-net.net> <3C7688A1.8050805@spamm.me.l8s.co.uk> <2pve8.2770$5o.1748555@newsr2.u-net.net> <3C7A8869.3020108@spamm.me.l8s.co.uk> <3C7FC043.7020700@spamm.me.l8s.co.uk> Sender: bpringlemeir@DeadDuck >>>>> "David" == David Laight writes: David> Easy - even in my code. But I can find bugs in WRS code from David> the disassembly, don't need the source.... -> l muxUnbind muxUnbind: 00061784 e92d47f0 STMDB r13!,{r4-r10,r14} 00061788 e3a05000 MOV r5,#0 0006178c e2506000 SUBS r6,r0,#0 [snip] 00061840 e1a01004 MOV r1,r4 00061844 e1a00009 MOV r0,r9 00061848 ebffaa72 BL lstDelete value = 399436 = 0x6184c = muxUnbind + 0xc8 -> l *** 0006184c e1a00004 MOV r0,r4 00061850 ebff1b8c BL free 00061854 e5940048 LDR r0,[r4,#0x48] 00061858 eb002b39 BL muxTkUnbindUpdate *** 0006185c e3a00000 MOV r0,#0 00061860 e8bd87f0 LDMIA r13!,{r4-r10,pc} But memory is freed. How can you use it? vxWorks bug. -> l ifreset _ifreset 000b1990 e92d4030 STMDB r13!,{r4,r5,r14} [snip] 000b19b8 e1d401f6 LDRSH r0,[r4,#0x16] 000b19bc e1a0e00f MOV r14,pc *** 000b19c0 e1a0f003 MOV pc,r3 *** 000b19c4 e5944004 LDR r4,[r4,#4] 000b19c8 e3540000 CMP r4,#0 Opps, call close() and use the structure. vxWorks bug. So far I have been waiting since Feb-08 to get something. There is no movement on the 1st TSR and the 2nd TSR is marked as "Wind River work required". It seems that the vxWorks extentions to the networks layers have quite a few of these memory ownership problems [speculation on my part]. BSD portions are pretty rock solid AFAIAC. Regards, Bill Pringlemeir. - -- However, if you want the underlying mechanism, it isnt a semantic issue, because at some level, there is no more rug to shuffle things under. - Bilge vxWorks FAQ, "http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html" --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Finding undefined symbols in .out file Date: Fri, 1 Mar 2002 20:15:57 +0100 From: "Werner Schiendl" Message-ID: <3c7fd364@brateggebdc5.br-automation.co.at> References: <3C7EC2D5.1B9A2EE9@bitworkssystemsDELETETHIS.com> <3C7EF18C.5621@despam.autobahn.mb.ca> <3C7EEC94.2A97020B@bitworkssystemsDELETETHIS.com> Hi, take a WARNING to this hint as well: linking your application will only tell you unresolved symbols if they do not _exist_ in your VxWorks installation. It silently includes symbols of VxWorks features, even if they are not configured into the VxWorks image. You have then the functions resolved, BUT you don't have the library in question initialized. Instead of linking your application during development it is probably better to struggle with unresolved symbols. I can tell from personal experience, that the problem described above is not necessarily simple to figure out. (Some API calls seem to work perfectly well, "only" some pointers are not setup properly WITHIN the kerner (library) code. The reason for the misbehaviour described is, that you bootable VxWorks project is linked again the entire VxWorks library. (everything - usually - that has been installed). The linker does not care about whether the feature is included in the project facility, it just includes everything that is referenced. hth Werner P. S. I usually use just simply the Find in Files (Windows Explorer, Visual Studio, whatever you like) feature to find out, where the function is referenced. For C++ you need to demangle the function name, before you do the search. You can use the c++filt tool to do the search (e. g. for intel targets, the name is c++filt386). Of course you can also use a source code browser to find out - but these are as well limited if you do odd stuff with the preprocessor - don't expect to much. Most of the time, you have a hit with the first try. Otherwise, you've often a design problem (like using the preprocessor to build function/method/class names) rather than a tool problem. "Jon Newbill" wrote in message news:3C7EEC94.2A97020B@bitworkssystemsDELETETHIS.com... > > > "H. E. Taylor" wrote: > > > In article <3C7EC2D5.1B9A2EE9@bitworkssystemsDELETETHIS.com>, > > Jon Newbill wrote: > > > > > >[...] > > > So the question is. How do you find what module referenced an undefined > > > symbol when you download a .out file that was built from 50 or more > > > modules? > > > > > This is a problem we have all faced. There are a couple of > > tactics I used until I got to know the code better. > > > > One simple thing you can do is build images with your code > > added. This way you find out at compile time rather than > > load time. It just shortens your cycle. > > > > Another thing you can do is get real friendly with grep. > > > > Another thing you can do is get a source code browser. It seems > > to me there is a VxWorks version of this now. > > > > If you are adventurous and happen to have MSVC (or whatever they > > are calling it now), you can set up a static lib project of the > > files you are compiling (to the .out) and use the MSVC source code > > browser (the lib will be throwaway). > > > > -het > > > > -- > > "progress in software has not followed Moore's law." -John Holland > > > > Zimbabwe Links & News: http://www.autobahn.mb.ca/~het/zimbabwe.html > > H.E. Taylor http://www.autobahn.mb.ca/~het/ > > These solutions assume you have source to all the code and that it's in a > convienient place to do a massive grep on. It also assumes no use of #defines > to create symbols. From your reply it appears that there really is no way to > find the offending object file? When you say build an image you mean a final > executable with OS included which would actually use the linker? In that case > does the linker/loader report the offending object module for an undefined? > > Jon Newbill > JonUN@bitworkssystemsREMOVTHIS.com > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: problem creating new project Date: Fri, 01 Mar 2002 14:30:25 -0500 From: david lindauer Message-ID: <3C7FD6D1.FF14773C@notifier-is.net> References: <3C7E5F02.2545B753@notifier-is.net> <3C7FC3F8.1000306@spamm.me.l8s.co.uk> David Laight wrote: > drdiags wrote: > > > David and Michiel, > > > > This is an SPR, don't know when it will be fixed since Wind Surf states > > it was created Apri 22, > > 1999: > > > > TITLE: Including PCMCIA by hand in config.h or #define n in the > > BSP header file > > makes it impossible to create a bootable project. > > SPR #: 26952 > > STATUS: Assigned > > IDE: Tornado 2.0 > > >>>-> project creation failed: > >>> "list must have an even number of elements" > > I hit that one in June 99, was told that 'an engineer was working > on it', however I never saw a fix! I think WRS stopped looking > for the bug when they found a work around - don't enable PCMCIA > until after the project is created (or some such). > > Didn't help me - I wasn't using an x86 BSP and didn't have > PCMCIA enabled. However my BSP header file probablyt contained > something else it didn't like. > > Since WRS didn't even find the part of the pcmcia header file > that caused the problem, never mind actually FIXING the project > build script I didn't ever create a project for T2.... > > David Yeah PCMCIA was the problem... I disabled it long enough to create a project and it worked! Previously I had been copying other projects and modifying the WPJ file enough to bootstrap me in whenever I wanted a new project... David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: How to make assert break into debugger with hardcoded breakpoint Date: Fri, 1 Mar 2002 20:28:34 +0100 From: "Werner Schiendl" Message-ID: <3c7fd659$1@brateggebdc5.br-automation.co.at> References: <3C7EFCCC.A5A03741@bitworkssystemsDELETETHIS.com> Hi, I think I remember to have plain Int 3 working, but not sure. But you can use taskSuspend() instead. You can then attach the debugger to the suspended task and see what went wrong. This works for task level stuff, interrupts are something completely different of course. To get informed when you trigger an assertion, you should output some descriptive message with logMsg(). hth Werner "Jon Newbill" wrote in message news:3C7EFCCC.A5A03741@bitworkssystemsDELETETHIS.com... > Ok here's another VxWorks Newbi question or is that a Newbill > question. On every other embedded system debugger I've used I would > always create an assert() macro that would execute a hard coded > breakpoint instruction to cause a trap into the debugger when an assert > occurs. This is quite useful since your in sitting right there in > context and can use the full power of the debugger to figure out how you > got the assert or in some cases correct the problem and continue on > debugging. On Intel platforms INT3 is the usual breakpoint > instruction and on 68K systems it was a TRAP 0. > > Now I'm using Intel on VxWorks 5.4.2 with GNU tools and executing an INT > 3 seems to send the target into never never land. Does anyone know a > method to programatically break into the debugger? > > Jon Newbill > JonUN@bitworkssystemsREMOVTHIS.com > > > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: muxLoad Failed while picking up the VxWorks image from host Date: Fri, 1 Mar 2002 20:30:25 +0100 From: "Werner Schiendl" Message-ID: <3c7fd6c7$1@brateggebdc5.br-automation.co.at> References: "Ajay Garg" wrote in message news:ae7893e8.0202282234.7a955751@posting.google.com... > Hi, > I am using 3COM card WHICH one? WHICH BSP? Version of VxWorks? ... regards Werner --------------------------- Newsgroups: comp.os.vxworks Subject: Proc Numbers, booting and VME transfers Date: 01 Mar 2002 13:38:29 -0600 From: Greg Willden Organization: Posted via Supernews, http://www.supernews.com Message-ID: <87vgcgm62y.fsf@rainier.electro.swri.edu> Sender: gwillden@rainier.electro.swri.edu I am trying to find the *right* way of doing this in vxworks. I know a hack or two but... I have multiple Synergy dual and quad PPC cards in a single VME rack. Each card has it's own ethernet connection that all processors x,y(z,w) share. In the case of the quad board the processors (x,y,z,w) are given processor numbers 0-3 respectively. If I add another card or two to the chassis then I have two options: (a) number the processors the same (0-3) or (b) continue the series (4-7 etc). If I choose (a) then all is well until I try to do a VME transfer between the cards. Then I would have multiple cards with their A32 slave windows in the same place. This is bad. If I choose (b) then instead of each card booting up from its own network connection the cards whose x processor number is greater than 0 attempt to boot over the VME backplane. I guess that isn't necessarily a bad thing as long as I can then reconfigure the network for all of the cards except slot 0. My hack solution would be to create different kernels for each board with different A32 windows but that just smells bad to me. A slight variation would be to configure an additional A32 window for each card based on IP address or something like that. What is the *right* way to configure these cards to play nicely over VME while booting from (or reconfiguring after boot) their own ethernet connection? Thanks Greg Willden - -- Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Limiting the size of incoming/outgoing TCP packets Date: Fri, 1 Mar 2002 11:58:41 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <23001d98.0203010846.70ea7122@posting.google.com> setsockopt() can be used to adjust TCP window sizes. It won't let you adjust MSS. For local reachable destinations, MSS is dependent on the MTU of network interface. For ethernet, MSS will largely depend on ethernet MTU. This means, you could artificially lower the MTU size for ethernet interface in the driver (ifp->if_mtu) to reduce the MSS at the start of TCP connection. Not pretty, but it might do what you want. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: How to make assert break into debugger with hardcoded breakpoint Date: 01 Mar 2002 15:09:36 -0500 From: Bill Pringlemeir Organization: Bell Sympatico Message-ID: References: <3C7EFCCC.A5A03741@bitworkssystemsDELETETHIS.com> Sender: bpringlemeir@DeadDuck >>>> "Jon Newbill" wrote: >> On every other embedded system debugger I've used I would always >> create an assert() macro that would execute a hard coded >> breakpoint instruction to cause a trap into the debugger when an >> assert occurs. >>>>> "Leonid" == Leonid Rosenboim writes: Leonid> Two solutions: the easiest is simply set a breakpoint on the [snip] Another solution, use the "DBG_BREAK_INST" define to add an instruction that will set a break point. I don't recommend this. On most CPU types, this is an undefined instruction. vxWorks might just give that exception. Another solution is to the the b() function in dbgLib. The prototype is, STATUS b ( INSTR * addr, /* where to set breakpoint, or 0 = display */ /* all breakpoints */ int task, /* task for which to set breakboint, 0 = */ /* set all tasks */ int count, /* number of passes before hit */ BOOL quiet /* TRUE = don't print debugging info, FALSE */ /* = print debugging info */ ) You need to set this to pc + xxx in your debug macro. taskIdSelf() is a helpful function. I think this might be your best choice. That is a good idea. Thanks for asking the question. I just usually had the task abort. hth, Bill Pringlemeir. - -- cracking munitions Ft. Bragg Serbian Qaddafi Saddam Hussein Ft. Meade Soviet plutonium radar Rule Psix [Hello to all my fans in domestic surveillance] strategic ammunition Semtex vxWorks FAQ, "http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html" --------------------------- Newsgroups: comp.os.vxworks Subject: Re: PPP problem Date: Fri, 1 Mar 2002 22:11:04 +0200 From: "Leonid Rosenboim" Organization: Verio Message-ID: References: <3C7E0A02.3F646C90@sepro-robotique.com> <3C7F7A9D.2AB0A3B2@sepro-robotique.com> Emanuel, here is another idea: FTP fires a "work" task for each session, perhaps the problem is the work task stack. It is controlled via a global variable, whenver you change the variable all new tasks will be created with the new stack size. If I recall correctly, the variable is ftpdTaskStackSize Also, I am not sure you actually changed the stack size of tNetTask, double check this with checkStack. The fact that large files work OK would suggest the serial driver is innoscent. "Emmanuel Herbreteau" wrote in message news:3C7F7A9D.2AB0A3B2@sepro-robotique.com... > Hi, > > Thanks for this answer. > Unfortunately, it didn't solve the problem > > Leonid Rosenboim wrote: > > It could be the NetTask, so I do recommend you double its stack size > > So, I tried two things : > - add the "Define" in "netBufLib.h" to increase the number of mBlk buffer > (used by the network stack). > - change some setting in the FTP server (number of client allowed, miscelleanous > time setting, etc...) > > > If not, this could be due to the serial driver not being able to keep up > > with the high rate of interrupt, so I would suggest to repeat the same > > test with a lower speed, e.g. 9600 baud. > > I also tried this but it didn't change anything. > > Description : the FTP server works (on the target) perfectly when > transferring medium size files (64KB), but when I tried to transfer > a lot of small files, it's like the PPP driver crash after 8-9 files > (CRC error on the serial link, no more IP service available, even "ICMP/ping") > (I have to disconnect PPP and then reconnect). > > It's VxWorks 5.4 with the latest patches and FTP server from DOSFS2 add-on. > > > Leonid > 'Au revoir' and 'Bonne journée' ! ;-) > > -- > Best regards > Emmanuel --------------------------- Newsgroups: comp.os.vxworks Subject: Re: muxLoad Failed while picking up the VxWorks image from host Date: Fri, 01 Mar 2002 15:31:06 -0500 From: david lindauer Message-ID: <3C7FE50A.C1A46C9C@notifier-is.net> References: does your configuration string have the correct card name? Seems like you get errors like this if you specify a network boot device that doesn't exist... David Ajay Garg wrote: > Hi, > I am using 3COM card to communicate across network. I am getting a > message "muxLoad failed" after getting the prompt on target. But if I > am using a fei card, I am getting everything fine. I am making the > necessary changes in config file for my BSP which is pentium. > Your help is needed to solve this problem. > > Regards, > Ajay Garg. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: intLock() and "system routines" vs. "kernel services" Date: Fri, 1 Mar 2002 15:28:23 -0500 From: Keith Arner Organization: Marconi Message-ID: References: Reply-To: Keith Arner On Tue, 26 Feb 2002, Leonid Rosenboim wrote: > From the kernel behavioural perspective, behaviour is very well > defined in the case of a system call (a.k.a. kernel routine) while > interrupts ar elocked - if rescheduling happens, i.e. if the call made > causes another task to become READY which is of higher priority, > a task switch will occur and interrupts will be unlocked, until the > processor runs the subject task again, it will then return interrupt > mask to "locked" again. Perhaps you did not understand my question. Say I write the following code: void myFunc(void) { int level = intLock(); semGive(mySem); /* are interrupts still locked? */ intUnlock(level); } Here, I am invoking a kernel function with interupts locked. I am aware of the fact that locking interrupts is done on a task-by-task basis, and that the above semGive() could cause a higher priority task to become ready, thereby preemting the current task, and unlocking interrupts until the (old) current task runs again. While this may be counter-intuitive to some, it is at least well defined and predictable. However, I am also aware of the fact that some kernel functions will unlock interrupts in the current task. That is, internally they lock interrupts, then later unlock them, without regard to whether they were locked on entry to the function. In my example function, if I did some amount of work between the semGive() and the intUnlock(level), how do I know if interrupts are still locked? Is there a list of kernel functions that says which will honor the locking level that was present on entry, and which will undo what ever interrupt locking you may have had in place? Keith --------------------------- Newsgroups: comp.os.vxworks Subject: LP-VxWin Date: Fri, 1 Mar 2002 15:20:47 +0100 From: "Mik" Message-ID: <3c7f8d97.0@news.dada.it> Hi, I use Kuka robot for one project and now i'm interested in knowing more on the architecture of the controller KRC2 (is based on LP-VxWin of LP Eletronic). I'm very begginner on that issue but i want to know how the things run, how to optimize the system for smooth and so on. I'm very interested in relation between the source code that i write and the LP-VxWin RT kernel. Can anyone help me? --------------------------- Newsgroups: comp.os.vxworks Subject: Re: How to make assert break into debugger with hardcoded breakpoint Date: Fri, 01 Mar 2002 21:10:53 GMT From: Jon Newbill Organization: EarthLink Inc. -- http://www.EarthLink.net Message-ID: <3C7FEEBC.60696022@bitworkssystemsDELETETHIS.com> References: <3C7EFCCC.A5A03741@bitworkssystemsDELETETHIS.com> <3c7fd659$1@brateggebdc5.br-automation.co.at> This sounds good except I want all tasks to stop execution not just the one that had the assert. I thought I had INT3 working too with the 1st BSP I got from VMIC but that had significant other problems (GP faults). Jon Newbill Werner Schiendl wrote: > Hi, > > I think I remember to have plain Int 3 working, but not sure. > > But you can use taskSuspend() instead. > You can then attach the debugger to the suspended task and see what went > wrong. > > This works for task level stuff, interrupts are something completely > different of course. > > To get informed when you trigger an assertion, you should output some > descriptive message with logMsg(). > > hth > Werner > > "Jon Newbill" wrote in message > news:3C7EFCCC.A5A03741@bitworkssystemsDELETETHIS.com... > > Ok here's another VxWorks Newbi question or is that a Newbill > > question. On every other embedded system debugger I've used I would > > always create an assert() macro that would execute a hard coded > > breakpoint instruction to cause a trap into the debugger when an assert > > occurs. This is quite useful since your in sitting right there in > > context and can use the full power of the debugger to figure out how you > > got the assert or in some cases correct the problem and continue on > > debugging. On Intel platforms INT3 is the usual breakpoint > > instruction and on 68K systems it was a TRAP 0. > > > > Now I'm using Intel on VxWorks 5.4.2 with GNU tools and executing an INT > > 3 seems to send the target into never never land. Does anyone know a > > method to programatically break into the debugger? > > > > Jon Newbill > > JonUN@bitworkssystemsREMOVTHIS.com > > > > > > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: June 2001 v/s T2CP4 Date: Fri, 1 Mar 2002 16:52:39 -0600 From: Dinker Charak Organization: Fermi national Accelerator Lab Message-ID: References: For those who were curious: WRS support says the June 2001 update applies only to T 2.02. So we need to apply the driver updates after applying the t2cp4 patch. dinker Dinker Charak wrote: > Hello, > > Does someone know which came first? T2CP4 says it was released on June > 2001. So is it that all driver updates and bug-fixes in Jume 2001 driver > pack release are part of T2CP4? > > Thanks, > Dinker > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: PPP/DHCP bugs [was: clock_gettime fails with write() but not fwrite] Date: Fri, 1 Mar 2002 23:06:37 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C8009E0.5080300@spamm.me.l8s.co.uk> References: <6wBb8.3387$zl4.2197904@typhoon3.we.ipsvc.net> <3C714455.4050207@spamm.me.l8s.co.uk> <22vd8.2703$5o.1592814@newsr2.u-net.net> <3C7688A1.8050805@spamm.me.l8s.co.uk> <2pve8.2770$5o.1748555@newsr2.u-net.net> <3C7A8869.3020108@spamm.me.l8s.co.uk> <3C7FC043.7020700@spamm.me.l8s.co.uk> > So far I have been waiting since Feb-08 to get something. There is no > movement on the 1st TSR and the 2nd TSR is marked as "Wind River work > required". It seems that the vxWorks extentions to the networks > layers have quite a few of these memory ownership problems > [speculation on my part]. BSD portions are pretty rock solid AFAIAC. Yep - those are typical.... With the source it should take about 10 seconds to fix them. Somehow WRS don't seem to manage it, even the next release will (probably) contain the same bug. ISTR that they need a 'test case' in order to get a bug fixed. The obvious presence of one in the source isn't enough :-) What usually happens is that you convince 'support' that there is a bug, so they convert the TSR into an SPR. That is then a big, big black hole which nothing seems to come out of, and you can't look into. Maybe if you have the time and effort (or a suitable manager to delegate it to) you can pester WRS twice a day until something happens. I would just write a patch, or completely re-engineer a routine... David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: problem creating new project Date: Fri, 1 Mar 2002 23:09:13 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C800A7E.3020302@spamm.me.l8s.co.uk> References: <3C7E5F02.2545B753@notifier-is.net> <3C7FC3F8.1000306@spamm.me.l8s.co.uk> <3C7FD6D1.FF14773C@notifier-is.net> > Yeah PCMCIA was the problem... I disabled it long enough to create a project and > it worked! Previously I had been copying other projects and modifying the WPJ > file enough to bootstrap me in whenever I wanted a new project... No, PCMCIA isn't the problem. The problem is in the project scripts! The i386 pcmcia option just makes the problem visible. David --------------------------- Newsgroups: comp.arch.storage,comp.periphs.scsi,comp.os.vxworks Subject: Re: source code for SCSI Fibre Channel implementation Date: 1 Mar 2002 16:50:39 -0800 From: jjf@bcs.org.uk (J. J. Farrell) Organization: http://groups.google.com/ Message-ID: <5c04bc56.0203011650.69636895@posting.google.com> References: <5c04bc56.0202272342.124108d6@posting.google.com> David A. Lethe wrote in message news:... > On 27 Feb 2002 23:42:18 -0800, jjf@bcs.org.uk (J. J. Farrell) wrote: > > >I'm looking for the source code of a C (or C++) implementation > >of the 'SCSI over Fibre Channel' stack - SCSI commands at the > >top and Fibre Channel Frames at the bottom. Does anyone know of > >an available implementation, free or commercial? > > Just go to http://www.redhat.com, and follow the links to download > their source code for LINUX. Thanks, David. Do you happen to know the names of the modules, to save me a bit of searching? I thought Linux only had support for the HBAs where most of the stack is implemented in firmware, and the software driver just implements an interface to the firmware. --------------------------- Newsgroups: comp.arch.storage,comp.periphs.scsi,comp.os.vxworks Subject: Re: source code for SCSI Fibre Channel implementation Date: 1 Mar 2002 17:04:18 -0800 From: jjf@bcs.org.uk (J. J. Farrell) Organization: http://groups.google.com/ Message-ID: <5c04bc56.0203011704.1561b9e1@posting.google.com> References: <5c04bc56.0202272342.124108d6@posting.google.com> kallolm_tech@yahoo.com (Kallol Mallick) wrote in message news:... > > On 27 Feb 2002 23:42:18 -0800, jjf@bcs.org.uk (J. J. Farrell) wrote: > > > > To help with development based on this stack, I'm also looking > > for a PCI card which allows host software access to all incoming > > Fibre Channel frames, and allows the software to transmit FC > > frames. Does anyone know of one? The cards I've looked at have > > various parts of the stack implemented on board, and don't > > provide any mechanisms to receive or send raw frames. > > You can try to use one of the standard fibre channel controllers > cards(QLogic /Tachyon/LSILogic). Most of them provide a mechanism to > download firmware. Instead of downloading the firmware, they supply, > write your own. The register interfaces gives you a fairly low level > access. Thanks Kallol - I was hoping to be able to use an off-the- shelf card and driver for this bit, but what you say may be the only option. > But why do you want re-invent the wheel, when standard implementation > is already availavle? It's a small part of a much bigger project requiring many features. As an analogy, what does someone who wants to enter the SCSI/FC HBA market do, other than acquire or develop a stack to run on his HBA? (Well, these days he usually buys or develops a hardware implementation, but that's another story ...) --------------------------- Newsgroups: comp.os.vxworks Subject: need help: about windNet PPP ? Date: 1 Mar 2002 17:15:56 -0800 From: sardine_sz@163.net (sardine) Organization: http://groups.google.com/ Message-ID: hi everyone gurus, is there anyone have experience about windNet PPP, Now i using windNet PPP1.2,but windRiver not provide any information about dynamic alloc IP address to PPPOE Client from a IP POOL. but the source program provide a interface for it-----"RAS-AMM"; so i set pfwParameter "ipcp_ipAddr" as "RAS-AMM:#poolId", after i finished it. the PPP local authenicate can return a ip address to PPPOE Client,but the DNS ip Address become "255.255.255.255", and if i set ppp authenicate as "REMOTE RADIUS" mode,the pppoe client also get ip address "255.255.255.255",the DNS ip Address is "255.255.255.255", i have send the infomation to windRiver got support,but they cannot replay to me. anyone have the experience or can provide any advice,i will appricate them ! --------------------------- Newsgroups: comp.os.vxworks Subject: sendto() failing in Class A network Date: Fri, 01 Mar 2002 21:31:29 -0500 From: Rakesh Chandwani Organization: Lucent Technologies Message-ID: <3C803981.D380CC66@lucent.com> Hi ! I am running UDP broadcast application in a Class A network. The same applictaion worked well with Class C addresses but here, sendto() function fails with EHOSTUNREACH errno. Routing tables are all fine. Has anyone seen such a problem ? address is :10.2.2.4 ( broadcast address 10.255.255.255) Rakesh --------------------------- Newsgroups: comp.arch.storage,comp.periphs.scsi,comp.os.vxworks Subject: Re: source code for SCSI Fibre Channel implementation Date: Sat, 02 Mar 2002 02:35:38 GMT From: David A. Lethe Message-ID: References: <5c04bc56.0202272342.124108d6@posting.google.com> <5c04bc56.0203011650.69636895@posting.google.com> On 1 Mar 2002 16:50:39 -0800, jjf@bcs.org.uk (J. J. Farrell) wrote: >David A. Lethe wrote in message news:... >> On 27 Feb 2002 23:42:18 -0800, jjf@bcs.org.uk (J. J. Farrell) wrote: >> >> >I'm looking for the source code of a C (or C++) implementation >> >of the 'SCSI over Fibre Channel' stack - SCSI commands at the >> >top and Fibre Channel Frames at the bottom. Does anyone know of >> >an available implementation, free or commercial? >> >> Just go to http://www.redhat.com, and follow the links to download >> their source code for LINUX. > >Thanks, David. Do you happen to know the names of the modules, to >save me a bit of searching? I thought Linux only had support for >the HBAs where most of the stack is implemented in firmware, and >the software driver just implements an interface to the firmware. Sorry ... I don't know the module names. Maybe it might be easier for you to go to a computer store and just purchase the RH 7.2 or better release, if you don't have the bandwidth to download. You should be able to pick it up for around 50 quid or so. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: [question]Memory access in mpc750.. Date: 1 Mar 2002 19:10:45 -0800 From: emycall@dreamx.net (Ahn Jung Hoon) Organization: http://groups.google.com/ Message-ID: <2b0ae335.0203011910.54953fac@posting.google.com> References: <2b0ae335.0202280148.3d1be3ab@posting.google.com> Thank You very much for your answer.. oh. But I am beginner, so I can't understand your answer.. Even if where you say is here, I can't understand what code means.. Very sorry.. If you give me some sample code, I am very happy. - ------------------------------------------------------------------------------ PHYS_MEM_DESC sysPhysMemDesc [] = { { /* Vector Table and Interrupt Stack */ (void *) LOCAL_MEM_LOCAL_ADRS, (void *) LOCAL_MEM_LOCAL_ADRS, RAM_LOW_ADRS, VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE | VM_STATE_MASK_CACHEABLE | VM_STATE_MASK_MEM_COHERENCY, VM_STATE_VALID | VM_STATE_WRITABLE | VM_STATE_CACHEABLE | VM_STATE_MEM_COHERENCY }, { /* Local DRAM - Must be second entry in sysPhysMemDesc for Auto Sizing */ (void *) RAM_LOW_ADRS, (void *) RAM_LOW_ADRS, LOCAL_MEM_SIZE - RAM_LOW_ADRS, VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE | VM_STATE_MASK_CACHEABLE | VM_STATE_MASK_MEM_COHERENCY, VM_STATE_VALID | VM_STATE_WRITABLE | VM_STATE_CACHEABLE | VM_STATE_MEM_COHERENCY }, { (void *) CPU_PCI_ISA_IO_ADRS, (void *) CPU_PCI_ISA_IO_ADRS, CPU_PCI_ISA_IO_SIZE, VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE | VM_STATE_MASK_CACHEABLE | VM_STATE_MASK_GUARDED, VM_STATE_VALID | VM_STATE_WRITABLE | VM_STATE_CACHEABLE_NOT | VM_STATE_GUARDED }, { (void *) CPU_PCI_IO_ADRS, (void *) CPU_PCI_IO_ADRS, CPU_PCI_IO_SIZE, VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE | VM_STATE_MASK_CACHEABLE | VM_STATE_MASK_GUARDED, VM_STATE_VALID | VM_STATE_WRITABLE | VM_STATE_CACHEABLE_NOT | VM_STATE_GUARDED }, #ifndef INCLUDE_MPIC { (void *) CPU_PCI_IACK_ADRS, (void *) CPU_PCI_IACK_ADRS, CPU_PCI_IACK_SIZE, VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE | VM_STATE_MASK_CACHEABLE | VM_STATE_MASK_GUARDED, VM_STATE_VALID | VM_STATE_WRITABLE | VM_STATE_CACHEABLE_NOT | VM_STATE_GUARDED }, #endif /* INCLUDE_MPIC */ { (void *) CPU_PCI_MEM_ADRS, (void *) CPU_PCI_MEM_ADRS, CPU_PCI_MEM_SIZE, VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE | VM_STATE_MASK_CACHEABLE | VM_STATE_MASK_GUARDED, VM_STATE_VALID | VM_STATE_WRITABLE | VM_STATE_CACHEABLE_NOT | VM_STATE_GUARDED }, { (void *) CPU_PCI_ISA_MEM_ADRS, (void *) CPU_PCI_ISA_MEM_ADRS, CPU_PCI_ISA_MEM_SIZE, VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE | VM_STATE_MASK_CACHEABLE | VM_STATE_MASK_GUARDED, VM_STATE_VALID | VM_STATE_WRITABLE | VM_STATE_CACHEABLE_NOT | VM_STATE_GUARDED }, { /* MPIC Regs */ (void *) MPIC_BASE_ADRS, (void *) MPIC_BASE_ADRS, MPIC_REG_SIZE, VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE | VM_STATE_MASK_CACHEABLE | VM_STATE_MASK_GUARDED, VM_STATE_VALID | VM_STATE_WRITABLE | VM_STATE_CACHEABLE_NOT | VM_STATE_GUARDED }, { (void *) FALCON_BASE_ADRS, (void *) FALCON_BASE_ADRS, FALCON_REG_SIZE, VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE | VM_STATE_MASK_CACHEABLE | VM_STATE_MASK_GUARDED, VM_STATE_VALID | VM_STATE_WRITABLE | VM_STATE_CACHEABLE_NOT | VM_STATE_GUARDED }, { (void *) RAVEN_BASE_ADRS, (void *) RAVEN_BASE_ADRS, RAVEN_REG_SIZE, VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE | VM_STATE_MASK_CACHEABLE | VM_STATE_MASK_GUARDED, VM_STATE_VALID | VM_STATE_WRITABLE | VM_STATE_CACHEABLE_NOT | VM_STATE_GUARDED }, { (void *) FLASH_BASE_ADRS, (void *) FLASH_BASE_ADRS, FLASH_MEM_SIZE, VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE | VM_STATE_MASK_CACHEABLE, VM_STATE_VALID | VM_STATE_WRITABLE | VM_STATE_CACHEABLE_NOT } }; vloscomp@yahoo.com (Vinh) wrote in message news:... > Hi, > Check you 'sysLib.c' file; you should have an entry in the sysPhysMemDesc > that describeb your PCI window. > > Vinh Lam > > emycall@dreamx.net (Ahn Jung Hoon) wrote in message news:<2b0ae335.0202280148.3d1be3ab@posting.google.com>... > > Hi, all.. > > > > I can access PCI memory to 16Mb, 64Mb and 128Mb size in MPC750 board. > > > > /* 16MB : 0x02000000, > > 64MB : 0x08000000, > > 128MB : 0x10000000, > > 256MB : 0x20000000, > > 512MB : 0x40000000 > > */ > > #define CPU_PCI_MEM_SIZE 0x20000000 > > > > I can read 256Mb size, but I can not access PCI memory more than 256Mb size.. > > > > I don't know that what is problem.. > > > > please, help me.. > > > > -=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=- > > > > 1.. > > -> pciHeaderShow(2, 0, 0) > > vendor ID = 0x11b0 > > device ID = 0x0200 > > command register = 0x0002 > > status register = 0x0280 > > revision ID = 0x00 > > class code = 0x05 > > sub class code = 0x00 > > programming interface = 0x00 > > cache line = 0x00 > > latency time = 0xf8 > > header type = 0x00 > > BIST = 0x00 > > base address 0 = 0x10000000 > > base address 1 = 0x00000000 > > base address 2 = 0x00000000 > > base address 3 = 0x00000000 > > base address 4 = 0x00000000 > > base address 5 = 0x00000000 > > cardBus CIS pointer = 0x00000000 > > sub system vendor ID = 0x4754 > > sub system ID = 0x0005 > > expansion ROM base address = 0x00000000 > > interrupt line = 0xff > > interrupt pin = 0x00 > > min Grant = 0x00 > > max Latency = 0x00 > > value = 0 = 0x0 > > -> > > > > 2.. > > -> d 0x10000000 > > 10000000: > > data access > > Exception current instruction address: 0x0015c070 > > Machine Status Register: 0x0000b030 > > Data Access Register: 0x10000000 > > Condition Register: 0x48200080 > > Data storage interrupt Register: 0x40000000 > > > > 1812e0 vxTaskEntry +60 : shell () > > 177118 shell +18c: 177144 () > > 177368 shell +3dc: execute () > > 1774ec execute +d8 : yyparse () > > 1a96ec yyparse +7a8: 1a7634 () > > 1a77ac yystart +8f8: d () > > shell restarted. > > > > -> --------------------------- Newsgroups: comp.os.vxworks Subject: Re: muxLoad Failed while picking up the VxWorks image from host Date: 2 Mar 2002 01:12:12 -0800 From: ajay_garg@delhi.tcs.co.in (Ajay Garg) Organization: http://groups.google.com/ Message-ID: References: <3C7FE50A.C1A46C9C@notifier-is.net> Hi, my PC is containing 3com905 card. Hence in the default boot line i am specifying "elPci". My VxWorks version is 5.4 and BSP is pcPentium. What i believe is that my boot image(which is in floppy drive) is booting fine but the VxWorks image stored in HOST is not able to communicate properly with it. Can you tell me what all to be included from project facility when I am making a bootable image for the same card. As of now I have included ELT card driver. Regards, Ajay Garg david lindauer wrote in message news:<3C7FE50A.C1A46C9C@notifier-is.net>... > does your configuration string have the correct card name? Seems like > you get errors like this if you specify a network boot device that > doesn't exist... > > David > > Ajay Garg wrote: > > > Hi, > > I am using 3COM card to communicate across network. I am getting a > > message "muxLoad failed" after getting the prompt on target. But if I > > am using a fei card, I am getting everything fine. I am making the > > necessary changes in config file for my BSP which is pentium. > > Your help is needed to solve this problem. > > > > Regards, > > Ajay Garg. --------------------------- Newsgroups: comp.os.vxworks Subject: how to invoke a task number of times based on radom number Date: 2 Mar 2002 03:16:32 -0800 From: pradeeppatel77@yahoo.com (pradeep) Organization: http://groups.google.com/ Message-ID: <54575a52.0203020316.385236f0@posting.google.com> Hi all, I am trying to create atask which will simulate ethernet ,(task is actually creating ethernet packets), problem is that i am not able to invoke it asynchronously. what i want is to invoke the task based on random number or if other solution regards pradeep --------------------------- End of New-News digest ********************** From vxwexplo-errs@csg.lbl.gov Sun Mar 3 04:03:09 2002 From: Vxworks Exploder Date: Sun Mar 3 04:03:12 PST 2002 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Sun Mar 3 04:03:06 PST 2002 Subject: Re: Problem in accessing PCI I/O Registers in IBM ppc 405GP Subject: sendto() failing in Class A network with ClassC mask Subject: Re: intLock() and "system routines" vs. "kernel services" Subject: Is it possible to change the priortiy of windsh Subject: AE Compile Times? Subject: Re: Is it possible to change the priortiy of windsh Subject: Gigabit Ethernet performance poll Subject: Re: source code for SCSI Fibre Channel implementation Subject: Re: How to make assert break into debugger with hardcoded breakpoint Subject: Re: source code for SCSI Fibre Channel implementation ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Re: Problem in accessing PCI I/O Registers in IBM ppc 405GP Date: 2 Mar 2002 06:54:00 -0800 From: arun4vxworks@indiatimes.com (Arun Prasad) Organization: http://groups.google.com/ Message-ID: References: <3C7F9C21.48433D2B@varndellengineering.com> <3C7FC51C.F75E564D@notifier-is.net> Hi, I removed the call to our pci device configuration routine (AdptPciDevConfig()). I just used the I/O BAR (BAR2) provided by VxWorks adding with 0xe8000000 and now I'm able to access the I/O Registers of my card. George Varndell was pretty much correct that our pci configuration is incomplete. Now, my concern is now accessing 64 bit BARs. I'm working on to access memory mapped I/O. I'm trying to find out the constant which I need to add to my memory mapped BARs, if at all, to access them ( like I added 0xe800000 in the case of I/O mapped I/O region). As per the manual these regions are fully programmable. It seems I don't need to add any constants for accessing Memory mapped I/O region. If my understanding is wrong, please do let me know. Regards Arun david lindauer wrote in message news:<3C7FC51C.F75E564D@notifier-is.net>... > Arun Prasad wrote: > > > Hi, > > > > Our card requires 2 64 bit BARs (BAR0 and BAR3. Actually BAR0&BAR1 > > combination and BAR3 & BAR4 combination forms these 64 bit BAR > > registers) and one I/O BAR register (BAR2). > > > > Since we felt our card's BAR registers haven't been properly > > initiatlized from the output of pciHeaderShow(), we have gone for > > configuring it on our own. > > > > Do you mean to say, we can make use of the BARs whichever provided by > > our BSP/VxWorks directly without configuring it, in our case? > > > > if it is truly initialized via the BSP it might be smarter to leave it be because there may be other related > configuration (for example enabling the part of the memory map indicated by the BARS) or you might cause a clash with > some memory or other device on the board. But it really depends on the card & whether the person who wrote the BSP had > the same idea of how to use it as you do. > > David > > > > > Regards > > Arun > > > > George Varndell wrote in message news:<3C7F9C21.48433D2B@varndellengineering.com>... > > > Arun Prasad wrote: > > > > > > > > Hi All, > > > > > > > > I'm facing a problem in accessing my card's (PCI based ethernet card) > > > > registers. > > > > If anyone of you could help me to fix this, it would be of great > > > > help. > > > > > > > > > > [snip,snip,snip] > > > > > > Did it occur to you that Linux might setup the bridge registers > > > differently than your vxWorks BSP does? > > > In your second dump of the PCI registers, after unnecessarily > > > changing the original BSP code, the device is not enabled in the > > > command register. Not that it would matter much since you've forced > > > the BARs to contain values which likely bear no relationship to the > > > bridge configuration. Forget what Linux does (unless you look at the > > > entire PCI configuration picture) and go back to step one. The answer > > > to your problem has to be simpler than you've made it appear. > > > You should thoroughly read part IV, chapter 17 of the 405gp manual. > > > > > > Regards, > > > George Varndell --------------------------- Newsgroups: comp.os.vxworks Subject: sendto() failing in Class A network with ClassC mask Date: Sat, 02 Mar 2002 10:33:23 -0500 From: Rakesh Chandwani Organization: Lucent Technologies Message-ID: <3C80F0C3.7B4101A1@lucent.com> Hi ! I am running UDP broadcast application in a Class A network with class C masks. The same applictaion worked well with Class C addresses ( Class C mask) but here, sendto() function fails with EHOSTUNREACH errno. Routing tables are all fine. Has anyone seen such a problem ? address is :10.2.2.4 ( Subnetmask is 0xffffff00) Rakesh --------------------------- Newsgroups: comp.os.vxworks Subject: Re: intLock() and "system routines" vs. "kernel services" Date: 2 Mar 2002 08:55:05 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203020855.7bc7815c@posting.google.com> References: Hello, > Is there a list of kernel functions that says which will honor the locking > level that was present on entry, and which will undo what ever interrupt > locking you may have had in place? I don't know of any routines that will unlock interrupts regardless of the setting present on entry, all the places I've seen use the key returned by intLock() in the call to intUnlock(). The only places in the code that make changes directly to the lock level are in the scheduling code, and those changes should not be reflected in any task context (e.g. entering the idle loop will re-enable interrupts, at least until a task becomes ready). Now, your original concern was an ISR calling semGive()... that's an even safer case since the call doesn't happen when you make it; it will be added to the kernel's work queue and processed after your ISR exits. So in that case it is very easy to guarantee that your interrupts will remain locked between the call to semGive() and the call to intUnlock(). HTH, John... --------------------------- Newsgroups: comp.os.vxworks Subject: Is it possible to change the priortiy of windsh Date: Sat, 02 Mar 2002 20:56:07 GMT From: "Matt Schuckmann" Message-ID: Does anybody know if there is a way to change the priorty at which functions and commands run from windsh run at? The problem I'm having is that I've got a significant part of my code loaded and running and I'm dynamically loading and unloading another part of the code to make it easier and quicker to debug it. When I use the ld() command to dynamicaly load and unload the module I'm debugging the loader runs in the windsh task and that task appears to run at such a high priority that it prevents my hard real time task from running for long enough that I end up having to reset my hardware after loading or unloading my test module. Any help or suggestions would be most appriciated. Matt Schuckmann matthew_schuckmann@amat.com --------------------------- Newsgroups: comp.os.vxworks Subject: AE Compile Times? Date: Sat, 02 Mar 2002 22:22:42 GMT From: Tim Sohacki Organization: Road Runner - NC Message-ID: <3C815200.5835E20B@nc.rr.com> Does anyone have anything to say about VxWorks AE compile times versus 5.4 compile times? There seems to be some AE overhead, but I'm wondering if it is fixed overhead or if every file takes much longer than 5.4. Any comments? Thanks, Tim. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Is it possible to change the priortiy of windsh Date: Sat, 02 Mar 2002 22:17:20 GMT From: Tim Sohacki Organization: Road Runner - NC Message-ID: <3C8150BF.7474FDAD@nc.rr.com> References: Matt, > Does anybody know if there is a way to change the priorty at which functions > and commands run from windsh run at? Yes, it is possible to change the priority of the target based shell, i.e., tShell task. Let's see ... do a lkup "shell" ... there's a global variable for the priority ... There's also an API for setting the priority programmatically. You might see it with a lkup shell command, or in the reference guide, under the shell, perhaps? Cheers, Tim. --------------------------- Newsgroups: comp.os.vxworks Subject: Gigabit Ethernet performance poll Date: Sat, 2 Mar 2002 16:13:43 -0800 From: "Jerry Marcinko" Organization: Newshosting.com - Highest quality at a great price! www.newshosting.com Message-ID: <3c816b0c$1@MAIL.mhogaming.com> I am a developer of Gigabit Ethernet products with support for VxWorks. I am looking to find out what other performance benchmarks users are getting for GigE over VxWorks Network Stack TCP/IP using Sockets and/or Zero-copy sockets running blaster/blastee or some other simple benchmark. Here are our numbers: Raw driver throughput: 32/33 PCI: 85 Megabytes/sec sustained (20-30 percent CPU utilization) 64/66 PCI: 242 Megabytes/sec sustained (low to medium CPU utilization) Zero-copy sockets (TCP), Blaster/blastee, single TCP connection: 32/33 PCI: 58 Megabytes/sec sustained (95% CPU utilization) Has anyone been able to get higher than 58 Megabytes/sec using TCP sockets on the VxWorks 5.4 Network stack? What platform/processor/speed? What is your TCP window size? Any other advanced features being used? Thanks in advance. Jerry --------------------------- Newsgroups: comp.arch.storage,comp.periphs.scsi,comp.os.vxworks Subject: Re: source code for SCSI Fibre Channel implementation Date: Sun, 03 Mar 2002 00:18:35 GMT From: David A. Lethe Message-ID: References: <5c04bc56.0202272342.124108d6@posting.google.com> <5c04bc56.0203011650.69636895@posting.google.com> On 2 Mar 2002 16:41:13 -0500, tls@panix.com (Thor Lancelot Simon) wrote: >In article , >David A. Lethe wrote: >>On 1 Mar 2002 16:50:39 -0800, jjf@bcs.org.uk (J. J. Farrell) wrote: >> >>>David A. Lethe wrote in message news:... >>>> On 27 Feb 2002 23:42:18 -0800, jjf@bcs.org.uk (J. J. Farrell) wrote: >>>> >>>> >I'm looking for the source code of a C (or C++) implementation >>>> >of the 'SCSI over Fibre Channel' stack - SCSI commands at the >>>> >top and Fibre Channel Frames at the bottom. Does anyone know of >>>> >an available implementation, free or commercial? >>>> >>>> Just go to http://www.redhat.com, and follow the links to download >>>> their source code for LINUX. >>> >>>Thanks, David. Do you happen to know the names of the modules, to >>>save me a bit of searching? I thought Linux only had support for >>>the HBAs where most of the stack is implemented in firmware, and >>>the software driver just implements an interface to the firmware. >>Sorry ... I don't know the module names. Maybe it might be easier for > >As far as I can tell, you don't know the module names because no such >modules exist. Did you actually try to understand J.J.'s question >before answering it? I don't know the module names because it is neither my responsibility or desire to do this person's homework. He/whe asked if there was iSCSI driver sample sourcecode available, and I told them where some was. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: How to make assert break into debugger with hardcoded breakpoint Date: Sun, 3 Mar 2002 08:37:11 +0200 From: "Leonid Rosenboim" Organization: Verio Message-ID: References: <3C7EFCCC.A5A03741@bitworkssystemsDELETETHIS.com> <3c7fd659$1@brateggebdc5.br-automation.co.at> <3C7FEEBC.60696022@bitworkssystemsDELETETHIS.com> Jon, all the above suggestion are still vali, but you need to attach the debugger to System Mode beofre the assertion fails, and then any kind of breakpoint will stop he entire system. "Jon Newbill" wrote in message news:3C7FEEBC.60696022@bitworkssystemsDELETETHIS.com... > This sounds good except I want all tasks to stop execution not just the one > that had the assert. I thought I had INT3 working too with the 1st BSP I got > from VMIC but that had significant other problems (GP faults). > > Jon Newbill > > > Werner Schiendl wrote: > > > Hi, > > > > I think I remember to have plain Int 3 working, but not sure. > > > > But you can use taskSuspend() instead. > > You can then attach the debugger to the suspended task and see what went > > wrong. > > > > This works for task level stuff, interrupts are something completely > > different of course. > > > > To get informed when you trigger an assertion, you should output some > > descriptive message with logMsg(). > > > > hth > > Werner > > > > "Jon Newbill" wrote in message > > news:3C7EFCCC.A5A03741@bitworkssystemsDELETETHIS.com... > > > Ok here's another VxWorks Newbi question or is that a Newbill > > > question. On every other embedded system debugger I've used I would > > > always create an assert() macro that would execute a hard coded > > > breakpoint instruction to cause a trap into the debugger when an assert > > > occurs. This is quite useful since your in sitting right there in > > > context and can use the full power of the debugger to figure out how you > > > got the assert or in some cases correct the problem and continue on > > > debugging. On Intel platforms INT3 is the usual breakpoint > > > instruction and on 68K systems it was a TRAP 0. > > > > > > Now I'm using Intel on VxWorks 5.4.2 with GNU tools and executing an INT > > > 3 seems to send the target into never never land. Does anyone know a > > > method to programatically break into the debugger? > > > > > > Jon Newbill > > > JonUN@bitworkssystemsREMOVTHIS.com > > > > > > > > > > --------------------------- Newsgroups: comp.arch.storage,comp.periphs.scsi,comp.os.vxworks Subject: Re: source code for SCSI Fibre Channel implementation Date: Sun, 03 Mar 2002 10:49:25 GMT From: "J. J. Farrell" Organization: EarthLink Inc. -- http://www.EarthLink.net Message-ID: References: <5c04bc56.0202272342.124108d6@posting.google.com> <5c04bc56.0203011650.69636895@posting.google.com> "David A. Lethe" wrote in message news:gqq28uks1ptojqkhhmpl5806kjimdh9mlt@4ax.com... > On 2 Mar 2002 16:41:13 -0500, tls@panix.com (Thor Lancelot Simon) > wrote: > > >In article , > >David A. Lethe wrote: > >>On 1 Mar 2002 16:50:39 -0800, jjf@bcs.org.uk (J. J. Farrell) wrote: > >> > >>>David A. Lethe wrote in message news:... > >>>> On 27 Feb 2002 23:42:18 -0800, jjf@bcs.org.uk (J. J. Farrell) wrote: > >>>> > >>>> >I'm looking for the source code of a C (or C++) implementation > >>>> >of the 'SCSI over Fibre Channel' stack - SCSI commands at the > >>>> >top and Fibre Channel Frames at the bottom. Does anyone know of > >>>> >an available implementation, free or commercial? > >>>> > >>>> Just go to http://www.redhat.com, and follow the links to download > >>>> their source code for LINUX. > >>> > >>>Thanks, David. Do you happen to know the names of the modules, to > >>>save me a bit of searching? I thought Linux only had support for > >>>the HBAs where most of the stack is implemented in firmware, and > >>>the software driver just implements an interface to the firmware. > >>Sorry ... I don't know the module names. Maybe it might be easier for > > > >As far as I can tell, you don't know the module names because no such > >modules exist. Did you actually try to understand J.J.'s question > >before answering it? > > I don't know the module names because it is neither my responsibility > or desire to do this person's homework. He/whe asked if there was > iSCSI driver sample sourcecode available, and I told them where some > was. I didn't ask anything about iSCSI - I've no interest in it at the moment. I'd already had a quick scan through the kernel trees of Linux and various other free UNIX-alikes before posting my question, and searched through several of their related mailing lists, without seeing any sign of what I asked about. Since you knew it was there, it didn't seem unreasonable to ask for a more specific pointer. I'm sorry you felt that I was asking you to do my homework - that wasn't my intention. --------------------------- End of New-News digest ********************** From vxwexplo-errs@csg.lbl.gov Sun Mar 3 22:35:55 2002 From: "Vinai" Date: Sun Mar 3 22:35:57 PST 2002 Subject: goahead web server This is a multi-part message in MIME format. ------=_NextPartTM-000-8aa9698d-2f35-11d6-a942-00b0d0d06be8 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit hey,i just need a small help.. have u worked on goahead web server??or any of u r friends.. just get a small piece of info for me. i downloded the source for go ahead webserver..and while building it for vxWorks ..it says emf.h and emfinternal.h are un resolved symbols.i m unable to build further. kindly get some info abt this.all i know is EMF means embedded system Management frames.searched for the symbol in web,coudnt get any info. kindly let me know reg this as early as possible.......... thanks in advance balaji ------=_NextPartTM-000-8aa9698d-2f35-11d6-a942-00b0d0d06be8 Content-Type: text/plain; name="Wipro_Disclaimer.txt" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="Wipro_Disclaimer.txt" **************************Disclaimer************************************ Information contained in this E-MAIL being proprietary to Wipro Limited is 'privileged' and 'confidential' and intended for use only by the individual or entity to which it is addressed. You are notified that any use, copying or dissemination of the information contained in the E-MAIL in any manner whatsoever is strictly prohibited. ******************************************************************** ------=_NextPartTM-000-8aa9698d-2f35-11d6-a942-00b0d0d06be8-- From vxwexplo-errs@csg.lbl.gov Mon Mar 4 02:13:15 2002 From: "Vinod Chari" Date: Mon Mar 4 02:13:18 PST 2002 Subject: Problem with Tornado 1.01 Debugger. Hello, I want to debug a bootable application using gdb of Tornado 1.01. I am new to Tornado 1.01 and used Torando 2.0 environment. The T101 debugger seems very much different. Problem I am facing is that when I set a breakpoint, the debugger doesn't stop and moves ahead. I am attaching the debugger to an already running task. On required events, the debugger doesn't stop at the breakpoint. Can any user of T101 guide me? Thanks and Regards, Vinod. From vxwexplo-errs@csg.lbl.gov Mon Mar 4 03:04:38 2002 From: =?ks_c_5601-1987?B?w9/BpMjG?= Date: Mon Mar 4 03:04:41 PST 2002 Subject: initialize multiple ethernet interface after boot vxworks? hello, all vxworks guys, now, I want initialize one more ethernet interface(IP:192.168.2.249) after boot vxworks. So, I made following function. but the result is not successful. =================================================================== void sttEnetInit () { ??? char????????? devName[] = MOT_FCC_DEV_NAME; ??? END_TBL_ENTRY endEntry? = { 1, sttEndLoad, "", 1, NULL, FALSE}; ??? END_TBL_ENTRY *pDevTbl? = &endEntry; ??? BOOL????????? attached? = FALSE; /* driver is attached */ ??? END_OBJ?????? *pEnd; ??? unsigned int? unitNum?? = 1; ??? char????????? ipAddr[] = "192.168.2.249"; ??? unsigned int? netmask ; ??? muxDevLoad (pDevTbl->unit,????????? pDevTbl->endLoadFunc, ??????????????? pDevTbl->endLoadString, pDevTbl->endLoan, pDevTbl->pBSP); ??? /* Try an END device first */ ??? pEnd = endFindByName (devName, unitNum); ??? if (!attached && (pEnd != NULL)) ??? { ??????? if (muxDevStart (pEnd) != OK) ??????? { ??????????? printf("Failed to start device=%s\n", devName); ??????????? return(ERROR); ??????? } ??????? if (muxIoctl(pEnd, EIOCGMIB2, (char *)&sttendM2Tbl) ??????????? == ERROR) ??????????? return(ERROR); ??????? if (ipAttach (unitNum, devName) != OK) ??????? { ??????????? printf ("Failed to attach TCP/IP to device\n "); ??????????? return (ERROR); ??????? } ??????? netmask = 0; ??????? bootNetmaskExtract (ipAddr, &netmask); ??????? printf ("Attached TCP/IP interface to %s%d.\n", devName,unitNum); ??????? attached = TRUE; ??? } ??? /* configure the device */ ??? if (usrNetIfConfig (devName, unitNum, ipAddr, ??????????????????????? /*(char *) NULL*/"jhchoo", netmask) != OK) ??????? return (ERROR); } ======================================================================= * My console print following information ======================================================================= stt755_r> stt755_r>muxShow Device: sttfcc Unit: 0 Description: Motorola FCC Ethernet Enhanced Network Driver Protocol: IP 4.4 ARP??? Type: 2054????? Recv 0x4eaec??? Shutdown 0x4edb0 Protocol: IP 4.4 TCP/IP Type: 2048????? Recv 0x4eaec??? Shutdown 0x4ece8 Device: sttfcc Unit: 1 Description: Motorola FCC Ethernet Enhanced Network Driver Protocol: IP 4.4 ARP??? Type: 2054????? Recv 0x4eaec??? Shutdown 0x4edb0 Protocol: IP 4.4 TCP/IP Type: 2048????? Recv 0x4eaec??? Shutdown 0x4ece8 value = 0 = 0x0 stt755_r> stt755_r>routeShow ROUTE NET TABLE destination????? gateway????????????? flags? Refcnt? Use?????????? Interface ---------------------------------------------------------------------------- 192.168.1.0????? 192.168.1.223??????? 101??? 0?????? 0???????????? sttfcc0 192.168.2.0????? 192.168.2.249??????? 101??? 0?????? 0???????????? sttfcc1 ---------------------------------------------------------------------------- ROUTE HOST TABLE destination????? gateway????????????? flags? Refcnt? Use?????????? Interface ---------------------------------------------------------------------------- 127.0.0.1??????? 127.0.0.1??????????? 5????? 1?????? 0???????????? lo0 ---------------------------------------------------------------------------- value = 77 = 0x4d = 'M' stt755_r> stt755_r> stt755_r>hostShow hostname???????? inet address?????? aliases --------???????? ------------?????? ------- stt755_r???????? 192.168.1.223 localhost??????? 127.0.0.1 tornado????????? 192.168.1.29 jhchoo?????????? 192.168.2.249 value = 0 = 0x0 stt755_r> stt755_r> stt755_r>ifShow sttfcc (unit number 0): ???? Flags: (0x8063) UP BROADCAST MULTICAST ARP RUNNING ???? Type: ETHERNET_CSMACD ???? Internet address: 192.168.1.223 ???? Broadcast address: 192.168.1.255 ???? Netmask 0xffffff00 Subnetmask 0xffffff00 ???? Ethernet address is 00:00:aa:00:00:df ???? Metric is 0 ???? Maximum Transfer Unit size is 1500 ???? 480 packets received; 271 packets sent ???? 177 multicast packets received ???? 2 multicast packets sent ???? 0 input errors; 0 output errors ???? 0 collisions; 0 dropped lo (unit number 0): ???? Flags: (0x8069) UP LOOPBACK MULTICAST ARP RUNNING ???? Type: SOFTWARE_LOOPBACK ???? Internet address: 127.0.0.1 ???? Netmask 0xff000000 Subnetmask 0xff000000 ???? Metric is 0 ???? Maximum Transfer Unit size is 32768 ???? 0 packets received; 0 packets sent ???? 0 multicast packets received ???? 0 multicast packets sent ???? 0 input errors; 0 output errors ???? 0 collisions; 0 dropped sttfcc (unit number 1): ???? Flags: (0x8063) UP BROADCAST MULTICAST ARP RUNNING ???? Type: ETHERNET_CSMACD ???? Internet address: 192.168.2.249 ???? Broadcast address: 192.168.2.255 ???? Netmask 0xffffff00 Subnetmask 0xffffff00 ???? Ethernet address is 00:00:aa:00:00:f9 ???? Metric is 0 ???? Maximum Transfer Unit size is 1500 ???? 0 packets received; 0 packets sent ???? 0 multicast packets received ???? 0 multicast packets sent ???? 0 input errors; 0 output errors ???? 0 collisions; 0 dropped value = 29 = 0x1d stt755_r> ====================================================================== Above [ifShow] is done after [ping "192.168.2.222"] is done. I think that above send packet count of "sttfcc1" must increase. right? many receive packet is stored in driver's buffer. But above receive packet count is 0. why? From vxwexplo-errs@csg.lbl.gov Mon Mar 4 04:03:13 2002 From: Vxworks Exploder Date: Mon Mar 4 04:03:15 PST 2002 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Mon Mar 4 04:03:10 PST 2002 Subject: How to find the interfaces in my target Subject: Re: source code for SCSI Fibre Channel implementation Subject: Re: Is it possible to change the priortiy of windsh Subject: Re: Ethernet problem on an mvme2700 - a new test Subject: Re: Gigabit Ethernet performance poll Subject: Rogue Wave tools.h++ Usage Subject: Re: Proc Numbers, booting and VME transfers Subject: where has some VxWorks example program? Subject: netTask limits high-frame-rate transfers in Gigabit Ethernet Subject: Re: source code for SCSI Fibre Channel implementation Subject: help Subject: newbie!! ---GO ahead web server---* No rule to make target `emf\emfInternal.h', needed by `asp.o' Subject: Tornado 2.0.2 With gcc 2.96 Subject: A question about Tornado Prototyper Subject: error msg: trcStack aborted: error in frame Subject: MPC860 SMC2 in VxWorks Subject: motorola mcc_HDLC demo code Subject: Doubt in SOCK_RAW usage...... ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: How to find the interfaces in my target Date: 3 Mar 2002 05:03:39 -0800 From: bryanramesh@yahoo.com (Bryan) Organization: http://groups.google.com/ Message-ID: Hi, I want to find the interfaces exist in my target when i initialise my module. I dont find any special call to do that. With the help of ifnet structure we can do it or what. But how to do it. Every target will have "l0" as loopback address interface name. If we give that and if we use the ifnet structure's next pointer means, is that possible to get all the interface names and their properties while initialising. Kindly help me in this regard. Thanks, Bryan --------------------------- Newsgroups: comp.arch.storage,comp.periphs.scsi,comp.os.vxworks Subject: Re: source code for SCSI Fibre Channel implementation Date: Sun, 03 Mar 2002 15:18:14 GMT From: David A. Lethe Message-ID: <5ff48ukmqj3u9r0d8fe0h6bfgmq8rqqu79@4ax.com> References: <5c04bc56.0202272342.124108d6@posting.google.com> <5c04bc56.0203011650.69636895@posting.google.com> On Sun, 03 Mar 2002 10:49:25 GMT, "J. J. Farrell" wrote: > >"David A. Lethe" wrote in message >news:gqq28uks1ptojqkhhmpl5806kjimdh9mlt@4ax.com... >> On 2 Mar 2002 16:41:13 -0500, tls@panix.com (Thor Lancelot Simon) >> wrote: >> >> >In article , >> >David A. Lethe wrote: >> >>On 1 Mar 2002 16:50:39 -0800, jjf@bcs.org.uk (J. J. Farrell) wrote: >> >> >> >>>David A. Lethe wrote in message >news:... >> >>>> On 27 Feb 2002 23:42:18 -0800, jjf@bcs.org.uk (J. J. Farrell) wrote: >> >>>> >> >>>> >I'm looking for the source code of a C (or C++) implementation >> >>>> >of the 'SCSI over Fibre Channel' stack - SCSI commands at the >> >>>> >top and Fibre Channel Frames at the bottom. Does anyone know of >> >>>> >an available implementation, free or commercial? >> >>>> >> >>>> Just go to http://www.redhat.com, and follow the links to download >> >>>> their source code for LINUX. >> >>> >> >>>Thanks, David. Do you happen to know the names of the modules, to >> >>>save me a bit of searching? I thought Linux only had support for >> >>>the HBAs where most of the stack is implemented in firmware, and >> >>>the software driver just implements an interface to the firmware. >> >>Sorry ... I don't know the module names. Maybe it might be easier for >> > >> >As far as I can tell, you don't know the module names because no such >> >modules exist. Did you actually try to understand J.J.'s question >> >before answering it? >> >> I don't know the module names because it is neither my responsibility >> or desire to do this person's homework. He/whe asked if there was >> iSCSI driver sample sourcecode available, and I told them where some >> was. > >I didn't ask anything about iSCSI - I've no interest in it at the >moment. I'd already had a quick scan through the kernel trees of >Linux and various other free UNIX-alikes before posting my question, >and searched through several of their related mailing lists, without >seeing any sign of what I asked about. Since you knew it was there, >it didn't seem unreasonable to ask for a more specific pointer. I'm >sorry you felt that I was asking you to do my homework - that wasn't >my intention. > > You're right. I responded w/o carefully reading the question. Since the HBA handles the FC transport, and the O/S generally handles the SCSI layer, then you need to contact the chip vendor. Qlogic has an SDK for their qla2x00 FC chip family. I'd start with that, but remember the interface is vendor-chip specific, so your code won't be portable w/o adding conditional compiles, and having a supported board list. David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Is it possible to change the priortiy of windsh Date: 3 Mar 2002 10:18:21 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203031018.62e25867@posting.google.com> References: Hello, The WindSh process itself runs on the host and makes use of the WDB agent task for some of its work, so you could lower the priority of tWdbTask. Of course, that is the agent that is used for debugging too, so placing it at a lower priority than your application tasks might make it difficult to debug them... You also need to think about the network task since the connection to the host is normally network based, it too will be involved in the loading process. The target based shell & loader might work for you, but you'll want the symbol synchronisation on if you plan to debug anything, and that will make use of tWdbTask too, so you might find that you're no better off there. HTH, John... "Matt Schuckmann" wrote in message news:... > Does anybody know if there is a way to change the priorty at which functions > and commands run from windsh run at? > > The problem I'm having is that I've got a significant part of my code loaded > and running and I'm dynamically loading and unloading another part of the > code to make it easier and quicker to debug it. When I use the ld() command > to dynamicaly load and unload the module I'm debugging the loader runs in > the windsh task and that task appears to run at such a high priority that it > prevents my hard real time task from running for long enough that I end up > having to reset my hardware after loading or unloading my test module. > > Any help or suggestions would be most appriciated. > > Matt Schuckmann > matthew_schuckmann@amat.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Ethernet problem on an mvme2700 - a new test Date: Sun, 3 Mar 2002 13:57:05 -0500 From: "William Dennen" Organization: Motorola Message-ID: References: <514a749c.0202280850.348a6474@posting.google.com> <3C7F8E23.4EF35E1A@jlab.org> The MAC/ethernet address is contained in the ethernet SROM as shown earlier in this Email. The SROM utility allows you to modify it, which is should be done with caution. For those curious, the MAC address shown, 08003Exxxxxx belongs to the exhausted bank of addresses assigned to MCG. The new bank begins 0010AF. To the point of the EOL fo the 21140, MCG has been able to obtain sufficient parts to continue its use for the forseeable future. Regards Bill Dennen william.dennen@motorola.com | We have met the enemy Motorola Computer Group http://www.mcg.mot.com | and they is us ... - --GTAC: Global Technical Assistance Center | Pogo "David Abbott" wrote in message news:3C7F8E23.4EF35E1A@jlab.org... > jbperkins@yahoo.com wrote: > > > > I must admit, I did not know that the MAC address can be changed. How do > > you set the MAC address? > > -Jim > > > > "Hwa-Jin Bae" wrote in message > > news:u7tb5ulhm8jg20@corp.supernews.com... > > > I have seen this kind of situation when the ethernet MAC address is set to > > > something bad (like all 1's). It might help to print out the MAC address > > of > > > the "problem" board. If it looks suspicious, set it to something that > > > makes sense (3 vendor octets followed by 3 unique octets of choice). > > > > > > If that is not the problem, you should get something like ethereal > > > (www.ethereal.com) and sniff the ethernet to see what is going on. > > > > > > My guess is that the vxworks side running on "problem" board never gets > > any > > > TCP ack's from windows machine, because your vxworks side "problem" board > > > has bad ethernet mac address. > > > > > > > > > > > > > > Motorola has a PPC-Bug utility called SROM that allows one to > Read/Modify > the Serial ROM on the 21x4x Ethernet chips. This is where the MAC > address is > stored for your board. > > Example: > > PPC4-Bug>SROM > > Device Address =$00007000 (N/Y)? y > Reading SROM into Local Buffer..... > $00 (&000) 0000? > $02 (&002) 0000? > $04 (&004) 0000? > $06 (&006) 0000? > $08 (&008) 0000? > $0A (&010) 0000? > $0C (&012) 0000? > $0E (&014) 0000? > $10 (&016) AF00? > $12 (&018) 0301? > $14 (&020) 0800? <- This is > $16 (&022) 3E2A? <- the ethernet address > $18 (&024) 4948? <- for the board. (6 bytes) > $1A (&026) 0E1E? > $1C (&028) 0000?. > PPC4-Bug> > > > One thing that might be an issue with your ethernet problem. Check to > see > what type chip is on your NEW 2700 vs the old one. The old MV2700 boards > used > the DEC 21140 chip which as far as I know is discontinued. Intel now > provides > the successor i21143 chip. There are some differences, and depending on > the > ethernet driver code you built into your boot rom and kernel for the old > MV2700. > I suppose it is possible that using it in the new board could initialize > the interface > in some perverse way. If the chips are both DEC 21140 then this would be > moot. > > Regards, > David > > > --------------------------------------------------------- > David Abbott Jefferson Lab > Data Acquisition Group MS 12H > EMAIL: abbottd@jlab.org 12000 Jefferson Ave. > Tel: (757) 269-7190 Newport News, VA 23606 > FAX: (757) 269-5800 > --------------------------------------------------------- --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Gigabit Ethernet performance poll Date: Sun, 3 Mar 2002 11:52:31 -0800 From: "Jerry Marcinko" Organization: Newshosting.com - Highest quality at a great price! www.newshosting.com Message-ID: <3c827f53$1@MAIL.mhogaming.com> References: <3c816b0c$1@MAIL.mhogaming.com> I have updated the statistics as shown below to include the Processor Model and Speed. I am a developer of Gigabit Ethernet products with support for VxWorks. I am looking to find out what other performance benchmarks users are getting for GigE over VxWorks Network Stack TCP/IP using Sockets and/or Zero-copy sockets running blaster/blastee or some other simple benchmarkHere are our latest throughput statistics: Platform: 450 MHZ PPC750 G3, VxWorks 5.4 Raw driver throughput: 32/33 PCI: 85 Megabytes/sec sustained (20-30 percent CPU utilization) 64/66 PCI: 242 Megabytes/sec sustained (low to medium CPU utilization) Zero-copy sockets (TCP), Blaster/blastee, single TCP connection: 32/33 PCI: 67.2 Megabytes/sec sustained (95% CPU utilization) Has anyone been able to get higher than 67 Megabytes/sec using TCP sockets on the VxWorks 5.4 Network stack? What platform/processor/speed? What is your TCP window size? Any other advanced features being used? Thanks in advance. Jerry Marcinko DSS NETWORKS, INC. www.dssnetworks.com "Jerry Marcinko" wrote in message news:3c816b0c$1@MAIL.mhogaming.com... > I am a developer of Gigabit Ethernet products with support for VxWorks. I am > looking to find out what other performance benchmarks users are getting for > GigE over VxWorks Network Stack TCP/IP using Sockets and/or Zero-copy > sockets running blaster/blastee or some other simple benchmark. > > Here are our numbers: > > Raw driver throughput: > 32/33 PCI: 85 Megabytes/sec sustained (20-30 percent CPU utilization) > > 64/66 PCI: 242 Megabytes/sec sustained (low to medium CPU utilization) > > Zero-copy sockets (TCP), Blaster/blastee, single TCP connection: > 32/33 PCI: 58 Megabytes/sec sustained (95% CPU utilization) > > Has anyone been able to get higher than 58 Megabytes/sec using TCP sockets > on the VxWorks 5.4 Network stack? What platform/processor/speed? What is > your TCP window size? Any other advanced features being used? > > Thanks in advance. > > Jerry > > --------------------------- Newsgroups: comp.os.vxworks Subject: Rogue Wave tools.h++ Usage Date: Sun, 03 Mar 2002 18:09:18 -0500 From: Yves Organization: Bell Sympatico Message-ID: <3C82AD1E.898D28FD@sympatico.ca> Hi, Within the last little while, I have picked up the following information on use of rw tools.h++ on vxWorks, and I was wondering if anyone knows if any of this is accurate or necessary: 1. SPR27665: tools.h++ thread safety requires undocumented routine rwVxEnable 2. email: if you are using tools.h++ you need to call rwEnable for each task using the tools.h collection. Anyone knows what the story is and if these routines need to be called or not, if so when and with what parameters (if any). Thanks for the help. Yves --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Proc Numbers, booting and VME transfers Date: Mon, 04 Mar 2002 09:49:06 +1030 From: Tim Shaw Organization: Defence Science and Technology Organisation Message-ID: <3C82AF6A.20CE572C@dsto.defence.gov.au> References: <87vgcgm62y.fsf@rainier.electro.swri.edu> I don't know if it's the right way, but we number using option (b) and treat all the boards as though they're on the same shared memory region. Processors on boards other than the sm master can still use the ethernet if they're processor x, but the shared memory network still uses a single board (board 0, proc x) as the sm network master. I suppose you could edit your bootConfig code to include an entry in the 'other' section, or similar, to specify a different A32 window. Or if you really want to use option (a), why don't you disable VME during boot up (you probably won't need it), and only enable the VME windows you need for your application. Have you asked Synergy- they're usually pretty helpful? Greg Willden wrote: > I am trying to find the *right* way of doing this in vxworks. I know > a hack or two but... > > I have multiple Synergy dual and quad PPC cards in a single VME rack. > Each card has it's own ethernet connection that all processors > x,y(z,w) share. In the case of the quad board the processors > (x,y,z,w) are given processor numbers 0-3 respectively. If I add > another card or two to the chassis then I have two options: > (a) number the processors the same (0-3) > or > (b) continue the series (4-7 etc). > > If I choose (a) then all is well until I try to do a VME transfer > between the cards. Then I would have multiple cards with their A32 > slave windows in the same place. This is bad. > > If I choose (b) then instead of each card booting up from its own > network connection the cards whose x processor number is greater than > 0 attempt to boot over the VME backplane. I guess that isn't > necessarily a bad thing as long as I can then reconfigure the network > for all of the cards except slot 0. > > My hack solution would be to create different kernels for each board > with different A32 windows but that just smells bad to me. > A slight variation would be to configure an additional A32 window for > each card based on IP address or something like that. > > What is the *right* way to configure these cards to play nicely over > VME while booting from (or reconfiguring after boot) their own > ethernet connection? > > Thanks > Greg Willden > > -- > Hofstadter's Law: It always takes longer than you expect, even > when you take into account Hofstadter's Law. --------------------------- Newsgroups: comp.os.vxworks Subject: where has some VxWorks example program? Date: 3 Mar 2002 17:38:12 -0800 From: q2319c@email.mot.com (Lily) Organization: http://groups.google.com/ Message-ID: Hi all, Does anybody know where has some VxWorks example program? Thanks in advance. --------------------------- Newsgroups: comp.os.vxworks Subject: netTask limits high-frame-rate transfers in Gigabit Ethernet Date: Sun, 3 Mar 2002 18:46:04 -0800 From: "Jerry Marcinko" Organization: Newshosting.com - Highest quality at a great price! www.newshosting.com Message-ID: <3c82e042@MAIL.mhogaming.com> Watch out for the overhead of the netTask network stack scheduler. Every invocation of netJobAdd causes TCP/IP stack related processing that consumes much CPU time, thereby limiting frame transfer rates in high-performance applications including Gigabit Ethernet. For example, on a 200 MHZ PPC603e, I found the netTask overhead per netJobAdd to be over 150 microseconds per call. On a 450 MHZ PPC750, it still is high -- estimated about 80-100 microseconds per call. This can limit the frame rates especially if your application uses short frames. It is a major bottleneck in Gigabit Ethernet applications, aside from the TCP/IP stack itself. Jerry Marcinko DSS NETWORKS, INC. www.dssnetworks.com --------------------------- Newsgroups: comp.arch.storage,comp.periphs.scsi,comp.os.vxworks Subject: Re: source code for SCSI Fibre Channel implementation Date: 2 Mar 2002 16:41:13 -0500 From: tls@panix.com (Thor Lancelot Simon) Organization: PANIX -- Public Access Networks Corp. Message-ID: References: <5c04bc56.0202272342.124108d6@posting.google.com> <5c04bc56.0203011650.69636895@posting.google.com> Reply-To: tls@rek.tjls.com In article , David A. Lethe wrote: >On 1 Mar 2002 16:50:39 -0800, jjf@bcs.org.uk (J. J. Farrell) wrote: > >>David A. Lethe wrote in message news:... >>> On 27 Feb 2002 23:42:18 -0800, jjf@bcs.org.uk (J. J. Farrell) wrote: >>> >>> >I'm looking for the source code of a C (or C++) implementation >>> >of the 'SCSI over Fibre Channel' stack - SCSI commands at the >>> >top and Fibre Channel Frames at the bottom. Does anyone know of >>> >an available implementation, free or commercial? >>> >>> Just go to http://www.redhat.com, and follow the links to download >>> their source code for LINUX. >> >>Thanks, David. Do you happen to know the names of the modules, to >>save me a bit of searching? I thought Linux only had support for >>the HBAs where most of the stack is implemented in firmware, and >>the software driver just implements an interface to the firmware. >Sorry ... I don't know the module names. Maybe it might be easier for As far as I can tell, you don't know the module names because no such modules exist. Did you actually try to understand J.J.'s question before answering it? - -- Thor Lancelot Simon tls@rek.tjls.com But as he knew no bad language, he had called him all the names of common objects that he could think of, and had screamed: "You lamp! You towel! You plate!" and so on. --Sigmund Freud --------------------------- Newsgroups: comp.os.vxworks Subject: help Date: 3 Mar 2002 22:08:12 -0800 From: kang.yonghong@mail.zte.com.cn (K.YH) Organization: http://groups.google.com/ Message-ID: Recently i have builded a bootable project,but when i boot vxworks from FTP Server.There is a error,which appeared as follows: Page Fault Program Counter... Error code : 0x0000000 Task : 0x3ffee7c "tRootTask" My environment is :Tornado 2.0 vxworks X86bsp --------------------------- Newsgroups: comp.os.vxworks Subject: newbie!! ---GO ahead web server---* No rule to make target `emf\emfInternal.h', needed by `asp.o' Date: 3 Mar 2002 22:35:30 -0800 From: hema@comneti.com (hema) Organization: http://groups.google.com/ Message-ID: <7d240511.0203032235.1eb6f6e7@posting.google.com> hai, i use vxWorks 5.4/T 2 i downloaded the go ahead web server and i m unable to compile vit. i get the message * No rule to make target `emf\emfInternal.h', needed by `asp.o'. Stop and there was a message posted at go ahead webserver site : The define of UEMF is not correctly setup. Please see the build instructions in the Readme file. The following is from the Readme. "In all cases, the symbolic constant UEMF *must* be defined in the command line arguments to the compiler. The symbolic constant UNICODE needs to be defined for Windows CE compilations or any other builds that need to use unicoded character strings." If you are using MS VC++6.0, you can go to Options|Directories|to define .h files. Also review the Project|settings|C-C++ tab|Preprocessor definitions field. i m unable to proceed further.. should i define anything in the command line argument to the compiler?? if so,i searched for the unicode(www.unicode.org)nothing is related to UEMF. what do i do now?? i built it for sim nt/ PPC860gnu... any help is appritiated. thanx and regards, hema --------------------------- Newsgroups: comp.os.vxworks Subject: Tornado 2.0.2 With gcc 2.96 Date: 3 Mar 2002 23:00:21 -0800 From: shoz@elbit.co.il (shoz) Organization: http://groups.google.com/ Message-ID: Hi Did any body use T2 update for gcc 2.96 on x86 ? Did any body use gcc 2.96 with Tornado on x86 ? thanks oz --------------------------- Newsgroups: comp.os.vxworks Subject: A question about Tornado Prototyper Date: 3 Mar 2002 23:38:15 -0800 From: yjyang88@iris.seed.net.tw (Johnny Yang) Organization: http://groups.google.com/ Message-ID: Dear all: I am practicing Tornado Prototyper by following the "Tornado Prototyper Getting Started Guide". Everything works fine until section 3.6 "Download the Project to the VxWorks Target Simulator", the error message is: TGTSVR (vxsim@Johnny): Mon Mar 04 15:34:58 2002 Checking License ...OK Wind River Systems Target Server: NT/Win95 version Error: clnttty_bufcreate can't open pipe Error: clnttty_bufcreate can't open pipe Error: clnttty_bufcreate can't open pipe Error: Remote system error; Error 65636 Error: Backend initialization routine failed. Problem during Backend initialization Target Server will exit I searched the whole news group, but found no answer. Can anybody help me? Thank you! ps. I am using Windows 98 on my PC. --------------------------- Newsgroups: comp.os.vxworks Subject: error msg: trcStack aborted: error in frame Date: Mon, 04 Mar 2002 10:43:19 +0100 From: Markus Pietrek Organization: FS Forth Systeme GmbH Message-ID: Hi folks, after porting a BSP (based on ARM/pid7t) from Tornado 2.0 to Tornado 2.1.1, I received this error message when I press "Ctrl-C" on the console. After that, the system is hanging. "trcStack aborted: error in frame" Has anyone learned anything about this message yet and could tell me what is going wrong? Thanks in advance, Markus Pietrek --------------------------- Newsgroups: comp.os.vxworks Subject: MPC860 SMC2 in VxWorks Date: Mon, 4 Mar 2002 10:38:16 +0000 (UTC) From: "Jin.r Hur" Organization: Mailgate.ORG Server - http://www.Mailgate.ORG Message-ID: I'm a user who is trying to make a BSP for SMC2 in MPC860, but after I initialized SMC2 registers, serial communication (UART) was fail. And after reset, serial communication become to OK. SMC2 BSP was inserted into Object, so we couldn't fix it. If anyone has any idea about this kindly, give me the solution. - -- Posted via Mailgate.ORG Server - http://www.Mailgate.ORG --------------------------- Newsgroups: comp.os.vxworks Subject: motorola mcc_HDLC demo code Date: 4 Mar 2002 02:42:00 -0800 From: lionjackyfish@sina.com.cn (JackyLiu) Organization: http://groups.google.com/ Message-ID: <425faaf3.0203040242.75dae24a@posting.google.com> Did anyone USE MOTROLA MCC_HDLC demo code? i am using it, but it is not steady when i used it with vxWorks, somethings the test can pass, but the other times the test maybe fail, would anyone give me advice? Thanks. --------------------------- Newsgroups: comp.os.vxworks Subject: Doubt in SOCK_RAW usage...... Date: 4 Mar 2002 03:12:03 -0800 From: sriram_sarda@yahoo.com (Sriram) Organization: http://groups.google.com/ Message-ID: <8356dc69.0203040312.248a937@posting.google.com> Hi Group, If you could help me answer some questions related to SOCK_RAW on VxWorks it would be of great help to me. 1. How different is SOCK_RAW in VxWorks when compared to Linux? 2. Do you compulsorily need root priviledge to work with SOCK_RAW? Then how is its usage in VxWorks, I mean, how do you set yourself as root in VxWorks? 3. If I use a socket of type socket(AF_INET, SOCK_RAW, IPPROTO_OSPF), I will be getting an IP packet(inclusive of IP header) where protocol has a value of IPPROTO_OSPF. If this is true, then is the IP header validated(ttl,checksum, etc) before I get the IP packet or because I have got an IP packet I will have to validate it myself?? TIA, Sriram. --------------------------- End of New-News digest ********************** From vxwexplo-errs@csg.lbl.gov Mon Mar 4 06:45:49 2002 From: "Clayton, Mark" Date: Mon Mar 4 06:45:51 PST 2002 Subject: Re: Doubt in SOCK_RAW usage...... Hi Sriram, RAW is essentially the same between VxWorks and Linux. The differences are that: 1) you do not need to be 'root' on VxWorks. 2) the packet size and the frags & flags fields are in network order (not host order). Mark > > Newsgroups: comp.os.vxworks > Subject: Doubt in SOCK_RAW usage...... > Date: 4 Mar 2002 03:12:03 -0800 > From: sriram_sarda@yahoo.com (Sriram) > Organization: http://groups.google.com/ > Message-ID: <8356dc69.0203040312.248a937@posting.google.com> > > Hi Group, > If you could help me answer some questions related to > SOCK_RAW on VxWorks it would be of great help to me. > > 1. How different is SOCK_RAW in VxWorks when compared > to Linux? > 2. Do you compulsorily need root priviledge to work > with SOCK_RAW? Then how is its usage in VxWorks, I > mean, how do you set yourself as root in VxWorks? > 3. If I use a socket of type socket(AF_INET, SOCK_RAW, > IPPROTO_OSPF), I will be getting an IP > packet(inclusive of IP header) where protocol has a > value of IPPROTO_OSPF. If this is true, then is the IP > header validated(ttl,checksum, etc) before I get the > IP packet or because I have got an IP packet I will > have to validate it myself?? > > TIA, > Sriram. From vxwexplo-errs@csg.lbl.gov Mon Mar 4 17:41:21 2002 From: =?ks_c_5601-1987?B?w9/BpMjG?= Date: Mon Mar 4 17:41:23 PST 2002 Subject: initialize multiple ethernet interface after boot vxworks? hello, all vxworks guys, now, I want initialize one more ethernet interface(IP:192.168.2.249) after boot vxworks. So, I made following function. but the result is not successful. =================================================================== void sttEnetInit () { char devName[] = MOT_FCC_DEV_NAME; END_TBL_ENTRY endEntry = { 1, sttEndLoad, "", 1, NULL, FALSE}; END_TBL_ENTRY *pDevTbl = &endEntry; BOOL attached = FALSE; /* driver is attached */ END_OBJ *pEnd; unsigned int unitNum = 1; char ipAddr[] = "192.168.2.249"; unsigned int netmask ; muxDevLoad (pDevTbl->unit, pDevTbl->endLoadFunc, pDevTbl->endLoadString, pDevTbl->endLoan, pDevTbl->pBSP); /* Try an END device first */ pEnd = endFindByName (devName, unitNum); if (!attached && (pEnd != NULL)) { if (muxDevStart (pEnd) != OK) { printf("Failed to start device=%s\n", devName); return(ERROR); } if (muxIoctl(pEnd, EIOCGMIB2, (char *)&sttendM2Tbl) == ERROR) return(ERROR); if (ipAttach (unitNum, devName) != OK) { printf ("Failed to attach TCP/IP to device\n "); return (ERROR); } netmask = 0; bootNetmaskExtract (ipAddr, &netmask); printf ("Attached TCP/IP interface to %s%d.\n", devName,unitNum); attached = TRUE; } /* configure the device */ if (usrNetIfConfig (devName, unitNum, ipAddr, /*(char *) NULL*/"jhchoo", netmask) != OK) return (ERROR); } ======================================================================= * My console print following information ======================================================================= stt755_r> stt755_r>muxShow Device: sttfcc Unit: 0 Description: Motorola FCC Ethernet Enhanced Network Driver Protocol: IP 4.4 ARP Type: 2054 Recv 0x4eaec Shutdown 0x4edb0 Protocol: IP 4.4 TCP/IP Type: 2048 Recv 0x4eaec Shutdown 0x4ece8 Device: sttfcc Unit: 1 Description: Motorola FCC Ethernet Enhanced Network Driver Protocol: IP 4.4 ARP Type: 2054 Recv 0x4eaec Shutdown 0x4edb0 Protocol: IP 4.4 TCP/IP Type: 2048 Recv 0x4eaec Shutdown 0x4ece8 value = 0 = 0x0 stt755_r> stt755_r>routeShow ROUTE NET TABLE destination gateway flags Refcnt Use Interface ---------------------------------------------------------------------------- 192.168.1.0 192.168.1.223 101 0 0 sttfcc0 192.168.2.0 192.168.2.249 101 0 0 sttfcc1 ---------------------------------------------------------------------------- ROUTE HOST TABLE destination gateway flags Refcnt Use Interface ---------------------------------------------------------------------------- 127.0.0.1 127.0.0.1 5 1 0 lo0 ---------------------------------------------------------------------------- value = 77 = 0x4d = 'M' stt755_r> stt755_r> stt755_r>hostShow hostname inet address aliases -------- ------------ ------- stt755_r 192.168.1.223 localhost 127.0.0.1 tornado 192.168.1.29 jhchoo 192.168.2.249 value = 0 = 0x0 stt755_r> stt755_r> stt755_r>ifShow sttfcc (unit number 0): Flags: (0x8063) UP BROADCAST MULTICAST ARP RUNNING Type: ETHERNET_CSMACD Internet address: 192.168.1.223 Broadcast address: 192.168.1.255 Netmask 0xffffff00 Subnetmask 0xffffff00 Ethernet address is 00:00:aa:00:00:df Metric is 0 Maximum Transfer Unit size is 1500 480 packets received; 271 packets sent 177 multicast packets received 2 multicast packets sent 0 input errors; 0 output errors 0 collisions; 0 dropped lo (unit number 0): Flags: (0x8069) UP LOOPBACK MULTICAST ARP RUNNING Type: SOFTWARE_LOOPBACK Internet address: 127.0.0.1 Netmask 0xff000000 Subnetmask 0xff000000 Metric is 0 Maximum Transfer Unit size is 32768 0 packets received; 0 packets sent 0 multicast packets received 0 multicast packets sent 0 input errors; 0 output errors 0 collisions; 0 dropped sttfcc (unit number 1): Flags: (0x8063) UP BROADCAST MULTICAST ARP RUNNING Type: ETHERNET_CSMACD Internet address: 192.168.2.249 Broadcast address: 192.168.2.255 Netmask 0xffffff00 Subnetmask 0xffffff00 Ethernet address is 00:00:aa:00:00:f9 Metric is 0 Maximum Transfer Unit size is 1500 0 packets received; 0 packets sent 0 multicast packets received 0 multicast packets sent 0 input errors; 0 output errors 0 collisions; 0 dropped value = 29 = 0x1d stt755_r> ====================================================================== Above [ifShow] is done after [ping "192.168.2.222"] is done. I think that above send packet count of "sttfcc1" must increase. right? many receive packet is stored in driver's buffer. But above receive packet count is 0. why? From vxwexplo-errs@csg.lbl.gov Mon Mar 4 20:57:29 2002 From: "Chidananda Basavani Suresh" Date: Mon Mar 4 20:57:31 PST 2002 Subject: Re: comp.os.vxworks newsdigest This is a multi-part message in MIME format. ------=_NextPartTM-000-a63830c2-2ff3-11d6-a942-00b0d0d06be8 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit hai there, u can use ifShow() to see the interfaces. make sure that netShow routines are enabled!! bye chida ----- Original Message ----- From: "the vxWorks Users Group Exploder" To: Sent: Monday, March 04, 2002 5:42 PM Subject: comp.os.vxworks newsdigest > Submitted-by vxwexplo-errs@csg.lbl.gov Mon Mar 4 04:03:13 2002 > Submitted-by: Vxworks Exploder > > Comp.Os.Vxworks Daily Digest Mon Mar 4 04:03:10 PST 2002 > > Subject: How to find the interfaces in my target > > Newsgroups: comp.os.vxworks > Subject: How to find the interfaces in my target > Date: 3 Mar 2002 05:03:39 -0800 > From: bryanramesh@yahoo.com (Bryan) > Organization: http://groups.google.com/ > Message-ID: > > Hi, > > I want to find the interfaces exist in my target when i initialise my > module. I dont find any special call to do that. With the help of > ifnet structure we can do it or what. But how to do it. Every target > will have "l0" as loopback address interface name. If we give that and > if we use the ifnet structure's next pointer means, is that possible > to get all the interface names and their properties while > initialising. Kindly help me in this regard. > > Thanks, > Bryan > > --------------------------- ------=_NextPartTM-000-a63830c2-2ff3-11d6-a942-00b0d0d06be8 Content-Type: text/plain; name="Wipro_Disclaimer.txt" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="Wipro_Disclaimer.txt" **************************Disclaimer************************************ Information contained in this E-MAIL being proprietary to Wipro Limited is 'privileged' and 'confidential' and intended for use only by the individual or entity to which it is addressed. You are notified that any use, copying or dissemination of the information contained in the E-MAIL in any manner whatsoever is strictly prohibited. ******************************************************************** ------=_NextPartTM-000-a63830c2-2ff3-11d6-a942-00b0d0d06be8-- From vxwexplo-errs@csg.lbl.gov Tue Mar 5 04:03:24 2002 From: Vxworks Exploder Date: Tue Mar 5 04:03:27 PST 2002 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Tue Mar 5 04:03:18 PST 2002 Subject: ULIP on non-neworked w2k station Subject: Re: Problem in accessing PCI I/O Registers in IBM ppc 405GP Subject: Re: Problem in accessing PCI I/O Registers in IBM ppc 405GP Subject: Re: source code for SCSI Fibre Channel implementation Subject: Re: source code for SCSI Fibre Channel implementation Subject: Re: source code for SCSI Fibre Channel implementation Subject: Re: source code for SCSI Fibre Channel implementation Subject: Re: intLock() and "system routines" vs. "kernel services" Subject: Re: muxLoad Failed while picking up the VxWorks image from host Subject: Re: error msg: trcStack aborted: error in frame Subject: Re: How to find the interfaces in my target Subject: tftp get strange files Subject: Re: intLock() and "system routines" vs. "kernel services" Subject: Pipe vs Socket communication Subject: Re: intLock() and "system routines" vs. "kernel services" Subject: Re: TCP/IP Support in VxWorks Subject: Re: Finding undefined symbols in .out file Subject: Re: tftp get strange files Subject: Re: How to find the interfaces in my target Subject: Re: source code for SCSI Fibre Channel implementation Subject: Re: intLock() and "system routines" vs. "kernel services" Subject: Re: netTask limits high-frame-rate transfers in Gigabit Ethernet Subject: Re: Gigabit Ethernet performance poll Subject: Re: DHCP and WINS Subject: Re: [cancel] tftp get strange files Subject: Re: Problem in accessing PCI I/O Registers in IBM ppc 405GP Subject: Re: netTask limits high-frame-rate transfers in Gigabit Ethernet Subject: Re: Gigabit Ethernet performance poll Subject: Re: Gigabit Ethernet performance poll Subject: Re: netTask limits high-frame-rate transfers in Gigabit Ethernet Subject: Re: tNetTask takes too long? Subject: Traceroute: Porting code question Subject: Re: GP fault from "hello World" Subject: Re: usrAppInit.c(function call)question Subject: Initialize multiple ethernet interface after boot vxworks? Subject: Re: MPC860 SMC2 in VxWorks Subject: Re: tNetTask takes too long? Subject: Re: Tornado 2.0.2 With gcc 2.96 Subject: Re: How to find the interfaces in my target Subject: Re: PPP problem Subject: Reply from Motorola SPS Customer Support Team Subject: Difference between MPC860SAR and MPC860MH Subject: Re: source code for SCSI Fibre Channel implementation Subject: Re: Tornado 2.0.2 With gcc 2.96 Subject: Re: error msg: trcStack aborted: error in frame Subject: Re: Problem in accessing PCI I/O Registers in IBM ppc 405GP Subject: Re: Initialize multiple ethernet interface after boot vxworks? Subject: Re: Licensing Issues in RTLinux and RTAI Subject: question about receive sm IP packets..... Subject: multiple vme windows Subject: Re: tNetTask takes too long? Subject: Re: source code for SCSI Fibre Channel implementation Subject: taskSwitchHookAdd problems ??? Subject: Re: source code for SCSI Fibre Channel implementation ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: ULIP on non-neworked w2k station Date: Mon, 4 Mar 2002 08:01:08 -0500 From: "Mark Richards" Organization: AT&T Canada IES Message-ID: Hello, I'm trying to go through the networking demo in Tornado 2.0.2 from a Windows 2000 pro system, but I am running into TCP/IP configuration problems, probably because the ULIP virtual adapter is the only network card on this system. These are the symptoms of the bad configuration: - - ping 90.0.0.254 successfully from cmd prompt - - ping "90.0.0.254" successfully from the two vxsim instances - - ping 90.0.0.1 or 90.0.0.2 fails from cmd prompt - - ping "90.0.0.2" or "90.0.0.1" fails from the vxsim instances - - ping "127.0.0.1" fails from the vxsim instances I assume part of this is routing. I enabled IP routing in w2k through the registry as described in w2k KB, checked the routes with route, and even added the routes manually, but pings to anything but ULIP adapter fail. Perhaps relevent: the local area network that appears in net&dial-up once ULIP is installed is disabled, and fails with "failed to connect" when I try to enable it (but still the pings to the adapter work). It is possible that when I installed w2k pro I disabled those services that would not be needed in a non-networked workstation. This is probably a simple w2k networking configuration problem, but I'm no expert in that :-}. If anyone has the same setup or knows what the problem is, please help ! Thanks, Mark --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Problem in accessing PCI I/O Registers in IBM ppc 405GP Date: 4 Mar 2002 05:08:39 -0800 From: arun4vxworks@indiatimes.com (Arun Prasad) Organization: http://groups.google.com/ Message-ID: References: <3C7F9C21.48433D2B@varndellengineering.com> <3C7FC51C.F75E564D@notifier-is.net> Hi, Now, as per my previous mail, I'm able to access PCI I/O mapped region. I'm able to read or write into our PCI based Card's registers. All I had to do was to add 0xe8000000 (Address translation/mapping). Now, when I access our memory mapped region, I'm getting "protection violation/data access " error. I haven't done any mapping of memory mapped BARs so far. I'm trying to figure out what macro needs to be used or what constant needs to be added for addres translation/mapping. If anyone already faced this problem and solved it, please do let me know what I'm missing to make it work. Regards Arun arun4vxworks@indiatimes.com (Arun Prasad) wrote in message news:... > Hi, > > I removed the call to our pci device configuration routine > (AdptPciDevConfig()). I just used the I/O BAR (BAR2) provided by > VxWorks adding with 0xe8000000 and now I'm able to access the I/O > Registers of my card. > > George Varndell was pretty much correct that our pci configuration is > incomplete. > > Now, my concern is now accessing 64 bit BARs. I'm working on to > access memory mapped I/O. I'm trying to find out the constant which I > need to add to my memory mapped BARs, if at all, to access them ( like > I added 0xe800000 in the case of I/O mapped I/O region). > As per the manual these regions are fully programmable. It seems I > don't need to add any constants for accessing Memory mapped I/O > region. > If my understanding is wrong, please do let me know. > > Regards > Arun --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Problem in accessing PCI I/O Registers in IBM ppc 405GP Date: Mon, 4 Mar 2002 14:40:55 +0100 From: "Michael Lawnick" Organization: Buergernetz Dillingen Message-ID: References: <3C7F9C21.48433D2B@varndellengineering.com> <3C7FC51C.F75E564D@notifier-is.net> Reply-To: "Michael Lawnick" Sender: mlawnick@p5088f2b4.dip.t-dialin.net Hi Arun, AFAIK, VxWorks does not support 64bit PCI. It interprets your 2 double BARs as 4 seperate BARs and sets up access to those you find valid values. This won't work for you: You have access to I/O-mapped region, as PCI autoconfig found the regions and the region was already added in sysPhysMemDesc[]. For your mem mapped region this failed and your MMU complains that you try to access a region that is not enabled. I can see two {three} possible solutions: a) Enable the considered region in your sysPhysMemDesc[] by hand (don't forget the local2PCI bridge !) and setup your NIC's 64bit mem BARs by hand in a way that their windows are placed accordingly. b) Disable MMU. { c) Use a more common NIC ;-) } HTH Michael - -- Mit freundlichen Grüßen, Michael Lawnick ============================================== SOFTEC GmbH Tel +49-731-96600-0 Promenade 17 Fax +49-731-96600-23 D-89073 Ulm Michael Lawnick Germany lawnick@softec.de ============================================== "Arun Prasad" schrieb im Newsbeitrag news:e38d912c.0203040508.294513b5@posting.google.com... > Hi, > > Now, as per my previous mail, I'm able to access PCI I/O mapped > region. I'm able to read or write into our PCI based Card's registers. > All I had to do was to add 0xe8000000 (Address translation/mapping). > > Now, when I access our memory mapped region, I'm getting > > "protection violation/data access " > > error. I haven't done any mapping of memory mapped BARs so far. I'm > trying to figure out what macro needs to be used or what constant > needs to be added for addres translation/mapping. > > If anyone already faced this problem and solved it, please do let me > know what I'm missing to make it work. > > Regards > Arun > > arun4vxworks@indiatimes.com (Arun Prasad) wrote in message news:... > > Hi, > > > > I removed the call to our pci device configuration routine > > (AdptPciDevConfig()). I just used the I/O BAR (BAR2) provided by > > VxWorks adding with 0xe8000000 and now I'm able to access the I/O > > Registers of my card. > > > > George Varndell was pretty much correct that our pci configuration is > > incomplete. > > > > Now, my concern is now accessing 64 bit BARs. I'm working on to > > access memory mapped I/O. I'm trying to find out the constant which I > > need to add to my memory mapped BARs, if at all, to access them ( like > > I added 0xe800000 in the case of I/O mapped I/O region). > > As per the manual these regions are fully programmable. It seems I > > don't need to add any constants for accessing Memory mapped I/O > > region. > > If my understanding is wrong, please do let me know. > > > > Regards > > Arun --------------------------- Newsgroups: comp.arch.storage,comp.periphs.scsi,comp.os.vxworks Subject: Re: source code for SCSI Fibre Channel implementation Date: Mon, 4 Mar 2002 14:08:12 +0000 (UTC) From: "UK Gary" Organization: BT Openworld Message-ID: References: <5c04bc56.0202272342.124108d6@posting.google.com> "J. J. Farrell" wrote in message news:5c04bc56.0202272342.124108d6@posting.google.com... > I'm looking for the source code of a C (or C++) implementation > of the 'SCSI over Fibre Channel' stack - SCSI commands at the > top and Fibre Channel Frames at the bottom. Does anyone know of > an available implementation, free or commercial? All vendors of Fibre Channel chips work pretty much the same way -- you sign an NDA, then you get a hex file containing microcode which you have to transfer to the FC chip, plus a simple bit of c code which is the interface to the microcode engine. This c code is platform agnostic -- it simply assumes that you have a PCI bus which of course is the only way to talk to the chips. The microcode which executes entirely inside the FC chip implements almost the entire FC protocol. If you are a target device, you are responsible for decoding the SCSI CDB's, and pointing the FC chip towards the appropriate scatter-gather lists in memory. When you sign the NDA you may or may not get access to the chip level registers (which can only be accessed in most cases by the microcode inside the chip which means you would need to use their microassembler), but none the less I assure you that you do not have the required expertise to program the chip at that level. Besides, it's just not necessary. The c code that you get from the chip company doesn't care at all about whether you are vxworks or Windows or Mac or whatever. The only exceptions to the above statements are if you use a FC chip designed to go on a disk drive. In this case, the chip vendor will provide you with a very simple reference implementation in source code, plus a special assembler. However, this SDK is very tightly controlled, so unless you are Seagate or Maxtor or can prove multi-thousand volume potential, give up. --------------------------- Newsgroups: comp.arch.storage,comp.periphs.scsi,comp.os.vxworks Subject: Re: source code for SCSI Fibre Channel implementation Date: Mon, 4 Mar 2002 09:01:47 +0300 From: "Maxim S. Shatskih" Organization: NATO Message-ID: References: <5c04bc56.0202272342.124108d6@posting.google.com> Usually FC cards are "just another SCSI cards" for the rest of the OS, including the driver stack. Max "J. J. Farrell" wrote in message news:5c04bc56.0202272342.124108d6@posting.google.com... > I'm looking for the source code of a C (or C++) implementation > of the 'SCSI over Fibre Channel' stack - SCSI commands at the > top and Fibre Channel Frames at the bottom. Does anyone know of > an available implementation, free or commercial? > > To help with development based on this stack, I'm also looking > for a PCI card which allows host software access to all incoming > Fibre Channel frames, and allows the software to transmit FC > frames. Does anyone know of one? The cards I've looked at have > various parts of the stack implemented on board, and don't > provide any mechanisms to receive or send raw frames. > > I'm new to FC, so please excuse any naivety in these requests! > > My target OS in both cases is VxWorks, though any source is > better than none. > > Many Thanks, > jjf --------------------------- Newsgroups: comp.arch.storage,comp.periphs.scsi,comp.os.vxworks Subject: Re: source code for SCSI Fibre Channel implementation Date: Mon, 4 Mar 2002 09:02:29 +0300 From: "Maxim S. Shatskih" Organization: NATO Message-ID: References: <5c04bc56.0202272342.124108d6@posting.google.com> > Just go to http://www.redhat.com, and follow the links to download > their source code for LINUX. ftp://ftp.kernel.org is a better link to the same :-) Max --------------------------- Newsgroups: comp.arch.storage,comp.periphs.scsi,comp.os.vxworks Subject: Re: source code for SCSI Fibre Channel implementation Date: Mon, 4 Mar 2002 09:09:18 +0300 From: "Maxim S. Shatskih" Organization: NATO Message-ID: References: <5c04bc56.0202272342.124108d6@posting.google.com> <5c04bc56.0203011704.1561b9e1@posting.google.com> > the SCSI/FC HBA market do, other than acquire or develop a Note that: - - w2k/XP SCSI stack does not support target mode. I.e. you cannot write any drivers in MS-recommended way which will allow the HBA to be the SCSI target and fully utilize this. - - w2k/XP do not support FC natively, so, your card must emulate the SCSI semantics (after all, isn't FC the same SCSI over new media)? - - the well-marketed STORPORT contains nothing seriously new. - - you can add your own IOCTLs to the HBA driver and utilize them from the app. Note that the request queuing is done by the layer above your driver - so, you cannot have any guarantees of what request will come first - IOCTL or some "real" request. I cannot advertise my company here, but we have the complete SCSIPORT replacement and thus able to help. Dunno on other OSes. Maybe some have special support for target mode or for native FC, not "FC as SCSI". Max --------------------------- Newsgroups: comp.os.vxworks Subject: Re: intLock() and "system routines" vs. "kernel services" Date: Mon, 4 Mar 2002 10:52:16 -0500 From: Keith Arner Organization: Marconi Message-ID: References: <488e459a.0203020855.7bc7815c@posting.google.com> Reply-To: Keith Arner On 2 Mar 2002, John wrote: > I don't know of any routines that will unlock interrupts regardless of > the setting present on entry, all the places I've seen use the key > returned by intLock() in the call to intUnlock(). The only places in If you have a source license, look at the optimized assembly version of semBGive() for the x86. It unlocks interrupts in the current task, without regaurd to the current locking level. (I realize that this answers at least one of my original questions: no it is not safe to give a binary semaphore from an ISR context, and assume that interupts will still be locked after the semGive()). Keith --------------------------- Newsgroups: comp.os.vxworks Subject: Re: muxLoad Failed while picking up the VxWorks image from host Date: Mon, 4 Mar 2002 16:54:55 +0100 From: "Werner Schiendl" Message-ID: <3c8398d1@brateggebdc5.br-automation.co.at> References: <3C7FE50A.C1A46C9C@notifier-is.net> Hi, the elt driver will not help you much, its for the 3c509 (ISA) board. AFAIK, there is no way to include END drivers with the project facility (its plain missing, in all pc486 and pcPentium BSPs installations I've seen so far). To workaround, be sure to have included END network driver support & initialization. You may exclude the BSD driver support if you like (the driver you need - elPci - is END only, AFAIK). Then, be sure you have defined #define INCLUDE_EL_3C90X_END /* 3com fast etherLink XL PCI */ in your BSP's config.h (you'll probably have, if your bootrom works, but check it). hth Werner "Ajay Garg" wrote in message news:ae7893e8.0203020112.a00ebe6@posting.google.com... > Hi, > my PC is containing 3com905 card. Hence in the default boot line i > am specifying "elPci". My VxWorks version is 5.4 and BSP is pcPentium. > What i believe is that my boot image(which is in floppy drive) is > booting fine but the VxWorks image stored in HOST is not able to > communicate properly with it. > Can you tell me what all to be included from project facility when > I am making a bootable image for the same card. As of now I have > included ELT card driver. > > Regards, > Ajay Garg > david lindauer wrote in message news:<3C7FE50A.C1A46C9C@notifier-is.net>... > > does your configuration string have the correct card name? Seems like > > you get errors like this if you specify a network boot device that > > doesn't exist... > > > > David > > > > Ajay Garg wrote: > > > > > Hi, > > > I am using 3COM card to communicate across network. I am getting a > > > message "muxLoad failed" after getting the prompt on target. But if I > > > am using a fei card, I am getting everything fine. I am making the > > > necessary changes in config file for my BSP which is pentium. > > > Your help is needed to solve this problem. > > > > > > Regards, > > > Ajay Garg. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: error msg: trcStack aborted: error in frame Date: Mon, 4 Mar 2002 17:00:54 +0100 From: "Werner Schiendl" Message-ID: <3c839a37$1@brateggebdc5.br-automation.co.at> References: Hi, for me this sounds as if the stackframe of some routine of the call stack does not meet the expectations of trcStack(). Like if a different compiler were used for portions of the stuff. Did you rebuild everything with the same compiler, that the core components are built with? hth Werner "Markus Pietrek" wrote in message news:a5vfch$6v6$02$1@news.t-online.com... > Hi folks, > > after porting a BSP (based on ARM/pid7t) from Tornado 2.0 to Tornado 2.1.1, > I received this error message when I press "Ctrl-C" on the console. > After that, the system is hanging. > > "trcStack aborted: error in frame" > > Has anyone learned anything about this message yet and could tell me what is > going wrong? > > Thanks in advance, > > Markus Pietrek --------------------------- Newsgroups: comp.os.vxworks Subject: Re: How to find the interfaces in my target Date: Mon, 4 Mar 2002 12:02:04 -0500 From: "Stephane Ross" Message-ID: References: Hi Bryan, I'm not aware of a function that does the trick... However, there is a global pointer (extern struct ifnet *ifnet) that should be availiable to you. You should probably use that pointer instead of the one provided by ifunit("lo0") since I'm not sure lo0 is always the first one in the list... Yes, using the next pointer is probably the best way. Regards, Stephane "Bryan" wrote in message news:cc857445.0203030503.3fd6d5bd@posting.google.com... > Hi, > > I want to find the interfaces exist in my target when i initialise my > module. I dont find any special call to do that. With the help of > ifnet structure we can do it or what. But how to do it. Every target > will have "l0" as loopback address interface name. If we give that and > if we use the ifnet structure's next pointer means, is that possible > to get all the interface names and their properties while > initialising. Kindly help me in this regard. > > Thanks, > Bryan --------------------------- Newsgroups: comp.os.vxworks Subject: tftp get strange files Date: 4 Mar 2002 09:22:58 -0800 From: ilyasg@yahoo.com (Ilyas G) Organization: http://groups.google.com/ Message-ID: does anyone have used tftp over vxworks? does it works. here is my problem. I use simulator righ now. i have a tftp server containing toto.txt file and i have the following code : ################################## int dataFd; int errorFd; int num; char buf[5]; FILE * fdin; if ((fdin = fopen ("toto.txt","w")) == NULL) return; if (tftpXfer ("90.0.0.254", 69, "toto.txt", "get", "ascii", &dataFd, &errorFd) == ERROR) return; while ((num = read (dataFd, buf, sizeof(buf))) > 0) { /* write (fdin,buff,num); */ printf("%s",buf); } close (dataFd); fclose (fdin); ############################################### the result is not as expected the output looks like : ###################################### - -> start_tftpd Tîîîîîîîhîîîîîîîiîîîîîîîsîîîîîîî îîîîîîîiîîîîîîîsîîîîîîî îîîîîîîtîîîîîîîhîîîîîîî eîîîîîîî îîîîîîîfîîîîîîîiîîîîîîîrîîîîîîîsîîîîîîîtîîîîîîî îîîîîîîlîîîîîîîiîîîîîîî nîîîîîîîeîîîîîîî îîîîîîîoîîîîîîîfîîîîîîî îîîîîîîaîîîîîîî îîîîîîîfîîîîîîîoîîîîîîî oîîîîîîî îîîîîîîfîîîîîîîiîîîîîîîlîîîîîîîeîîîîîîî,îîîîîîî îîîîîîî2îîîîîîînîîîîîîîdîîîîîîî îîîîîîîlîîîîîîîiîîîîîîîgîîîîîîînîîîîîîîeîîîîîîîs îîîîîîî îîîîîîî3îîîîîîîrîîîîîîîdîîîîîîî îîîîîîîlîîîîîîîiîîîîîîîgîîîîîîînîîîîîîîeîîîîîîîs îîîîîîî îîîîîîî4îîîîîîîtîîîîîîîhîîîîîîî îîîîîîîlîîîîîîîiîîîîîîînîîîîîîîeîîîîîîî îîîîîîîf îîîîîîîrîîîîîîîoîîîîîîîmîîîîîîî îîîîîîîfîîîîîîîiîîîîîîîlîîîîîîîeîîîîîîîsîîîîîîî îîîîîîîEîîîîîîîNîîîîîîîDîîîîîîî îîîîîîî îîîîîîîvalue = 0 = 0x0 - -> ################################ each time the read is called, only one char is returned and the string is completed by many spcial char. does any one have a hint? --------------------------- Newsgroups: comp.os.vxworks Subject: Re: intLock() and "system routines" vs. "kernel services" Date: Mon, 4 Mar 2002 17:54:22 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C83B539.8050201@spamm.me.l8s.co.uk> References: <488e459a.0203020855.7bc7815c@posting.google.com> > If you have a source license, look at the optimized assembly version of > semBGive() for the x86. It unlocks interrupts in the current task, > without regaurd to the current locking level. IMHO that is a serious bug :-) --------------------------- Newsgroups: comp.os.vxworks Subject: Pipe vs Socket communication Date: 4 Mar 2002 10:01:26 -0800 From: xavier_marjou@yahoo.com (Xavier Marjou) Organization: http://groups.google.com/ Message-ID: Hello, I would like to know how slow is a communication between two tasks if a pipe is used or if it's a socket (local loopback). Is there any link on the subject ? Thank you, Xavier Marjou --------------------------- Newsgroups: comp.os.vxworks Subject: Re: intLock() and "system routines" vs. "kernel services" Date: Mon, 4 Mar 2002 13:21:42 -0500 From: Keith Arner Organization: Marconi Message-ID: References: <488e459a.0203020855.7bc7815c@posting.google.com> <3C83B539.8050201@spamm.me.l8s.co.uk> Reply-To: Keith Arner On Mon, 4 Mar 2002, David Laight wrote: > > If you have a source license, look at the optimized assembly version of > > semBGive() for the x86. It unlocks interrupts in the current task, > > without regaurd to the current locking level. > > IMHO that is a serious bug :-) > I agree. But since it's documented (see my original post), it's a feature. ;) Which brings me full circle: do we have a list of function calls which display this "feature"? Keith --------------------------- Newsgroups: comp.os.vxworks Subject: Re: TCP/IP Support in VxWorks Date: Mon, 4 Mar 2002 10:37:42 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <3c741e96_4@news1.prserv.net> Thanks. I started reading this group again a few weeks ago. I am working to bring the PSO web site back online. If anyone needs a consultant I am available. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Finding undefined symbols in .out file Date: Mon, 4 Mar 2002 13:38:28 -0500 From: Keith Arner Organization: Marconi Message-ID: References: <3C7EC2D5.1B9A2EE9@bitworkssystemsDELETETHIS.com> Reply-To: Keith Arner On Thu, 28 Feb 2002, Jon Newbill wrote: > So the question is. How do you find what module referenced an undefined > symbol when you download a .out file that was built from 50 or more > modules? I have written a script that accepts an object file and a symbol. It pushes the name of the object file on a stack, then: while (stack is not empty) { pop object from stack if (sym is undefined in object file) { print the name of the object file invoke build script to determine what that object depends on push those objects onto the stack } } So, this basically chases through the transitive closure of the dependancies of an object file, to find the original place that the symbol was undefined. In the development environment I'm using, this isn't terribly difficult; we use cons, which allows you query for the command that is used to build a given target (cons -pa ). I then look at the command, and consider anything that ends in a .o to be an object file that should be considered. If you don't have an easy way of querying for the dependancies of a given target, this won't be so easy. Keith --------------------------- Newsgroups: comp.os.vxworks Subject: Re: tftp get strange files Date: Mon, 04 Mar 2002 18:53:09 GMT From: "Don Dewar" Message-ID: References: Ilyas, I have never had a problem using tftpXfer. It could be the TFTP server that is causing only 1 character at a time to be returned. Since only one character is being returned the reason that the rest of the buffer is garbage is probably just random memory. If you put in a mempy (buf, 0, sizeof (buf)) before the read, you will probably not get the garbage. You might put an analyzer on the line to see if only 1 character at a time is being returned from the server. You can also turn on tftpVerbose=1 and tftpTrace=1 to see what the transactions look like. Good luck, - -- Don "Ilyas G" wrote in message news:afdb26d2.0203040922.2fcefc42@posting.google.com... > does anyone have used tftp over vxworks? does it works. > here is my problem. > I use simulator righ now. > i have a tftp server containing toto.txt file > and i have the following code : > ################################## > int dataFd; > int errorFd; > int num; > char buf[5]; > FILE * fdin; > > if ((fdin = fopen ("toto.txt","w")) == NULL) return; > > if (tftpXfer ("90.0.0.254", 69, "toto.txt", "get", "ascii", &dataFd, > &errorFd) == ERROR) return; > while ((num = read (dataFd, buf, sizeof(buf))) > 0) > { > /* write (fdin,buff,num); */ > printf("%s",buf); > } > close (dataFd); > fclose (fdin); > > ############################################### > > the result is not as expected the output looks like : > ###################################### > -> start_tftpd > Tîîîîîîîhîîîîîîîiîîîîîîîsîîîîîîî îîîîîîîiîîîîîîîsîîîîîîî > îîîîîîîtîîîîîîîhîîîîîîî > eîîîîîîî îîîîîîîfîîîîîîîiîîîîîîîrîîîîîîîsîîîîîîîtîîîîîîî > îîîîîîîlîîîîîîîiîîîîîîî > nîîîîîîîeîîîîîîî îîîîîîîoîîîîîîîfîîîîîîî îîîîîîîaîîîîîîî > îîîîîîîfîîîîîîîoîîîîîîî > oîîîîîîî îîîîîîîfîîîîîîîiîîîîîîîlîîîîîîîeîîîîîîî,îîîîîîî > îîîîîîî2îîîîîîînîîîîîîîdîîîîîîî > îîîîîîîlîîîîîîîiîîîîîîîgîîîîîîînîîîîîîîeîîîîîîîs > îîîîîîî > îîîîîîî3îîîîîîîrîîîîîîîdîîîîîîî > îîîîîîîlîîîîîîîiîîîîîîîgîîîîîîînîîîîîîîeîîîîîîîs > îîîîîîî > îîîîîîî4îîîîîîîtîîîîîîîhîîîîîîî > îîîîîîîlîîîîîîîiîîîîîîînîîîîîîîeîîîîîîî îîîîîîîf > îîîîîîîrîîîîîîîoîîîîîîîmîîîîîîî > îîîîîîîfîîîîîîîiîîîîîîîlîîîîîîîeîîîîîîîsîîîîîîî > îîîîîîîEîîîîîîîNîîîîîîîDîîîîîîî îîîîîîî > îîîîîîîvalue = 0 = 0x0 > -> > ################################ > > each time the read is called, only one char is returned and the string > is completed by many spcial char. > > does any one have a hint? --------------------------- Newsgroups: comp.os.vxworks Subject: Re: How to find the interfaces in my target Date: 4 Mar 2002 11:18:41 -0800 From: tolu.makinde@strixsys.com (Tolu Makinde) Organization: http://groups.google.com/ Message-ID: <94ebff4d.0203041118.4a8b8f19@posting.google.com> References: Try "ifShow" from the target shell. bryanramesh@yahoo.com (Bryan) wrote in message news:... > Hi, > > I want to find the interfaces exist in my target when i initialise my > module. I dont find any special call to do that. With the help of > ifnet structure we can do it or what. But how to do it. Every target > will have "l0" as loopback address interface name. If we give that and > if we use the ifnet structure's next pointer means, is that possible > to get all the interface names and their properties while > initialising. Kindly help me in this regard. > > Thanks, > Bryan --------------------------- Newsgroups: comp.arch.storage,comp.periphs.scsi,comp.os.vxworks Subject: Re: source code for SCSI Fibre Channel implementation Date: 3 Mar 2002 04:53:31 -0500 From: tls@panix.com (Thor Lancelot Simon) Organization: PANIX -- Public Access Networks Corp. Message-ID: References: <5c04bc56.0202272342.124108d6@posting.google.com> Reply-To: tls@rek.tjls.com In article , David A. Lethe wrote: >On 2 Mar 2002 16:41:13 -0500, tls@panix.com (Thor Lancelot Simon) >wrote: > >>In article , >>David A. Lethe wrote: >>>On 1 Mar 2002 16:50:39 -0800, jjf@bcs.org.uk (J. J. Farrell) wrote: >>> >>>>David A. Lethe wrote in message news:... >>>>> On 27 Feb 2002 23:42:18 -0800, jjf@bcs.org.uk (J. J. Farrell) wrote: >>>>> >>>>> >I'm looking for the source code of a C (or C++) implementation >>>>> >of the 'SCSI over Fibre Channel' stack - SCSI commands at the >>>>> >top and Fibre Channel Frames at the bottom. Does anyone know of >>>>> >an available implementation, free or commercial? >>>>> >>>>> Just go to http://www.redhat.com, and follow the links to download >>>>> their source code for LINUX. >>>> >>>>Thanks, David. Do you happen to know the names of the modules, to >>>>save me a bit of searching? I thought Linux only had support for >>>>the HBAs where most of the stack is implemented in firmware, and >>>>the software driver just implements an interface to the firmware. >>>Sorry ... I don't know the module names. Maybe it might be easier for >> >>As far as I can tell, you don't know the module names because no such >>modules exist. Did you actually try to understand J.J.'s question >>before answering it? >I don't know the module names because it is neither my responsibility >or desire to do this person's homework. He/whe asked if there was >iSCSI driver sample sourcecode available, and I told them where some >was. No, he certainly did not. J.J. asked if there was source code to a SCSI-over-FibreChannel implementation available; there is no such source code in the Linux kernel sources because the vendors all hide that layer in their HBA "firmware" (a rather curious term, since most of the FC HBAs you'll find on the market today actually use a modified general-purpose CPU such as a SPARC or MIPS, but I digress) and Linux or other operating system device drivers just interface to that. In other words, you didn't take the time to actually understand his question and you gave him a totally useless answer. In the future, perhaps you should restrict yourself to answering questions you've actually read, n'est-ce pas? - -- Thor Lancelot Simon tls@rek.tjls.com But as he knew no bad language, he had called him all the names of common objects that he could think of, and had screamed: "You lamp! You towel! You plate!" and so on. --Sigmund Freud --------------------------- Newsgroups: comp.os.vxworks Subject: Re: intLock() and "system routines" vs. "kernel services" Date: Mon, 4 Mar 2002 19:42:32 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C83CE91.8030203@spamm.me.l8s.co.uk> References: <488e459a.0203020855.7bc7815c@posting.google.com> <3C83B539.8050201@spamm.me.l8s.co.uk> > Which brings me full circle: do we have a list of function calls which > display this "feature"? What, the 'feature' of having an obvious bug documented? Try NFS sharing a vxWorks filesystem called "/dos/"? You need the trailing '/' on vxWorks to stop "/dosfile" being treated as part of your fs (which isn't what you intended). Trying to mount it (from solaris) as "/dos" or "/dos/" fail, however "/dos//" will work! The code carefully removes a trailing '/' from the wrong name when comparing the names. Bug or feature? David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: netTask limits high-frame-rate transfers in Gigabit Ethernet Date: Mon, 4 Mar 2002 11:44:26 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <3c82e042@MAIL.mhogaming.com> I think you might be right about this point. The netJobAdd (and netTask) presents some problems especially in throughput and latency performance when using very high speed networks. I am at least partly responsible for this unfortunately. The problem is a little more involved than just netTask. One of the reasons why netTask exists is to allow packet handling to happen in task level code. Since most of kernel facilities (e.g. semTake) cannot be called from within interrupt level code, it is necessary to make sure most of packet handling code (TCP/IP stack) happens in task level. Doing a netJobAdd() is one solution for this. netJobAdd() is nothing but a msgQ. You send a message to netTask to do the job (I got a packet, so process it at task level). It also helps to minimize interrupt latency (interrupts are locked out for short time since most of the work is done in task level). Another reason why netTask exists is because VxWorks TCP/IP stack is not re-entrant. The whole stack runs in non-reentrant fashion. So netTask does a "hack" -- it takes a semaphore, runs code in TCP/IP stack, then yields the semaphore. These are not good reasons necessarily, but they are what they are. The performance issues, especially in throughput performance case, are significant. It is possible to think of it this way: you have a system (VxWorks) which tries very hard to minimize interrupt latency and maintain good response time (i.e. real-time). The inherent requirement here goes somewhat against the goal of high throughput. If you have to toggle between interrupt and task level code back and forth for every packet, your interrupt latency is minimized, but you actually do more work per packet. The systems which I have worked on which emphasizes throughput overall do not work this way. The best throughput oriented system (e.g. Network Appliance file server appliances) uses combinations of cooperative multitasking kernel and heuristic (hand-tuned) packet handling / scheduling to maximize throughput while keeping latency low. Such systems also employ very low overhead socket layer (direct access to mbufs from applications). There are a lot of things to consider when trying for the optimal performance (in both throughput and latency). VxWorks network stack is good, but it is not the best performing stack. If you port Linux or BSD on the same hardware and run TCP/IP benchmarks, you will see that Linux and BSD perform better in general. This is not just the VxWorks network stack issue either. It has to do with the overall architecture of VxWorks, being a real-time system. It has to do certain things that other systems do not. Things like keeping latency low. But in reality, the artificial constraints (code!) turn out the end result which provides small benefit in terms of latency with much larger throughput degradation. This is not to fault VxWorks at all, since it is very good at doing real-time stuff. But a lot of VxWorks usage nowadays is in the area of networking. And networking is not necessarily real-time. The minute you throw TCP/IP and ethernet and what not into your OS, your OS is not really hard real-time, at least from overall perspective. Since overall requirement nowadays seems to favor good balance of latency and throughput performance in network portion of VxWorks, it makes a lot of sense to think of how to achieve it. You cannot achieve this by adding zBuf. If you study the design and actual real life performance of the so called zBuf, you will notice that it is no better or worse than normal buffers. There are better ways of solving that "extra copy" problem -- just use mbufs. Also, you cannot help solve this problem by adding a new driver paradigm (END, SENS). You simply introduce more overhead in the code path for very little benefit (if any). In my opinion what should happen (what I should have done while at WRS) is to create alternate runtime behavior for the network traffic. If users wish to use VxWorks in non-realtime way, just for the goal of "fast networking", the users should be given a chance. This can be done. Some of things that should happen : 1. re-think netTask. At minimum, it should be demoted to smaller roll. Right now it is a central clearing house for all network I/O. A packet comes in, netJobAdd'ed, and netTask does everything for the packet for its lifetime. This is done for all packets, all network interfaces, and the entire TCP/IP stack. Not only is this single point of failure (if something bad happens to netTask due to one of the network interfaces the whole network subsystem of VxWorks is down), it is definitely not in the spirit of keeping the realtime nature of the system. At minimum, each network interface should be allowed to have its own task at a desired priority. A packet comes in and handed off directly to each task. The handing off can be done in a simple way, just semGive. Much lower overhead (but there is still task switch overhead). 2. re-think overall runtime. Some attempts are made even in current code to minimize calls to netJobAdd() , at least in some drivers not all. For example, it is silly to call netJobAdd() for every packet that comes in. It helps to see if it is necessary to call netJobAdd() first. If netTask is already running, you do not need to prompt him again to call your function, if your function is written in a loop to handle more than one packet at a time. However, this is insufficient. More system wide consideration to the whole packet processing must be considered. For example, if you have TTCP running for benchmarking, it helps to consider overall system runtime behavior from all the way down in interrupt handler to all the way up in TTCP application, paying attention to what other things are happening in the system in typical situations. That can help "hand tune" your system. 3. re-think buffering. Simpler schemes work better than complex schemes. Latest SENS stacks have more complicated encapsulation around mbuf scheme. When you do things like that you are adding more code for no good reason. What should happen is : pay more attention to the behavior of buffers when system is under high load. Buffering system should be designed to accommodate high load gracefully, arriving at a steady state where buffer inflow and outflow are matched. Otherwise, you have a system that drops a lot of packets, or in some cases just does not work. It affects performance. This is a complex issue and I could spend many hours on this. I'd like to hear from others as well, but I should probably stop writing now. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Gigabit Ethernet performance poll Date: Mon, 4 Mar 2002 12:08:05 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <3c816b0c$1@MAIL.mhogaming.com> <3c827f53$1@MAIL.mhogaming.com> There are three main areas I consider worth considering when working on TCP performance issues. 1. TCP window size: there is no single good answer. I typically try different window sizes until I am satisfied. I change window sizes on receiver and sender, look at the throughput, and study the network sniffer capture (to understand whether there is any stop-and-go in the flow, whether steady state, as Van Jacobsen calls it, has been achieved). 2. data copying. zBuf may or may not help. In my experience, zBuf did not help at all. First make sure the device driver is not doing copying at the low level. Then if you must, just run application code to bypass socket libraries and write / read data via mbuf routines (read uipc_socket.c etc. from BSD source code repositories on web). 3. IP checksum. Not all checksum routines for all CPUs are optimized properly. There are few things that can be done. One thing is to use HW that can do checksum (in the controller) if possible. And also combine data copying with checksum (like Linux). More important is the actual checksum code. Although IP checksum is very simple, there are ways to speed it up. IP checksum is a clever algorithm which allows addition using larger chunks with same result (IP checksum is 16bit add with carry, but you can do 32bit add with carry just the same, for example. You might try 64bit). It also helps to see if you can "unroll" the loop. Instead of having a tight loop adding data, sometimes (especially in a heavily pipelined RISC architecture) it is better to unroll the loop with bunch of "add" instruction statements. The idea is to minimize the jumps caused by the loop which can stall or confuse the pipeline. Keep the pipeline full. And use the delay slots wisely. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: DHCP and WINS Date: Mon, 4 Mar 2002 12:27:02 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <2df4589f.0202280838.15fb4da@posting.google.com> <2df4589f.0203010843.61a63b4e@posting.google.com> Can you use lmhosts file? --------------------------- Newsgroups: comp.os.vxworks Subject: Re: [cancel] tftp get strange files Date: Mon, 04 Mar 2002 21:31:37 +0100 From: ilyas G Organization: Wanadoo, l'internet avec France Telecom Message-ID: <3C83D9A9.9070709@no-spam.guennoun.org> References: Sorry for this post here, the problem is just with the C language. I had forget to end the string Ilyas G wrote: > does anyone have used tftp over vxworks? does it works. > here is my problem. > I use simulator righ now. > i have a tftp server containing toto.txt file > and i have the following code : > ################################## > int dataFd; > int errorFd; > int num; > char buf[5]; > FILE * fdin; > > if ((fdin = fopen ("toto.txt","w")) == NULL) return; > > if (tftpXfer ("90.0.0.254", 69, "toto.txt", "get", "ascii", &dataFd, > &errorFd) == ERROR) return; > while ((num = read (dataFd, buf, sizeof(buf))) > 0) > { > /* write (fdin,buff,num); */ > printf("%s",buf); > } > close (dataFd); > fclose (fdin); > > ############################################### > > the result is not as expected the output looks like : > ###################################### > -> start_tftpd > Tîîîîîîîhîîîîîîîiîîîîîîîsîîîîîîî îîîîîîîiîîîîîîîsîîîîîîî > îîîîîîîtîîîîîîîhîîîîîîî > eîîîîîîî îîîîîîîfîîîîîîîiîîîîîîîrîîîîîîîsîîîîîîîtîîîîîîî > îîîîîîîlîîîîîîîiîîîîîîî > nîîîîîîîeîîîîîîî îîîîîîîoîîîîîîîfîîîîîîî îîîîîîîaîîîîîîî > îîîîîîîfîîîîîîîoîîîîîîî > oîîîîîîî îîîîîîîfîîîîîîîiîîîîîîîlîîîîîîîeîîîîîîî,îîîîîîî > îîîîîîî2îîîîîîînîîîîîîîdîîîîîîî > îîîîîîîlîîîîîîîiîîîîîîîgîîîîîîînîîîîîîîeîîîîîîîs > îîîîîîî > îîîîîîî3îîîîîîîrîîîîîîîdîîîîîîî > îîîîîîîlîîîîîîîiîîîîîîîgîîîîîîînîîîîîîîeîîîîîîîs > îîîîîîî > îîîîîîî4îîîîîîîtîîîîîîîhîîîîîîî > îîîîîîîlîîîîîîîiîîîîîîînîîîîîîîeîîîîîîî îîîîîîîf > îîîîîîîrîîîîîîîoîîîîîîîmîîîîîîî > îîîîîîîfîîîîîîîiîîîîîîîlîîîîîîîeîîîîîîîsîîîîîîî > îîîîîîîEîîîîîîîNîîîîîîîDîîîîîîî îîîîîîî > îîîîîîîvalue = 0 = 0x0 > -> > ################################ > > each time the read is called, only one char is returned and the string > is completed by many spcial char. > > does any one have a hint? > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Problem in accessing PCI I/O Registers in IBM ppc 405GP Date: 4 Mar 2002 13:29:03 -0800 From: arun4vxworks@indiatimes.com (Arun Prasad) Organization: http://groups.google.com/ Message-ID: References: <3C7F9C21.48433D2B@varndellengineering.com> <3C7FC51C.F75E564D@notifier-is.net> Dear Micheal, Are you sure VxWorks does not support 64 bit PCI? Could anyone clarify this? I don't have enough knowledge on VxWorks and how it handles PCI stuff, though I have a bit knowledge on PCI and how Linux handles it. Once I was working on writing a DOS driver for externel IDE controller (PCI based). I knew the crude way of handling PCI/DMA/PIO programming (Infact I did the same thing on OS/2 also) but not on how VxWorks handles it. We/I can't go for the third solution which you have mentioned :-( It would be helpful if you could eloborate on the first two solutions. We already tried to write our own routine to configure our card's 64bit BAR address registers (you coult see that at the start of this mail chain). And I also tried to make entries in sysPhysMemDes[], but nothing worked out. I don't know what I'm missing. But most of the thing I do/did on a trial and error basis as my knowledge on VxWorks is not sufficient. I'm learning. It has become very critical now and we are nearing our deadline. Earlier replies/suggestions/answers would be of great help. One more question, If at all our card requires only 32 bit BAR memory Registers, what should I do to access these memory regions after reading the BARs from PCI config space? Thanks again. Regards Arun "Michael Lawnick" wrote in message news:... > Hi Arun, > > AFAIK, VxWorks does not support 64bit PCI. It interprets your 2 double BARs > as 4 seperate BARs and sets up access to those you find valid values. This > won't work for you: > You have access to I/O-mapped region, as PCI autoconfig found the regions > and the region was already added in sysPhysMemDesc[]. For your mem mapped > region this failed and your MMU complains that you try to access a region > that is not enabled. > > I can see two {three} possible solutions: > a) Enable the considered region in your sysPhysMemDesc[] by hand (don't > forget the local2PCI bridge !) and setup your NIC's 64bit mem BARs by hand > in a way that their windows are placed accordingly. > b) Disable MMU. > { c) Use a more common NIC ;-) } > HTH > Michael > > -- > Mit freundlichen Grüßen, > Michael Lawnick > ============================================== > SOFTEC GmbH Tel +49-731-96600-0 > Promenade 17 Fax +49-731-96600-23 > D-89073 Ulm Michael Lawnick > Germany lawnick@softec.de > ============================================== > > "Arun Prasad" schrieb im Newsbeitrag > news:e38d912c.0203040508.294513b5@posting.google.com... > > Hi, > > > > Now, as per my previous mail, I'm able to access PCI I/O mapped > > region. I'm able to read or write into our PCI based Card's registers. > > All I had to do was to add 0xe8000000 (Address translation/mapping). > > > > Now, when I access our memory mapped region, I'm getting > > > > "protection violation/data access " > > > > error. I haven't done any mapping of memory mapped BARs so far. I'm > > trying to figure out what macro needs to be used or what constant > > needs to be added for addres translation/mapping. > > > > If anyone already faced this problem and solved it, please do let me > > know what I'm missing to make it work. > > > > Regards > > Arun > > > > > Arun --------------------------- Newsgroups: comp.os.vxworks Subject: Re: netTask limits high-frame-rate transfers in Gigabit Ethernet Date: Mon, 4 Mar 2002 13:38:19 -0800 From: "Jerry Marcinko" Organization: Newshosting.com - Highest quality at a great price! www.newshosting.com Message-ID: <3c83e9a6@MAIL.mhogaming.com> References: <3c82e042@MAIL.mhogaming.com> This is good information. I do not think that the netJobAdd ring queue itself is a problem, but calling into the stack for processing even when there is nothing to do seems to have something to do with it. We generally avoid the problem by: A) once an interrupt occurs, we disable the interrupt and schedule a netTask. We then process the entire receive buffer descriptor list for Ethernet frames and also the transmit completions. As the netTask scheduling latency increases, we process many more receive frames per interrupt and netTask invokation which lowers the impact of the netTask overhead. B) However, with short frames there is enough spacing on the wire to where we get into a situation where we process a small number of frames per netTask event, typically 1-3. This is where the netTask overhead impacts us the most as with short frames, the line utilization is low, but the frame count is high. Using "interrupt coalescing" or deferral of the hardware interrupt seems to fix this pretty well as the interrupt can be deferred for 100 microseconds or more allowing many frames to queue up on the receive descriptor. So increasing the interrupt latency making it less real-time, but lessens the impact of interrupt time and task-levels stack processing. However, my feeling is that this netTask overhead is somehow unjustified and could be addressed, however, to users of VxWorks, it is just a block box, so it is difficult to say. Jerry "Hwa Jin Bae" wrote in message news:u87jlqgek8dh95@corp.supernews.com... > I think you might be right about this point. The netJobAdd (and netTask) > presents some problems especially in throughput and latency performance when > using very high speed networks. I am at least partly responsible for this > unfortunately. The problem is a little more involved than just netTask. > > One of the reasons why netTask exists is to allow packet handling to happen > in task level code. Since most of kernel facilities (e.g. semTake) cannot > be called from within interrupt level code, it is necessary to make sure > most of packet handling code (TCP/IP stack) happens in task level. Doing a > netJobAdd() is one solution for this. netJobAdd() is nothing but a msgQ. > You send a message to netTask to do the job (I got a packet, so process it > at task level). It also helps to minimize interrupt latency (interrupts are > locked out for short time since most of the work is done in task level). > > Another reason why netTask exists is because VxWorks TCP/IP stack is not > re-entrant. The whole stack runs in non-reentrant fashion. So netTask > does a "hack" -- it takes a semaphore, runs code in TCP/IP stack, then > yields the semaphore. > > These are not good reasons necessarily, but they are what they are. > > The performance issues, especially in throughput performance case, are > significant. It is possible to think of it this way: you have a system > (VxWorks) which tries very hard to minimize interrupt latency and maintain > good response time (i.e. real-time). The inherent requirement here goes > somewhat against the goal of high throughput. If you have to toggle > between interrupt and task level code back and forth for every packet, your > interrupt latency is minimized, but you actually do more work per packet. > The systems which I have worked on which emphasizes throughput overall do > not work this way. The best throughput oriented system (e.g. Network > Appliance file server appliances) uses combinations of cooperative > multitasking kernel and heuristic (hand-tuned) packet handling / scheduling > to maximize throughput while keeping latency low. Such systems also employ > very low overhead socket layer (direct access to mbufs from applications). > > There are a lot of things to consider when trying for the optimal > performance (in both throughput and latency). VxWorks network stack is > good, but it is not the best performing stack. If you port Linux or BSD on > the same hardware and run TCP/IP benchmarks, you will see that Linux and BSD > perform better in general. This is not just the VxWorks network stack > issue either. It has to do with the overall architecture of VxWorks, being > a real-time system. It has to do certain things that other systems do not. > Things like keeping latency low. But in reality, the artificial constraints > (code!) turn out the end result which provides small benefit in terms of > latency with much larger throughput degradation. This is not to fault > VxWorks at all, since it is very good at doing real-time stuff. But a lot > of VxWorks usage nowadays is in the area of networking. And networking is > not necessarily real-time. The minute you throw TCP/IP and ethernet and > what not into your OS, your OS is not really hard real-time, at least from > overall perspective. > > Since overall requirement nowadays seems to favor good balance of latency > and throughput performance in network portion of VxWorks, it makes a lot of > sense to think of how to achieve it. You cannot achieve this by adding > zBuf. If you study the design and actual real life performance of the so > called zBuf, you will notice that it is no better or worse than normal > buffers. There are better ways of solving that "extra copy" problem -- > just use mbufs. Also, you cannot help solve this problem by adding a new > driver paradigm (END, SENS). You simply introduce more overhead in the code > path for very little benefit (if any). > > In my opinion what should happen (what I should have done while at WRS) is > to create alternate runtime behavior for the network traffic. If users wish > to use VxWorks in non-realtime way, just for the goal of "fast networking", > the users should be given a chance. This can be done. Some of things > that should happen : > > 1. re-think netTask. At minimum, it should be demoted to smaller roll. > Right now it is a central clearing house for all network I/O. A packet > comes in, netJobAdd'ed, and netTask does everything for the packet for its > lifetime. This is done for all packets, all network interfaces, and the > entire TCP/IP stack. Not only is this single point of failure (if something > bad happens to netTask due to one of the network interfaces the whole > network subsystem of VxWorks is down), it is definitely not in the spirit of > keeping the realtime nature of the system. At minimum, each network > interface should be allowed to have its own task at a desired priority. A > packet comes in and handed off directly to each task. The handing off can > be done in a simple way, just semGive. Much lower overhead (but there is > still task switch overhead). > > 2. re-think overall runtime. Some attempts are made even in current code to > minimize calls to netJobAdd() , at least in some drivers not all. For > example, it is silly to call netJobAdd() for every packet that comes in. It > helps to see if it is necessary to call netJobAdd() first. If netTask is > already running, you do not need to prompt him again to call your function, > if your function is written in a loop to handle more than one packet at a > time. However, this is insufficient. More system wide consideration to > the whole packet processing must be considered. For example, if you have > TTCP running for benchmarking, it helps to consider overall system runtime > behavior from all the way down in interrupt handler to all the way up in > TTCP application, paying attention to what other things are happening in the > system in typical situations. That can help "hand tune" your system. > > 3. re-think buffering. Simpler schemes work better than complex schemes. > Latest SENS stacks have more complicated encapsulation around mbuf scheme. > When you do things like that you are adding more code for no good reason. > What should happen is : pay more attention to the behavior of buffers when > system is under high load. Buffering system should be designed to > accommodate high load gracefully, arriving at a steady state where buffer > inflow and outflow are matched. Otherwise, you have a system that drops a > lot of packets, or in some cases just does not work. It affects > performance. > > This is a complex issue and I could spend many hours on this. I'd like to > hear from others as well, but I should probably stop writing now. > > > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Gigabit Ethernet performance poll Date: Mon, 4 Mar 2002 13:49:00 -0800 From: "Jerry Marcinko" Organization: Newshosting.com - Highest quality at a great price! www.newshosting.com Message-ID: <3c83ec26@MAIL.mhogaming.com> References: <3c816b0c$1@MAIL.mhogaming.com> <3c827f53$1@MAIL.mhogaming.com> Regarding item #3 (IP checksum) below, I think an issue here is advanced features in the network stack such as checksum offloading and support for jumbo frames are currently not supported, and very few users have access to the source code to address it. We do not copy data buffers on tx or rx in our driver. We implement scatter on transmit as the controller supports it well. Zero-copy may or may not work well depending on what your applications does with the data. We get better blaster/blastee performance using the zero-copy API, but then again we are not processing the data or manipulating the zbufs. We typically see our best performance with large TCP window sizes of 256K, but tests have shown that we can do almost as well with 100K windows. "Hwa Jin Bae" wrote in message news:u87l2em2bont4a@corp.supernews.com... > There are three main areas I consider worth considering when working on TCP > performance issues. > > 1. TCP window size: there is no single good answer. I typically try > different window sizes until I am satisfied. I change window sizes on > receiver and sender, look at the throughput, and study the network sniffer > capture (to understand whether there is any stop-and-go in the flow, whether > steady state, as Van Jacobsen calls it, has been achieved). > > 2. data copying. zBuf may or may not help. In my experience, zBuf did not > help at all. First make sure the device driver is not doing copying at the > low level. Then if you must, just run application code to bypass socket > libraries and write / read data via mbuf routines (read uipc_socket.c etc. > from BSD source code repositories on web). > > 3. IP checksum. Not all checksum routines for all CPUs are optimized > properly. There are few things that can be done. One thing is to use HW > that can do checksum (in the controller) if possible. And also combine data > copying with checksum (like Linux). More important is the actual checksum > code. Although IP checksum is very simple, there are ways to speed it up. > IP checksum is a clever algorithm which allows addition using larger chunks > with same result (IP checksum is 16bit add with carry, but you can do 32bit > add with carry just the same, for example. You might try 64bit). It also > helps to see if you can "unroll" the loop. Instead of having a tight loop > adding data, sometimes (especially in a heavily pipelined RISC architecture) > it is better to unroll the loop with bunch of "add" instruction statements. > The idea is to minimize the jumps caused by the loop which can stall or > confuse the pipeline. Keep the pipeline full. And use the delay slots > wisely. > > > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Gigabit Ethernet performance poll Date: Mon, 4 Mar 2002 15:41:11 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <3c816b0c$1@MAIL.mhogaming.com> <3c827f53$1@MAIL.mhogaming.com> <3c83ec26@MAIL.mhogaming.com> Sounds like you know the performance issue better than me. I am curious as to how you are able to set TCP window so big on VxWorks side. Unless code has changed, the max reserved value for socket level buffer is set at 64k. You can't set TCP window bigger than that. If you tried to change the TCP window via socket options it will fail for values greater than 64K. Has this changed in some version of VxWorks I am not aware of? One thing about using "buffer loaning" in drivers to avoid copies is that you probably are better off doing the loaning for data that is bigger than some value. Recommended procedure (undocumented of course) is to do some experiments and find this threshold value. What I find is that typically if the packet is smaller than 100 bytes, it makes no sense to adhere to the loaning method. You end up wasting a lot of valuable nice big buffers and use only small part of it. It is sometimes better to do the copying for small packets. This has the side-effect of changing the runtime behavior as well, for small packet cases. This is not a great solution, but something to consider. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: netTask limits high-frame-rate transfers in Gigabit Ethernet Date: Mon, 4 Mar 2002 15:44:05 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <3c82e042@MAIL.mhogaming.com> <3c83e9a6@MAIL.mhogaming.com> I also believe the current netTask model is somehow unjustified. That is a good diplomatic way of describing it. :-) However, fixing it is a little tricky. As you mention, hardware "interrupt coalescing" helps for small size packets. The same can be implemented in software. Essentially the same thing is done in software in some systems I worked on (not VxWorks based, but custom embedded kernels running a port of BSD stack). VxWorks can do it too, but it involves a lot of code changes. And you will need permission/ source code from WRS. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: tNetTask takes too long? Date: Mon, 4 Mar 2002 18:16:56 -0600 From: Dinker Charak Organization: Fermi national Accelerator Lab Message-ID: References: Hi All, Refreshing: We had a strange problem of tNetTask taking around 4.5 ms each 5 sec. It turns out that each 5 sec the miiLib adds a job to tNetTask for checking if the PHY is connected or not. It turns out that it is during this reading there is an abnormal delay. Anyone any pointer or suggestion what could be wrong? The WRS support person's system does not show the delay. But two of our systems on different sub-nets show the problem (one is a MV2301 and another MV2400). We are running vxWorks 5.4.2 with June 2001 driver update installed. Thanks, Dinker --------------------------- Newsgroups: comp.os.vxworks Subject: Traceroute: Porting code question Date: Tue, 05 Mar 2002 00:51:17 GMT From: yang_christopher@hotmail.com (Chris Yang) Message-ID: <9EUg8.5745$aFN.542@news1.bloor.is> Hello, I was wondering if anybody has tried to port over Van Jacobson's BSD version of traceroute to vxWorks? I've been successful in building this code under the tms and 5.4 environment, but when I perform a traceroute to another interface it failes (pings are good). Is there a flaw with this code, besides the gethost* or getaddr* function calls? I highly doubt that windriver has an unsupported version of traceroute, but if it exists can somebody tell me? Thanks Chris --------------------------- Newsgroups: comp.os.vxworks Subject: Re: GP fault from "hello World" Date: Tue, 05 Mar 2002 01:00:10 GMT From: yang_christopher@hotmail.com (Chris Yang) Message-ID: References: Besides following doug's advice in checking to see if double's are supported. You could spawn your method sp fictiousmethodname,param1, blah, blah. then check the task identifier (lets say 't1') by using ->tt t1. and then check your registers ->ti t1 If you have any global variables, try making them static instead. (I ran into a problem with gvars and found myself making them static gvars). chris - - "doug dotson" wrote: >Do you have floting point support? Try taking out the extraneous >stuff and leave just the printf. Did you compile it for the right target? >I recently accidently did that. > >doug > >"Jon Newbill" wrote in message >news:3C7C549B.38B8352B@bitworkssystemsDELETETHIS.com... >> Program now reads: >> #include >> #include >> >> int hello() >> { >> int a; >> double pi = 3.141592; >> printf("hello world\n"); >> >> } >> >> Results are identical to previous. GP faults at on break on entry and on >> printf call. Note that I get these errors on the sample programs also >> (cobble.c). >> >> Jon Newbill >> >> >> Michael Lawnick wrote: >> >> > Hi Jon, >> > >> > you must not use main(). >> > NewBie error #1 !! >> > >> > First #include should always be >> > #include >> > NewBie error #2 !! >> > >> > Try it again and if the error persists, post again. >> > -- >> > Mit freundlichen Grüßen, >> > Michael Lawnick >> > ============================================== >> > SOFTEC GmbH Tel +49-731-96600-0 >> > Promenade 17 Fax +49-731-96600-23 >> > D-89073 Ulm Michael Lawnick >> > Germany lawnick@softec.de >> > ============================================== >> > >> > "Jon Newbill" schrieb im >Newsbeitrag >> > news:3C7AD68C.87BA3075@bitworkssystemsDELETETHIS.com... >> > > I'm getting a GP fault trying to run a simple hello world on a VMIC >> > > VMIVME7750 Pentium III (GNU tools). >> > > >> > > #include >> > > int main() >> > > { >> > > int a; >> > > double pi = 3.141592; >> > > printf("hello world\n"); >> > > } >> > > >> > > This loads without error but the instant I try to run and break at the >> > > entry point, I get >> > > >> > > General Protection Fault >> > > Program Counter: 0x02174d92 >> > > Status Register: 0x00010212 >> > > Error Code: 0x0000001a >> > > Task: 0x1fcbe5c8 "tDbgTask" >> > > >> > > I can single step the program but continue to get another GP >> > > fault on the printf() call even though it does print "hello world" to >> > > the >> > > console. It appears that all CALL's cause a GP fault. This occurs in >> > > all programs I try to debug. Does anyone know where to look up the >> > > Error Code returned by General Protection fault. errno.h shows 0x1A >> > > (26) as file name too long which doesn't make any sense. >> > > >> > > Any help would be appreciated. >> > > >> > > Jon Newbill >> > > jonUN@bitworkssystemsREMOVSPAM.com >> > > >> > > >> > > >> --------------------------- Newsgroups: comp.os.vxworks Subject: Re: usrAppInit.c(function call)question Date: Tue, 05 Mar 2002 01:09:10 GMT From: yang_christopehr@hotmail.com (Chris Yang) Message-ID: References: Few things "vxWorks.h" -> blah blah everything else encaped with <>. Any standard lib should be encaped with <>. As for you worrying about externing C, don't worry, since the file name is already a .c the compiler is smart enough. ;) Assuming that your MAIN() method exists, then include the sucker in the file or reference from header. Include the header file in your build and in your file just in case. One last thing about .. MAIN() DON'T EVER USE MAIN(). All methods are globalized. I think somebody in this newsgroup said that people who use main() method names are newbies. but whatever... right now MAIN doesn't exist. It's only a forward decl. I can make millions of forward decls and the compiler won't complain unless I use them in the code, which would lead to linking probs... sounds like what you're facing. chris alimohd@logiceastern.com (Ali) wrote: >david lindauer wrote in message news:<3C74F5C9.91E2C2E3@notifier-is.net>... >> it has to be defined in a file somewhere, with the same case. If defined in >> a C++ file make sure you prefix it with 'extern "C" ' to let the compiler >> know not to mangle the name. >> >> I don't know if it is a good idea to call a main routine in usrAppInit.C or >> not; we kind of assume the initialization is not done yet and just spawn >> our main routine as a task so it will run when things get going. >> >> David >> >> LEE MYUNG SUK wrote: >> >> > Using Tornado 2.0 (UNIX) >> > CPU : MPC860 >> > >> > I created the project on bootable. >> > And add project on downloadable of ppc860gnu tool chain. >> > Compiled on ppc860gnu.out. >> > >> > >> > #include "vxWorks.h" >> > #include "taskLib.h" >> > >> > void MAIN(); >> > >> > void usrAppInit (void) >> > { >> > #ifdef USER_APPL_INIT >> > USER_APPL_INIT; /* for backwards compatibility */ >> > #endif >> > >> > /* add application specific code here */ >> > MAIN(); >> > } >> > but, (defualt)build error message - undefined reference to 'MAIN' >> > >> > what's wrong? >> > >> > please answer me, and thank you.. > >You are making a right call to the function but have you included this >file in build specifications..You just write a seperate application >and then then include the path of the object file in extra modules and >then call the funcyion here where you are calling it. >you neeed not to write the whole code here. >speaking for myself >ali --------------------------- Newsgroups: comp.os.vxworks Subject: Initialize multiple ethernet interface after boot vxworks? Date: Tue, 5 Mar 2002 02:19:21 +0000 (UTC) From: "Choo Joung-hoon" Organization: Mailgate.ORG Server - http://www.Mailgate.ORG Message-ID: hello, all vxworks guys, now, I want initialize one more ethernet interface(IP:192.168.2.249) after boot vxworks. So, I made following function. but the result is not successful. =================================================================== void sttEnetInit () { char devName[] = MOT_FCC_DEV_NAME; END_TBL_ENTRY endEntry = { 1, sttEndLoad, "", 1, NULL, FALSE}; END_TBL_ENTRY *pDevTbl = &endEntry; BOOL attached = FALSE; /* driver is attached */ END_OBJ *pEnd; unsigned int unitNum = 1; char ipAddr[] = "192.168.2.249"; unsigned int netmask ; muxDevLoad (pDevTbl->unit, pDevTbl->endLoadFunc, pDevTbl->endLoadString, pDevTbl->endLoan, pDevTbl->pBSP); /* Try an END device first */ pEnd = endFindByName (devName, unitNum); if (!attached && (pEnd != NULL)) { if (muxDevStart (pEnd) != OK) { printf("Failed to start device=%s\n", devName); return(ERROR); } if (muxIoctl(pEnd, EIOCGMIB2, (char *)&sttendM2Tbl) == ERROR) return(ERROR); if (ipAttach (unitNum, devName) != OK) { printf ("Failed to attach TCP/IP to device\n "); return (ERROR); } netmask = 0; bootNetmaskExtract (ipAddr, &netmask); printf ("Attached TCP/IP interface to %s%d.\n", devName,unitNum); attached = TRUE; } /* configure the device */ if (usrNetIfConfig (devName, unitNum, ipAddr, /*(char *) NULL*/"jhchoo", netmask) != OK) return (ERROR); } ======================================================================= * My console print following information ======================================================================= stt755_r> stt755_r>muxShow Device: sttfcc Unit: 0 Description: Motorola FCC Ethernet Enhanced Network Driver Protocol: IP 4.4 ARP Type: 2054 Recv 0x4eaec Shutdown 0x4edb0 Protocol: IP 4.4 TCP/IP Type: 2048 Recv 0x4eaec Shutdown 0x4ece8 Device: sttfcc Unit: 1 Description: Motorola FCC Ethernet Enhanced Network Driver Protocol: IP 4.4 ARP Type: 2054 Recv 0x4eaec Shutdown 0x4edb0 Protocol: IP 4.4 TCP/IP Type: 2048 Recv 0x4eaec Shutdown 0x4ece8 value = 0 = 0x0 stt755_r> stt755_r>routeShow ROUTE NET TABLE destination gateway flags Refcnt Use Interface - ---------------------------------------------------------------------------- 192.168.1.0 192.168.1.223 101 0 0 sttfcc0 192.168.2.0 192.168.2.249 101 0 0 sttfcc1 - ---------------------------------------------------------------------------- ROUTE HOST TABLE destination gateway flags Refcnt Use Interface - ---------------------------------------------------------------------------- 127.0.0.1 127.0.0.1 5 1 0 lo0 - ---------------------------------------------------------------------------- value = 77 = 0x4d = 'M' stt755_r> stt755_r> stt755_r>hostShow hostname inet address aliases - -------- ------------ ------- stt755_r 192.168.1.223 localhost 127.0.0.1 tornado 192.168.1.29 jhchoo 192.168.2.249 value = 0 = 0x0 stt755_r> stt755_r> stt755_r>ifShow sttfcc (unit number 0): Flags: (0x8063) UP BROADCAST MULTICAST ARP RUNNING Type: ETHERNET_CSMACD Internet address: 192.168.1.223 Broadcast address: 192.168.1.255 Netmask 0xffffff00 Subnetmask 0xffffff00 Ethernet address is 00:00:aa:00:00:df Metric is 0 Maximum Transfer Unit size is 1500 480 packets received; 271 packets sent 177 multicast packets received 2 multicast packets sent 0 input errors; 0 output errors 0 collisions; 0 dropped lo (unit number 0): Flags: (0x8069) UP LOOPBACK MULTICAST ARP RUNNING Type: SOFTWARE_LOOPBACK Internet address: 127.0.0.1 Netmask 0xff000000 Subnetmask 0xff000000 Metric is 0 Maximum Transfer Unit size is 32768 0 packets received; 0 packets sent 0 multicast packets received 0 multicast packets sent 0 input errors; 0 output errors 0 collisions; 0 dropped sttfcc (unit number 1): Flags: (0x8063) UP BROADCAST MULTICAST ARP RUNNING Type: ETHERNET_CSMACD Internet address: 192.168.2.249 Broadcast address: 192.168.2.255 Netmask 0xffffff00 Subnetmask 0xffffff00 Ethernet address is 00:00:aa:00:00:f9 Metric is 0 Maximum Transfer Unit size is 1500 0 packets received; 0 packets sent 0 multicast packets received 0 multicast packets sent 0 input errors; 0 output errors 0 collisions; 0 dropped value = 29 = 0x1d stt755_r> ====================================================================== Above [ifShow] is done after [ping "192.168.2.222"] is done. I think that above send packet count of "sttfcc1" must increase. right? many receive packet is stored in driver's buffer. But above receive packet count is 0. why? - -- Posted via Mailgate.ORG Server - http://www.Mailgate.ORG --------------------------- Newsgroups: comp.os.vxworks Subject: Re: MPC860 SMC2 in VxWorks Date: Tue, 5 Mar 2002 10:39:08 +0800 From: "David Wei" Organization: Bentium Ltd. (CN99) Message-ID: References: If you are using vxWorks to develop the Bsp, you just need to modify the template of the Bsp files in the $(TORNADO)/target/config/BSP_DIR. At the top of file "sysSerial.c", you will see the SMC2's configuration of the dual port ram. If you wanna change it , you could change it here. And, if you wanna change the baud of the serial port too, you 'd better configure the parameter of the bsp project . The default parameter of bsp's project set the serial port baud to 9600. Commonly we just need to change the parameter of the baud. "Jin.r Hur" ??????:bbc5b6bc8a56d7bbd467622a12be0ca3.15384@mygate.mailgate.org... > I'm a user who is trying to make a BSP for SMC2 in MPC860, but after I > initialized SMC2 registers, serial communication (UART) was fail. And > after reset, serial communication become to OK. > SMC2 BSP was inserted into Object, so we couldn't fix it. > If anyone has any idea about this kindly, give me the solution. > > > -- > Posted via Mailgate.ORG Server - http://www.Mailgate.ORG --------------------------- Newsgroups: comp.os.vxworks Subject: Re: tNetTask takes too long? Date: Mon, 4 Mar 2002 19:14:09 -0800 From: "Jerry Marcinko" Organization: Newshosting.com - Highest quality at a great price! www.newshosting.com Message-ID: <3c84385c@MAIL.mhogaming.com> References: As you probably know the netTask uses a single job queue for all jobs, so any event that takes too much processing blocks others in the queue. If you have already found that a driver that is reading the PHY status thru the MI is the culprit, then this sounds very likely. The MI interface is a serial bus interface much like a serial eeprom with a serial bitstream command and response frame. For a read command, there is something like a 14-bit preamble followed by a 16-bit command written followed by a 16-bit response all done in for-next loops, sometimes with delays added. Many times, programmers unaware of the exact timing requirements add delays during clocking out (or in) of the serial bitstream that can add up to significant delays which may be your problem. You will need to determine which driver is causing the delay and then look into the timing of the MI access routines in the code. Jerry "Dinker Charak" wrote in message news:a612lk$prf$1@info4.fnal.gov... > Hi All, > > Refreshing: We had a strange problem of tNetTask taking around 4.5 ms each > 5 sec. It turns out that each 5 sec the miiLib adds a job to tNetTask for > checking if the PHY is connected or not. > > It turns out that it is during this reading there is an abnormal delay. > > Anyone any pointer or suggestion what could be wrong? > > The WRS support person's system does not show the delay. But two of our > systems on different sub-nets show the problem (one is a MV2301 and another > MV2400). > > We are running vxWorks 5.4.2 with June 2001 driver update installed. > > Thanks, > Dinker > > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Tornado 2.0.2 With gcc 2.96 Date: 5 Mar 2002 04:27:04 GMT From: Denis Perelyubskiy Message-ID: References: * shoz [03-Sun-02 23:00 -0800]: > > Did any body use T2 update for gcc 2.96 on x86 ? Did any > body use gcc 2.96 with Tornado on x86 ? is 2.96 something you can get from VxWorks? Last I heard from them, they were working, and would have an update sometime close to summer, and in the meantime you are stuck with 2.7.2 (unless you compile something yourself) thanks, denis - -- if you want to reply by mail, please tweak my address in a reasonable way. sorry for the inconvenience. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: How to find the interfaces in my target Date: 4 Mar 2002 21:02:55 -0800 From: bryanramesh@yahoo.com (Bryan) Organization: http://groups.google.com/ Message-ID: References: <94ebff4d.0203041118.4a8b8f19@posting.google.com> Hi, I think assuming lo0 as the first interface is not a good way of programming. There might some way of doing it. Yes ifShow will provide the info, but again how ifShow will be coded. THey might be using ioctls only. But i tried it in linux it worked. But in VxWOrks the same is not providing the desired result. Some extra junk is also printed. Some where am missing. Let me see. In case if anybody have a readymade solution kindly let me know. THanks, Bryan ================================================================ tolu.makinde@strixsys.com (Tolu Makinde) wrote in message news:<94ebff4d.0203041118.4a8b8f19@posting.google.com>... > Try "ifShow" from the target shell. > > > bryanramesh@yahoo.com (Bryan) wrote in message news:... > > Hi, > > > > I want to find the interfaces exist in my target when i initialise my > > module. I dont find any special call to do that. With the help of > > ifnet structure we can do it or what. But how to do it. Every target > > will have "l0" as loopback address interface name. If we give that and > > if we use the ifnet structure's next pointer means, is that possible > > to get all the interface names and their properties while > > initialising. Kindly help me in this regard. > > > > Thanks, > > Bryan --------------------------- Newsgroups: comp.os.vxworks Subject: Re: PPP problem Date: 4 Mar 2002 22:49:31 -0800 From: jayaram@mistralsoftware.com (Jayaram) Organization: http://groups.google.com/ Message-ID: <2fcdc239.0203042249.7fd69bf5@posting.google.com> References: <3C7E0A02.3F646C90@sepro-robotique.com> Emmanuel Herbreteau wrote in message news:<3C7E0A02.3F646C90@sepro-robotique.com>... > Hi, > > I need help for a PPP problem with VxWorks 5.4 (latest patches) > > A computer is connected to my target using a RS232/PPP > link at 38400 bauds, and then the computer get > files from the target with FTP > (this is the latest FTP server from the DOSFS2 CD-Rom). > > It works fine with medium size files (ie: 100 files > of 64KB), but when the computer read quickly a great number > of small size (ie :15 files of 2KB), the PPP link locks > after 8 files : > > - Windows NT reports CRC errors in the dial-up window > - the FTP server on the target failed to allocate a new socket > - sometimes the target crash. > > I think it should be an overflow problem in the NetTask > or in the PPP driver... Does anyone know the solution ? > How to solve this problem ? Hi, I also faced the same problem few days back,but i didn't noticed when i get that problem to me.what i thought it was time critical issue,just i changed the size of the mblks and cblks and rebooted the target,after that i didn't faced such kind of problem.U please try by increasing the mbls and cblks. if not solved please come back we will try as our level best.. Regards, - -Jayaram. --------------------------- Newsgroups: comp.os.vxworks Subject: Reply from Motorola SPS Customer Support Team Date: Tue, 5 Mar 2002 15:10:14 +0800 From: "David Wei" Organization: Bentium Ltd. (CN99) Message-ID: References: In reply to your Service Request SR 1-27475673 (see details below): QMC microcode in 860SAR is exactly the same as in 860MH, no changes is made to the PRAM layout. The only possible solution is the SMC relocation patch available for free from the Web, but you will loose first 32 channels with it. - ------- Details of your request: ------- Date Opened : 28.02.02 19:28:07 Product : XPC850SRZT50BU Cust Part Nbr: Category: Technical Request Topic : Technical Request Subject: Difference between MPC860SAR and MPC860MH Description : In the MPC860MH, if I configure the SCC4 to work in the QMC mode, I couldn't use SMC2 because of the parameter ram confliction. My question: whether or not the MPC860SAR could solute this confliction. - ------- End of request details ------- --------------------------- Newsgroups: comp.arch.storage,comp.periphs.scsi,comp.os.vxworks Subject: Re: source code for SCSI Fibre Channel implementation Date: Tue, 05 Mar 2002 07:08:22 GMT From: "J. J. Farrell" Organization: EarthLink Inc. -- http://www.EarthLink.net Message-ID: References: <5c04bc56.0202272342.124108d6@posting.google.com> "UK Gary" wrote in message news:a5vv4c$i08$1@helle.btinternet.com... > > "J. J. Farrell" wrote in message > news:5c04bc56.0202272342.124108d6@posting.google.com... > > I'm looking for the source code of a C (or C++) implementation > > of the 'SCSI over Fibre Channel' stack - SCSI commands at the > > top and Fibre Channel Frames at the bottom. Does anyone know of > > an available implementation, free or commercial? > > All vendors of Fibre Channel chips work pretty much the same way -- you sign > an NDA, then you get a hex file containing microcode which you have to > transfer to the FC chip, plus a simple bit of c code which is the interface > to the microcode engine. This c code is platform agnostic -- it simply > assumes that you have a PCI bus which of course is the only way to talk to > the chips. The microcode which executes entirely inside the FC chip > implements almost the entire FC protocol. If you are a target device, you > are responsible for decoding the SCSI CDB's, and pointing the FC chip > towards the appropriate scatter-gather lists in memory. When you sign the > NDA you may or may not get access to the chip level registers (which can > only be accessed in most cases by the microcode inside the chip which means > you would need to use their microassembler), but none the less I assure you > that you do not have the required expertise to program the chip at that > level. An interesting assurance. On what do you base it? > Besides, it's just not necessary. Doesn't that rather depend on what I'm doing? > The c code that you get from the > chip company doesn't care at all about whether you are vxworks or Windows or > Mac or whatever. > > The only exceptions to the above statements are if you use a FC chip > designed to go on a disk drive. In this case, the chip vendor will provide > you with a very simple reference implementation in source code, plus a > special assembler. However, this SDK is very tightly controlled, so unless > you are Seagate or Maxtor or can prove multi-thousand volume potential, give > up. Thanks for posting, but I'm afraid your comments aren't relevant in this case. I may not know much, but I know what I need at the moment. I need a C implementation of the FCP/FC stack giving initiator and target mode access at the top and FC-2 frames at the bottom. It looks like there aren't many available ... --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Tornado 2.0.2 With gcc 2.96 Date: 4 Mar 2002 23:56:16 -0800 From: igtorque@eliop.es (=?ISO-8859-1?Q?Ignacio_Gonz=E1lez?=) Organization: http://groups.google.com/ Message-ID: <9ec53d11.0203042356.73d7b673@posting.google.com> References: shoz@elbit.co.il (shoz) wrote in message news:... > Hi > Did any body use T2 update for gcc 2.96 on x86 ? > Did any body use gcc 2.96 with Tornado on x86 ? > thanks oz No. I wish I did, if it existed. I need C++ namespaces (to use CORBA without nasty classes inside classes to simulate namespaces.) --------------------------- Newsgroups: comp.os.vxworks Subject: Re: error msg: trcStack aborted: error in frame Date: Tue, 05 Mar 2002 09:11:41 +0100 From: Markus Pietrek Organization: FS Forth Systeme GmbH Message-ID: References: <3c839a37$1@brateggebdc5.br-automation.co.at> Werner Schiendl wrote: > Hi, > > for me this sounds as if the stackframe of some routine of the call stack > does not meet the expectations of trcStack(). > Like if a different compiler were used for portions of the stuff. > > Did you rebuild everything with the same compiler, that the core > components are built with? I hope so as I'm using the compiler (ccarm 2.9) bundled with Tornado 2.1.1. Yesterday I made that discovery that not the system is standing but only the serial shell is suspended. When I do 'tr tShell' on a WDB shell it will be resumed but the special functions of the console (e.g. ctrl-x and ctrl-c) are being disabled. Bye, Markus Pietrek --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Problem in accessing PCI I/O Registers in IBM ppc 405GP Date: Tue, 5 Mar 2002 09:18:36 +0100 From: "Michael Lawnick" Organization: Buergernetz Dillingen Message-ID: References: <3C7F9C21.48433D2B@varndellengineering.com> <3C7FC51C.F75E564D@notifier-is.net> Reply-To: "Michael Lawnick" Sender: mlawnick@pd95244e6.dip.t-dialin.net Hi Arun, take a look into $(WIND_BASE)/target/src/drv/pci/pciAutoConfigLib.c, this is the code executed for setting up PCI devices automatically. I can't see any hint for 64bit there. Reviewing your first post, I think, setup might be done correct: The registers set to 0x8100x00y under LINUX are set to 0x4000x00y in VxWorks, the main difference is the freely selectable translation offset Local2PCI. One difference seems not to be OK: under LINUX BAR0 ends with 0, under Tornado with c. Remembering that you said that both pairs are 64bit, I'd beleave in VxWorks - a typo in your LINUX output-copy ? I'm not pretty sure what you are doing after setup, there is to much in your posting. After auto-config you should be able to access the memory-mapped part of your NIC by PCI_MEM2LOCAL( + ) and your IO-mapped registers by PCI_MEMIO2LOCAL( + ) You'll find this macros in walnut.h. Check whether the result of this macros is included in the PCI-memory window of your sysPhysMemDesc[] (should be) Example with your autoConfig setup: BAR0=0x4000000c /* memarea_1 */ BAR1=0 BAR2=0x0001 /* register_area*/ BAR3=0x4000100c /* memarea_2 */ BAR4=0 typedef struct { ... UINT32 ioBase; UINT32 memBase1; UINT32 memBase2; ... } DRV_CRTL; ... { UINT32 nicMemBase1; UINT32 nicMemBase2; UINT32 nicIoBase; /* get base addresses of NIC's PCI windows */ pciConfigInLong(0,2,0,PCI_CFG_BASE_ADDRESS_0,&nicMemBase1); pciConfigInLong(0,2,0,PCI_CFG_BASE_ADDRESS_2,&nicIoBase); pciConfigInLong(0,2,0,PCI_CFG_BASE_ADDRESS_3,&nicMemBase2); /* translate PCI windows to CPU-local addresses and save in driver's struct */ pDrvCtrl->ioBase=PCI_IO2LOCAL(nicIoBase); pDrvCtrl->memBase1=PCI_MEM2LOCAL(nicMemBase1); pDrvCtrl->memBase2=PCI_MEM2LOCAL(nicMemBase2); } /* later on, when access is needed */ { ... /*Access 32bit register with offset 0x20 in register_area */ NicReg = *(UINT32*)(pDrvCtrl->ioBase+ 0x20); /*Access 32bit memory value with offset 0x200 in memarea_1 */ NicMem1 = *(UINT32*)(pDrvCtrl->memBase1 + 0x200 ); /*Access 16bit memory value with offset 0x222 in memarea_2 */ NicMem1 = *(UINT16*)(pDrvCtrl->memBase2 + 0x222 ); ... } Remember: On PPC in CPU's view all PCI accesses are standard memory accesses - if mem-mapped or IO-mapped. The local2PCI bridge converts an access to the apropriate PCI-cycles. HTH Mit freundlichen Grüßen, Michael Lawnick ========================================= SOFTEC GmbH Tel +49-731-96600-0 Promenade 17 Fax +49-731-96600-23 D-89073 Ulm Michael Lawnick Germany lawnick@softec.de ========================================= > Dear Micheal, > > Are you sure VxWorks does not support 64 bit PCI? > Could anyone clarify this? > > I don't have enough knowledge on VxWorks and how it handles PCI > stuff, though I have a bit knowledge on PCI and how Linux handles it. > Once I was working on writing a DOS driver for externel IDE controller > (PCI based). I knew the crude way of handling PCI/DMA/PIO programming > (Infact I did the same thing on OS/2 also) but not on how VxWorks > handles it. > > We/I can't go for the third solution which you have mentioned :-( > > It would be helpful if you could eloborate on the first two > solutions. > > We already tried to write our own routine to configure our card's > 64bit BAR address registers (you coult see that at the start of this > mail chain). And I also tried to make entries in sysPhysMemDes[], but > nothing worked out. > I don't know what I'm missing. But most of the thing I do/did on a > trial and error basis as my knowledge on VxWorks is not sufficient. > I'm learning. It has become very critical now and we are nearing our > deadline. > > Earlier replies/suggestions/answers would be of great help. > > One more question, > If at all our card requires only 32 bit BAR memory Registers, what > should I do to access these memory regions after reading the BARs from > PCI config space? > > Thanks again. > Regards > Arun > > "Michael Lawnick" wrote in message news:... > > Hi Arun, > > > > AFAIK, VxWorks does not support 64bit PCI. It interprets your 2 double BARs > > as 4 seperate BARs and sets up access to those you find valid values. This > > won't work for you: > > You have access to I/O-mapped region, as PCI autoconfig found the regions > > and the region was already added in sysPhysMemDesc[]. For your mem mapped > > region this failed and your MMU complains that you try to access a region > > that is not enabled. > > > > I can see two {three} possible solutions: > > a) Enable the considered region in your sysPhysMemDesc[] by hand (don't > > forget the local2PCI bridge !) and setup your NIC's 64bit mem BARs by hand > > in a way that their windows are placed accordingly. > > b) Disable MMU. > > { c) Use a more common NIC ;-) } > > HTH > > Michael > > > > -- > > Mit freundlichen Grüßen, > > Michael Lawnick > > ============================================== > > SOFTEC GmbH Tel +49-731-96600-0 > > Promenade 17 Fax +49-731-96600-23 > > D-89073 Ulm Michael Lawnick > > Germany lawnick@softec.de > > ============================================== > > > > "Arun Prasad" schrieb im Newsbeitrag > > news:e38d912c.0203040508.294513b5@posting.google.com... > > > Hi, > > > > > > Now, as per my previous mail, I'm able to access PCI I/O mapped > > > region. I'm able to read or write into our PCI based Card's registers. > > > All I had to do was to add 0xe8000000 (Address translation/mapping). > > > > > > Now, when I access our memory mapped region, I'm getting > > > > > > "protection violation/data access " > > > > > > error. I haven't done any mapping of memory mapped BARs so far. I'm > > > trying to figure out what macro needs to be used or what constant > > > needs to be added for addres translation/mapping. > > > > > > If anyone already faced this problem and solved it, please do let me > > > know what I'm missing to make it work. > > > > > > Regards > > > Arun > > > > > > > Arun --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Initialize multiple ethernet interface after boot vxworks? Date: Tue, 5 Mar 2002 10:13:52 +0100 From: "Michael Lawnick" Organization: Buergernetz Dillingen Message-ID: References: Reply-To: "Michael Lawnick" Sender: mlawnick@pd95244e6.dip.t-dialin.net Hi Choo, first: I'm no network expert, so no details, but... on initialisation there should be sent one ARP packet (automatically). As your statistic shows none, it seems that initialisation failed. Looking at your code, I see you have a void function, but return ERROR within code. No good style. Add -W -Wall to your compiler options and don't ignore the warnings - every warning could be a hidden problem. - -- Mit freundlichen Grüßen, Michael Lawnick ============================================== SOFTEC GmbH Tel +49-731-96600-0 Promenade 17 Fax +49-731-96600-23 D-89073 Ulm Michael Lawnick Germany lawnick@softec.de ============================================== "Choo Joung-hoon" schrieb im Newsbeitrag news:dda52d29afaada6e39175a2e467871e7.75083@mygate.mailgate.org... > hello, all vxworks guys, > > now, I want initialize one more ethernet interface(IP:192.168.2.249) > after boot vxworks. > So, I made following function. but the result is not successful. > =================================================================== > void sttEnetInit () > { > char devName[] = MOT_FCC_DEV_NAME; > END_TBL_ENTRY endEntry = { 1, sttEndLoad, "", 1, NULL, FALSE}; > END_TBL_ENTRY *pDevTbl = &endEntry; > BOOL attached = FALSE; /* driver is attached */ > END_OBJ *pEnd; > unsigned int unitNum = 1; > char ipAddr[] = "192.168.2.249"; > unsigned int netmask ; > > muxDevLoad (pDevTbl->unit, pDevTbl->endLoadFunc, > pDevTbl->endLoadString, pDevTbl->endLoan, > pDevTbl->pBSP); > > /* Try an END device first */ > pEnd = endFindByName (devName, unitNum); > > if (!attached && (pEnd != NULL)) > { > if (muxDevStart (pEnd) != OK) > { > printf("Failed to start device=%s\n", devName); > return(ERROR); > } > > if (muxIoctl(pEnd, EIOCGMIB2, (char *)&sttendM2Tbl) > == ERROR) > return(ERROR); > > if (ipAttach (unitNum, devName) != OK) > { > printf ("Failed to attach TCP/IP to device\n "); > return (ERROR); > } > > netmask = 0; > bootNetmaskExtract (ipAddr, &netmask); > > printf ("Attached TCP/IP interface to %s%d.\n", > devName,unitNum); > attached = TRUE; > } > > /* configure the device */ > if (usrNetIfConfig (devName, unitNum, ipAddr, > /*(char *) NULL*/"jhchoo", netmask) != OK) > return (ERROR); > } > ======================================================================= > > * My console print following information > ======================================================================= > stt755_r> > stt755_r>muxShow > Device: sttfcc Unit: 0 > Description: Motorola FCC Ethernet Enhanced Network Driver > Protocol: IP 4.4 ARP Type: 2054 Recv 0x4eaec Shutdown 0x4edb0 > Protocol: IP 4.4 TCP/IP Type: 2048 Recv 0x4eaec Shutdown 0x4ece8 > Device: sttfcc Unit: 1 > Description: Motorola FCC Ethernet Enhanced Network Driver > Protocol: IP 4.4 ARP Type: 2054 Recv 0x4eaec Shutdown 0x4edb0 > Protocol: IP 4.4 TCP/IP Type: 2048 Recv 0x4eaec Shutdown 0x4ece8 > value = 0 = 0x0 > stt755_r> > stt755_r>routeShow > > ROUTE NET TABLE > destination gateway flags Refcnt Use > Interface > > -------------------------------------------------------------------------- - -- > 192.168.1.0 192.168.1.223 101 0 0 > sttfcc0 > 192.168.2.0 192.168.2.249 101 0 0 > sttfcc1 > > -------------------------------------------------------------------------- - -- > > ROUTE HOST TABLE > destination gateway flags Refcnt Use > Interface > > -------------------------------------------------------------------------- - -- > 127.0.0.1 127.0.0.1 5 1 0 lo0 > > -------------------------------------------------------------------------- - -- > value = 77 = 0x4d = 'M' > stt755_r> > stt755_r> > stt755_r>hostShow > hostname inet address aliases > -------- ------------ ------- > stt755_r 192.168.1.223 > localhost 127.0.0.1 > tornado 192.168.1.29 > jhchoo 192.168.2.249 > value = 0 = 0x0 > stt755_r> > stt755_r> > stt755_r>ifShow > sttfcc (unit number 0): > Flags: (0x8063) UP BROADCAST MULTICAST ARP RUNNING > Type: ETHERNET_CSMACD > Internet address: 192.168.1.223 > Broadcast address: 192.168.1.255 > Netmask 0xffffff00 Subnetmask 0xffffff00 > Ethernet address is 00:00:aa:00:00:df > Metric is 0 > Maximum Transfer Unit size is 1500 > 480 packets received; 271 packets sent > 177 multicast packets received > 2 multicast packets sent > 0 input errors; 0 output errors > 0 collisions; 0 dropped > lo (unit number 0): > Flags: (0x8069) UP LOOPBACK MULTICAST ARP RUNNING > Type: SOFTWARE_LOOPBACK > Internet address: 127.0.0.1 > Netmask 0xff000000 Subnetmask 0xff000000 > Metric is 0 > Maximum Transfer Unit size is 32768 > 0 packets received; 0 packets sent > 0 multicast packets received > 0 multicast packets sent > 0 input errors; 0 output errors > 0 collisions; 0 dropped > sttfcc (unit number 1): > Flags: (0x8063) UP BROADCAST MULTICAST ARP RUNNING > Type: ETHERNET_CSMACD > Internet address: 192.168.2.249 > Broadcast address: 192.168.2.255 > Netmask 0xffffff00 Subnetmask 0xffffff00 > Ethernet address is 00:00:aa:00:00:f9 > Metric is 0 > Maximum Transfer Unit size is 1500 > 0 packets received; 0 packets sent > 0 multicast packets received > 0 multicast packets sent > 0 input errors; 0 output errors > 0 collisions; 0 dropped > value = 29 = 0x1d > stt755_r> > ====================================================================== > > Above [ifShow] is done after [ping "192.168.2.222"] is done. > I think that above send packet count of "sttfcc1" must increase. right? > many receive packet is stored in driver's buffer. But above receive > packet count is 0. why? > > > -- > Posted via Mailgate.ORG Server - http://www.Mailgate.ORG --------------------------- Newsgroups: comp.os.vxworks,comp.os.linux.embedded Subject: Re: Licensing Issues in RTLinux and RTAI Date: Mon, 4 Mar 2002 13:57:06 -0000 From: "Dave Korn" Organization: Lumber Cartel (tinlc) Members #2234-2237 (owing to browser refresh) Message-ID: <6v0h8.2971$5o.2219759@newsr2.u-net.net> References: <633e72d2.0202230218.24f71d5c@posting.google.com> <3C7780FC.1040706@spamm.me.l8s.co.uk> "Leonid Rosenboim" wrote in message news:newscache$2d11sg$eim$1@lnews.actcom.co.il... > - Leonid > P.S. WindRiver has got plenty of public source code witnin theur product, > and nobody > sued them this far. WRS have a licensing agreement from the FSF, and they do give out the source code to their gnu-derived toolchain (eventually!) DaveK - -- moderator of alt.talk.rec.soc.biz.news.comp.humanities.meow.misc.moderated.meow Burn your ID card! http://www.optional-identity.org.uk/ Help support the campaign, copy this into your .sig! Proud Member of the Exclusive "I have been plonked by Davee because he thinks I'm interesting" List Member # Master of Many Meowing Minions Holder of the exhalted PF Chang's Crab Wonton Award for kook spankage above and beyond the call of hilarity. --------------------------- Newsgroups: comp.os.vxworks Subject: question about receive sm IP packets..... Date: 5 Mar 2002 02:31:59 -0800 From: lig@catt.ac.cn (bjlig) Organization: http://groups.google.com/ Message-ID: <73a87e9d.0203050231.40b59e5d@posting.google.com> hi,all i'm testing a new backplane end driver,the question is- i send a packet from a host to sm, and sm driver can receive this packet and send it up to service by calling END_RCV_RTN_CALL(). but there is no response since then. checking the received packet by print in receive routine, its format is right. and another question is since i register the intface with a MAC address,but when i type ifShow(), this interface's MAC address is not which i set, but the MIB2's MAC address is same to mine, why? any idea is welcome and thanks in advance! simLi --------------------------- Newsgroups: comp.os.vxworks Subject: multiple vme windows Date: Tue, 5 Mar 2002 11:04:47 -0000 From: "DMC" Message-ID: <3c84a62f$1@pull.gecm.com> Hi there, I'm trying to reconfigure vxworks to have multiple vme windows. I have 4 dy4179s, plus a couple of proprietary boards. The dy4's were using auto id and taking the full 512mb that vxworks seems to allow as the maximum vme address space. I have switched auto id off, and created a version of vxworks for each dy4 with a hardcoded value for USER_VME_A32_BASE to cut the increment between boards to 0x04000000 from the standard 0x08000000. I make calls to sysVmeA32MstrSet to set up my vme windows. Problem is, 2 dy4s come up, but 2 don't. For the 2 that don't, one hangs trying to load down an application, the other hangs when trying to load down the vxworks sysmbol table. In config.h I have #define VME_A32_SLV_SIZE (0x04000000). I have also defined USER_VME_A32_BASE for the appropriate desired board addresses. In syslib.c I have sysVmeA32MstrSet(0, (char*)0x40000000, 0x04000000, VME_A32_MSTR_CTL, (char**)&local); sysVmeA32MstrSet(1, (char*)0x44000000, 0x04000000, VME_A32_MSTR_CTL, (char**)&local); sysVmeA32MstrSet(2, (char*)0x48000000, 0x04000000, VME_A32_MSTR_CTL, (char**)&local); sysVmeA32MstrSet(3, (char*)0x4c000000, 0x04000000, VME_A32_MSTR_CTL, (char**)&local); sysVmeA32MstrSet(4, (char*)0x64000000, 0x08000000, VME_A32_MSTR_CTL, (char**)&local); As far As I can tell, this should work fine, but then I've never tried this before. What effect does the vme window size have? Are there other configuration parameters I should be worrying about? Thanks, David. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: tNetTask takes too long? Date: Tue, 5 Mar 2002 11:23:55 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C84AB34.1080908@spamm.me.l8s.co.uk> References: <3c84385c@MAIL.mhogaming.com> > If you have already found that a driver that is reading the PHY status thru > the MI is the culprit, then this sounds very likely. The MI interface is a > serial bus interface much like a serial eeprom with a serial bitstream > command and response frame. For a read command, there is something like a > 14-bit preamble followed by a 16-bit command written followed by a 16-bit > response all done in for-next loops, sometimes with delays added. Many > times, programmers unaware of the exact timing requirements add delays > during clocking out (or in) of the serial bitstream that can add up to > significant delays which may be your problem. You will need to determine > which driver is causing the delay and then look into the timing of the MI > access routines in the code. Code I copied did 32 bit preamble, 14 bit command, 2 bit turnaround, 16 bit data. Write code is: wr_mii_bits( mii, 0xffffffff, 32 ); wr_mii_bits( mii, 5<<28 | addr<<18 | 2<<16 | value, 32 ); I can't find the code I wrote when I had the spec ;-( You have to ensure the mii interface isn't run too quickly. Although I can't actually remember the rate, IIRC it requires 200ns 'delays'. If the IO is slow enough you don't need any. Otherwise repeating the IO writes 2 or 3 times is probably sufficient. 4.5ms does seem a little long... The difficulty is that you have to poll the transciever (through the mii) in order to find out whether it has negotiated FDX (typically you don't need to know whether it is 10M or 100M). With care this could be done at quite a slow bit rate. 1/2 HZ for instance - probably entirely within a watchdog timeout routine. Some ethernet chipsets contain hardware to read MII registers, and will poll one interrupting when it changes.... David --------------------------- Newsgroups: comp.arch.storage,comp.periphs.scsi,comp.os.vxworks Subject: Re: source code for SCSI Fibre Channel implementation Date: Tue, 5 Mar 2002 11:26:43 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C84ABDF.7080504@spamm.me.l8s.co.uk> References: <5c04bc56.0202272342.124108d6@posting.google.com> >> but none the less I assure you that you do not have the required >> expertise to program the chip at that level. >> > > An interesting assurance. On what do you base it? Clearly a failed psychic.... --------------------------- Newsgroups: comp.os.vxworks Subject: taskSwitchHookAdd problems ??? Date: 5 Mar 2002 03:28:24 -0800 From: kumar_amit@delhi.tcs.co.in (Amit) Organization: http://groups.google.com/ Message-ID: <7421c9fd.0203050328.2efad67e@posting.google.com> Hi! I want to use taskSwitchHookAdd() system call.But i am not getting the function void switchHook ( WIND_TCB *pOldTcb, /* pointer to old task's WIND_TCB */ WIND_TCB *pNewTcb /* pointer to new task's WIND_TCB */ ) I have tried this on VxWorks but the system is crashing as soon as it encounters taskSwitchHookAdd(). I probably don't know how to add routines in switchHook() format. Can anyone tell me how to do it?? Thanks Amit --------------------------- Newsgroups: comp.arch.storage,comp.periphs.scsi,comp.os.vxworks Subject: Re: source code for SCSI Fibre Channel implementation Date: Tue, 5 Mar 2002 12:41:19 +0300 From: "Maxim S. Shatskih" Organization: StorageCraft Message-ID: References: <5c04bc56.0202272342.124108d6@posting.google.com> <5c04bc56.0203011650.69636895@posting.google.com> > I don't know the module names because it is neither my responsibility > or desire to do this person's homework. He/whe asked if there was > iSCSI driver sample sourcecode available, and I told them where some IIRC they are commercial closed-source even for Linux. Max --------------------------- End of New-News digest ********************** From vxwexplo-errs@csg.lbl.gov Tue Mar 5 21:14:24 2002 From: "Gundimeda Venugopal" Date: Tue Mar 5 21:14:26 PST 2002 Subject: VxWorks TCP?IP Stack integration with Ethernet Drivers ... All, We are trying to write a Ethernet Driver for your PSO stack which we have downloaded. 1. Please tell us the general procedure to integration with VxWorks MUX layer? 2. Also somebody can tell me how to write a Ethernet Driver for integrate the PSO Stack with Intel(R) 82559 Ethernet Driver? (Note: We do not have the source code for Intel(R) "82557 Ethernet Driver for VxWorks") But Tornado by default supports 82559 Ethernet Driver for VxWorks. The idea is to write the "Intel(R) 82557 Ethernet Driver" code and integrate the PSO Stack with the Ethernet Driver. Thank you. regards, venu From vxwexplo-errs@csg.lbl.gov Tue Mar 5 21:26:18 2002 From: "Gundimeda Venugopal" Date: Tue Mar 5 21:26:20 PST 2002 Subject: VxWorks TCP/IP Stack integration with VxWorks MUX Layer ... All, We are trying to write a Ethernet Driver for the PSO stack which we have downloaded. from this site: http://www.xs4all.nl/~borkhuis/vxworks/ftp/vxhacks/ 1. Please tell us the general procedure to integrate it with VxWorks MUX layer? 2. Also somebody can tell me how to write a Ethernet Driver for integrate the PSO Stack with Intel(R) 82559 Ethernet Driver? (Note: We do not have the source code for Intel(R) "82557 Ethernet Driver for VxWorks") But Tornado by default supports 82559 Ethernet Driver for VxWorks. The idea is to write the "Intel(R) 82557 Ethernet Driver" code and integrate the PSO Stack with the Ethernet Driver. Thank you. regards, venu From vxwexplo-errs@csg.lbl.gov Tue Mar 5 23:50:06 2002 From: "zhouliyuan" Date: Tue Mar 5 23:50:09 PST 2002 Subject: May I ask you a question of vxworks and 3c90x network card? This is a multi-part message in MIME format. ------=_NextPart_000_01EA_01C1C527.0564C0D0 Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: quoted-printable Dear: Sorry to bother you! By chance,I found from the internet that you maybe have used = 3c90x series network card in the platform of vxworks,I want to know is = there any existing driver of this series network card for vxworks. Thank you in advance! yours sincerely: Mike zhou ------=_NextPart_000_01EA_01C1C527.0564C0D0 Content-Type: text/html; charset="gb2312" Content-Transfer-Encoding: quoted-printable
Dear:
        Sorry to=20 bother you!
        By=20 chance,I found from the internet that you maybe have used 3c90x series = network=20 card in the platform of vxworks,I want to know is there any existing=20 driver of this series network card for vxworks.
        Thank=20 you in advance!
       =20             =    =20             =    =20             yours=20 sincerely:
       =20             =    =20             =    =20             =    =20     Mike zhou
------=_NextPart_000_01EA_01C1C527.0564C0D0-- From vxwexplo-errs@csg.lbl.gov Wed Mar 6 04:03:22 2002 From: Vxworks Exploder Date: Wed Mar 6 04:03:25 PST 2002 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Wed Mar 6 04:03:17 PST 2002 Subject: Re: taskSwitchHookAdd problems ??? Subject: Unresolved symbol while download program : __eabi? Subject: Re: Help! Cannot access vxworks from another network - solved!!! Subject: Re: need help: about windNet PPP ? Subject: Re: source code for SCSI Fibre Channel implementation Subject: Re: Help! Cannot access vxworks from another network - solved!!! Subject: Re: Unresolved symbol while download program : __eabi? Subject: Re: Unresolved symbol while download program : __eabi? Subject: Re: taskSwitchHookAdd problems ??? Subject: Re: error msg: trcStack aborted: error in frame Subject: Re: Licensing Issues in RTLinux and RTAI Subject: undefined references when including the ln97xEnd with ARMARCH4 Subject: VxWorks Application Module Size Questions Subject: Re: Nested Interrupts Subject: Re: taskSwitchHookAdd problems ??? Subject: Re: Pipe vs Socket communication Subject: Re: Tornado 2.0.2 With gcc 2.96 Subject: Re: Is it possible to change the priortiy of windsh Subject: Re: A question about Tornado Prototyper Subject: Re: resolvLib Subject: Re: (tNetTask): panic: sbdrop Subject: Re: Having trouble with dynamicly loading modules Subject: Re: Nested Interrupts Subject: Re: (tNetTask): panic: sbdrop Subject: Re: Is it possible to change the priortiy of windsh Subject: Re: Unresolved symbol while download program : __eabi? Subject: Re: Initialize multiple ethernet interface after boot vxworks? Subject: Re: error msg: trcStack aborted: error in frame Subject: Re: Pipe vs Socket communication Subject: Re: tNetTask takes too long? Subject: Changing stdout to send to a telnet socket Subject: Re: Changing stdout to send to a telnet socket Subject: Changing to FIFO Ordered First-Fit Subject: Cache profiler for PowerPC on vxworks Subject: Re: Initialize multiple ethernet interface after boot vxworks? Subject: Re: source code for SCSI Fibre Channel implementation Subject: Re: Changing to FIFO Ordered First-Fit Subject: Re: Changing to FIFO Ordered First-Fit Subject: CPU consumption by WDB task Subject: Re: source code for SCSI Fibre Channel implementation Subject: Re: undefined references when including the ln97xEnd with ARMARCH4 Subject: Re: PPP problem Subject: still: cannot connect target server... Subject: Re: VxWorks Application Module Size Questions Subject: Re: TCP/IP Support in VxWorks Subject: Re: Initialize multiple ethernet interface after boot vxworks? Subject: Re: undefined references when including the ln97xEnd with ARMARCH4 Subject: Re: Cache profiler for PowerPC on vxworks Subject: Re: source code for SCSI Fibre Channel implementation Subject: Re: source code for SCSI Fibre Channel implementation Subject: Re: still: cannot connect target server... ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Re: taskSwitchHookAdd problems ??? Date: Tue, 5 Mar 2002 13:45:37 +0100 From: "Michael Lawnick" Organization: Buergernetz Dillingen Message-ID: References: <7421c9fd.0203050328.2efad67e@posting.google.com> Reply-To: "Michael Lawnick" Sender: mlawnick@pd95244e6.dip.t-dialin.net Hi Amit, Have you read the manual carefully, especially the part about the libs you only may call? Post your code and we will see. - -- Mit freundlichen Grüßen, Michael Lawnick ============================================== SOFTEC GmbH Tel +49-731-96600-0 Promenade 17 Fax +49-731-96600-23 D-89073 Ulm Michael Lawnick Germany lawnick@softec.de ============================================== "Amit" schrieb im Newsbeitrag news:7421c9fd.0203050328.2efad67e@posting.google.com... > Hi! > > I want to use taskSwitchHookAdd() system call.But i am not getting > the function > > void switchHook > ( > WIND_TCB *pOldTcb, /* pointer to old task's WIND_TCB */ > WIND_TCB *pNewTcb /* pointer to new task's WIND_TCB */ > ) > > I have tried this on VxWorks but the system is crashing as soon as it > encounters taskSwitchHookAdd(). I probably don't know how to add > routines in switchHook() format. > > Can anyone tell me how to do it?? > > Thanks > > Amit --------------------------- Newsgroups: comp.os.vxworks Subject: Unresolved symbol while download program : __eabi? Date: 5 Mar 2002 05:28:05 -0800 From: zjh_future@263.net (zjh) Organization: http://groups.google.com/ Message-ID: <8cd11808.0203050528.6bb7bfcf@posting.google.com> hi,all I have build a program with Tornado .The building process is successful. While download the ldp.out to the target ppc860gnu.there is a error: Unresolved symbol while download ldp.out - --eabi Have anyone seen the problem?Can you give me your advice to solve it? all thanks!! Sincerely zjh --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Help! Cannot access vxworks from another network - solved!!! Date: Tue, 5 Mar 2002 08:33:33 -0500 From: "Joe Georger" Message-ID: References: <0Baf8.69$Sk3.3211@llslave.llan.ll.mit.edu> <3C7D9038.A51390B8@dsto.defence.gov.au> <4Qpf8.71$Sk3.3151@llslave.llan.ll.mit.edu> <3C7ECF52.8429283C@dsto.defence.gov.au> <3C7F9B96.B16F22AB@notifier-is.net> After going back and forth with WindRiver tech support, the problem has mostly been solved. David was right, the solution is putting the routeAdd command in the usrAppInit.c file. This pertains to projects built using Tornado. If you were building from the command line, then what I posted previously, namely putting the routeAdd command in usrNetwork.c. The only problem in putting the routeAdd command in usrAppInit is that I was forced to enter a hardcoded gateway string. The variable params.gad (which is the gateway entered in the boot parameters) is not in scope for this file apparently. I've asked WindRiver this and am awaiting a response. I don't feel like messing with it anymore - I have to get on with my real work. I should mention an alternative solution - putting the routeAdd command in a startup script. That would work as well. Joe "david lindauer" wrote in message news:3C7F9B96.B16F22AB@notifier-is.net... > when we first caught on that we needed a route, we tried adding it in > usrAppInit(), figuring that the network would be available by then. (but I don't > know the initialization sequence exactly so that whole idea may have been for > the birds). That didn't work so we defered the routeAdd() until kernel > initialization was complete (e.g. in a user level task). As the code is written > we actually wait for serial port communications to commence before doing the > routeAdd(), and I don't know if you can make it work without some sort of delay > or not. It is something we didn't look into deeply, we just wanted it to work > and had to get on with development. > > David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: need help: about windNet PPP ? Date: Tue, 05 Mar 2002 09:01:35 -0500 From: david lindauer Message-ID: <3C84CFBF.F69EE27A@notifier-is.net> References: I'm not sure what you mean by 'windnet ppp', but at least for the PPP that ships with vxworks you set the remote IP (client IP) in the call to pppInit. So when you start the PPP connection select an IP and set it as part of the call. Note that you don't want to run pppInit until AFTER the modem connection has been established anyway because that isn't the way it is designed, so you should have no trouble maintaining a dynamic pool of IP addresses if you are allowing multiple connections. David sardine wrote: > hi everyone gurus, > > is there anyone have experience about windNet PPP, > Now i using windNet PPP1.2,but windRiver not provide any > information about dynamic alloc IP address to PPPOE Client from > a IP POOL. > but the source program provide a interface for it-----"RAS-AMM"; > so i set pfwParameter "ipcp_ipAddr" as "RAS-AMM:#poolId", > after i finished it. the PPP local authenicate can return a ip address > to PPPOE Client,but the DNS ip Address become "255.255.255.255", > and if i set ppp authenicate as "REMOTE RADIUS" mode,the pppoe client > also get ip address "255.255.255.255",the DNS ip Address is "255.255.255.255", > > i have send the infomation to windRiver got support,but they cannot replay > to me. > anyone have the experience or can provide any advice,i will appricate them ! --------------------------- Newsgroups: comp.arch.storage,comp.periphs.scsi,comp.os.vxworks Subject: Re: source code for SCSI Fibre Channel implementation Date: Tue, 5 Mar 2002 14:00:06 +0000 (UTC) From: "UK Gary" Organization: BT Openworld Message-ID: References: <5c04bc56.0202272342.124108d6@posting.google.com> "J. J. Farrell" wrote in message news:G9_g8.36824$ZC3.2896444@newsread2.prod.itd.earthlink.net... > > "UK Gary" wrote in message > news:a5vv4c$i08$1@helle.btinternet.com... > > > > "J. J. Farrell" wrote in message > > news:5c04bc56.0202272342.124108d6@posting.google.com... When you sign > the > > NDA you may or may not get access to the chip level registers (which can > > only be accessed in most cases by the microcode inside the chip which > means > > you would need to use their microassembler), but none the less I assure > you > > that you do not have the required expertise to program the chip at that > > level. > > An interesting assurance. On what do you base it? Mainly by reading all your other clueless posts. You didn't even know how to look through the linux source tree. How the fuck do you think you are going to program a fibre channel protocol chip at the register level? Besides, I'm pretty sure I know everyone in the world with the expertise to do the job, and you aren't one of them. > > Besides, it's just not necessary. > > Doesn't that rather depend on what I'm doing? My guess, and it's only a guess, is that you plan to create a FC protocol chip running in an FPGA with a built-in SERDES. Close? This would explain why you can't go to LSI Logic or Qlogic and licence their firmware which only runs on their chips but is perfectly suitable for any FC interface project involving SCSI initiators and targets. They no longer allow source licences to their production code, mostly I suspect because they see the emerging FPGA threat and don't want to lose their chip sales. They know it's 5 to 10 man-years of work to create a production quality FC protocol engine, and this creates an excellent barrier to entry to 99% of the people contemplating the idea. > Thanks for posting, but I'm afraid your comments aren't relevant > in this case. I may not know much, but I know what I need at the > moment. I need a C implementation of the FCP/FC stack giving > initiator and target mode access at the top and FC-2 frames at > the bottom. It looks like there aren't many available ... There aren't *any* available, much less "many". Nobody would release this sort of IP to the world for free. It's just too valuable. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Help! Cannot access vxworks from another network - solved!!! Date: Tue, 5 Mar 2002 15:28:15 +0100 From: "Michael Lawnick" Organization: Buergernetz Dillingen Message-ID: References: <0Baf8.69$Sk3.3211@llslave.llan.ll.mit.edu> <3C7D9038.A51390B8@dsto.defence.gov.au> <4Qpf8.71$Sk3.3151@llslave.llan.ll.mit.edu> <3C7ECF52.8429283C@dsto.defence.gov.au> <3C7F9B96.B16F22AB@notifier-is.net> Reply-To: "Michael Lawnick" Sender: mlawnick@pd95244e6.dip.t-dialin.net Hi Joe, you wrote >The variable params.gad (which > is the gateway entered in the boot parameters) is not in scope for this file > apparently. Why don't bring into scope with sysNvRamGet() and bootStringToStruct() ? A glance into bootConfig.c sometimes brings up some surprising easy solutions ;-) HTH - -- Mit freundlichen Grüßen, Michael Lawnick ============================================== SOFTEC GmbH Tel +49-731-96600-0 Promenade 17 Fax +49-731-96600-23 D-89073 Ulm Michael Lawnick Germany lawnick@softec.de ============================================== "Joe Georger" schrieb im Newsbeitrag news:HK3h8.83$Sk3.3408@llslave.llan.ll.mit.edu... > After going back and forth with WindRiver tech support, the problem has > mostly been solved. David was right, the solution is putting the routeAdd > command in the usrAppInit.c file. This pertains to projects built using > Tornado. If you were building from the command line, then what I posted > previously, namely putting the routeAdd command in usrNetwork.c. > > The only problem in putting the routeAdd command in usrAppInit is that I was > forced to enter a hardcoded gateway string. The variable params.gad (which > is the gateway entered in the boot parameters) is not in scope for this file > apparently. I've asked WindRiver this and am awaiting a response. I don't > feel like messing with it anymore - I have to get on with my real work. > > I should mention an alternative solution - putting the routeAdd command in a > startup script. That would work as well. > > Joe > > "david lindauer" wrote in message > news:3C7F9B96.B16F22AB@notifier-is.net... > > when we first caught on that we needed a route, we tried adding it in > > usrAppInit(), figuring that the network would be available by then. (but I > don't > > know the initialization sequence exactly so that whole idea may have been > for > > the birds). That didn't work so we defered the routeAdd() until kernel > > initialization was complete (e.g. in a user level task). As the code is > written > > we actually wait for serial port communications to commence before doing > the > > routeAdd(), and I don't know if you can make it work without some sort of > delay > > or not. It is something we didn't look into deeply, we just wanted it to > work > > and had to get on with development. > > > > David > > > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Unresolved symbol while download program : __eabi? Date: Tue, 5 Mar 2002 15:45:27 +0100 From: "Karl Driessens" Message-ID: <3c84d9ca$0$231$4d4ebb8e@read-nat.news.nl.uu.net> References: <8cd11808.0203050528.6bb7bfcf@posting.google.com> I assume that you have a downloadable application. When downloading the application to your running vxworks image, then vxworks resolves all the unresolved functions of your downloaded application. When a function can not be found in the running image you get this error message. Kind regards, Karl. "zjh" wrote in message news:8cd11808.0203050528.6bb7bfcf@posting.google.com... > hi,all > I have build a program with Tornado .The building process is successful. > While download the ldp.out to the target ppc860gnu.there is a error: > Unresolved symbol while > download ldp.out > --eabi > Have anyone seen the problem?Can you give me your advice to solve it? > all thanks!! > Sincerely zjh > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Unresolved symbol while download program : __eabi? Date: Tue, 5 Mar 2002 14:47:42 -0000 From: "Dave Korn" Organization: Lumber Cartel (tinlc) Members #2234-2237 (owing to browser refresh) Message-ID: References: <8cd11808.0203050528.6bb7bfcf@posting.google.com> "zjh" wrote in message news:8cd11808.0203050528.6bb7bfcf@posting.google.com... > hi,all > I have build a program with Tornado .The building process is successful. > While download the ldp.out to the target ppc860gnu.there is a error: > Unresolved symbol while > download ldp.out > --eabi > Have anyone seen the problem?Can you give me your advice to solve it? > all thanks!! > Sincerely zjh You should not write a main(...) function in your code anywhere. There is no need, since you can spawn a task at any function, and the compiler does secret magic things to main (...) which results in this error. So just rename it my_main or something else! DaveK - -- moderator of alt.talk.rec.soc.biz.news.comp.humanities.meow.misc.moderated.meow Burn your ID card! http://www.optional-identity.org.uk/ Help support the campaign, copy this into your .sig! Proud Member of the Exclusive "I have been plonked by Davee because he thinks I'm interesting" List Member # Master of Many Meowing Minions Holder of the exhalted PF Chang's Crab Wonton Award for kook spankage above and beyond the call of hilarity. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: taskSwitchHookAdd problems ??? Date: Tue, 5 Mar 2002 14:52:34 -0000 From: "Dave Korn" Organization: Lumber Cartel (tinlc) Members #2234-2237 (owing to browser refresh) Message-ID: References: <7421c9fd.0203050328.2efad67e@posting.google.com> "Amit" wrote in message news:7421c9fd.0203050328.2efad67e@posting.google.com... > Hi! > > I want to use taskSwitchHookAdd() system call.But i am not getting > the function > > void switchHook > ( > WIND_TCB *pOldTcb, /* pointer to old task's WIND_TCB */ > WIND_TCB *pNewTcb /* pointer to new task's WIND_TCB */ > ) > > I have tried this on VxWorks but the system is crashing as soon as it > encounters taskSwitchHookAdd(). I probably don't know how to add > routines in switchHook() format. > > Can anyone tell me how to do it?? Get rid of that printf statement in your code, since switchHook must run in a special context. See the entry in the VxWorks Reference Manual : Libraries : taskHookLib - " NOTE User-installed switch hooks are called within the kernel context. Therefore, switch hooks do not have access to all VxWorks facilities. The following routines can be called from within a task switch hook: Library Routines - ------------------------------------------------------------------------- bLib All routines fppArchLib fppSave( ), fppRestore( ) intLib intContext( ), intCount( ), intVecSet( ), intVecGet( ) lstLib All routines mathALib All routines, if fppSave( )/fppRestore( ) are used rngLib All routines except rngCreate( ) taskLib taskIdVerify( ), taskIdDefault( ), taskIsReady( ), taskIsSuspended( ), taskTcb( ) vxLib vxTas( ) " DaveK - -- moderator of alt.talk.rec.soc.biz.news.comp.humanities.meow.misc.moderated.meow Burn your ID card! http://www.optional-identity.org.uk/ Help support the campaign, copy this into your .sig! Proud Member of the Exclusive "I have been plonked by Davee because he thinks I'm interesting" List Member # Master of Many Meowing Minions Holder of the exhalted PF Chang's Crab Wonton Award for kook spankage above and beyond the call of hilarity. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: error msg: trcStack aborted: error in frame Date: Tue, 5 Mar 2002 14:54:37 -0000 From: "Dave Korn" Organization: Lumber Cartel (tinlc) Members #2234-2237 (owing to browser refresh) Message-ID: References: "Markus Pietrek" wrote in message news:a5vfch$6v6$02$1@news.t-online.com... > Hi folks, > > after porting a BSP (based on ARM/pid7t) from Tornado 2.0 to Tornado 2.1.1, > I received this error message when I press "Ctrl-C" on the console. > After that, the system is hanging. > > "trcStack aborted: error in frame" > > Has anyone learned anything about this message yet and could tell me what is > going wrong? > Well, the stack is getting corrupted. Is there a missing switch between an ISR stack and a usermode stack somewhere? Maybe something is overflowing a buffer? DaveK - -- moderator of alt.talk.rec.soc.biz.news.comp.humanities.meow.misc.moderated.meow Burn your ID card! http://www.optional-identity.org.uk/ Help support the campaign, copy this into your .sig! Proud Member of the Exclusive "I have been plonked by Davee because he thinks I'm interesting" List Member # Master of Many Meowing Minions Holder of the exhalted PF Chang's Crab Wonton Award for kook spankage above and beyond the call of hilarity. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Licensing Issues in RTLinux and RTAI Date: 05 Mar 2002 10:35:39 -0500 From: Bill Pringlemeir Organization: Bell Sympatico Message-ID: References: <633e72d2.0202230218.24f71d5c@posting.google.com> <3C7780FC.1040706@spamm.me.l8s.co.uk> <6v0h8.2971$5o.2219759@newsr2.u-net.net> Sender: bpringlemeir@DeadDuck >>>>> "Dave" == Dave Korn writes: Dave> "Leonid Rosenboim" wrote in Dave> message news:newscache$2d11sg$eim$1@lnews.actcom.co.il... >> - Leonid P.S. WindRiver has got plenty of public source code >> witnin theur product, and nobody sued them this far. Dave> WRS have a licensing agreement from the FSF, and they do give Dave> out the source code to their gnu-derived toolchain Dave> (eventually!) I would speculate that Leonid might have been referring to source within vxWorks itself. For sure the coff header files are derived from the GNU binutils. At least everyone of the defines and structure names are the same. Perhaps these names where defined in some standard somewhere? I assume that the header file is included when vxWorks builds. So that would be once instance if all of my speculation is correct. It could be that Leonid was referring to BSD stuff, but that really isn't an issue at all. Regards, Bill Pringlemeir. - -- All of the newly created a game is anti- nonexistant. vxWorks FAQ, "http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html" --------------------------- Newsgroups: comp.os.vxworks Subject: undefined references when including the ln97xEnd with ARMARCH4 Date: 05 Mar 2002 16:03:39 GMT From: spam@kpsws.com Message-ID: <3c84ec5a$0$222$4d4ebb8e@read-nat.news.nl.uu.net> I got the following undefined references when trying to include the ln97xEnd network driver in my bootrom: ldarm -o tmp.o -X -EL -N -e _usrInit -Ttext 00600000 bootConfig.o version.o sysALib.o sysLib.o D:\Tornado\target/lib/libARMARCH4gnuvx.a D:\Tornado\target/lib/libARMARCH4gnugcc.a D:\Tornado\target/lib/libARMARCH4gnuvx.a(ln97xEnd.o)(.text+0x64): undefined reference to `sysLan97xEnetAddrGet' D:\Tornado\target/lib/libARMARCH4gnuvx.a(ln97xEnd.o)(.text+0x7dc): undefined reference to `sysLan97xIntEnable' D:\Tornado\target/lib/libARMARCH4gnuvx.a(ln97xEnd.o)(.text+0x11b0): undefined reference to `sysOutLong' D:\Tornado\target/lib/libARMARCH4gnuvx.a(ln97xEnd.o)(.text+0x11dc): undefined reference to `sysInLong' D:\Tornado\target/lib/libARMARCH4gnuvx.a(ln97xEnd.o)(.text+0x128c): undefined reference to `sysOutLong' D:\Tornado\target/lib/libARMARCH4gnuvx.a(ln97xEnd.o)(.text+0x12d0): undefined reference to `sysOutLong' D:\Tornado\target/lib/libARMARCH4gnuvx.a(ln97xEnd.o)(.text+0x132c): undefined reference to `sysOutLong' D:\Tornado\target/lib/libARMARCH4gnuvx.a(ln97xEnd.o)(.text+0x1360): undefined reference to `sysInLong' D:\Tornado\target/lib/libARMARCH4gnuvx.a(ln97xEnd.o)(.text+0x13c4): undefined reference to `sysOutLong' D:\Tornado\target/lib/libARMARCH4gnuvx.a(ln97xEnd.o)(.text+0x13fc): undefined reference to `sysOutLong' D:\Tornado\target/lib/libARMARCH4gnuvx.a(ln97xEnd.o)(.text+0x1440): undefined reference to `sysOutLong' D:\Tornado\target/lib/libARMARCH4gnuvx.a(ln97xEnd.o)(.text+0x1474): undefined reference to `sysInLong' D:\Tornado\target/lib/libARMARCH4gnuvx.a(ln97xEnd.o)(.text+0x1de0): undefined reference to `sysLan97xIntDisable' make: *** [bootrom.Z.s] Error 0x1 The sysOutLong funcs are most suprising because they would impress that the driver was for a non-memory mapped arch?? anyone has any experience ??? greetings Niels --------------------------- Newsgroups: comp.os.vxworks Subject: VxWorks Application Module Size Questions Date: 5 Mar 2002 08:40:15 -0800 From: mpalone@gotuit.com (Mike Palone) Organization: http://groups.google.com/ Message-ID: <971e6b8f.0203050840.61205700@posting.google.com> Does the size of a VxWorks application downloaded to the Target get scaled back once the module is resolved against other modules and/or the VxWorks executable itself? We understand that different libraries/packages can be included or excluded within the VxWorks module by changes made to the configAll.h file and rebuilding. We are using WindRiver's Tonado IDE version 2.02. We are building using a Win2000 host with Optimization set to level 1 (-O1) since it is giving us the smallest resulting .OUT file. We are currently only testing our application in the NTSIM simulator since there is no hardware available yet. Does building for the simulator cause the size to be larger than what it may be vs. a BSP? Our WinCE port of the application gives us a DLL of size 180K. The VxWorks .OUT file is 392K. As another example, we had an unresolved external __divid3 (implicit library call) when downloading our application to the simulator. Once we statically linked with the libgcc.a library to account for this, our application .OUT file went to 492K. Does the final resolution / dynamic linking in VxWorks handle what exactly gets loaded/relocated into RAM so only what is needed is used? How can we determine the RAM or ROM footprint of our module (assuming that it will be smaller than the .OUT file once final linking/relocation is performed)? We have not yet run any utilities for determining what exactly is inside the .OUT file. Since the VxWorks simulator is built with the ANSI C includes, our application's size should not include the C Run Time code as well, correct? Thank you very much in advance... Mike Palone Principal Software Engineer Gotuit Video Inc. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Nested Interrupts Date: Tue, 5 Mar 2002 08:47:43 -0800 From: "GaryM" Message-ID: References: <28ee7c97.0202261827.69de7877@posting.google.com> <3c7ceaf6$1@netnews.web.de> At least in the PPC8xx family, VxWorks does support nested interrupts. It's built into the demultiplexer in ppc860Intr.c. A side effect of this is that intDisable() within an ISR is basically useless: SIMASK is restored with the previous value after the ISR returns. This is especially nasty if level-sensitive interrupts are used which are not completely serviced by the ISR. "Reinhold Wirth" wrote in message news:3c7ceaf6$1@netnews.web.de... > Hi Daniel, > > > brightpolestar@yahoo.com (Daniel Haines) wrote: > >I have two questions about VxWorks interrupts, could anyone >tell me, thanks! > >1. Does vxWorks support nested interrupts on a powerpc > >target?(I know the PowerPC itself does not support nested >interrupts at the > hardware level). > I think: the default configuration of VxWorks does not support nested interrupts > >If yes,Where can I find the software flag to turn the "Nested > >Interrupt" on? > You have to write the nesting like: > * disable the current interrupt and all interrupts with a > lower priority in the interrupt contoller > * enable external interrupt in the PPC > at the end of the interrupt: > * re-enable all disabled interrupts > > > >2. Will intLock disable all the interrupts or just >interrupts with lower > priority? Will the disabled interrupts >go to a queue or just lost? > intLock change the MSR-register of the PPC. All interrupts are locked. > Mostly one interrupt is "queued" in the interrupt controller. > -- > __________________________________________________________ > News suchen, lesen, schreiben mit http://newsgroups.web.de > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: taskSwitchHookAdd problems ??? Date: Tue, 5 Mar 2002 08:54:27 -0800 From: "GaryM" Message-ID: <7L6h8.44$PZ2.30618@news.uswest.net> References: <7421c9fd.0203050328.2efad67e@posting.google.com> Could you provide a sample of your code? "Amit" wrote in message news:7421c9fd.0203050328.2efad67e@posting.google.com... > Hi! > > I want to use taskSwitchHookAdd() system call.But i am not getting > the function > > void switchHook > ( > WIND_TCB *pOldTcb, /* pointer to old task's WIND_TCB */ > WIND_TCB *pNewTcb /* pointer to new task's WIND_TCB */ > ) > > I have tried this on VxWorks but the system is crashing as soon as it > encounters taskSwitchHookAdd(). I probably don't know how to add > routines in switchHook() format. > > Can anyone tell me how to do it?? > > Thanks > > Amit --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Pipe vs Socket communication Date: Tue, 5 Mar 2002 09:20:06 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: In VxWorks pipe is implemented using message queue. Socket connected over UDP/TCP to local IP address goes over loopback driver. There is no AF_UNIX (or AF_VXWORKS). AF_UNIX in UNIX is implemented in various ways depending on the type of UNIX. Some implement it using message queues, some pipes, etc. In VxWorks, fastest local communication is via use of semaphore. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Tornado 2.0.2 With gcc 2.96 Date: 5 Mar 2002 09:21:50 -0800 From: shoz@elbit.co.il (shoz) Organization: http://groups.google.com/ Message-ID: References: <9ec53d11.0203042356.73d7b673@posting.google.com> igtorque@eliop.es (=?ISO-8859-1?Q?Ignacio_Gonz=E1lez?=) wrote in message news:<9ec53d11.0203042356.73d7b673@posting.google.com>... > shoz@elbit.co.il (shoz) wrote in message news:... > > Hi > > Did any body use T2 update for gcc 2.96 on x86 ? > > Did any body use gcc 2.96 with Tornado on x86 ? > > thanks oz > > No. I wish I did, if it existed. I need C++ namespaces (to use CORBA > without nasty classes inside classes to simulate namespaces.) Yes 2.96 is somthing you can get from WindRiver , but it have problems that I want to see if someone solve. oz --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Is it possible to change the priortiy of windsh Date: Tue, 5 Mar 2002 15:03:23 -0000 From: "Dave Korn" Organization: Lumber Cartel (tinlc) Members #2234-2237 (owing to browser refresh) Message-ID: <%n7h8.2999$5o.2232656@newsr2.u-net.net> References: "Matt Schuckmann" wrote in message news:H%ag8.7148$fI6.5756@nwrddc01.gnilink.net... > Does anybody know if there is a way to change the priorty at which functions > and commands run from windsh run at? > > The problem I'm having is that I've got a significant part of my code loaded > and running and I'm dynamically loading and unloading another part of the > code to make it easier and quicker to debug it. When I use the ld() command > to dynamicaly load and unload the module I'm debugging the loader runs in > the windsh task and that task appears to run at such a high priority that it > prevents my hard real time task from running for long enough that I end up > having to reset my hardware after loading or unloading my test module. You could put this code in your application startup routiines: extern "C" void set_shell_priority (int newpri) { int shelltid; int err; // protect against accidental calls to set pri to 0 from command shell... if (pri < 1) return; shelltid = taskNameToId ("tShell"); err = taskPrioritySet (shelltid, newpri); if (err) printf ("taskPrioritySet failed!? TID = $%08x\n", shelltid); } DaveK - -- moderator of alt.talk.rec.soc.biz.news.comp.humanities.meow.misc.moderated.meow Burn your ID card! http://www.optional-identity.org.uk/ Help support the campaign, copy this into your .sig! Proud Member of the Exclusive "I have been plonked by Davee because he thinks I'm interesting" List Member # Master of Many Meowing Minions Holder of the exhalted PF Chang's Crab Wonton Award for kook spankage above and beyond the call of hilarity. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: A question about Tornado Prototyper Date: Tue, 5 Mar 2002 14:58:52 -0000 From: "Dave Korn" Organization: Lumber Cartel (tinlc) Members #2234-2237 (owing to browser refresh) Message-ID: <_n7h8.2998$5o.2232656@newsr2.u-net.net> References: "Johnny Yang" wrote in message news:ede027e4.0203032338.15509fb2@posting.google.com... > Dear all: > I am practicing Tornado Prototyper by following the "Tornado > Prototyper Getting Started Guide". Everything works fine until section > 3.6 "Download the Project to the VxWorks Target Simulator", the error > message is: > > TGTSVR (vxsim@Johnny): Mon Mar 04 15:34:58 2002 > Checking License ...OK > Wind River Systems Target Server: NT/Win95 version > Error: clnttty_bufcreate can't open pipe > Error: clnttty_bufcreate can't open pipe > Error: clnttty_bufcreate can't open pipe > Error: Remote system error; Error 65636 > Error: Backend initialization routine failed. > Problem during Backend initialization > Target Server will exit > > I searched the whole news group, but found no answer. > Can anybody help me? Thank you! > > ps. I am using Windows 98 on my PC. Do you possibly have more than one version of cygwin.dll on your system ? Or try these: http://groups.google.com/groups?hl=en&threadm=93fkvi%242ah%241%40nnrp1.deja. com&rnum=2&prev=/groups%3Fq%3Dclnttty_bufcreate%2Bcan%27t%2Bopen%2Bpipe%26hl %3Den http://groups.google.com/groups?hl=en&threadm=3921996B.5E89C0A7%40nortelnetw orks.com&rnum=4&prev=/groups%3Fq%3Dclnttty_bufcreate%2Bcan%27t%2Bopen%2Bpipe %26hl%3Den%26scoring%3Dd http://groups.google.com/groups?hl=en&threadm=8t5rlk%241ve%241%40news2.korne t.net&rnum=3&prev=/groups%3Fq%3Dclnttty_bufcreate%2Bcan%27t%2Bopen%2Bpipe%26 hl%3Den%26scoring%3Dd DaveK - -- moderator of alt.talk.rec.soc.biz.news.comp.humanities.meow.misc.moderated.meow Burn your ID card! http://www.optional-identity.org.uk/ Help support the campaign, copy this into your .sig! Proud Member of the Exclusive "I have been plonked by Davee because he thinks I'm interesting" List Member # Master of Many Meowing Minions Holder of the exhalted PF Chang's Crab Wonton Award for kook spankage above and beyond the call of hilarity. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: resolvLib Date: Tue, 5 Mar 2002 17:24:00 -0000 From: "Dave Korn" Organization: Lumber Cartel (tinlc) Members #2234-2237 (owing to browser refresh) Message-ID: <0o7h8.3003$5o.2232656@newsr2.u-net.net> References: <94ebff4d.0202271424.6dc14ddf@posting.google.com> "Tolu Makinde" wrote in message news:94ebff4d.0202271424.6dc14ddf@posting.google.com... > Hi All: > > I can't seem to get either resolvGetHostByName or resolvGetHostByAddr > to work, I'm including my test code below. Any input will be greatly > appreciated. When you have an error, it's always a good idea to check errno. I can't see your errno from here, so I'll leave that job to you. Have you read the manual entry for resolvLib? You might like to take the advice it gives about INCLUDE_DNS_DEBUG... DaveK - -- moderator of alt.talk.rec.soc.biz.news.comp.humanities.meow.misc.moderated.meow Burn your ID card! http://www.optional-identity.org.uk/ Help support the campaign, copy this into your .sig! Proud Member of the Exclusive "I have been plonked by Davee because he thinks I'm interesting" List Member # Master of Many Meowing Minions Holder of the exhalted PF Chang's Crab Wonton Award for kook spankage above and beyond the call of hilarity. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: (tNetTask): panic: sbdrop Date: Tue, 5 Mar 2002 17:12:21 -0000 From: "Dave Korn" Organization: Lumber Cartel (tinlc) Members #2234-2237 (owing to browser refresh) Message-ID: <%n7h8.3002$5o.2232656@newsr2.u-net.net> References: <3C7B9633.1D92F5DB@lucent.com> "Rakesh Chandwani" wrote in message news:3C7B9633.1D92F5DB@lucent.com... > After few hours of running an application on TCP/UDP sockets, we get these panic > messages and looks like sockets stop working. Has anyone seen this before ? > > Any suggestions ? > > 0x7d88a08 (tNetTask): panic: sbdrop > 0x7d88a08 (tNetTask): panic: sbdrop > 0x7d88a08 (tNetTask): panic: sbdrop > 0x7d88a08 (tNetTask): panic: sbdrop It could stand for "Sokcket Buffer drop", suggesting that the socket layer has run out of buffers. Perhaps something is trashing memory; perhaps you aren't reading data out from all your sockets and some of them are filling up? Perhaps some network driver in your BSP is failing to return mblks to the stack after using them? Or perhaps some of the stack parameters just need tuning for the level of traffic load you're seeing? DaveK - -- moderator of alt.talk.rec.soc.biz.news.comp.humanities.meow.misc.moderated.meow Burn your ID card! http://www.optional-identity.org.uk/ Help support the campaign, copy this into your .sig! Proud Member of the Exclusive "I have been plonked by Davee because he thinks I'm interesting" List Member # Master of Many Meowing Minions Holder of the exhalted PF Chang's Crab Wonton Award for kook spankage above and beyond the call of hilarity. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Having trouble with dynamicly loading modules Date: Tue, 5 Mar 2002 17:38:55 -0000 From: "Dave Korn" Organization: Lumber Cartel (tinlc) Members #2234-2237 (owing to browser refresh) Message-ID: <1o7h8.3004$5o.2232656@newsr2.u-net.net> References: <0cff8.5682$G7.1085@nwrddc01.gnilink.net> "Bill Pringlemeir" wrote in message news:uzo1uquf8.fsf@yahoo.com... > >>>>> "Bill" == Bill Pringlemeir writes: > > >>>>> "Matt" == Matt Schuckmann writes: > Matt> Thank you for the quick response. Let me see if I'm clear on > Matt> this: > > Matt> So basically what your saying is that the inter module calls > Matt> can only go one way. Put another way if Module A is loaded > Matt> first then Module B, Module A can make calls to Module B but > Matt> Module B can't make calls back to Module A. > > Matt> Do I have it right? > > Bill> You do indeed have this right. Loading kernel modules under > > [snip] > > Bill> ps, I am being intentionally cheeky because the last time I > Bill> helped with a C++ problem Dave Korn whomped me over the head. > > Damn it! You are wrong... why do I give the benefit of the doubt ;-). > Joe properly corrected you. The rest of what I said applies. Hey! That's my job goddammit!! [In case anyone's in any doubt, I have the greatest respect for Bill and would only ever flame him in a good-natured and friendly way :-)] DaveK - -- moderator of alt.talk.rec.soc.biz.news.comp.humanities.meow.misc.moderated.meow Burn your ID card! http://www.optional-identity.org.uk/ Help support the campaign, copy this into your .sig! Proud Member of the Exclusive "I have been plonked by Davee because he thinks I'm interesting" List Member # Master of Many Meowing Minions Holder of the exhalted PF Chang's Crab Wonton Award for kook spankage above and beyond the call of hilarity. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Nested Interrupts Date: Tue, 5 Mar 2002 09:40:03 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <28ee7c97.0202261827.69de7877@posting.google.com> <3c7ceaf6$1@netnews.web.de> VxWorks kernel by default has concept of nested interrupt support. Each interrupt handler can monitor intCnt global to see if nested condition exists. That is, HW independent part of VxWorks has this concept. In your case, you should be able to look at intCnt to determine if you are nested. Each HW (CPU) dependent port of VxWorks can/may support nested interrupts somewhat. For example, MIPS and SPARC support nested interrupt cases. However, no further provisions are made to guarantee re-entrancy or other refinements in the nested interrupt case. Locking out interrupts is done inclusively under a level (all interrupts below level 5, for example). That is HW independent API. It is not always the best way to manage interrupt locking. For specific HW requirements, you might code up your own locking API. If the interrupts are level triggered, not edge, then when you reenable the interrupt will still come in, unless there are other complications in HW (such as timeout, exception, etc.). --------------------------- Newsgroups: comp.os.vxworks Subject: Re: (tNetTask): panic: sbdrop Date: Tue, 5 Mar 2002 09:47:17 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <3C7B9633.1D92F5DB@lucent.com> <%n7h8.3002$5o.2232656@newsr2.u-net.net> sbdrop tries to drop bytes from beginning of an mbuf. It will panic if the data of up to specified length to be dropped is not there. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Is it possible to change the priortiy of windsh Date: Tue, 5 Mar 2002 18:09:53 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C850A5B.3040106@spamm.me.l8s.co.uk> References: <%n7h8.2999$5o.2232656@newsr2.u-net.net> >>Does anybody know if there is a way to change the priorty at which >>function and commands run from windsh run at? >> >>The problem I'm having is that I've got a significant part of my code >>loaded and running and I'm dynamically loading and unloading another >>part of the code to make it easier and quicker to debug it. >>When I use the ld() command to dynamicaly load and unload the >>module I'm debugging the loader runs in the windsh task and that >>task appears to run at such a high priority that it prevents my >>hard real time task from running for long enough that I end up >>having to reset my hardware after loading or unloading my test module. Just ask the shell to spawn a task to do the work.... sp ld,"filename" will run at a reasonable priority David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Unresolved symbol while download program : __eabi? Date: 5 Mar 2002 10:12:59 -0800 From: mpalone@gotuit.com (Mike Palone) Organization: http://groups.google.com/ Message-ID: <971e6b8f.0203051012.4a0dfdca@posting.google.com> References: <8cd11808.0203050528.6bb7bfcf@posting.google.com> I received a similar error message on __divdi3. After finding information in the gcc.info file in a Tornado subdir regarding the use of a implicit library DIVDI3_LIBCALL, I statically linked my application with the libgcc.a library and got rid of the error. The .OUT file got bigger however. The .INFO file looks like it has more info on your particular problem. Mike zjh_future@263.net (zjh) wrote in message news:<8cd11808.0203050528.6bb7bfcf@posting.google.com>... > hi,all > I have build a program with Tornado .The building process is successful. > While download the ldp.out to the target ppc860gnu.there is a error: > Unresolved symbol while > download ldp.out > --eabi > Have anyone seen the problem?Can you give me your advice to solve it? > all thanks!! > Sincerely zjh --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Initialize multiple ethernet interface after boot vxworks? Date: Tue, 5 Mar 2002 11:05:47 -0800 From: "Dan Gold" Organization: Mailgate.ORG Server - http://www.Mailgate.ORG Message-ID: References: Sender: gold@ensemble.com "Michael Lawnick" wrote in message news:a6228h$2vr$1@snoopy.bndlg.de... > Hi Choo, > > first: I'm no network expert, so no details, but... > on initialisation there should be sent one ARP packet (automatically). As > your statistic shows none, it seems that initialisation failed. Correct, upon initialization it should send out the "gratuitous" ARP. However, I think you have problems way before this. > Looking at your code, I see you have a void function, but return ERROR > within code. > No good style. > Add -W -Wall to your compiler options and don't ignore the warnings - every > warning could be a hidden problem. You have other problems too. First, you load string looks incorrect, i.e. too short. Look at an example 8260 load string in configNet.h. Aren't you supposed to have the interrupt vector, the IMMR, and a few other things in the load string ? You also don't check the return value from muxDevLoad(). Are you familiar with the bug that muxDevLoad() really needs to be called twice ? (if the bug is still present, I believe it is). Why are you trying to do everything (load/start/config) from your function ? Why don't you do the following: 1. Make a correct entry for your interface in configNet.h. This way, the system will call the load and start in usrNetInit(). 2. Go to the (excellent, highly informative) vxWorks FAQ, and see the function there that's used to bring up additional interfaces (assuming they have an entry in configNet.h, and usrNetInit() has run the muxDev{Load,Start} on them. > > Above [ifShow] is done after [ping "192.168.2.222"] is done. > > I think that above send packet count of "sttfcc1" must increase. right? > > many receive packet is stored in driver's buffer. But above receive > > packet count is 0. why? Did you look at the RxBDs to see if they're full ? Is it possible (due to an incorrect load string) that you're not generating any interrupts, thus no one is taking the packets out of the driver ? Did you look at FCCE to see if any interrupts are pending ? hth, Dan Gold gold@ensemble.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: error msg: trcStack aborted: error in frame Date: Tue, 5 Mar 2002 20:04:27 +0100 From: "Werner Schiendl" Message-ID: <3c8516b9$1@brateggebdc5.br-automation.co.at> References: <3c839a37$1@brateggebdc5.br-automation.co.at> Hi, if you are sure, your BSP is _completely_ rebuilt with the current compiler, there are two possible solutions I can imagine: 1) something trashes the stack for some odd reason, as Dave K. explained 2) trcStack has (problems with | not been properly ported to) the stack frame format of the compiler I'd try use an other BSP, if you have this option, to find out which option fits. hth Werner "Markus Pietrek" wrote in message news:a61ucq$1og$00$1@news.t-online.com... > Werner Schiendl wrote: > > > Hi, > > > > for me this sounds as if the stackframe of some routine of the call stack > > does not meet the expectations of trcStack(). > > Like if a different compiler were used for portions of the stuff. > > > > Did you rebuild everything with the same compiler, that the core > > components are built with? > > I hope so as I'm using the compiler (ccarm 2.9) bundled with Tornado 2.1.1. > Yesterday I made that discovery that not the system is standing but only the > serial shell is suspended. When I do 'tr tShell' on a WDB shell it will be > resumed but the special functions of the console (e.g. ctrl-x and ctrl-c) > are being disabled. > > Bye, > Markus Pietrek --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Pipe vs Socket communication Date: Tue, 5 Mar 2002 20:08:08 +0100 From: "Werner Schiendl" Message-ID: <3c851796$1@brateggebdc5.br-automation.co.at> References: Hi, if you need something with 'stream' behaviour, you should go with sockets. The VxWorks pipe driver works with 'datagrams', like a message queue. That means, if you put 7 bytes in one chunk into your pipe, and read - for example - 3 bytes from it, the rest of it (4 bytes in this case) is dropped. Further, you need to specifiy the maximum chunk size when creating the pipe. In case I need something like that, I usually prefer using a message queue directly. You've more options and a - IMHO - more intuitive and consistent API than for the pipe driver. hth Werner "Xavier Marjou" wrote in message news:c1013e3b.0203041001.79ce1f29@posting.google.com... > Hello, > > I would like to know how slow is a communication between two tasks if > a pipe is used or if it's a socket (local loopback). Is there any link > on the subject ? > > Thank you, > Xavier Marjou --------------------------- Newsgroups: comp.os.vxworks Subject: Re: tNetTask takes too long? Date: Tue, 5 Mar 2002 21:44:36 +0200 From: "Leonid Rosenboim" Organization: Verio Message-ID: References: Here is my suggestion: Perhaps probing the PHY also triggers PHY autonetitiation, which takes time depending on the speed used. It can take quite a while for 10Mbps half-duplex, because that is the last resort settings, reached in the event of negotiation timeout. If your target is connected to a 10Mbps hub - try a switch. Smart drivers use the PHY interrupt to dedect a change in LINK integrity or speed, so the while idea of polling the PHY every 5 sec sounds rather stupid to me. "Dinker Charak" wrote in message news:a612lk$prf$1@info4.fnal.gov... > Hi All, > > Refreshing: We had a strange problem of tNetTask taking around 4.5 ms each > 5 sec. It turns out that each 5 sec the miiLib adds a job to tNetTask for > checking if the PHY is connected or not. > > It turns out that it is during this reading there is an abnormal delay. > > Anyone any pointer or suggestion what could be wrong? > > The WRS support person's system does not show the delay. But two of our > systems on different sub-nets show the problem (one is a MV2301 and another > MV2400). > > We are running vxWorks 5.4.2 with June 2001 driver update installed. > > Thanks, > Dinker > > --------------------------- Newsgroups: comp.os.vxworks Subject: Changing stdout to send to a telnet socket Date: Tue, 05 Mar 2002 14:56:56 -0500 From: Rakesh Chandwani Organization: Lucent Technologies Message-ID: <3C852308.240B6852@lucent.com> Hi !!, Is there a way to change temporarily or permanently the stdout descriptor from 0 to any selected socket descriptor ? I need to do this to run a tcpserver in vxworks that accepts a connection from any telnet client and then from thereon, whatever commands are given, their output or the printfs ( logs ) in should all come out on this telnet window... any help ? - -- Rakesh --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Changing stdout to send to a telnet socket Date: Tue, 05 Mar 2002 15:49:00 -0500 From: Rakesh Chandwani Organization: Lucent Technologies Message-ID: <3C852F3C.C3935CBB@lucent.com> References: <3C852308.240B6852@lucent.com> Oops... didn't read the manual properly... ioGlobalStdSet() does it all.. - --- Rakesh Rakesh Chandwani wrote: > > Hi !!, > > Is there a way to change temporarily or permanently the stdout descriptor from 0 > to any selected socket descriptor ? I need to do this to run a tcpserver in > vxworks that accepts a connection from any telnet client and then from thereon, > whatever commands are given, their output or the printfs ( logs ) in should all > come out on this telnet window... > > any help ? > > -- > Rakesh - -- Rakesh Chandwani Lambda Router AOS SW Dev.| Lucent Technologies, Room 3N-320 | 101 Crawfords Corner Road, Ph:732-949-0576 | Holmdel, NJ - 07748 --------------------------- Newsgroups: comp.os.vxworks Subject: Changing to FIFO Ordered First-Fit Date: 5 Mar 2002 12:59:07 -0800 From: mynamvs@nsc.network.com (Venkat Mynampati) Organization: http://groups.google.com/ Message-ID: <65b2abfc.0203051259.1662f9be@posting.google.com> I read an article by Paul Wilson and others (Dynamic Storage Allocation: Survey and Review) and in that it was mentioned that: "Best fit, FIFO ordered First Fit and address ordered first-fit" perform the same manner, with a fragmentation of 22%. Where as First-Fit based on LIFO is Worse with 54% fragmentation! What i would like to know is : Does VxWorks uses First-fit based on LIFO or on FIFO? And if it is based on LIFO, how can i change it to FIFO? Well, i don;t have source code for memLib.o. Thanks for Your Help. Venkat --------------------------- Newsgroups: comp.os.linux.powerpc,comp.os.vxworks Subject: Cache profiler for PowerPC on vxworks Date: 5 Mar 2002 13:24:53 -0800 From: ducthinhle@hotmail.com (Duc Thinh Le) Organization: http://groups.google.com/ Message-ID: <5870634d.0203051324.4f71e7f5@posting.google.com> Hi, I am just wondering if anyone knows of a tool that has cache profiling capability for PowerPC on Vxworks environment. Basically, I need a tool that is able to tell me which line (C code) of my program causes cahce miss (instruction and data). Please let me know if you have any comments, ideas or questions. Your helps and inputs are much appreciated. Thanks. Regards Duc Le --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Initialize multiple ethernet interface after boot vxworks? Date: Tue, 5 Mar 2002 13:36:19 -0800 From: "Dan Gold" Organization: Mailgate.ORG Server - http://www.Mailgate.ORG Message-ID: References: Sender: gold@ensemble.com Michael Lawnick" wrote in message news:a6228h$2vr$1@snoopy.bndlg.de... > Hi Choo, > > first: I'm no network expert, so no details, but... > on initialisation there should be sent one ARP packet (automatically). As > your statistic shows none, it seems that initialisation failed. Correct, upon initialization it should send out the "gratuitous" ARP. However, I think you have problems way before this. > Looking at your code, I see you have a void function, but return ERROR > within code. > No good style. > Add -W -Wall to your compiler options and don't ignore the warnings - every > warning could be a hidden problem. You have other problems too. First, you load string looks incorrect, i.e. too short. Look at an example 8260 load string in configNet.h. Aren't you supposed to have the interrupt vector, the IMMR, and a few other things in the load string ? You also don't check the return value from muxDevLoad(). Are you familiar with the bug that muxDevLoad() really needs to be called twice ? (if the bug is still present, I believe it is). Why are you trying to do everything (load/start/config) from your function ? Why don't you do the following: 1. Make a correct entry for your interface in configNet.h. This way, the system will call the load and start in usrNetInit(). 2. Go to the (excellent, highly informative) vxWorks FAQ, and see the function there that's used to bring up additional interfaces (assuming they have an entry in configNet.h, and usrNetInit() has run the muxDev{Load,Start} on them. > > Above [ifShow] is done after [ping "192.168.2.222"] is done. > > I think that above send packet count of "sttfcc1" must increase. right? > > many receive packet is stored in driver's buffer. But above receive > > packet count is 0. why? Did you look at the RxBDs to see if they're full ? Is it possible (due to an incorrect load string) that you're not generating any interrupts, thus no one is taking the packets out of the driver ? Did you look at FCCE to see if any interrupts are pending ? hth, Dan Gold gold@ensemble.com --------------------------- Newsgroups: comp.arch.storage,comp.periphs.scsi,comp.os.vxworks Subject: Re: source code for SCSI Fibre Channel implementation Date: 5 Mar 2002 17:56:38 -0500 From: tls@panix.com (Thor Lancelot Simon) Organization: PANIX -- Public Access Networks Corp. Message-ID: References: <5c04bc56.0202272342.124108d6@posting.google.com> Reply-To: tls@rek.tjls.com In article , UK Gary wrote: > >Mainly by reading all your other clueless posts. You didn't even know how >to look through the linux source tree. How the fuck do you think you are Did it occur to you that, perhaps, unlike your own ranting and that of the various other chest-thumping idiots posting in this thread, J.J.'s skepticism that he'd find what he needed in the Linux source code was a sign of *intelligence*? As has been amply discussed by now, there's nothing there for him to find. - -- Thor Lancelot Simon tls@rek.tjls.com But as he knew no bad language, he had called him all the names of common objects that he could think of, and had screamed: "You lamp! You towel! You plate!" and so on. --Sigmund Freud --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Changing to FIFO Ordered First-Fit Date: 05 Mar 2002 18:39:04 -0500 From: Bill Pringlemeir Organization: Bell Sympatico Message-ID: References: <65b2abfc.0203051259.1662f9be@posting.google.com> Sender: bpringlemeir@DeadDuck Venkat> I read an article by Paul Wilson and others (Dynamic Storage Venkat> Allocation: Survey and Review) and in that it was mentioned [snip] Venkat> What i would like to know is : Does VxWorks uses First-fit Venkat> based on LIFO or on FIFO? And if it is based on LIFO, how Venkat> can i change it to FIFO? Well, i don;t have source code for Venkat> memLib.o. vxWorks used a First fit based on memory order afaik. I base this on the behavior of "memShow 1". In the paper you cite, they also mention that boundary tag methods are far superior. This is close to what Doug Leah's allocator uses. Using Zinc and plenty of C++ classes, we quickly made 1Mb to > 20k largest block size in no time (about 1 day). The free memory was about 800k in this case. Using Doug Leah's allocator, the product will run for more than a month under similar loads. This was ok for our product, so I circumvented finding all of the memory leaks, although we did priorities them using memScope and fix the largest ones [extending the time to memory exhaustion further]. hth, Bill Pringlemeir. - -- New ideas is like a big city with no people but many many worlds. vxWorks FAQ, "http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html" --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Changing to FIFO Ordered First-Fit Date: 05 Mar 2002 19:14:16 -0500 From: Bill Pringlemeir Organization: Bell Sympatico Message-ID: References: <65b2abfc.0203051259.1662f9be@posting.google.com> Sender: bpringlemeir@DeadDuck >>>>> "Bill" == Bill Pringlemeir writes: Venkat> I read an article by Paul Wilson and others (Dynamic Storage Venkat> Allocation: Survey and Review) and in that it was mentioned Bill> [snip] Venkat> What i would like to know is : Does VxWorks uses First-fit Venkat> based on LIFO or on FIFO? And if it is based on LIFO, how Venkat> can i change it to FIFO? Well, i don;t have source code for Venkat> memLib.o. Bill> vxWorks used a First fit based on memory order afaik. I base Bill> this on the behavior of "memShow 1". In the paper you cite, Bill> they also mention that boundary tag methods are far superior. Bill> This is close to what Doug Leah's allocator uses. Uh yeah... -> memShow 1 FREE LIST: num addr size --- ---------- ---------- 1 0x7bc008 16368 2 0x2dbd2c 4264956 It appears that this is not an address based scheme as I first suggested... [as anyone can plainly see]. I think that it FIFO now, but what do I know. You can do allocations and frees and use "memShow 1". I am positive that it traverses the list in order so you can deduce that it is FIFO. I am also pretty sure that this has been discussed here before. Try deja searches and stop making me look stupid. "http://groups.google.com/groups?hl=en&frame=right&th=226c7e4472114719&seekm=7b4i1k%2459914%40overload.lbl.gov#s" "http://groups.google.com/groups?hl=en&frame=right&th=226c7e4472114719&seekm=36D8FCF1.E8EF9F7%40bitband.com#link10" Here it is said to be LIFO, but then later FIFO. At any rate, I think the allocator is crap... and if you have to ask the question, you should look for alternatives. Regards, Bill Pringlemeir. - -- The goal of science is to inspire the mind. vxWorks FAQ, "http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html" --------------------------- Newsgroups: comp.os.vxworks Subject: CPU consumption by WDB task Date: Wed, 06 Mar 2002 03:35:43 GMT From: "Jamilur Rahman" Message-ID: I am in a profiling process of intel CPUs running on VxWorks. I noticed a very interesting behaviour of WDB task. When I use higher capacity CPUs, the WDB task takes more CPU overhead than the lower capacity one. For more clarification, here are some of the data from my profiling results. Note that, I'm using ProfileScope for measurement and in all cases an identical application load on each CPU. 1) for P-3, 1GHz, 256KB Cache memory, 133MHz Bus speed: WDB takes 4.59% of CPU time. 2) for Celeron, 1.3GHz, 256KB Cache, 100MHz Bus speed: WDB takes 2.79% of CPU time. 3) for Celeron, 850MHz, 128KB Cache, 100MHz Bus speed: WDB takes 0.59% of CPU time. Informative help from anybody would be very much appreciated. /jamil, Ottawa, Ontario. --------------------------- Newsgroups: comp.arch.storage,comp.periphs.scsi,comp.os.vxworks Subject: Re: source code for SCSI Fibre Channel implementation Date: 5 Mar 2002 20:13:25 -0800 From: kallolm_tech@yahoo.com (Kallol Mallick) Organization: http://groups.google.com/ Message-ID: References: <5c04bc56.0202272342.124108d6@posting.google.com> tls@panix.com (Thor Lancelot Simon) wrote in message news:... > In article , > UK Gary wrote: > > > >Mainly by reading all your other clueless posts. You didn't even know how > >to look through the linux source tree. How the fuck do you think you are > > Did it occur to you that, perhaps, unlike your own ranting and that of the > various other chest-thumping idiots posting in this thread, J.J.'s skepticism > that he'd find what he needed in the Linux source code was a sign of > *intelligence*? As has been amply discussed by now, there's nothing there > for him to find. Hey everybody, please stop this non-sense and get back to the original discussion. It seems that there is no readily available source code for this and it needs huge resource to develop one. May be you can try to get an old version of LSI or QLogic implementation to get an idea. And also you need to write some portion in embedded processor(whichever you use) to expose register level access to the host. As a test probably you can build the stack source code in pure C and put it into host driver (UNIX/Windows) wrapper. Because it's easier to debug/develop in host drivers than in firmware. Then port it to the firmware. The porting should not be a big effort if the stack uses strictly C (I mean no system calls) and designed properly. - -Kallol --------------------------- Newsgroups: comp.os.vxworks Subject: Re: undefined references when including the ln97xEnd with ARMARCH4 Date: Wed, 06 Mar 2002 05:55:23 GMT From: "Paul Iannacito" Organization: AT&T Broadband Message-ID: References: <3c84ec5a$0$222$4d4ebb8e@read-nat.news.nl.uu.net> Hello Niels, wrote in message news:3c84ec5a$0$222$4d4ebb8e@read-nat.news.nl.uu.net... > I got the following undefined references when trying to include the > ln97xEnd network driver in my bootrom: > .... The undefined symbols your linker complained about are as follows: sysLan97xEnetAddrGet sysLan97xIntEnable sysLan97xIntDisable sysOutLong sysInLong The first symbols are actually supposed to be functions that are defined in the BSP. The ln97xEnd driver you are attempting to link into your system references these symbols. The xxxIntEnable() and xxxIntDisable() routines are BSP-specific - their function is to enable/disable the controller's interrupt input to an interrupt controller of some sort. Naturually, this is going to be specific to your hardware. sysLan97xEnetAddrGet() is supposed to be a function defined in the BSP. This routine is supposed to return an IEEE station address (or Ethernet address, if you like) to the controller. A method for implementing this routine can be discovered in the AMD documents for the PCnet PCI family devices. For example, check the Am79c970A documentation which can be downloaded in PDF format from AMD's web site. It is unlikely that the BSP you are using has the BSP-specific support routines or initialization functions for the ln97xEnd driver. > ... > The sysOutLong funcs are most suprising because they would impress that > the driver was for a non-memory mapped arch?? Well, these names are a bit misleading. Some BSPs define sysOutLong() and sysInLong() functions authored for memory-mapped CPUs. Don't let the names lead you to believe that these are necessarilly for Intel I/O address space and implemented using the Intel-specific IN and OUT instructions. Even on Intel 80x86 or Pentium family CPUs, all of the devices supported by the ln97xEnd driver can work using memory-mapped registers. In fact, this is the default for WRS Intel BSPs that support the ln97xEnd driver. Quite a few BSPs define BSP-specific versions of these routines. It seems that you may have to do the same if you intend to support the ln97xEnd driver. If you want to use the ln97xEnd driver in your ARM BSP, it sounds like you will have to author the support yourself. If you are interested, read on; I can give you a bit of guidance on how to do this. If you're not interested in authoring your own driver support routines, try using the DEC END driver instead. Most of the WRS ARM BSPs seem to have canned support for that one. (1) Define the sysLan97xEnetAddrGet, sysLan97xIntEnable, and sysLan97xIntDisable support routines in a BSP-specific file. You may already have a file that has support routines for other END drivers (like the DEC END driver). In fact, you may find the answer to the question of how to implement the interrupt enable/disable routines for ln97xEnd. I'll give you an idea of how to do these routines: /*************************************************************************** **** * * sysLan97xIntEnable - enable Am79C97x ethernet device interrupts * * This routine enables Am79C97x interrupts. This may involve operations on * interrupt control hardware. * * RETURNS: OK or ERROR for invalid arguments. */ STATUS sysLan97xIntEnable ( int level /* level number */ ) { return (intEnable (level)); } /*************************************************************************** **** * * sysLan97xIntDisable - disable Am79C97x ethernet device interrupts * * This routine disables Am79C97x interrupts. This may involve operations on * interrupt control hardware. * * RETURNS: OK or ERROR for invalid arguments. */ STATUS sysLan97xIntDisable ( int level /* level number */ ) { return (intDisable (level)); } The actual implementation of these routines can vary between architectures, and even between BSPs for a given architecture family. Generally, the parameter to this routine will specify an interrupt defined for an interrupt controller on the host platform. Depending upon the BSP you are using, you may be able to use the WRS intEnable() and intDisable() library routines to implement these. You may also find some sort of interrupt enable and disable routines defined in the BSP itself. Generally, the BSP documentation should tell you what the BSP uses for this functionality. Look around in things like sysLib.c - you should be able to find the interrupt enable and disable routines used on other devices. The following is how you can do the sysLan97xEnetAddrGet() routine. This should really be defined in the driver with a user-option to override the driver definition. Oh well. You are welcome to use this as you like. The comments are my own interpretation based on the AMD docs. Just let me know if I screwed this up. BTW, some of the manifest constants are #defined in ln97xEnd.h. /*************************************************************************** **** * * pcnetMacAddrGet - get a PCnet Ethernet (IEEE station) address * * This routine provides an interface for accessing an Am79C97x device * Ethernet (IEEE station address) address in the device's Address PROM * (APROM). A handle to the specific device control structure is specified * in the parameter. The 6-byte IEEE station address will be * copied to the memory location specified by the parameter. * * CAVEATS * Assumes the driver is using memory-mapped I/O registers. * * This routine could be called relatively early in controller * initialization. There is no guarantee that the controller will be in * 32-bit I/O mode when this routine is called. Thus, the APROM addresses * should be read 16-bits at a time rather than 32-bits at a time, just to * be safe. * * INTERNAL * The 6 bytes of the IEEE station address occupy the first 6 locations of * the Address PROM space. The driver must copy the station address from * the Address PROM space to the initialization block or to CSR12-14 in order * for the receiver to accept unicast frames directed to the device. * * Bytes 14 and 15 of APROM should each be ASCII 'W' (57h). The above * requirements must be met in order to be compatible with AMD driver * software. * * The APROM is 32 bytes, and there is no need to read all of that here. * Moreover, in 16-bit I/O mode (out of H_RESET), we may only have access * to 16 bytes of APROM. So, this routine reads half of the APROM to get * the Ethernet address and test for ASCII 'W's. * * RETURNS: OK, or ERROR if could not be obtained. */ STATUS sysLan97xEnetAddrGet ( LN_97X_DRV_CTRL * pDrvCtrl, /* Driver control */ char * enetAdrs ) { char aprom [PCNET_APROM_SIZE]; /* store a copy of APROM */ /* get I/O address of unit & alias for data mov */ UINT16 * const pIoAddr = (UINT16 * const)(pDrvCtrl->devAdrs); UINT16 * const pAprom = (UINT16 * const)(&aprom[0]); /* load 16-bytes of APROM into an array (2-bytes at a time) */ pAprom[0] = pIoAddr[0]; pAprom[1] = pIoAddr[1]; pAprom[2] = pIoAddr[2]; pAprom[3] = pIoAddr[3]; pAprom[4] = pIoAddr[4]; pAprom[5] = pIoAddr[5]; pAprom[6] = pIoAddr[6]; pAprom[7] = pIoAddr[7]; /* check for ASCII 'W's at APROM bytes 14 and 15 */ if ((aprom [0xe] != 'W') || (aprom [0xf] != 'W')) { return ERROR; } pEnetAdrs[0] = aprom[0]; pEnetAdrs[1] = aprom[1]; pEnetAdrs[2] = aprom[2]; pEnetAdrs[3] = aprom[3]; pEnetAdrs[4] = aprom[4]; pEnetAdrs[5] = aprom[5]; return OK; } (2) Add some code to find devices supported by the ln97xEnd driver and initialize the device's PCI resources (BARs, interrupt lines, &c.). You'll have to save some of this information for the driver load routine. For this bit you'll need the PCI vendor, device, and revision IDs for devices that will minimally function under the driver. The following should get you going (use a fixed width font for the ASCII table): /* AMD 79C97x 10/100Base-TX PCI Ethernet Board Types */ #define AMD_PCI_VENDOR_ID (0x1022) /* AMD PCI vendor ID */ #define PCNET_PCI_DEVICE_ID (0x2000) /* Am79c97x device ID */ #define AM970_PCI_REV_MASK (0x10) /* Am79c970A PCI rev mask */ #define AM971_PCI_REV_MASK (0x20) /* Am79c971 PCI rev mask */ #define AM972_PCI_REV_MASK (0x30) /* Am79c972 PCI rev mask */ #define AM973_PCI_REV_MASK (0x40) /* Am79c97[3/5] PCI rev mask */ --------------------------------------------------------------------------- PCI Configuration Space Offset: 0x08 PCI Revision ID Register 31 16 15 0 xxxx xxxx xxxx xxxx xxxx xxxx RRRR RRRR xxxx xxxx xxxx xxxx xxxx xxxx 0000 xxxx 0x Am79C970 PCnet-PCI xxxx xxxx xxxx xxxx xxxx xxxx 0001 xxxx 1x Am79C970A PCnet-PCI II xxxx xxxx xxxx xxxx xxxx xxxx 0010 xxxx 2x Am79C971 PCnet-FAST xxxx xxxx xxxx xxxx xxxx xxxx 0011 xxxx 3x Am79C972 PCnet-FAST+ xxxx xxxx xxxx xxxx xxxx xxxx 0100 xxxx 4x Am79C973 PCnet-FAST III xxxx xxxx xxxx xxxx xxxx xxxx 0100 xxxx 4x Am79C975 PCnet-FAST III xxxx xxxx xxxx xxxx xxxx xxxx 0101 xxxx 5x Am79C978 PCnet-Home --------------------------------------------------------------------------- When you find a device, you'll have to be sure that you can get the memory-mapped registers mapped into the host processor address space. I cannot tell you how to do any of this, because it seems that every BSP does the PCI device discovery differently. Some BSPs use unecessarilly clumsy or overly specific configurations. Just about all of the BSPs that support PCI devices use the WRS pciConfigLib and / or pciAutoConfigLib libraries. Look in your BSP for an example of how it is done for some other device. For example, you will probably find some PCI init code for the DEC END driver if you are using a WRS ARM BSP. (3) Check that your BSP can somehow get appropriate entries in the endDevTbl[] (usually it is in the BSP configNet.h file) when the configuration constant for the ln97xEnd driver is defined. One of the entries in this table is the address of the load routine for the driver. The driver load routine should actually be documented. A lot of BSPs wrap the driver load routine in a BSP-specific function. Here is something that you could use as a driver load routine for some BSP: ... /* driver configuration flags */ /* The parameter specifies the offset from which a packet has * to be loaded from the beginning of a device buffer. Normally, this * parameter is zero except for architectures which access long words * only on aligned addresses. For these architectures, the value of * this should be 2. */ #define LN97X_OFFS_VALUE (2) /* driver value */ #define LN97X_CSR3_VALUE (0) /* CSR3 register value */ #define LN97X_RSVD_FLAGS (0) /* driver value */ ... /*************************************************************************** *** * * sysLn97xEndLoad - construct a load string and load an Am79C97x device * * This routine will be invoked by the MUX for the purpose of loading * an Am79C97x (lnPci) device with initial parameters. This routine is * constructed as an interface wrapper for the driver load routine. * Thus, the arguments and return values are consistent with any * xxxEndLoad() routine defined for an END driver and the MUX API. * * INTERNAL * The muxDevLoad() operation calls this routine twice. A zero length * parameter string indicates that this is the first time * through this routine. The driver load routine should return the * driver name in . * * On the second pass though this routine, the initialization parameter * string is constructed. Note that on the second pass, the * consists of a colon-delimeted END device unit number and rudimentary * initialization string (often empty) constructed from entries in the * BSP END Device Table such that: * * = ":" * * In the process of building the rest of , the prepended unit * number must be preserved and passed to the driver load routine. The * portion mentioned above is discarded, * but future versions of this routine may use it. * * The complete ln97xEnd driver load string has format: * * ::::: * ::::: * * RETURNS: An END object pointer, or NULL on error, or 0 and the name of the * device if the was NULL. * * SEE ALSO: ln97xEndLoad() */ END_OBJ * sysLn97xEndLoad ( char * pParamStr, /* pointer to initialization parameter string */ void * unused /* unused optional argument */ ) { END_OBJ * pEnd; /* alias local PCI and board resource table addresses */ PCI_BOARD_RESOURCE * const pciRsrc = ln97xPciResources; if (strlen (pParamStr) == 0) { /* PASS (1) * The driver load routine returns the driver name in . */ pEnd = ln97xEndLoad (pParamStr); } else { /* PASS (2) * The END number is prepended to . Construct * the rest of the driver load string based on physical devices * discovered in sysLan97xPciInit(). When this routine is called * to process a particular END number, use the END * as an index into the PCI "resources" table to build the driver * parameter string. */ char paramStr [END_INIT_STR_MAX]; static const char * const paramTemplate = "%d:0x%x:0x%x:0x%x:%d:%d:-1:-1:-1:0x%x:%d:0x%x:%p"; char * holder = NULL; int endUnit = atoi (strtok_r (pParamStr, ":", &holder)); /* sanity check endUnit value ... */ /* construct the initialization parameter string */ sprintf (paramStr, paramTemplate, endUnit, /* END unit number */ pciRsrc[endUnit].bar[1], /* memory-mapped IO base */ pciRsrc[endUnit].bar[0], /* IO address space base */ PCI2DRAM_BASE_ADRS, /* host PCI mem. base */ pciRsrc[endUnit].irqvec, /* IRQ vector */ pciRsrc[endUnit].irq, /* IRQ number */ LN97X_CSR3_VALUE, /* csr3 register value */ LN97X_OFFS_VALUE, /* offset */ LN97X_RSVD_FLAGS /* flags (reserved) */ ); if ((pEnd = ln97xEndLoad (paramStr)) == (END_OBJ *) NULL) { printf ("Error sysLn97xEndLoad: device load failed.\n"); } } return (pEnd); } The (PCI2DRAM_BASE_ADRS) value used in the load string is going to be specific to your platform. All of the parameters in the driver load string are documented. The table referenced in the snippet above is just an example of a data structure that was used to save some of the PCI information (like NPF mem and IO decoders) when the device was discovered. The structure is indexed via the END unit number in the example, but you can handle this however you like - you don't have to do anything with the END unit number except pass it through the load string. The only caveat is that multiple devices of a kind require distinct END unit numbers. For example, you should not be trying to create two distinct lnPci device instances with END unit numbers 0. One should be 0, and the other should be an integer n > 0. Well, I think that's as far as I want to go with this. Big fun, eh? Good luck. Regards, paul --------------------------- Newsgroups: comp.os.vxworks Subject: Re: PPP problem Date: Wed, 06 Mar 2002 08:11:52 +0100 From: Emmanuel Herbreteau Organization: SEPRO Robotique (BEP) Message-ID: <3C85C138.D50E308A@sepro-robotique.com> References: <3C7E0A02.3F646C90@sepro-robotique.com> <3C7F7A9D.2AB0A3B2@sepro-robotique.com> Leonid Rosenboim wrote: > The fact that large files work OK would suggest the serial driver is > innoscent. Hi Leonid, Thanks for your reply. Indeed, the serial driver wasn't guilty ! The WRS support told me to use netStackSysPoolShow() when the problem appears. It shows the following information : .../... number of times failed to find space: 1 number of times drained protocols for space: 1 CLUSTER POOL TABLE size clusters free usage - ------------------------------------------------------------------------------- 512 20 0 21 .../... There was not enought 512 bytes buffers in the network stack. So, I increase this setting (in the Tornado builder, I change some "define" in the "network buffer initialization" tab). And it seems to work better now. - -- Regards Emmanuel --------------------------- Newsgroups: comp.os.vxworks Subject: still: cannot connect target server... Date: 5 Mar 2002 23:25:43 -0800 From: fillmore2@arcor.de (Achim) Organization: http://groups.google.com/ Message-ID: <9d082700.0203052325.48946aa@posting.google.com> Hi, I still have not been able to get my target server connection running via end driver: - - there's no response from the target on the first UDP message send from the target server - - I can ping the target from the tornado host PC (even after trying to establish the target server connecion - so it's no ethernet driver problem) - - I can establish and end a ftp connection to the target if I include ftp (though it makes not much sense for that target) - - The parameters for launching the target server are tgtsvr.exe 10.1.255.254 -A -V -B wdbrpc -Bt 10 -Br 5 -c K:\[long path...]\default\vxWorks With that behaviour (and assuming that the target server generates correct messages to establish the connection), I would guess that I have a problem either with receiving UDP frames or the wdb/Target agent components on the target. Any ideas on this (like some experience with easy-to-miss parameters for UDP or WDB...)? Achim. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: VxWorks Application Module Size Questions Date: 5 Mar 2002 23:27:52 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203052327.543f208e@posting.google.com> References: <971e6b8f.0203050840.61205700@posting.google.com> Hello, Don't be fooled into believing that the size of the .out file is the size of your code. The .out is, I assume, still a relocatable file which contains all the overheads needed to perform the final linking. To find out the size of the actual code and data in the file, use the 'size' command, e.g. for PowerPC use sizeppc. This will give you the information about the size of each of the segments in the file (text, data, bss). This is more accurate than just comparing file sizes. Something else to consider... unless your actual target arch is x86 as well, you'd be better off building for the architecture you intend to run on to get the sizes. In particular, when changing from CISC to RISC chips, the size can be very different. HTH, John... mpalone@gotuit.com (Mike Palone) wrote in message news:<971e6b8f.0203050840.61205700@posting.google.com>... > Does the size of a VxWorks application downloaded to the Target get > scaled back once the module is resolved against other modules and/or > the VxWorks executable itself? We understand that different > libraries/packages can be included or excluded within the VxWorks > module by changes made to the configAll.h file and rebuilding. We are > using WindRiver's Tonado IDE version 2.02. We are building using a > Win2000 host with Optimization set to level 1 (-O1) since it is giving > us the smallest resulting .OUT file. We are currently only testing our > application in the NTSIM simulator since there is no hardware > available yet. Does building for the simulator cause the size to be > larger than what it may be vs. a BSP? > > Our WinCE port of the application gives us a DLL of size 180K. The > VxWorks .OUT file is 392K. As another example, we had an unresolved > external __divid3 (implicit library call) when downloading our > application to the simulator. Once we statically linked with the > libgcc.a library to account for this, our application .OUT file went > to 492K. Does the final resolution / dynamic linking in VxWorks > handle what exactly gets loaded/relocated into RAM so only what is > needed is used? > > How can we determine the RAM or ROM footprint of our module (assuming > that it will be smaller than the .OUT file once final > linking/relocation is performed)? > > We have not yet run any utilities for determining what exactly is > inside the .OUT file. Since the VxWorks simulator is built with the > ANSI C includes, our application's size should not include the C Run > Time code as well, correct? > > Thank you very much in advance... > Mike Palone > Principal Software Engineer > Gotuit Video Inc. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: TCP/IP Support in VxWorks Date: 6 Mar 2002 00:43:57 -0800 From: dalstorp@yahoo.com (Dalen Torp) Organization: http://groups.google.com/ Message-ID: References: <3c741e96_4@news1.prserv.net> wrote in message news:<3c741e96_4@news1.prserv.net>... > I have a client running a large network using VxWorks V3.X. The network is > unstable which is now being attributed by problem with version 3 handling > variable length subnet masks. > > The suggestion is to upgrade to the current release. Does anyone know if > the handling of TCP/IP is different between version 3 and 5 and if upgrading > is going to fix the subnet mask problem. > > Thanks. It seams like your client are running WxWork 3.X for AXPvme boards? this should be Digitals (DECs) version of WindRiver 5.X! Maybe you should ask your client? --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Initialize multiple ethernet interface after boot vxworks? Date: Wed, 6 Mar 2002 09:02:58 +0000 (UTC) From: "Choo Joung-hoon" Organization: Mailgate.ORG Server - http://www.Mailgate.ORG Message-ID: References: "Dan Gold" wrote in message news:a63dp0$pvr$3@newsreader.mailgate.org... > You have other problems too. First, you load string looks incorrect, i.e. > too short. Look at an example 8260 load string in configNet.h. Aren't you > supposed to have the interrupt vector, the IMMR, and a few other things in > the load string ? You also don't check the return value from muxDevLoad(). > Are you familiar with the bug that muxDevLoad() really needs to be called > twice ? (if the bug is still present, I believe it is). > muxDevLoad() is called twice. load string is correct. And muxDevLoad() does not return NULL(no error). > Why are you trying to do everything (load/start/config) from your function > ? Why don't you do the following: > 1. Make a correct entry for your interface in configNet.h. This way, the > system will call the load and start in usrNetInit(). > 2. Go to the (excellent, highly informative) vxWorks FAQ, and see the > function there that's used to bring up additional interfaces (assuming they > have an entry in configNet.h, and usrNetInit() has run the > muxDev{Load,Start} on them. > So, I make a entry in configNet.h. So, muxDev(Load, Start) was called when boot. Only [ muxIoctl, ipAttach, usrNetIfAttach ] is called from my function. But the Situation is not good.(the same result) > Did you look at the RxBDs to see if they're full ? Is it possible (due to > an incorrect load string) that you're not generating any interrupts, thus no > one is taking the packets out of the driver ? Did you look at FCCE to see > if any interrupts are pending ? No, Rx operation in end driver is good, interrupt is surviced. RxBD is correct. Interrupts are not pending. - -- Posted via Mailgate.ORG Server - http://www.Mailgate.ORG --------------------------- Newsgroups: comp.os.vxworks Subject: Re: undefined references when including the ln97xEnd with ARMARCH4 Date: 06 Mar 2002 09:06:12 GMT From: spam@kpsws.com Message-ID: <3c85dc04$0$225$4d4ebb8e@read-nat.news.nl.uu.net> References: <3c84ec5a$0$222$4d4ebb8e@read-nat.news.nl.uu.net> thanks for your exclusive reply in a short notice ;-) I am going to work on it and I'll let you know when I have progress/questions/ideas niels --------------------------- Newsgroups: comp.os.linux.powerpc,comp.os.vxworks Subject: Re: Cache profiler for PowerPC on vxworks Date: Wed, 6 Mar 2002 09:05:50 +0000 From: Danny Chapman Organization: Lucent Technologies, Columbus, Ohio Message-ID: References: <5870634d.0203051324.4f71e7f5@posting.google.com> On 5 Mar 2002, Duc Thinh Le wrote: > I am just wondering if anyone knows of a tool that has cache > profiling capability for PowerPC on Vxworks environment. Basically, > I need a tool that is able to tell me which line (C code) of my > program causes cahce miss (instruction and data). Please let me > know if you have any comments, ideas or questions. > Your helps and inputs are much appreciated. Thanks. The MPC750 has a bunch of performance monitor registers that can record cache misses (amongst other things). These can be accessed fairly easily - described in the processor's user manual. - - Danny --------------------------- Newsgroups: comp.arch.storage,comp.periphs.scsi,comp.os.vxworks Subject: Re: source code for SCSI Fibre Channel implementation Date: Wed, 06 Mar 2002 09:35:29 GMT From: "J. J. Farrell" Organization: EarthLink Inc. -- http://www.EarthLink.net Message-ID: References: <5c04bc56.0202272342.124108d6@posting.google.com> > > > but none the less I assure you that you do not have the required > > > expertise to program the chip at that level. > > > > An interesting assurance. On what do you base it? > > Mainly by reading all your other clueless posts. You didn't even > know how to look through the linux source tree. I'm even more interested to know how you came to that conclusion! But since it's off-topic, let's drop it. > > Thanks for posting, but I'm afraid your comments aren't relevant > > in this case. I may not know much, but I know what I need at the > > moment. I need a C implementation of the FCP/FC stack giving > > initiator and target mode access at the top and FC-2 frames at > > the bottom. It looks like there aren't many available ... > > There aren't *any* available, much less "many". Nobody would release this > sort of IP to the world for free. It's just too valuable. If I can get code of adequate quality under a suitable licence free of charge, I'll be more than happy to pay nothing for it. However, as I said in my original message, I'm looking for any implementation that's available. I expect to pay a fair wadge of money to licence the code I'm looking for. --------------------------- Newsgroups: comp.arch.storage,comp.periphs.scsi,comp.os.vxworks Subject: Re: source code for SCSI Fibre Channel implementation Date: Wed, 06 Mar 2002 09:59:22 GMT From: "J. J. Farrell" Organization: EarthLink Inc. -- http://www.EarthLink.net Message-ID: <_Llh8.39584$ZC3.3120471@newsread2.prod.itd.earthlink.net> References: <5c04bc56.0202272342.124108d6@posting.google.com> "Kallol Mallick" wrote in message news:cf6c276e.0203052013.1d2e680@posting.google.com... > > It seems that there is no readily available source code for this and it > needs huge resource to develop one. May be you can try to get an old > version of LSI or QLogic implementation to get an idea. Thanks Kallol. I'm already going down this path as the drivers for the earlier FC chips are likely to have more of the stack in software - though they'll be lacking support for the more recent standards revisions. However, finding managers in these companies with enough spare cycles and interest to track down old code, check that they can release it at all (since it was never meant as a source code product), then go through the hassles of setting up the contracts, is more than a little difficult. > And also you > need to write some portion in embedded processor(whichever you use) to > expose register level access to the host. As a test probably you can > build the stack source code in pure C and put it into host driver > (UNIX/Windows) wrapper. Because it's easier to debug/develop in host > drivers than in firmware. Then port it to the firmware. The porting > should not be a big effort if the stack uses strictly C (I mean no > system calls) and designed properly. I'm looking for a pure C implementation - one that takes FC-2 frames in and out at the bottom (as memory buffers) and does SCSI I/T at the top. What you propose here as a test is exactly what I want (without the wrapper). --------------------------- Newsgroups: comp.os.vxworks Subject: Re: still: cannot connect target server... Date: 6 Mar 2002 03:17:03 -0800 From: igtorque@eliop.es (=?ISO-8859-1?Q?Ignacio_Gonz=E1lez?=) Organization: http://groups.google.com/ Message-ID: <9ec53d11.0203060317.6847d3ef@posting.google.com> References: <9d082700.0203052325.48946aa@posting.google.com> fillmore2@arcor.de (Achim) wrote in message news:<9d082700.0203052325.48946aa@posting.google.com>... > Hi, > > I still have not been able to get my target server connection running > via end driver: > - there's no response from the target on the first UDP message send > from the target server > - I can ping the target from the tornado host PC (even after trying to > establish the target server connecion - so it's no ethernet driver > problem) > - I can establish and end a ftp connection to the target if I include > ftp (though it makes not much sense for that target) > - The parameters for launching the target server are > tgtsvr.exe 10.1.255.254 -A -V -B wdbrpc -Bt 10 -Br 5 -c > K:\[long path...]\default\vxWorks > > With that behaviour (and assuming that the target server generates > correct messages to establish the connection), I would guess that I > have a problem either with receiving UDP frames or the wdb/Target > agent components on the target. > > Any ideas on this (like some experience with easy-to-miss parameters > for UDP or WDB...)? > > Achim. With my environment (Tornado 2.0.2 on NT 4.0) I wasn't able to get the target server running properly until I specified the target name INSTEAD of its IP address. I wrote an entry in \winnt\system32\drivers\etc\hosts such as mytarget 192.9.100.100 and launched the target server within Tronado, specifying mytarget as the target name/address, instead of 192.9.100.100 --------------------------- End of New-News digest ********************** From vxwexplo-errs@csg.lbl.gov Wed Mar 6 06:23:10 2002 From: f.pertin@staubli.com Date: Wed Mar 6 06:23:12 PST 2002 Subject: network initialisation Hello VXWORKS and TORNADO Gurus, I have x86 target with networks interface. When I boot my target with the ethernet cable pluged, everything is ok. If I plug the ethernet cable after the boot, I am not able to access to my target over the network. Is there any function to initialize the network after boot ???? Thanks in advance François PERTIN STÄUBLI SCA Robotics Division Place Robert Stäubli - BP 70 F - 74210 Faverges (France) Tel.: +33 (0)4.50.65.62.59 Fax: +33 (0)4.50.65.61.30 mailto:f.pertin@staubli.com http://www.staubli.com From vxwexplo-errs@csg.lbl.gov Wed Mar 6 07:00:29 2002 From: Diego Novellon Date: Wed Mar 6 07:00:31 PST 2002 Subject: inetstatShow vs @inetstatShow Hi, all. BSP: pcPentium, pcPentiumpro Tornado: 2.0.2 VxWorks: 5.4.2 I'm seeing a strange behaviour and wondered if anyone has ever experienced the same. When I use inetstatShow from WindShell, the command works ok and shows a list of open sockets. However, when I call inetstatShow() from my application the list shown is empty. I get the same result if I try _inetstatShow or @inetstatShow from WindShell: -> inetstatShow Active Internet connections (including servers) PCB Proto Recv-Q Send-Q Local Address Foreign Address (state) -------- ----- ------ ------ ------------------ ------------------ ------- 7f6d7c4 TCP 0 0 192.168.10.102.513 192.168.10.193.103 ESTABLISHED 7f6d740 TCP 0 0 0.0.0.0.23 0.0.0.0.0 LISTEN 7f6d5b4 TCP 0 0 0.0.0.0.513 0.0.0.0.0 LISTEN 7f6d530 TCP 0 0 0.0.0.0.514 0.0.0.0.0 LISTEN 7f6d4ac TCP 0 0 0.0.0.0.515 0.0.0.0.0 LISTEN 7f6d29c TCP 0 0 0.0.0.0.21 0.0.0.0.0 LISTEN 7f6d6bc UDP 0 0 0.0.0.0.5502 0.0.0.0.0 7f6d638 UDP 0 0 0.0.0.0.5501 0.0.0.0.0 value = 0 = 0x0 -> _inetstatShow Active Internet connections (including servers) PCB Proto Recv-Q Send-Q Local Address Foreign Address (state) -------- ----- ------ ------ ------------------ ------------------ ------- value = 0 = 0x0 -> @inetstatShow Active Internet connections (including servers) PCB Proto Recv-Q Send-Q Local Address Foreign Address (state) -------- ----- ------ ------ ------------------ ------------------ ------- value = 0 = 0x0 -> I understand that these are two different functions, one running on the host and the other running on the target. It would be convenient for me to be able to run inetstatShow (and get some useful output) from my application, as I often need to see the state of sockets when I don't have a host available. Has anyone ever faced this problem? Is it a known bug, or is it likely to be related to my particular configuration? I've tried on three different targets (though all of them x86), with different ethernet adapters (NE2000, 3Com 905, Intel 82559), and different applications, and always got the same result. Thank you very much in advance. Diego Novellon From vxwexplo-errs@csg.lbl.gov Wed Mar 6 12:20:55 2002 From: Lori Fraleigh Date: Wed Mar 6 12:20:57 PST 2002 Subject: Re: May I ask you a question of vxworks and 3c90x network card? If you have a 3Com 3c90x network card, you need to enable INCLUDE_EL_3C90X_END and use elPci as your boot device. I found an interesting problem a few weeks ago. This driver works with 3C90x cards that have a Lucent chip on them. It does not work with cards that have a Broadcom chip on them. I specifically ran into problems with the 3C905C-TX-M cards which 3Com is now producing. Regards, Lori > > ------=_NextPart_000_01EA_01C1C527.0564C0D0 > Content-Type: text/plain; > charset="gb2312" > Content-Transfer-Encoding: quoted-printable > > Dear: > Sorry to bother you! > By chance,I found from the internet that you maybe have used = > 3c90x series network card in the platform of vxworks,I want to know is = > there any existing driver of this series network card for vxworks. > Thank you in advance! > yours sincerely: > Mike zhou -- Lori Fraleigh Director of Engineering Real-Time Innovations, Inc. http://www.rti.com Phone: 408-734-4200 x121 Fax: 408-734-5009 From vxwexplo-errs@csg.lbl.gov Thu Mar 7 04:03:29 2002 From: Vxworks Exploder Date: Thu Mar 7 04:03:32 PST 2002 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Thu Mar 7 04:03:21 PST 2002 Subject: Network hanging problem Subject: Re: PPP problem Subject: Re: Changing to FIFO Ordered First-Fit Subject: test Subject: Re: Help! Cannot access vxworks from another network - solved!!! Subject: Chabging LIFO Ordered Free List Subject: ln97xEnd MuxLoad failed Subject: Printing 64bit values Subject: Intermixing source code with disassembly using objectdump Subject: test Subject: Re: Intermixing source code with disassembly using objectdump Subject: Re: Printing 64bit values Subject: test Subject: Re: Proc Numbers, booting and VME transfers Subject: Re: VxWorks Application Module Size Questions Subject: Re: Printing 64bit values Subject: Re: Chabging LIFO Ordered Free List Subject: Re: Chabging LIFO Ordered Free List Subject: Re: Cache profiler for PowerPC on vxworks Subject: a tool that calculates the number of code line in a projet? Subject: to give a float parameter to a function by shell ? Subject: Re: Problem in accessing PCI I/O Registers in IBM ppc 405GP Subject: Re: Chabging LIFO Ordered Free List Subject: Re: May I ask you a question of vxworks and 3c90x network card? Subject: Re: to give a float parameter to a function by shell ? Subject: Re: Chabging LIFO Ordered Free List Subject: Re: source code for SCSI Fibre Channel implementation Subject: Do I need semaphore protection for multiple tasks accessing same socket Subject: Re: Chabging LIFO Ordered Free List Subject: Installing a Target Deployment Port on RtRt for VxWorks Subject: Re: Is it possible to change the priortiy of windsh Subject: Re: to give a float parameter to a function by shell ? Subject: Re: Intermixing source code with disassembly using objectdump Subject: Re: Chabging LIFO Ordered Free List Subject: Re: Do I need semaphore protection for multiple tasks accessing same socket Subject: Re: Do I need semaphore protection for multiple tasks accessing same socket Subject: Re: Do I need semaphore protection for multiple tasks accessing same socket Subject: I want to log the packet between IP and mux. Subject: [reboot error in target shell] Subject: Re: Network hanging problem Subject: Re: ln97xEnd MuxLoad failed Subject: Re: a tool that calculates the number of code line in a projet? Subject: Re: Network hanging problem Subject: Re: Chabging LIFO Ordered Free List Subject: Re: Tornado 2.0.2 With gcc 2.96 Subject: 64 bit BARs Vs 32 bit BARs, PCI Bridge and Local Bus Subject: VGA Driver using the WindML Subject: Re: [reboot error in target shell] Subject: Re: Problem in accessing PCI I/O Registers in IBM ppc 405GP Subject: Re: source code for SCSI Fibre Channel implementation Subject: Running multiple vxsim in Tornado Prototyper 2.0.2 under Win 2000? Subject: Ans to Re: [reboot error in target shell] Subject: Were can i get the document " Tornado BSP Development Kit BSP Version 1.1" Subject: Re: a tool that calculates the number of code line in a projet? Subject: Re: Help! Cannot access vxworks from another network Subject: Re: Is it possible to change the priortiy of windsh Subject: Re: Printing 64bit values Subject: Using STL map type Subject: Re: Help! Cannot access vxworks from another network ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Network hanging problem Date: 6 Mar 2002 04:19:27 -0800 From: giby@myw.ltindia.com (Giby) Organization: http://groups.google.com/ Message-ID: Hello everybody, I am working on networking of two platforms running VxWorks / MPC823 board. The application is that the waveform data collected at one station should be seen in real time at the other station through ethernet 10Mbps link. The implementation is as follows one station runs a server (done by calling BSD socket functions) and the other station works as the client (done using BSD socket functions). Every 100ms the client connects with the server and sends a packet to send data and the server replys back on the same connection sending the waveform data, which the client uses to plot the waveform. But i find that the real time plot is highly unstable and sometimes the client cannot connect to server and also after about 2 min the whole connection stops with no communication between the client and server. Can anybody throw some light on what i should do now . Please say if my client/ server communication logic is correct.and also any clue to why the network is hanging after sometime ?? i would be very thankful if somebody could help me out on this --------------------------- Newsgroups: comp.os.vxworks Subject: Re: PPP problem Date: Wed, 6 Mar 2002 14:31:06 +0200 From: "Leonid Rosenboim" Organization: Verio Message-ID: References: <3C7E0A02.3F646C90@sepro-robotique.com> <3C7F7A9D.2AB0A3B2@sepro-robotique.com> <3C85C138.D50E308A@sepro-robotique.com> Yes, this is a nasty bug in the SENS stack, instead of draining buffers and droppin packets until buffers become available, the whole stack just freezes on you. We all find ways to get around this, but it would be much better if WRS fixed this once and for all. Leonid "Emmanuel Herbreteau" wrote in message news:3C85C138.D50E308A@sepro-robotique.com... > Leonid Rosenboim wrote: > > The fact that large files work OK would suggest the serial driver is > > innoscent. > > Hi Leonid, > > Thanks for your reply. Indeed, the serial driver wasn't guilty ! > The WRS support told me to use netStackSysPoolShow() when > the problem appears. It shows the following information : > > .../... > number of times failed to find space: 1 > number of times drained protocols for space: 1 > CLUSTER POOL TABLE > size clusters free usage > > -------------------------------------------------------------------------- - ----- > 512 20 0 21 > .../... > > There was not enought 512 bytes buffers in the network stack. > So, I increase this setting (in the Tornado builder, I change > some "define" in the "network buffer initialization" tab). > And it seems to work better now. > > -- > Regards > Emmanuel --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Changing to FIFO Ordered First-Fit Date: Wed, 6 Mar 2002 13:04:33 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C86144D.5020702@spamm.me.l8s.co.uk> References: <65b2abfc.0203051259.1662f9be@posting.google.com> > Here it is said to be LIFO, but then later FIFO. At any rate, I think > the allocator is crap... and if you have to ask the question, you > should look for alternatives. Was LIFO when I reverse engineered it.... Space is taken from the end of the first item found that is large enough. The left over space remains in its original position in the list. Recoding to use 'best fit' isn't hard - and leaves the free list with the same structure (so memShow still works). This is good enough to get the JVM running without fragmenting memory into oblivion. Although the entire free list has to be scanned for each allocate, the much smaller number of items of the free list probably spped up allocation! David --------------------------- Newsgroups: comp.os.vxworks Subject: test Date: Wed, 6 Mar 2002 16:22:13 +0200 From: test@test.com Organization: Ukranian Academic Research Network Message-ID: This is a multi-part message in MIME format - --=_NextPart_2rfkindysadvnqw3nerasdf Content-Type: text/html Content-Transfer-Encoding: quoted-printable

- --=_NextPart_2rfkindysadvnqw3nerasdf Content-Type: text/plain Content-Transfer-Encoding: quoted-printable - --=_NextPart_2rfkindysadvnqw3nerasdf-- --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Help! Cannot access vxworks from another network - solved!!! Date: Wed, 6 Mar 2002 09:31:26 -0500 From: "Joe Georger" Message-ID: References: <0Baf8.69$Sk3.3211@llslave.llan.ll.mit.edu> <3C7D9038.A51390B8@dsto.defence.gov.au> <4Qpf8.71$Sk3.3151@llslave.llan.ll.mit.edu> <3C7ECF52.8429283C@dsto.defence.gov.au> <3C7F9B96.B16F22AB@notifier-is.net> I think I finally nailed everything I wanted to. (To summarize I wanted the bootline gateway to be the default gateway to other networks, and I wanted to do this using Tornado). Thanks to a suggestion by Michael Lawnick I pilfered some code from the bootConfig.c file and threw it into usrAppInit.c. This was to get the gateway from the bootline.... The system now works the way it should from the factory. Here is an excerpt of my code: #include "vxWorks.h" #include "bootLib.h" #include "prjParams.h" void usrAppInit (void) { BOOT_PARAMS params; #ifdef USER_APPL_INIT USER_APPL_INIT; /* for backwards compatibility */ #endif /* add application specific code here */ bootStringToStruct (BOOT_LINE_ADRS, ¶ms); if ((sysNvRamGet (BOOT_LINE_ADRS, BOOT_LINE_SIZE, 0) == ERROR) || (*BOOT_LINE_ADRS == EOS)) { /* either no non-volatile RAM or empty boot line */ printf("Adding hardwired gateway\n"); routeAdd ("0.0.0.0", "155.34.103.1"); } else { printf("Adding gateway %s from bootline\n", params.gad); routeAdd("0.0.0.0", params.gad); } } --------------------------- Newsgroups: comp.os.vxworks Subject: Chabging LIFO Ordered Free List Date: 6 Mar 2002 07:36:40 -0800 From: mynamvs@nsc.network.com (Venkat Mynampati) Organization: http://groups.google.com/ Message-ID: <65b2abfc.0203060736.2f705117@posting.google.com> I read an article by Paul Wilson and others (Dynamic Storage Allocation: Survey and Review) and in that it was mentioned that: "Best fit, FIFO ordered First Fit and address ordered first-fit" perform the same manner, with a fragmentation of 22%. Where as First-Fit based on LIFO is Worse with 54% fragmentation! What i would like to know is : Does VxWorks uses First-fit based on LIFO or on FIFO? And if it is based on LIFO, how can i change it to FIFO? Well, i don;t have source code for memLib.o. Thanks for Your Help. Venkat --------------------------- Newsgroups: comp.os.vxworks Subject: ln97xEnd MuxLoad failed Date: 06 Mar 2002 15:38:56 GMT From: spam@kpsws.com Message-ID: <3c86380f$0$231$4d4ebb8e@read-nat.news.nl.uu.net> Thanks to the help from Paul Iannacito I managed to include the ln97xEnd driver in my bsp by implementing sysLan97xEnetAddrGet,sysLan97xIntEnable,sysLan97xIntDisable,sysOutLong,sysInLong in the sysEnd.c of my arm integrator bsp. When i type h from the bootline it says that the following boot devices are available: lnPci0 (Some part must definitely work now) But when i try to boot from this device I get the following error: muxLoad fa (mustbe muxload Failed I gues, crashed before printing the whole sentence???) This error occures from usrRoot when muxLoadDev is called for all entry's in END_TBL_ENTRY (configNet.h) the END_TBL_ENTRY is filled as follows: END_TBL_ENTRY endDevTbl [] = { #ifdef INCLUDE_LN_97X_END {0, LN_97X_LOAD_FUNC_0, LN_97X_LOAD_STR_0, TRUE, NULL, FALSE}, #endif /* INCLUDE_LN_97X_END */ /* Entries that can be filled in dynamically when cards are found */ { 0, END_TBL_END, NULL, 0, NULL, FALSE}, { 0, END_TBL_END, NULL, 0, NULL, FALSE}, { 0, END_TBL_END, NULL, 0, NULL, FALSE}, /* End of table marker */ { 0, END_TBL_END, NULL, 0, NULL, FALSE} }; why does muxLoad fail ???? are my END_TBL_ENTRY entry's wrong ?? (copied them from example bsp for 486 shipped with driver) does my EndLoad func failes ??? (if so why can't I see printf's from this func) At this point which functions are done and which has to be called yet ??? is sysLan97xPciInit called yet ??? (I think this func is allready called because of device listing at boot prompt ??) ln97xEndLoad ??? thanks in advance niels --------------------------- Newsgroups: comp.os.vxworks Subject: Printing 64bit values Date: 6 Mar 2002 07:46:20 -0800 From: reachgoran@yahoo.com (Goran) Organization: http://groups.google.com/ Message-ID: <900e9637.0203060746.2d1c1bda@posting.google.com> Hi, I am trying to print 64bit values using printf function. =========================== #include void myprint() { unsigned long long var1, var2; printf("sizeof unsigned long long = %d\n", sizeof(var1)); var1 = 4294967290ULL; /* A value less than ( (2 power 32) -1 */ printf("var1 = %llu\n", var1); var1 = 42949672960ULL; /* A value greater than ( (2 power 32) */ printf("var2 = %llu\n", var2); } ============================ I am using Tornado 2.0 and have tried using a "simpc" based and "pcPentium" based BSPs. The libraries used were simpc -> C:\Tornado\host\x86-win32\lib\gcc-lib\i386-pc-mingw32\egcs-2.90.29 \libgcc.a pcPentium -> C:\Tornado\host\x86-win32\lib\gcc-lib\i386-wrs-vxworks\cygnus-2.7.2-960126\libgcc.a But, I am not getting correct result while printing the second variable var2? ( Or any value which is greater than or equal to (2 power 32). For the above code the results were: sizeof unsigned long long = 8 var1 = 4294967290 var2 = 4008636142 Could someone please explain this abnormal behaviour?? Thanks Goran. --------------------------- Newsgroups: comp.os.vxworks Subject: Intermixing source code with disassembly using objectdump Date: Wed, 6 Mar 2002 10:55:16 -0500 From: "Harjinder Chayra" Organization: Storm Internet Services Message-ID: Sender: terayon@gw-terayon.storm.ca I am trying to use objdumparm to dump the contents of a COFF image with the flag -S (Intermix source code with disassembly) but it does include any source code, only the disassembled code. The actual command used is, objdumparm -b coff-arm-big -D -S vxWorks.st > vxWorks.dump what am I doing wrong or not doing? Thanks Harjinder --------------------------- Newsgroups: comp.os.vxworks Subject: test Date: Wed, 6 Mar 2002 18:10:08 +0200 From: test@test.com Organization: Ukranian Academic Research Network Message-ID: This is a multi-part message in MIME format - --=_NextPart_2rfkindysadvnqw3nerasdf Content-Type: text/html Content-Transfer-Encoding: quoted-printable

- --=_NextPart_2rfkindysadvnqw3nerasdf Content-Type: text/plain Content-Transfer-Encoding: quoted-printable - --=_NextPart_2rfkindysadvnqw3nerasdf-- --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Intermixing source code with disassembly using objectdump Date: Wed, 6 Mar 2002 18:04:10 +0200 From: "Leonid Rosenboim" Organization: Verio Message-ID: References: I think I done this a while back once. The source neds to be compiled with debugging info (-g flag) and probably it expects the sources to be in the same directory as the object. "Harjinder Chayra" wrote in message news:a65e62$lf6$1@news.storm.ca... > I am trying to use objdumparm to dump the contents of a COFF image with the > flag -S (Intermix source code with disassembly) but it does include any > source code, only the disassembled code. > > The actual command used is, > > objdumparm -b coff-arm-big -D -S vxWorks.st > vxWorks.dump > > what am I doing wrong or not doing? > > Thanks > Harjinder > > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Printing 64bit values Date: Wed, 6 Mar 2002 18:07:03 +0200 From: "Leonid Rosenboim" Organization: Verio Message-ID: References: <900e9637.0203060746.2d1c1bda@posting.google.com> This is an old and known issue, Tornado 2 does not fully support 64 bit integer math. With some simple Makefile modifications, you can get the calcuation to work right on most architectures, but the WRS libraries, including stdioLib and fioLib including printf() and scanf() wont support 64bit whatever you do. You have to write your own function to convert a 64 bit int to a decimal string and then print the string with printf(). "Goran" wrote in message news:900e9637.0203060746.2d1c1bda@posting.google.com... > Hi, > > I am trying to print 64bit values using printf function. > =========================== > #include > > void myprint() > { > unsigned long long var1, var2; > > printf("sizeof unsigned long long = %d\n", sizeof(var1)); > > var1 = 4294967290ULL; /* A value less than ( (2 power 32) -1 */ > printf("var1 = %llu\n", var1); > > var1 = 42949672960ULL; /* A value greater than ( (2 power 32) */ > printf("var2 = %llu\n", var2); > > > } > ============================ > I am using Tornado 2.0 and have tried using a "simpc" based and > "pcPentium" based BSPs. The libraries used were > > simpc -> C:\Tornado\host\x86-win32\lib\gcc-lib\i386-pc-mingw32\egcs-2.90.29 > \libgcc.a > > pcPentium -> C:\Tornado\host\x86-win32\lib\gcc-lib\i386-wrs-vxworks\cygnus-2.7.2-960126\l ibgcc.a > > But, I am not getting correct result while printing the second > variable var2? ( Or any value which is greater than or equal to (2 > power 32). > > For the above code the results were: > sizeof unsigned long long = 8 > var1 = 4294967290 > var2 = 4008636142 > > Could someone please explain this abnormal behaviour?? > > Thanks > Goran. --------------------------- Newsgroups: comp.os.vxworks Subject: test Date: Wed, 6 Mar 2002 17:45:27 +0200 From: test@test.com Organization: Ukranian Academic Research Network Message-ID: This is a multi-part message in MIME format - --=_NextPart_2rfkindysadvnqw3nerasdf Content-Type: text/html Content-Transfer-Encoding: quoted-printable

- --=_NextPart_2rfkindysadvnqw3nerasdf Content-Type: text/plain Content-Transfer-Encoding: quoted-printable - --=_NextPart_2rfkindysadvnqw3nerasdf-- --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Proc Numbers, booting and VME transfers Date: 06 Mar 2002 10:52:27 -0600 From: Greg Willden Organization: Posted via Supernews, http://www.supernews.com Message-ID: <87pu2hzlis.fsf@rainier.electro.swri.edu> References: <87vgcgm62y.fsf@rainier.electro.swri.edu> <3C82AF6A.20CE572C@dsto.defence.gov.au> Sender: gwillden@rainier.electro.swri.edu Here is my hack to allow each dual or quad board to boot up and run the shared memory network independently from each other. The modification is in the backplane initialization routine usrBpInit() in usrNetwork.c. Before: if(procNum == 0) { printf("Initializing backplane net with anchor at...."); status = smNetInit(....); ...check for return error.... printf("done.\n"); } I hacked so that instead of checking to see whether or not it is proc 0, it checks to see if it is the X processor on that board. Assuming that sequential processor numbers are used, the X processor will be evenly divisible by 4. However the vxWorks function smNetInit() (for which I do not have the source) complains if the calling processor is not number 0. So I just went ahead and set the proc number to 0 for that function call and then set it back to the previous value. After: if((procNum % 4) == 0) { sysProcNumSet(0); printf("Initializing backplane net with anchor at...."); status = smNetInit(....); ...check for return error.... printf("done.\n"); sysProcNumSet(procNum); } I do not know how this will affect the operation of the shared memory networking. But things appear to work without errors.  So at least for the time being things are okay. I kind of like the hack because it is small and because it resolves the processor numbering issue while maintaining individual shared mem networks. Does anyone have any insight into smNetInit relating to my hack? Is the processor number checked at a later time during the operation of some part of the smNet or is it only used for initial configuration? Thanks Greg Willden - -- Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: VxWorks Application Module Size Questions Date: 06 Mar 2002 11:57:06 -0500 From: Bill Pringlemeir Organization: Bell Sympatico Message-ID: References: <971e6b8f.0203050840.61205700@posting.google.com> <488e459a.0203052327.543f208e@posting.google.com> Sender: bpringlemeir@DeadDuck >>>> Mike Palone wrote... >> Our WinCE port of the application gives us a DLL of size 180K. >> The VxWorks .OUT file is 392K. As another example, we had an >> unresolved external __divid3 (implicit library call) when >> downloading our application to the simulator. Once we statically >> linked with the libgcc.a library to account for this, our >> application .OUT file went to 492K. Does the final resolution / >> dynamic linking in VxWorks handle what exactly gets >> loaded/relocated into RAM so only what is needed is used? >>>>> "John" == John writes: John> Hello, Don't be fooled into believing that the size of the .out John> file is the size of your code. The .out is, I assume, still a John> relocatable file which contains all the overheads needed to John> perform the final linking. John> To find out the size of the actual code and data in the file, John> use the 'size' command, e.g. for PowerPC use John> sizeppc. This will give you the information about the size of John> each of the segments in the file (text, data, bss). This is John> more accurate than just comparing file sizes. I would think that the `dynamic loading' feature of vxWorks might be what you are after for determining module size. The DLL has the advantage that you only specify the interface in a file with "import/exports". I forget how CE does this [and even `regular' windows.] To get to the point, the vxWorks/Gnu object files contain all public symbols in your file. If you are coding in `C', you can drastically reduce the size of the file by using the `static' keyword on all file scope entities. Ie "static int debug_flag=1", "static void debugOut(void)", etc. If you are using C++, then great gobs of namespace crap will be but in the image. If you are using templates, I have had some function names (193 bytes) that exceed the size of the function (48). The output files in vxWorks are intended for debugging. I don't think that they were designed for dynamic downloading... like you would use a DLL. That said, my company uses vxWorks module functions, UGL and Zinc to produce something that would be functionally like your standard CE platform. I wrote some custom loading function and host tools to preprocess the object files to achieve something like DLLs[1]. The vxWorks royalties are far less than Windows CE. The kernel is also more scalable, so I think that we use less memory overall. hth, Bill Pringlemeir. [1] Things like this are possible with vxWorks, but not easy. These things seemed to be impossible with CE when I last used it. - -- Almost all of the good vril and odyle are fair. vxWorks FAQ, "http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html" --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Printing 64bit values Date: Wed, 6 Mar 2002 17:17:12 -0000 From: "Martin Dowie" Message-ID: <3c864ee0@pull.gecm.com> References: <900e9637.0203060746.2d1c1bda@posting.google.com> "Leonid Rosenboim" wrote in message news:newscache$ii9ksg$h12$1@lnews.actcom.co.il... > This is an old and known issue, Tornado 2 > does not fully support 64 bit integer math. > With some simple Makefile modifications, > you can get the calcuation to work right on most architectures, > but the WRS libraries, including stdioLib and fioLib > including printf() and scanf() wont support 64bit whatever you do. > > You have to write your own function to convert a 64 bit int > to a decimal string and then print the string with printf(). Got a point to this "known issue", apparently Google has yet to hear about it :-( --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Chabging LIFO Ordered Free List Date: Wed, 6 Mar 2002 17:50:19 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C865746.5000102@spamm.me.l8s.co.uk> References: <65b2abfc.0203060736.2f705117@posting.google.com> Venkat Mynampati wrote: > I read an article by Paul Wilson and others > (Dynamic Storage Allocation: Survey and Review) > and in that it was mentioned that: > "Best fit, FIFO ordered First Fit and address > ordered first-fit" > perform the same manner, with a fragmentation of 22%. > > Where as First-Fit based on LIFO is Worse with 54% > fragmentation! > > What i would like to know is : Does VxWorks uses First-fit > based on LIFO or on FIFO? > And if it is based on LIFO, how can i change it to FIFO? > Well, i don;t have source code for memLib.o. 1) It is LIFO, 2) I can't see how FIFO can be better? The 'large' free area will continually have bits chopped off it - even if you keep allocating and freeing the same sized item. 3) If you are going to change it, go for best fit (or some much more complicated algorithm). However you either need the source of a bit or reverse engineering, it isn't hard :-) David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Chabging LIFO Ordered Free List Date: 06 Mar 2002 13:09:30 -0500 From: Bill Pringlemeir Organization: Bell Sympatico Message-ID: References: <65b2abfc.0203060736.2f705117@posting.google.com> <3C865746.5000102@spamm.me.l8s.co.uk> Sender: bpringlemeir@DeadDuck >> Venkat Mynampati wrote [again!]: >> I read an article by Paul Wilson and others (Dynamic Storage >> Allocation: Survey and Review) and in that it was mentioned that: >> "Best fit, FIFO ordered First Fit and address ordered first-fit" >> perform the same manner, with a fragmentation of 22%. >> >> Where as First-Fit based on LIFO is Worse with 54% fragmentation! >>>>> "David" == David Laight writes: David> 2) I can't see how FIFO can be better? The paper he quotes uses several different programs (such as gcc) to benchmark the different allocators. It is available on the net as "allocsrv.ps". I have converted it to PDF, but it is 3.3MB. Anyways, the main point of the article was that many "allocation simulators" did not model real life. This is why the FIFO was deemed better as it seems to reduce fragmentation in `real situation'. At any rate, the buckets and boundary tags that Doug Leah uses will kick the snot out of any list based allocator. The DL allocator is really good with objects as chunks that are craved out of memory maintain there sizes. This is similar to `slab' pools used by *nix kernels. Anyways, if Venkat actually takes the time and goes to google, he can see an entire thread on the subject (including words by you, Dave Laight). I also offered up some advice on using a newer version of Doug Leah's allocator in a recent post. The DL allocator has improved since Hwa Jin Bae ported a now outdated version. Regards, Bill Pringlemeir. - -- Your life insurance will drive soon. Your cat will need to be replaced today. A friend will think of you as a warmonger. You'll later be abused. vxWorks FAQ, "http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html" --------------------------- Newsgroups: comp.os.linux.powerpc,comp.os.vxworks Subject: Re: Cache profiler for PowerPC on vxworks Date: 6 Mar 2002 10:18:59 -0800 From: ryeung@earthlink.net (Raymond Yeung) Organization: http://groups.google.com/ Message-ID: References: <5870634d.0203051324.4f71e7f5@posting.google.com> visionPROBE and visionCLICK seem to offer cache performance measurement capability, although I've not gotten a chance to use it yet. Not aware of any VxWorks resident tools. ducthinhle@hotmail.com (Duc Thinh Le) wrote in message news:<5870634d.0203051324.4f71e7f5@posting.google.com>... > Hi, > > I am just wondering if anyone knows of a tool that has cache > profiling capability for PowerPC on Vxworks environment. Basically, > I need a tool that is able to tell me which line (C code) of my > program causes cahce miss (instruction and data). Please let me > know if you have any comments, ideas or questions. > Your helps and inputs are much appreciated. Thanks. > > Regards > Duc Le --------------------------- Newsgroups: comp.os.vxworks Subject: a tool that calculates the number of code line in a projet? Date: 06 Mar 2002 16:51:09 GMT From: Charly Message-ID: <200236-17519-282492@foorum.com> Hello, I am looking for a free utility able to calculate the number of code lines in a C project. Able to see the /*xxxx*/, //, blank lines. I know I could do it, but I have no time to. Even a source code could help me. Thanks you. charly - -- Use our news server 'news.foorum.com' from anywhere. More details at: http://nnrpinfo.go.foorum.com/ --------------------------- Newsgroups: comp.os.vxworks Subject: to give a float parameter to a function by shell ? Date: 06 Mar 2002 16:58:04 GMT From: Charly Message-ID: <200236-17584-978979@foorum.com> Hello again, I tried to do by SHELL - ->getfloat(1.02) But the function "getfloat" sees 0.0 instead of 1.02. The function getinteger(5) works fine. Is there a trick to give a float to a function throught telnet? Thanks charly - -- Use our news server 'news.foorum.com' from anywhere. More details at: http://nnrpinfo.go.foorum.com/ --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Problem in accessing PCI I/O Registers in IBM ppc 405GP Date: 6 Mar 2002 11:33:04 -0800 From: arun4vxworks@indiatimes.com (Arun Prasad) Organization: http://groups.google.com/ Message-ID: References: <3C7F9C21.48433D2B@varndellengineering.com> <3C7FC51C.F75E564D@notifier-is.net> Dear Micheal, Thank you so much for your kind help. Your mails are quite informative. I've gone through pciAutoConfigLib.c and as you said 64 bit BARs are not supported there. <> It's because the output of Linux BARs are after masking them. Originally when we read the PCI configuration space we get the BAR0 & BAR3 ending with c only. << I'm not pretty sure what you are doing after setup, there is to much in your posting. >>Here I have to mention onthing. The function which we have written (AdptPciDevConfig() ) is getting called in the driver after pciAutoConfig() finishes its task. In the attach routine (at the moment we are not calling this function and we directly call our device/driver/structures initialization module) of our driver (netBSD networking driver model) we call our driver/device initialization function to configure our device, which inturn calls pciFindDevice() function. After finding our card we are reading its BARs and other h/w details. The BARs are getting masked and stored in our driver internal structures and other info like IRQ and all stored to our driver structure. In the first case, we tried with VxWorks configured BARs (32 bit BARs) and we are able to access I/O space/registers of our card (after adding the constant 0xe8000000) and we are succeesully able to read/write into our card's I/O registers. But when we access memory region we get "general protection fault". In the second case, we used our own written pciDevConfig() (AdptDevConfig() config as shown in the first mail.) to configure 64 bit BARs of our card. But after that we are not able to access our I/O region/registers itself. <>As per the calculation PCI_MEM2LOCAL( + ) adds 0x40000000 to the value supplied and PCI_MEMIO2LOCAL( + ) adds 0xe8000000 to the value supplied. The region 0xe8000000 is clearly visible in sysPhysMemDesc[] (PLB_PCI_IO_REGION_1_START is equal to 0xe8000000) The region 0x80000000 is also there in sysPhysMemDesc[] (PCI_MEMORY_START is equal to 0x80000000). In the example snippet you have given, you haven't masked the PCI BAR addresses and you directly used the macros to map them. Is that correct? (I'm refering the usual PCI config read, writing oxffffffff on the BAR, masking it and write back the original BAR value.) Now can my questions are, When I use our own written/modified pciDevConfig() function, we are setting the 64 bit BARs but we aren't able to access I/O region itself. This is the case even when we use the macro PCI_MEMIO2LOCAL( +) or not. What's wrong in that function? What we are missing? We are thinking of entirely omitting VxWorks pci configurations and porting Linux's auto config function. Other possiblity We are thinking is re-writing the pciConfigLib.c/pciAutoConfigLib.c files to support 64-bit BARs. Please give your feedback on these. I just got a feeling like, by simply re-writing/modifying pciDevConfig() to configure 64-bit BARs I'm mixing/missing something. Thanks again for all the good work done at your part. Regards Arun - ----- Arun Prasad Software Engineer Adaptec India Pvt. Limited (A wholly owned subsidiary of Adaptec Inc., USA) 6-3-1086, IV Floor, Vista Grand Towers, Rajbhavan Road, Somajiguda, Hydereabad - 500082 Phone: (O):91-40-6661555/56/57/58 (Ext):234 Email: arun_prasad@adaptecin.com On Tuesday 05 March 2002 13:46, Michael Lawnick wrote: Hi Arun, take a look into $(WIND_BASE)/target/src/drv/pci/pciAutoConfigLib.c, this is the code executed for setting up PCI devices automatically. I can't see any hint for 64bit there. Reviewing your first post, I think, setup might be done correct: The registers set to 0x8100x00y under LINUX are set to 0x4000x00y in VxWorks, the main difference is the freely selectable translation offset Local2PCI. One difference seems not to be OK: under LINUX BAR0 ends with 0, under Tornado with c. Remembering that you said that both pairs are 64bit, I'd beleave in VxWorks - a typo in your LINUX output-copy ? I'm not pretty sure what you are doing after setup, there is to much in your posting. After auto-config you should be able to access the memory-mapped part of your NIC by PCI_MEM2LOCAL( + ) and your IO-mapped registers by PCI_MEMIO2LOCAL( + ) You'll find this macros in walnut.h. Check whether the result of this macros is included in the PCI-memory window of your sysPhysMemDesc[] (should be) Example with your autoConfig setup: BAR0=0x4000000c /* memarea_1 */ BAR1=0 BAR2=0x0001 /* register_area*/ BAR3=0x4000100c /* memarea_2 */ BAR4=0 typedef struct { ... UINT32 ioBase; UINT32 memBase1; UINT32 memBase2; ... } DRV_CRTL; ... { UINT32 nicMemBase1; UINT32 nicMemBase2; UINT32 nicIoBase; /* get base addresses of NIC's PCI windows */ pciConfigInLong(0,2,0,PCI_CFG_BASE_ADDRESS_0,&nicMemBase1); pciConfigInLong(0,2,0,PCI_CFG_BASE_ADDRESS_2,&nicIoBase); pciConfigInLong(0,2,0,PCI_CFG_BASE_ADDRESS_3,&nicMemBase2); /* translate PCI windows to CPU-local addresses and save in driver's struct */ pDrvCtrl->ioBase=PCI_IO2LOCAL(nicIoBase); pDrvCtrl->memBase1=PCI_MEM2LOCAL(nicMemBase1); pDrvCtrl->memBase2=PCI_MEM2LOCAL(nicMemBase2); } /* later on, when access is needed */ { ... /*Access 32bit register with offset 0x20 in register_area */ NicReg = *(UINT32*)(pDrvCtrl->ioBase+ 0x20); /*Access 32bit memory value with offset 0x200 in memarea_1 */ NicMem1 = *(UINT32*)(pDrvCtrl->memBase1 + 0x200 ); /*Access 16bit memory value with offset 0x222 in memarea_2 */ NicMem1 = *(UINT16*)(pDrvCtrl->memBase2 + 0x222 ); ... } Remember: On PPC in CPU's view all PCI accesses are standard memory accesses - if mem-mapped or IO-mapped. The local2PCI bridge converts an access to the apropriate PCI-cycles. HTH Mit freundlichen Grüßen, Michael Lawnick ========================================= SOFTEC GmbH Tel +49-731-96600-0 Promenade 17 Fax +49-731-96600-23 D-89073 Ulm Michael Lawnick Germany lawnick@softec.de ========================================= > -----Ursprüngliche Nachricht----- > Von: Arun Prasad [mailto:arun_prasad@adaptecin.com] > Gesendet: Montag, 4. März 2002 22:32 > An: Michael Lawnick > Betreff: Needed help on Accessing Memory Mapped I/O space on IBM > ppc405GP > > > Dear Micheal, > > Since I need some quick response, I'm posting to your mail > Id. I'm sorry. > > Are you sure VxWorks does not support 64 bit PCI? > > I don't have enough knowledge on VxWorks and how it handles > PCI stuff, > though I have a bit knowledge on PCI and how Linux handles it. Once I was > working on writing a DOS driver for externel IDE controller (PCI > based). I > knew the crude way of handling PCI/DMA/PIO programming (Infact I > did the same > thing on OS/2 also) but not on how VxWorks handles it. > > We/I can't go for the third solution which you have mentioned :-( > > It would be helpful if you could eloborate on the first two > solutions. > > We already tried to write our own routine to configure our > card's 64bit BAR > address registers (you coult see that at the start of this mail > chain). And I > also tried to make entries in sysPhysMemDes[], but nothing worked out. I > don't know what I'm missing. But most of the thing I do/did on a > trial and > error basis as my knowledge on VxWorks is not sufficient. I'm > learning. It > has become very critical now and we are nearing our deadline. > > Earlier replies/suggestions/answers would be of great help. > > One more question, > If at all our card requires only 32 bit BAR > memory Registers, what should > I do to access these memory regions after reading the BARs from > PCI config > space? > > Thanks again. > Regards > Arun > > > "Michael Lawnick" wrote in message > news:... > > > Hi Arun, > > > > AFAIK, VxWorks does not support 64bit PCI. It interprets your 2 > > double BARs > > > as 4 seperate BARs and sets up access to those you find valid > > values. This > > > won't work for you: > > You have access to I/O-mapped region, as PCI autoconfig found > > the regions > > > and the region was already added in sysPhysMemDesc[]. For your > > mem mapped > > > region this failed and your MMU complains that you try to > > access a region > > > that is not enabled. > > > > I can see two {three} possible solutions: > > a) Enable the considered region in your sysPhysMemDesc[] by hand (don't > > forget the local2PCI bridge !) and setup your NIC's 64bit mem > > BARs by hand > > > in a way that their windows are placed accordingly. > > b) Disable MMU. > > { c) Use a more common NIC ;-) } > > HTH > > Michael > > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Chabging LIFO Ordered Free List Date: Wed, 6 Mar 2002 12:10:45 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <65b2abfc.0203060736.2f705117@posting.google.com> <3C865746.5000102@spamm.me.l8s.co.uk> Pretty much everything I have done in the past seems to be outdated now. :-) Bill, can you post the DL malloc ported code into some repository? --------------------------- Newsgroups: comp.os.vxworks Subject: Re: May I ask you a question of vxworks and 3c90x network card? Date: Wed, 06 Mar 2002 12:18:17 -0800 From: Lori Fraleigh Organization: Real-Time Innovations Message-ID: <3C867989.DC5BAC57@rti.com> References: <200203060752.XAA25690@csg.lbl.gov> If you have a 3Com 3c90x network card, you need to enable INCLUDE_EL_3C90X_END and use elPci as your boot device. I found an interesting problem a few weeks ago. This driver works with 3C90x cards that have a Lucent chip on them. It does not work with cards that have a Broadcom chip on them. I specifically ran into problems with the 3C905C-TX-M cards which 3Com is now producing. Regards, Lori > > ------=_NextPart_000_01EA_01C1C527.0564C0D0 > Content-Type: text/plain; > charset="gb2312" > Content-Transfer-Encoding: quoted-printable > > Dear: > Sorry to bother you! > By chance,I found from the internet that you maybe have used = > 3c90x series network card in the platform of vxworks,I want to know is = > there any existing driver of this series network card for vxworks. > Thank you in advance! > yours sincerely: > Mike zhou - -- Lori Fraleigh Director of Engineering Real-Time Innovations, Inc. http://www.rti.com Phone: 408-734-4200 x121 Fax: 408-734-5009 --------------------------- Newsgroups: comp.os.vxworks Subject: Re: to give a float parameter to a function by shell ? Date: Wed, 6 Mar 2002 20:40:10 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C867F15.1040302@spamm.me.l8s.co.uk> References: <200236-17584-978979@foorum.com> Charly wrote: > Hello again, > > I tried to do by SHELL > > ->getfloat(1.02) > > > But the function "getfloat" sees 0.0 instead of > 1.02. > The function getinteger(5) works fine. > > Is there a trick to give a float to a function throught telnet? > Thanks IIRC the shell will treat a fp number as double. Since it doesn't have the function prototype it will always pass a double value anyway. Depending on the argument passing scheme used on your architecture you might be able to fool things by typing the integer form of the float number. This does get tricky - however I get the following: - -> dbl=1.2 new symbol "dbl" added to symbol table. dbl = 0x3f03434: value = 1.2 - -> d &dbl,2,4 03f03430: 3ff33333 33333333 * 33 ?3333....* value = 21 = 0x15 - -> __fixsfsi 0x3f800000 value = 1 = 0x1 - -> __fixsfsi 0x40000000 value = 2 = 0x2 - -> __fixsfsi 0x40400000 value = 3 = 0x3 David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Chabging LIFO Ordered Free List Date: 06 Mar 2002 15:39:52 -0500 From: Bill Pringlemeir Organization: Bell Sympatico Message-ID: References: <65b2abfc.0203060736.2f705117@posting.google.com> <3C865746.5000102@spamm.me.l8s.co.uk> Sender: bpringlemeir@DeadDuck Hwa> Pretty much everything I have done in the past seems to be Hwa> outdated now. :-) Bill, can you post the DL malloc ported code Hwa> into some repository? I can and would. It requires that you remove "malloc" and "free" from memPartLib. I also feel into the trap of messing with things that I probably shouldn't... Like removing Windows related code. I have removed the name wrappers that is in Doug's code just because I didn't like the confusion. I have given the pertinent modification in this thread, "http://groups.google.com/groups?th=241b35db61c5a3f0" I think the best thing would be to use the header facility to customize the distribution. I think that the defines I gave are a start? I tried to get your code working, but it was a little tough. I think that they added the alignment details, after you did your stuff and produced `vxmalloc.c'... Anyways, the newer version seems easier to port now. I think I gave all of the good stuff away in the thread above. Specifically these lines, /* ======================================================================== To make a fully customizable malloc.h header file, cut everything above this line, put into file malloc.h, edit to suit, and #include it on the next line, as well as in programs that use this malloc. ======================================================================== */ /* #include "malloc.h" */ could be used to make a vxWorks version that didn't change the source at "gee.cs.oswego.edu". However, I can provide the file but I don't have a repository. It is 31k gzipped. I would post it to Usenet, but that is a bit big and I am not convinced of its utility. It would be better to make a "malloc.h" for vxWorks in my opinion. Regards, Bill Pringlemeir. - -- The truth about odylematter seems standard to me! vxWorks FAQ, "http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html" --------------------------- Newsgroups: comp.arch.storage,comp.periphs.scsi,comp.os.vxworks Subject: Re: source code for SCSI Fibre Channel implementation Date: Wed, 06 Mar 2002 13:01:30 -0800 From: Malcolm Weir Organization: Little to None Message-ID: <0506ED079FDAE166.4EF6E774CBA36AB4.D3A185EC0E095A9A@lp.airnews.net> References: <5c04bc56.0202272342.124108d6@posting.google.com> <_Llh8.39584$ZC3.3120471@newsread2.prod.itd.earthlink.net> On Wed, 06 Mar 2002 09:59:22 GMT, "J. J. Farrell" caused to appear as if it was written: > >"Kallol Mallick" wrote in message >news:cf6c276e.0203052013.1d2e680@posting.google.com... >> >> It seems that there is no readily available source code for this and it >> needs huge resource to develop one. May be you can try to get an old >> version of LSI or QLogic implementation to get an idea. > >Thanks Kallol. I'm already going down this path as the drivers >for the earlier FC chips are likely to have more of the stack >in software - though they'll be lacking support for the more >recent standards revisions. However, finding managers in these >companies with enough spare cycles and interest to track down >old code, check that they can release it at all (since it was >never meant as a source code product), then go through the >hassles of setting up the contracts, is more than a little >difficult. It's been at least 5 years since I worked with commercial FC protocol controllers (which, since the darn things have only been around for about 5.5 years, may give you some idea of the maturity of the beasts at the time...) But... I'd check into Agilent's Tachyons. Back when I worked on them (prior to the "Tach Lite" PCI versions becoming available... part numbers like HP5100 ring a bell), they were extremely open about how to feed and care for the beast, on the grounds that any specimen code they provided would be entirely useless without the chip itself. In this way, HP acted almost exactly like NCR/Symbios/LSI did/do: you can download their scripts and sample code without any IP implications. Now, naturally, the sample code (in both vendors cases) is not exactly optimal... but it's a start, and a reasonable reference design from which to rewrite the code! >> And also you >> need to write some portion in embedded processor(whichever you use) to >> expose register level access to the host. As a test probably you can >> build the stack source code in pure C and put it into host driver >> (UNIX/Windows) wrapper. Because it's easier to debug/develop in host >> drivers than in firmware. Then port it to the firmware. The porting >> should not be a big effort if the stack uses strictly C (I mean no >> system calls) and designed properly. > >I'm looking for a pure C implementation - one that takes FC-2 >frames in and out at the bottom (as memory buffers) and does >SCSI I/T at the top. What you propose here as a test is >exactly what I want (without the wrapper). My recollection (and it *has* been 5 years) is that the framing is done by the hardware, so you basically work with pointers/length tuples to the various FCP entities (command, data, status). Malc. --------------------------- Newsgroups: comp.os.vxworks Subject: Do I need semaphore protection for multiple tasks accessing same socket Date: 6 Mar 2002 13:08:17 -0800 From: earlmit@pacbell.net (Earl Mitchell) Organization: http://groups.google.com/ Message-ID: <68f5c46.0203061308.41e9cdec@posting.google.com> On VxWorks fds are global so I can have multiple task sharing the same socket. But do I need to add semaphore to enforce mutual exclusion access to the socket when multiple task are reading or writing. For UDP sendto and recvfrom are atomic I believe so no problem there but what about TCP socket? The read probably needs it for sure since it can return with less than requested number of bytes but what about the write? Is sendto atomimc for TCP socket writes? - -earlm --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Chabging LIFO Ordered Free List Date: Wed, 6 Mar 2002 13:20:59 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <65b2abfc.0203060736.2f705117@posting.google.com> <3C865746.5000102@spamm.me.l8s.co.uk> Maybe Johan can put it into his VxHacks FTP site. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Installing a Target Deployment Port on RtRt for VxWorks Date: Wed, 6 Mar 2002 15:23:59 -0600 From: "Stephanie Trifi" Organization: Motorola NSS Message-ID: Hi, I have to install a Target Deployment Port (TDP) in Rational Test RealTime (RtRt). Here are some info about my environment: Target Processor: MPC750 Operating System: vXWorks 5.4.2 Debugger: Tornado 2.0.2 debugger -> GDB Compiler: GNU C++ Has anyone done something like that before? There is a default TDP in RtRt for vxworks. I haven't try it yet but I will soon. I'm just looking at someone who has built and installed a TDP to help me out a bit. Thank you, Stephanie --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Is it possible to change the priortiy of windsh Date: Wed, 06 Mar 2002 21:41:52 GMT From: "Matt Schuckmann" Message-ID: References: <%n7h8.2999$5o.2232656@newsr2.u-net.net> <3C850A5B.3040106@spamm.me.l8s.co.uk> All good ideas guys but want if I want to use the ld() shell command to dynamically load a module. The behaviour I've observed is that when I give the shell a command, like ld() or even one of my own functions, it spawns a very high proiorty task, priorty 3 I think and it's usually called t01, t02, t03, etc) to run the function. Now if it's one of my own functions I can explicitly change the priorty right off and I'm good. But what I can't figure out is how to make the ld(), or other shell commands, to run at a lower priority so that they don't preempt my real time task. Any ideas would be great Thanks Matt Schuckmann matthew_schuckmann@amat.com "David Laight" wrote in message news:3C850A5B.3040106@spamm.me.l8s.co.uk... > >>Does anybody know if there is a way to change the priorty at which > >>function and commands run from windsh run at? > >> > >>The problem I'm having is that I've got a significant part of my code > >>loaded and running and I'm dynamically loading and unloading another > > >>part of the code to make it easier and quicker to debug it. > >>When I use the ld() command to dynamicaly load and unload the > >>module I'm debugging the loader runs in the windsh task and that > >>task appears to run at such a high priority that it prevents my > >>hard real time task from running for long enough that I end up > > >>having to reset my hardware after loading or unloading my test module. > > > Just ask the shell to spawn a task to do the work.... > > sp ld,"filename" > > will run at a reasonable priority > > David > > > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: to give a float parameter to a function by shell ? Date: Wed, 6 Mar 2002 22:57:49 +0100 From: "Charly" Organization: Guest of ProXad - France Message-ID: <3c868ebb$0$21242$626a54ce@news.free.fr> References: <200236-17584-978979@foorum.com> <3C867F15.1040302@spamm.me.l8s.co.uk> Reply-To: "Charly" David, thanks for this explanation charly "David Laight" a écrit dans le message de news: 3C867F15.1040302@spamm.me.l8s.co.uk... > Charly wrote: > > > Hello again, > > > > I tried to do by SHELL > > > > ->getfloat(1.02) > > > > > > But the function "getfloat" sees 0.0 instead of > > 1.02. > > The function getinteger(5) works fine. > > > > Is there a trick to give a float to a function throught telnet? > > Thanks > > > IIRC the shell will treat a fp number as double. > Since it doesn't have the function prototype it will always > pass a double value anyway. > > Depending on the argument passing scheme used on your > architecture you might be able to fool things by > typing the integer form of the float number. > > This does get tricky - however I get the following: > > -> dbl=1.2 > new symbol "dbl" added to symbol table. > dbl = 0x3f03434: value = 1.2 > -> d &dbl,2,4 > 03f03430: 3ff33333 33333333 * 33 ?3333....* > value = 21 = 0x15 > > -> __fixsfsi 0x3f800000 > value = 1 = 0x1 > -> __fixsfsi 0x40000000 > value = 2 = 0x2 > -> __fixsfsi 0x40400000 > value = 3 = 0x3 > > David > > > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Intermixing source code with disassembly using objectdump Date: Wed, 6 Mar 2002 15:08:25 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: Usually this is done by compiler option passing to assembler. For example, gcc -Wa,-ahl It does not work for all versions of gcc in all CPU architectures. The latest gcc seem to do good job in most CPU architectures. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Chabging LIFO Ordered Free List Date: Wed, 6 Mar 2002 23:15:30 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C86A37C.8010809@spamm.me.l8s.co.uk> References: <65b2abfc.0203060736.2f705117@posting.google.com> <3C865746.5000102@spamm.me.l8s.co.uk> Bill Pringlemeir wrote: >>>Venkat Mynampati wrote [again!]: >>> > >> I read an article by Paul Wilson and others (Dynamic Storage > >> Allocation: Survey and Review) and in that it was mentioned that: > >> "Best fit, FIFO ordered First Fit and address ordered first-fit" > >> perform the same manner, with a fragmentation of 22%. > >> > >> Where as First-Fit based on LIFO is Worse with 54% fragmentation! > > >>>>>>"David" == David Laight writes: >>>>>> > > David> 2) I can't see how FIFO can be better? > > The paper he quotes uses several different programs (such as gcc) to > benchmark the different allocators. It is available on the net as > "allocsrv.ps". I have converted it to PDF, but it is 3.3MB. Anyways, > the main point of the article was that many "allocation simulators" > did not model real life. This is why the FIFO was deemed better as it > seems to reduce fragmentation in `real situation'. > > At any rate, the buckets and boundary tags that Doug Leah uses will > kick the snot out of any list based allocator. The DL allocator is > really good with objects as chunks that are craved out of memory > maintain there sizes. This is similar to `slab' pools used by *nix > kernels. Anyways, if Venkat actually takes the time and goes to > google, he can see an entire thread on the subject (including words by > you, Dave Laight). > > I also offered up some advice on using a newer version of Doug Leah's > allocator in a recent post. The DL allocator has improved since Hwa > Jin Bae ported a now outdated version. That paper makes nice, light, bedtime reading :-) The vxWorks allocater (LIFO ordered First Fit) comes out particularly badly - which we all know! I'm still surprised that FIFO ordered First Fit works as well as their experiments suggest. It probably benefits greatly from the locality of allocates and frees, this could be quite effective if most allocates are small compared to the overall size of the heap and extra memory can be obtained from the OS. I didn't try using address ordered first fit, or FIFO first fit (need to avoid the last (big) free chunk) when getting java running. The way it uses the system heap kills the default vxWorks allocater, but best fit (LIFO as it happens) works fine. Would be interesting to know the fragmentation if you include the 'red tape' and padding as part of the allocated space. FWIW for a system with long uptime, and a probably well definable workload (eg a kernel or embedded system) using a system that chops pages into items of the same size almost certainly has big advantages. David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Do I need semaphore protection for multiple tasks accessing same socket Date: Wed, 6 Mar 2002 15:15:47 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <68f5c46.0203061308.41e9cdec@posting.google.com> Each socket already has a semaphore associated with it (inside). It does not matter whether UDP or TCP. Behavior is the same. You can use either blocking or non-blocking I/O. If you use blocking, the call will not return until all bytes are handled or some error (e.g. disconnect) happens. For TCP, having multiple tasks read/write from the same socket presents one difference because TCP does not preserve message boundaries. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Do I need semaphore protection for multiple tasks accessing same socket Date: Wed, 6 Mar 2002 23:32:14 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C86A76B.4010607@spamm.me.l8s.co.uk> References: <68f5c46.0203061308.41e9cdec@posting.google.com> Hwa Jin Bae wrote: > Each socket already has a semaphore associated with it (inside). > > It does not matter whether UDP or TCP. Behavior is the same. You can use > either blocking or non-blocking I/O. If you use blocking, the call will > not return until all bytes are handled or some error (e.g. disconnect) > happens. > > For TCP, having multiple tasks read/write from the same socket presents one > difference because TCP does not preserve message boundaries. But be EXTREMELY careful of how you close the socket. You MUST ensure that no other task is calling any io function for the fd when you call close(), the effects of not doing so are indeterminate. David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Do I need semaphore protection for multiple tasks accessing same socket Date: Wed, 6 Mar 2002 16:07:46 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <68f5c46.0203061308.41e9cdec@posting.google.com> <3C86A76B.4010607@spamm.me.l8s.co.uk> I personally would not use multiple tasks reading from one socket. I am not sure why doing so would be useful. I might be lacking in my imagination. However, closing a socket is OK when I/O is pending. If one task is doing a read(), for example, and another task does a close(), the read() will return will error. write() works similarly. So it is not so indeterminate. So David, do you have a specific scenario and problem in mind? If there are problems in this area, I really screwed up. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: I want to log the packet between IP and mux. Date: Thu, 7 Mar 2002 00:47:12 +0000 (UTC) From: "Choo Joung-hoon" Organization: Mailgate.ORG Server - http://www.Mailgate.ORG Message-ID: <2b9429fcc4035f6c6ac8066e02008a99.75083@mygate.mailgate.org> Hello. I am initializing ethernet interface. I want to log the packet transmitted from IP to mux, and the packet received from mux to IP. Is it possible? ^_^ - -- Posted via Mailgate.ORG Server - http://www.Mailgate.ORG --------------------------- Newsgroups: comp.os.vxworks Subject: [reboot error in target shell] Date: Thu, 07 Mar 2002 05:23:44 GMT From: "sung goh" Organization: Dacom Message-ID: I am new to Vxworks. [Problem] I typed reboot in target shell, then error messages come out and then started beeping. [What I did before the error messages] I don't see anything wrong in making bootrom disk and vxworks image transfer. I completed booting from a disk and downloading vxworks image from host to target, then tried to reboot typing "reboot" Is there a way to solve this? Modify bootconfig.c? rominit.s? any other ideas? --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Network hanging problem Date: 6 Mar 2002 21:35:19 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203062135.1e775d01@posting.google.com> References: Hello, There are a couple of things that will probably help: 1) Increase the number of buffers available to the network stack. There is an app note on WindSurf that explains this in the context of Java, but the info applies to any application that makes use of the network. The paper can be downloaded here: http://www.windriver.com/windsurf/appnotes/osExtensions/pjworks/APN51/WTN51.pdf 2) If possible, keep one connection open all the time rather than opening and closing the sockets all the time. Given that you are opening sockets faster than the port numbers can be recycled, you will soon run out of buffers in the stack (even though you closed the socket, the stack has to hold some of the data to track which port numbers are unavailable - the timeout is 2 minutes IIRC). HTH, John... giby@myw.ltindia.com (Giby) wrote in message news:... > Hello everybody, > I am working on networking of two platforms running VxWorks / MPC823 > board. The application is that the waveform data collected at one > station should be seen in real time at the other station through > ethernet 10Mbps link. > The implementation is as follows one station runs a server (done by > calling BSD socket functions) and the other station works as the > client (done using BSD socket functions). Every 100ms the client > connects with the server and sends a packet to send data and the > server replys back on the same connection sending the waveform data, > which the client uses to plot the waveform. > But i find that the real time plot is highly unstable and sometimes > the client cannot connect to server and also after about 2 min the > whole connection stops with no communication between the client and > server. > > Can anybody throw some light on what i should do now . Please say if > my client/ server communication logic is correct.and also any clue to > why the network is hanging after sometime ?? > > i would be very thankful if somebody could help me out on this --------------------------- Newsgroups: comp.os.vxworks Subject: Re: ln97xEnd MuxLoad failed Date: 6 Mar 2002 21:43:26 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203062143.604b5e8f@posting.google.com> References: <3c86380f$0$231$4d4ebb8e@read-nat.news.nl.uu.net> Hello, You didn't specify your load string... that could be the cause of your problem, but I suspect that your BSP is using the new auto-detection code and that's what's going wrong. If that is the case, you don't put in the entry in the table (was there one there before for the dc or fei devices?). Instead, there is code in sysEnd.c to detect the card on the PCI bus and configure it. Part of that process generates an entry in the END device table. You'll need to detect the PCI card, assign it any addresses it needs etc. There should be examples of this for the dc and fei devices in the sysEnd.c file. The x86 BSP is not a good place to look as the BIOS does most of the PCI config work on that arch; other architectures don't have that feature and must do the work themselves. Once you get past that, you might have another problem too - does the load string have a field for an offset? If so, you'll need to set it to 2, if not, you'll need to get a newer version of the driver that does support the offset (or get the source and add support for it yourself). HTH, John... spam@kpsws.com wrote in message news:<3c86380f$0$231$4d4ebb8e@read-nat.news.nl.uu.net>... > Thanks to the help from Paul Iannacito I managed to include the ln97xEnd > driver in my bsp by implementing sysLan97xEnetAddrGet,sysLan97xIntEnable,sysLan97xIntDisable,sysOutLong,sysInLong > in the sysEnd.c of my arm integrator bsp. > > When i type h from the bootline it says that the following boot devices > are available: lnPci0 (Some part must definitely work now) > > But when i try to boot from this device I get the following error: muxLoad > fa (mustbe muxload Failed I gues, crashed before printing the whole > sentence???) > > This error occures from usrRoot when muxLoadDev is called for all entry's > in END_TBL_ENTRY (configNet.h) > > the END_TBL_ENTRY is filled as follows: > > END_TBL_ENTRY endDevTbl [] = > { > > #ifdef INCLUDE_LN_97X_END > {0, LN_97X_LOAD_FUNC_0, LN_97X_LOAD_STR_0, TRUE, NULL, FALSE}, > #endif /* INCLUDE_LN_97X_END */ > > /* Entries that can be filled in dynamically when cards are found */ > > { 0, END_TBL_END, NULL, 0, NULL, FALSE}, > { 0, END_TBL_END, NULL, 0, NULL, FALSE}, > { 0, END_TBL_END, NULL, 0, NULL, FALSE}, > > > /* End of table marker */ > > { 0, END_TBL_END, NULL, 0, NULL, FALSE} > }; > > > why does muxLoad fail ???? > are my END_TBL_ENTRY entry's wrong ?? (copied them from example bsp for 486 > shipped with driver) > does my EndLoad func failes ??? (if so why can't I see printf's > from this func) > > At this point which functions are done and which has to be called yet ??? > is sysLan97xPciInit called yet ??? (I think this func is allready > called because of device listing at boot prompt ??) > ln97xEndLoad ??? > > thanks in advance > > niels --------------------------- Newsgroups: comp.os.vxworks Subject: Re: a tool that calculates the number of code line in a projet? Date: 6 Mar 2002 21:50:45 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203062150.32187442@posting.google.com> References: <200236-17519-282492@foorum.com> Hello, There is a quick way of getting a good estimate... just count lines ending in a ';' - remember to tolerate white space after the semicolon. This is simple to do with tools like grep or awk piped into wc -l. This is not lines really, but statements. It does also reject the braces though which most people don't count as lines (unless you're being paid by the line ;-) HTH, John... Charly wrote in message news:<200236-17519-282492@foorum.com>... > Hello, > I am looking for a free utility able to calculate the number of code lines in a > C project. Able to see the /*xxxx*/, //, blank lines. > > I know I could do it, but I have no time to. > Even a source code could help me. > > Thanks you. > charly --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Network hanging problem Date: Thu, 07 Mar 2002 06:09:46 GMT From: "drdiags" Organization: AT&T Broadband Message-ID: References: Giby, For the problem of after running awhile everything stops, if you do a inetstatShow() from the target shell (if you set this up), you may find 50-60 sockets in the MSL*2 waiting to close state on the server. You can review the vxWorks FAQ, there was a writeup describing how to bump up your network configuration to try to work around the hanging due to lack of resource problem. There may be more at play here, but I would suggest that part of your problem is this. "Giby" wrote in message news:edcc6118.0203060419.11e4e2f8@posting.google.com... > Hello everybody, > I am working on networking of two platforms running VxWorks / MPC823 > board. The application is that the waveform data collected at one > station should be seen in real time at the other station through > ethernet 10Mbps link. > The implementation is as follows one station runs a server (done by > calling BSD socket functions) and the other station works as the > client (done using BSD socket functions). Every 100ms the client > connects with the server and sends a packet to send data and the > server replys back on the same connection sending the waveform data, > which the client uses to plot the waveform. > But i find that the real time plot is highly unstable and sometimes > the client cannot connect to server and also after about 2 min the > whole connection stops with no communication between the client and > server. > > Can anybody throw some light on what i should do now . Please say if > my client/ server communication logic is correct.and also any clue to > why the network is hanging after sometime ?? > > i would be very thankful if somebody could help me out on this --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Chabging LIFO Ordered Free List Date: 6 Mar 2002 22:15:21 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203062215.45cd4ec6@posting.google.com> References: <65b2abfc.0203060736.2f705117@posting.google.com> <3C865746.5000102@spamm.me.l8s.co.uk> <3C86A37C.8010809@spamm.me.l8s.co.uk> Hello all, > The vxWorks allocater (LIFO ordered First Fit) comes out particularly > badly - which we all know! FYI, VxWorks AE uses a best fit scheme which, while not avoiding fragmentation, does perform better (time-wise) when the heap is fragmented... Rgds, John... --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Tornado 2.0.2 With gcc 2.96 Date: Wed, 6 Mar 2002 09:05:05 +0100 From: "Mario Semo" Organization: Nextra Telekom GmbH Message-ID: References: <9ec53d11.0203042356.73d7b673@posting.google.com> i ve got it from vxWorks too (from my sales rep, after i asked for). But i didnt installed it, since it was just avail for x86 and i need the same compiler feastures for multiple targets. What problems did you experience with 2.96 - -- regards, Mario Semo. http://www.kirchnersoft.com shoz wrote in message news:d2eae3bd.0203050921.6b458ce4@posting.google.com... > igtorque@eliop.es (=?ISO-8859-1?Q?Ignacio_Gonz=E1lez?=) wrote in message news:<9ec53d11.0203042356.73d7b673@posting.google.com>... > > shoz@elbit.co.il (shoz) wrote in message news:... > > > Hi > > > Did any body use T2 update for gcc 2.96 on x86 ? > > > Did any body use gcc 2.96 with Tornado on x86 ? > > > thanks oz > > > > No. I wish I did, if it existed. I need C++ namespaces (to use CORBA > > without nasty classes inside classes to simulate namespaces.) > Yes 2.96 is somthing you can get from WindRiver , but it have problems that > I want to see if someone solve. > oz --------------------------- Newsgroups: comp.os.vxworks,comp.sys.ibm.pc.hardware.systems Subject: 64 bit BARs Vs 32 bit BARs, PCI Bridge and Local Bus Date: 6 Mar 2002 23:05:48 -0800 From: arun4vxworks@indiatimes.com (Arun Prasad) Organization: http://groups.google.com/ Message-ID: Hi, As far as PCI Bridge or Local Bus is concerned, ****what's the difference in handling/configuring the 64-bit PCI BARs? ****Are there any diffeence in configuring the PCI Bridge, BUS differently for 32-bit BARs and 64 bit BARs? Thank you. Regards Arun Arun Prasad Software Engineer Adaptec India Pvt. Limited (A wholly owned subsidiary of Adaptec Inc., USA) 6-3-1086, IV Floor, Vista Grand Towers, Rajbhavan Road, Somajiguda, Hydereabad - 500082 Phone: (O):91-40-6661555/56/57/58 (Ext):234 Email: arun_prasad@adaptecin.com --------------------------- Newsgroups: comp.os.vxworks Subject: VGA Driver using the WindML Date: 6 Mar 2002 23:08:59 -0800 From: aephraty@rugged.com (Avi Ephraty) Organization: http://groups.google.com/ Message-ID: <43191605.0203062308.206d66f8@posting.google.com> Is there someone who wrote a VGA driver using WindML (preferbly using the component Permedia3 of 3DLABS)? I wonder how complicated is this task ?(How much time it should take?) I also want to integrate it with Video Overlay. I wonder how complicated this task is? In writing the Ovelay unit I'm using the capabilities of the chip (the Permedia3 has a video Overlay unit). --------------------------- Newsgroups: comp.os.vxworks Subject: Re: [reboot error in target shell] Date: Thu, 07 Mar 2002 07:31:16 GMT From: "Gary M" Organization: AT&T Broadband Message-ID: <8HEh8.4112$eM.3813@sccrnsc02> References: What is your target? What are the error messages? reboot() calls sysToMonitor(), which is part of the BSP (sysLib.c). Check that out. Can you display the boot Rom/flash device from the target shell? "sung goh" wrote in message news:APCh8.297$PC3.496772@news.bora.net... > I am new to Vxworks. > > [Problem] > I typed reboot in target shell, then error messages come out and then > started beeping. > > [What I did before the error messages] > I don't see anything wrong in making bootrom disk and vxworks image > transfer. > I completed booting from a disk and downloading vxworks image from host to > target, then tried to reboot typing "reboot" > > Is there a way to solve this? > > Modify bootconfig.c? rominit.s? any other ideas? > > > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Problem in accessing PCI I/O Registers in IBM ppc 405GP Date: Thu, 7 Mar 2002 09:06:52 +0100 From: "Michael Lawnick" Organization: Buergernetz Dillingen Message-ID: References: <3C7F9C21.48433D2B@varndellengineering.com> <3C7FC51C.F75E564D@notifier-is.net> Reply-To: "Michael Lawnick" Sender: mlawnick@p5088fa7a.dip.t-dialin.net Hi Arun, in your last posting you talked about writing 0xFFFFFFFF into BAR and read back: This is just the way how autoConfig computed the setup of 0x40000000, you don't need to do it again. So let us collect (after vxWorks pciAutoConfig): Board setup: PCI-I/O local view: 0xe8000000 PCI-Mem local view: 0x80000000 Card setup: BAR0 0x40000000c BAR1 0 BAR2 1 BAR3 0x4000100c BAR4 0 MMU's setup: access to 0xe8000000 and 0x80000000 allowed. This all looks fine. Of course you have to map out the lower 3bits in BAR0 and BAR3 and the lowest bit in BAR2. Your translation macros seem to be consistent with card setup and MMU setup. So you should be able to access your NIC's I/O-space in 0xe8000000 and its mem-space at 0x80000000 and 0x80001000 just by dereferencing pointers to it. Take care which access formats your target supports - 8,16 or 32bit, access might give wrong results otherwise, but should complete anyway. If you are not able to access, i.e. you get an exception, your local2PCI-bridge or MMU setup might be not the one we expect above. If you are able to access, but the results seem to be wrong, we should look at the results: If all is 0xFFFFFFFF in I/O-space -> ???? card damage? If there is an other pattern you don't expect -> did you swap ? PCI: little endian, PPC: big endian If I/O space is OK now, lets look into mem space: All 0xFFFFFFFF -> has your card to be enabled/started/.... to configure this area ? Just an idea: Have you checked PCI-spec, which of both BARs is the low address descriptor ? Change contents of BAR0 and BAR1. Unexpected pattern in mem-space? Take care of endianess, access width .... else: ?????? Mit freundlichen Grüßen, Michael Lawnick - -- Mit freundlichen Grüßen, Michael Lawnick ============================================== SOFTEC GmbH Tel +49-731-96600-0 Promenade 17 Fax +49-731-96600-23 D-89073 Ulm Michael Lawnick Germany lawnick@softec.de ============================================== "Arun Prasad" schrieb im Newsbeitrag news:e38d912c.0203061133.45561157@posting.google.com... > Dear Micheal, > > Thank you so much for your kind help. Your mails are quite > informative. > > I've gone through pciAutoConfigLib.c and as you said 64 bit BARs are > not supported there. > > < under LINUX BAR0 ends with 0, under Tornado with c. Remembering that > you > said that both pairs are 64bit, I'd beleave in VxWorks - a typo in > your > LINUX output-copy ? > > >> It's because the output of Linux BARs are after masking them. > Originally when we read the PCI configuration space we get the BAR0 & > BAR3 ending with c only. > > << I'm not pretty sure what you are doing after setup, there is to > much in your posting. > > >>Here I have to mention onthing. The function which we have written > (AdptPciDevConfig() ) is getting called in the driver after > pciAutoConfig() finishes its task. In the attach routine (at the > moment we are not calling this function and we directly call our > device/driver/structures initialization module) of our driver (netBSD > networking driver model) we call our driver/device initialization > function to configure our device, which inturn calls pciFindDevice() > function. > > After finding our card we are reading its BARs and other h/w > details. The BARs are getting masked and stored in our driver internal > structures and other info like IRQ and all stored to our driver > structure. > > In the first case, > we tried with VxWorks configured BARs (32 bit BARs) and we are > able to access I/O space/registers of our card (after adding the > constant 0xe8000000) and we are succeesully able to read/write into > our card's I/O registers. > > But when we access memory region we get "general protection fault". > > In the second case, > we used our own written pciDevConfig() (AdptDevConfig() config as > shown in the first mail.) to configure 64 bit BARs of our card. But > after that we are not able to access our I/O region/registers itself. > > < PCI-memory window of your sysPhysMemDesc[] (should be) > > >>As per the calculation PCI_MEM2LOCAL( + ) adds > 0x40000000 to the value supplied and PCI_MEMIO2LOCAL( + > ) adds 0xe8000000 to the value supplied. > > The region 0xe8000000 is clearly visible in sysPhysMemDesc[] > (PLB_PCI_IO_REGION_1_START is equal to 0xe8000000) > The region 0x80000000 is also there in sysPhysMemDesc[] > (PCI_MEMORY_START is equal to 0x80000000). > > In the example snippet you have given, you haven't masked the PCI > BAR addresses and you directly used the macros to map them. > > Is that correct? > > (I'm refering the usual PCI config read, writing oxffffffff on the > BAR, masking it and write back the original BAR value.) > > Now can my questions are, > When I use our own written/modified pciDevConfig() function, we > are setting the 64 bit BARs but we aren't able to access I/O region > itself. This is the case even when we use the macro > PCI_MEMIO2LOCAL( +) or not. > > What's wrong in that function? What we are missing? > > We are thinking of entirely omitting VxWorks pci configurations and > porting Linux's auto config function. > > Other possiblity We are thinking is re-writing the > pciConfigLib.c/pciAutoConfigLib.c files to support 64-bit BARs. > > Please give your feedback on these. > > I just got a feeling like, by simply re-writing/modifying > pciDevConfig() to configure 64-bit BARs I'm mixing/missing something. > > > Thanks again for all the good work done at your part. > > Regards > Arun > ----- > Arun Prasad > Software Engineer > Adaptec India Pvt. Limited > (A wholly owned subsidiary of Adaptec Inc., USA) > 6-3-1086, IV Floor, Vista Grand Towers, > Rajbhavan Road, Somajiguda, > Hydereabad - 500082 > Phone: (O):91-40-6661555/56/57/58 > (Ext):234 > Email: arun_prasad@adaptecin.com > > > > On Tuesday 05 March 2002 13:46, Michael Lawnick wrote: > Hi Arun, > > take a look into $(WIND_BASE)/target/src/drv/pci/pciAutoConfigLib.c, > this is the code executed for setting up PCI devices automatically. > I can't see any hint for 64bit there. > > Reviewing your first post, I think, setup might be done correct: > The registers set to 0x8100x00y under LINUX are set to 0x4000x00y in > VxWorks, the main difference is the freely selectable translation > offset > Local2PCI. > One difference seems not to be OK: > under LINUX BAR0 ends with 0, under Tornado with c. Remembering that > you > said that both pairs are 64bit, I'd beleave in VxWorks - a typo in > your > LINUX output-copy ? > > I'm not pretty sure what you are doing after setup, there is to much > in > your posting. > After auto-config you should be able to access the memory-mapped > part of > your NIC by > PCI_MEM2LOCAL( + ) > and your IO-mapped registers by > PCI_MEMIO2LOCAL( + ) > You'll find this macros in walnut.h. Check whether the result of > this > macros is included in the PCI-memory window of your sysPhysMemDesc[] > (should > be) > > Example with your autoConfig setup: > BAR0=0x4000000c /* memarea_1 */ > BAR1=0 > BAR2=0x0001 /* register_area*/ > BAR3=0x4000100c /* memarea_2 */ > BAR4=0 > > > typedef struct > { > ... > UINT32 ioBase; > UINT32 memBase1; > UINT32 memBase2; > ... > } DRV_CRTL; > ... > > { > UINT32 nicMemBase1; > UINT32 nicMemBase2; > UINT32 nicIoBase; > > /* get base addresses of NIC's PCI windows */ > pciConfigInLong(0,2,0,PCI_CFG_BASE_ADDRESS_0,&nicMemBase1); > pciConfigInLong(0,2,0,PCI_CFG_BASE_ADDRESS_2,&nicIoBase); > pciConfigInLong(0,2,0,PCI_CFG_BASE_ADDRESS_3,&nicMemBase2); > > /* translate PCI windows to CPU-local addresses and save in driver's > struct > */ > pDrvCtrl->ioBase=PCI_IO2LOCAL(nicIoBase); > pDrvCtrl->memBase1=PCI_MEM2LOCAL(nicMemBase1); > pDrvCtrl->memBase2=PCI_MEM2LOCAL(nicMemBase2); > } > > /* later on, when access is needed */ > { > ... > /*Access 32bit register with offset 0x20 in register_area */ > NicReg = *(UINT32*)(pDrvCtrl->ioBase+ 0x20); > /*Access 32bit memory value with offset 0x200 in memarea_1 */ > NicMem1 = *(UINT32*)(pDrvCtrl->memBase1 + 0x200 ); > /*Access 16bit memory value with offset 0x222 in memarea_2 */ > NicMem1 = *(UINT16*)(pDrvCtrl->memBase2 + 0x222 ); > ... > } > > Remember: On PPC in CPU's view all PCI accesses are standard memory > accesses - if mem-mapped or IO-mapped. The local2PCI bridge converts > an > access to the apropriate PCI-cycles. > > HTH > > Mit freundlichen Grüßen, > Michael Lawnick > ========================================= > SOFTEC GmbH Tel +49-731-96600-0 > Promenade 17 Fax +49-731-96600-23 > D-89073 Ulm Michael Lawnick > Germany lawnick@softec.de > ========================================= > > > -----Ursprüngliche Nachricht----- > > Von: Arun Prasad [mailto:arun_prasad@adaptecin.com] > > Gesendet: Montag, 4. März 2002 22:32 > > An: Michael Lawnick > > Betreff: Needed help on Accessing Memory Mapped I/O space on IBM > > ppc405GP > > > > > > Dear Micheal, > > > > Since I need some quick response, I'm posting to your mail > > Id. I'm sorry. > > > > Are you sure VxWorks does not support 64 bit PCI? > > > > I don't have enough knowledge on VxWorks and how it handles > > PCI stuff, > > though I have a bit knowledge on PCI and how Linux handles it. > Once I was > > working on writing a DOS driver for externel IDE controller (PCI > > based). I > > knew the crude way of handling PCI/DMA/PIO programming (Infact I > > did the same > > thing on OS/2 also) but not on how VxWorks handles it. > > > > We/I can't go for the third solution which you have mentioned > :-( > > > > It would be helpful if you could eloborate on the first two > > solutions. > > > > We already tried to write our own routine to configure our > > card's 64bit BAR > > address registers (you coult see that at the start of this mail > > chain). And I > > also tried to make entries in sysPhysMemDes[], but nothing worked > out. I > > don't know what I'm missing. But most of the thing I do/did on a > > trial and > > error basis as my knowledge on VxWorks is not sufficient. I'm > > learning. It > > has become very critical now and we are nearing our deadline. > > > > Earlier replies/suggestions/answers would be of great help. > > > > One more question, > > If at all our card requires only 32 bit BAR > > memory Registers, what should > > I do to access these memory regions after reading the BARs from > > PCI config > > space? > > > > Thanks again. > > Regards > > Arun > > > > > > "Michael Lawnick" wrote in message > > news:... > > > > > Hi Arun, > > > > > > AFAIK, VxWorks does not support 64bit PCI. It interprets your 2 > > > > double BARs > > > > > as 4 seperate BARs and sets up access to those you find valid > > > > values. This > > > > > won't work for you: > > > You have access to I/O-mapped region, as PCI autoconfig found > > > > the regions > > > > > and the region was already added in sysPhysMemDesc[]. For your > > > > mem mapped > > > > > region this failed and your MMU complains that you try to > > > > access a region > > > > > that is not enabled. > > > > > > I can see two {three} possible solutions: > > > a) Enable the considered region in your sysPhysMemDesc[] by hand > (don't > > > forget the local2PCI bridge !) and setup your NIC's 64bit mem > > > > BARs by hand > > > > > in a way that their windows are placed accordingly. > > > b) Disable MMU. > > > { c) Use a more common NIC ;-) } > > > HTH > > > Michael > > > --------------------------- Newsgroups: comp.arch.storage,comp.periphs.scsi,comp.os.vxworks Subject: Re: source code for SCSI Fibre Channel implementation Date: Thu, 07 Mar 2002 08:34:35 GMT From: "J. J. Farrell" Organization: EarthLink Inc. -- http://www.EarthLink.net Message-ID: References: <5c04bc56.0202272342.124108d6@posting.google.com> <_Llh8.39584$ZC3.3120471@newsread2.prod.itd.earthlink.net> <0506ED079FDAE166.4EF6E774CBA36AB4.D3A185EC0E095A9A@lp.airnews.net> "Malcolm Weir" wrote in message news:0506ED079FDAE166.4EF6E774CBA36AB4.D3A185EC0E095A9A@lp.airnews.net... > On Wed, 06 Mar 2002 09:59:22 GMT, "J. J. Farrell" caused to > appear as if it was written: > > It's been at least 5 years since I worked with commercial FC protocol > controllers (which, since the darn things have only been around for about > 5.5 years, may give you some idea of the maturity of the beasts at the > time...) > > But... > > I'd check into Agilent's Tachyons. Back when I worked on them (prior to the > "Tach Lite" PCI versions becoming available... part numbers like HP5100 ring > a bell), they were extremely open about how to feed and care for the beast, > on the grounds that any specimen code they provided would be entirely > useless without the chip itself. In this way, HP acted almost exactly like > NCR/Symbios/LSI did/do: you can download their scripts and sample code > without any IP implications. Thanks Malc - a couple of other people suggested the Tachyon today. I remember when they first came in, as the great hope of the Fibre Channel community that it would finally be able to build an HBA at a reasonable price. I was in the SSA camp at the time, the Betamax of the Serial SCSI world ... > Now, naturally, the sample code (in both vendors cases) is not exactly > optimal... but it's a start, and a reasonable reference design from which to > rewrite the code! > > ... > My recollection (and it *has* been 5 years) is that the framing is done by > the hardware, so you basically work with pointers/length tuples to the > various FCP entities (command, data, status). Much better than nothing, as you say. Thanks, I'll chase them up. --------------------------- Newsgroups: comp.os.vxworks Subject: Running multiple vxsim in Tornado Prototyper 2.0.2 under Win 2000? Date: 7 Mar 2002 00:45:36 -0800 From: yjyang88@iris.seed.net.tw (Johnny Yang) Organization: http://groups.google.com/ Message-ID: Dear all: I follow the instructions posted in the following website: http://www.xs4all.nl/~borkhuis/vxworks/multsimnt.html And everything works fine until I start the target server. (the target simulator runs successfully) The error message is: tgtsvr (vxsim1@johnny_yang): Thu Mar 07 16:16:03 2002 Checking License ...OK Wind River Systems Target Server: NT/Win95 version Connecting to target agent... Error: rpccore backend client Unable to receive failed. This error repeats infinitely. I've installed the ULIP driver and had the IP Forwarding enabled by changing the registry value "IpEnableRouter" to 1. Is there anything wrong with my target server options? tgtsvr.exe 90.0.0.1 -n vxsim1 -V -B wdbrpc -R d:\ -RW If I change the WDB connection type to "WDB simulator pipe connection" instead of "WDB END driver connection" and rebuild VxWork.exe, I can have one simulator & one target server run successfully, but not two. (the target server option is: tgtsvr.exe 90.0.0.1 -n vxsim1 -V -B wdbpipe -R d:\ -RW) Can anybody tell me how to run multiple vxsim? Thank you! --------------------------- Newsgroups: comp.os.vxworks Subject: Ans to Re: [reboot error in target shell] Date: Thu, 07 Mar 2002 08:48:21 GMT From: "sung goh" Organization: Dacom Message-ID: References: <8HEh8.4112$eM.3813@sccrnsc02> ***** Target Shell ***** - ->lkup "reboot" ; then reboot 0x00xxxxxx reboot_verify 0x00xxxxxx .. .. .. rebootHookAdd 0x00xxxxxx - -> reboot General Protection Fault Program Counter : 0x0005de06 Status Register : 0x00250057 Error Code : 0x00000000 ==> beeping and stuck here **** Bootrom display **** brief configurations CPU: PC Pentium Version: 5.4.2 BSP version : 1.2/0 boot device : fei filename : vxWorks.st .... ... . Thanks. "Gary M" wrote in message news:8HEh8.4112$eM.3813@sccrnsc02... > What is your target? > What are the error messages? > reboot() calls sysToMonitor(), which is part of the BSP (sysLib.c). Check > that out. > Can you display the boot Rom/flash device from the target shell? > > "sung goh" wrote in message > news:APCh8.297$PC3.496772@news.bora.net... > > I am new to Vxworks. > > > > [Problem] > > I typed reboot in target shell, then error messages come out and then > > started beeping. > > > > [What I did before the error messages] > > I don't see anything wrong in making bootrom disk and vxworks image > > transfer. > > I completed booting from a disk and downloading vxworks image from host to > > target, then tried to reboot typing "reboot" > > > > Is there a way to solve this? > > > > Modify bootconfig.c? rominit.s? any other ideas? > > > > > > > > --------------------------- Newsgroups: comp.os.vxworks Subject: Were can i get the document " Tornado BSP Development Kit BSP Version 1.1" Date: 7 Mar 2002 01:02:20 -0800 From: vijay_emb@yahoo.com (vijay) Organization: http://groups.google.com/ Message-ID: Hi All In Online Document most times it says that see the "Tornado BSP Development Kit" So were can i get this Document, I am not seeing this document in the online documents. So, If any one of you have this Document please forward it to me Thanks In Advance Regards Vijay --------------------------- Newsgroups: comp.os.vxworks Subject: Re: a tool that calculates the number of code line in a projet? Date: Thu, 7 Mar 2002 09:22:03 +0000 From: Danny Chapman Organization: Lucent Technologies, Columbus, Ohio Message-ID: References: <200236-17519-282492@foorum.com> On 6 Mar 2002, Charly wrote: > I am looking for a free utility able to calculate the number of code lines in a > C project. Able to see the /*xxxx*/, //, blank lines. I use a program called ncsl (under Solaris). This appears to be free from http://www.lucentssg.com/displayProduct.cfm?prodid=33 though I haven't actually tried downloading it from there. - - Danny --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Help! Cannot access vxworks from another network Date: 7 Mar 2002 01:57:26 -0800 From: michael.shamis@actelis.com (Michael) Organization: http://groups.google.com/ Message-ID: References: <0Baf8.69$Sk3.3211@llslave.llan.ll.mit.edu> <3C7D9038.A51390B8@dsto.defence.gov.au> <4Qpf8.71$Sk3.3151@llslave.llan.ll.mit.edu> <3C7ECF52.8429283C@dsto.defence.gov.au> The default gateway ("0.0.0.0") does not solve case when we want to access VxWorks target from two (or more) different networks simultaneously. Let's see the following configuration: ________________________________________ 11.0.x.x net | 11.0.7.22 Pc Host Gateway ... 10.0.1.244 10.0.6.52 ... |__________________|_____________________ 10.0.x.x net | | <-- Ethernen | 10.0.7.46 VxWorks Target 62.90.13.177 | | <-- Dial UP Networking PPP connection | 62.90.13.178 Gateway (WindowsNT Workstation) 169.254.0.1 | __________________________________|_____ 169.254.x.x net | 169.254.0.2 Pc host To connect Ethrnet interface I have to call on target routeAdd("0.0.0.0", "10.0.7.46"); And in order to connect to Dial Up Networking interface I have to call on target routeAdd("0.0.0.0", "169.254.0.1"); But VxWorks does not allow to have 2 defaults gateways (WindowsNT allows several default gateways). In most cases we don't know the gateway IP addresses and we need two default gateways. So the only way (?) is to use dynamical routing algorithms. I added RIP component in Tornado and RIP (version1) started to run on target. Then I added RIP service on Gateway WindowsNT 62.90.13.178 and added gateway entry in route table on 169.254.0.2 PC host: "route add 62.90.13.0 mask 255.255.255.0 169.254.0.1". It does not help. May be somebody know how to access VxWorks target from two different networks? Thanks, Michael "Joe Georger" wrote in message news:... > Tim, > > Your diagram is accurate. The 155.34.103.1 gateway is a router (I don't > have access to it, though). My development pc has a default gateway of > 155.34.99.1 (another router). Therefore I didn't need to add a route to > access the 155.34.103.0 network. I have been searching thru this > newsgroup's archives and came across the following: > > You have to set the default route, period. The way I did it was to modify > usrNetwork.c and add the following line to usrNetInit() > > if (params.gad[0] != EOS) routeAdd("0.0.0.0", params.gad); > > The nice thing about doing it this way is your default route will always > be to the gateway you enter at the boot prompt, so if you ever change that > the default route will automatically follow. > > And this: > > This is a very old issue - in both bootConfig.c and usrNetwork.c, routeAdd() > is called to install a default gateway, but the destination network is the > same subnet on which the Host is located. This code, as shipped, only good > for > VME bp/sm networks - it works for the CPU which is connected only to the VME > network, and helps it conenct to the Host via the VME/Ethernet gateway. > > It has been suggested several times to change this statement to add > "0.0.0.0" > as destination, making the default gateway function in all cases (including > the VME network special case), but the suggestion was not incorporated into > the product. I beleive that I have filed a TSR about this back in 1991, when > I > worked for Applied Materials Inc. > > The only and the most elegant fix is to change the routeAdd() statement in > bootCOnfig.c, usrNetwork.c to be: > > routeAdd("0.0.0.0", params.gad); > > I did change these files as recommended above. AFAIK the bootConfig.c file > is used in compiling the bootrom, so I did that and reflashed my board. > That didn't work. I figured that the bootrom code is superseded by the > VxWorks image.... > > I also changed userNetwork.c, but when I rebuilt my VxWorks image, I don't > think that file was used?? In any event, that didn't work either. Is this > a viable idea? It sure seems like it should work.... > > Thanks, > Joe > > "Tim Shaw" wrote in message > news:3C7ECF52.8429283C@dsto.defence.gov.au... > > Great suggestion Dave, here's my guess: > > > > > > > > > > vx Target PC host > > 155.34.103.42 155.34.103.41 > > |__________________|_____________________ 155.34.103.0 net > > | > > | > > 155.34.103.1 > > Gateway (PC?) > > 155.34.99.XX > > | > > __________________________________|_____ 155.34.99.0 net > > | > > 155.34.99.99 > > dev PC > > > > > > So the vxWorks targets needs to have the following: > > routeNetAdd "155.34.99.0", "155.34.103.1" > > which tells it to use the gateway to get to the 155.34.99.0 network. > > > > Then on the development PC, you need to add the route: > > route ADD 155.34.103.0 MASK 255.255.255.0 METRIC 2 IF 1 > > which you obviously have done if you can ping the 155.34.103.41 host. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Is it possible to change the priortiy of windsh Date: Thu, 7 Mar 2002 11:08:38 +0100 From: "Michael Lawnick" Organization: Buergernetz Dillingen Message-ID: References: <%n7h8.2999$5o.2232656@newsr2.u-net.net> <3C850A5B.3040106@spamm.me.l8s.co.uk> Reply-To: "Michael Lawnick" Sender: mlawnick@p5088fa7a.dip.t-dialin.net Hi Matt, just read a nd do how David said: on all critical commands use - -> sp ,,,..... This seems the only way to get around your problems. All commands entered without 'sp' will be executed at the same priority as the shell you invoke it from. - -- Mit freundlichen Grüßen, Michael Lawnick ============================================== SOFTEC GmbH Tel +49-731-96600-0 Promenade 17 Fax +49-731-96600-23 D-89073 Ulm Michael Lawnick Germany lawnick@softec.de ============================================== "Matt Schuckmann" schrieb im Newsbeitrag news:A2wh8.2902$J3.1067@nwrddc01.gnilink.net... > All good ideas guys but want if I want to use the ld() shell command to > dynamically load a module. > > The behaviour I've observed is that when I give the shell a command, like > ld() or even one of my own functions, it spawns a very high proiorty task, > priorty 3 I think and it's usually called t01, t02, t03, etc) to run the > function. Now if it's one of my own functions I can explicitly change the > priorty right off and I'm good. But what I can't figure out is how to make > the ld(), or other shell commands, to run at a lower priority so that they > don't preempt my real time task. > > Any ideas would be great > Thanks > Matt Schuckmann > > matthew_schuckmann@amat.com > > "David Laight" wrote in message > news:3C850A5B.3040106@spamm.me.l8s.co.uk... > > >>Does anybody know if there is a way to change the priorty at which > > >>function and commands run from windsh run at? > > >> > > >>The problem I'm having is that I've got a significant part of my code > > >>loaded and running and I'm dynamically loading and unloading another > > > > >>part of the code to make it easier and quicker to debug it. > > >>When I use the ld() command to dynamicaly load and unload the > > >>module I'm debugging the loader runs in the windsh task and that > > >>task appears to run at such a high priority that it prevents my > > >>hard real time task from running for long enough that I end up > > > > >>having to reset my hardware after loading or unloading my test module. > > > > > > Just ask the shell to spawn a task to do the work.... > > > > sp ld,"filename" > > > > will run at a reasonable priority > > > > David > > > > > > > > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Printing 64bit values Date: Thu, 7 Mar 2002 12:43:24 +0200 From: "Leonid Rosenboim" Organization: Verio Message-ID: References: <900e9637.0203060746.2d1c1bda@posting.google.com> <3c864ee0@pull.gecm.com> This is a know issue in terms of WindRiver support knowledge base, so any support engineer should have been able tp provide you with the answer right away. Also, I do beleive this was discussed recently on this newsgroup. With Google, its up to you to provide the right keywords. "Martin Dowie" wrote in message news:3c864ee0@pull.gecm.com... > "Leonid Rosenboim" wrote in message > news:newscache$ii9ksg$h12$1@lnews.actcom.co.il... > > This is an old and known issue, Tornado 2 > > does not fully support 64 bit integer math. > > With some simple Makefile modifications, > > you can get the calcuation to work right on most architectures, > > but the WRS libraries, including stdioLib and fioLib > > including printf() and scanf() wont support 64bit whatever you do. > > > > You have to write your own function to convert a 64 bit int > > to a decimal string and then print the string with printf(). > > Got a point to this "known issue", apparently Google has yet > to hear about it :-( > > > --------------------------- Newsgroups: comp.os.vxworks Subject: Using STL map type Date: Thu, 7 Mar 2002 12:05:51 +0100 From: patrick@hotmail.com Organization: Siemens Inc. Message-ID: Reply-To: patrick@hotmail.com Hello, I have a compile error which I hope someone can shed some light on. When I #include the STL map type I get the following error: .../tornado/target/h/iostream.h:97: `ostream::operator <<(char)' is already defined in class ostream .../tornado/target/h/iostream.h:221: `istream::operator >>(char &)' is already defined in the class istream These two line actually seem to be defining iostream operators for type bool. I am not using iostream let alone bools. I have s simple source file which I have stripped of all unnecessary stuff. I still get the error when including map. Any ideas?? Thanks regards, Patrick +--------------------------------------------------------------------+ /earth is 98% full ... please delete anyone you can. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Help! Cannot access vxworks from another network Date: Thu, 7 Mar 2002 11:57:31 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C875618.3020108@spamm.me.l8s.co.uk> References: <0Baf8.69$Sk3.3211@llslave.llan.ll.mit.edu> <3C7D9038.A51390B8@dsto.defence.gov.au> <4Qpf8.71$Sk3.3151@llslave.llan.ll.mit.edu> <3C7ECF52.8429283C@dsto.defence.gov.au> Michael wrote: > The default gateway ("0.0.0.0") does not solve case when we want to > access VxWorks target from two (or more) different networks > simultaneously. > Let's see the following configuration: > > > ________________________________________ 11.0.x.x net > | > 11.0.7.22 > Pc Host Gateway ... > 10.0.1.244 10.0.6.52 ... > |__________________|_____________________ 10.0.x.x net > | > | <-- Ethernen > | > 10.0.7.46 > VxWorks Target > 62.90.13.177 > | > | <-- Dial UP Networking PPP > connection > | > 62.90.13.178 > Gateway (WindowsNT Workstation) > 169.254.0.1 > | > __________________________________|_____ 169.254.x.x net > | > 169.254.0.2 > Pc host > > > To connect Ethrnet interface I have to call on target > routeAdd("0.0.0.0", "10.0.7.46"); > > And in order to connect to Dial Up Networking interface I have to call > on target > routeAdd("0.0.0.0", "169.254.0.1"); > > But VxWorks does not allow to have 2 defaults gateways (WindowsNT > allows several default gateways). Generally you can only have 1 default gateway. Otherwise how do you select it - it is the DEFAULT, the one used when there isn't a specific gateway. With the above, you need to specify 10.0.6.52 as the gateway to 11.x.x.x network and 62.90.13.178 for the 169.254.x.x network. The default route is used for you route out to the great wide outdooes (the rest of the web). David --------------------------- End of New-News digest ********************** From vxwexplo-errs@csg.lbl.gov Thu Mar 7 16:29:13 2002 From: "Jeff Angielski" Date: Thu Mar 7 16:29:15 PST 2002 Subject: Issues with Dynatem/Microsys CU824 VME controller card I am trying to track down some problems I am having getting vxWorks to run on a Dynatem CU824 controller card (MPC8240). I was wondering if anybody has any experience with vxWorks and this hardware. If so, have you seen any of the following problems/issues: 1) The vxMemProbe() detects errors on VME reads but not on VME writes. The same applies for memory mapped VME spaces. Bad reads are detected but not writes. 2) The ethernet interface works fine in 10Base-T but in 100Base-T has problems receiving packets. Needless to say, this has been making it very difficult to apply the WRS DHCPC workaround for vxWorks.st_rom.hex images. :) Thanks in advance... ------------------------------------------------------ Jeff Angielski 703.405.6896 Principal Engineer jeff@ThePTRGroup.com www.ThePTRGroup.com Embedded, Real-Time Solutions ------------------------------------------------------ From vxwexplo-errs@csg.lbl.gov Fri Mar 8 04:03:24 2002 From: Vxworks Exploder Date: Fri Mar 8 04:03:28 PST 2002 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Fri Mar 8 04:03:20 PST 2002 Subject: Re: Do I need semaphore protection for multiple tasks accessing same socket Subject: PCI memory space Subject: END Driver performance Subject: Re: END Driver performance Subject: Re: Ans to Re: [reboot error in target shell] Subject: Re: to give a float parameter to a function by shell ? Subject: Re: to give a float parameter to a function by shell ? Subject: Re: PCI memory space Subject: Re: PCI memory space Subject: Spurious Vx Works errors during building Subject: Re: PCI memory space Subject: Can't mount NFS directories Subject: Re: [reboot error in target shell] Subject: Re: Do I need semaphore protection for multiple tasks accessing same socket Subject: Re: Do I need semaphore protection for multiple tasks accessing same socket Subject: Re: Tornado 2.0.2 With gcc 2.96 Subject: Re: Do I need semaphore protection for multiple tasks accessing same socket Subject: Re: May I ask you a question of vxworks and 3c90x network card? Subject: Re: Ans to Re: [reboot error in target shell] Subject: Re: I want to log the packet between IP and mux. Subject: Re: Can't mount NFS directories Subject: Re: END Driver performance Subject: Re: Can't mount NFS directories Subject: Re: Ans to Re: [reboot error in target shell] Subject: Re: VGA Driver using the WindML Subject: Re: I want to log the packet between IP and mux. Subject: Re: Initialize multiple ethernet interface after boot vxworks? Subject: Re: Can't mount NFS directories Subject: Re: a tool that calculates the number of code line in a projet? Subject: Re: ULIP on non-neworked w2k station Subject: Re: END Driver performance Subject: Re: I want to log the packet between IP and mux. Subject: Re: Is it possible to change the priortiy of windsh Subject: outp with gcc????? Subject: Re: I want to log the packet between IP and mux. Subject: 5 dollar emails Subject: Multihoming Subject: BSD Ethernet Driver Subject: Re: Multihoming Subject: Re: BSD Ethernet Driver Subject: [Q] about Mutual-Exclusion Semaphore Subject: Re: where has some VxWorks example program? Subject: Re: Printing 64bit values Subject: Re: Were can i get the document " Tornado BSP Development Kit BSP Version 1.1" Subject: I want to get a copy of source code of 3c90x network card for vxworks? Subject: Re: ln97xEnd MuxLoad failed Subject: ctors/dtors Subject: Re: PCI memory space Subject: Re: BSD Ethernet Driver Subject: Re: [Q] about Mutual-Exclusion Semaphore Subject: Re: END Driver performance Subject: Re: outp with gcc????? ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Re: Do I need semaphore protection for multiple tasks accessing same socket Date: Thu, 7 Mar 2002 12:09:02 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C8758BE.7080106@spamm.me.l8s.co.uk> References: <68f5c46.0203061308.41e9cdec@posting.google.com> <3C86A76B.4010607@spamm.me.l8s.co.uk> Hwa Jin Bae wrote: > I personally would not use multiple tasks reading from one socket. I am not > sure why doing so would be useful. I might be lacking in my imagination. > > However, closing a socket is OK when I/O is pending. If one task is doing a > read(), for example, and another task does a close(), the read() will return > will error. write() works similarly. So it is not so indeterminate. > > So David, do you have a specific scenario and problem in mind? If there are > problems in this area, I really screwed up. vxWorks has no interlocks between read/write and close. (We were doing tests with a serial line from java - but that isn't relevant to the underlying problem) The fd isn't 'deleted' until close returns, until that time another read/write could happen while the close is 'active'. This would cause the device driver to access the (now freed) data area associated with the fd. There is NOTHING in the standard IO stuff to make read/write return with an error when close is called. The socket code might contain something, but if WRS have closed all the timing holes it will be the only place I've seen it! David --------------------------- Newsgroups: comp.os.vxworks Subject: PCI memory space Date: 7 Mar 2002 04:25:10 -0800 From: emycall@dreamx.net (Ahn Jung Hoon) Organization: http://groups.google.com/ Message-ID: <2b0ae335.0203070425.4ca35b57@posting.google.com> Hi, all I have a problem in accessing pci memory space Previously, My work space is.. VxWorks version 5.4 KERNEL: WIND version 2.5 CPU: Motorola Unknown - MPC 750. Processor #0. Memory Size: 0x10000000. BSP version 1.2/0. WDB: Ready. well.. I have PCI memory card, and it's size is 256MB.. By default, it was written in MV2600.h #define CPU_PCI_MEM_SIZE 0x01000000 /* 16 meg */ so, I modified it as following.. #define CPU_PCI_MEM_SIZE 0x20000000 /* 256 meg */ Then I met data access error as following.. - ------------------------------------------------------- - -> pciHeaderShow(0, 0x10, 0) vendor ID = 0x11b0 device ID = 0x0200 command register = 0x0002 status register = 0x0000 revision ID = 0x00 class code = 0x05 sub class code = 0x00 programming interface = 0x00 cache line = 0x00 latency time = 0xf8 header type = 0x00 BIST = 0x00 base address 0 = 0x10000000 base address 1 = 0x00000000 base address 2 = 0x00000000 base address 3 = 0x00000000 base address 4 = 0x00000000 base address 5 = 0x00000000 cardBus CIS pointer = 0x00000000 sub system vendor ID = 0x4754 sub system ID = 0x0005 expansion ROM base address = 0x00000000 interrupt line = 0x03 interrupt pin = 0x00 min Grant = 0x00 max Latency = 0x00 value = 0 = 0x0 - -> d 0x10000000 10000000: data access Exception current instruction address: 0x0015c070 Machine Status Register: 0x0000b030 Data Access Register: 0x10000000 Condition Register: 0x48200080 Data storage interrupt Register: 0x40000000 1812e0 vxTaskEntry +60 : shell () 177118 shell +18c: 177144 () 177368 shell +3dc: execute () 1774ec execute +d8 : yyparse () 1a96ec yyparse +7a8: 1a7634 () 1a77ac yystart +8f8: d () shell restarted. - -------------------------------------------------------------- But When I modified it as following, I could success to display and modified at PCI_BASE_ADDR(0x08000000).. #define CPU_PCI_MEM_SIZE 0x10000000 /* 128 meg */ .. I think that only what I had to do is to modify CPU_PCI_MEM_SIZE for memory access more than 16MB.. But.. Maybe, it seems to be incorrect.. Please.. Can anybody let me understand in the easiest way what is problem. --------------------------- Newsgroups: comp.os.vxworks Subject: END Driver performance Date: 7 Mar 2002 04:44:55 -0800 From: bondi_ameya@yahoo.com (Ameya) Organization: http://groups.google.com/ Message-ID: <57c7939b.0203070444.5f1ac389@posting.google.com> hi, my END driver for 802.11 based wireless card on x86 platform does not give me the expected performance. I dont use the netjobadd, instead a task is spawned (priority 51) and it takes a semaphore. The data is copied from the hardware into my preallocated buffer inside the ISR. All the work regarding getting Mblks from the pool (I use NetTupleGet) and sending it to the upper layers is done in this task. The semaphore is given inside the ISR on a RX interrupt. I have a watchdog timer that runs every 100 ticks (where 1000 ticks = 1 Second). I use this timer to handle missing interrupts. When i ping with 2048 bytes, the avg rtt is 8 ms which translates to 4 Mbps throughput roughly. If i try to transfer 100 Kb data over TCP sockets, it takes a long time (in seconds). I tried changing the Send and Recieve socket buffer sizes but the performance is still the same or worser. Any ideas? Thanks Ameya --------------------------- Newsgroups: comp.os.vxworks Subject: Re: END Driver performance Date: Thu, 7 Mar 2002 12:54:56 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C87637C.5060708@spamm.me.l8s.co.uk> References: <57c7939b.0203070444.5f1ac389@posting.google.com> Ameya wrote: > hi, > my END driver for 802.11 based wireless card on x86 platform does not > give me the expected performance. I dont use the netjobadd, instead a > task is spawned (priority 51) and it takes a semaphore. The data is > copied from the hardware into my preallocated buffer inside the ISR. > All the work regarding getting Mblks from the pool (I use NetTupleGet) > and sending it to the upper layers is > done in this task. The semaphore is given inside the ISR on a RX > interrupt. I have a watchdog timer that runs every 100 ticks (where > 1000 ticks = 1 Second). I use this timer to handle missing interrupts. > > When i ping with 2048 bytes, the avg rtt is 8 ms which translates to 4 > Mbps throughput roughly. > If i try to transfer 100 Kb data over TCP sockets, it takes a long > time (in seconds). > I tried changing the Send and Recieve socket buffer sizes but the > performance is still the same or worser. > > Any ideas? I would suspect that you are suffering from lost packets. Maybe the TCP window size is larger than the buffer space somewhere? What are you talking to? I'm not sure how much buffer space the Aironet base stations I've used had. But large transfers did seem slow. (However we were writing to flash, and the erase delays completely mess up TCPs RTT calculations) David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Ans to Re: [reboot error in target shell] Date: Thu, 7 Mar 2002 11:47:08 -0000 From: "Dave Korn" Organization: Lumber Cartel (tinlc) Members #2234-2237 (owing to browser refresh) Message-ID: References: <8HEh8.4112$eM.3813@sccrnsc02> "sung goh" wrote in message news:pPFh8.305$PC3.522854@news.bora.net... > ***** Target Shell ***** > > ->lkup "reboot" ; then > reboot 0x00xxxxxx > reboot_verify 0x00xxxxxx Wow. Most hexadecimal addresses only have letters going up as high as 'F'. You must have the little-known base-34 version of VxWorks. DaveK - -- moderator of alt.talk.rec.soc.biz.news.comp.humanities.meow.misc.moderated.meow Burn your ID card! http://www.optional-identity.org.uk/ Help support the campaign, copy this into your .sig! Proud Member of the Exclusive "I have been plonked by Davee because he thinks I'm interesting" List Member # Master of Many Meowing Minions Holder of the exhalted PF Chang's Crab Wonton Award for kook spankage above and beyond the call of hilarity. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: to give a float parameter to a function by shell ? Date: Thu, 7 Mar 2002 12:11:47 -0000 From: "Dave Korn" Organization: Lumber Cartel (tinlc) Members #2234-2237 (owing to browser refresh) Message-ID: References: <200236-17584-978979@foorum.com> <3C867F15.1040302@spamm.me.l8s.co.uk> "David Laight" wrote in message news:3C867F15.1040302@spamm.me.l8s.co.uk... > Charly wrote: > > > Hello again, > > > > I tried to do by SHELL > > > > ->getfloat(1.02) > > > > > > But the function "getfloat" sees 0.0 instead of > > 1.02. > > The function getinteger(5) works fine. > > > > Is there a trick to give a float to a function throught telnet? > > Thanks > > > IIRC the shell will treat a fp number as double. > Since it doesn't have the function prototype it will always > pass a double value anyway. > > Depending on the argument passing scheme used on your > architecture you might be able to fool things by > typing the integer form of the float number. > > This does get tricky - however I get the following: It's completely futile to attempt this under anything like the PPC EABI, which passes the first few arguments to any function in registers rather on the stack, and uses different registers for integer and fp arguments, alas. :( The only solution in those cases is to write your functions to take pointers to floats, or add wrappers for the ones you want to use from the shell; in Charly's example: - ->getfloat(1.02) we could add a wrapper to call getfloat void ptr_getfloat (double *x) { getfloat (*x) } and then say - -> dbl = 1.2 - -> ptr_getfloat (&dbl) DaveK - -- moderator of alt.talk.rec.soc.biz.news.comp.humanities.meow.misc.moderated.meow Burn your ID card! http://www.optional-identity.org.uk/ Help support the campaign, copy this into your .sig! Proud Member of the Exclusive "I have been plonked by Davee because he thinks I'm interesting" List Member # Master of Many Meowing Minions Holder of the exhalted PF Chang's Crab Wonton Award for kook spankage above and beyond the call of hilarity. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: to give a float parameter to a function by shell ? Date: Thu, 7 Mar 2002 13:16:44 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C8768AC.5080506@spamm.me.l8s.co.uk> References: <200236-17584-978979@foorum.com> <3C867F15.1040302@spamm.me.l8s.co.uk> Dave Korn wrote: > It's completely futile to attempt this under anything like the PPC EABI, > which passes the first few arguments to any function in registers rather on > the stack, and uses different registers for integer and fp arguments, alas. > :( Yes - now write printf() according to the single Unix standard (the one that allows you to specify the number of the argument in the format) David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: PCI memory space Date: Thu, 07 Mar 2002 14:18:51 +0000 From: Philip Macfarlane Organization: RAMiX Europe Ltd Message-ID: References: <2b0ae335.0203070425.4ca35b57@posting.google.com> On Thu, 07 Mar 2002 12:25:10 +0000, Ahn Jung Hoon wrote: > By default, it was written in MV2600.h #define CPU_PCI_MEM_SIZE > 0x01000000 /* 16 meg */ > > so, I modified it as following.. > #define CPU_PCI_MEM_SIZE 0x20000000 /* 256 meg */ If 0x01000000 is 16MB then 0x10000000 is 256 MB. I think? Cheers, Philip. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: PCI memory space Date: Thu, 7 Mar 2002 15:26:55 +0100 From: "Michael Lawnick" Organization: Buergernetz Dillingen Message-ID: References: <2b0ae335.0203070425.4ca35b57@posting.google.com> Reply-To: "Michael Lawnick" Sender: mlawnick@p5088fa7a.dip.t-dialin.net Hi, > Please.. > Can anybody let me understand in the easiest way what is problem. Your problem is, you mix up local address view and PCI address view ! When your BAR0 says 0x10000000, your CPU will have to access PCI_MEM2LOCAL(0x10000000). - -- Mit freundlichen Grüßen, Michael Lawnick ============================================== SOFTEC GmbH Tel +49-731-96600-0 Promenade 17 Fax +49-731-96600-23 D-89073 Ulm Michael Lawnick Germany lawnick@softec.de ============================================== "Ahn Jung Hoon" schrieb im Newsbeitrag news:2b0ae335.0203070425.4ca35b57@posting.google.com... > Hi, all > > I have a problem in accessing pci memory space > > Previously, > My work space is.. > > VxWorks version 5.4 > KERNEL: WIND version 2.5 > CPU: Motorola Unknown - MPC 750. Processor #0. > Memory Size: 0x10000000. BSP version 1.2/0. > WDB: Ready. > > well.. > I have PCI memory card, and it's size is 256MB.. > > By default, it was written in MV2600.h > #define CPU_PCI_MEM_SIZE 0x01000000 /* 16 meg */ > > so, I modified it as following.. > #define CPU_PCI_MEM_SIZE 0x20000000 /* 256 meg */ > > Then I met data access error as following.. > > ------------------------------------------------------- > -> pciHeaderShow(0, 0x10, 0) > vendor ID = 0x11b0 > device ID = 0x0200 > command register = 0x0002 > status register = 0x0000 > revision ID = 0x00 > class code = 0x05 > sub class code = 0x00 > programming interface = 0x00 > cache line = 0x00 > latency time = 0xf8 > header type = 0x00 > BIST = 0x00 > base address 0 = 0x10000000 > base address 1 = 0x00000000 > base address 2 = 0x00000000 > base address 3 = 0x00000000 > base address 4 = 0x00000000 > base address 5 = 0x00000000 > cardBus CIS pointer = 0x00000000 > sub system vendor ID = 0x4754 > sub system ID = 0x0005 > expansion ROM base address = 0x00000000 > interrupt line = 0x03 > interrupt pin = 0x00 > min Grant = 0x00 > max Latency = 0x00 > value = 0 = 0x0 > -> d 0x10000000 > 10000000: > data access > Exception current instruction address: 0x0015c070 > Machine Status Register: 0x0000b030 > Data Access Register: 0x10000000 > Condition Register: 0x48200080 > Data storage interrupt Register: 0x40000000 > > 1812e0 vxTaskEntry +60 : shell () > 177118 shell +18c: 177144 () > 177368 shell +3dc: execute () > 1774ec execute +d8 : yyparse () > 1a96ec yyparse +7a8: 1a7634 () > 1a77ac yystart +8f8: d () > shell restarted. > -------------------------------------------------------------- > > But When I modified it as following, I could success to display and modified > at PCI_BASE_ADDR(0x08000000).. > #define CPU_PCI_MEM_SIZE 0x10000000 /* 128 meg */ > > .. > > I think that only what I had to do is to modify CPU_PCI_MEM_SIZE > for memory access more than 16MB.. > > But.. Maybe, it seems to be incorrect.. > > Please.. > Can anybody let me understand in the easiest way what is problem. --------------------------- Newsgroups: comp.os.vxworks Subject: Spurious Vx Works errors during building Date: Thu, 7 Mar 2002 15:03:28 -0000 From: "KatMoore" Message-ID: <3c87813f$1@pull.gecm.com> Hi, I wonder can anyone help me with a problem which is causing me more than a few problems at the minute. I am building a downloadable project in Tornado II with vxWorks 5.4. In it I have set up four custom builds using different rule in order to build a final "vxWorks.st_rom.bin" image. The third rule runs the make command in the BSP directory in order to build the vxWorks.hex image but at the moment every time I run the rule the build fails with the following message 'C:\Tornado\target\lib\libPPC604gnuvx.a vxWorks.st.Z.o bootInit_st.o: In function `romStart': bootInit_st.o(.text+0xb6): undefined reference to `_binArrayEnd' bootInit_st.o(.text+0xba): undefined reference to `_binArrayEnd' make[1]: *** [vxWorks.st_rom] Error 0x1 make[1]: Leaving directory `C:\Tornado\target\config\rs60x' make: *** [Step_3] Error 0x2 Done.' Now the rule was working fine for many months now, but has started to play up this last 2 days. It is now happening so much that I am getting it every time I build this rule. The only way I can get past it is to do a BSP clean build and then do a BSP vxWorks build. The BSP in use is for a Radstone board and Tornado does not have any of the windriver cumulative patches installed. Any help would be greatly appreciated. Regards --------------------------- Newsgroups: comp.os.vxworks Subject: Re: PCI memory space Date: Thu, 07 Mar 2002 10:22:39 -0500 From: david lindauer Message-ID: <3C8785BF.B0B61D32@notifier-is.net> References: <2b0ae335.0203070425.4ca35b57@posting.google.com> *probably* the problem is the MMU setup in the BSP. It may not be mapping in the memory area you want to read from. David Ahn Jung Hoon wrote: > Hi, all > > I have a problem in accessing pci memory space > > Previously, > My work space is.. > > VxWorks version 5.4 > KERNEL: WIND version 2.5 > CPU: Motorola Unknown - MPC 750. Processor #0. > Memory Size: 0x10000000. BSP version 1.2/0. > WDB: Ready. > > well.. > I have PCI memory card, and it's size is 256MB.. > > By default, it was written in MV2600.h > #define CPU_PCI_MEM_SIZE 0x01000000 /* 16 meg */ > > so, I modified it as following.. > #define CPU_PCI_MEM_SIZE 0x20000000 /* 256 meg */ > > Then I met data access error as following.. > > ------------------------------------------------------- > -> pciHeaderShow(0, 0x10, 0) > vendor ID = 0x11b0 > device ID = 0x0200 > command register = 0x0002 > status register = 0x0000 > revision ID = 0x00 > class code = 0x05 > sub class code = 0x00 > programming interface = 0x00 > cache line = 0x00 > latency time = 0xf8 > header type = 0x00 > BIST = 0x00 > base address 0 = 0x10000000 > base address 1 = 0x00000000 > base address 2 = 0x00000000 > base address 3 = 0x00000000 > base address 4 = 0x00000000 > base address 5 = 0x00000000 > cardBus CIS pointer = 0x00000000 > sub system vendor ID = 0x4754 > sub system ID = 0x0005 > expansion ROM base address = 0x00000000 > interrupt line = 0x03 > interrupt pin = 0x00 > min Grant = 0x00 > max Latency = 0x00 > value = 0 = 0x0 > -> d 0x10000000 > 10000000: > data access > Exception current instruction address: 0x0015c070 > Machine Status Register: 0x0000b030 > Data Access Register: 0x10000000 > Condition Register: 0x48200080 > Data storage interrupt Register: 0x40000000 > > 1812e0 vxTaskEntry +60 : shell () > 177118 shell +18c: 177144 () > 177368 shell +3dc: execute () > 1774ec execute +d8 : yyparse () > 1a96ec yyparse +7a8: 1a7634 () > 1a77ac yystart +8f8: d () > shell restarted. > -------------------------------------------------------------- > > But When I modified it as following, I could success to display and modified > at PCI_BASE_ADDR(0x08000000).. > #define CPU_PCI_MEM_SIZE 0x10000000 /* 128 meg */ > > .. > > I think that only what I had to do is to modify CPU_PCI_MEM_SIZE > for memory access more than 16MB.. > > But.. Maybe, it seems to be incorrect.. > > Please.. > Can anybody let me understand in the easiest way what is problem. --------------------------- Newsgroups: comp.os.vxworks Subject: Can't mount NFS directories Date: 7 Mar 2002 07:40:35 -0800 From: agraham@openglobe.net (Aaron Graham) Organization: http://groups.google.com/ Message-ID: <95ebbe31.0203070740.69fc70ff@posting.google.com> Can anyone here give me advice about how I should go about mounting target NFS directories on my host machine? I have the NFS server configured into the application, and while it's running, I see 5 tNfsd* tasks running, as well as tMountd, and tNetTask, and they're all PENDing. When I try to mount one of the target directories on my Linux machine (RedHat, kernel 2.4.7) it gives me an error "mount failed, reason given by server: No such file or directory" dispite the many, many directories I've tried and all combinations of slashes at the beginning and the end of directory names. The linux machine currently has a few other NFS mounts so I assume there is nothing wrong with the client software. I am running Tornado 2.0.2, but I was running Tornado 2.1.0 a few months ago, and it didn't work with that either. I was going to chalk this problem up to YAVA (yet another vxworks atrocity), but it looks like other people on this newsgroup have been using the NFS server. I remember having to downgrade my Linux wu-ftpd server about 4-5 *years* in order to get the vxWorks client software to work with it, which tells me a lot about what I'm working with here. It wouldn't surprise me if I also needed to downgrade my NFS client software, but I'm not going to hassle with that unless I have some sort of confirmation that it might fix the problem. Any suggestions? Aaron --------------------------- Newsgroups: comp.os.vxworks Subject: Re: [reboot error in target shell] Date: 07 Mar 2002 10:52:29 -0500 From: Bill Pringlemeir Organization: Bell Sympatico Message-ID: References: Sender: bpringlemeir@DeadDuck sung> I am new to Vxworks. I typed reboot in target shell, sung> then error messages come out and then started beeping. Debugging Rule #1, Divide and conquer. Can you try sysToMonitor() directly? Does it work? sysToMonitor() is usually in sysLib.c... [is it somewhere else for boot roms?]. Please post the code to sysToMonitor() if it doesn't work. Otherwise, post the output of `ifShow'. Regards, Bill Pringlemeir. - -- PLO class struggle terrorist cracking Albanian spy Peking FSF Rule Psix arrangements Delta Force KGB counter-intelligence Ortega radar vxWorks FAQ, "http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html" --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Do I need semaphore protection for multiple tasks accessing same socket Date: 07 Mar 2002 11:02:03 -0500 From: Bill Pringlemeir Organization: Bell Sympatico Message-ID: References: <68f5c46.0203061308.41e9cdec@posting.google.com> <3C86A76B.4010607@spamm.me.l8s.co.uk> Sender: bpringlemeir@DeadDuck >>>>> "Hwa" == Hwa Jin Bae writes: Hwa> I personally would not use multiple tasks reading from one Hwa> socket. I am not sure why doing so would be useful. I might be Hwa> lacking in my imagination. "http://www.w3.org/Library/User/Architecture/Threads.html" Maybe we don't think so either, but other people might... Well, at least if you are trying to shoe-horn *nix code with thread use in to vxWorks. Unfortunately K&R allowed portable code and not portable programs... and hence was born the RTOS industry. Regards, Bill Pringlemeir. - -- assassination FSF colonel PLO Treasury terrorist Legion of Doom NSA Panama munitions genetic Semtex cracking Waco, Texas cryptographic vxWorks FAQ, "http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html" --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Do I need semaphore protection for multiple tasks accessing same socket Date: Thu, 7 Mar 2002 08:06:51 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <68f5c46.0203061308.41e9cdec@posting.google.com> <3C86A76B.4010607@spamm.me.l8s.co.uk> <3C8758BE.7080106@spamm.me.l8s.co.uk> David, the socket descriptors behave correctly as I said before. Why don't you try it? Read and Write that are pending should return when socket is closed. Subsequent write and read should return error as well on the socket. In terms of general I/O system race conditions, I was not responsible for those. :-) - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Tornado 2.0.2 With gcc 2.96 Date: 07 Mar 2002 11:23:40 -0500 From: Bill Pringlemeir Organization: Bell Sympatico Message-ID: References: <9ec53d11.0203042356.73d7b673@posting.google.com> Sender: bpringlemeir@DeadDuck >> Yes 2.96 is somthing you can get from WindRiver , but it have >> problems that I want to see if someone solve. Mario> i ve got it from vxWorks too (from my sales rep, after i asked Mario> for). But i didnt installed it, since it was just avail for Mario> x86 and i need the same compiler feastures for multiple Mario> targets. What problems did you experience with 2.96 Well, I am using gcc 2.96 with the T2.1.1 distribution (on an ARM 710A). Not only do I appear to be a `trail blazer', but I will actually share the information I have as oppose to waiting for someone else :-P [that is a childish jibe] Anyways, it appears that having a better C++ compiler can be a draw back, as Dave Korn explains to me in this thread, "http://groups.google.com/groups?th=17097eddd0275f62" The entire thread is probably relevant to this conversation [it is probably still fresh on your news server!]. Anyways, there are several bugs in the compiler. Some are in the 2.7 compiler, but might not be exposed as readily. They include code to fix the stack values in the compiler and a patched cygwin dll. Somebody asked for these via email. I don't think this is `fair' to me as it would not be nice for me to do to this to WRS, even though it is not nice of them to make these fixes generally available. The stack fix can be done with mingw tools [or cross tools built for an x86 pe target, but you are probably on NT to begin with...]. I don't know what has been distributed with a fix to the cygwin DLL. Do I have a right to re-distribute this? From other conversation, it appears that this is contention for people using the cygwin tools. I don't use the cygwin tools. If you did, this would introduce more problems no doubt. The 2.96 compiler is much better in my opinion; generating better code and allowing more current C++ constructs. I have been waiting for such a release for some time. Rather ironic that most *nix machines will be going to 3.xx soon. I would be interested in other specific problems and not vague allusions. Regards, Bill Pringlemeir. - -- BLOWN UP BY FIVE AIRPLANES. ENGAGING VALIUM NOZZLE. U-828. vxWorks FAQ, "http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html" --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Do I need semaphore protection for multiple tasks accessing same socket Date: Thu, 7 Mar 2002 08:27:36 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <68f5c46.0203061308.41e9cdec@posting.google.com> <3C86A76B.4010607@spamm.me.l8s.co.uk> It makes somewhat sense for Unix to do something like that. But not for VxWorks. If you are porting code it might be better to rewrite that part. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: May I ask you a question of vxworks and 3c90x network card? Date: Thu, 7 Mar 2002 17:53:01 +0100 From: "Werner Schiendl" Message-ID: <3c879af1$1@brateggebdc5.br-automation.co.at> References: <200203060752.XAA25690@csg.lbl.gov> <3C867989.DC5BAC57@rti.com> Hi, it is often sufficient to add your cards device and vendor IDs to the PCI detection code. This code is part of the BSP and named sysEl3c90xEnd.c in case of the 3com board. hth Werner "Lori Fraleigh" wrote in message news:3C867989.DC5BAC57@rti.com... > > If you have a 3Com 3c90x network card, you need to enable > > INCLUDE_EL_3C90X_END > > and use elPci as your boot device. > > I found an interesting problem a few weeks ago. This driver > works with 3C90x cards that have a Lucent chip on them. It > does not work with cards that have a Broadcom chip on them. > I specifically ran into problems with the 3C905C-TX-M cards > which 3Com is now producing. > > Regards, > Lori > > > > > > ------=_NextPart_000_01EA_01C1C527.0564C0D0 > > Content-Type: text/plain; > > charset="gb2312" > > Content-Transfer-Encoding: quoted-printable > > > > Dear: > > Sorry to bother you! > > By chance,I found from the internet that you maybe have used = > > 3c90x series network card in the platform of vxworks,I want to know is = > > there any existing driver of this series network card for vxworks. > > Thank you in advance! > > yours sincerely: > > Mike zhou > > -- > Lori Fraleigh Director of Engineering > Real-Time Innovations, Inc. http://www.rti.com > Phone: 408-734-4200 x121 Fax: 408-734-5009 --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Ans to Re: [reboot error in target shell] Date: Thu, 7 Mar 2002 18:00:22 +0100 From: "Werner Schiendl" Message-ID: <3c879caa$1@brateggebdc5.br-automation.co.at> References: <8HEh8.4112$eM.3813@sccrnsc02> Hi, VxWorks 5.4 for x86 platform uses the sysWarmType global variable to determine which kind of reboot should be executed. AFAIK default is floppy disk, so maybe somthing is wrong with that. In the shell, look at the value of this variable. Just type sysWarmType and VxWorks will tell you the current value. Values for pc486 and pcPentium BSPs are (not complete list): 0 ... trash global descriptor table, does "real" reboot 1 ... reload from floppy disk 2 ... reload from ATA disk To do a 'real' reboot on pcPentium target, do: sysWarmType=0; reboot; hth Werner "sung goh" wrote in message news:pPFh8.305$PC3.522854@news.bora.net... > ***** Target Shell ***** > > ->lkup "reboot" ; then > reboot 0x00xxxxxx > reboot_verify 0x00xxxxxx > .. > .. > .. > rebootHookAdd 0x00xxxxxx > > > -> reboot > General Protection Fault > Program Counter : 0x0005de06 > Status Register : 0x00250057 > Error Code : 0x00000000 > > ==> beeping and stuck here > > > > **** Bootrom display **** > brief configurations > > CPU: PC Pentium > Version: 5.4.2 > BSP version : 1.2/0 > > boot device : fei > filename : vxWorks.st > .... > ... > . > > Thanks. > > > "Gary M" wrote in message > news:8HEh8.4112$eM.3813@sccrnsc02... > > What is your target? > > What are the error messages? > > reboot() calls sysToMonitor(), which is part of the BSP (sysLib.c). Check > > that out. > > Can you display the boot Rom/flash device from the target shell? > > > > "sung goh" wrote in message > > news:APCh8.297$PC3.496772@news.bora.net... > > > I am new to Vxworks. > > > > > > [Problem] > > > I typed reboot in target shell, then error messages come out and then > > > started beeping. > > > > > > [What I did before the error messages] > > > I don't see anything wrong in making bootrom disk and vxworks image > > > transfer. > > > I completed booting from a disk and downloading vxworks image from host > to > > > target, then tried to reboot typing "reboot" > > > > > > Is there a way to solve this? > > > > > > Modify bootconfig.c? rominit.s? any other ideas? > > > > > > > > > > > > > > > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: I want to log the packet between IP and mux. Date: Thu, 7 Mar 2002 09:11:39 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <2b9429fcc4035f6c6ac8066e02008a99.75083@mygate.mailgate.org> I think it is possible to shim between IP and mux. I read muxLib and it looks like the pointer to stack routines are provided as a binding (muxBind). It should be possible to insert shimmy routines and forward to bound destinations. Looking at muxShow output it seems this is just forwarding stuff. Probably a little tricky to do, but doable. I will leave it to be done by smarter and younger crowd. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Can't mount NFS directories Date: Thu, 7 Mar 2002 09:37:28 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <95ebbe31.0203070740.69fc70ff@posting.google.com> I don't envy the task of having to debug this situation. What I would do to debug: 1. nfsExportShow("localhost") to see if VxWorks is exporting correct mount points 2. showmount -e from Linux to see if VxWorks is exporting stuff 3. get the sniffer out and capture the packets and look at the network trace 4. set a breakpoint in mount daemon task in VxWorks and single step through (assembly code) 5. pray to the God of VxWorks NFS server - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: END Driver performance Date: Thu, 7 Mar 2002 10:37:03 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <57c7939b.0203070444.5f1ac389@posting.google.com> <3C87637C.5060708@spamm.me.l8s.co.uk> Transferring 100K over TCP is not conclusive performance measurement. Especially if you are setting up connection and tearing down each time. Use something like TTCP to transfer a large amount of data to see what the problem might be. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Can't mount NFS directories Date: 7 Mar 2002 10:38:49 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203071038.1e98956c@posting.google.com> References: <95ebbe31.0203070740.69fc70ff@posting.google.com> Hello, There's no reason why Linux NFS servers should not work - I've mounted them OK from VxWorks. There are some general rules though for NFS: 1) Make sure that the file system is being exported to your target (esp. on Linux, the exports file tends to restrict to specific machines, or subnets). 2) Make sure that you have the user ID and group ID set on the target to match the UID/GID settings on the server. See nfsAuthUnixSet() and/or nfsAuthUnixPrompt(). These can also be set using parameters when building the kernel image (NFS_USER and NFS_GROUP IIRC). 3) Make sure that your target knows the server by name (see hostAdd() to add the host name/address association if necessary). 4) Issue the mount command, e.g. nfsMount "host", "/hda1", "/host/hda1" That will mount /hda1 on host as /host/hda1 on the target. HTH, John... agraham@openglobe.net (Aaron Graham) wrote in message news:<95ebbe31.0203070740.69fc70ff@posting.google.com>... > Can anyone here give me advice about how I should go about mounting > target NFS directories on my host machine? I have the NFS server > configured into the application, and while it's running, I see 5 > tNfsd* tasks running, as well as tMountd, and tNetTask, and they're > all PENDing. > > When I try to mount one of the target directories on my Linux machine > (RedHat, kernel 2.4.7) it gives me an error "mount failed, reason > given by server: No such file or directory" dispite the many, many > directories I've tried and all combinations of slashes at the > beginning and the end of directory names. > > The linux machine currently has a few other NFS mounts so I assume > there is nothing wrong with the client software. I am running Tornado > 2.0.2, but I was running Tornado 2.1.0 a few months ago, and it didn't > work with that either. I was going to chalk this problem up to YAVA > (yet another vxworks atrocity), but it looks like other people on this > newsgroup have been using the NFS server. > > I remember having to downgrade my Linux wu-ftpd server about 4-5 > *years* in order to get the vxWorks client software to work with it, > which tells me a lot about what I'm working with here. It wouldn't > surprise me if I also needed to downgrade my NFS client software, but > I'm not going to hassle with that unless I have some sort of > confirmation that it might fix the problem. > > Any suggestions? > Aaron --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Ans to Re: [reboot error in target shell] Date: Thu, 7 Mar 2002 10:45:39 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <8HEh8.4112$eM.3813@sccrnsc02> Typically, when you get errors like that here are steps to take: 1. Look at the PC (in your case 0x5de06) to see what the code is. Disassemble it via "l". It should tell you where the code is bombing out. 2. Look at the caller of the PC. Do "ti" and retrieve return address and disassemble. Or do "tt". 3. Follow all the disassembled code to figure out what's going on. The problems I have seen with reboot: 1. reboot calls rebootHooks before calling sysToMonitor. If any of the rebootHooks are bad then you can run into trouble. Most common rebootHooks added by the system are the routines to reset the network interfaces. Frequently this causes problems if resetting is not done properly. 2. Related to above, reset routines in network drivers should properly quiet down relevant hardware, including PHY, etc. 3. sysToMonitor is typically implemented as a jump to bootrom. If possible, perform reset instruction instead (if your CPU allows it). Or do something else to reset at HW level. Sometimes just jumping to bootrom does not work properly if all hardware is not reset correctly. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: VGA Driver using the WindML Date: 7 Mar 2002 10:46:30 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203071046.46127df2@posting.google.com> References: <43191605.0203062308.206d66f8@posting.google.com> Hello, aephraty@rugged.com (Avi Ephraty) wrote in message news:<43191605.0203062308.206d66f8@posting.google.com>... > Is there someone who wrote a VGA driver using WindML (preferbly using > the component Permedia3 of 3DLABS)? > > I wonder how complicated is this task ?(How much time it should take?) If you have a rough idea of what you're doing with a video driver, you can port an xfree86 driver to WindML's driver format in a few days (I've done two now that way). That should get you the basic chip setup and some of the accelerations too in most cases. > I also want to integrate it with Video Overlay. I wonder how > complicated this task is? This one I don't know, the drivers I've done have been for more standard chipsets. HTH, John... --------------------------- Newsgroups: comp.os.vxworks Subject: Re: I want to log the packet between IP and mux. Date: Thu, 7 Mar 2002 11:35:32 -0800 From: "Dan Gold" Organization: Mailgate.ORG Server - http://www.Mailgate.ORG Message-ID: References: <2b9429fcc4035f6c6ac8066e02008a99.75083@mygate.mailgate.org> Sender: gold@ensemble.com "Hwa Jin Bae" wrote in message news:u8f7rs8416v156@corp.supernews.com... > I think it is possible to shim between IP and mux. I read muxLib and it > looks like the pointer to stack routines are provided as a binding > (muxBind). It should be possible to insert shimmy routines and forward to > bound destinations. Looking at muxShow output it seems this is just > forwarding stuff. > > Probably a little tricky to do, but doable. I will leave it to be done by > smarter and younger crowd. If it makes you feel any better, as long as you're not running DHCP on the interface, you can still use etherInputHook() and vxSniff.c :-) Although (to add some semblance of content) the correct way is to add bind a SNARF protocol to the Mux layer. hth, Dan Gold gold@ensemble.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Initialize multiple ethernet interface after boot vxworks? Date: Thu, 7 Mar 2002 11:44:06 -0800 From: "Dan Gold" Organization: Mailgate.ORG Server - http://www.Mailgate.ORG Message-ID: References: Sender: gold@ensemble.com "Choo Joung-hoon" wrote in message news:ca925cc313807aeb529ea4a31865499b.75083@mygate.mailgate.org... > "Dan Gold" wrote in message > news:a63dp0$pvr$3@newsreader.mailgate.org... > So, I make a entry in configNet.h. So, muxDev(Load, Start) was called > when boot. > Only [ muxIoctl, ipAttach, usrNetIfAttach ] is called from my function. > But the Situation is not good.(the same result) > > > Did you look at the RxBDs to see if they're full ? Is it possible (due to > > an incorrect load string) that you're not generating any interrupts, thus no > > one is taking the packets out of the driver ? Did you look at FCCE to see > > if any interrupts are pending ? > > No, Rx operation in end driver is good, interrupt is surviced. RxBD is > correct. > Interrupts are not pending. Are you sure your parameter RAM is setup correctly ? Does your FCC driver have the vxWorks bug where it only supports 1 FCC ? Look in the parameter RAM at the riptr/tiptr for each FCC. They should be different. If they are the same, your driver has the bug. Do you have source to the driver ? Can anyone shed light on the status of the bug ? Can you get a fix ? Is it in a current release/BSP ? If the RxBDs look ok, have you dumped a buffer address associated with a valid RxBD and looked at the data ? If you're on a network with other machines, and your i/f isn't transmitting, you should see broadcast ARP requests in the buffers. If you don't, your data is not correct and IP may be dropping the packet. Try {icmp, udp, tcp}statShow() and see if they see anything. Try pinging your board from a valid host and see what the RxBDs look like. Can you transmit ? If you initiate a ping(), the interface should send out an arp request. Can you look at the network with a sniffer and see if it goes out ? Do other machines see your MAC address (due to your ARP request) ? hth, Dan Gold gold@ensemble.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Can't mount NFS directories Date: Thu, 7 Mar 2002 21:49:17 GMT From: Craig Johnston Organization: The Boeing Company Message-ID: <3C87E05D.AE966178@boeing.com> References: <95ebbe31.0203070740.69fc70ff@posting.google.com> Sender: nntp@news.boeing.com (Boeing NNTP News Access) Aaron, One other thing to look at. If you are exporting a DosFs2 file system, you cannot run 'chkdsk()' on the disk after you export the filesystem. If you do, it messes something up and you will not be able to mount the filesystem on your client. I learned this the hard way. One way it bites you, is if you have the DosFs2 partition setup to automatically run chkdsk when it is first accessed, but you exported the FS prior to the access. Just a thought. Aaron Graham wrote: > > Can anyone here give me advice about how I should go about mounting > target NFS directories on my host machine? I have the NFS server > configured into the application, and while it's running, I see 5 > tNfsd* tasks running, as well as tMountd, and tNetTask, and they're > all PENDing. > > When I try to mount one of the target directories on my Linux machine > (RedHat, kernel 2.4.7) it gives me an error "mount failed, reason > given by server: No such file or directory" dispite the many, many > directories I've tried and all combinations of slashes at the > beginning and the end of directory names. > > The linux machine currently has a few other NFS mounts so I assume > there is nothing wrong with the client software. I am running Tornado > 2.0.2, but I was running Tornado 2.1.0 a few months ago, and it didn't > work with that either. I was going to chalk this problem up to YAVA > (yet another vxworks atrocity), but it looks like other people on this > newsgroup have been using the NFS server. > > I remember having to downgrade my Linux wu-ftpd server about 4-5 > *years* in order to get the vxWorks client software to work with it, > which tells me a lot about what I'm working with here. It wouldn't > surprise me if I also needed to downgrade my NFS client software, but > I'm not going to hassle with that unless I have some sort of > confirmation that it might fix the problem. > > Any suggestions? > Aaron - -- Craig Johnston Did you know you can't steer a boat that isn't moving? Just like a life. -- Paul Lutus --------------------------- Newsgroups: comp.os.vxworks Subject: Re: a tool that calculates the number of code line in a projet? Date: 7 Mar 2002 22:46:00 GMT From: Denis Perelyubskiy Message-ID: References: <200236-17519-282492@foorum.com> * Charly [03-Wed-02 08:51 -0800]: > > Hello, > I am looking for a free utility able to calculate the number of code lines in a > C project. Able to see the /*xxxx*/, //, blank lines. you probably should mention an OS when you ask things like this ... anyway, if its windows, i jsut saw something here: http://www.analogx.com/contents/download/program/kloc.htm though, I dont know how well it works, whether it ignores your comments and whatnot. try it... denis - -- if you want to reply by mail, please tweak my address in a reasonable way. sorry for the inconvenience. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: ULIP on non-neworked w2k station Date: Thu, 7 Mar 2002 17:54:19 -0500 From: "Mark Richards" Organization: AT&T Canada IES Message-ID: References: After seeing several related questions in the group and in the FAQ, let me rephrase my question this way: - - Is it expected that the network tutorial for T2 (chapter 4 of Getting Started guide) and the instructions in A.3 work with no change on a computer that only has the ULIP virtual adapter ? "Mark Richards" wrote in message news:MeKg8.1899$a04.10904@tor-nn1.netcom.ca... > Hello, > > I'm trying to go through the networking demo in Tornado 2.0.2 from a > Windows 2000 pro system, but I am running into TCP/IP configuration > problems, probably because the ULIP virtual adapter is the only network > card on this system. > > These are the symptoms of the bad configuration: > - ping 90.0.0.254 successfully from cmd prompt > - ping "90.0.0.254" successfully from the two vxsim instances > - ping 90.0.0.1 or 90.0.0.2 fails from cmd prompt > - ping "90.0.0.2" or "90.0.0.1" fails from the vxsim instances > - ping "127.0.0.1" fails from the vxsim instances > > I assume part of this is routing. I enabled IP routing in w2k through > the registry as described in w2k KB, checked the routes with route, and > even added the routes manually, but pings to anything but ULIP adapter > fail. > > Perhaps relevent: the local area network that appears in net&dial-up > once ULIP is installed is disabled, and fails with "failed to connect" > when I try to enable it (but still the pings to the adapter work). > > It is possible that when I installed w2k pro I disabled those services > that would not be needed in a non-networked workstation. > > This is probably a simple w2k networking configuration problem, but I'm > no expert in that :-}. If anyone has the same setup or knows what the > problem is, please help ! > > Thanks, > Mark > > > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: END Driver performance Date: Thu, 7 Mar 2002 23:17:13 +0200 From: "Leonid Rosenboim" Organization: Verio Message-ID: References: <57c7939b.0203070444.5f1ac389@posting.google.com> Fro the sound of it, you wont be getting any brilliant performance out of this one because "data is copied from the hardware into my preallocated buffer inside the ISR" This means all packet data needs to be read from the hardware and written to memory in SOFTWARE. This is akin to the imfamous ENE driver for the NE2000 compatible cards, they eat up so much CPU doing these transfers from 8-nit I/O port, leaving little CPU headroom for doing much else. If your hardware folks are subborn, the least you can do is write this copy loop as effeciently as you possibly can, measuring this effeciency with a logic analyzer. Leonid "Ameya" wrote in message news:57c7939b.0203070444.5f1ac389@posting.google.com... > hi, > my END driver for 802.11 based wireless card on x86 platform does not > give me the expected performance. I dont use the netjobadd, instead a > task is spawned (priority 51) and it takes a semaphore. The data is > copied from the hardware into my preallocated buffer inside the ISR. > All the work regarding getting Mblks from the pool (I use NetTupleGet) > and sending it to the upper layers is > done in this task. The semaphore is given inside the ISR on a RX > interrupt. I have a watchdog timer that runs every 100 ticks (where > 1000 ticks = 1 Second). I use this timer to handle missing interrupts. > > When i ping with 2048 bytes, the avg rtt is 8 ms which translates to 4 > Mbps throughput roughly. > If i try to transfer 100 Kb data over TCP sockets, it takes a long > time (in seconds). > I tried changing the Send and Recieve socket buffer sizes but the > performance is still the same or worser. > > Any ideas? > > Thanks > Ameya --------------------------- Newsgroups: comp.os.vxworks Subject: Re: I want to log the packet between IP and mux. Date: Thu, 7 Mar 2002 15:28:34 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <2b9429fcc4035f6c6ac8066e02008a99.75083@mygate.mailgate.org> I wrote vxsniff.c long time ago. Does it still work with SENS stack? I never tried to run it in SENS. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Is it possible to change the priortiy of windsh Date: Fri, 08 Mar 2002 00:08:28 GMT From: "Matt Schuckmann" Message-ID: <0iTh8.7396$J3.1346@nwrddc01.gnilink.net> References: <%n7h8.2999$5o.2232656@newsr2.u-net.net> <3C850A5B.3040106@spamm.me.l8s.co.uk> I tried his example but it doesn't work, I get a mesage "A host function cannot be used as an argument" Any other ideas? Thanks Matt S. "Michael Lawnick" wrote in message news:a67e76$a3o$1@snoopy.bndlg.de... > Hi Matt, > > just read a nd do how David said: > on all critical commands use > -> sp ,,,..... > This seems the only way to get around your problems. All commands entered > without 'sp' will be executed at the same priority as the shell you invoke > it from. > > -- > Mit freundlichen Grüßen, > Michael Lawnick > ============================================== > SOFTEC GmbH Tel +49-731-96600-0 > Promenade 17 Fax +49-731-96600-23 > D-89073 Ulm Michael Lawnick > Germany lawnick@softec.de > ============================================== > > "Matt Schuckmann" schrieb im Newsbeitrag > news:A2wh8.2902$J3.1067@nwrddc01.gnilink.net... > > All good ideas guys but want if I want to use the ld() shell command to > > dynamically load a module. > > > > The behaviour I've observed is that when I give the shell a command, like > > ld() or even one of my own functions, it spawns a very high proiorty task, > > priorty 3 I think and it's usually called t01, t02, t03, etc) to run the > > function. Now if it's one of my own functions I can explicitly change the > > priorty right off and I'm good. But what I can't figure out is how to make > > the ld(), or other shell commands, to run at a lower priority so that they > > don't preempt my real time task. > > > > Any ideas would be great > > Thanks > > Matt Schuckmann > > > > matthew_schuckmann@amat.com > > > > "David Laight" wrote in message > > news:3C850A5B.3040106@spamm.me.l8s.co.uk... > > > >>Does anybody know if there is a way to change the priorty at which > > > >>function and commands run from windsh run at? > > > >> > > > >>The problem I'm having is that I've got a significant part of my code > > > >>loaded and running and I'm dynamically loading and unloading another > > > > > > >>part of the code to make it easier and quicker to debug it. > > > >>When I use the ld() command to dynamicaly load and unload the > > > >>module I'm debugging the loader runs in the windsh task and that > > > >>task appears to run at such a high priority that it prevents my > > > >>hard real time task from running for long enough that I end up > > > > > > >>having to reset my hardware after loading or unloading my test module. > > > > > > > > > Just ask the shell to spawn a task to do the work.... > > > > > > sp ld,"filename" > > > > > > will run at a reasonable priority > > > > > > David > > > > > > > > > > > > > > > --------------------------- Newsgroups: comp.os.vxworks Subject: outp with gcc????? Date: Fri, 08 Mar 2002 00:57:09 GMT From: "Nejhdeh Ghevondian" Organization: Integrated Spectronics Message-ID: Reply-To: "Nejhdeh Ghevondian" Dear anyone, I have just purchased a card to be used with my ppc card that needs to write to ports in vxWorks. My question is how do i implement outp and inp in gcc format. Note: windows has equivilant of _outp and _inp (using conio.h) for accessing ports given the address. Thanks Nejhdeh --------------------------- Newsgroups: comp.os.vxworks Subject: Re: I want to log the packet between IP and mux. Date: Thu, 7 Mar 2002 17:11:10 -0800 From: "Dan Gold" Organization: Mailgate.ORG Server - http://www.Mailgate.ORG Message-ID: References: <2b9429fcc4035f6c6ac8066e02008a99.75083@mygate.mailgate.org> Sender: gold@ensemble.com "Hwa Jin Bae" wrote in message news:u8ftv064k3000d@corp.supernews.com... > I wrote vxsniff.c long time ago. Does it still work with SENS stack? I > never tried to run it in SENS. Since it uses EtherInputHookAdd(), it works. The MUX thinks it's passing it up to IP but it really goes to the input hook. Of course WRS says stuff about the input hooks going away, but under SENS and T101, it will work. Dan Gold gold@ensemble.com --------------------------- Newsgroups: comp.os.vxworks Subject: 5 dollar emails Date: Fri, 08 Mar 2002 01:33:53 GMT From: stmnps@comcast.net Organization: Giganews.Com - Premium News Outsourcing Message-ID: <5yUh8.111278$pN4.6449262@bin8.nnrp.aus1.giganews.com> Please check out 5 dollars an email...I earned over $850.00 last month simply by using this program. This company is free to join. You can get paid and earn prizes for surfing,reading email,t aking surveys, chatting and playing games. To read all about the program,you must click on the link and sign up. there are no obligations Just click on the link on the mail and it will take you to the sign-up page in a new window. Remember to refer all your friends, as this is how you will make more money. GOTO http://www.5DollarEmails.com/cgi-bin/signup.cgi?r=prowler00x@comcast.net --------------------------- Newsgroups: comp.os.vxworks Subject: Multihoming Date: Thu, 7 Mar 2002 18:59:48 -0800 From: "Gurmeet Goindi" Organization: Nortel Message-ID: Greetings, I need to support two ip addresses on one NIC, ne pointers how to do that. Thanks in Advance, Gurmeet --------------------------- Newsgroups: comp.os.vxworks Subject: BSD Ethernet Driver Date: 7 Mar 2002 21:26:26 -0800 From: vittala@hotmail.com (Vittal) Organization: http://groups.google.com/ Message-ID: <6847c39a.0203072126.4cc28aaf@posting.google.com> Hi All, I am quite familiar with VxWorks. But, I am new to network drivers. I have a BSD 4.3 Network driver which works with very less throughput. So, I am trying to change it to use DMA. Is there any template which can throw some light on this? Any document, or links for this will be highly appreciated. Thanks in Advnace, Vittal. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Multihoming Date: Thu, 7 Mar 2002 21:54:23 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: ifAddrAdd - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: BSD Ethernet Driver Date: Thu, 7 Mar 2002 21:54:59 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <6847c39a.0203072126.4cc28aaf@posting.google.com> Tornado comes with a sample driver for LANCE which shows how to use DMA buffer loaning. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: [Q] about Mutual-Exclusion Semaphore Date: 7 Mar 2002 22:17:54 -0800 From: belliny@soback.kornet.net (belliny, Mint~*) Organization: http://groups.google.com/ Message-ID: <6fb8119a.0203072217.f24ce32@posting.google.com> below is typical mutual-exclusion semaphore example. semaphore's purpose is to protect the shared resource or something else/ with semMLib, it can be taken more than once by the task that owns it before finally being released. then, how can i control the access to resource? as below, both funcA and funcB can access same resource at the same time. Please let me know exactly what i knew wrong... thanks in advance... SEM_ID semM; semM = semMCreate(...); funcA() { semTake(semM, WAIT_FOREVER); ... funcB(); ... SemGive(semM); } funcB() { semTake(semM, WAIT_FOREVER); ... semGive(semM); } - -> init 0: init(void) 1: ios::init(streambuf *, ostream *) 2: filebuf::init(void) Choose the number of the symbol to use: 0 value = 84797920 = 0x50de9e0 - -> funcA funcA : got mutual-exclusion semaphore funcB : got mutual-exclusion semaphore funcB : Give mutual-exclusion semaphore funcA : Give mutual-exclusion semaphore value = 40 = 0x28 = '(' - -> --------------------------- Newsgroups: comp.os.vxworks Subject: Re: where has some VxWorks example program? Date: 7 Mar 2002 22:24:40 -0800 From: alimohd@logiceastern.com (Ali) Organization: http://groups.google.com/ Message-ID: References: hi lily You can find all the vxworks rel;ated example programs at following website and it will teach u whole vxworks i suppose... http://www.rt.db.erau.edu/experiments/vx/toc/TableOfContents.html do write to me if you have any querry regards ali q2319c@email.mot.com (Lily) wrote in message news:... > Hi all, > > Does anybody know where has some VxWorks example program? > Thanks in advance. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Printing 64bit values Date: Thu, 7 Mar 2002 09:46:02 +0100 From: "Mario Semo" Organization: Nextra Telekom GmbH Message-ID: References: <900e9637.0203060746.2d1c1bda@posting.google.com> Hello, if you have MS VC++ 6.0 too install the CRT sources from the CD and look into xtoa() implementation. this function converts a 64bit integer into an ascii string. it was an easy job for me to make this compileable for vxworks and added it to my projects. - -- regards, Mario Semo. http://www.kirchnersoft.com Goran wrote in message news:900e9637.0203060746.2d1c1bda@posting.google.com... > Hi, > > I am trying to print 64bit values using printf function. > =========================== > #include > > void myprint() > { > unsigned long long var1, var2; > > printf("sizeof unsigned long long = %d\n", sizeof(var1)); > > var1 = 4294967290ULL; /* A value less than ( (2 power 32) -1 */ > printf("var1 = %llu\n", var1); > > var1 = 42949672960ULL; /* A value greater than ( (2 power 32) */ > printf("var2 = %llu\n", var2); > > > } > ============================ > I am using Tornado 2.0 and have tried using a "simpc" based and > "pcPentium" based BSPs. The libraries used were > > simpc -> C:\Tornado\host\x86-win32\lib\gcc-lib\i386-pc-mingw32\egcs-2.90.29 > \libgcc.a > > pcPentium -> C:\Tornado\host\x86-win32\lib\gcc-lib\i386-wrs-vxworks\cygnus-2.7.2-960126\l ibgcc.a > > But, I am not getting correct result while printing the second > variable var2? ( Or any value which is greater than or equal to (2 > power 32). > > For the above code the results were: > sizeof unsigned long long = 8 > var1 = 4294967290 > var2 = 4008636142 > > Could someone please explain this abnormal behaviour?? > > Thanks > Goran. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Were can i get the document " Tornado BSP Development Kit BSP Version 1.1" Date: 7 Mar 2002 23:43:06 -0800 From: christian.delez@ascom.ch (Christian Delez) Organization: http://groups.google.com/ Message-ID: References: The "Tornado BSP Development Kit" is a printed book and drivers samples. There is (December 2001) no electronic format of it. Wind River ask money for it. It's not free !!!!! You have to order it. It's the same for Tornado 1.0.1 and Tornado 2 (and 2.0.2). There is a base version (book + drivers samples in objects) and a value option (book + drivers sample in source code). @+, Christian. --------------------------- Newsgroups: comp.os.vxworks Subject: I want to get a copy of source code of 3c90x network card for vxworks? Date: 8 Mar 2002 00:35:52 -0800 From: zhoul@blrcsv.china.bell-labs.com (zlybupt) Organization: http://groups.google.com/ Message-ID: <989cdae4.0203080035.5e21fcc9@posting.google.com> Is there any?If have,Can you send me one copy? Thank you very much in advance! --------------------------- Newsgroups: comp.os.vxworks Subject: Re: ln97xEnd MuxLoad failed Date: Fri, 08 Mar 2002 09:22:44 GMT From: "Paul Iannacito" Organization: AT&T Broadband Message-ID: References: <3c86380f$0$231$4d4ebb8e@read-nat.news.nl.uu.net> Hello again Niels, wrote in message news:3c86380f$0$231$4d4ebb8e@read-nat.news.nl.uu.net... > Thanks to the help from Paul Iannacito I managed to include the ln97xEnd > driver in my bsp by implementing sysLan97xEnetAddrGet,sysLan97xIntEnable,sysLan97xIntDisable,sysOutLong,sysIn Long > in the sysEnd.c of my arm integrator bsp. > > When i type h from the bootline it says that the following boot devices > are available: lnPci0 (Some part must definitely work now) > > But when i try to boot from this device I get the following error: muxLoad > fa (mustbe muxload Failed I gues, crashed before printing the whole > sentence???) You supplied a sample of what your BSP's endDevTbl[] looks like: END_TBL_ENTRY endDevTbl [] = { #ifdef INCLUDE_LN_97X_END {0, LN_97X_LOAD_FUNC_0, LN_97X_LOAD_STR_0, TRUE, NULL, FALSE}, #endif /* INCLUDE_LN_97X_END */ /* Entries that can be filled in dynamically when cards are found */ { 0, END_TBL_END, NULL, 0, NULL, FALSE}, { 0, END_TBL_END, NULL, 0, NULL, FALSE}, { 0, END_TBL_END, NULL, 0, NULL, FALSE}, /* End of table marker */ { 0, END_TBL_END, NULL, 0, NULL, FALSE} }; It appears that this is a BSP that attempts to dynamically create the endDevTbl[] entries. I've noticed that a few of the WRS ARM BSPs are doing this. The entry you created from the pc486 BSP endDevTbl[] makes sense for those BSPs that initialize the table with compile-time configuration constants. I think that this is how a lot of the WRS BSPs used to do it - I believe that a lot of them still use the preprocessor to control the entries in the endDevTbl[]. Anyway, before I digress too far, I'll venture a guess at what _might_ have happened in your case. Since the BSP END driver configuration code is attempting to dynamically populate the endDevTbl[] entries, I could see a scenario where: (1) You left a configuration constant for another END driver (DEC, FEI, &c) defined for the build of your bootrom and / or vxWorks image. (2) You also defined your configuration constant for the ln97xEnd driver entry you put in the endDevTbl[]. (3) The ln97xEnd PCI device discovery and PCI config space configuration code you added to your BSP maybe did not account for the config code for the other END drivers that were dynamically configuring the devices and putting entries in the endDevTbl[]. The result? I'll bet that the config code for one of the other END drivers could have overwritten your statically defined entry in the endDevTbl[]. Well, I don't know on this one. Make sure that you've undefined the config constants for the other END drivers. Maybe check out how your PCI config code might work if the other END drivers are configured into a build. BTW, John's comment about having to do all the work for the PCI config setup (programming the BARs, setting the interrupt line reg., &c.) is certainly true. I'm sure that you probably know that the Intel i86 BSPs, for the most part, use the PCI config info programmed by a BIOS. However, even if you manage to muck up the PCI config stuff when you do it yourself, many of the END drivers will still LOAD successfully. That is, in some cases you can mess up the PCI init and muxLoad() can still succeed, even if the device itself is not functional. This just depends upon the driver. In any case, it is probably a good idea to have another look at the PCI config code you put together for ln97xEnd and see how this works with the other PCI config code in the BSP. Also, have a look at what the other device config code is doing to the endDevTbl[] entries. Good luck, paul --------------------------- Newsgroups: comp.os.vxworks Subject: ctors/dtors Date: Fri, 8 Mar 2002 09:52:25 -0000 From: "DMC" Message-ID: <3c8889b5$1@pull.gecm.com> Hi there, I'm trying to link together two output files into one large file for blowing into flash. when I do the link I get warnings about _ctors and _dtors. Has anyone come across this problem and solved it? Thanks. David. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: PCI memory space Date: 8 Mar 2002 00:06:30 -0800 From: emycall@dreamx.net (Ahn Jung Hoon) Organization: http://groups.google.com/ Message-ID: <2b0ae335.0203080006.7465a6eb@posting.google.com> References: <2b0ae335.0203070425.4ca35b57@posting.google.com> Philip Macfarlane wrote in message news:... > On Thu, 07 Mar 2002 12:25:10 +0000, Ahn Jung Hoon wrote: > > > By default, it was written in MV2600.h #define CPU_PCI_MEM_SIZE > > 0x01000000 /* 16 meg */ > > > > so, I modified it as following.. > > #define CPU_PCI_MEM_SIZE 0x20000000 /* 256 meg */ > > If 0x01000000 is 16MB then > 0x10000000 is 256 MB. > > I think? > > Cheers, > Philip. Thanks for your answer.. O.K.. You are right. But even if pci's size is 16MB, to setting CPU_PCI_MEM_SIZE as 0x01000000 is error.. I don'k know the reason. Only solution is default size * 2 .. ex> pci memory size default size real setting size 16MB 0x01000000 0x02000000 32MB 0x02000000 0x04000000 64MB 0x04000000 0x08000000 128MB 0x08000000 0x10000000 128MB 0x10000000 0x20000000 Do you unerstand what I mean..?? So. What do you think about it..?? Repeatedly, thank you very much for your answer.. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: BSD Ethernet Driver Date: 8 Mar 2002 02:06:31 -0800 From: vittala@hotmail.com (Vittal) Organization: http://groups.google.com/ Message-ID: <6847c39a.0203080206.2515b5ff@posting.google.com> References: <6847c39a.0203072126.4cc28aaf@posting.google.com> "Hwa Jin Bae" wrote in message news:... > Tornado comes with a sample driver for LANCE which shows how to use DMA > buffer loaning. Hi, Thanks for the info. I had glanced through it earlier, but I was under the impression that it does not use DMA. Anyway, I will go through it again. Thanks again, Vittal. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: [Q] about Mutual-Exclusion Semaphore Date: Fri, 8 Mar 2002 08:41:54 -0000 From: "Thomas Horsten" Organization: Newport Networks Ltd. Message-ID: <1015576917.343045@azores.network-i.net> References: <6fb8119a.0203072217.f24ce32@posting.google.com> belliny, Mint~* wrote: > below is typical mutual-exclusion semaphore example. > semaphore's purpose is to protect the shared resource or something > else/ > with semMLib, it can be taken more than once by the task that owns it > before finally being released. then, how can i control the access to > resource? > > as below, both funcA and funcB can access same resource at the same > time. > > Please let me know exactly what i knew wrong... > thanks in advance... It is hard to see what, if indeed anything, goes wrong in your example, since your code is stripped from anything that could give a hint to what you are trying to do.. From what I can see you are getting the expected behaviour. You are not showing another task trying to take the semaphore. > funcA : got mutual-exclusion semaphore > funcB : got mutual-exclusion semaphore > funcB : Give mutual-exclusion semaphore > funcA : Give mutual-exclusion semaphore > value = 40 = 0x28 = '(' > -> What is wrong here? It looks ok to me. Please try to be more specific. Now if I am to venture a guess on what you mean, I'd assume you are surprised that funcB gets the semaphore. This is the expected behaviour for a VxWorks mutex semaphore. It makes it possible for a function that takes a semaphore to call other functions that requires exclusive access to the same resource (but can also be called from a context where the semaphore has not already been taken). It never makes sense to block in this case, since it would result in a deadlock situation, but if that is what you really want just use a binary semaphore instead. // Thomas --------------------------- Newsgroups: comp.os.vxworks Subject: Re: END Driver performance Date: Thu, 7 Mar 2002 23:17:13 +0200 From: "Leonid Rosenboim" Organization: Verio Message-ID: References: <57c7939b.0203070444.5f1ac389@posting.google.com> Fro the sound of it, you wont be getting any brilliant performance out of this one because "data is copied from the hardware into my preallocated buffer inside the ISR" This means all packet data needs to be read from the hardware and written to memory in SOFTWARE. This is akin to the imfamous ENE driver for the NE2000 compatible cards, they eat up so much CPU doing these transfers from 8-nit I/O port, leaving little CPU headroom for doing much else. If your hardware folks are subborn, the least you can do is write this copy loop as effeciently as you possibly can, measuring this effeciency with a logic analyzer. Leonid "Ameya" wrote in message news:57c7939b.0203070444.5f1ac389@posting.google.com... > hi, > my END driver for 802.11 based wireless card on x86 platform does not > give me the expected performance. I dont use the netjobadd, instead a > task is spawned (priority 51) and it takes a semaphore. The data is > copied from the hardware into my preallocated buffer inside the ISR. > All the work regarding getting Mblks from the pool (I use NetTupleGet) > and sending it to the upper layers is > done in this task. The semaphore is given inside the ISR on a RX > interrupt. I have a watchdog timer that runs every 100 ticks (where > 1000 ticks = 1 Second). I use this timer to handle missing interrupts. > > When i ping with 2048 bytes, the avg rtt is 8 ms which translates to 4 > Mbps throughput roughly. > If i try to transfer 100 Kb data over TCP sockets, it takes a long > time (in seconds). > I tried changing the Send and Recieve socket buffer sizes but the > performance is still the same or worser. > > Any ideas? > > Thanks > Ameya --------------------------- Newsgroups: comp.os.vxworks Subject: Re: outp with gcc????? Date: Fri, 8 Mar 2002 11:22:50 +0100 From: "Werner Schiendl" Message-ID: <3c8890fe@brateggebdc5.br-automation.co.at> References: Hi, for x86, functions are provided in the BSP that provide this functionality. sysOutByte(addr, value) sysInByte(addr) I don't know if these are available on other platforms. hth Werner "Nejhdeh Ghevondian" wrote in message news:F%Th8.10126$nC6.51335@news-server.bigpond.net.au... > Dear anyone, > > I have just purchased a card to be used with my ppc card that needs to write > to ports in vxWorks. > > My question is how do i implement outp and inp in gcc format. > > Note: windows has equivilant of _outp and _inp (using conio.h) for accessing > ports given the address. > > Thanks > > Nejhdeh > > --------------------------- End of New-News digest ********************** From vxwexplo-errs@csg.lbl.gov Fri Mar 8 12:47:57 2002 From: Anuradha Pani Date: Fri Mar 8 12:48:00 PST 2002 Subject: broadcasting using sockets hi, how do i broadcast a message using sockets in vxworks? thanks anu __________________________________________________ Do You Yahoo!? Try FREE Yahoo! Mail - the world's greatest free email! http://mail.yahoo.com/ From vxwexplo-errs@csg.lbl.gov Sat Mar 9 04:03:18 2002 From: Vxworks Exploder Date: Sat Mar 9 04:03:21 PST 2002 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Sat Mar 9 04:03:14 PST 2002 Subject: Re: outp with gcc????? Subject: Re: ctors/dtors Subject: Re: where has some VxWorks example program? Subject: What is reason for errno = S_objLib_OBJ_ID_ERROR ? Subject: Re: a tool that calculates the number of code line in a projet? Subject: Re: BSD Ethernet Driver Subject: PPP interface not doing IP forwarding Subject: Re: BSD Ethernet Driver Subject: Re: ctors/dtors Subject: Porting from VxWorks 5.3 to 5.4 Subject: Re: ctors/dtors Subject: Re: What is reason for errno = S_objLib_OBJ_ID_ERROR ? Subject: Re: BSD Ethernet Driver Subject: Re: source code for SCSI Fibre Channel implementation Subject: Re: BSD Ethernet Driver Subject: Re: BSD Ethernet Driver Subject: Quantifying Fragmentation (was: Re: Chabging LIFO Ordered Free List) Subject: question about drivers Subject: Re: Quantifying Fragmentation (was: Re: Chabging LIFO Ordered Free List) Subject: Re: BSD Ethernet Driver Subject: Re: I want to get a copy of source code of 3c90x network card for vxworks? Subject: Re: [Q] about Mutual-Exclusion Semaphore Subject: Re: BSD Ethernet Driver Subject: What's the device name for serial port on X86 Subject: Re: BSD Ethernet Driver Subject: Can I ask a question of Pci ? Subject: RA 0x0 out of range Subject: Re: Unresolved symbol while download program : __eabi? Subject: Re: END Driver performance Subject: Re: Spurious Vx Works errors during building Subject: Help:Who have materials about developing the driver of 3c90x in vxworks? Subject: Regarding connected status of socket... ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Re: outp with gcc????? Date: Fri, 08 Mar 2002 13:37:47 +0100 From: Emmanuel Herbreteau Organization: SEPRO Robotique (BEP) Message-ID: <3C88B09B.6ABFBF45@sepro-robotique.com> References: <3c8890fe@brateggebdc5.br-automation.co.at> Werner Schiendl wrote: > for x86, functions are provided in the BSP that provide this functionality. > sysOutByte(addr, value) > sysInByte(addr) > I don't know if these are available on other platforms. Hi, Yes, it's also available on PPC (in "sysALib.s" /target/config/your_bsp/). Regards Emmanuel --------------------------- Newsgroups: comp.os.vxworks Subject: Re: ctors/dtors Date: 8 Mar 2002 06:06:26 -0800 From: christian.delez@ascom.ch (Christian Delez) Organization: http://groups.google.com/ Message-ID: References: <3c8889b5$1@pull.gecm.com> > I'm trying to link together two output files into one large file for blowing > into flash. when I do the link I get warnings about _ctors and _dtors. Has > anyone come across this problem and solved it? > I'm doing this for PowerPC target from NT host and it works fine. Could you tell us your configuration: - - host (NT, Unix) - - target CPU type - - Tornado and VxWorks version - - a copy of the error message. @+, christian. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: where has some VxWorks example program? Date: 8 Mar 2002 06:09:43 -0800 From: christian.delez@ascom.ch (Christian Delez) Organization: http://groups.google.com/ Message-ID: References: > > Does anybody know where has some VxWorks example program? > Thanks in advance. Go to WindSurf site home page (This is Wind River support site): http://www.wrs.com/windsurf There is a link to Sample code. You must be registred user with valid support. If you have download Tornado Prototyper from http://www.wrs.com, you can ask for a WindSurf acount for free. @+, Christian. --------------------------- Newsgroups: comp.os.vxworks Subject: What is reason for errno = S_objLib_OBJ_ID_ERROR ? Date: Fri, 8 Mar 2002 15:46:46 +0100 From: "Joachim Wittmann" Message-ID: Hi to All ! I have a semTake() function call in my application which returns with ERROR and errno set to S_objLib_OBJ_ID_ERROR. Before this error occurs the function works fine. I couldn't find a description for this error code, but have some memory violation in mind. So what is the reason for returning this error ? Thanks for help. Regards Joachim --------------------------- Newsgroups: comp.os.vxworks Subject: Re: a tool that calculates the number of code line in a projet? Date: 08 Mar 2002 12:15:05 GMT From: charly Message-ID: <200238-13155-849005@foorum.com> References: <200236-17519-282492@foorum.com> Thanks, I tested it. This tool count only the lines. So comments are lines also. Oups... I am under Windows Charly - -- Use our news server 'news.foorum.com' from anywhere. More details at: http://nnrpinfo.go.foorum.com/ --------------------------- Newsgroups: comp.os.vxworks Subject: Re: BSD Ethernet Driver Date: Fri, 8 Mar 2002 08:52:37 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <6847c39a.0203072126.4cc28aaf@posting.google.com> <6847c39a.0203080206.2515b5ff@posting.google.com> Alas, you are correct. It seems someone took out all the DMA chaining and mbuf scatter / gather stuff on the output side. I spent a lot of time coding all the drivers that way including LANCE driver. It looks like someone changed them to all bcopy_to_mbuf() after I left. However, there seem to be two LANCE drivers in Tornado examples. One is BSD style and another END style. BSD style has all the DMA stuff gone. END style has DMA TX side code under #if 0. You can take a look at that. Lesson here is: just because it is a little harder to do TX DMA chaining, it doesn't mean you should just take it out of the drivers. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: PPP interface not doing IP forwarding Date: Fri, 08 Mar 2002 16:55:02 GMT From: "Venky" Organization: AT&T Broadband Message-ID: Hello Vxworks Gurus, I have a PPP established to a Vxworks system from a standalone system. The Vxworks system has a ether interface to a different network (195.1.3.0). Now I want the Vxworks PPP interface to do IP forwarding to the ether interface so I can reach the systems on the 195.1.3.0 network. The problem now I'm facing is the PPP link is not forwarding any packets. I looked at the PPP source but couldn't find IP forwarding flag settings with a PPP interface. Can someone shed some light on this ? Thanks in advance. PV. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: BSD Ethernet Driver Date: Fri, 08 Mar 2002 13:17:59 -0500 From: George Varndell Organization: Posted Via Binaries.net = SPEED+RETENTION+COMPLETION = http://www.binaries.net Message-ID: <3C890057.E551DBDA@varndellengineering.com> References: <6847c39a.0203072126.4cc28aaf@posting.google.com> <6847c39a.0203080206.2515b5ff@posting.google.com> Hwa Jin Bae wrote: > > Alas, you are correct. It seems someone took out all the DMA chaining and > mbuf scatter / gather stuff on the output side. I spent a lot of time > coding all the drivers that way including LANCE driver. It looks like > someone changed them to all bcopy_to_mbuf() after I left. > > However, there seem to be two LANCE drivers in Tornado examples. One is BSD > style and another END style. BSD style has all the DMA stuff gone. END > style has DMA TX side code under #if 0. You can take a look at that. > > Lesson here is: just because it is a little harder to do TX DMA chaining, it > doesn't mean you should just take it out of the drivers. With all due respect, while I agree whole-heartedly with your conclusion, I have to believe that if someone removed an existing feature from a network driver, it was probably because the driver didn't work well enough to support Tornado sales demos. Why would WRS discard working code? Regards, George Varndell - -- Embedded Systems Expertise Varndell Engineering, LLC. http://www.varndellengineering.com Cumberland MD. 21502 ______________________________________________________________________________ Posted Via Binaries.net = SPEED+RETENTION+COMPLETION = http://www.binaries.net --------------------------- Newsgroups: comp.os.vxworks Subject: Re: ctors/dtors Date: Fri, 08 Mar 2002 19:59:13 +0100 From: ilyas G Organization: Wanadoo, l'internet avec France Telecom Message-ID: <3C890A01.7080406@no-spam.guennoun.org> References: <3c8889b5$1@pull.gecm.com> this is constructors(ctor) and destructors(dtor). you have to include a certain file, unfortunatly i am at home now, I will check on monday, if no response. DMC wrote: > Hi there, > > I'm trying to link together two output files into one large file for blowing > into flash. when I do the link I get warnings about _ctors and _dtors. Has > anyone come across this problem and solved it? > > Thanks. > > David. > > > --------------------------- Newsgroups: comp.os.vxworks Subject: Porting from VxWorks 5.3 to 5.4 Date: 8 Mar 2002 12:07:19 -0800 From: jjf@bcs.org.uk (J. J. Farrell) Organization: http://groups.google.com/ Message-ID: <5c04bc56.0203081207.6b67c4c2@posting.google.com> How significant were the changes between VxWorks 5.3 and 5.4? In which areas did it change? If I need to port a large driver for a proprietary PCI device from 5.3 to 5.4, how much work am I letting myself in for? Many Thanks, jjf --------------------------- Newsgroups: comp.os.vxworks Subject: Re: ctors/dtors Date: Fri, 8 Mar 2002 21:07:22 +0100 From: "Werner Schiendl" Message-ID: <3c8919fb$1@brateggebdc5.br-automation.co.at> References: <3c8889b5$1@pull.gecm.com> Hi, you need to link the .o files, not the .out files. If there are many .o files, you can make a library out of one project (.a file) and link this to the other. In the process of merging all the .o files to a big .out file, the build mechanism creates tables with static constructors and destructors. Therefore, you cannot link .out files (at least with the default build setup). hth Werner "DMC" wrote in message news:3c8889b5$1@pull.gecm.com... > Hi there, > > I'm trying to link together two output files into one large file for blowing > into flash. when I do the link I get warnings about _ctors and _dtors. Has > anyone come across this problem and solved it? > > Thanks. > > David. > > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: What is reason for errno = S_objLib_OBJ_ID_ERROR ? Date: Fri, 8 Mar 2002 21:10:04 +0100 From: "Werner Schiendl" Message-ID: <3c891a9d$1@brateggebdc5.br-automation.co.at> References: Hi, When you call a system function that takes a handle (e. g. a SEM_ID in your case), VxWorks verifies that this is really what it should be (well, most of the time). So you probably have overwritten the memory used for the semaphore. AFAIK (but not 100% sure), the SEM_ID is actually the address of this storage. The error should be documented with objLib (if such a help entry exists, I don't have it at hand now) hth Werner "Joachim Wittmann" wrote in message news:a6aisd$d1a4m$1@ID-99394.news.dfncis.de... > > Hi to All ! > > I have a semTake() function call in my application which returns with ERROR > and errno set to S_objLib_OBJ_ID_ERROR. Before this error occurs the > function works fine. I couldn't find a description for this error code, but > have some memory violation in mind. So what is the reason for returning this > error ? > > Thanks for help. > > Regards > Joachim > > > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: BSD Ethernet Driver Date: 08 Mar 2002 15:19:07 -0500 From: Bill Pringlemeir Organization: Bell Sympatico Message-ID: References: <6847c39a.0203072126.4cc28aaf@posting.google.com> <6847c39a.0203080206.2515b5ff@posting.google.com> <3C890057.E551DBDA@varndellengineering.com> Sender: bpringlemeir@DeadDuck >>> Hwa Jin Bae wrote: >> Alas, you are correct. It seems someone took out all the DMA >> chaining and mbuf scatter / gather stuff on the output side. I >> spent a lot of time coding all the drivers that way including >> LANCE driver. It looks like someone changed them to all >> bcopy_to_mbuf() after I left. >> >> However, there seem to be two LANCE drivers in Tornado examples. >> One is BSD style and another END style. BSD style has all the DMA >> stuff gone. END style has DMA TX side code under #if 0. You can >> take a look at that. >> >> Lesson here is: just because it is a little harder to do TX DMA >> chaining, it doesn't mean you should just take it out of the >> drivers. >>>>> "George" == George Varndell writes: George> With all due respect, while I agree whole-heartedly with your George> conclusion, I have to believe that if someone removed an George> existing feature from a network driver, it was probably George> because the driver didn't work well enough to support Tornado George> sales demos. Why would WRS discard working code? Actually Hwa Jin said "because it is a little harder", which seems to indicate that he actually did think that there were some problems with the DMA. Someone at WRS just decided to trash them instead of extending or fixing them. Anyways if I can divert this thread from the highly relevant personal attacks, the MPC 8260 has a 100 Mb Ethernet capabilities. In order, to run that driver at 100Mb, you must use DMA. So if WRS does support the MPC 8260 at 100Mb, it will have examples that use the BD and PowerQuicc and DMA and all those goodies. hth, Bill Pringlemeir. - -- TORPEDOED BY NETSCAPE 29W 32S. SINKING. U-193. vxWorks FAQ, "http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html" --------------------------- Newsgroups: comp.arch.storage,comp.periphs.scsi,comp.os.vxworks Subject: Re: source code for SCSI Fibre Channel implementation Date: 8 Mar 2002 12:21:15 -0800 From: jjf@bcs.org.uk (J. J. Farrell) Organization: http://groups.google.com/ Message-ID: <5c04bc56.0203081221.7b1ec505@posting.google.com> References: <5c04bc56.0202272342.124108d6@posting.google.com> jjf@bcs.org.uk (J. J. Farrell) wrote in message news:<5c04bc56.0202272342.124108d6@posting.google.com>... > > I'm looking for the source code of a C (or C++) implementation > of the 'SCSI over Fibre Channel' stack - SCSI commands at the > top and Fibre Channel Frames at the bottom. Does anyone know of > an available implementation, free or commercial? Thanks to you all for your input on this. Some good leads have popped up along with Usenet's usual "interesting" diversions. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: BSD Ethernet Driver Date: Fri, 8 Mar 2002 21:16:44 +0100 From: "Werner Schiendl" Message-ID: <3c891c2c$1@brateggebdc5.br-automation.co.at> References: <6847c39a.0203072126.4cc28aaf@posting.google.com> <6847c39a.0203080206.2515b5ff@posting.google.com> <3C890057.E551DBDA@varndellengineering.com> > Why would WRS discard working code? > To simplify the demo code? To keep the chance to sell a better one? Or 'premium services'? Decisions are not always made on a technically correct base. regards Werner --------------------------- Newsgroups: comp.os.vxworks Subject: Re: BSD Ethernet Driver Date: Fri, 8 Mar 2002 12:40:16 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <6847c39a.0203072126.4cc28aaf@posting.google.com> <6847c39a.0203080206.2515b5ff@posting.google.com> <3C890057.E551DBDA@varndellengineering.com> I am far from perfect and I do write buggy code sometimes. But LANCE DMA code worked very well on all hardware I have tested exhaustively. It worked very well. But you can blame me if you want. It's OK with me I don't take it personally. I actually now remember what happened. Someone took out the DMA code claiming that it didn't work after I left. When I returned to do some consulting I did notice some code changes like this. I asked DNW about it and he didn't know about it. Later the guy who did that got fired. But I don't think anyone went back to return the code into drivers. The taking out of code really wasn't justified. Now, there are some complications for doing loaning and chaining. Some of these are easily avoided by following the rules. When I initially designed the mechanism for all that, I did write down these rules but they seemed to have been forgotten. If you don't follow the rules, then you can run into problems under heavy load. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Quantifying Fragmentation (was: Re: Chabging LIFO Ordered Free List) Date: Fri, 8 Mar 2002 16:20:28 -0500 From: Keith Arner Organization: Marconi Message-ID: References: <65b2abfc.0203060736.2f705117@posting.google.com> Reply-To: Keith Arner On 6 Mar 2002, Venkat Mynampati wrote: > I read an article by Paul Wilson and others > (Dynamic Storage Allocation: Survey and Review) > and in that it was mentioned that: > "Best fit, FIFO ordered First Fit and address > ordered first-fit" > perform the same manner, with a fragmentation of 22%. > > Where as First-Fit based on LIFO is Worse with 54% > fragmentation! The last time that I was struggling with memory fragmentation, I tried rather unsuccessfully to come up with a useful quantification of the fragmentation of the heap. Wilson, et al, quote fragmentation of various allocators as 22% or 54%, but I could never discover how they were ariving at these figures. If you have a system with virtual memory, where the heap requests more pages from the OS when it runs out, you can measure fragmentation as the ratio of free memory to total memory (mapped in). This is working off the assumption that new pages get mapped in when the free memory in the existing pages is fragmented to small to be useful. However, if you have a fixed memory space (no virtual memory, as is the norm in VxWorks), how do you quanitfy fragmentation? I eventually gave up on coming up with an objective measurement, and just eyeballed the free list to decide if it "looked" more or less fragmented. The other rule of thumb I use is the ratio of largest free block to total free memory, but that seems to leave a lot to be desired. Keith --------------------------- Newsgroups: comp.os.vxworks Subject: question about drivers Date: Fri, 08 Mar 2002 22:18:29 GMT From: "Hadi" Organization: Magma Communications Ltd. Message-ID: Hi, I am writing an ISR for a device(High speed modem). I know there are many ways you could optimize the ISR excution time. Does anyone has reference to any web page that contains information about the optimization of the code in vxWork. send me an email to hadi_dewan @hotmail.com Thanks in advance --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Quantifying Fragmentation (was: Re: Chabging LIFO Ordered Free List) Date: 08 Mar 2002 17:24:30 -0500 From: Bill Pringlemeir Organization: Bell Sympatico Message-ID: References: <65b2abfc.0203060736.2f705117@posting.google.com> Sender: bpringlemeir@DeadDuck >>>>> "Keith" == Keith Arner writes: [snip] Keith> However, if you have a fixed memory space (no virtual memory, Keith> as is the norm in VxWorks), how do you quanitfy fragmentation? Keith> I eventually gave up on coming up with an objective Keith> measurement, and just eyeballed the free list to decide if it Keith> "looked" more or less fragmented. The other rule of thumb I Keith> use is the ratio of largest free block to total free memory, Keith> but that seems to leave a lot to be desired. Why is this a bad metric? The largest free block and the time to allocate would be the best things to measure in my opinion. Perhaps you should be comparing differences in the "largest free blocks". Adding more memory will just skew the "largest free blocks" metric. Where as comparing the difference in "largest free blocks" should be immune to the size of memory. The time to allocate would be directly related to the size of the list for list based allocators. The last thing that could be measured is total free memory. This will measure the allocator memory overhead. This is how I determined to replace the vxWorks allocator with Doug Lea's. That and our application ran about 1.3 - 1.5 times as fast and over 100 times as long. Doug Lea's allocator performed even better versus memLib with our application than some synthetic test that I created. This would seem to indicate that it has been tuned to some `real world' code. My synthetic test was probably more `worst case'. A fairly good single digit metric would be the ratio of largest block to total free size differences. This does represent `fragmentation'. A good allocator will have a positive value, a slightly negative number (0..-1?) would indicate a divergence in internal versus external fragmentation. A large negative number means that the allocator with largest block is better... Anyways, I think it is better to look at all the issues than a single number. The paper cited says [1], Fragmentation is the inability to reuse memory that is free. This can be due to policy choices by the allocator, which may choose not to reuse memory that in principle could be reused. More importantly for our purposes, the allocator may not have a choice at the moment an allocation request must be serviced., there may be free areas that are too small to service the request ~and whose neighbors are not free~, making it impossible to coalesce adjacent free areas into a sufficiently large contiguous block. Which is just to say that an allocator that runs out of memory for your purposes has fragmented memory. At least that is what I get from it. They also go on and say that memory allocation is not received well in computer science, some compiler people touch it, some OS people and architecture people generally ignore it. The best thing is to try it with your system. The allocator code size might be significant to your design, the speed, etc. If you are looking at fragmentations, then the internal (allocator waste) and the external (largest block) fragmentation are pertinent. fwiw, Bill Pringlemeir. [1] Dynamic Storage Allocation: A Survey and Critical review. Paul R. Wilson, Mark S. Johnstone, Michael Neely, David Boles Dept of Computer Science, University of Texas at Austin. - -- Have you ever joined a church where everyone but you can hum God Save the Queen madly with your abode? Or had six toilets eat your leg? You will. And the company that will bring it to you: AT&T. vxWorks FAQ, "http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html" --------------------------- Newsgroups: comp.os.vxworks Subject: Re: BSD Ethernet Driver Date: Fri, 08 Mar 2002 17:21:48 -0500 From: George Varndell Organization: Posted Via Binaries.net = SPEED+RETENTION+COMPLETION = http://www.binaries.net Message-ID: <3C89397B.DFA7FE0@varndellengineering.com> References: <6847c39a.0203072126.4cc28aaf@posting.google.com> <6847c39a.0203080206.2515b5ff@posting.google.com> <3C890057.E551DBDA@varndellengineering.com> Bill Pringlemeir wrote: [snip] > Anyways if I can divert this thread from the highly relevant personal > attacks, the MPC 8260 has a 100 Mb Ethernet capabilities. In order, > to run that driver at 100Mb, you must use DMA. So if WRS does support > the MPC 8260 at 100Mb, it will have examples that use the BD and > PowerQuicc and DMA and all those goodies. I'm not sure where you saw a personal attack. My point was exactly that WRS doesn't give a damn about network driver performance and will trash any part of any driver that might jeopardize a sales demo scenario. Nothing more. Could you be specific about these personal attacks? Regards, George Varndell - -- Embedded Systems Expertise Varndell Engineering, LLC. http://www.varndellengineering.com Cumberland MD. 21502 ______________________________________________________________________________ Posted Via Binaries.net = SPEED+RETENTION+COMPLETION = http://www.binaries.net --------------------------- Newsgroups: comp.os.vxworks Subject: Re: I want to get a copy of source code of 3c90x network card for vxworks? Date: 8 Mar 2002 14:46:56 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203081446.684887b3@posting.google.com> References: <989cdae4.0203080035.5e21fcc9@posting.google.com> Hello, Speak to your local FAE and/or salesperson. They'll sell the source code to the network driver if you need it. HTH, John... zhoul@blrcsv.china.bell-labs.com (zlybupt) wrote in message news:<989cdae4.0203080035.5e21fcc9@posting.google.com>... > Is there any?If have,Can you send me one copy? > Thank you very much in advance! --------------------------- Newsgroups: comp.os.vxworks Subject: Re: [Q] about Mutual-Exclusion Semaphore Date: 8 Mar 2002 14:49:12 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203081449.468494c@posting.google.com> References: <6fb8119a.0203072217.f24ce32@posting.google.com> Hello, You have missed the point... a mutex is designed to protect a resource that is being shared between tasks. HTH, John... belliny@soback.kornet.net (belliny, Mint~*) wrote in message news:<6fb8119a.0203072217.f24ce32@posting.google.com>... > below is typical mutual-exclusion semaphore example. > semaphore's purpose is to protect the shared resource or something > else/ > with semMLib, it can be taken more than once by the task that owns it > before finally being released. then, how can i control the access to > resource? > > as below, both funcA and funcB can access same resource at the same > time. > > Please let me know exactly what i knew wrong... > thanks in advance... > > SEM_ID semM; > > semM = semMCreate(...); > > funcA() > { > semTake(semM, WAIT_FOREVER); > ... > funcB(); > ... > SemGive(semM); > } > > funcB() > { > semTake(semM, WAIT_FOREVER); > ... > semGive(semM); > } > > -> init > 0: init(void) > 1: ios::init(streambuf *, ostream *) > 2: filebuf::init(void) > Choose the number of the symbol to use: 0 > value = 84797920 = 0x50de9e0 > -> funcA > funcA : got mutual-exclusion semaphore > funcB : got mutual-exclusion semaphore > funcB : Give mutual-exclusion semaphore > funcA : Give mutual-exclusion semaphore > value = 40 = 0x28 = '(' > -> --------------------------- Newsgroups: comp.os.vxworks Subject: Re: BSD Ethernet Driver Date: 08 Mar 2002 18:55:35 -0500 From: Bill Pringlemeir Organization: Bell Sympatico Message-ID: References: <6847c39a.0203072126.4cc28aaf@posting.google.com> <6847c39a.0203080206.2515b5ff@posting.google.com> <3C890057.E551DBDA@varndellengineering.com> <3C89397B.DFA7FE0@varndellengineering.com> Sender: bpringlemeir@DeadDuck >>> Bill Pringlemeir wrote: >> Anyways if I can divert this thread from the highly relevant >> personal attacks, the MPC 8260 has a 100 Mb Ethernet capabilities. >> In order, to run that driver at 100Mb, you must use DMA. So if >> WRS does support the MPC 8260 at 100Mb, it will have examples that >> use the BD and PowerQuicc and DMA and all those goodies. >>>>> "George" == George Varndell writes: George> I'm not sure where you saw a personal attack. My point was George> exactly that WRS doesn't give a damn about network driver George> performance and will trash any part of any driver that might George> jeopardize a sales demo scenario. Nothing more. Could you be George> specific about these personal attacks? No. I acquiesce. I hope the OP sees my note about the MPC 8260. I see a BSP listed as the AE-MdpPro8xxT as well as the "BSP PPMC8260". "http://web2.windriver.com/cgi-bin/windsurf/downloads/view_binary.cgi?binaryid=399" "http://web2.windriver.com/cgi-bin/windsurf/downloads/view_binary.cgi?binaryid=379" Both contain source for the FEC on the Motorola boards. They list support for the 100Mb Ethernet which should implement the DMA. Unfortunately the are only for the PowerPC. That said, the only thing that you have that is different from the regular driver is that instead of having a TX/RX interrupt to read each byte (buffer or whatever), you would setup the DMA to transfer to a buffer and have an interrupt on a "DONE" signal. This would depend on your CPU DMA controller, which is one of the reasons that it might be pretty rare to find a driver with one. The driver try to be chip specific and CPU independent. So basically, I don't think that the DMA version should be any different than the non-DMA version except perhaps that the memory would be allocated to be non-cache-able [a reason why zbufs might not be good under all circumstances...] hth, Bill Pringlemeir. - -- All Nicaraguan dudes should get whales , huh? My MicroVAX II is pretty good, right? vxWorks FAQ, "http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html" --------------------------- Newsgroups: comp.os.vxworks Subject: What's the device name for serial port on X86 Date: Sat, 09 Mar 2002 00:33:33 GMT From: Jon Newbill Organization: EarthLink Inc. -- http://www.EarthLink.net Message-ID: <3C8958C6.E8CC3FB2@bitworkssystemsDELETETHIS.com> I'm trying to open COM1 on my VMIC 7750 pentium III target under VxWorks 5.4.2. I've tried fd = open("/tty1", O_RDWR,0); fd = open("/dev/tty1", O_RDWR,0); fd = open("tty1", O_RDWR,0); All of these return fd==ERROR.. Jon Newbill JonUN@bitworkssystemsREMOVTHIS.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: BSD Ethernet Driver Date: Fri, 8 Mar 2002 17:17:52 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <6847c39a.0203072126.4cc28aaf@posting.google.com> <6847c39a.0203080206.2515b5ff@posting.google.com> <3C890057.E551DBDA@varndellengineering.com> <3C89397B.DFA7FE0@varndellengineering.com> I think it might be a lilttle unfair to say "WRS doesn't give a damn about network driver performance". I think they do care a lot about performance issues in drivers. I also don't think they take code out for stable demo purpose or to charge for higher performance drivers. I don't believe that is the case. The BSD driver issues are accidental I think, as unfortunate as they may be. END driver issues are a little less clear. I think WRS understands the driver issues very well. I have seen their other drivers and they seem to implement the loaning and buffer chaining DMA output. So at least some folks in WRS understand the issues very well. The issue that might be less understood is: 1. When loaning buffers (RX side) up to stack, there should be a limit to stop the loaning. Without such stop gap system can run into trouble. There should be a high water mark threshold. Otherwise, an application at socket level can hog the mbufs. There are other systematic problems that can happen. Also, it doesn't help a lot to use loaning for small size packets overall. A threshold value should be used (I defaulted to 512, but it is by no means a value that should be followed strictly). 2. When chaining DMA buffers for output (and avoiding copies), there should be a limit there as well. Under extreme cases, BSD TCP stack will send down a long mbuf chain containing some small mbufs chained together. The number of mbufs in a chain can be larger than 32. In those cases, it makes little sense to exhaust descriptor resources by using chained DMA. It is better to copy. A threshold of some sort is required there as well. There are some other "unwritten" rules in driver writing. However, these two apply to the copy avoidance issues. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Can I ask a question of Pci ? Date: 8 Mar 2002 18:23:07 -0800 From: zhoul@blrcsv.china.bell-labs.com (zlybupt) Organization: http://groups.google.com/ Message-ID: <989cdae4.0203081823.47edc196@posting.google.com> Now I am engaged in a project of writing pci network card for vxworks.I want to know how can i access the io address and the irq number of the network card before the system boot? Thank you in advance! --------------------------- Newsgroups: comp.os.vxworks Subject: RA 0x0 out of range Date: Fri, 08 Mar 2002 18:21:54 -0800 From: Abe Shen Organization: Broadcom Message-ID: <3C8971C2.2EDF5E39@broadcom.com> My BSP boots OK. But when BSP tries to load application + OS image off the network, following printout comes up: - --- Stack Trace --- FUNC = 0x80c181d8, PC = 0x80c1821c (0x80c1821c), SP = 0x81f9cfc0 FUNC = 0x80c50548, PC = 0x80c505b4 (0x80c505b4), SP = 0x81f9cfd8 FUNC = 0x80c11410, PC = 0x80c11a10 (0x80c11a10), SP = 0x81f9cff8 FUNC = 0x80c6803c, PC = 0x80c6870c (0x80c6870c), SP = 0x81f9d2d8 RA 0x0 out of range I cannot even see the following printout "Attached TCP/IP network interface". Could any gentlepeople give me some clue what went wrong? Thanks. Regards, Abe --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Unresolved symbol while download program : __eabi? Date: Fri, 08 Mar 2002 18:30:23 -0800 From: Abe Shen Organization: Broadcom Message-ID: <3C8973BF.9732E824@broadcom.com> References: <8cd11808.0203050528.6bb7bfcf@posting.google.com> Unresolved symbol generally means there are some identifiers (variables, functions, etc.) that have been referenced, but have never been defined. You may change your compiler command line option to report all error/warning message during compilation. Then compiler should stop during link stage when there are any unresolved symbols. Otherwise, when you download, target server should print out those symbols too. Regards, Abe zjh wrote: > hi,all > I have build a program with Tornado .The building process is successful. > While download the ldp.out to the target ppc860gnu.there is a error: > Unresolved symbol while > download ldp.out > --eabi > Have anyone seen the problem?Can you give me your advice to solve it? > all thanks!! > Sincerely zjh --------------------------- Newsgroups: comp.os.vxworks Subject: Re: END Driver performance Date: 8 Mar 2002 20:22:04 -0800 From: bondi_ameya@yahoo.com (Ameya) Organization: http://groups.google.com/ Message-ID: <57c7939b.0203082022.59113003@posting.google.com> References: <57c7939b.0203070444.5f1ac389@posting.google.com> David was right. i did notice a lot of lost packets. I have taken care of that and my driver gives a much improved performance. Thanks everyone. ameya "Leonid Rosenboim" wrote in message news:... > Fro the sound of it, you wont be getting any brilliant > performance out of this one because > "data is copied from the hardware into my preallocated buffer inside the > ISR" > > This means all packet data needs to be read from the hardware > and written to memory in SOFTWARE. > > This is akin to the imfamous ENE driver for the NE2000 compatible > cards, they eat up so much CPU doing these transfers from 8-nit I/O > port, leaving little CPU headroom for doing much else. > > If your hardware folks are subborn, the least you can do is write > this copy loop as effeciently as you possibly can, measuring this > effeciency with a logic analyzer. > > Leonid > > "Ameya" wrote in message > news:57c7939b.0203070444.5f1ac389@posting.google.com... > > hi, > > my END driver for 802.11 based wireless card on x86 platform does not > > give me the expected performance. I dont use the netjobadd, instead a > > task is spawned (priority 51) and it takes a semaphore. The data is > > copied from the hardware into my preallocated buffer inside the ISR. > > All the work regarding getting Mblks from the pool (I use NetTupleGet) > > and sending it to the upper layers is > > done in this task. The semaphore is given inside the ISR on a RX > > interrupt. I have a watchdog timer that runs every 100 ticks (where > > 1000 ticks = 1 Second). I use this timer to handle missing interrupts. > > > > When i ping with 2048 bytes, the avg rtt is 8 ms which translates to 4 > > Mbps throughput roughly. > > If i try to transfer 100 Kb data over TCP sockets, it takes a long > > time (in seconds). > > I tried changing the Send and Recieve socket buffer sizes but the > > performance is still the same or worser. > > > > Any ideas? > > > > Thanks > > Ameya --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Spurious Vx Works errors during building Date: Sat, 09 Mar 2002 07:22:43 GMT From: "Gary M" Organization: AT&T Broadband Message-ID: <7Lii8.8666$uA5.8616@rwcrnsc51.ops.asp.att.net> References: <3c87813f$1@pull.gecm.com> _binArrayStart and _binArrayEnd are emitted by the binToAsm tool which converts the deflated binary image back to .s format. For some reason _binArrayEnd is getting lost. You may want to edit the rules to preserve the temporary files to determine where the problem is. "KatMoore" wrote in message news:3c87813f$1@pull.gecm.com... > Hi, > > I wonder can anyone help me with a problem which is causing me more than a > few problems at the minute. > > I am building a downloadable project in Tornado II with vxWorks 5.4. In it > I have set up four custom builds using different rule in order to build a > final "vxWorks.st_rom.bin" image. > > The third rule runs the make command in the BSP directory in order to build > the vxWorks.hex image but at the moment every time I run the rule the build > fails with the following message > > > 'C:\Tornado\target\lib\libPPC604gnuvx.a vxWorks.st.Z.o > bootInit_st.o: In function `romStart': > bootInit_st.o(.text+0xb6): undefined reference to `_binArrayEnd' > bootInit_st.o(.text+0xba): undefined reference to `_binArrayEnd' > make[1]: *** [vxWorks.st_rom] Error 0x1 > make[1]: Leaving directory `C:\Tornado\target\config\rs60x' > make: *** [Step_3] Error 0x2 > > Done.' > > Now the rule was working fine for many months now, but has started to play > up this last 2 days. It is now happening so much that I am getting it every > time I build this rule. The only way I can get past it is to do a BSP clean > build and then do a BSP vxWorks build. > > The BSP in use is for a Radstone board and Tornado does not have any of the > windriver cumulative patches installed. > > Any help would be greatly appreciated. > > > Regards > > --------------------------- Newsgroups: comp.os.vxworks Subject: Help:Who have materials about developing the driver of 3c90x in vxworks? Date: 9 Mar 2002 01:16:58 -0800 From: bjzhangc@hotmail.com (Spring) Organization: http://groups.google.com/ Message-ID: Now I develop the driver of 3c90x in vxworks with tornado.We develop it for special use,so we can not use the dirver of vxworks which offered.If you have materials about it including source code,references,suggestions,and more,please send to me!my e-mail:bjzhangc@hotmail.com.Thanks very much! --------------------------- Newsgroups: comp.unix.programmer,comp.os.linux.networking,comp.protocols.tcp-ip,comp.os.vxworks Subject: Regarding connected status of socket... Date: 9 Mar 2002 02:21:30 -0800 From: sriram_sarda@yahoo.com (Sriram) Organization: http://groups.google.com/ Message-ID: <8356dc69.0203090221.69f79206@posting.google.com> Hi Group, I need to find out the status of a given sock descriptor i.e whether it is in connected state or not. I felt that some ioctl/fnctl/getsockopt call might help me out but couldnt get a clue.....I want to avoid the (trial'n'error) use of read/write etc over the sock descriptor(if theres some other way out!!) Any points/clues over this? TIA, Sriram. PS: My application sits over VxWOrks 5.4(is this, in anyway, matters!) --------------------------- End of New-News digest ********************** From vxwexplo-errs@csg.lbl.gov Sun Mar 10 04:03:10 2002 From: Vxworks Exploder Date: Sun Mar 10 04:03:12 PST 2002 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Sun Mar 10 04:03:06 PST 2002 Subject: A Basic Netoworking Question! Subject: Re: A Basic Netoworking Question! Subject: Re: Regarding connected status of socket... Subject: OPENDIR Help Subject: HTTP GET in VxWorks? Subject: Re: What's the device name for serial port on X86 Subject: Re: Help! Cannot access vxworks from another network Subject: Where can i find some source code about WTX C API? ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: A Basic Netoworking Question! Date: 9 Mar 2002 05:51:13 -0800 From: giby@myw.ltindia.com (Giby) Organization: http://groups.google.com/ Message-ID: I am using BSD sockets for Ethernet communication between two Vx-Works/MPC823 controller board . When I call Accept() , which is a BSD socket function .. the board waits for a packet . Till it receives a data packet the program will be in a polled state and only after receiving a packet the program executes the code lines below the function call. Query is in my actual integrated program how I will use this Accept() socket function , because I want other things also to work along with this Accept() function. Thanks in advance. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: A Basic Netoworking Question! Date: Sat, 09 Mar 2002 08:40:08 -0800 From: "Michael R. Kesti" Organization: MK Associates Message-ID: <3C8A3AE8.D58A6A33@gv.net> References: Reply-To: mkesti@gv.net Giby wrote: >I am using BSD sockets for Ethernet communication between two >Vx-Works/MPC823 controller board . When I call Accept() , which is a >BSD socket function .. the board waits for a packet . >Till it receives a data packet the program will be in a polled state >and only after receiving a packet the program executes the code lines >below the function call. >Query is in my actual integrated program how I will use this Accept() >socket function , because I want other things also to work along with >this Accept() function. You're really asking "How does multi-tasking work?" What you want to do is design a system of seperate but cooperating tasks. Each task may "pend" on one (or, using the "select" facility, more) functions such as accept(). As these functions become ready, often because the data or resource they require becomes available, they return to the calling program according to the priorities you have assigned them. In this way, your program can utuilize its resources effciently while allowing time critical portions a means to ensure they get done on time. >Thanks in advance. You're welcome. - -- ======================================================================== Michael Kesti | "And like, one and one don't make | two, one and one make one." mkesti@gv.net | - The Who, Bargain --------------------------- Newsgroups: comp.unix.programmer,comp.os.linux.networking,comp.protocols.tcp-ip,comp.os.vxworks Subject: Re: Regarding connected status of socket... Date: Sat, 09 Mar 2002 20:35:54 GMT From: Michael Rice Message-ID: <3C8A7258.2080001@adelphia.net> References: <8356dc69.0203090221.69f79206@posting.google.com> Sriram wrote: > Hi Group, > I need to find out the status of a given sock descriptor i.e > whether it is in connected state or not. I felt that some > ioctl/fnctl/getsockopt call might help me out but couldnt get a > clue.....I want to avoid the (trial'n'error) use of read/write etc > over the sock descriptor(if theres some other way out!!) > > Any points/clues over this? > > TIA, > Sriram. > > PS: My application sits over VxWOrks 5.4(is this, in anyway, matters!) > I use the getpeername(). It will only succeed on a connected socket. --------------------------- Newsgroups: comp.os.vxworks Subject: OPENDIR Help Date: 9 Mar 2002 21:08:35 -0800 From: mpalone@gotuit.com (Mike Palone) Organization: http://groups.google.com/ Message-ID: <971e6b8f.0203092108.3d502241@posting.google.com> Hey... I am new to VxWorks and am in the middle of a WinCE port of our application. I am using Tornado v2.0.2 which uses VxWorks 5.4.2 SIMNT, since we do not have our target hardware at this point. I have read through all the threads in this group regarding the problems that have been encountered with opendir and was hoping that somebody could give me an update on it's status. Unfortunately, I spent way too much time trying to get it to work without consulting this forumn first. The problems I was having with creating directories and reading and writing to files is fixed since I did a ntPassFsDevInit("c:") ntPassFsLib is used for NT Simulations. Without this statement, creating Directories failed with an unknown device error. The remaining hurdle (as if there won't be more to come...but the memory, threading, semaphore, etc. ports are working great) I now have is that opendir simply does not work. I've exhausted all experiments. In the end, we will have a local dosFs that we will need to interface to. There is a lot of discussions in this forum regarding opendir not working with netDrv and that we should NFS. I am about ready to write the code for opendir, readdir, and closedir myself, but wanted to make sure I should proceed with that option. Basically... pDir = opendir("dirname") always returns NULL and sometimes the error is ENOTDIR 20 /* Not a directory*/ is set in errno. I would totally appreciate any help/guidance somebody can give me. Mike Palone Principal Software Engineer Gotuit Video Inc. --------------------------- Newsgroups: comp.os.vxworks Subject: HTTP GET in VxWorks? Date: 9 Mar 2002 21:20:29 -0800 From: mpalone@gotuit.com (Mike Palone) Organization: http://groups.google.com/ Message-ID: <971e6b8f.0203092120.fe309e@posting.google.com> Hi... I am new to VxWorks and am in the middle of a WinCE port of our application. I am using Tornado v2.0.2 which uses VxWorks 5.4.2 SIMNT, since we do not have our target hardware at this point. Can somebody give me advice on how to proceed on porting the HTTP GET capabilites that we have from WinCE to VxWorks? What XvWorks Library(s) should I look into? I see that there is a HTTP Server Library...but I would need to do client side HTTP GETs. I seem to remember an HTML library from some initial reading I did...not sure if that would do the trick. Hopefully I won't have to roll my own HTTP Client client side calls using Socket level programming. I have not read through the Network Programming Guides yet...maybe my answer is there. Thanks a lot in advance. Mike Palone Principal Software Engineer Gotuit Video Inc. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: What's the device name for serial port on X86 Date: 9 Mar 2002 23:32:32 -0800 From: vxworks@india.com (V R R Raju) Organization: http://groups.google.com/ Message-ID: References: <3C8958C6.E8CC3FB2@bitworkssystemsDELETETHIS.com> Dear Jon, I dont think you can open COM1 using the open function call. and the name you have specified as 1st argument in open function call is user defined in vxworks. When you install a driver using iosDevAdd function call there you specify the name. If you come to know a complete solution of this please let me know. Jon Newbill wrote in message news:<3C8958C6.E8CC3FB2@bitworkssystemsDELETETHIS.com>... > I'm trying to open COM1 on my VMIC 7750 pentium III target under VxWorks > 5.4.2. I've tried > > fd = open("/tty1", O_RDWR,0); > > fd = open("/dev/tty1", O_RDWR,0); > > fd = open("tty1", O_RDWR,0); > > All of these return fd==ERROR.. > > Jon Newbill > JonUN@bitworkssystemsREMOVTHIS.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Help! Cannot access vxworks from another network Date: 10 Mar 2002 00:59:14 -0800 From: michael.shamis@actelis.com (Michael) Organization: http://groups.google.com/ Message-ID: References: <0Baf8.69$Sk3.3211@llslave.llan.ll.mit.edu> <3C7D9038.A51390B8@dsto.defence.gov.au> <4Qpf8.71$Sk3.3151@llslave.llan.ll.mit.edu> <3C7ECF52.8429283C@dsto.defence.gov.au> <3C875618.3020108@spamm.me.l8s.co.uk> Both nets (11.0.x.x and 169.254.x.x) could be connected to other routers so we need something like default gateways. If two default gateways can not exists, may be RIP (or another protocol?) could be used to add dynamically entries to the router table? I tried RIP (see my previous letter) without success. Is it possible to use RIP for the purpose? David Laight wrote in message news:<3C875618.3020108@spamm.me.l8s.co.uk>... > Michael wrote: > > > The default gateway ("0.0.0.0") does not solve case when we want to > > access VxWorks target from two (or more) different networks > > simultaneously. > > Let's see the following configuration: > > > > > > ________________________________________ 11.0.x.x net > > | > > 11.0.7.22 > > Pc Host Gateway ... > > 10.0.1.244 10.0.6.52 ... > > |__________________|_____________________ 10.0.x.x net > > | > > | <-- Ethernen > > | > > 10.0.7.46 > > VxWorks Target > > 62.90.13.177 > > | > > | <-- Dial UP Networking PPP > > connection > > | > > 62.90.13.178 > > Gateway (WindowsNT Workstation) > > 169.254.0.1 > > | > > __________________________________|_____ 169.254.x.x net > > | > > 169.254.0.2 > > Pc host > > > > > > To connect Ethrnet interface I have to call on target > > routeAdd("0.0.0.0", "10.0.7.46"); > > > > And in order to connect to Dial Up Networking interface I have to call > > on target > > routeAdd("0.0.0.0", "169.254.0.1"); > > > > But VxWorks does not allow to have 2 defaults gateways (WindowsNT > > allows several default gateways). > > > Generally you can only have 1 default gateway. Otherwise how do you > select it - it is the DEFAULT, the one used when there isn't a > specific gateway. > > > With the above, you need to specify 10.0.6.52 as the gateway to > > 11.x.x.x network and 62.90.13.178 for the 169.254.x.x network. > > The default route is used for you route out to the great wide > outdooes (the rest of the web). > > David --------------------------- Newsgroups: comp.os.vxworks Subject: Where can i find some source code about WTX C API? Date: 10 Mar 2002 03:39:27 -0800 From: hychen@mail.ustc.edu.cn (jerry chen) Organization: http://groups.google.com/ Message-ID: <8c12f92e.0203100339.1c68d8df@posting.google.com> I want to write some program to test it. There information provided by the doc is not enough. I want more sample code. Thanks anyway! --------------------------- End of New-News digest ********************** From vxwexplo-errs@csg.lbl.gov Mon Mar 11 04:03:13 2002 From: Vxworks Exploder Date: Mon Mar 11 04:03:15 PST 2002 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Mon Mar 11 04:03:08 PST 2002 Subject: Re: VGA Driver using the WindML Subject: Re: HTTP GET in VxWorks? Subject: Re: OPENDIR Help Subject: Re: What's the device name for serial port on X86 Subject: Re: OPENDIR Help Subject: Re: PCI memory space Subject: Is there any existing example of tonoroda for me to study using tonoroda? Subject: Re: [Q] about Mutual-Exclusion Semaphore Subject: Re: Tornado 2.0.2 With gcc 2.96 Subject: Re: OPENDIR Help Subject: Re: VGA Driver using the WindML Subject: [Q] Ring Buffer Overflow Subject: Re: PCI memory space Subject: Re: PCI memory space Subject: Re: Spurious Vx Works errors during building Subject: Re: Is there any existing example of tonoroda for me to study using Subject: Re: [Q] Ring Buffer Overflow ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Re: VGA Driver using the WindML Date: 10 Mar 2002 05:15:45 -0800 From: aephraty@rugged.com (Avi Ephraty) Organization: http://groups.google.com/ Message-ID: <43191605.0203100515.61f52360@posting.google.com> References: <43191605.0203062308.206d66f8@posting.google.com> <488e459a.0203071046.46127df2@posting.google.com> John Thanks for your answer. Did you port a driver that used the VGA register or some component specific register set? In any case can you please advice me which of the XFree86 will be the best driver to port? Bye avi john_94501@yahoo.com (John) wrote in message news:<488e459a.0203071046.46127df2@posting.google.com>... > Hello, > > aephraty@rugged.com (Avi Ephraty) wrote in message news:<43191605.0203062308.206d66f8@posting.google.com>... > > Is there someone who wrote a VGA driver using WindML (preferbly using > > the component Permedia3 of 3DLABS)? > > > > I wonder how complicated is this task ?(How much time it should take?) > > If you have a rough idea of what you're doing with a video driver, you > can port an xfree86 driver to WindML's driver format in a few days > (I've done two now that way). That should get you the basic chip setup > and some of the accelerations too in most cases. > > > I also want to integrate it with Video Overlay. I wonder how > > complicated this task is? > > This one I don't know, the drivers I've done have been for more > standard chipsets. > > HTH, > > John... --------------------------- Newsgroups: comp.os.vxworks Subject: Re: HTTP GET in VxWorks? Date: Sun, 10 Mar 2002 20:10:22 +0200 From: "Leonid Rosenboim" Organization: Verio Message-ID: References: <971e6b8f.0203092120.fe309e@posting.google.com> Mike, HTTP client is really as simple as 1,2,3... I did write a few partial clients on VxWorks and other OSes ad-hoc for specific needs, so if you can define your needs reasonable well, you can implement it on top of sockets just as well. HTML is of course another ball game, if you need it, WRS used to have an add-on product they licensed from NCI (now Liberate) that is an HTML browser on top of VxWorks. Leonid "Mike Palone" wrote in message news:971e6b8f.0203092120.fe309e@posting.google.com... > Hi... > > I am new to VxWorks and am in the middle of a WinCE port of our > application. I am using Tornado v2.0.2 which uses VxWorks 5.4.2 SIMNT, > since we do not have our target hardware at this point. > > Can somebody give me advice on how to proceed on porting the HTTP GET > capabilites that we have from WinCE to VxWorks? What XvWorks > Library(s) should I look into? I see that there is a HTTP Server > Library...but I would need to do client side HTTP GETs. I seem to > remember an HTML library from some initial reading I did...not sure if > that would do the trick. Hopefully I won't have to roll my own HTTP > Client client side calls using Socket level programming. I have not > read through the Network Programming Guides yet...maybe my answer is > there. Thanks a lot in advance. > > Mike Palone > Principal Software Engineer > Gotuit Video Inc. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: OPENDIR Help Date: Sun, 10 Mar 2002 20:32:23 +0200 From: "Leonid Rosenboim" Organization: Verio Message-ID: References: <971e6b8f.0203092108.3d502241@posting.google.com> Mike, passFs is just a hack, quick and dirty means of accessing the work station file during development. Since it wont be used for the application, it is not worth much effort. Until you have your final target, you can try to use a virtual disk running full dosFs on it, which will be much closer to your final application. If you cant make a virtual disk, make a RAM disk with dosFs, and fill it with the files you need on initialization. Also, there is the TSFS - Target Server File System which you could try, but I have never used it and dont know if it supports opendir and the like. "Mike Palone" wrote in message news:971e6b8f.0203092108.3d502241@posting.google.com... > Hey... > > I am new to VxWorks and am in the middle of a WinCE port of our > application. I am using Tornado v2.0.2 which uses VxWorks 5.4.2 SIMNT, > since we do not have our target hardware at this point. I have read > through all the threads in this group regarding the problems that have > been encountered with opendir and was hoping that somebody could give > me an update on it's status. Unfortunately, I spent way too much time > trying to get it to work without consulting this forumn first. The > problems I was having with creating directories and reading and > writing to files is fixed since I did a ntPassFsDevInit("c:") > ntPassFsLib is used for NT Simulations. Without this statement, > creating Directories failed with an unknown device error. The > remaining hurdle (as if there won't be more to come...but the memory, > threading, semaphore, etc. ports are working great) I now have is that > opendir simply does not work. I've exhausted all experiments. In the > end, we will have a local dosFs that we will need to interface to. > There is a lot of discussions in this forum regarding opendir not > working with netDrv and that we should NFS. I am about ready to write > the code for opendir, readdir, and closedir myself, but wanted to make > sure I should proceed with that option. Basically... pDir = > opendir("dirname") always returns NULL and sometimes the error is > ENOTDIR 20 /* Not a directory*/ is set in errno. I would totally > appreciate any help/guidance somebody can give me. > > Mike Palone > Principal Software Engineer > Gotuit Video Inc. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: What's the device name for serial port on X86 Date: 10 Mar 2002 10:46:12 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203101046.7ce3c2bf@posting.google.com> References: <3C8958C6.E8CC3FB2@bitworkssystemsDELETETHIS.com> Hello, The name you are looking for is /tyCo/0 (unless you've changed the defaults). FYI, you can get a list of available devices using the devs command (definitely works from the target shell, will probably also work from windsh). HTH, John... Jon Newbill wrote in message news:<3C8958C6.E8CC3FB2@bitworkssystemsDELETETHIS.com>... > I'm trying to open COM1 on my VMIC 7750 pentium III target under VxWorks > 5.4.2. I've tried > > fd = open("/tty1", O_RDWR,0); > > fd = open("/dev/tty1", O_RDWR,0); > > fd = open("tty1", O_RDWR,0); > > All of these return fd==ERROR.. > > Jon Newbill > JonUN@bitworkssystemsREMOVTHIS.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: OPENDIR Help Date: 10 Mar 2002 14:38:18 -0800 From: mpalone@gotuit.com (Mike Palone) Organization: http://groups.google.com/ Message-ID: <971e6b8f.0203101438.300fe42c@posting.google.com> References: <971e6b8f.0203092108.3d502241@posting.google.com> Thanks for the feedback Leonid. Not sure how to create a virtual disk or RAM disk yet...I'll have to research. Lot of hoops to jump through because of a documented API does not work. Putting passFs aside for the time being, can somebody please tell me that it is in fact true that opendir does not work for dosFs? Should I dive further on the threads in this forum suggesting the use of NFS rather than netDrv? Can I use NFS for a local hard drive? It is a bug. If I can create directories and files...and read and write to files...I should be able to do an opendir. I started experiments toward implementing opendir functionality myself, but at this point even: Status = ioctl (fd, FIOREADDIR, (int)&dirStruct); gives an errno of ENOTDIR after opening a DIR. Our target will have a local hard disk, and without knowing the details, the idea of copying all the files I need to a RAM Disk just to enumerate a directory worries me. The other interesting thing is that I looked at the code in usrLib.c since it implements the ls command .... and it works from the command shell. It uses opendir. However there is the following code in the routine that I think may be executing as opposed to the opendir command. if (_func_netLsByName != NULL) { if ((*_func_netLsByName) (dirname) == OK) return (OK); else if (errno != S_netDrv_UNKNOWN_REQUEST) return (ERROR); } Thanks again... Mike "Leonid Rosenboim" wrote in message news:... > Mike, > > passFs is just a hack, quick and dirty means of accessing > the work station file during development. Since it wont > be used for the application, it is not worth much effort. > > Until you have your final target, you can try to use > a virtual disk running full dosFs on it, which will be > much closer to your final application. If you cant > make a virtual disk, make a RAM disk with dosFs, > and fill it with the files you need on initialization. > > Also, there is the TSFS - Target Server File System > which you could try, but I have never used it and dont > know if it supports opendir and the like. > > "Mike Palone" wrote in message > news:971e6b8f.0203092108.3d502241@posting.google.com... > > Hey... > > > > I am new to VxWorks and am in the middle of a WinCE port of our > > application. I am using Tornado v2.0.2 which uses VxWorks 5.4.2 SIMNT, > > since we do not have our target hardware at this point. I have read > > through all the threads in this group regarding the problems that have > > been encountered with opendir and was hoping that somebody could give > > me an update on it's status. Unfortunately, I spent way too much time > > trying to get it to work without consulting this forumn first. The > > problems I was having with creating directories and reading and > > writing to files is fixed since I did a ntPassFsDevInit("c:") > > ntPassFsLib is used for NT Simulations. Without this statement, > > creating Directories failed with an unknown device error. The > > remaining hurdle (as if there won't be more to come...but the memory, > > threading, semaphore, etc. ports are working great) I now have is that > > opendir simply does not work. I've exhausted all experiments. In the > > end, we will have a local dosFs that we will need to interface to. > > There is a lot of discussions in this forum regarding opendir not > > working with netDrv and that we should NFS. I am about ready to write > > the code for opendir, readdir, and closedir myself, but wanted to make > > sure I should proceed with that option. Basically... pDir = > > opendir("dirname") always returns NULL and sometimes the error is > > ENOTDIR 20 /* Not a directory*/ is set in errno. I would totally > > appreciate any help/guidance somebody can give me. > > > > Mike Palone > > Principal Software Engineer > > Gotuit Video Inc. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: PCI memory space Date: Mon, 11 Mar 2002 09:30:12 +1030 From: Tim Shaw Organization: Defence Science and Technology Organisation Message-ID: <3C8BE57C.1D72557D@dsto.defence.gov.au> References: <2b0ae335.0203070425.4ca35b57@posting.google.com> The MVME2604 has two modes, PReP and EXTEND_VME - EXTENDED_VME is now the default, but it may have been PReP for rev 1.2 - do you know which you are using? The answer will affect your memory map. You may need to make an entry in your sysPhysMemDesc table corresponding to the region you've mapped (depending on whether the PCI space you're using has been mapped yet or not). It will probably look something like { (void *)CPU_PCI_MEM_ADRS2, (void *)CPU_PCI_MEM_ADRS2, CPU_PCI_MEM_SIZE2, VM_STATE_MASK_VALID | ..... |VM_STATE_MASK_CACHEABLE, VM_STATE_VALID | ..... | VM_STATE_MASK_CACHEABLE } where CPU_PCI_MEM_SIZE2 is 256 MB and CPU_PCI_MEM_ADRS2 is the pci address as the CPU sees it (as described by Michael Lawnick. Part of this region may already be defined, in which case just extend it if possible. Ahn Jung Hoon wrote: > Hi, all > > I have a problem in accessing pci memory space > > Previously, > My work space is.. > > VxWorks version 5.4 > KERNEL: WIND version 2.5 > CPU: Motorola Unknown - MPC 750. Processor #0. > Memory Size: 0x10000000. BSP version 1.2/0. > WDB: Ready. > > well.. > I have PCI memory card, and it's size is 256MB.. > > By default, it was written in MV2600.h > #define CPU_PCI_MEM_SIZE 0x01000000 /* 16 meg */ > > so, I modified it as following.. > #define CPU_PCI_MEM_SIZE 0x20000000 /* 256 meg */ > > Then I met data access error as following.. > > ------------------------------------------------------- > -> pciHeaderShow(0, 0x10, 0) > vendor ID = 0x11b0 > device ID = 0x0200 > command register = 0x0002 > status register = 0x0000 > revision ID = 0x00 > class code = 0x05 > sub class code = 0x00 > programming interface = 0x00 > cache line = 0x00 > latency time = 0xf8 > header type = 0x00 > BIST = 0x00 > base address 0 = 0x10000000 > base address 1 = 0x00000000 > base address 2 = 0x00000000 > base address 3 = 0x00000000 > base address 4 = 0x00000000 > base address 5 = 0x00000000 > cardBus CIS pointer = 0x00000000 > sub system vendor ID = 0x4754 > sub system ID = 0x0005 > expansion ROM base address = 0x00000000 > interrupt line = 0x03 > interrupt pin = 0x00 > min Grant = 0x00 > max Latency = 0x00 > value = 0 = 0x0 > -> d 0x10000000 > 10000000: > data access > Exception current instruction address: 0x0015c070 > Machine Status Register: 0x0000b030 > Data Access Register: 0x10000000 > Condition Register: 0x48200080 > Data storage interrupt Register: 0x40000000 > > 1812e0 vxTaskEntry +60 : shell () > 177118 shell +18c: 177144 () > 177368 shell +3dc: execute () > 1774ec execute +d8 : yyparse () > 1a96ec yyparse +7a8: 1a7634 () > 1a77ac yystart +8f8: d () > shell restarted. > -------------------------------------------------------------- > > But When I modified it as following, I could success to display and modified > at PCI_BASE_ADDR(0x08000000).. > #define CPU_PCI_MEM_SIZE 0x10000000 /* 128 meg */ > > .. > > I think that only what I had to do is to modify CPU_PCI_MEM_SIZE > for memory access more than 16MB.. > > But.. Maybe, it seems to be incorrect.. > > Please.. > Can anybody let me understand in the easiest way what is problem. --------------------------- Newsgroups: comp.os.vxworks Subject: Is there any existing example of tonoroda for me to study using tonoroda? Date: 10 Mar 2002 17:59:43 -0800 From: zhoul@blrcsv.china.bell-labs.com (zlybupt) Organization: http://groups.google.com/ Message-ID: <989cdae4.0203101759.ebc548c@posting.google.com> Give me a website if there exists any! Thank you very much! --------------------------- Newsgroups: comp.os.vxworks Subject: Re: [Q] about Mutual-Exclusion Semaphore Date: Fri, 8 Mar 2002 09:34:19 +0100 From: "Mario Semo" Organization: Nextra Telekom GmbH Message-ID: References: <6fb8119a.0203072217.f24ce32@posting.google.com> Hello, mutex sema4 are to protect a task against another task, but not a task against itself. if you (task) own a sema4, you can take it again and again. (but you have to unlock it the same number of times). PS: its the same under OS/2 and Windows. And i expect its the same with other OSes too. - -- regards, Mario Semo. http://www.kirchnersoft.com belliny, Mint~* wrote in message news:6fb8119a.0203072217.f24ce32@posting.google.com... > below is typical mutual-exclusion semaphore example. > semaphore's purpose is to protect the shared resource or something > else/ > with semMLib, it can be taken more than once by the task that owns it > before finally being released. then, how can i control the access to > resource? > > as below, both funcA and funcB can access same resource at the same > time. > > Please let me know exactly what i knew wrong... > thanks in advance... > > SEM_ID semM; > > semM = semMCreate(...); > > funcA() > { > semTake(semM, WAIT_FOREVER); > ... > funcB(); > ... > SemGive(semM); > } > > funcB() > { > semTake(semM, WAIT_FOREVER); > ... > semGive(semM); > } > > -> init > 0: init(void) > 1: ios::init(streambuf *, ostream *) > 2: filebuf::init(void) > Choose the number of the symbol to use: 0 > value = 84797920 = 0x50de9e0 > -> funcA > funcA : got mutual-exclusion semaphore > funcB : got mutual-exclusion semaphore > funcB : Give mutual-exclusion semaphore > funcA : Give mutual-exclusion semaphore > value = 40 = 0x28 = '(' > -> --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Tornado 2.0.2 With gcc 2.96 Date: 10 Mar 2002 22:43:49 -0800 From: shoz@elbit.co.il (shoz) Organization: http://groups.google.com/ Message-ID: References: <9ec53d11.0203042356.73d7b673@posting.google.com> Bill Pringlemeir wrote in message news:... > >> Yes 2.96 is somthing you can get from WindRiver , but it have > >> problems that I want to see if someone solve. > > Mario> i ve got it from vxWorks too (from my sales rep, after i asked > Mario> for). But i didnt installed it, since it was just avail for > Mario> x86 and i need the same compiler feastures for multiple > Mario> targets. What problems did you experience with 2.96 > > Well, I am using gcc 2.96 with the T2.1.1 distribution (on an ARM > 710A). Not only do I appear to be a `trail blazer', but I will > actually share the information I have as oppose to waiting for someone > else :-P [that is a childish jibe] > > Anyways, it appears that having a better C++ compiler can be a draw > back, as Dave Korn explains to me in this thread, > > "http://groups.google.com/groups?th=17097eddd0275f62" > > The entire thread is probably relevant to this conversation [it is > probably still fresh on your news server!]. Anyways, there are > several bugs in the compiler. Some are in the 2.7 compiler, but might > not be exposed as readily. They include code to fix the stack values > in the compiler and a patched cygwin dll. Somebody asked for these > via email. I don't think this is `fair' to me as it would not be nice > for me to do to this to WRS, even though it is not nice of them to > make these fixes generally available. > > The stack fix can be done with mingw tools [or cross tools built for > an x86 pe target, but you are probably on NT to begin with...]. I > don't know what has been distributed with a fix to the cygwin DLL. Do > I have a right to re-distribute this? From other conversation, it > appears that this is contention for people using the cygwin tools. I > don't use the cygwin tools. If you did, this would introduce more > problems no doubt. > > The 2.96 compiler is much better in my opinion; generating better code > and allowing more current C++ constructs. I have been waiting for such > a release for some time. Rather ironic that most *nix machines will > be going to 3.xx soon. > > I would be interested in other specific problems and not vague > allusions. > > Regards, > Bill Pringlemeir. The Problems I find are was related to stl. 1. stl code and see that the installation of gnu296 add an #ifdef in stl headers: #if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__>=96) || defined(__mcore__)) #if defined(__cplusplus) extern "C++" { #endif #include_next #if defined(__cplusplus) } #endif #else I try to see where __GNUC_MINOR__ declare but I didn't find I only know it's set to 7 (version 2.7 maybe it internal in the compiler). 2. #include_next mean search in the rest of the path file with the name filename. Here what I do: - ------------------ 1. define __GNUC_MINOR__=96. 2. add to search path : - -I$(WIND_BASE)/host/$(WIND_HOST_TYPE)/include/g++-3 - -I$(WIND_BASE)/host/$(WIND_HOST_TYPE)/lib/gcc-lib/i586-wrs-vxworks/2.96-PentiumIII-991112/include - -I$(WIND_BASE)/host/$(WIND_HOST_TYPE)/i586-wrs-vxworks/include 3. add compilation flags -fno-rtti -fno-exceptions (if not using this there redefinition error between $(WIND_BASE)/target/lib/libPENTIUMgnuvx.a $(WIND_BASE)/host/$(WIND_HOST_TYPE)/lib/gcc-lib/i586-wrs-vxworks/2.96-PentiumIII-991112/libgcc.a . 4. change in stl_alloc.h -> don't throw exception. This is what I know. Regards, Oz Shalev --------------------------- Newsgroups: comp.os.vxworks Subject: Re: OPENDIR Help Date: Mon, 11 Mar 2002 10:24:19 +0200 From: "Leonid Rosenboim" Organization: Verio Message-ID: References: <971e6b8f.0203092108.3d502241@posting.google.com> <971e6b8f.0203101438.300fe42c@posting.google.com> Pardon my French, passFs and netDrv font support dirLib properly. dosFs in all its forms and versions fully supports dirLib (which includes opendir ) and mkdir() so you should have no problems doing what you need to do on a RAM disk or virtual disk, both of which will use dosFs on top of the block device driver. As to NFS, since you are on a WIndows host, you will find it quite difficult to set up NFS properly between the VxSim and your MSFT host, therefore my RAM disk recommendation, its the easiest way out, and closest to your final situation. "Mike Palone" wrote in message news:971e6b8f.0203101438.300fe42c@posting.google.com... > Thanks for the feedback Leonid. Not sure how to create a virtual disk > or RAM disk yet...I'll have to research. Lot of hoops to jump through > because of a documented API does not work. Putting passFs aside for > the time being, can somebody please tell me that it is in fact true > that opendir does not work for dosFs? Should I dive further on the > threads in this forum suggesting the use of NFS rather than netDrv? > Can I use NFS for a local hard drive? It is a bug. If I can create > directories and files...and read and write to files...I should be able > to do an opendir. I started experiments toward implementing opendir > functionality myself, but at this point even: > > Status = ioctl (fd, FIOREADDIR, (int)&dirStruct); > > gives an errno of ENOTDIR after opening a DIR. Our target will have a > local hard disk, and without knowing the details, the idea of copying > all the files I need to a RAM Disk just to enumerate a directory > worries me. > > The other interesting thing is that I looked at the code in usrLib.c > since it implements the ls command .... and it works from the command > shell. It uses opendir. However there is the following code in the > routine that I think may be executing as opposed to the opendir > command. > > if (_func_netLsByName != NULL) > { > if ((*_func_netLsByName) (dirname) == OK) > return (OK); > else if (errno != S_netDrv_UNKNOWN_REQUEST) > return (ERROR); > } > > Thanks again... > Mike > > > "Leonid Rosenboim" wrote in message news:... > > Mike, > > > > passFs is just a hack, quick and dirty means of accessing > > the work station file during development. Since it wont > > be used for the application, it is not worth much effort. > > > > Until you have your final target, you can try to use > > a virtual disk running full dosFs on it, which will be > > much closer to your final application. If you cant > > make a virtual disk, make a RAM disk with dosFs, > > and fill it with the files you need on initialization. > > > > Also, there is the TSFS - Target Server File System > > which you could try, but I have never used it and dont > > know if it supports opendir and the like. > > > > "Mike Palone" wrote in message > > news:971e6b8f.0203092108.3d502241@posting.google.com... > > > Hey... > > > > > > I am new to VxWorks and am in the middle of a WinCE port of our > > > application. I am using Tornado v2.0.2 which uses VxWorks 5.4.2 SIMNT, > > > since we do not have our target hardware at this point. I have read > > > through all the threads in this group regarding the problems that have > > > been encountered with opendir and was hoping that somebody could give > > > me an update on it's status. Unfortunately, I spent way too much time > > > trying to get it to work without consulting this forumn first. The > > > problems I was having with creating directories and reading and > > > writing to files is fixed since I did a ntPassFsDevInit("c:") > > > ntPassFsLib is used for NT Simulations. Without this statement, > > > creating Directories failed with an unknown device error. The > > > remaining hurdle (as if there won't be more to come...but the memory, > > > threading, semaphore, etc. ports are working great) I now have is that > > > opendir simply does not work. I've exhausted all experiments. In the > > > end, we will have a local dosFs that we will need to interface to. > > > There is a lot of discussions in this forum regarding opendir not > > > working with netDrv and that we should NFS. I am about ready to write > > > the code for opendir, readdir, and closedir myself, but wanted to make > > > sure I should proceed with that option. Basically... pDir = > > > opendir("dirname") always returns NULL and sometimes the error is > > > ENOTDIR 20 /* Not a directory*/ is set in errno. I would totally > > > appreciate any help/guidance somebody can give me. > > > > > > Mike Palone > > > Principal Software Engineer > > > Gotuit Video Inc. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: VGA Driver using the WindML Date: 11 Mar 2002 00:44:34 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203110044.8376e6e@posting.google.com> References: <43191605.0203062308.206d66f8@posting.google.com> <488e459a.0203071046.46127df2@posting.google.com> <43191605.0203100515.61f52360@posting.google.com> Hello, aephraty@rugged.com (Avi Ephraty) wrote in message news:<43191605.0203100515.61f52360@posting.google.com>... > John > > Thanks for your answer. > > Did you port a driver that used the VGA register or some component > specific register set? One of each; the second one (a NeoMagic chipset) used the VGA registers, but all done through a "standard" library in the xfree86 tree. If you download an xfree86 source tree, look in xc/programs/Xserver/hw/xfree86/vgahw for this code. > In any case can you please advice me which of the XFree86 will be the > best driver to port? Not sure I get what you mean... the best one would be the one that already supports your chosen graphics chipset, or one very close to it (another member of the same family perhaps if you chosen device is very new). You mentioned the Permedia 3, drivers for which you can find under xc/programs/Xserver/hw/xfree86/drivers/glint. I would start with those and see how far you can get. Skip the accelerations for the first pass, just get the screen up and running. I get a bitmap image the size of the screen, in the correct colour depth, and just load it into the frame buffer. That will allow you to get the basics right (timings, palettes etc). After that you can work on the accelerations. HTH, John... > Bye > avi > > john_94501@yahoo.com (John) wrote in message news:<488e459a.0203071046.46127df2@posting.google.com>... > > Hello, > > > > aephraty@rugged.com (Avi Ephraty) wrote in message news:<43191605.0203062308.206d66f8@posting.google.com>... > > > Is there someone who wrote a VGA driver using WindML (preferbly using > > > the component Permedia3 of 3DLABS)? > > > > > > I wonder how complicated is this task ?(How much time it should take?) > > > > If you have a rough idea of what you're doing with a video driver, you > > can port an xfree86 driver to WindML's driver format in a few days > > (I've done two now that way). That should get you the basic chip setup > > and some of the accelerations too in most cases. > > > > > I also want to integrate it with Video Overlay. I wonder how > > > complicated this task is? > > > > This one I don't know, the drivers I've done have been for more > > standard chipsets. > > > > HTH, > > > > John... --------------------------- Newsgroups: comp.os.vxworks Subject: [Q] Ring Buffer Overflow Date: 11 Mar 2002 01:20:01 -0800 From: kotaeji@hanmail.net (Kim Tae Hyung) Organization: http://groups.google.com/ Message-ID: Hi~ I have a question about ring buffer overflow. I have read many articles in this group about ring buffer overflow while doing netJobAdd(). And I concluded that it is mainly because of the lack of CPU Power. So vxWorks cannot help but show those messages. But I want to remove those messages "ring buffer overflow". I think if I can reach ring buffer data structure or global variable, I can remove those messages. But as you know, we cannot see any variable in the function "netJobAdd". Is there any possible way to see a variable in the "netJobAdd" or the source of netJobAdd? Any comment will be appreciated. Thanks. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: PCI memory space Date: Mon, 11 Mar 2002 19:09:16 +0900 From: "???" Organization: Korea Telecom Message-ID: References: <2b0ae335.0203070425.4ca35b57@posting.google.com> <3C8BE57C.1D72557D@dsto.defence.gov.au> Hello. Tim Shaw.. Thank you very much for your answer.. Your answer was good idea, and I solved my problem.. Namely, I could access 0x10000000 as doing follow.. In mv2600.h /* Psuedo PREP memory map as seen from CPU */ #define CPU_PCI_ISA_IO_ADRS 0x80000000 /* base of ISA I/O space */ #define CPU_PCI_ISA_MEM_ADRS 0xc0000000 /* base of ISA mem space */ #define CPU_PCI_IO_ADRS 0x81000000 /* base of PCI I/O space */ #define CPU_PCI_MEM_ADRS 0xc1000000 /* base of PCI mem space */ #define CPU_PCI_MEM_ADRS_1MB 0xc0100000 /* base of PCI 1MB mem space */ #define CPU_PCI_ISA_IO_SIZE 0x00010000 /* 64 kbytes */ #define CPU_PCI_IO_SIZE 0x00800000 /* 8 meg */ #define CPU_PCI_IO_UPPER_ADRS (CPU_PCI_ISA_IO_ADRS>>16) #define CPUCRA_HI (CPU_PCI_ISA_IO_ADRS>>16) #define CPUCRA_LO 0x0800 #define CPU_PCI_ISA_MEM_SIZE 0x00010000 /* 64 kbytes */ #define CPU_PCI_MEM_SIZE 0x20000000 In sysLib.c { (void *)0x10000000/*CPU_PCI_MEM_ADRS2*/, (void *)0x10000000/*CPU_PCI_MEM_ADRS2*/, 0x20000000/*CPU_PCI_MEM_SIZE2*/, VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE | VM_STATE_MASK_CACHEABLE | VM_STATE_MASK_MEM_COHERENCY, VM_STATE_VALID | VM_STATE_WRITABLE | VM_STATE_CACHEABLE | VM_STATE_MEM_COHERENCY }, The result is as following.. - -> pciHeaderShow(0, 0x10, 0) vendor ID = 0x11b0 device ID = 0x0200 command register = 0x0002 status register = 0x0000 revision ID = 0x00 class code = 0x05 sub class code = 0x00 programming interface = 0x00 cache line = 0x00 latency time = 0xf8 header type = 0x00 BIST = 0x00 base address 0 = 0x10000000 base address 1 = 0x00000000 base address 2 = 0x00000000 base address 3 = 0x00000000 base address 4 = 0x00000000 base address 5 = 0x00000000 cardBus CIS pointer = 0x00000000 sub system vendor ID = 0x4754 sub system ID = 0x0005 expansion ROM base address = 0x00000000 interrupt line = 0x03 interrupt pin = 0x00 min Grant = 0x00 max Latency = 0x00 value = 0 = 0x0 - -> d 0x10000000 10000000: ffff ffff ffff ffff ffff ffff ffff ffff *................* 10000010: ffff ffff ffff ffff ffff ffff ffff ffff *................* 10000020: ffff ffff ffff ffff ffff ffff ffff ffff *................* 10000030: ffff ffff ffff ffff ffff ffff ffff ffff *................* 10000040: ffff ffff ffff ffff ffff ffff ffff ffff *................* 10000050: ffff ffff ffff ffff ffff ffff ffff ffff *................* 10000060: ffff ffff ffff ffff ffff ffff ffff ffff *................* 10000070: ffff ffff ffff ffff ffff ffff ffff ffff *................* 10000080: ffff ffff ffff ffff ffff ffff ffff ffff *................* 10000090: ffff ffff ffff ffff ffff ffff ffff ffff *................* 100000a0: ffff ffff ffff ffff ffff ffff ffff ffff *................* 100000b0: ffff ffff ffff ffff ffff ffff ffff ffff *................* 100000c0: ffff ffff ffff ffff ffff ffff ffff ffff *................* 100000d0: ffff ffff ffff ffff ffff ffff ffff ffff *................* 100000e0: ffff ffff ffff ffff ffff ffff ffff ffff *................* 100000f0: ffff ffff ffff ffff ffff ffff ffff ffff *................* value = 21 = 0x15 - -> m 0x10000000 10000000: ffff-1 10000002: ffff-2 10000004: ffff-3 10000006: ffff-4 10000008: ffff-5 1000000a: ffff-6 1000000c: ffff-7 1000000e: ffff-8 10000010: ffff-9 10000012: ffff-0 10000014: ffff-. value = 1 = 0x1 - -> d 0x10000000 10000000: 0001 0002 0003 0004 0005 0006 0007 0008 *................* 10000010: 0009 0000 ffff ffff ffff ffff ffff ffff *................* 10000020: ffff ffff ffff ffff ffff ffff ffff ffff *................* 10000030: ffff ffff ffff ffff ffff ffff ffff ffff *................* 10000040: ffff ffff ffff ffff ffff ffff ffff ffff *................* 10000050: ffff ffff ffff ffff ffff ffff ffff ffff *................* 10000060: ffff ffff ffff ffff ffff ffff ffff ffff *................* 10000070: ffff ffff ffff ffff ffff ffff ffff ffff *................* 10000080: ffff ffff ffff ffff ffff ffff ffff ffff *................* 10000090: ffff ffff ffff ffff ffff ffff ffff ffff *................* 100000a0: ffff ffff ffff ffff ffff ffff ffff ffff *................* 100000b0: ffff ffff ffff ffff ffff ffff ffff ffff *................* 100000c0: ffff ffff ffff ffff ffff ffff ffff ffff *................* 100000d0: ffff ffff ffff ffff ffff ffff ffff ffff *................* 100000e0: ffff ffff ffff ffff ffff ffff ffff ffff *................* 100000f0: ffff ffff ffff ffff ffff ffff ffff ffff *................* value = 21 = 0x15 But.. Unfortunenatelly, I met some other problems. The first problem is.. The Value was modified is changed again, when I access in 0x1000000, 0x2000000, 0x3000000.. The second problem is .. to be able to access in 0x1000000, 0x2000000, 0x3000000 ... so on Hm.. Is That range system area.?? I will list problem below.. .. Can you tell me what is the reason or sollution..?? I read many manual was written in Motorolla. but I don't know why these problems come to me.. - -> d 0x1000000 01000000: 6194 288c 9840 a1e0 2dcb 12e9 33aa 1420 *a.(..@..-...3.. * 01000010: 8000 1200 020a 3108 0000 0100 0c00 0081 *......1.........* 01000020: 3400 020a 5169 1004 8434 8010 1130 0850 *4...Qi...4...0.P* 01000030: 8100 0001 0000 0040 0000 6040 8000 0000 *.......@..`@....* 01000040: 0792 3015 290a a34d 3818 3011 46e2 4c36 *..0.)..M8.0.F.L6* 01000050: 0000 0040 0420 5411 40e0 ac20 0828 0145 *...@. T.@.. .(.E* 01000060: 2821 282a 09c1 42b9 5a15 506a 82af 4d18 *(!(*..B.Z.Pj..M.* 01000070: 0040 0005 0204 2000 0020 8481 0900 1008 *.@.... .. ......* 01000080: a279 4350 25c5 3882 0209 02a4 c0ca 0411 *.yCP%.8.........* 01000090: 0000 8002 4010 0200 0000 5000 1000 2002 *....@.....P... .* 010000a0: 0c44 0098 1921 4071 2818 4012 8222 1007 *.D...!@q(.@.."..* 010000b0: 0000 0064 0080 0880 0000 0100 0040 0220 *...d.........@. * 010000c0: 8b40 3091 6260 1022 0c10 0c08 d8c2 2a45 *.@0.b`."......*E* 010000d0: 4080 0402 0440 8000 1010 1204 0000 0200 *@....@..........* 010000e0: 8eac 6028 c1b0 1dd0 4497 30b8 8114 6028 *..`(....D.0...`(* 010000f0: 2020 0080 0220 0000 2120 0000 0400 4430 * ... ..! ....D0* value = 21 = 0x15 - -> d 0x2000000 02000000: 0909 0909 f6f6 f6f6 f5b8 6d80 75e0 10c7 *..........m.u...* 02000010: a1d5 4182 00fa 3d95 b60c 4800 d813 001c *..A...=...H.....* 02000020: 766f 1401 a0bf 8d12 a7fa c904 dcfb 18ac *vo..............* 02000030: 9630 0800 0260 7a05 0096 5200 76a4 0041 *.0...`z...R.v..A* 02000040: 4f05 2044 7176 5b25 887c 9254 cf4f 64ff *O. Dqv[%.|.T.Od.* 02000050: c9fa 3c02 0001 6a51 f597 2600 217c 000a *..<...jQ..&.!|..* 02000060: 1d75 c2a0 40d2 4996 7126 9b06 cc43 0c4d *.u..@.I.q&...C.M* 02000070: 2714 0200 0011 8d6b 4691 5000 03a0 00f1 *'......kF.P.....* 02000080: f678 2304 88f6 26f9 52eb f500 7a27 8ef5 *.x#...&.R...z'..* 02000090: 4488 0400 0021 de45 d9f6 bf20 9752 109c *D....!.E... .R..* 020000a0: bdff 1086 00fe effc d9d3 5857 bbef 89b8 *..........XW....* 020000b0: 4241 0500 0049 8800 8cb6 8200 4018 00e7 *BA...I......@...* 020000c0: 16d3 8611 687f 3e5f ee3b 6f29 617d 22d9 *....h.>_.;o)a}".* 020000d0: 05a6 0140 00e2 da34 377c 1e00 cacf 00e7 *...@...47|......* 020000e0: 3eff 15a2 69ff 57cb 98d3 d214 eacf 20ba *>...i.W....... .* 020000f0: f688 2000 00e7 a331 c200 fd82 d036 0444 *.. ....1.....6.D* value = 21 = 0x15 - -> d 0x3000000 03000000: 0554 0405 a864 0a27 6240 68c0 4242 cc20 *.T...d.'b@h.BB. * 03000010: 0010 0000 0001 8000 0000 1100 1012 0002 *................* 03000020: 0c04 1010 0082 0099 0200 1603 00a2 7388 *..............s.* 03000030: 3000 0100 5000 0040 0d00 2040 4400 0000 *0...P..@.. @D...* 03000040: 15c0 07db 5ea1 518f 26b7 145a 3931 62d1 *....^.Q.&..Z91b.* 03000050: 0800 1800 0088 0080 0000 0201 0440 c300 *.............@..* 03000060: 48ec 038e 8000 61c1 2366 5120 121e 4841 *H.....a.#fQ ..HA* 03000070: 5410 2000 0012 0000 4800 0003 0020 0000 *T. .....H.... ..* 03000080: a074 3f51 ce30 ae30 25a3 4102 afe8 0345 *.t?Q.0.0%.A....E* 03000090: 0080 0000 0140 0040 4008 0204 1080 0880 *.....@.@@.......* 030000a0: 0a1c 2192 ce01 8293 2101 606c 2d1c 6407 *..!.....!.`l-.d.* 030000b0: 0060 0004 2402 1008 0000 0010 0408 0200 *.`..$...........* 030000c0: 0525 0cb4 38e9 4c4d 77a0 6422 3656 3b32 *.%..8.LMw.d"6V;2* 030000d0: 4004 0000 0000 4200 0000 0004 0001 0000 *@.....B.........* 030000e0: 1698 4c56 7796 8c49 0d8d 2c02 6c21 6ca0 *..LVw..I..,.l!l.* 030000f0: 0008 0064 0002 2004 0080 0041 0800 0014 *...d.. ....A....* value = 21 = 0x15 - -> d 0x10000000 10000000: ffff ffff ffff ffff ffff ffff ffff ffff *................* 10000010: ffff ffff ffff ffff ffff ffff ffff ffff *................* 10000020: ffff ffff ffff ffff ffff ffff ffff ffff *................* 10000030: ffff ffff ffff ffff ffff ffff ffff ffff *................* 10000040: ffff ffff ffff ffff ffff ffff ffff ffff *................* 10000050: ffff ffff ffff ffff ffff ffff ffff ffff *................* 10000060: ffff ffff ffff ffff ffff ffff ffff ffff *................* 10000070: ffff ffff ffff ffff ffff ffff ffff ffff *................* 10000080: ffff ffff ffff ffff ffff ffff ffff ffff *................* 10000090: ffff ffff ffff ffff ffff ffff ffff ffff *................* 100000a0: ffff ffff ffff ffff ffff ffff ffff ffff *................* 100000b0: ffff ffff ffff ffff ffff ffff ffff ffff *................* 100000c0: ffff ffff ffff ffff ffff ffff ffff ffff *................* 100000d0: ffff ffff ffff ffff ffff ffff ffff ffff *................* 100000e0: ffff ffff ffff ffff ffff ffff ffff ffff *................* 100000f0: ffff ffff ffff ffff ffff ffff ffff ffff *................* value = 21 = 0x15 - -> As if above, the problem is two. - ----- Original Message ----- From: "Tim Shaw" Newsgroups: comp.os.vxworks Sent: Monday, March 11, 2002 8:00 AM Subject: Re: PCI memory space > The MVME2604 has two modes, PReP and EXTEND_VME - EXTENDED_VME is now the > default, but it may have been PReP for rev 1.2 - do you know which you are > using? The answer will affect your memory map. > > You may need to make an entry in your sysPhysMemDesc table corresponding to the > region you've mapped (depending on whether the PCI space you're using has been > mapped yet or not). It will probably look something like > > { > (void *)CPU_PCI_MEM_ADRS2, > (void *)CPU_PCI_MEM_ADRS2, > CPU_PCI_MEM_SIZE2, > VM_STATE_MASK_VALID | ..... |VM_STATE_MASK_CACHEABLE, > VM_STATE_VALID | ..... | VM_STATE_MASK_CACHEABLE > } > > where CPU_PCI_MEM_SIZE2 is 256 MB and CPU_PCI_MEM_ADRS2 is the pci address as > the CPU sees it (as described by Michael Lawnick. Part of this region may > already be defined, in which case just extend it if possible. > > > > Ahn Jung Hoon wrote: > > > Hi, all > > > > I have a problem in accessing pci memory space > > > > Previously, > > My work space is.. > > > > VxWorks version 5.4 > > KERNEL: WIND version 2.5 > > CPU: Motorola Unknown - MPC 750. Processor #0. > > Memory Size: 0x10000000. BSP version 1.2/0. > > WDB: Ready. > > > > well.. > > I have PCI memory card, and it's size is 256MB.. > > > > By default, it was written in MV2600.h > > #define CPU_PCI_MEM_SIZE 0x01000000 /* 16 meg */ > > > > so, I modified it as following.. > > #define CPU_PCI_MEM_SIZE 0x20000000 /* 256 meg */ > > > > Then I met data access error as following.. > > > > ------------------------------------------------------- > > -> pciHeaderShow(0, 0x10, 0) > > vendor ID = 0x11b0 > > device ID = 0x0200 > > command register = 0x0002 > > status register = 0x0000 > > revision ID = 0x00 > > class code = 0x05 > > sub class code = 0x00 > > programming interface = 0x00 > > cache line = 0x00 > > latency time = 0xf8 > > header type = 0x00 > > BIST = 0x00 > > base address 0 = 0x10000000 > > base address 1 = 0x00000000 > > base address 2 = 0x00000000 > > base address 3 = 0x00000000 > > base address 4 = 0x00000000 > > base address 5 = 0x00000000 > > cardBus CIS pointer = 0x00000000 > > sub system vendor ID = 0x4754 > > sub system ID = 0x0005 > > expansion ROM base address = 0x00000000 > > interrupt line = 0x03 > > interrupt pin = 0x00 > > min Grant = 0x00 > > max Latency = 0x00 > > value = 0 = 0x0 > > -> d 0x10000000 > > 10000000: > > data access > > Exception current instruction address: 0x0015c070 > > Machine Status Register: 0x0000b030 > > Data Access Register: 0x10000000 > > Condition Register: 0x48200080 > > Data storage interrupt Register: 0x40000000 > > > > 1812e0 vxTaskEntry +60 : shell () > > 177118 shell +18c: 177144 () > > 177368 shell +3dc: execute () > > 1774ec execute +d8 : yyparse () > > 1a96ec yyparse +7a8: 1a7634 () > > 1a77ac yystart +8f8: d () > > shell restarted. > > -------------------------------------------------------------- > > > > But When I modified it as following, I could success to display and modified > > at PCI_BASE_ADDR(0x08000000).. > > #define CPU_PCI_MEM_SIZE 0x10000000 /* 128 meg */ > > > > .. > > > > I think that only what I had to do is to modify CPU_PCI_MEM_SIZE > > for memory access more than 16MB.. > > > > But.. Maybe, it seems to be incorrect.. > > > > Please.. > > Can anybody let me understand in the easiest way what is problem. > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Spurious Vx Works errors during building Date: Mon, 11 Mar 2002 11:38:20 -0000 From: "KatMoore" Message-ID: <3c8c972b$1@pull.gecm.com> References: <3c87813f$1@pull.gecm.com> <7Lii8.8666$uA5.8616@rwcrnsc51.ops.asp.att.net> Yeah thanks, I actually found out what the problem was. The drive on which Tornado was being run on was out of space, so whilst the make tool was running it obviously uses space in the directory for expanding and contracting tempory files and it must have been hitting the 'no space' problem and subsequently failing. Thanks for the help Regards Kathleen "Gary M" wrote in message news:7Lii8.8666$uA5.8616@rwcrnsc51.ops.asp.att.net... > _binArrayStart and _binArrayEnd are emitted by the binToAsm tool which > converts the deflated binary image back to .s format. For some reason > _binArrayEnd is getting lost. You may want to edit the rules to preserve the > temporary files to determine where the problem is. > > "KatMoore" wrote in message > news:3c87813f$1@pull.gecm.com... > > Hi, > > > > I wonder can anyone help me with a problem which is causing me more than a > > few problems at the minute. > > > > I am building a downloadable project in Tornado II with vxWorks 5.4. In > it > > I have set up four custom builds using different rule in order to build a > > final "vxWorks.st_rom.bin" image. > > > > The third rule runs the make command in the BSP directory in order to > build > > the vxWorks.hex image but at the moment every time I run the rule the > build > > fails with the following message > > > > > > 'C:\Tornado\target\lib\libPPC604gnuvx.a vxWorks.st.Z.o > > bootInit_st.o: In function `romStart': > > bootInit_st.o(.text+0xb6): undefined reference to `_binArrayEnd' > > bootInit_st.o(.text+0xba): undefined reference to `_binArrayEnd' > > make[1]: *** [vxWorks.st_rom] Error 0x1 > > make[1]: Leaving directory `C:\Tornado\target\config\rs60x' > > make: *** [Step_3] Error 0x2 > > > > Done.' > > > > Now the rule was working fine for many months now, but has started to play > > up this last 2 days. It is now happening so much that I am getting it > every > > time I build this rule. The only way I can get past it is to do a BSP > clean > > build and then do a BSP vxWorks build. > > > > The BSP in use is for a Radstone board and Tornado does not have any of > the > > windriver cumulative patches installed. > > > > Any help would be greatly appreciated. > > > > > > Regards > > > > > > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Is there any existing example of tonoroda for me to study using tonoroda? Date: Mon, 11 Mar 2002 06:40:34 -0500 From: joe durusau Organization: BELLSOUTH.net Message-ID: <3C8C97B2.23E77CE4@bellsouth.net> References: <989cdae4.0203101759.ebc548c@posting.google.com> zlybupt wrote: > Give me a website if there exists any! > Thank you very much! If you are talking about the latest version of Tornado, look at www.wrs.com. Also, if you bought it as opposed to downloaded the evaluatiobn copy, it comes with a bunch of books, that have examples in them. Speaking only for myself, Joe Durusau --------------------------- Newsgroups: comp.os.vxworks Subject: Re: [Q] Ring Buffer Overflow Date: Mon, 11 Mar 2002 06:42:56 -0500 From: joe durusau Organization: BELLSOUTH.net Message-ID: <3C8C9840.6BE59F0B@bellsouth.net> References: Kim Tae Hyung wrote: > Hi~ I have a question about ring buffer overflow. > I have read many articles in this group about ring > buffer overflow while doing netJobAdd(). > And I concluded that it is mainly because of the lack > of CPU Power. So vxWorks cannot help but show those > messages. > > But I want to remove those messages "ring buffer overflow". > I think if I can reach ring buffer data structure or global > variable, I can remove those messages. But as you know, > we cannot see any variable in the function "netJobAdd". > Is there any possible way to see a variable in the "netJobAdd" > or the source of netJobAdd? > > Any comment will be appreciated. > Thanks. It would seem silly to remove the message without removing the cause of the message. Do you really want the system to silently fail??? Speaking only for myself, Joe Durusau --------------------------- End of New-News digest ********************** From vxwexplo-errs@csg.lbl.gov Mon Mar 11 05:40:00 2002 From: "Sajjad Ahmed" Date: Mon Mar 11 05:40:03 PST 2002 Subject: tNetTasks makes system hang !!(;;) Hi vxworks experts, I did a small experiment on to my target board with tNetTask, which resulted into HANG on the board. ->sp test ->netJobAdd(testhandler,0,0,0,0,0) TakenSem Spawning Semtest1Task Task ->netJobAdd(handler,0,0,0,0,0) the system hangs here(ie you will not able to type any thing on wind shell.). /***************************************************/ the above test and handler function are as follows: SEM_ID sIdd; void test() { sIdd = semCreate(SEM_Q_FIFO ,SEM_FULL); /* pend here on queue */ } void testhandler() { printf("TaskName : %s\n",taskName(taskIdSelf())); semTake(sIdd,WAIT_FOREVER ); printf ("TakenSem\n"); taskSpawn ("Semtest1Task",20,0,3200, (FUNCPTR)SemTakeTesting1,0,0,0,0,0,0,0,0,0,0);; } void SemTakeTesting1 () { printf("Spawning %s Task\n",taskName(taskIdSelf())); for(;;){ printf ("SemTakeTesting1 Sem Taking \n"); semTake(sIdd,WAIT_FOREVER); printf ("SemTakeTesting Successfully Taken\n"); } } Does any body knows this behaviour of the tNetTask. thanks in Advance. _Sajjad. From vxwexplo-errs@csg.lbl.gov Tue Mar 12 00:48:46 2002 From: S Ramesh Date: Tue Mar 12 00:48:49 PST 2002 Subject: IP Hdr length error Hi, I am using raw sockets in VxWOrks and i want to receive some data using some unassigned protocol number in IP Protocol field. I am sending a string here of size13 bytes. One thing is all BSD derived socket implementations while creating their own IP header using IP_HDRINCL option should not convert the length and frag offset field from host byte order to N/W byte order. This is a feature/bug and VxWorks is no excemption from this( Linux too ). I am sending the string by building own IP header with protocol field as 140 from a Linux machine. I am receiving the same thing in VxWOrks. But the length field of the received IP packet using raw socket is showing some junk. But all the other data are correct. I tried between two linux machines, there the length field is printing correctly as 33 ( 20 + 13 ). But again when i send the data from VxWOrks to Linux ( note: the length field is left in Host byte order itself ), the linux machines prints the data correctly. THe only case, that too the length field alone is bringing me problems while receiving from VxWOrks. What could be the problem. THe the size of the packet received is 33 but the lenght field inside the IP header is showing some junk. I tried the other way of not converting the length field from n/w to host byte order. Now its printing the size as 13. That is it is excluding the IP hdr length size. This is constantly leaving the 20 bytes and giving the remaining length.( I tried with other packet lengths also, thats why i am saying ). So what is the bug here. Whether it is VxWorks bug or Linux bug or my code bug or it is a feature :-). Kindly help me in this regard. THanks, Ramesh From vxwexplo-errs@csg.lbl.gov Tue Mar 12 00:55:58 2002 From: S Ramesh Date: Tue Mar 12 00:56:01 PST 2002 Subject: Re: IP Hdr length error Sorry, subject is IP Total length error. Thanks, Ramesh S Ramesh wrote: > Hi, > > I am using raw sockets in VxWOrks and i want to receive some data > using some unassigned protocol number in IP Protocol field. I am > sending a string here of size13 bytes. > > One thing is all BSD derived socket implementations while creating > their own IP header using IP_HDRINCL option should not convert the > length and frag offset field from host byte order to N/W byte order. > This is a feature/bug and VxWorks is no excemption from this( Linux > too ). I am sending the string by building own IP header with protocol > field as 140 from a Linux machine. I am receiving the same thing in > VxWOrks. But the length field of the received IP packet using raw > socket is showing some junk. But all the other data are correct. I > tried between two linux machines, there the length field is printing > correctly as 33 ( 20 + 13 ). But again when i send the data from > VxWOrks to Linux ( note: the length field is left in Host byte order > itself ), the linux machines prints the data correctly. > > THe only case, that too the length field alone is bringing me problems > while receiving from VxWOrks. What could be the problem. THe the size > of the packet received is 33 but the lenght field inside the IP header > is showing some junk. > > I tried the other way of not converting the length field from n/w to > host byte order. Now its printing the size as 13. That is it is > excluding the IP hdr length size. This is constantly leaving the 20 > bytes and giving the remaining length.( I tried with other packet > lengths also, thats why i am saying ). So what is the bug here. > Whether it is VxWorks bug or Linux bug or my code bug or it is a > feature :-). Kindly help me in this regard. > > THanks, > Ramesh > > - > To unsubscribe from this list: send the line "unsubscribe linux-net" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html From vxwexplo-errs@csg.lbl.gov Tue Mar 12 01:19:07 2002 From: Andi Kleen Date: Tue Mar 12 01:19:09 PST 2002 Subject: Re: IP Hdr length error > I tried the other way of not converting the length field from n/w to > host byte order. Now its printing the size as 13. That is it is > excluding the IP hdr length size. This is constantly leaving the 20 > bytes and giving the remaining length.( I tried with other packet > lengths also, thats why i am saying ). So what is the bug here. > Whether it is VxWorks bug or Linux bug or my code bug or it is a > feature :-). Kindly help me in this regard. Linux only changes the fields that are documented in raw(7) in IP_HDRINCL, but never does any byte order conversions. Linux raw sockets are not bug-to-bug compatible to BSD. -Andi From vxwexplo-errs@csg.lbl.gov Tue Mar 12 01:44:40 2002 From: S Ramesh Date: Tue Mar 12 01:44:43 PST 2002 Subject: Re: IP Hdr length error HI Andi, Thanks for the response. I studied about this Bug in BSD from the Raw IP faqs link. http://www.whitefang.com/rin/rawfaq.html#14 Yeah man 7 raw is saying the length field is always filled in. I tried and checked it now. It is working fine. I dont know the problem with VxWorks. Any expert suggestion of some general idea, if possible. Thanks, Ramesh Andi Kleen wrote: > > I tried the other way of not converting the length field from n/w to > > host byte order. Now its printing the size as 13. That is it is > > excluding the IP hdr length size. This is constantly leaving the 20 > > bytes and giving the remaining length.( I tried with other packet > > lengths also, thats why i am saying ). So what is the bug here. > > Whether it is VxWorks bug or Linux bug or my code bug or it is a > > feature :-). Kindly help me in this regard. > > Linux only changes the fields that are documented in raw(7) in IP_HDRINCL, > but never does any byte order conversions. > Linux raw sockets are not bug-to-bug compatible to BSD. > > -Andi From vxwexplo-errs@csg.lbl.gov Tue Mar 12 04:03:21 2002 From: Vxworks Exploder Date: Tue Mar 12 04:03:23 PST 2002 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Tue Mar 12 04:03:15 PST 2002 Subject: Re: OPENDIR Help Subject: Re: OPENDIR Help Subject: Re: Printing 64bit values Subject: WindML Accelerated Driver Subject: cache line coherency Subject: mvme2604 lpt driver Subject: Re: WindML Accelerated Driver Subject: Re: [Q] Ring Buffer Overflow Subject: Re: OPENDIR Help Subject: Re: OPENDIR Help Subject: Re: Printing 64bit values Subject: Re: Printing 64bit values Subject: Re: Printing 64bit values Subject: Re: Quantifying Fragmentation (was: Re: Chabging LIFO Ordered Free Subject: Re: Printing 64bit values Subject: NVSRAM, DS1747 Subject: Re: Quantifying Fragmentation (was: Re: Chabging LIFO Ordered Free List) Subject: NET-SNMP under VxWorks Subject: [Q] IBM 405GP ibmEmac RXD error Subject: Re: Unresolved symbol while download program : __eabi? Subject: Re: NET-SNMP under VxWorks Subject: HELP about sysAuxClkRateSet() and BSP ! Subject: A question about ifunit( ) && extern struct ifnet *ifnet? Subject: how can I clear the data buffer of a serial port? Subject: Re: Problem in accessing PCI I/O Registers in IBM ppc 405GP Subject: Re: WindML Accelerated Driver Subject: Re: A question about ifunit( ) && extern struct ifnet *ifnet? Subject: IP Length Error in Raw Sockets Subject: [Help Me] download app. to vxworks nt simulator Subject: Re: A question about ifunit( ) && extern struct ifnet *ifnet? Subject: Re: Do I need semaphore protection for multiple tasks accessing same socket Subject: Re: BSD Ethernet Driver Subject: Re: BSD Ethernet Driver Subject: Re: Porting from VxWorks 5.3 to 5.4 Subject: Re: netTask limits high-frame-rate transfers in Gigabit Ethernet Subject: Re: BSD Ethernet Driver Subject: Re: Do I need semaphore protection for multiple tasks accessing same socket Subject: Strange ccarm error message. Subject: Page Fault for help Subject: Using the Intel Pentium IA32 compiler with vxWorks ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Re: OPENDIR Help Date: 11 Mar 2002 06:12:15 -0800 From: mpalone@gotuit.com (Mike Palone) Organization: http://groups.google.com/ Message-ID: <971e6b8f.0203110612.f95dd7d@posting.google.com> References: <971e6b8f.0203092108.3d502241@posting.google.com> <971e6b8f.0203101438.300fe42c@posting.google.com> Ok. I will look into using RAM Disk. I see the API ramDrv and ramDevCreate APIs which should be followed by a dosFsDevInit. The part that I am not groking yet is when folks say to copy the files I will need there and then opendir will work. Our application creates and uses many files...some of which could be large. How can one predict the amount of Ram to use, or should the files be copied there from a directory structure only when the time comes to needing to do an opendir? Sorry if I'm missing how to use ram disks...have to study that...but from first look through the docs, there is not a good explanation of the copy files part. Thanks again for your help and patience. Mike "Leonid Rosenboim" wrote in message news:... > Pardon my French, passFs and netDrv font support dirLib properly. > dosFs in all its forms and versions fully supports dirLib (which includes > opendir ) and mkdir() so you should have no problems doing what > you need to do on a RAM disk or virtual disk, both of which will > use dosFs on top of the block device driver. > > As to NFS, since you are on a WIndows host, you will find it > quite difficult to set up NFS properly between the VxSim > and your MSFT host, therefore my RAM disk recommendation, > its the easiest way out, and closest to your final situation. > > "Mike Palone" wrote in message > news:971e6b8f.0203101438.300fe42c@posting.google.com... > > Thanks for the feedback Leonid. Not sure how to create a virtual disk > > or RAM disk yet...I'll have to research. Lot of hoops to jump through > > because of a documented API does not work. Putting passFs aside for > > the time being, can somebody please tell me that it is in fact true > > that opendir does not work for dosFs? Should I dive further on the > > threads in this forum suggesting the use of NFS rather than netDrv? > > Can I use NFS for a local hard drive? It is a bug. If I can create > > directories and files...and read and write to files...I should be able > > to do an opendir. I started experiments toward implementing opendir > > functionality myself, but at this point even: > > > > Status = ioctl (fd, FIOREADDIR, (int)&dirStruct); > > > > gives an errno of ENOTDIR after opening a DIR. Our target will have a > > local hard disk, and without knowing the details, the idea of copying > > all the files I need to a RAM Disk just to enumerate a directory > > worries me. > > > > The other interesting thing is that I looked at the code in usrLib.c > > since it implements the ls command .... and it works from the command > > shell. It uses opendir. However there is the following code in the > > routine that I think may be executing as opposed to the opendir > > command. > > > > if (_func_netLsByName != NULL) > > { > > if ((*_func_netLsByName) (dirname) == OK) > > return (OK); > > else if (errno != S_netDrv_UNKNOWN_REQUEST) > > return (ERROR); > > } > > > > Thanks again... > > Mike > > > > > > "Leonid Rosenboim" wrote in message > news:... > > > Mike, > > > > > > passFs is just a hack, quick and dirty means of accessing > > > the work station file during development. Since it wont > > > be used for the application, it is not worth much effort. > > > > > > Until you have your final target, you can try to use > > > a virtual disk running full dosFs on it, which will be > > > much closer to your final application. If you cant > > > make a virtual disk, make a RAM disk with dosFs, > > > and fill it with the files you need on initialization. > > > > > > Also, there is the TSFS - Target Server File System > > > which you could try, but I have never used it and dont > > > know if it supports opendir and the like. > > > > > > "Mike Palone" wrote in message > > > news:971e6b8f.0203092108.3d502241@posting.google.com... > > > > Hey... > > > > > > > > I am new to VxWorks and am in the middle of a WinCE port of our > > > > application. I am using Tornado v2.0.2 which uses VxWorks 5.4.2 SIMNT, > > > > since we do not have our target hardware at this point. I have read > > > > through all the threads in this group regarding the problems that have > > > > been encountered with opendir and was hoping that somebody could give > > > > me an update on it's status. Unfortunately, I spent way too much time > > > > trying to get it to work without consulting this forumn first. The > > > > problems I was having with creating directories and reading and > > > > writing to files is fixed since I did a ntPassFsDevInit("c:") > > > > ntPassFsLib is used for NT Simulations. Without this statement, > > > > creating Directories failed with an unknown device error. The > > > > remaining hurdle (as if there won't be more to come...but the memory, > > > > threading, semaphore, etc. ports are working great) I now have is that > > > > opendir simply does not work. I've exhausted all experiments. In the > > > > end, we will have a local dosFs that we will need to interface to. > > > > There is a lot of discussions in this forum regarding opendir not > > > > working with netDrv and that we should NFS. I am about ready to write > > > > the code for opendir, readdir, and closedir myself, but wanted to make > > > > sure I should proceed with that option. Basically... pDir = > > > > opendir("dirname") always returns NULL and sometimes the error is > > > > ENOTDIR 20 /* Not a directory*/ is set in errno. I would totally > > > > appreciate any help/guidance somebody can give me. > > > > > > > > Mike Palone > > > > Principal Software Engineer > > > > Gotuit Video Inc. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: OPENDIR Help Date: Mon, 11 Mar 2002 09:38:06 -0500 From: david lindauer Message-ID: <3C8CC14E.3E10877D@notifier-is.net> References: <971e6b8f.0203092108.3d502241@posting.google.com> <971e6b8f.0203101438.300fe42c@posting.google.com> <971e6b8f.0203110612.f95dd7d@posting.google.com> Mike Palone wrote: > Ok. I will look into using RAM Disk. I see the API ramDrv and > ramDevCreate APIs which should be followed by a dosFsDevInit. The > part that I am not groking yet is when folks say to copy the files I > will need there and then opendir will work. Our application creates > and uses many files...some of which could be large. How can one > predict the amount of Ram to use, or should the files be copied there > from a directory structure only when the time comes to needing to do > an opendir? Sorry if I'm missing how to use ram disks...have to study > that...but from first look through the docs, there is not a good > explanation of the copy files part. Thanks again for your help and > patience. > ram disk is just like a floppy disk (or hard disk) once you have it set up. You save files there, read and write them just like you would on a persistent storage device. opendir does work with dosfs; I have used it. May have even used it on a ram disk during development, not sure that was a while back. As far as figuring out how much ram to use, you have to know how big your files are. Since this is a temporary solution until you get persistent storage you may want to go ahead and limit what you are writing to the files, for now, so you don't have to use up all your ram as a disk. David > > Mike > > "Leonid Rosenboim" wrote in message news:... > > Pardon my French, passFs and netDrv font support dirLib properly. > > dosFs in all its forms and versions fully supports dirLib (which includes > > opendir ) and mkdir() so you should have no problems doing what > > you need to do on a RAM disk or virtual disk, both of which will > > use dosFs on top of the block device driver. > > > > As to NFS, since you are on a WIndows host, you will find it > > quite difficult to set up NFS properly between the VxSim > > and your MSFT host, therefore my RAM disk recommendation, > > its the easiest way out, and closest to your final situation. > > > > "Mike Palone" wrote in message > > news:971e6b8f.0203101438.300fe42c@posting.google.com... > > > Thanks for the feedback Leonid. Not sure how to create a virtual disk > > > or RAM disk yet...I'll have to research. Lot of hoops to jump through > > > because of a documented API does not work. Putting passFs aside for > > > the time being, can somebody please tell me that it is in fact true > > > that opendir does not work for dosFs? Should I dive further on the > > > threads in this forum suggesting the use of NFS rather than netDrv? > > > Can I use NFS for a local hard drive? It is a bug. If I can create > > > directories and files...and read and write to files...I should be able > > > to do an opendir. I started experiments toward implementing opendir > > > functionality myself, but at this point even: > > > > > > Status = ioctl (fd, FIOREADDIR, (int)&dirStruct); > > > > > > gives an errno of ENOTDIR after opening a DIR. Our target will have a > > > local hard disk, and without knowing the details, the idea of copying > > > all the files I need to a RAM Disk just to enumerate a directory > > > worries me. > > > > > > The other interesting thing is that I looked at the code in usrLib.c > > > since it implements the ls command .... and it works from the command > > > shell. It uses opendir. However there is the following code in the > > > routine that I think may be executing as opposed to the opendir > > > command. > > > > > > if (_func_netLsByName != NULL) > > > { > > > if ((*_func_netLsByName) (dirname) == OK) > > > return (OK); > > > else if (errno != S_netDrv_UNKNOWN_REQUEST) > > > return (ERROR); > > > } > > > > > > Thanks again... > > > Mike > > > > > > > > > "Leonid Rosenboim" wrote in message > > news:... > > > > Mike, > > > > > > > > passFs is just a hack, quick and dirty means of accessing > > > > the work station file during development. Since it wont > > > > be used for the application, it is not worth much effort. > > > > > > > > Until you have your final target, you can try to use > > > > a virtual disk running full dosFs on it, which will be > > > > much closer to your final application. If you cant > > > > make a virtual disk, make a RAM disk with dosFs, > > > > and fill it with the files you need on initialization. > > > > > > > > Also, there is the TSFS - Target Server File System > > > > which you could try, but I have never used it and dont > > > > know if it supports opendir and the like. > > > > > > > > "Mike Palone" wrote in message > > > > news:971e6b8f.0203092108.3d502241@posting.google.com... > > > > > Hey... > > > > > > > > > > I am new to VxWorks and am in the middle of a WinCE port of our > > > > > application. I am using Tornado v2.0.2 which uses VxWorks 5.4.2 SIMNT, > > > > > since we do not have our target hardware at this point. I have read > > > > > through all the threads in this group regarding the problems that have > > > > > been encountered with opendir and was hoping that somebody could give > > > > > me an update on it's status. Unfortunately, I spent way too much time > > > > > trying to get it to work without consulting this forumn first. The > > > > > problems I was having with creating directories and reading and > > > > > writing to files is fixed since I did a ntPassFsDevInit("c:") > > > > > ntPassFsLib is used for NT Simulations. Without this statement, > > > > > creating Directories failed with an unknown device error. The > > > > > remaining hurdle (as if there won't be more to come...but the memory, > > > > > threading, semaphore, etc. ports are working great) I now have is that > > > > > opendir simply does not work. I've exhausted all experiments. In the > > > > > end, we will have a local dosFs that we will need to interface to. > > > > > There is a lot of discussions in this forum regarding opendir not > > > > > working with netDrv and that we should NFS. I am about ready to write > > > > > the code for opendir, readdir, and closedir myself, but wanted to make > > > > > sure I should proceed with that option. Basically... pDir = > > > > > opendir("dirname") always returns NULL and sometimes the error is > > > > > ENOTDIR 20 /* Not a directory*/ is set in errno. I would totally > > > > > appreciate any help/guidance somebody can give me. > > > > > > > > > > Mike Palone > > > > > Principal Software Engineer > > > > > Gotuit Video Inc. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Printing 64bit values Date: Mon, 11 Mar 2002 17:00:50 +0200 From: "Ofer Goren" Organization: Verio Message-ID: References: <900e9637.0203060746.2d1c1bda@posting.google.com> so why not just attach this piece of code to a message???? - -- Ofer Goren Iamba Technologies "Mario Semo" wrote in message news:a69n3j$637$1@at-vie-newsmaster01.nextra.at... > Hello, > > if you have MS VC++ 6.0 too install the CRT sources from the CD and look > into xtoa() implementation. this function converts a 64bit integer into an > ascii string. it was an easy job for me to make this compileable for vxworks > and added it to my projects. > > > -- > regards, Mario Semo. http://www.kirchnersoft.com > Goran wrote in message > news:900e9637.0203060746.2d1c1bda@posting.google.com... > > Hi, > > > > I am trying to print 64bit values using printf function. > > =========================== > > #include > > > > void myprint() > > { > > unsigned long long var1, var2; > > > > printf("sizeof unsigned long long = %d\n", sizeof(var1)); > > > > var1 = 4294967290ULL; /* A value less than ( (2 power 32) -1 */ > > printf("var1 = %llu\n", var1); > > > > var1 = 42949672960ULL; /* A value greater than ( (2 power 32) */ > > printf("var2 = %llu\n", var2); > > > > > > } > > ============================ > > I am using Tornado 2.0 and have tried using a "simpc" based and > > "pcPentium" based BSPs. The libraries used were > > > > simpc -> > C:\Tornado\host\x86-win32\lib\gcc-lib\i386-pc-mingw32\egcs-2.90.29 > > \libgcc.a > > > > pcPentium -> > C:\Tornado\host\x86-win32\lib\gcc-lib\i386-wrs-vxworks\cygnus-2.7.2-960126\l > ibgcc.a > > > > But, I am not getting correct result while printing the second > > variable var2? ( Or any value which is greater than or equal to (2 > > power 32). > > > > For the above code the results were: > > sizeof unsigned long long = 8 > > var1 = 4294967290 > > var2 = 4008636142 > > > > Could someone please explain this abnormal behaviour?? > > > > Thanks > > Goran. > > --------------------------- Newsgroups: comp.os.vxworks Subject: WindML Accelerated Driver Date: 11 Mar 2002 07:04:51 -0800 From: tobias.klotz@draeger.com (Tobias Klotz) Organization: http://groups.google.com/ Message-ID: <5d6482af.0203110704.57c443d6@posting.google.com> Hello, we currently use an unanccelerated driver for WindML. In order to improve performance I plan to rewrite the BitBLT functions. How can I detect if a call to the drivers bitmapBlt function shall perform a BitBLT within the framebuffer? Which functions need to be re-written (I assume it is at least ugl16BitGenericBitmapBlt but what else?). thanks! tobias --------------------------- Newsgroups: comp.os.vxworks Subject: cache line coherency Date: 11 Mar 2002 07:51:38 -0800 From: ilevi@rugged.com (Ilan) Organization: http://groups.google.com/ Message-ID: <2d7af320.0203110751.728bda69@posting.google.com> Hi All I am running a PowerPc board with Tornado 2.0. I have to determine the "memDefaultAlignment" parameter because I want to take care about cache line coherency. I tried to determine this parameters in different files but the vxWorks announce an error in the compilation. Is any one know were is the right place to determine this parameter, Or maybe I don't have to change this parameter. Thank you very much, Ilan --------------------------- Newsgroups: comp.os.vxworks Subject: mvme2604 lpt driver Date: 11 Mar 2002 09:14:20 -0800 From: mgarcia@psl.nmsu.edu (Michael Garcia) Organization: http://groups.google.com/ Message-ID: I am in need of a lpt driver for a mvme2604 board. Any assistance as to where one is available is appreciated. Mike --------------------------- Newsgroups: comp.os.vxworks Subject: Re: WindML Accelerated Driver Date: 11 Mar 2002 12:32:21 -0500 From: Bill Pringlemeir Organization: Bell Sympatico Message-ID: References: <5d6482af.0203110704.57c443d6@posting.google.com> Sender: bpringlemeir@DeadDuck Tobias> Hello, we currently use an unanccelerated driver for Tobias> WindML. In order to improve performance I plan to rewrite the Tobias> BitBLT functions. How can I detect if a call to the drivers Tobias> bitmapBlt function shall perform a BitBLT within the Tobias> framebuffer? Which functions need to be re-written (I assume Tobias> it is at least ugl16BitGenericBitmapBlt but what else?). Generally, you would compare the pointer value to see if it was in "framebuffer" memory. I seem to remember that there are some optimizations related to this. For instance, three step bitBlits may be performed off screen and then moved to the "framebuffer" to minimize flicker. Are you talking about VGA type optimizations of "framebuffer" bitBlitting? Do you have some hardware that will bitBlit? I am not quite sure what optimization you are talking about; but the memory compare should work. I think that a pointer to the "framebuffer" is put in every graphics context (or some convenient structure) for quick reference. hth, Bill Pringlemeir. - -- Little of the young Kibo and an egg are wimpy. vxWorks FAQ, "http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html" --------------------------- Newsgroups: comp.os.vxworks Subject: Re: [Q] Ring Buffer Overflow Date: Mon, 11 Mar 2002 14:42:47 -0500 From: "doug dotson" Organization: Verio Message-ID: References: If you are attempting to implement a mechanism whereby it is legitimate to discard objects when inserted into a full ring buffer, then a ring buffer alone is probably not the appropriate mechanism. You can either implement a buffer on your own that works that way or else put a wrapper around your present ring buffer mechanism and discard the excess data without trying to insert it into the buffer. doug "Kim Tae Hyung" wrote in message news:b1b90dae.0203110120.2380d1b8@posting.google.com... > Hi~ I have a question about ring buffer overflow. > I have read many articles in this group about ring > buffer overflow while doing netJobAdd(). > And I concluded that it is mainly because of the lack > of CPU Power. So vxWorks cannot help but show those > messages. > > But I want to remove those messages "ring buffer overflow". > I think if I can reach ring buffer data structure or global > variable, I can remove those messages. But as you know, > we cannot see any variable in the function "netJobAdd". > Is there any possible way to see a variable in the "netJobAdd" > or the source of netJobAdd? > > Any comment will be appreciated. > Thanks. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: OPENDIR Help Date: 11 Mar 2002 11:50:43 -0800 From: mpalone@gotuit.com (Mike Palone) Organization: http://groups.google.com/ Message-ID: <971e6b8f.0203111150.156e92e5@posting.google.com> References: <971e6b8f.0203092108.3d502241@posting.google.com> <971e6b8f.0203101438.300fe42c@posting.google.com> <971e6b8f.0203110612.f95dd7d@posting.google.com> <3C8CC14E.3E10877D@notifier-is.net> Thanks David... We are discussing using the ram disk as a temporary solution. It must be the 2.02 Tornado version of SIMNT I'm using but, DIR *pDir = NULL; pDir = opendir(dirname); ALWAYS returns a NULL for pDir. If you got it to work for dosFs, please tell me what I should look into. Thanks again... Mike david lindauer wrote in message news:<3C8CC14E.3E10877D@notifier-is.net>... > Mike Palone wrote: > > > Ok. I will look into using RAM Disk. I see the API ramDrv and > > ramDevCreate APIs which should be followed by a dosFsDevInit. The > > part that I am not groking yet is when folks say to copy the files I > > will need there and then opendir will work. Our application creates > > and uses many files...some of which could be large. How can one > > predict the amount of Ram to use, or should the files be copied there > > from a directory structure only when the time comes to needing to do > > an opendir? Sorry if I'm missing how to use ram disks...have to study > > that...but from first look through the docs, there is not a good > > explanation of the copy files part. Thanks again for your help and > > patience. > > > > ram disk is just like a floppy disk (or hard disk) once you have it set up. You save files there, read and write them just > like you would on a persistent storage device. opendir does work with dosfs; I have used it. May have even used it on a ram > disk during development, not sure that was a while back. > > As far as figuring out how much ram to use, you have to know how big your files are. Since this is a temporary solution > until you get persistent storage you may want to go ahead and limit what you are writing to the files, for now, so you don't > have to use up all your ram as a disk. > > David > > > > > Mike > > > > "Leonid Rosenboim" wrote in message news:... > > > Pardon my French, passFs and netDrv font support dirLib properly. > > > dosFs in all its forms and versions fully supports dirLib (which includes > > > opendir ) and mkdir() so you should have no problems doing what > > > you need to do on a RAM disk or virtual disk, both of which will > > > use dosFs on top of the block device driver. > > > > > > As to NFS, since you are on a WIndows host, you will find it > > > quite difficult to set up NFS properly between the VxSim > > > and your MSFT host, therefore my RAM disk recommendation, > > > its the easiest way out, and closest to your final situation. > > > > > > "Mike Palone" wrote in message > > > news:971e6b8f.0203101438.300fe42c@posting.google.com... > > > > Thanks for the feedback Leonid. Not sure how to create a virtual disk > > > > or RAM disk yet...I'll have to research. Lot of hoops to jump through > > > > because of a documented API does not work. Putting passFs aside for > > > > the time being, can somebody please tell me that it is in fact true > > > > that opendir does not work for dosFs? Should I dive further on the > > > > threads in this forum suggesting the use of NFS rather than netDrv? > > > > Can I use NFS for a local hard drive? It is a bug. If I can create > > > > directories and files...and read and write to files...I should be able > > > > to do an opendir. I started experiments toward implementing opendir > > > > functionality myself, but at this point even: > > > > > > > > Status = ioctl (fd, FIOREADDIR, (int)&dirStruct); > > > > > > > > gives an errno of ENOTDIR after opening a DIR. Our target will have a > > > > local hard disk, and without knowing the details, the idea of copying > > > > all the files I need to a RAM Disk just to enumerate a directory > > > > worries me. > > > > > > > > The other interesting thing is that I looked at the code in usrLib.c > > > > since it implements the ls command .... and it works from the command > > > > shell. It uses opendir. However there is the following code in the > > > > routine that I think may be executing as opposed to the opendir > > > > command. > > > > > > > > if (_func_netLsByName != NULL) > > > > { > > > > if ((*_func_netLsByName) (dirname) == OK) > > > > return (OK); > > > > else if (errno != S_netDrv_UNKNOWN_REQUEST) > > > > return (ERROR); > > > > } > > > > > > > > Thanks again... > > > > Mike > > > > > > > > > > > > "Leonid Rosenboim" wrote in message > news:... > > > > > Mike, > > > > > > > > > > passFs is just a hack, quick and dirty means of accessing > > > > > the work station file during development. Since it wont > > > > > be used for the application, it is not worth much effort. > > > > > > > > > > Until you have your final target, you can try to use > > > > > a virtual disk running full dosFs on it, which will be > > > > > much closer to your final application. If you cant > > > > > make a virtual disk, make a RAM disk with dosFs, > > > > > and fill it with the files you need on initialization. > > > > > > > > > > Also, there is the TSFS - Target Server File System > > > > > which you could try, but I have never used it and dont > > > > > know if it supports opendir and the like. > > > > > > > > > > "Mike Palone" wrote in message > > > > > news:971e6b8f.0203092108.3d502241@posting.google.com... > > > > > > Hey... > > > > > > > > > > > > I am new to VxWorks and am in the middle of a WinCE port of our > > > > > > application. I am using Tornado v2.0.2 which uses VxWorks 5.4.2 SIMNT, > > > > > > since we do not have our target hardware at this point. I have read > > > > > > through all the threads in this group regarding the problems that have > > > > > > been encountered with opendir and was hoping that somebody could give > > > > > > me an update on it's status. Unfortunately, I spent way too much time > > > > > > trying to get it to work without consulting this forumn first. The > > > > > > problems I was having with creating directories and reading and > > > > > > writing to files is fixed since I did a ntPassFsDevInit("c:") > > > > > > ntPassFsLib is used for NT Simulations. Without this statement, > > > > > > creating Directories failed with an unknown device error. The > > > > > > remaining hurdle (as if there won't be more to come...but the memory, > > > > > > threading, semaphore, etc. ports are working great) I now have is that > > > > > > opendir simply does not work. I've exhausted all experiments. In the > > > > > > end, we will have a local dosFs that we will need to interface to. > > > > > > There is a lot of discussions in this forum regarding opendir not > > > > > > working with netDrv and that we should NFS. I am about ready to write > > > > > > the code for opendir, readdir, and closedir myself, but wanted to make > > > > > > sure I should proceed with that option. Basically... pDir = > > > > > > opendir("dirname") always returns NULL and sometimes the error is > > > > > > ENOTDIR 20 /* Not a directory*/ is set in errno. I would totally > > > > > > appreciate any help/guidance somebody can give me. > > > > > > > > > > > > Mike Palone > > > > > > Principal Software Engineer > > > > > > Gotuit Video Inc. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: OPENDIR Help Date: Mon, 11 Mar 2002 15:21:50 -0500 From: david lindauer Message-ID: <3C8D11DE.A3F336BE@notifier-is.net> References: <971e6b8f.0203092108.3d502241@posting.google.com> <971e6b8f.0203101438.300fe42c@posting.google.com> <971e6b8f.0203110612.f95dd7d@posting.google.com> <3C8CC14E.3E10877D@notifier-is.net> <971e6b8f.0203111150.156e92e5@posting.google.com> Mike Palone wrote: > Thanks David... > > We are discussing using the ram disk as a temporary solution. It must > be the 2.02 Tornado version of SIMNT I'm using but, > > DIR *pDir = NULL; > pDir = opendir(dirname); > ALWAYS returns a NULL for pDir. > > If you got it to work for dosFs, please tell me what I should look > into. > did you make sure the ram disk actually worked after you initialized it? by writing a file and reading it back? You should be doing a ramDevCreate(), a dosFsDevInit(), and probably a dosFsMkFs() to initialize it with a blank file system. Seems like we may have had some trouble with return codes from these functions as well... I've looked at my code and it appears we didn't use subdirectories but used opendir() to open the root of the disk. We were still using a ram disk in the version I looked at. Our ram disk is mounted as '/FLASH' so the opendir looked like this: DIR *dir=opendir("/FLASH/"); The trailing backslash may be necessary, I don't know for sure at this point. David > > Thanks again... > Mike > > david lindauer wrote in message news:<3C8CC14E.3E10877D@notifier-is.net>... > > Mike Palone wrote: > > > > > Ok. I will look into using RAM Disk. I see the API ramDrv and > > > ramDevCreate APIs which should be followed by a dosFsDevInit. The > > > part that I am not groking yet is when folks say to copy the files I > > > will need there and then opendir will work. Our application creates > > > and uses many files...some of which could be large. How can one > > > predict the amount of Ram to use, or should the files be copied there > > > from a directory structure only when the time comes to needing to do > > > an opendir? Sorry if I'm missing how to use ram disks...have to study > > > that...but from first look through the docs, there is not a good > > > explanation of the copy files part. Thanks again for your help and > > > patience. > > > > > > > ram disk is just like a floppy disk (or hard disk) once you have it set up. You save files there, read and write them just > > like you would on a persistent storage device. opendir does work with dosfs; I have used it. May have even used it on a ram > > disk during development, not sure that was a while back. > > > > As far as figuring out how much ram to use, you have to know how big your files are. Since this is a temporary solution > > until you get persistent storage you may want to go ahead and limit what you are writing to the files, for now, so you don't > > have to use up all your ram as a disk. > > > > David > > > > > > > > Mike > > > > > > "Leonid Rosenboim" wrote in message news:... > > > > Pardon my French, passFs and netDrv font support dirLib properly. > > > > dosFs in all its forms and versions fully supports dirLib (which includes > > > > opendir ) and mkdir() so you should have no problems doing what > > > > you need to do on a RAM disk or virtual disk, both of which will > > > > use dosFs on top of the block device driver. > > > > > > > > As to NFS, since you are on a WIndows host, you will find it > > > > quite difficult to set up NFS properly between the VxSim > > > > and your MSFT host, therefore my RAM disk recommendation, > > > > its the easiest way out, and closest to your final situation. > > > > > > > > "Mike Palone" wrote in message > > > > news:971e6b8f.0203101438.300fe42c@posting.google.com... > > > > > Thanks for the feedback Leonid. Not sure how to create a virtual disk > > > > > or RAM disk yet...I'll have to research. Lot of hoops to jump through > > > > > because of a documented API does not work. Putting passFs aside for > > > > > the time being, can somebody please tell me that it is in fact true > > > > > that opendir does not work for dosFs? Should I dive further on the > > > > > threads in this forum suggesting the use of NFS rather than netDrv? > > > > > Can I use NFS for a local hard drive? It is a bug. If I can create > > > > > directories and files...and read and write to files...I should be able > > > > > to do an opendir. I started experiments toward implementing opendir > > > > > functionality myself, but at this point even: > > > > > > > > > > Status = ioctl (fd, FIOREADDIR, (int)&dirStruct); > > > > > > > > > > gives an errno of ENOTDIR after opening a DIR. Our target will have a > > > > > local hard disk, and without knowing the details, the idea of copying > > > > > all the files I need to a RAM Disk just to enumerate a directory > > > > > worries me. > > > > > > > > > > The other interesting thing is that I looked at the code in usrLib.c > > > > > since it implements the ls command .... and it works from the command > > > > > shell. It uses opendir. However there is the following code in the > > > > > routine that I think may be executing as opposed to the opendir > > > > > command. > > > > > > > > > > if (_func_netLsByName != NULL) > > > > > { > > > > > if ((*_func_netLsByName) (dirname) == OK) > > > > > return (OK); > > > > > else if (errno != S_netDrv_UNKNOWN_REQUEST) > > > > > return (ERROR); > > > > > } > > > > > > > > > > Thanks again... > > > > > Mike > > > > > > > > > > > > > > > "Leonid Rosenboim" wrote in message > > news:... > > > > > > Mike, > > > > > > > > > > > > passFs is just a hack, quick and dirty means of accessing > > > > > > the work station file during development. Since it wont > > > > > > be used for the application, it is not worth much effort. > > > > > > > > > > > > Until you have your final target, you can try to use > > > > > > a virtual disk running full dosFs on it, which will be > > > > > > much closer to your final application. If you cant > > > > > > make a virtual disk, make a RAM disk with dosFs, > > > > > > and fill it with the files you need on initialization. > > > > > > > > > > > > Also, there is the TSFS - Target Server File System > > > > > > which you could try, but I have never used it and dont > > > > > > know if it supports opendir and the like. > > > > > > > > > > > > "Mike Palone" wrote in message > > > > > > news:971e6b8f.0203092108.3d502241@posting.google.com... > > > > > > > Hey... > > > > > > > > > > > > > > I am new to VxWorks and am in the middle of a WinCE port of our > > > > > > > application. I am using Tornado v2.0.2 which uses VxWorks 5.4.2 SIMNT, > > > > > > > since we do not have our target hardware at this point. I have read > > > > > > > through all the threads in this group regarding the problems that have > > > > > > > been encountered with opendir and was hoping that somebody could give > > > > > > > me an update on it's status. Unfortunately, I spent way too much time > > > > > > > trying to get it to work without consulting this forumn first. The > > > > > > > problems I was having with creating directories and reading and > > > > > > > writing to files is fixed since I did a ntPassFsDevInit("c:") > > > > > > > ntPassFsLib is used for NT Simulations. Without this statement, > > > > > > > creating Directories failed with an unknown device error. The > > > > > > > remaining hurdle (as if there won't be more to come...but the memory, > > > > > > > threading, semaphore, etc. ports are working great) I now have is that > > > > > > > opendir simply does not work. I've exhausted all experiments. In the > > > > > > > end, we will have a local dosFs that we will need to interface to. > > > > > > > There is a lot of discussions in this forum regarding opendir not > > > > > > > working with netDrv and that we should NFS. I am about ready to write > > > > > > > the code for opendir, readdir, and closedir myself, but wanted to make > > > > > > > sure I should proceed with that option. Basically... pDir = > > > > > > > opendir("dirname") always returns NULL and sometimes the error is > > > > > > > ENOTDIR 20 /* Not a directory*/ is set in errno. I would totally > > > > > > > appreciate any help/guidance somebody can give me. > > > > > > > > > > > > > > Mike Palone > > > > > > > Principal Software Engineer > > > > > > > Gotuit Video Inc. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Printing 64bit values Date: 11 Mar 2002 12:16:50 -0800 From: Joe Chung Message-ID: References: <900e9637.0203060746.2d1c1bda@posting.google.com> "Ofer Goren" writes: > so why not just attach this piece of code to a message???? Sorry to jump in, but asking for some code to convert a number to a printable string is like asking for some code to do bubble sort. 1. You should already know it. 2. You can find it documented in most basic programming books. Here's one straight-forward algorithm: Use (num % 10) to successively extract the remainder digit and add ASC '0' to that digit to form the printable digit. This iterates through the number, digit by digit (in base 10) from right to left. The following code-fragment is off the top of my head. It's not complete. It is not defensive enough. It can be better optimized. It probably won't compile out-right, but it shows the main algorithm. /* Convert an unsigned 64 bit number to a printable asc string Caller supplies outbuf storage. Returns ptr to outbuf on success, or NULL on error. */ char *u64bit_to_asc(u64b_t number, char *outbuf, int outbuflen) { char *ptr = outbuf; /* Check the arguments for validity. What should outbuflen minimally be? */ /* How would this be different for signed numbers? */ while (number) { unsigned char digit; digit = number % 10; *ptr = '0' + digit; ptr++; number = number / 10; } *ptr = 0; /* Reversing the string is left as an exercise. */ return outbuf; } For the platform under discussion in this thread, use: typedef unsigned long long u64b_t; - -jc - -- (apply 'concat (reverse (list "com" (char-to-string 46) "yahoo" (char-to-string 64) "joechung"))) --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Printing 64bit values Date: Mon, 11 Mar 2002 15:17:01 -0500 From: "doug dotson" Organization: Verio Message-ID: References: <900e9637.0203060746.2d1c1bda@posting.google.com> This works: void printULong (unsigned long val) { if (val > 0) { printULong (val / 10); printf ("%d", val %10); } } doug "Ofer Goren" wrote in message news:newscache$xrftsg$l2k$1@lnews.actcom.co.il... > so why not just attach this piece of code to a message???? > > > > -- > Ofer Goren > Iamba Technologies > "Mario Semo" wrote in message > news:a69n3j$637$1@at-vie-newsmaster01.nextra.at... > > Hello, > > > > if you have MS VC++ 6.0 too install the CRT sources from the CD and look > > into xtoa() implementation. this function converts a 64bit integer into an > > ascii string. it was an easy job for me to make this compileable for > vxworks > > and added it to my projects. > > > > > > -- > > regards, Mario Semo. http://www.kirchnersoft.com > > Goran wrote in message > > news:900e9637.0203060746.2d1c1bda@posting.google.com... > > > Hi, > > > > > > I am trying to print 64bit values using printf function. > > > =========================== > > > #include > > > > > > void myprint() > > > { > > > unsigned long long var1, var2; > > > > > > printf("sizeof unsigned long long = %d\n", sizeof(var1)); > > > > > > var1 = 4294967290ULL; /* A value less than ( (2 power 32) -1 */ > > > printf("var1 = %llu\n", var1); > > > > > > var1 = 42949672960ULL; /* A value greater than ( (2 power 32) */ > > > printf("var2 = %llu\n", var2); > > > > > > > > > } > > > ============================ > > > I am using Tornado 2.0 and have tried using a "simpc" based and > > > "pcPentium" based BSPs. The libraries used were > > > > > > simpc -> > > C:\Tornado\host\x86-win32\lib\gcc-lib\i386-pc-mingw32\egcs-2.90.29 > > > \libgcc.a > > > > > > pcPentium -> > > > C:\Tornado\host\x86-win32\lib\gcc-lib\i386-wrs-vxworks\cygnus-2.7.2-960126\l > > ibgcc.a > > > > > > But, I am not getting correct result while printing the second > > > variable var2? ( Or any value which is greater than or equal to (2 > > > power 32). > > > > > > For the above code the results were: > > > sizeof unsigned long long = 8 > > > var1 = 4294967290 > > > var2 = 4008636142 > > > > > > Could someone please explain this abnormal behaviour?? > > > > > > Thanks > > > Goran. > > > > > > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Printing 64bit values Date: Mon, 11 Mar 2002 15:28:32 -0500 From: "doug dotson" Organization: Verio Message-ID: References: <900e9637.0203060746.2d1c1bda@posting.google.com> I'm sure the algoirthm will work just as well without the insults. doug "Joe Chung" wrote in message news:rpsadteuafh.fsf@nospam.invalid... > "Ofer Goren" writes: > > so why not just attach this piece of code to a message???? > > Sorry to jump in, but asking for some code to convert a number to > a printable string is like asking for some code to do bubble sort. > 1. You should already know it. > 2. You can find it documented in most basic programming books. > > Here's one straight-forward algorithm: > Use (num % 10) to successively extract the remainder digit > and add ASC '0' to that digit to form the printable digit. > This iterates through the number, digit by digit (in base 10) > from right to left. > > The following code-fragment is off the top of my head. > It's not complete. It is not defensive enough. > It can be better optimized. It probably won't > compile out-right, but it shows the main algorithm. > > /* > Convert an unsigned 64 bit number to a printable asc string > Caller supplies outbuf storage. > Returns ptr to outbuf on success, or NULL on error. > */ > char *u64bit_to_asc(u64b_t number, char *outbuf, int outbuflen) > { > char *ptr = outbuf; > > /* Check the arguments for validity. > What should outbuflen minimally be? */ > > /* How would this be different for signed numbers? */ > > while (number) { > unsigned char digit; > digit = number % 10; > *ptr = '0' + digit; > ptr++; > number = number / 10; > } > *ptr = 0; > > /* Reversing the string is left as an exercise. */ > > return outbuf; > } > > For the platform under discussion in this thread, use: > typedef unsigned long long u64b_t; > > -jc > -- > (apply 'concat (reverse (list "com" > (char-to-string 46) "yahoo" > (char-to-string 64) "joechung"))) --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Quantifying Fragmentation (was: Re: Chabging LIFO Ordered Free List) Date: Mon, 11 Mar 2002 16:37:51 -0500 From: Keith Arner Organization: Marconi Message-ID: <313680C9A886D511A06000204840E1CF67A15F-100000@whq-msgusr-02.pit.comms.marconi.com> References: <65b2abfc.0203060736.2f705117@posting.google.com> Reply-To: Keith Arner On 8 Mar 2002, Bill Pringlemeir wrote: > >>>>> "Keith" == Keith Arner writes: > > [snip] > > Keith> "looked" more or less fragmented. The other rule of thumb I > Keith> use is the ratio of largest free block to total free memory, > Keith> but that seems to leave a lot to be desired. > > Why is this a bad metric? The largest free block and the time to > allocate would be the best things to measure in my opinion. Perhaps If the ratio of largest free block to total free memory is large (close to 1), then clearly, memory is not very fragmented. However, what does the ratio tell us if it is small (say, < .5)? If the ratio is .5, then we could have two free blocks of roughly equal size; or we could have one free block with half of the memory, and the rest of the memory scattered into lots of little (unusable) blocks. What if the ratio is .1? We could have ten free blocks, or lots of little (unusable) blocks, and we would not be able to differentiate. If your average allocation is much smaller than your largest free block, the ratio gives you no insight into the usefulness of anything that is not in your largest free block. > you should be comparing differences in the "largest free blocks". > Adding more memory will just skew the "largest free blocks" metric. I'm not sure what you mean by this. Can you clarify? > Which is just to say that an allocator that runs out of memory for > your purposes has fragmented memory. At least that is what I get from This is my point exactly. I need to predict if a particular set of free blocks will cause me to run out of memory in the future (with a given allocation algorithm). The thing that makes this difficult is that fragmentation can only be considered relative to the future allocation requests. If my heap has 5Meg free, but all of the memory is in 1K blocks, is it fragmented? If I need to do allocations of 1.1K, then it is currently fragmented beyond being usable. If I need to do allocations of 1K, then it is not fragmented at all. In systems with virtual memory, the measurement of fragmentation is easy: the ratio of total free memory to total memory mapped in. This is because new memory only gets mapped in when the existing memory cannot satisfy new requests. Of course, if you've experienced a significant number of free()'s since the last page got mapped in, this breaks down a bit. I'm not overly concerned if the final quantification comes in a single statistic, or in a small number of data points, just so long as it is possible to make a clear statement that "x is better than y for what we are doing." Keith BTW - This seems to be straying from VxWorks a fair amount. Anyone have a suggestion for where to migrate this discussion? --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Printing 64bit values Date: 11 Mar 2002 13:59:55 -0800 From: Joe Chung Message-ID: References: <900e9637.0203060746.2d1c1bda@posting.google.com> "doug dotson" writes: > I'm sure the algoirthm will work just as well without the > insults. 1. What statements do you believe are insults? My comments in the beginning? My self-critique of the algorithm? My embedded comments? 2. Having read the complete thread, I'm sure you saw that multiple people pointed different ways to possible answers. However, someone insisted on the actual code. Why were those posters being so evasive? Why not just post the actual code? 3. If I say, "Doug, your solution doesn't deal with signed numbers, can you provide the code to do that?" You would just refine and repost it, right? By the way, your solution doesn't deal with 64 bit numbers (it works on positive 32 bit numbers) Can you give the solution for printing 64 bit values? At what point would you tell me to stop? My disappointment at the question is not that the person didn't know it (partly it was so). It was, rather, that he didn't want to find out by himself. One implementation can be found in K&R's _The C Programming Language_ 2nd Ed. on page 64, when they first introduce the do-while loop construct of C. Finally, I leave you with this thought. What's more insulting to the person who asked for the code? Your reply or mine? - -jc P.S. I apologize in advance (to all those that were asking for code to this) if I have mis-construed your intent. --------------------------- Newsgroups: comp.os.vxworks Subject: NVSRAM, DS1747 Date: 11 Mar 2002 14:56:29 -0800 From: rezware@yahoo.com (Raymond) Organization: http://groups.google.com/ Message-ID: I need to know if I need a create my own driver or the generic vxWorks NVRAM driver works for me. I am using EST MDPpro860 board for testing and the board uses Atmel 24c01 which is a serial EEPROM. The generic BSP driver form WindRiver works. But the real board (target) is going to be using DS1747 NVSRAM which is an 8bit parallel device. I like to know in advance if the current driver will work with the DS1747. The target board also has an IDPROM (AT28BV64B)for manufacturing purposes. I think I can use either one of these devices to save boot info, Am I correct? CPU is PPC860 and the DS1747device is connected to: CE to a CPU chip select; OE to MEM_OE; and WE to GPCM_WR. This is a byte wide device. I am using Tornado 2.0.1 on NT Thanks --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Quantifying Fragmentation (was: Re: Chabging LIFO Ordered Free List) Date: 11 Mar 2002 18:03:35 -0500 From: Bill Pringlemeir Organization: Bell Sympatico Message-ID: References: <65b2abfc.0203060736.2f705117@posting.google.com> <313680C9A886D511A06000204840E1CF67A15F-100000@whq-msgusr-02.pit.comms.marconi.com> Sender: bpringlemeir@DeadDuck >>>>> "Keith" == Keith Arner writes: Keith> "looked" more or less fragmented. The other rule of thumb I Keith> use is the ratio of largest free block to total free memory, Keith> but that seems to leave a lot to be desired. >> Why is this a bad metric? The largest free block and the time to >> allocate would be the best things to measure in my opinion. >> Perhaps Keith> If the ratio of largest free block to total free memory is Keith> large (close to 1), then clearly, memory is not very Keith> fragmented. However, what does the ratio tell us if it is Keith> small (say, < .5)? Keith> If the ratio is .5, then we could have two free blocks of Keith> roughly equal size; or we could have one free block with half Keith> of the memory, and the rest of the memory scattered into lots Keith> of little (unusable) blocks. What if the ratio is .1? We Keith> could have ten free blocks, or lots of little (unusable) Keith> blocks, and we would not be able to differentiate. Keith> If your average allocation is much smaller than your largest Keith> free block, the ratio gives you no insight into the usefulness Keith> of anything that is not in your largest free block. Well, it does. If you wish to allocate 1 byte requests, then the metric will mean different things to you. However, if an allocator does give something above one, it is better no matter what. >> you should be comparing differences in the "largest free blocks". >> Adding more memory will just skew the "largest free blocks" >> metric. Keith> I'm not sure what you mean by this. Can you clarify? I am saying that you must compare allocators. Measuring free memory in a system isn't really good enough. You must compare two allocators to get a value. Perhaps the best comparison would be versus a "first available, never free allocator". Ie, the dumbest allocator possible. This is how I was getting negatives. A positive number was always better. L = largest block, F = all free memory. I was proposing, M = del (L) / del (F) Which is dumb as it is just relating signs. If both "del(L)" and "del(F)" are bigger, then the first allocator is better. If one is positive and one is negative, then you have a contest. If they are both negative, then the second one is better. If you do have a maximum allocation size, then the sum of blocks of that size is the obvious criteria. This would have been a better metric (where k is some constant), M = del(L) + k del(F) This still has the same properties as the one above [the number can be negative], but at least it makes a little more quantitative sense. Basically the "Wilson et al." paper just said that fragmentation is when you run out of memory for your largest request [which we both agreed with, but it is a simple statement]. The other part that I quoted was to say that nobody really looked at memory allocation. It was a concern to compiler and OS people but not that well studied. The paper was from 1995 and I am sure that people have made careers from garbage collection, but I don't think that people study allocate/free mechanisms as much. As the paper notes, computer science found that the worst case was really bad so they gave up. Reality tends to be nicer for non-real time and desktop systems, but not in a quantified way which is why you asked the question [on this OS group]. I think that comp.compilers would give you good info, but my google search turns up little (it points to this group! My keywords might be bad). "http://www.cs.utah.edu/classes/cs6470/current/notes/notes_sep04.txt" - notes that traces are first studied in 1998. "http://citeseer.nj.nec.com/johnstone97memory.html" - look at section 5. At any rate, we are just discussing `fragmentation'. Speed, and size of implementation are also important. We can say that vxWorks' allocator is no good, given the current state of knowledge and common device architectures that it is used on (32 bit, >= 64k heap). Regards, Bill Pringlemeir. - -- Kennedy Clinton assassination FBI fissionable Uzi cryptographic Khaddafi nuclear Qaddafi explosion ammunition radar quiche Treasury vxWorks FAQ, "http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html" --------------------------- Newsgroups: comp.os.vxworks Subject: NET-SNMP under VxWorks Date: Mon, 11 Mar 2002 23:03:56 GMT From: pwilson@world.std.com (Pete Wilson) Organization: The World Public Access UNIX, Brookline, MA Message-ID: I'm considering trying to install UCD-SNMP/NET-SNMP under VxWorks but I'd like to be a little bit confident of the outcome: I'm flying blind right now. Has anyone successfully installed NET-SNMP under VxWorks? Has anyone tried and and then given up, enraged and frustrated? What were your experiences? Piece of cake? Pain in the ass? And how long did it take? One hour? One month? One year? THANKS so much! - -- Pete Wilson --------------------------- Newsgroups: comp.os.vxworks Subject: [Q] IBM 405GP ibmEmac RXD error Date: 11 Mar 2002 16:52:10 -0800 From: kotaeji@hanmail.net (Kim Tae Hyung) Organization: http://groups.google.com/ Message-ID: Hi~ I have a question about ibmEmac RXD Error. I am using vxWorks on it. But ibmEmacRxdeInt function is so many called. I know this interrupt handler is called by MAL when Receive Descriptor Error occurs. At the first time I saw this error, I thought that we are lack of RXD. But there were enough RXDs empty when that error occurs. Is this Hardware Bug? or What causes this error? Any comments are welcome Thanks --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Unresolved symbol while download program : __eabi? Date: 11 Mar 2002 18:46:24 -0800 From: zjh_future@263.net (zjh) Organization: http://groups.google.com/ Message-ID: <8cd11808.0203111846.6cbe153b@posting.google.com> References: <8cd11808.0203050528.6bb7bfcf@posting.google.com> <3C8973BF.9732E824@broadcom.com> hi, first i want thanks the people who help me to solve the problem. In Tornado we cann't use main( ) if we use c compiler;but we can use main( ) if we code in C++ language. all thanks!! zjh --------------------------- Newsgroups: comp.os.vxworks Subject: Re: NET-SNMP under VxWorks Date: Mon, 11 Mar 2002 18:45:29 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: This was done before by someone and it took about three months. If you do not need v3 features, you can use older (CMU SNMP) already ported to VxWorks. There is one in VxWorks archive as well as VxHacks archive. Both are essentially the same ports. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: HELP about sysAuxClkRateSet() and BSP ! Date: 11 Mar 2002 19:23:48 -0800 From: allencyl@my-deja.com (Allen Chang) Organization: http://groups.google.com/ Message-ID: <5c074538.0203111923.534ff9d2@posting.google.com> Hello All, In our application, we have some periodical task, and the VxWorks Reference Manual, about sysAuxClkRateSet() the return value is ERROR if the tick rate is invalid. I'm now planning to use VxWork with x86 or PPC platform, and I need to set the sysAuxClkRateSet() with 64Hz, 80Hz, 256Hz, 320 Hz. I need to make sure that the board/BSP will support that frequences before I buy it. I'd ask windriver and VMIC, and get no answer, please some one who ever use the following board tell me, that VMIVME-7750-754/VxWorks or SVME-179-0600/VxWorks can support those kind of frequence or not. Or are there some other way to achieve the same result other than sysAuxClkRateSet(), so I don't need to survey which board is suitable for us? Best Reagrds, Allen Chang --------------------------- Newsgroups: comp.os.vxworks Subject: A question about ifunit( ) && extern struct ifnet *ifnet? Date: 11 Mar 2002 19:53:11 -0800 From: zjh_future@263.net (zjh) Organization: http://groups.google.com/ Message-ID: <8cd11808.0203111953.52ac6949@posting.google.com> hi,all I program with Tornado .the target cpu is PPC860. the board have a ethernet interface cpm0.I want to get the cpm0 parametreS.The IP address of cpm0 IS 192.168.199.166 I have used the func ifunit( ) of the "ifLib.h" get the pointer to struct ifnet. But the address output as :0x6040000. the other parameter such as flag,mtu of interface are all correct. I have also tried to use "extern struct ifnet *ifnet;" to get the addr.The output also is :0x6040000. the boot parameter ,my code and the output of my code is postpend on the end. Can anyone help me? Every clue is highly appreciated!! all thanks ! your sincerely :zhang jianhui the follow is my boot parameter , my code and the output of my code: 1. boot parameter: boot device : cpm0 processor number : 0 host name : host file name : /target/config/ads860/vxWorks inet on ethernet (e) : 192.168.199.166 inet on backplane (b): host inet (h) : 192.168.199.40 gateway inet (g) : user (u) : target ftp password (pw) (blank = use rsh): vx flags (f) : 0x0 target name (tn) : startup script (s) : other (o) : 2.my code : #include "stdio.h" #include "stdlib.h" #include "ifLib.h" #include "net/if.h" #include "netinet/in.h" extern struct ifnet *ifnet; void showaddrlist(struct ifnet *pif)/* show the addr in the pif*/ {struct ifaddr *ifaddr; struct sockaddr_in *sd_in; ifaddr = pif->if_addrlist; while(ifaddr != NULL){ sd_in = (struct sockaddr_in *)(pif->if_addrlist->ifa_addr); printf("interface %s%d -- addr:%x\n",pif->if_name,pif->if_unit,sd_in->sin_addr.s_addr); ifaddr = ifaddr->ifa_next; } printf("all the addr have been printf!!!\n"); } void interface( ) {struct ifnet *pif; char *name = "cpm0"; pif = ifunit(name); printf("interface name:%s%d\n",pif->if_name,pif->if_unit); printf("interface flag:%x \tinterface index:%d\n",pif->if_flags,pif->if_index); printf("interface metric:%u \n",pif->if_data.ifi_metric); printf("interface mtu:%u \n",pif->if_data.ifi_mtu); printf("media address length:%u\n",pif->if_data.ifi_addrlen); printf("type:%u\n",pif->if_data.ifi_type); showaddrlist(pif); showaddrlist(ifnet); } 3.the output of my code running: interface name:cpm0 interface flat:ffff80683 interface index:1 interface metric:0 interface mtu:1500 media address length:6 type:6 interface cpm0 -- addr:6040000 interface cpm0 -- addr:6040000 all the addr have been printr!!! interface cpm0 -- addr:6040000 interface cpm0 -- addr:6040000 all the addr have been printr!!! --------------------------- Newsgroups: comp.os.vxworks Subject: how can I clear the data buffer of a serial port? Date: 11 Mar 2002 22:52:28 -0800 From: thatbird@263.net (thatbird) Organization: http://groups.google.com/ Message-ID: I connect a serial port of ppc(A) directly to another device(B)'s serial port. A want to read data from B. The communication is correct, but the question I met is followed. After ata that A got from B is stored, I want to clear the data buffer when error happen, otherwise, next time I will read only data from last time communication. But I do not know how to do?????? --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Problem in accessing PCI I/O Registers in IBM ppc 405GP Date: 11 Mar 2002 23:18:28 -0800 From: arun4vxworks@indiatimes.com (Arun Prasad) Organization: http://groups.google.com/ Message-ID: References: <3C7F9C21.48433D2B@varndellengineering.com> <3C7FC51C.F75E564D@notifier-is.net> Dear Michael, Thank you so much for keeping in touch and giving lot of information to us. << in your last posting you talked about writing 0xFFFFFFFF into BAR and read back: This is just the way how autoConfig computed the setup of 0x40000000, you don't need to do it again. >>Yes. You are right and I saw this in the pciAutoconfig(). But what we are getting as BAR0 after pciAutoConfig is 0x4000000c and not 0x40000000. This is because this region is 0x40000000 - 0x5FFFFFFF PCI Mem with prefetch (PMM0) << Of course you have to map out the lower 3bits in BAR0 and BAR3 and the lowest bit in BAR2. >>So far I have mapped out the last nibble (4 bits) in BAR0 and BAR3 and the lowest bit in BAR2. If I map out only 3 bits then the BAR0 and BAR3 will end with 8 (0xc &0x8 = 0x8). Could you please let me know, why do we need to map out only 3 bits instead of mapping out the entire nibble (4 bits) ? << So you should be able to access your NIC's I/O-space in 0xe8000000 and its mem-space at 0x80000000 and 0x80001000 just by dereferencing pointers to it. >>I'm able to access the PCI I/O region (Our card's register) as mentioned earlier successfully. But when I try to access mem-space at 0x80000000 by deferencing pointer I'm getting "protection violation/data access" ...................... printf(" ARUN :::: fifo_ptr %p, (tcb+i) %p\n", fifo_ptr, (tcb+i)); printf(" ARUN :::: *fifo_ptr %x\n", *fifo_ptr); *(fifo_ptr) = *(tcb+i); ................... In this snippet, first printf statement ptining the values " ARUN :::: fifo_ptr 0x80000000, (tcb+i) 0x1ffff00 " Where as the next printf statement throwing the "protection violation/data access" << If you are not able to access, i.e. you get an exception, your local2PCI-bridge or MMU setup might be not the one we expect above. >>Yes. I also feel the same and currently looking at the linux source as well for this bridge configuration and mapping. It doesn't seem to be endian problems as I'm able to access the I/O registers and I'm able to read the well-known multi-byte valuse of few registers of my card. And it's working fine and I'm able to successfully write also. But all are withing I/O space only. Thanks again for your kind information. Regards Arun "Michael Lawnick" wrote in message news:... > Hi Arun, > > in your last posting you talked about writing 0xFFFFFFFF into BAR and read > back: This is just the way how autoConfig computed the setup of 0x40000000, > you don't need to do it again. > > So let us collect (after vxWorks pciAutoConfig): > Board setup: PCI-I/O local view: 0xe8000000 > PCI-Mem local view: 0x80000000 > > Card setup: BAR0 0x40000000c > BAR1 0 > BAR2 1 > BAR3 0x4000100c > BAR4 0 > > MMU's setup: access to 0xe8000000 and 0x80000000 allowed. > This all looks fine. > > Of course you have to map out the lower 3bits in BAR0 and BAR3 and the > lowest bit in BAR2. > Your translation macros seem to be consistent with card setup and MMU setup. > > So you should be able to access your NIC's I/O-space in 0xe8000000 and its > mem-space at 0x80000000 and 0x80001000 just by dereferencing pointers to it. > Take care which access formats your target supports - 8,16 or 32bit, access > might give wrong results otherwise, but should complete anyway. > > If you are not able to access, i.e. you get an exception, your > local2PCI-bridge or MMU setup might be not the one we expect above. > > If you are able to access, but the results seem to be wrong, we should look > at the results: > If all is 0xFFFFFFFF in I/O-space -> ???? card damage? > If there is an other pattern you don't expect -> did you swap ? PCI: little > endian, PPC: big endian > > If I/O space is OK now, lets look into mem space: > All 0xFFFFFFFF -> has your card to be enabled/started/.... to configure this > area ? > Just an idea: Have you checked PCI-spec, which of both BARs is the low > address descriptor ? Change contents of BAR0 and BAR1. > > Unexpected pattern in mem-space? Take care of endianess, access width .... > > else: ?????? > > Mit freundlichen Grüßen, > Michael Lawnick --------------------------- Newsgroups: comp.os.vxworks Subject: Re: WindML Accelerated Driver Date: 11 Mar 2002 23:40:48 -0800 From: tobias.klotz@draeger.com (Tobias Klotz) Organization: http://groups.google.com/ Message-ID: <5d6482af.0203112340.61499fa4@posting.google.com> References: <5d6482af.0203110704.57c443d6@posting.google.com> Bill Pringlemeir wrote in message news:... > Are you talking about VGA type optimizations of "framebuffer" > bitBlitting? Do you have some hardware that will bitBlit? I am not > quite sure what optimization you are talking about; but the memory > compare should work. I think that a pointer to the "framebuffer" is > put in every graphics context (or some convenient structure) for quick > reference. We currently use a Silicon Motion LynxEM SM710 (This might change but will allways be something with BitBlt in HW). Which methods do I have to modify? Only the BitmapBlt or also the BitmapWrite/Read method? > > hth, > Bill Pringlemeir. thanks! tobias --------------------------- Newsgroups: comp.os.vxworks Subject: Re: A question about ifunit( ) && extern struct ifnet *ifnet? Date: 12 Mar 2002 00:06:29 -0800 From: lisheng_811@yahoo.com.cn (Saledom) Organization: http://groups.google.com/ Message-ID: <4a7f0d21.0203120006.3d87515c@posting.google.com> References: <8cd11808.0203111953.52ac6949@posting.google.com> the following function is wote by me when i learn the if-programming. it is easy for you to find the difference between your code and mine. if you dont agree with my programm, or my programm is not match your purpose, i would like to dicuss with you. of cause, you can send a mail directly to me. int myIfShow(char * ifName) { struct ifnet *pIf; struct ifaddr *pIfAddr; struct sockaddr *pSockAddr; pIf= ifunit(ifName); logMsg("if name : %s %d\n", (int)pIf->if_name, pIf->if_unit, 3,4,5,6); pIfAddr = pIf->if_addrlist; while (pIfAddr != NULL) { char str[100]; int i; pSockAddr= pIfAddr->ifa_addr; if (pSockAddr != NULL) { bzero(str, 100); if (pSockAddr->sa_family == AF_INET) bcopy("AF_INET",str, sizeof("AF_INET")); if (pSockAddr->sa_family == AF_LINK) bcopy("AF_LINK",str, sizeof("AF_LINK")); logMsg(" if self addr\n sock addr family: %d %s len: %d\n sock data: ", pSockAddr->sa_family, (int)str, pSockAddr->sa_len, 4,5,6); for (i=0; isa_len; i++) logMsg("%02x ", pSockAddr->sa_data[i], 2,3,4,5,6); logMsg("\n",1,2,3,4,5,6); } pSockAddr= pIfAddr->ifa_broadaddr; if (pSockAddr != NULL) { bzero(str, 100); if (pSockAddr->sa_family == AF_INET) bcopy("AF_INET",str, sizeof("AF_INET")); if (pSockAddr->sa_family == AF_LINK) bcopy("AF_LINK",str, sizeof("AF_LINK")); logMsg(" if broadcast addr\n sock addr family: %d %s len: %d\n sock data: ", pSockAddr->sa_family, (int)str, pSockAddr->sa_len, 4,5,6); for (i=0; isa_len; i++) logMsg("%02x ", pSockAddr->sa_data[i], 2,3,4,5,6); logMsg("\n",1,2,3,4,5,6); } pSockAddr= pIfAddr->ifa_netmask; if (pSockAddr != NULL) { bzero(str, 100); if (pSockAddr->sa_family == AF_INET) bcopy("AF_INET",str, sizeof("AF_INET")); if (pSockAddr->sa_family == AF_LINK) bcopy("AF_LINK",str, sizeof("AF_LINK")); logMsg(" if netmask addr\n sock addr family: %d %s len: %d\n sock data: ", pSockAddr->sa_family, (int)str, pSockAddr->sa_len, 4,5,6); for (i=0; isa_len; i++) logMsg("%02x ", pSockAddr->sa_data[i], 2,3,4,5,6); logMsg("\n",1,2,3,4,5,6); } logMsg("\n",1,2,3,4,5,6); pIfAddr = pIfAddr->ifa_next; } } --------------------------- Newsgroups: comp.os.vxworks,comp.unix.programmer Subject: IP Length Error in Raw Sockets Date: Tue, 12 Mar 2002 08:56:13 +0000 (UTC) From: "Ramesh Krishnan" Organization: Mailgate.ORG Server - http://www.Mailgate.ORG Message-ID: Hi, I am using raw sockets in VxWOrks and i want to receive some data using some unassigned protocol number in IP Protocol field. I am sending a string here of size13 bytes. One thing is all BSD derived socket implementations while creating their own IP header using IP_HDRINCL option should not convert the length and frag offset field from host byte order to N/W byte order. This is a feature/bug and VxWorks is no excemption from this( Linux too ). I am sending the string by building own IP header with protocol field as 140 from a Linux machine. I am receiving the same thing in VxWOrks. But the length field of the received IP packet using raw socket is showing some junk. But all the other data are correct. I tried between two linux machines, there the length field is printing correctly as 33 ( 20 + 13 ). But again when i send the data from VxWOrks to Linux ( note: the length field is left in Host byte order itself ), the linux machines prints the data correctly. THe only case, that too the length field alone is bringing me problems while receiving from VxWOrks. What could be the problem. THe the size of the packet received is 33 but the lenght field inside the IP header is showing some junk. I tried the other way of not converting the length field from n/w to host byte order. Now its printing the size as 13. That is it is excluding the IP hdr length size. This is constantly leaving the 20 bytes and giving the remaining length.( I tried with other packet lengths also, thats why i am saying ). So what is the bug here. Whether it is VxWorks bug or Linux bug or my code bug or it is a feature :-). Kindly help me in this regard. THanks, Ramesh - -- Posted via Mailgate.ORG Server - http://www.Mailgate.ORG --------------------------- Newsgroups: comp.os.vxworks Subject: [Help Me] download app. to vxworks nt simulator Date: Tue, 12 Mar 2002 09:09:05 GMT From: "Kim, Jeong-Hwan" Organization: Dacom Message-ID: Hi, everyone I built a vxworks NT simulator with the command "make vxWorks.st" for not using Tornado evironment (target server) I got a vxWorks.st.exe file for standalone including target shell. When "vxWorks.st.exe" is executed, it works normally, prompting "shell prompt". However, when I try to download my application code for NT simulator, "ld" and "ls" command does not work. How can I download my application object code to nt vxworks simulator program not using Tornado environment ? The situation is as follows : Adding 2373 symbols for standalone. ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] ]]]]]]]]]]] ]]]] ]]]]]]]]]] ]] ]]]] (R) ] ]]]]]]]]] ]]]]]] ]]]]]]]] ]] ]]]] ]] ]]]]]]] ]]]]]]]] ]]]]]] ] ]] ]]]] ]]] ]]]]] ] ]]] ] ]]]] ]]] ]]]]]]]]] ]]]] ]] ]]]] ]] ]]]] ] ]]]] ]]] ]] ] ]]] ]] ]]]]] ]]]]]] ]] ]]]]]]] ]]]] ]] ]]]] ]]]]] ] ]]]] ]]]]] ]]]]]]]] ]]]] ]] ]]]] ]]]]]]] ]]]] ]]]]]] ]]]]] ]]]]]] ] ]]]]] ]]]] ]] ]]]] ]]]]]]]] ]]] ] ]]]]]]] ]]]]] ] ]]]]]] ] ]]] ]]]] ]] ]]]] ]]]] ]]]] ]] ]] ]]]]]]]] ]]]]] ]]] ]]]]]]] ] ]]]]]]] ]]]] ]]]] ]]]] ]]]] ] ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] ]]]]]]]]]]]]]]]]]]]]]]]]]]]]] Development System ]]]]]]]]]]]]]]]]]]]]]]]]]]]] ]]]]]]]]]]]]]]]]]]]]]]]]]]] VxWorks version 5.4 ]]]]]]]]]]]]]]]]]]]]]]]]]] KERNEL: WIND version 2.5 ]]]]]]]]]]]]]]]]]]]]]]]]] Copyright Wind River Systems, Inc., 1984-1999 CPU: VxSim for Windows. Processor #0. Memory Size: 0x200000. BSP version 1.1/1. WDB: Ready. - -> - -> - -> i NAME ENTRY TID PRI STATUS PC SP ERRNO DELAY - ---------- ------------ -------- --- ---------- -------- -------- ------- -- - --- tExcTask _excTask 4fd9170 0 PEND 4348f6 4fd908c 30065 0 tLogTask _logTask 4fd4758 0 PEND 4348f6 4fd4670 30065 0 tShell _shell 4fcc090 1 READY 40c320 4fcb4c0 0 0 tWdbTask 41a684 4fd0338 3 PEND 4348f6 4fd0214 30065 0 value = 0 = 0x0 - -> - -> devs drv name 0 /null 1 /tyCo/0 3 host: 4 /vio 5 /tgtsvr value = 25 = 0x19 - -> - -> - -> ls Can't open ".". value = -1 = 0xffffffff = _func_taskRegsShowRtn + 0xffb86d5f - -> - -> - -> ld "ppp.out" loadLib error: File type with magic number 0xa0a is not supported. Header Error #8 Header Fail ld error: error reading file (errno = 0x3d0001). value = 0 = 0x0 - -> - -> --------------------------- Newsgroups: comp.os.vxworks Subject: Re: A question about ifunit( ) && extern struct ifnet *ifnet? Date: Tue, 12 Mar 2002 09:28:35 +0000 (UTC) From: "Ramesh Krishnan" Organization: Mailgate.ORG Server - http://www.Mailgate.ORG Message-ID: References: <8cd11808.0203111953.52ac6949@posting.google.com> <4a7f0d21.0203120006.3d87515c@posting.google.com> Hi, How your code will work in case no interface name is specified. I am in need of a requirement like that. I dont know any interface name or index, but i need to get the details of all. I dont want normal ifShow routine. I want to know how ifshow is implemented without giving any interface name as arguement. There is a ioctl IFCONF which will give the interface list. But it is giving it to ifreq structure. In Linux it is working fine. BUt in case of VxWorks the code is printing the interface along with some junk( because we dont know how many interface exist from ifreq structure alone ). With ifnet structure, we can do i suppose. But how to initialise it like requesting the kernel for the interface list with a ioctl ( right now the kernel pastes the output in ifreq structure but from the ifreq structure alone we cannot know how many interfaces exist , only ifnet structure has a pointer to the next interface ). If you know anything in this regard, kindly share with me to my mail id or to the list. Thanks, Ramesh ============================================================== "Saledom" wrote in message news:4a7f0d21.0203120006.3d87515c@posting.google.com... > the following function is wote by me when i learn the if-programming. > it is easy for you to find the difference between your code and mine. > if you dont agree with my programm, or my programm is not match your > purpose, i would like to dicuss with you. of cause, you can send a > mail directly to me. > ====== snip ============================ - -- Posted via Mailgate.ORG Server - http://www.Mailgate.ORG --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Do I need semaphore protection for multiple tasks accessing same socket Date: Tue, 12 Mar 2002 11:05:02 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C8DE153.8030601@spamm.me.l8s.co.uk> References: <68f5c46.0203061308.41e9cdec@posting.google.com> <3C86A76B.4010607@spamm.me.l8s.co.uk> <3C8758BE.7080106@spamm.me.l8s.co.uk> Hwa Jin Bae wrote: > David, the socket descriptors behave correctly as I said before. Why don't > you try it? Read and Write that are pending should return when socket is > closed. Subsequent write and read should return error as well on the > socket. Ok, check the following senario: - - task A calls write on a socket fd, as it executes the first instruction of sock_write (not sure of the name) is is blocked by the higher priority task B. - - task B closes the socket, the socket code can't know about task A... - - task B creates a new socket and is given the same piece of memory as was used for the original socket. - - task B blocks - - task A completes its write I can't see how the socket code can stop A's write hitting the new socket. David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: BSD Ethernet Driver Date: Tue, 12 Mar 2002 11:20:45 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C8DE502.30407@spamm.me.l8s.co.uk> References: <6847c39a.0203072126.4cc28aaf@posting.google.com> <6847c39a.0203080206.2515b5ff@posting.google.com> <3C890057.E551DBDA@varndellengineering.com> <3C89397B.DFA7FE0@varndellengineering.com> > 2. When chaining DMA buffers for output (and avoiding copies), there should > be a limit there as well. Under extreme cases, BSD TCP stack will send down > a long mbuf chain containing some small mbufs chained together. The number > of mbufs in a chain can be larger than 32. In those cases, it makes little > sense to exhaust descriptor resources by using chained DMA. It is better to > copy. A threshold of some sort is required there as well. > > There are some other "unwritten" rules in driver writing. However, these > two apply to the copy avoidance issues. I've actually improved the performance of ethernet and FDDI drivers by adding a data copy in the MAC code! The main added benefit is simplicity and general shortening of the code path. It is, however, important to align the copy of the large data block. Also with the lance, the first fragment must be 100 bytes. This isn't usually the case. When I have done TX DMA chaining, I've copied short fragments and chained log ones. With long chains - I've seen VERY long ones on Unix systems (especially when 2 higher layes are doing data retransmittions) you must copy the data. Also on systems where the IO devices cannot access all of real memory - - or need an MMU setup to do so - it is MUCH cheaper to copy to an appropriate piece of memory. Dunno about the WRS lance driver though, but I suspect my one that copies the data will beat it! David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: BSD Ethernet Driver Date: Tue, 12 Mar 2002 11:21:54 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C8DE54A.50807@spamm.me.l8s.co.uk> References: <6847c39a.0203072126.4cc28aaf@posting.google.com> <6847c39a.0203080206.2515b5ff@posting.google.com> <3C890057.E551DBDA@varndellengineering.com> <3c891c2c$1@brateggebdc5.br-automation.co.at> Werner Schiendl wrote: >>Why would WRS discard working code? >> >> > > To simplify the demo code? The 'demo' driver for the Olicom pcmcia card contained several timing bugs! Not a good sample driver at all. David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Porting from VxWorks 5.3 to 5.4 Date: Tue, 12 Mar 2002 11:26:28 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C8DE659.6010203@spamm.me.l8s.co.uk> References: <5c04bc56.0203081207.6b67c4c2@posting.google.com> J. J. Farrell wrote: > How significant were the changes between VxWorks 5.3 and 5.4? > In which areas did it change? > > If I need to port a large driver for a proprietary PCI device > from 5.3 to 5.4, how much work am I letting myself in for? > Not too much... Ignore all the project stuff. The network startup was simplified somewhat - the 5.4 usrNetwork.c will work with a 5.3 system! Note that they are not binary compatible, but I didn't spot any massive gotcha's. (I was building a lot of hardware drivers from common source) Dunno about the PCI stuff - but that will be small anyway. David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: netTask limits high-frame-rate transfers in Gigabit Ethernet Date: Tue, 12 Mar 2002 11:33:21 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C8DE7EF.8070403@spamm.me.l8s.co.uk> References: <3c82e042@MAIL.mhogaming.com> Jerry Marcinko wrote: > Watch out for the overhead of the netTask network stack scheduler. Every > invocation of netJobAdd causes TCP/IP stack related processing that consumes > much CPU time, thereby limiting frame transfer rates in high-performance > applications including Gigabit Ethernet. > > For example, on a 200 MHZ PPC603e, I found the netTask overhead per > netJobAdd to be over 150 microseconds per call. > > On a 450 MHZ PPC750, it still is high -- estimated about 80-100 microseconds > per call. > > This can limit the frame rates especially if your application uses short > frames. It is a major bottleneck in Gigabit Ethernet applications, aside > from the TCP/IP stack itself. We used to get 3000 packets per second out of 40MHz sparc box and 25MHz 386 :-) David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: BSD Ethernet Driver Date: Tue, 12 Mar 2002 03:38:03 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <6847c39a.0203072126.4cc28aaf@posting.google.com> <6847c39a.0203080206.2515b5ff@posting.google.com> <3C890057.E551DBDA@varndellengineering.com> <3C89397B.DFA7FE0@varndellengineering.com> <3C8DE502.30407@spamm.me.l8s.co.uk> It is possible copying data might be better sometimes. But not always. So the unwritten rule is to write both ways and find out. It really depends on the hardware. Sometimes avoidance of copying work at driver level helps a lot; sometimes it makes it worse. I have seen many cases that support both of these scenarios. That doesn't mean chained TX DMA should be avoided. Sometimes it makes big difference, especially when your payload MTU gets larger than 1500. For example FDDI (around 4K) and ATM (around 9K usually). The world is not all Ethernet you know. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Do I need semaphore protection for multiple tasks accessing same socket Date: Tue, 12 Mar 2002 03:45:43 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <68f5c46.0203061308.41e9cdec@posting.google.com> <3C86A76B.4010607@spamm.me.l8s.co.uk> <3C8758BE.7080106@spamm.me.l8s.co.uk> <3C8DE153.8030601@spamm.me.l8s.co.uk> If you read BSD code you will understand. There are lots of code in original BSD socket level code that prevents something like the problem you describe. There are some code in VxWorks in sockLib which also prevents the case you describe. You can try to simulate this problem, but you will not be successful. There are lots of code that will take care of race conditions like that already. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Strange ccarm error message. Date: Tue, 12 Mar 2002 11:50:20 -0000 From: "lang2" Organization: WHAT Message-ID: Could anyone tell me what the following message mean? initializer element for `_localExceptionContext_.next' is not computable at load time. --------------------------- Newsgroups: comp.os.vxworks Subject: Page Fault for help Date: 12 Mar 2002 03:58:02 -0800 From: kang.yonghong@mail.zte.com.cn (K.YH) Organization: http://groups.google.com/ Message-ID: Recently i have builded a bootable project,and the vxworks image is vxworks which is 1.65MB.but when i boot vxworks from FTP Server,after vxworks image is download and start at 0x******.then there is a error,which appeared as follows: Page Fault Program Counter... Error code : 0x0000000 Task : 0x3ffee7c "tRootTask" My environment is :Tornado 2.0 vxworks 5.4 X86bsp Can anyone help me? Why it is so and how to config vxworks? Thanks. --------------------------- Newsgroups: comp.os.vxworks Subject: Using the Intel Pentium IA32 compiler with vxWorks Date: 12 Mar 2002 04:02:17 -0800 From: andy.kirby@computer.org (Andy Kirby) Organization: http://groups.google.com/ Message-ID: <4f511572.0203120402.612ad759@posting.google.com> I have been having some performance issues with the GNU C compiler as supplied with Tornado II for Pentium Targets - it seems to generate code that runs roughly 10x slower than the Borland C++ 5.1 compiler on the same target. Looking around, it would seem the Intel IA32 compiler would be the best bet in terms of performance, but I can't seem to generate a .o file in a.out format to load into vxWorks. Does anyone have any experiance or know any utilities that will help use the Intel compiler in tandem with vxWorks? Ideally I'd like to create a .lib file from the Intel tool chain and link it in with my Tornado project that uses the GNU toolchain. Many Thanks Andy --------------------------- End of New-News digest ********************** From vxwexplo-errs@csg.lbl.gov Wed Mar 13 03:00:37 2002 From: S Ramesh Date: Wed Mar 13 03:00:39 PST 2002 Subject: Reception of IP hdr in VxWorks Hi, I previously posted regarding the reception of IP hdr in VxWorks. THe total length field alone is receiving wrongly. I am sending the packet from linux machine and receiving it in VxWOrks. I have checked sending between two linux machines, it worked fine. But reception in VxWorks is the problem. I tried between two VxWOrks images two, there also the problem exists. I will paste the code here. Somebody kindly help me out what's going wrong in this. This code is a working code. You can cut and paste it and check out. Thanks, Ramesh Linux Raw packet sending code: =========================================================================== #include #include #include #include #define PORT 0 #define LOCAL_IP_ADDR "192.168.100.242" #define DEST_IP_ADDR "90.0.0.1" /* #define LOCAL_IP_ADDR "192.168.100.242" #define DEST_IP_ADDR "192.168.100.109" */ #define IP_PROTO_LMP 140 #define OK 1 #define ERROR -1 #define MESSAGE "MESSAGE CAME" uint16_t checksum( uint16_t *data, uint32_t len ) { /* Data is the one for which we are calculating checksum and its size * len in bytes */ register uint32_t sum = 0; uint16_t ans; register uint16_t *temp = data; register uint32_t odd = len; /* Adding 16 bit word every time to sum */ while( odd> 1) { sum += *temp; odd -= 2; } /* If length is odd the last 8 bits will also get added */ if( odd ) sum += *( uint8_t * )temp; while( sum>> 16 ) sum = ( sum>> 16 ) + ( sum & 0xffff ); ans =~ sum; return( ans ); } /*this message is encapsulated by my IP hdr */ int build_iphdr(void *data, uint32_t len) { struct iphdr *ip=( struct iphdr * )data; ip->version=4; ip->ihl=5; ip->tos=0; ip->tot_len=0; /*htons(sizeof( struct iphdr )+ len);*/ ip->id=htons(getuid()); ip->ttl=255; ip->protocol=IP_PROTO_LMP; /*My protocol number */ if( (ip->saddr=inet_addr(LOCAL_IP_ADDR)) < 0 ) { perror("Give valid source IP:"); return -1; } if( (ip->daddr=inet_addr(DEST_IP_ADDR)) < 0 ) { perror("Give valid dest IP:"); return -1; } ip->check=checksum((unsigned short *)ip,sizeof(struct iphdr)); return 0; } void display(void *buf, int bytes) { int i; struct iphdr *ip = buf; printf("\n---------------------------------------------------------\n"); for ( i = 0; i < bytes; i++ ) { if ( !(i & 15) ) printf("\n%04X: ", i); printf("%02X ", ((unsigned char*)buf)[i]); } printf("\n---------------------------------------------------------\n"); printf("IPv%d: hdr-size=%d pkt-size=%d protocol=%d TTL=%d src=%s ", ip->version, ip->ihl*4, ntohs(ip->tot_len), ip->protocol, ip->ttl, inet_ntoa(ip->saddr)); printf("dst=%s chksum= %d\n", inet_ntoa(ip->daddr), ip->check); } int main() { int raw,sockopt_val=1; struct sockaddr_in local_addr,peer_addr; struct iphdr *ip; char *my_sending_pkt; uint32_t len; if( (raw=socket(AF_INET,SOCK_RAW,IPPROTO_RAW)) < 0 ) { perror("sock"); exit(1); } if( (my_sending_pkt=(char *)malloc(sizeof(struct iphdr)+sizeof(MESSAGE)) ) == NULL ) { perror("malloc failed:"); return(ERROR); } ip=(struct iphdr *)my_sending_pkt; strcpy( (my_sending_pkt+sizeof(struct iphdr)),MESSAGE); bzero((char *)&local_addr,sizeof(local_addr)); bzero((char *)&peer_addr,sizeof(peer_addr)); local_addr.sin_family=AF_INET; local_addr.sin_port=htons(PORT); peer_addr.sin_family=AF_INET; peer_addr.sin_port=htons(PORT); if( (inet_aton(LOCAL_IP_ADDR,(struct in_addr *)&local_addr.sin_addr.s_addr)) == ERROR ) { perror("Addr conversion:"); return(ERROR); } if( (inet_aton(DEST_IP_ADDR,(struct in_addr *)&peer_addr.sin_addr.s_addr)) == ERROR ) { perror("Addr conversion:"); return(ERROR); } if( (setsockopt(raw,0,IP_HDRINCL,(char *)&sockopt_val,sizeof(sockopt_val)) )== ERROR) { perror("setsockopt:"); return(ERROR); } if( (build_iphdr(ip,sizeof(MESSAGE)) ) < 0) { perror("Build IP failed:"); return(ERROR); } if( ( bind(raw,(struct sockaddr *)&local_addr,sizeof(local_addr)) ) == ERROR ) { perror("Bind:"); return(ERROR); } len = sizeof( struct iphdr ) + sizeof( MESSAGE ); display(my_sending_pkt,len); printf("IP PKT len %d\n",ip->tot_len); if( (sendto(raw,(caddr_t)my_sending_pkt,len,0,(struct sockaddr *)&peer_addr,sizeof(peer_addr)) ) != len ) { perror("Sendto failed:"); return(ERROR); } return OK; } ============================================================================== VxWorks code for receiving IP packet: ===================================== #include #include #include #include #include #include #include #include #define LOCAL_IP_ADDR "90.0.0.1" void display(void *buf, int bytes) { int i; struct ip *iphdr = buf; /*struct icmphdr *icmp=(buf + sizeof(struct ip));*/ printf("----------------\n"); for ( i = 0; i < bytes; i++ ) { if ( !(i & 15) ) printf("\n%04X: ", i); printf("%02X ", ((unsigned char*)buf)[i]); } printf("\n"); printf("IPv%d: hdr-size=%d pkt-size=%d protocol=%d TTL=%d src=%s dst=%s\n", iphdr->ip_v, iphdr->ip_hl*4, ntohs(iphdr->ip_len), iphdr->ip_p, iphdr->ip_ttl, inet_ntoa(iphdr->ip_src),inet_ntoa(iphdr->ip_dst)); /*if( iphdr->p== IPPROTO_ICMP ) { printf("ICMP type %d: ICMP echo id %d: ICMP Seq %d: ICMP Chksum %d:\n", icmp->type,icmp->un.echo.id,icmp->un.echo.sequence,icmp->checksum); } */ if ( iphdr->ip_p == 140 ) printf("Message %s\n",(char *)(buf+sizeof(struct ip))); } int rawget() { int sd; struct sockaddr_in addr,local_addr; unsigned char buf[1024]; sd = socket(AF_INET,SOCK_RAW,140); if ( sd < 0 ) { perror("socket"); return ERROR; } local_addr.sin_family=AF_INET; local_addr.sin_port=htons(0); local_addr.sin_addr.s_addr=INADDR_ANY; /* if( (inet_aton(LOCAL_IP_ADDR,(struct in_addr *)&local_addr.sin_addr.s_addr)) == ERROR ) { perror("Addr conversion:"); return(ERROR); } */ if( ( bind(sd,(struct sockaddr *)&local_addr,sizeof(local_addr)) )==ERROR) { perror("Bind:"); return(ERROR); } for (;;) { int bytes, len=sizeof(addr); bzero(buf, sizeof(buf)); bytes = recvfrom(sd, buf, sizeof(buf), 0, (struct sockaddr *)&addr, &len); if ( bytes> 0 ) display(buf, bytes); } return OK; } ========================================================================== From vxwexplo-errs@csg.lbl.gov Wed Mar 13 04:03:22 2002 From: Vxworks Exploder Date: Wed Mar 13 04:03:25 PST 2002 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Wed Mar 13 04:03:16 PST 2002 Subject: Data caching on-the-fly Subject: Re: how can I clear the data buffer of a serial port? Subject: Initial Ethernet Configuration Subject: how to use the wtxErrGet,wtxErrSet,wtxErrHandlerAdd Subject: Re: BSD Ethernet Driver Subject: Re: Page Fault for help Subject: ln97xEnd - ring buffer size Subject: Re: Can I ask a question of Pci ? Subject: Re: A Basic Netoworking Question! Subject: Re: Strange ccarm error message. Subject: Re: WindML Accelerated Driver Subject: Re: ln97xEnd - ring buffer size Subject: Re: [Help Me] download app. to vxworks nt simulator Subject: How can I protect Flash File System from General Flash Subject: Re: Tornado 2.0.2 With gcc 2.96 Subject: Re: Data caching on-the-fly Subject: Re: OPENDIR Help Subject: Re: Printing 64bit values Subject: Re: OPENDIR Help Subject: What causes this message? Subject: Re: How can I protect Flash File System from General Flash Subject: What's the Expected errno from msgQReceive(...,NO_WAIT) Subject: Re: Printing 64bit values Subject: Interrupt vector table Subject: Re: I want to log the packet between IP and mux. Subject: Re: Page Fault for help Subject: MPC8260 MCC driver Subject: compiling a bootrom for Cetia VMPC6A under Tornado 2.0/Win NT Subject: Re: A question about ifunit( ) && extern struct ifnet *ifnet? Subject: C++ application: Tornado Shell vs. Target Console Subject: Re: PCI memory space Subject: Re: BSD Ethernet Driver Subject: Re: BSD Ethernet Driver Subject: PMC clash on MVME5100 Subject: How to preform periodical task except sysAuxClkRateSet() Subject: Re: C++ application: Tornado Shell vs. Target Console Subject: Re: compiling a bootrom for Cetia VMPC6A under Tornado 2.0/Win NT Subject: bootroms not building... Subject: Re: [Help Me] vxworks Simulator Subject: Re: A question about ifunit( ) && extern struct ifnet *ifnet? Subject: Should the IP header be 4 bytes(long word) align? Subject: Re: I want to log the packet between IP and mux. Subject: Re: Interrupt vector table Subject: Building the WindML system and Driver set using the PPC604 cpu tool Subject: Re: How to preform periodical task except sysAuxClkRateSet() Subject: Re: Should the IP header be 4 bytes(long word) align? Subject: Compatibility of Diab C++ with RogueWave Subject: Receiving IP packet in Raw Sockets ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Data caching on-the-fly Date: Tue, 12 Mar 2002 12:48:05 +0000 (UTC) From: "William Fredericksen" Organization: Mailgate.ORG Server - http://www.Mailgate.ORG Message-ID: I am trying to determine if it is possible to change data caching for segments of memory on the fly. I found references to the BAT registers in the MPC8240 Integrated Processor User's Manual, but haven't found any useful documentation on how to program these registers or whether it is safe to update them on-the-fly. If this can be done, what programming considerations should I keep in mind? Also, sample code would be nice. I am programming in C++ (but am expecting that this will have to be in assembly). Will Fredericksen - -- Posted via Mailgate.ORG Server - http://www.Mailgate.ORG --------------------------- Newsgroups: comp.os.vxworks Subject: Re: how can I clear the data buffer of a serial port? Date: Tue, 12 Mar 2002 12:53:08 -0000 From: "Dave Korn" Organization: Lumber Cartel (tinlc) Members #2234-2237 (owing to browser refresh) Message-ID: <_5nj8.3143$5o.2541483@newsr2.u-net.net> References: "thatbird" wrote in message news:c330243e.0203112252.13a3e531@posting.google.com... > I connect a serial port of ppc(A) directly to another device(B)'s > serial port. A want to read data from B. The communication is > correct, but the question I met is followed. > > After ata that A got from B is stored, I want to clear the data buffer > when error happen, otherwise, next time I will read only data from > last time communication. > > But I do not know how to do?????? You need an ioctl call with FIOFLUSH: status = ioctl (fd, FIOFLUSH, 0); [This assumes you're using tyLib / tyCo device] DaveK - -- moderator of alt.talk.rec.soc.biz.news.comp.humanities.meow.misc.moderated.meow Burn your ID card! http://www.optional-identity.org.uk/ Help support the campaign, copy this into your .sig! Proud Member of the Exclusive "I have been plonked by Davee because he thinks I'm interesting" List Member # Master of Many Meowing Minions Holder of the exhalted PF Chang's Crab Wonton Award for kook spankage above and beyond the call of hilarity. --------------------------- Newsgroups: comp.os.vxworks Subject: Initial Ethernet Configuration Date: 12 Mar 2002 05:39:20 -0800 From: giby@myw.ltindia.com (Giby) Organization: http://groups.google.com/ Message-ID: Hi all i have successfuly booted vxworks on our MPC823 board and its downloading through the serial port. but when i tried downloading through my ethernet port it says error loading file. can somebody tell what all things i should do for configuring ehernet so that communication could be established between host and the target board. thanks in advance. --------------------------- Newsgroups: comp.os.vxworks Subject: how to use the wtxErrGet,wtxErrSet,wtxErrHandlerAdd Date: 12 Mar 2002 05:41:30 -0800 From: hychen@mail.ustc.edu.cn (jerry chen) Organization: http://groups.google.com/ Message-ID: <8c12f92e.0203120541.28bcc578@posting.google.com> who can give me some examples? or where can i find some information on how to use it? The Information in Tornado API Reference is not enough. Thanks. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: BSD Ethernet Driver Date: Tue, 12 Mar 2002 13:48:00 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C8E077E.50407@spamm.me.l8s.co.uk> References: <6847c39a.0203072126.4cc28aaf@posting.google.com> <6847c39a.0203080206.2515b5ff@posting.google.com> <3C890057.E551DBDA@varndellengineering.com> <3C89397B.DFA7FE0@varndellengineering.com> <3C8DE502.30407@spamm.me.l8s.co.uk> > That doesn't mean chained TX DMA should be avoided. Sometimes it makes big > difference, especially when your payload MTU gets larger than 1500. For > example FDDI (around 4K) and ATM (around 9K usually). The world is not all > Ethernet you know. Indeed, I've written token ring drivers - around 16k limit for a 16Mb ring. That driver did transmit from some user buffers (data fragments > some fixed size). From what I've seen it usually worth copying everything except the last data fragment (ie copy the protocol headers) and copying small fragments. For ethernet almost everything is small. If you copy on transmit, you don't need to take the 'end of transmit' interrupt to free the buffer (because some protocol stacks detect the buffer being freed). This alone can save the cost of the (aligned) data copy. Of course you do need an efficient copy routine! The vxWorks ARM bcopy() code allowed for far too many special cases! David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Page Fault for help Date: Tue, 12 Mar 2002 13:49:54 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C8E07F7.4050609@spamm.me.l8s.co.uk> References: K.YH wrote: > Recently i have builded a bootable project,and the vxworks image is > vxworks which is 1.65MB.but when i boot vxworks > from FTP Server,after vxworks image is download and start at > 0x******.then there is a error,which appeared as follows: > Page Fault > Program Counter... > Error code : 0x0000000 > Task : 0x3ffee7c "tRootTask" > My environment is :Tornado 2.0 vxworks 5.4 X86bsp > Can anyone help me? Why it is so and how to config vxworks? > Thanks. > Probably your image is overwriting RAM_HIGH_ADDR and hence the boot loader code. If that is true you need to rebuild the boot roms with a higher RAM_HIGH_ADDR value David --------------------------- Newsgroups: comp.os.vxworks Subject: ln97xEnd - ring buffer size Date: 12 Mar 2002 06:47:56 -0800 From: fillmore2@arcor.de (Achim) Organization: http://groups.google.com/ Message-ID: <9d082700.0203120647.5b0439aa@posting.google.com> Hi, has anyone managed to set the number of rx/tx buffers of the lnPci driver (ln97xEnd) to a number > 128? I changed the number and limit in the header file, use SSTYLE=3 with adapted rmd/tmd layout, and have enough memory for the descriptors/buffers - and all works fine with up to 128 rx & tx buffers. Is there any other setting in the driver that restricts these resources besides the checks on available memory and rmd/tmd_max...? Thanks for any ideas on this problem. Achim --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Can I ask a question of Pci ? Date: Tue, 12 Mar 2002 16:18:11 +0100 From: "Werner Schiendl" Message-ID: <3c8e1c39@brateggebdc5.br-automation.co.at> References: <989cdae4.0203081823.47edc196@posting.google.com> Hi, not sure what you are looking for... If you want find out how to find out (or set) the address ranges and interrupt configuration of the network board, look at the samples provided in source code for your particular BSP. Look for files named sysEnd.c in your BSP directory. E. g. for pc486 BSP, you'll find sysEl3c90xEnd.c Here you find this kind of stuff. These filese are #include'd into sysLib.c hth Werner "zlybupt" wrote in message news:989cdae4.0203081823.47edc196@posting.google.com... > Now I am engaged in a project of writing pci network card for > vxworks.I want to know how can i access the io address and the irq > number of the network card before the system boot? > Thank you in advance! --------------------------- Newsgroups: comp.os.vxworks Subject: Re: A Basic Netoworking Question! Date: Tue, 12 Mar 2002 16:21:31 +0100 From: "Werner Schiendl" Message-ID: <3c8e1cfc@brateggebdc5.br-automation.co.at> References: Hi Giby, be sure to read the VxWorks User's Manual and VxWorks Network Programmers Guide. It will save you tons of headache to understand how the VxWorks system works. hth Werner "Giby" wrote in message news:edcc6118.0203090551.2a72d80@posting.google.com... > I am using BSD sockets for Ethernet communication between two > Vx-Works/MPC823 controller board . When I call Accept() , which is a > BSD socket function .. the board waits for a packet . > Till it receives a data packet the program will be in a polled state > and only after receiving a packet the program executes the code lines > below the function call. > Query is in my actual integrated program how I will use this Accept() > socket function , because I want other things also to work along with > this Accept() function. > > Thanks in advance. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Strange ccarm error message. Date: 12 Mar 2002 10:35:09 -0500 From: Bill Pringlemeir Organization: Bell Sympatico Message-ID: References: Sender: bpringlemeir@DeadDuck lang2> Could anyone tell me what the following message mean? lang2> initializer element for `_localExceptionContext_.next' is not lang2> computable at load time. It helps immensely if you can give more details, like the C++ code that has localExceptionContext in some sort of array context. "is not computable at load time" means that you have made something static and attempted to use some sort of dynamic quantity to initialize it or to describe the size of an array [at least those are my guesses]. Does "localExceptionContext" exist within your source code? Which processor and compiler are you using? This might be a special C++ label for an exception, so you might be doing something wrong with an exception object. hth, Bill Pringlemeir. - -- Youth of today! Join me in a mass rally for traditional mental attitudes! vxWorks FAQ, "http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html" --------------------------- Newsgroups: comp.os.vxworks Subject: Re: WindML Accelerated Driver Date: 12 Mar 2002 10:46:34 -0500 From: Bill Pringlemeir Organization: Bell Sympatico Message-ID: References: <5d6482af.0203110704.57c443d6@posting.google.com> <5d6482af.0203112340.61499fa4@posting.google.com> Sender: bpringlemeir@DeadDuck >>>>> "Tobias" == Tobias Klotz writes: Tobias> We currently use a Silicon Motion LynxEM SM710 (This might Tobias> change but will allways be something with BitBlt in Tobias> HW). Which methods do I have to modify? Only the BitmapBlt or Tobias> also the BitmapWrite/Read method? Given that the manufacturer has not made the specifications publicly available, I am unable to help you. Regards, Bill Pringlemeir. - -- Young feelings are Xibotic. vxWorks FAQ, "http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html" --------------------------- Newsgroups: comp.os.vxworks Subject: Re: ln97xEnd - ring buffer size Date: Tue, 12 Mar 2002 10:40:40 -0500 From: George Varndell Organization: Posted Via Binaries.net = SPEED+RETENTION+COMPLETION = http://www.binaries.net Message-ID: <3C8E2177.D0B3BA2A@varndellengineering.com> References: <9d082700.0203120647.5b0439aa@posting.google.com> Achim wrote: > > Hi, > > has anyone managed to set the number of rx/tx buffers of the lnPci > driver (ln97xEnd) to a number > 128? > > I changed the number and limit in the header file, use SSTYLE=3 with > adapted rmd/tmd layout, and have enough memory for the > descriptors/buffers - and all works fine with up to 128 rx & tx > buffers. Is there any other setting in the driver that restricts these > resources besides the checks on available memory and rmd/tmd_max...? The driver source I have erroneously enforces this limit. If you can get the source, the chip will support up 512 descriptors using the initialization block method, more with direct CSR writes. Regards, George Varndell - -- Embedded Systems Expertise Varndell Engineering, LLC. http://www.varndellengineering.com Cumberland MD. 21502 ______________________________________________________________________________ Posted Via Binaries.net = SPEED+RETENTION+COMPLETION = http://www.binaries.net --------------------------- Newsgroups: comp.os.vxworks Subject: Re: [Help Me] download app. to vxworks nt simulator Date: Tue, 12 Mar 2002 16:42:02 +0100 From: "Werner Schiendl" Message-ID: <3c8e21ca$1@brateggebdc5.br-automation.co.at> References: Hi, is there a particular reason, why you do not download the code with Tornado? When you launch the simulator from the Tornado GUI, a suitable Target Server is usually automatically launched. You can then download your objects to the hardware. If you _need_ to do it from the target, you need access to the file system, where the files reside. I don't think this is created by default in the Sim (but may be wrong, don't use the Sim very often). For the NT simulator, there is sth. name ntPassFs that allows you communicate with the host file system. Look into the manuals how to configure it. hth Werner "Kim, Jeong-Hwan" wrote in message news:RAjj8.2675$PC3.1182347@news.bora.net... > Hi, everyone > I built a vxworks NT simulator with the command "make vxWorks.st" for not > using > Tornado evironment (target server) > I got a vxWorks.st.exe file for standalone including target shell. > When "vxWorks.st.exe" is executed, it works normally, prompting "shell > prompt". > However, when I try to download my application code for NT simulator, > "ld" and "ls" command does not work. > How can I download my application object code to nt vxworks simulator > program > not using Tornado environment ? > > The situation is as follows : > > > > > Adding 2373 symbols for standalone. > > > ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] > ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] > ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] > ]]]]]]]]]]] ]]]] ]]]]]]]]]] ]] ]]]] > (R) > ] ]]]]]]]]] ]]]]]] ]]]]]]]] ]] ]]]] > ]] ]]]]]]] ]]]]]]]] ]]]]]] ] ]] ]]]] > ]]] ]]]]] ] ]]] ] ]]]] ]]] ]]]]]]]]] ]]]] ]] ]]]] ]] ]] ]] > ] > ]]]] ]]] ]] ] ]]] ]] ]]]]] ]]]]]] ]] ]]]]]]] ]]]] ]] ]]] ] > ]]]]] ] ]]]] ]]]]] ]]]]]]]] ]]]] ]] ]]]] ]]]]]]] ]] ]] > ]]]]]] ]]]]] ]]]]]] ] ]]]]] ]]]] ]] ]]]] ]]]]]]]] ] ]] > ] > ]]]]]]] ]]]]] ] ]]]]]] ] ]]] ]]]] ]] ]]]] ]]]] ]]]] ]] > ]] > ]]]]]]]] ]]]]] ]]] ]]]]]]] ] ]]]]]]] ]]]] ]]]] ]]]] ]] ]] > ] > ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] > ]]]]]]]]]]]]]]]]]]]]]]]]]]]]] Development System > ]]]]]]]]]]]]]]]]]]]]]]]]]]]] > ]]]]]]]]]]]]]]]]]]]]]]]]]]] VxWorks version 5.4 > ]]]]]]]]]]]]]]]]]]]]]]]]]] KERNEL: WIND version 2.5 > ]]]]]]]]]]]]]]]]]]]]]]]]] Copyright Wind River Systems, Inc., > 1984-1999 > > CPU: VxSim for Windows. Processor #0. > Memory Size: 0x200000. BSP version 1.1/1. > WDB: Ready. > > -> > -> > -> i > > NAME ENTRY TID PRI STATUS PC SP ERRNO > DELAY > ---------- ------------ -------- --- ---------- -------- -------- ------- - -- > --- > tExcTask _excTask 4fd9170 0 PEND 4348f6 4fd908c 30065 > 0 > tLogTask _logTask 4fd4758 0 PEND 4348f6 4fd4670 30065 > 0 > tShell _shell 4fcc090 1 READY 40c320 4fcb4c0 0 > 0 > tWdbTask 41a684 4fd0338 3 PEND 4348f6 4fd0214 30065 > 0 > value = 0 = 0x0 > -> > -> devs > drv name > 0 /null > 1 /tyCo/0 > 3 host: > 4 /vio > 5 /tgtsvr > value = 25 = 0x19 > -> > -> > -> ls > Can't open ".". > value = -1 = 0xffffffff = _func_taskRegsShowRtn + 0xffb86d5f > -> > -> > -> ld "ppp.out" > > > loadLib error: File type with magic number 0xa0a is not supported. > Header Error #8 > Header Fail > ld error: error reading file (errno = 0x3d0001). > value = 0 = 0x0 > -> > -> > > --------------------------- Newsgroups: comp.os.vxworks Subject: How can I protect Flash File System from General Flash Date: Tue, 12 Mar 2002 16:04:27 -0000 From: "billangs" Organization: Siemens Inc. Message-ID: Could anyone please suggest a way of protecting collisions from accuring when writing to a flash file system and general areas (non file system) of flash. I am using my own routines to write to the general area of flash and standard routines (which use MTDs) supplied by vxworks to write to the flash file system. Adding a mutex semaphore at the lowest level does work to a certain extent, but should two tasks be spawned simultaneously with the same priority where, one writes to the geraral flash and the other to the flash file system then the write to the flash file system simply fails. does anybody know of a way to prevent this? Thanks Gurdeep --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Tornado 2.0.2 With gcc 2.96 Date: 12 Mar 2002 11:26:53 -0500 From: Bill Pringlemeir Organization: Bell Sympatico Message-ID: References: <9ec53d11.0203042356.73d7b673@posting.google.com> Sender: bpringlemeir@DeadDuck >>>>> "shoz" == shoz writes: shoz> The Problems I find are was related to stl. shoz> 1. stl code and see that the installation of gnu296 add an shoz> #ifdef in stl headers: Thanks, I hadn't seen those problems yet. shoz> I try to see where __GNUC_MINOR__ declare but I didn't find I shoz> only know it's set to 7 (version 2.7 maybe it internal in the shoz> compiler). __GNUC_MINOR__ is an internal define that is built into the compiler. There is some command that you can issue to see what variables are built in. Anything with a leading "__" is implementation reserved. So `legally', you should not code functions such as "__foobar()". shoz> 4. change in stl_alloc.h -> don't throw exception. shoz> This is what I know. Hmmm, I would consider that good! I understand that this might deviate from standard STL. However, embedded C++ does not use exceptions for a good reason. When I looked at the older vxWorks gcc (2.7.2?), I found that templates, RTTI and exceptions made our ARM code about 30% larger in size. Most of the modules do not use these features, but they have been turned on to make sure that classes have the same sizes when compiled between modules (with header files). So 90% of the code does not trap exception appropriately. Templates do not usually effect the class layout (at least that is my understanding), so it is possible to compile one module with templates and another without. STL, unfortunately, has exceptions in the allocator in older version of vxWorks. In the older version, they actually had an "#if 0" that had code to get rid of the exceptions. I am glad that they changed this. Exceptions contravene the C++ mantra of "no feature overhead if not used". fwiw, Bill Pringlemeir. - -- The end of our foundation is knowledge of causes, and secret motions of things; and the enlarging of the bounds of human empire, to the effecting of all things possible. - Francis Bacon, New Atlantis vxWorks FAQ, "http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html" - -- Have you ever thought it was costly to have two lanterns to defend against the alien? Or been called by your parent while driving down the road at 120mph? You will. And the company that will bring it to you: AT&T. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Data caching on-the-fly Date: Tue, 12 Mar 2002 09:43:43 -0800 From: "Dan Gold" Organization: Mailgate.ORG Server - http://www.Mailgate.ORG Message-ID: References: Sender: gold@ensemble.com "William Fredericksen" wrote in message news:ab58e1e87d0ed2af6e0cc2f59336b08b.69612@mygate.mailgate.org... > I am trying to determine if it is possible to change data caching for > segments of memory on the fly. I found references to the BAT registers > in the MPC8240 Integrated Processor User's Manual, but haven't found any > useful documentation on how to program these registers or whether it is > safe to update them on-the-fly. If this can be done, what programming > considerations should I keep in mind? Also, sample code would be nice. > I am programming in C++ (but am expecting that this will have to be in > assembly). Yes it's possible, but I wouldn't recommend it. I'm curious to know why you would need to do that - maybe a small description of your application might help me see the light... If you want to change the memory once, from say writeable to non-writeable (to protect your text segment), I would agree. But do you plan to keep changing the caching parameters for particular segments of memory ? You may be asking for trouble, coherency issues, hangs, DSI exceptions, etc... How big are these memory segments ? Rather than doing it yourself with the BATs, if the segments are small, you might want to consider using page table entries, then you can look at using vmBaseStateSet(). That is in the vxWorks docs. hth, Dan Gold gold@ensemble.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: OPENDIR Help Date: 12 Mar 2002 11:15:47 -0800 From: mpalone@gotuit.com (Mike Palone) Organization: http://groups.google.com/ Message-ID: <971e6b8f.0203121115.738db6a6@posting.google.com> References: <971e6b8f.0203092108.3d502241@posting.google.com> <971e6b8f.0203101438.300fe42c@posting.google.com> <971e6b8f.0203110612.f95dd7d@posting.google.com> <3C8CC14E.3E10877D@notifier-is.net> <971e6b8f.0203111150.156e92e5@posting.google.com> <3C8D11DE.A3F336BE@notifier-is.net> We haven't decided to use Ram Disk yet. We are currently using SIMNT ONLY. Kind of a chicken and egg I think if you have to copy files to RAM...which nobody has explained yet...does this just automagically happen? If I knew what files to copy to Ram Disk...I wouldn't need opendir...now would I? We cannot eat up Ram with our files. Plus, our dev stations have gigabytes of disk storage...remember, we are only in simulation at this point. I believe the issue is that the trial version of Tornado 2.02 that we have from WR does not include the Network Package. Other threads related to opendir not working in this forum suggest using NFS...we may have to wait....and try some workarounds in the simulator until we get our actual hardware target. Thanks everyone for the help on this issue...and sorry to have kept beating a dead horse... Mike david lindauer wrote in message news:<3C8D11DE.A3F336BE@notifier-is.net>... > Mike Palone wrote: > > > Thanks David... > > > > We are discussing using the ram disk as a temporary solution. It must > > be the 2.02 Tornado version of SIMNT I'm using but, > > > > DIR *pDir = NULL; > > pDir = opendir(dirname); > > ALWAYS returns a NULL for pDir. > > > > If you got it to work for dosFs, please tell me what I should look > > into. > > > > did you make sure the ram disk actually worked after you initialized it? by writing a file and reading it back? You should be > doing a ramDevCreate(), a dosFsDevInit(), and probably a dosFsMkFs() to initialize it with a blank file system. Seems like we may > have had some trouble with return codes from these functions as well... > > I've looked at my code and it appears we didn't use subdirectories but used opendir() to open the root of the disk. We were still > using a ram disk in the version I looked at. Our ram disk is mounted as '/FLASH' so the opendir looked like this: > > DIR *dir=opendir("/FLASH/"); > > The trailing backslash may be necessary, I don't know for sure at this point. > > David > > > > > > Thanks again... > > Mike > > > > david lindauer wrote in message news:<3C8CC14E.3E10877D@notifier-is.net>... > > > Mike Palone wrote: > > > > > > > Ok. I will look into using RAM Disk. I see the API ramDrv and > > > > ramDevCreate APIs which should be followed by a dosFsDevInit. The > > > > part that I am not groking yet is when folks say to copy the files I > > > > will need there and then opendir will work. Our application creates > > > > and uses many files...some of which could be large. How can one > > > > predict the amount of Ram to use, or should the files be copied there > > > > from a directory structure only when the time comes to needing to do > > > > an opendir? Sorry if I'm missing how to use ram disks...have to study > > > > that...but from first look through the docs, there is not a good > > > > explanation of the copy files part. Thanks again for your help and > > > > patience. > > > > > > > > > > ram disk is just like a floppy disk (or hard disk) once you have it set up. You save files there, read and write them just > > > like you would on a persistent storage device. opendir does work with dosfs; I have used it. May have even used it on a ram > > > disk during development, not sure that was a while back. > > > > > > As far as figuring out how much ram to use, you have to know how big your files are. Since this is a temporary solution > > > until you get persistent storage you may want to go ahead and limit what you are writing to the files, for now, so you don't > > > have to use up all your ram as a disk. > > > > > > David > > > > > > > > > > > Mike > > > > > > > > "Leonid Rosenboim" wrote in message news:... > > > > > Pardon my French, passFs and netDrv font support dirLib properly. > > > > > dosFs in all its forms and versions fully supports dirLib (which includes > > > > > opendir ) and mkdir() so you should have no problems doing what > > > > > you need to do on a RAM disk or virtual disk, both of which will > > > > > use dosFs on top of the block device driver. > > > > > > > > > > As to NFS, since you are on a WIndows host, you will find it > > > > > quite difficult to set up NFS properly between the VxSim > > > > > and your MSFT host, therefore my RAM disk recommendation, > > > > > its the easiest way out, and closest to your final situation. > > > > > > > > > > "Mike Palone" wrote in message > > > > > news:971e6b8f.0203101438.300fe42c@posting.google.com... > > > > > > Thanks for the feedback Leonid. Not sure how to create a virtual disk > > > > > > or RAM disk yet...I'll have to research. Lot of hoops to jump through > > > > > > because of a documented API does not work. Putting passFs aside for > > > > > > the time being, can somebody please tell me that it is in fact true > > > > > > that opendir does not work for dosFs? Should I dive further on the > > > > > > threads in this forum suggesting the use of NFS rather than netDrv? > > > > > > Can I use NFS for a local hard drive? It is a bug. If I can create > > > > > > directories and files...and read and write to files...I should be able > > > > > > to do an opendir. I started experiments toward implementing opendir > > > > > > functionality myself, but at this point even: > > > > > > > > > > > > Status = ioctl (fd, FIOREADDIR, (int)&dirStruct); > > > > > > > > > > > > gives an errno of ENOTDIR after opening a DIR. Our target will have a > > > > > > local hard disk, and without knowing the details, the idea of copying > > > > > > all the files I need to a RAM Disk just to enumerate a directory > > > > > > worries me. > > > > > > > > > > > > The other interesting thing is that I looked at the code in usrLib.c > > > > > > since it implements the ls command .... and it works from the command > > > > > > shell. It uses opendir. However there is the following code in the > > > > > > routine that I think may be executing as opposed to the opendir > > > > > > command. > > > > > > > > > > > > if (_func_netLsByName != NULL) > > > > > > { > > > > > > if ((*_func_netLsByName) (dirname) == OK) > > > > > > return (OK); > > > > > > else if (errno != S_netDrv_UNKNOWN_REQUEST) > > > > > > return (ERROR); > > > > > > } > > > > > > > > > > > > Thanks again... > > > > > > Mike > > > > > > > > > > > > > > > > > > "Leonid Rosenboim" wrote in message > news:... > > > > > > > Mike, > > > > > > > > > > > > > > passFs is just a hack, quick and dirty means of accessing > > > > > > > the work station file during development. Since it wont > > > > > > > be used for the application, it is not worth much effort. > > > > > > > > > > > > > > Until you have your final target, you can try to use > > > > > > > a virtual disk running full dosFs on it, which will be > > > > > > > much closer to your final application. If you cant > > > > > > > make a virtual disk, make a RAM disk with dosFs, > > > > > > > and fill it with the files you need on initialization. > > > > > > > > > > > > > > Also, there is the TSFS - Target Server File System > > > > > > > which you could try, but I have never used it and dont > > > > > > > know if it supports opendir and the like. > > > > > > > > > > > > > > "Mike Palone" wrote in message > > > > > > > news:971e6b8f.0203092108.3d502241@posting.google.com... > > > > > > > > Hey... > > > > > > > > > > > > > > > > I am new to VxWorks and am in the middle of a WinCE port of our > > > > > > > > application. I am using Tornado v2.0.2 which uses VxWorks 5.4.2 SIMNT, > > > > > > > > since we do not have our target hardware at this point. I have read > > > > > > > > through all the threads in this group regarding the problems that have > > > > > > > > been encountered with opendir and was hoping that somebody could give > > > > > > > > me an update on it's status. Unfortunately, I spent way too much time > > > > > > > > trying to get it to work without consulting this forumn first. The > > > > > > > > problems I was having with creating directories and reading and > > > > > > > > writing to files is fixed since I did a ntPassFsDevInit("c:") > > > > > > > > ntPassFsLib is used for NT Simulations. Without this statement, > > > > > > > > creating Directories failed with an unknown device error. The > > > > > > > > remaining hurdle (as if there won't be more to come...but the memory, > > > > > > > > threading, semaphore, etc. ports are working great) I now have is that > > > > > > > > opendir simply does not work. I've exhausted all experiments. In the > > > > > > > > end, we will have a local dosFs that we will need to interface to. > > > > > > > > There is a lot of discussions in this forum regarding opendir not > > > > > > > > working with netDrv and that we should NFS. I am about ready to write > > > > > > > > the code for opendir, readdir, and closedir myself, but wanted to make > > > > > > > > sure I should proceed with that option. Basically... pDir = > > > > > > > > opendir("dirname") always returns NULL and sometimes the error is > > > > > > > > ENOTDIR 20 /* Not a directory*/ is set in errno. I would totally > > > > > > > > appreciate any help/guidance somebody can give me. > > > > > > > > > > > > > > > > Mike Palone > > > > > > > > Principal Software Engineer > > > > > > > > Gotuit Video Inc. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Printing 64bit values Date: Tue, 12 Mar 2002 15:18:51 -0500 From: "doug dotson" Organization: Verio Message-ID: References: <900e9637.0203060746.2d1c1bda@posting.google.com> "Joe Chung" wrote in message news:rps7koi9350.fsf@nospam.invalid... > "doug dotson" writes: > > > I'm sure the algoirthm will work just as well without the > > insults. > > 1. What statements do you believe are insults? My comments in > the beginning? My self-critique of the algorithm? My embedded > comments? These: Sorry to jump in, but asking for some code to convert a number to a printable string is like asking for some code to do bubble sort. 1. You should already know it. 2. You can find it documented in most basic programming books. > 2. Having read the complete thread, I'm sure you saw that > multiple people pointed different ways to possible answers. > However, someone insisted on the actual code. Why were those > posters being so evasive? Why not just post the actual code? You would have to ask them, I posted some actual code. > 3. If I say, "Doug, your solution doesn't deal with signed > numbers, can you provide the code to do that?" You would just > refine and repost it, right? Yes, would you like me to? I assumed that one could extend the basic algorithm to handle signed numbers. > By the way, your solution doesn't > deal with 64 bit numbers (it works on positive 32 bit numbers) That is correct. Hense the function name "printULong". > Can you give the solution for printing 64 bit values? I would think that anyone that could do a bubble sort .... I don't have a 64-bit platform on which to test a 64-bit solution. I'd rather offer a solution that I tested the was not exactly what was asked for but could be extended in an obvious way, rather than offerring a solution that I could not test. > At what point would you tell me to stop? Right now would be nice. > My disappointment at the question is not that the person didn't > know it (partly it was so). It was, rather, that he didn't want > to find out by himself. Many times it is quicker to ask than to find out on your own. Usenet is a marvelous resource for solutions and those that ask for help should not have to deal with having their skill as a programmer called into question when the seek advise. Many of us here are actually programming to make a living and produce a product for our companies. Time is more important than impressing others. > One implementation can be found in K&R's _The C Programming > Language_ 2nd Ed. on page 64, when they first introduce the > do-while loop construct of C. Big deal. Not everyone learned using this book or even has a copy of it. > Finally, I leave you with this thought. What's more insulting to > the person who asked for the code? Your reply or mine? Your's obviously. If you had submitted it without the insults then they would be equivalent I would think. > -jc > P.S. I apologize in advance (to all those that were asking for > code to this) if I have mis-construed your intent. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: OPENDIR Help Date: Tue, 12 Mar 2002 12:22:43 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <971e6b8f.0203092108.3d502241@posting.google.com> <971e6b8f.0203101438.300fe42c@posting.google.com> <971e6b8f.0203110612.f95dd7d@posting.google.com> <3C8CC14E.3E10877D@notifier-is.net> <971e6b8f.0203111150.156e92e5@posting.google.com> <3C8D11DE.A3F336BE@notifier-is.net> <971e6b8f.0203121115.738db6a6@posting.google.com> Mike, creating a RAM Disk and DOS FS on it is simple. For example, from VxWorks shell... - -> ramDrv() - -> xyz1 = ramDevCreate(0, 256, 128, 128, 0) - -> xyz2 = dosFsMkFs("/tmp, xyz1) Then you can copy stuff into it from your NT pass FS. - -> chdir ("your_nt_passfs:/some/directory/") - -> copy ( "somefile.txt", "/tmp/somefile.txt") etc. By the way, the issue with dirLib and netDrv vs. other file systems in VxWorks (DOS, NFS, etc.): 1. netDrv is a kind of emulation of filesystem over FTP or RSH. To accomplish directory listing over this, protocol specific packets sent to the server. For FTP, NLST packet is sent to server, for example. netDrv does not support concepts like file system stat and various ioctl's required by something like dirLib. Actually, it is possible to implement all the necessary ioctl's and make netDrv compatible with other filesystems, but it was never done. 2. other filesystems do support generic ioctls to allow dirLib and other things to work. 3. The reason for above is historical, and it is not a desirable situation as you can see. The real problem stems from the fact that VxWorks really does not have properly layered design for implementing filesystems. The filesystems in VxWorks are just I/O drivers masquerading as filesystems. Leonid probably has more details on all of the above. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: What causes this message? Date: Tue, 12 Mar 2002 15:26:43 -0500 From: "doug dotson" Organization: Verio Message-ID: Greetings! When bringing up a shell using the "Launch Shell" button (->i), the shell starts up and then we get the following message: "Invalid C++ Constructor/Destructor strategy ...." or something similar (the developer decided to reinstall Tornado so I can't reproduce it now). Then the shell just keeps restarting over and over. Everything works fine on other hosts, just this problem on one. All Target Servers are identcal and the boot images are the exact same as well. And we are all pointing to the same target machine. I know I saw this once before months ago but I can't remember what the solution was. Thanks, Doug --------------------------- Newsgroups: comp.os.vxworks Subject: Re: How can I protect Flash File System from General Flash Date: Tue, 12 Mar 2002 12:29:31 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: When I had to solve this problem before I copped out and made all access to flash single threaded. First, I did what you did. I made the lowest level I/O routines (flashWrite, flashRead, flashErase, etc.) to be semaphore protected. I made sure the filesystem code will use those routines. I made sure all my flash access is done via those same APIs. Then I got to worry some more about it. In the end I required that flash update will only be done in special maintenance mode. And in that mode, all APIs will be done via one task which gets requests from others and serialize (i.e. single thread) the access to flash. Maybe a little paranoid. But better than getting 1,000 boards shipped back to you from all over the world. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: What's the Expected errno from msgQReceive(...,NO_WAIT) Date: Tue, 12 Mar 2002 20:31:36 GMT From: Jon Newbill Organization: EarthLink Inc. -- http://www.EarthLink.net Message-ID: <3C8E660E.FD7E63E0@bitworkssystemsDELETETHIS.com> I'm trying to determine what the expected errno response is when reading a msg queue using no wait and the queue is empty. I expected to get a S_objLib_OBJ_TIMEOUT error but am instead getting S_objLib_OBJ_UNAVAILABLE. The reference manual gives no description of any of these errors that I can find (is there someplace I've missed?) and the msgQReceive() entry in the the reference manual only lists the expected errno responses but not the conditions when each would occur. In particular the section on NO_WAIT says "return immediately, even if the message has not been sent" which appears to be a cut and past error in the manual since msgQReceive doesn't send a message at all. Here's the call I'm using. rc = msgQReceive(dc2000_queue, (char *)profile_packet, 16, NO_WAIT); Thanks in advance Jon Newbill jonUN@bitworkssystemsREMOVTHIS.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Printing 64bit values Date: 12 Mar 2002 13:13:22 -0800 From: Joe Chung Message-ID: References: <900e9637.0203060746.2d1c1bda@posting.google.com> "doug dotson" writes: > "Joe Chung" wrote in message > > 3. If I say, "Doug, your solution doesn't deal with signed > > numbers, can you provide the code to do that?" You would just > > refine and repost it, right? > > Yes, would you like me to? I assumed that one could extend the > basic algorithm to handle signed numbers. You seemed to have missed my point. But you do demonstrate my point later.... > I would think that anyone that could do a bubble sort .... Bingo! You would think that wouldn't you? And I'd have to agree with you there. At what point do you stop giving out help because you realize that the help they asking is for something you already expect them to know, OR something that is easy find out because the way has been shown? > I don't have a 64-bit platform on which to test a 64-bit > solution. I'd rather offer a solution that I tested the was not > exactly what was asked for but could be extended in an obvious > way, rather than offerring a solution that I could not test. I'm not criticizing your solution's correctness per se. I'm merely illustrating that you are expecting some people to do the thinking. I hope you realize that you simply proved my point by answering the way that you did. You expect people to be able to extend, modify, improve upon your solution. In other words, you expect people to be able to do some thinking. Well, so do I. Let's just agree that we disagree on where to draw the line. > > At what point would you tell me to stop? > > Right now would be nice. This just further illustrates that you do have a line that you will not cross. > Many times it is quicker to ask than to find out on your own. Usenet > is a marvelous resource for solutions and those that ask for help Yes. I agree with you here. Though, it would've been MUCH faster to find out the answer to this by doing a little google/deja searching or cracking open an elementary programming book or two than to post and wait for an answer *that might never come*. I mean, holy cow, a project won't be finished on time cuz someone is waiting for an answer on Usenet, on the code to print 64 bit integers! > should not have to deal with having their skill as a programmer > called into question when the seek advise. Many of us here are > actually programming to make a living and produce a product for > our companies. Time is more important than impressing others. But you'd call their skill into question if they asked you for the code to bubble sort, right? By the way, if you think that I intend to "impress" by showing this trivial piece of code then you are gravely mistaken. I intend to help. Much more so than you do. > > One implementation can be found in K&R's _The C Programming > > Language_ 2nd Ed. on page 64, when they first introduce the > > do-while loop construct of C. > > Big deal. Not everyone learned using this book or even has a > copy of it. Hmmm, a more literal answer than I expected. Again, you're misreading my illustration of a point. I'm not going cite all easily accessible sources in print and on the net to prove my point: which is that solutions to this particular problem are *well known*. > > Finally, I leave you with this thought. What's more insulting to > > the person who asked for the code? Your reply or mine? > > Your's obviously. If you had submitted it without the insults then > they would be equivalent I would think. Remember, I didn't provide the first 5 replies to the initial inquiry, I only jumped in when, in the face of answers, someone still demanded to see the code. I happen to think my solution is more helpful. Also remember that I didn't drag you into this, but since you dragged me into it: Your terse three liner embarrasses and dismisses the questioner. I mean, DOH, I couldn't figure that out? But, hey, that's just me. Oh, the fact that your 3 liner is neither efficient nor safe in a small stack environment points to your willingness to help, rather than to impress, right? - -jc - -- (apply 'concat (reverse (list "com" (char-to-string 46) "yahoo" (char-to-string 64) "joechung"))) --------------------------- Newsgroups: comp.os.vxworks Subject: Interrupt vector table Date: Tue, 12 Mar 2002 23:24:46 +0100 From: "JJS" Message-ID: Our system : Tornado 2.0 VxWorks 5.4 mvme2304 board In a 68000 system architecture, the interrupt vector table begins in memory at address 0. Where is the vector table in a ppc architecture? I search to find the initialisation done with IntConnect() Thanks Jack --------------------------- Newsgroups: comp.os.vxworks Subject: Re: I want to log the packet between IP and mux. Date: 12 Mar 2002 16:05:43 -0800 From: aman@renoir.tamu.edu (aman) Organization: http://groups.google.com/ Message-ID: <2dbc95a7.0203121605.1ad8c1aa@posting.google.com> References: <2b9429fcc4035f6c6ac8066e02008a99.75083@mygate.mailgate.org> "Dan Gold" wrote in message news:... > "Hwa Jin Bae" wrote in message > news:u8ftv064k3000d@corp.supernews.com... > > I wrote vxsniff.c long time ago. Does it still work with SENS stack? I > > never tried to run it in SENS. > > Since it uses EtherInputHookAdd(), it works. The MUX thinks it's passing it > up to IP but it really goes to the input hook. Of course WRS says stuff > about the input hooks going away, but under SENS and T101, it will work. > > Dan Gold gold@ensemble.com Dan, I'm using the following piece of code to intercept all incoming packets on a my vxWorks ethernet interface. If the address of the source machine matches a certain IP address I put a copy of the packet on a message queue to be handled by another task (I want to emulate libpcap under Linux). In my 1st thread I made a vxSniffinit() with an interface name of "fei" and a unit number of 0. At that point the Mux bind succeeds and I begin to receive packets as expected. However another task is sending out packets via a connected socket to the source machine I am interested in capturing Mux packets from. The first few packets send over the socket work fine. However after about 30-50 packets I totally lose my Ethernet interface. At this point I can no longer ping my vxWorks box nor can I ping out from my vxWorks box. All connection is lost. Note that my vxWorks box has not crashed because I have a serial connection to it and my tShell is alive an well. No task appears to have crashed (ie. tNetTask is still alive along with my tasks). My only choice at this point is to re-boot. Do you have any idea what might be happening to cause my vxWorks box to totally lose ethernet connectivity? Am I not doing something right with the packets I recieve or not passing back the correct return codes someplace? Any help would be greatly appreciated as I have been unable to find a working example of Mux code anywhere Thanks, Tim #define MAX_QUEUE_SIZE 200 #define MAX_MSG_SIZE 2048 /* globals */ void * pCookieInHook; MSG_Q_ID QId = 0; extern struct in_addr Host_targetAddr; STATUS vxSniffHook(void * pCookie, long type, M_BLK_ID pMblk, LL_HDR_INFO * pLinkHdrInfo, void * pMode, BOOL msgIn) { struct ip *ip; struct udphdr *udp; struct tcphdr *tcp; struct icmp *icmp; unsigned long ticks; char *proto; int optlen; char srcAddr[20], dstAddr[20]; char protoxxx[10]; int status; char * tmp; /* Changed for vxWorks */ /* Only IP implemented here. Assumption that driver has set up pLinkHdrInfo, else will have to modify with hard numbers to move past the link layer info. */ switch (pLinkHdrInfo->pktType) { case ETHERTYPE_IP: ip = (struct ip *)(pMblk->mBlkHdr.mData + pLinkHdrInfo->dataOffset); /* Put the packet in the queue for to access via another task */ if (QId > 0) { /* Make sure packet is from machine we expect */ if ( ip->ip_src.s_addr == Host_targetAddr.s_addr) { tmp = malloc(ntohs(ip->ip_len)+14+sizeof(struct pcap_pkthdr)); /* Add space for MAC address's */ memset(tmp, 0, ntohs(ip->ip_len)+14+sizeof(struct pcap_pkthdr)); tmp[sizeof(struct timeval)] = (ntohs(ip->ip_len)+14) & 0xFF; tmp[sizeof(struct timeval)+1] = ((ntohs(ip->ip_len)+14) & 0xFF00) >> 8; memcpy(tmp+sizeof(struct pcap_pkthdr), (void*)pLinkHdrInfo->destSize, 6 ); memcpy(tmp+6+sizeof(struct pcap_pkthdr), (void*)pLinkHdrInfo->srcSize, 6 ); tmp[12+sizeof(struct pcap_pkthdr)] = 0x08; tmp[13+sizeof(struct pcap_pkthdr)] = 0x00; memcpy(tmp+14+sizeof(struct pcap_pkthdr), ip, ntohs(ip->ip_len)); status = msgQSend(QId, (char *)tmp, ntohs(ip->ip_len)+14+sizeof(struct pcap_pkthdr), NO_WAIT, MSG_PRI_NORMAL); if (status != OK) printf ("Error sending to filter queue! errno=<%d> status=%d id=%d\n", errno, status, (int)QId); free(tmp); return (TRUE); } } } return FALSE; } STATUS vxSniffInHook(void * pCookie, long type, M_BLK_ID pMblk, LL_HDR_INFO * pLinkHdrInfo, void * pMode) { return(vxSniffHook(pCookie, type, pMblk, pLinkHdrInfo, pMode, TRUE)); } STATUS inShutdownRtn(void * pCookie) { if (muxUnbind(pCookie, MUX_PROTO_SNARF, vxSniffInHook) != OK) { printf("Couldn't un-bind from the inputHook!\n"); return(ERROR); } return(OK); } /* Add input and output hooks. If all packets on the wire are to be capture, regardless of being destined for the target, then this routine will have to be modified to place the driver in promiscuous mode */ STATUS vxSniffInit(char * pDevice, int unit) { if ((pCookieInHook = muxBind(pDevice, unit, (FUNCPTR)vxSniffInHook, (FUNCPTR) inShutdownRtn, NULL, NULL, MUX_PROTO_SNARF, "Sniff Input Hook", NULL)) == NULL) { printf("Couldn't bind to %s\n", pDevice); return(ERROR); } /* Create a FIFO message queue to send filtered packets to. The queue will hold upto 200 messages at size 2K. */ if (QId == 0) QId = msgQCreate(MAX_QUEUE_SIZE, MAX_MSG_SIZE, MSG_Q_FIFO); if (QId < 0) { printf("Error creating filter queue\n"); return(ERROR); } printf("Mux bind successful with queue id %d\n", (int)QId); return(OK); } void vxSniffShutdown() { int cc = 0; char tmp[MAX_MSG_SIZE]; inShutdownRtn(pCookieInHook); /* Empty out the queue */ while (cc >= 0) cc = msgQReceive(QId, tmp, MAX_MSG_SIZE, NO_WAIT); printf("Mux unbind successful\n"); } --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Page Fault for help Date: 12 Mar 2002 16:45:10 -0800 From: kang.yonghong@mail.zte.com.cn (K.YH) Organization: http://groups.google.com/ Message-ID: References: <3C8E07F7.4050609@spamm.me.l8s.co.uk> I originally think that vxworks image is overwriting RAM_HIGH_ADDR and hence the boot loader code,so i change the RAM_LOW_ADRS to 00358000 and the RAM_HIGH_ADRS is 00008000(not changed).My vxworks image size is 1.65MB,so the mem space is enough,but the same error appears again.By the way ,is vxworks for X86 different with that for others ,for example ppc. Any help for it. Thanks David Laight wrote in message news:<3C8E07F7.4050609@spamm.me.l8s.co.uk>... > K.YH wrote: > > > Recently i have builded a bootable project,and the vxworks image is > > vxworks which is 1.65MB.but when i boot vxworks > > from FTP Server,after vxworks image is download and start at > > 0x******.then there is a error,which appeared as follows: > > Page Fault > > Program Counter... > > Error code : 0x0000000 > > Task : 0x3ffee7c "tRootTask" > > My environment is :Tornado 2.0 vxworks 5.4 X86bsp > > Can anyone help me? Why it is so and how to config vxworks? > > Thanks. > > > > Probably your image is overwriting RAM_HIGH_ADDR and hence > the boot loader code. > > If that is true you need to rebuild the boot roms with a > higher RAM_HIGH_ADDR value > > David --------------------------- Newsgroups: comp.os.vxworks Subject: MPC8260 MCC driver Date: 12 Mar 2002 17:17:24 -0800 From: lihuapeng@21cn.com (DragonSpring) Organization: http://groups.google.com/ Message-ID: <1d411918.0203121717.7e0af16d@posting.google.com> Did anyone USE MOTROLA MCC_HDLC demo code (MCCDEMOHDLC.C and the serials) ? i am using it, but it is not steady when i used it with vxWorks, somethings the test can pass, but the other times the test maybe fail, would anyone give me advice? Thanks. The board is designed by ourselves, it was modelled on ADS8260, system clock is 66/133/133MHz. --------------------------- Newsgroups: comp.os.vxworks Subject: compiling a bootrom for Cetia VMPC6A under Tornado 2.0/Win NT Date: 12 Mar 2002 18:30:04 -0800 From: static@ieee.org (Andrew Spiehler) Organization: http://groups.google.com/ Message-ID: <59b46a44.0203121830.4e7f5d0a@posting.google.com> Here's my situation: I need to compile a bootrom for a Cetia/Thales VMPC6a to boot from the user flash. When I configure the build in the Tornado 2.0 project facility, I notice that there are two custom rules that I believe were added when the VMPC6a BSP was installed. The two rules are "bootrom.prep" and "bootrom_uncmp.prep". When I try to build the project, I get a makefile error saying that there's no rule to make the target "bootrom" or "bootrom_uncmp". I'm not experienced with compilers so I don't know how to even begin debugging this problem. My contact at Cetia suggested that the make program wasn't looking in the correct path for something. My project directory isn't kept under the c:\tornado directory, if that makes any difference. Does anyone have any experience with this board/BSP set? Any help would be very greatly appreciated. Thanks, Andrew Spiehler please reply to: acspiehler@ raytheon.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: A question about ifunit( ) && extern struct ifnet *ifnet? Date: 12 Mar 2002 18:41:54 -0800 From: zjh_future@263.net (zjh) Organization: http://groups.google.com/ Message-ID: <8cd11808.0203121841.70cd9f8d@posting.google.com> References: <8cd11808.0203111953.52ac6949@posting.google.com> <4a7f0d21.0203120006.3d87515c@posting.google.com> hi, First I want to thanks you all. Saledom,I have tried your code in my computer.It is work well.I think I perhaps made a mistake:not to justify the sin_family value.so the output is always the addr of AF_LINK. and my code also have a difference with yours.I tried to get the IP ADDR as an u_long value.I will try to finish it. thanks you!! Ramesh ,I think you can get. first you must get one interface name in your system. perhaps you can do this by ioctl func. and you also can use the global value:"extern struct ifnet *ifnet;".then your get the ifnet of one interface. every interface have an ifnet struct ,and all ifnet struct constructed a list.you can look into "net/if.h" in vxworks.Use the pointer:struct ifnet *if_next you can view all the ifnet struct.that mean you can view all the interfaces info. Do you catch my mean?Wish those word can help you! You can also read the book" TCP/IP Illustrated volume 3" to see the details!!Suggest you read the book!! Wish we can discuss questions often!! all thanks! your sincerely :zhang jianhui "Ramesh Krishnan" wrote in message news:... > Hi, > > How your code will work in case no interface name is specified. I am in > need of a requirement like that. I dont know any interface name or > index, but i need to get the details of all. I dont want normal ifShow > routine. I want to know how ifshow is implemented without giving any > interface name as arguement. There is a ioctl IFCONF which will give the > interface list. But it is giving it to ifreq structure. In Linux it is > working fine. BUt in case of VxWorks the code is printing the interface > along with some junk( because we dont know how many interface exist from > ifreq structure alone ). With ifnet structure, we can do i suppose. But > how to initialise it like requesting the kernel for the interface list > with a ioctl ( right now the kernel pastes the output in ifreq structure > but from the ifreq structure alone we cannot know how many interfaces > exist , only ifnet structure has a pointer to the next interface ). > If you know anything in this regard, kindly share with me to my mail id > or to the list. > > Thanks, > Ramesh > > ============================================================== > "Saledom" wrote in message > news:4a7f0d21.0203120006.3d87515c@posting.google.com... > > > the following function is wote by me when i learn the if-programming. > > it is easy for you to find the difference between your code and mine. > > if you dont agree with my programm, or my programm is not match your > > purpose, i would like to dicuss with you. of cause, you can send a > > mail directly to me. > > > ====== snip ============================ --------------------------- Newsgroups: comp.os.vxworks Subject: C++ application: Tornado Shell vs. Target Console Date: Wed, 13 Mar 2002 03:06:35 GMT From: "Jamilur Rahman" Message-ID: <%mzj8.6346$lM.2279@news2.bloor.is> On Shell (host side): I could download the object code (.o) of a C++ file and spawn the function right away. On console (target side): I could load the object code, but can't spawn the task (error message: symbol not found !). But, if I declare that function as 'extern "C" ', then I am able to call that function from target console. Question: 1) Does VxWorks (not Tornado) recognizes only C file ? Note that, the application that I've downloaded (dynamically) was an extra module. Any informative explanation would be very much appreciated. /jamil, Ottawa. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: PCI memory space Date: Wed, 13 Mar 2002 08:57:30 +1030 From: Tim Shaw Organization: Defence Science and Technology Organisation Message-ID: <3C8E80D2.9F9CCE92@dsto.defence.gov.au> References: <2b0ae335.0203070425.4ca35b57@posting.google.com> <3C8BE57C.1D72557D@dsto.defence.gov.au> I seem to be missing something here. Sometimes you refer to the address space 0x1000000 and other times 0x10000000 (one extra zero). By the look of the definitions below, you also need to add an offset of 0xc1000000 to the pci address to access it using CPU address space. By the look of it, you've opened a window at CPU address 0x10000000. I think what you're trying to do is put the memory at PCI address 0x10000000, which corresponds to CPU address 0xd1000000 (0xc1000000 + 0x10000000). In which case you need to make sure you have a window in your sysPhysMemDesc table with the CPU addresses (not PCI). The entries below indicate taht you're using the PReP memory map, so CPU_PCI_MEM_ADRS2 would be 0xd1000000. But because the amount of memory you're asking for is so large, make sure that you're not overlapping with a region of CPU address already used by something else. Tim ??? wrote: > Hello. Tim Shaw.. > > Thank you very much for your answer.. > > Your answer was good idea, and I solved my problem.. > > Namely, I could access 0x10000000 as doing follow.. > > In mv2600.h > /* Psuedo PREP memory map as seen from CPU */ > #define CPU_PCI_ISA_IO_ADRS 0x80000000 /* base of ISA I/O > space */ > #define CPU_PCI_ISA_MEM_ADRS 0xc0000000 /* base of ISA mem space > */ > #define CPU_PCI_IO_ADRS 0x81000000 /* base of PCI > I/O space */ > #define CPU_PCI_MEM_ADRS 0xc1000000 /* base of PCI mem > space */ > #define CPU_PCI_MEM_ADRS_1MB 0xc0100000 /* base of PCI 1MB mem > space */ > #define CPU_PCI_ISA_IO_SIZE 0x00010000 /* 64 kbytes */ > #define CPU_PCI_IO_SIZE 0x00800000 /* 8 meg */ > #define CPU_PCI_IO_UPPER_ADRS (CPU_PCI_ISA_IO_ADRS>>16) > #define CPUCRA_HI (CPU_PCI_ISA_IO_ADRS>>16) > #define CPUCRA_LO 0x0800 > #define CPU_PCI_ISA_MEM_SIZE 0x00010000 /* 64 kbytes */ > #define CPU_PCI_MEM_SIZE 0x20000000 > > In sysLib.c > { > (void *)0x10000000/*CPU_PCI_MEM_ADRS2*/, > (void *)0x10000000/*CPU_PCI_MEM_ADRS2*/, > 0x20000000/*CPU_PCI_MEM_SIZE2*/, > VM_STATE_MASK_VALID | VM_STATE_MASK_WRITABLE | VM_STATE_MASK_CACHEABLE | > VM_STATE_MASK_MEM_COHERENCY, > VM_STATE_VALID | VM_STATE_WRITABLE | VM_STATE_CACHEABLE | > VM_STATE_MEM_COHERENCY > }, > > The result is as following.. > > -> pciHeaderShow(0, 0x10, 0) > vendor ID = 0x11b0 > device ID = 0x0200 > command register = 0x0002 > status register = 0x0000 > revision ID = 0x00 > class code = 0x05 > sub class code = 0x00 > programming interface = 0x00 > cache line = 0x00 > latency time = 0xf8 > header type = 0x00 > BIST = 0x00 > base address 0 = 0x10000000 > base address 1 = 0x00000000 > base address 2 = 0x00000000 > base address 3 = 0x00000000 > base address 4 = 0x00000000 > base address 5 = 0x00000000 > cardBus CIS pointer = 0x00000000 > sub system vendor ID = 0x4754 > sub system ID = 0x0005 > expansion ROM base address = 0x00000000 > interrupt line = 0x03 > interrupt pin = 0x00 > min Grant = 0x00 > max Latency = 0x00 > value = 0 = 0x0 > > -> d 0x10000000 > 10000000: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 10000010: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 10000020: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 10000030: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 10000040: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 10000050: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 10000060: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 10000070: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 10000080: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 10000090: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 100000a0: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 100000b0: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 100000c0: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 100000d0: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 100000e0: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 100000f0: ffff ffff ffff ffff ffff ffff ffff ffff *................* > value = 21 = 0x15 > > -> m 0x10000000 > 10000000: ffff-1 > 10000002: ffff-2 > 10000004: ffff-3 > 10000006: ffff-4 > 10000008: ffff-5 > 1000000a: ffff-6 > 1000000c: ffff-7 > 1000000e: ffff-8 > 10000010: ffff-9 > 10000012: ffff-0 > 10000014: ffff-. > value = 1 = 0x1 > > -> d 0x10000000 > 10000000: 0001 0002 0003 0004 0005 0006 0007 0008 *................* > 10000010: 0009 0000 ffff ffff ffff ffff ffff ffff *................* > 10000020: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 10000030: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 10000040: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 10000050: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 10000060: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 10000070: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 10000080: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 10000090: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 100000a0: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 100000b0: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 100000c0: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 100000d0: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 100000e0: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 100000f0: ffff ffff ffff ffff ffff ffff ffff ffff *................* > value = 21 = 0x15 > > But.. > > Unfortunenatelly, I met some other problems. > > The first problem is.. > > The Value was modified is changed again, when I access in 0x1000000, > 0x2000000, 0x3000000.. > > The second problem is .. > > to be able to access in 0x1000000, 0x2000000, 0x3000000 ... so on > > Hm.. > > Is That range system area.?? > > I will list problem below.. > > .. > > Can you tell me what is the reason or sollution..?? > > I read many manual was written in Motorolla. but I don't know why these > problems come to me.. > > -> d 0x1000000 > 01000000: 6194 288c 9840 a1e0 2dcb 12e9 33aa 1420 *a.(..@..-...3.. * > 01000010: 8000 1200 020a 3108 0000 0100 0c00 0081 *......1.........* > 01000020: 3400 020a 5169 1004 8434 8010 1130 0850 *4...Qi...4...0.P* > 01000030: 8100 0001 0000 0040 0000 6040 8000 0000 *.......@..`@....* > 01000040: 0792 3015 290a a34d 3818 3011 46e2 4c36 *..0.)..M8.0.F.L6* > 01000050: 0000 0040 0420 5411 40e0 ac20 0828 0145 *...@. T.@.. .(.E* > 01000060: 2821 282a 09c1 42b9 5a15 506a 82af 4d18 *(!(*..B.Z.Pj..M.* > 01000070: 0040 0005 0204 2000 0020 8481 0900 1008 *.@.... .. ......* > 01000080: a279 4350 25c5 3882 0209 02a4 c0ca 0411 *.yCP%.8.........* > 01000090: 0000 8002 4010 0200 0000 5000 1000 2002 *....@.....P... .* > 010000a0: 0c44 0098 1921 4071 2818 4012 8222 1007 *.D...!@q(.@.."..* > 010000b0: 0000 0064 0080 0880 0000 0100 0040 0220 *...d.........@. * > 010000c0: 8b40 3091 6260 1022 0c10 0c08 d8c2 2a45 *.@0.b`."......*E* > 010000d0: 4080 0402 0440 8000 1010 1204 0000 0200 *@....@..........* > 010000e0: 8eac 6028 c1b0 1dd0 4497 30b8 8114 6028 *..`(....D.0...`(* > 010000f0: 2020 0080 0220 0000 2120 0000 0400 4430 * ... ..! ....D0* > value = 21 = 0x15 > > -> d 0x2000000 > 02000000: 0909 0909 f6f6 f6f6 f5b8 6d80 75e0 10c7 *..........m.u...* > 02000010: a1d5 4182 00fa 3d95 b60c 4800 d813 001c *..A...=...H.....* > 02000020: 766f 1401 a0bf 8d12 a7fa c904 dcfb 18ac *vo..............* > 02000030: 9630 0800 0260 7a05 0096 5200 76a4 0041 *.0...`z...R.v..A* > 02000040: 4f05 2044 7176 5b25 887c 9254 cf4f 64ff *O. Dqv[%.|.T.Od.* > 02000050: c9fa 3c02 0001 6a51 f597 2600 217c 000a *..<...jQ..&.!|..* > 02000060: 1d75 c2a0 40d2 4996 7126 9b06 cc43 0c4d *.u..@.I.q&...C.M* > 02000070: 2714 0200 0011 8d6b 4691 5000 03a0 00f1 *'......kF.P.....* > 02000080: f678 2304 88f6 26f9 52eb f500 7a27 8ef5 *.x#...&.R...z'..* > 02000090: 4488 0400 0021 de45 d9f6 bf20 9752 109c *D....!.E... .R..* > 020000a0: bdff 1086 00fe effc d9d3 5857 bbef 89b8 *..........XW....* > 020000b0: 4241 0500 0049 8800 8cb6 8200 4018 00e7 *BA...I......@...* > 020000c0: 16d3 8611 687f 3e5f ee3b 6f29 617d 22d9 *....h.>_.;o)a}".* > 020000d0: 05a6 0140 00e2 da34 377c 1e00 cacf 00e7 *...@...47|......* > 020000e0: 3eff 15a2 69ff 57cb 98d3 d214 eacf 20ba *>...i.W....... .* > 020000f0: f688 2000 00e7 a331 c200 fd82 d036 0444 *.. ....1.....6.D* > value = 21 = 0x15 > > -> d 0x3000000 > 03000000: 0554 0405 a864 0a27 6240 68c0 4242 cc20 *.T...d.'b@h.BB. * > 03000010: 0010 0000 0001 8000 0000 1100 1012 0002 *................* > 03000020: 0c04 1010 0082 0099 0200 1603 00a2 7388 *..............s.* > 03000030: 3000 0100 5000 0040 0d00 2040 4400 0000 *0...P..@.. @D...* > 03000040: 15c0 07db 5ea1 518f 26b7 145a 3931 62d1 *....^.Q.&..Z91b.* > 03000050: 0800 1800 0088 0080 0000 0201 0440 c300 *.............@..* > 03000060: 48ec 038e 8000 61c1 2366 5120 121e 4841 *H.....a.#fQ ..HA* > 03000070: 5410 2000 0012 0000 4800 0003 0020 0000 *T. .....H.... ..* > 03000080: a074 3f51 ce30 ae30 25a3 4102 afe8 0345 *.t?Q.0.0%.A....E* > 03000090: 0080 0000 0140 0040 4008 0204 1080 0880 *.....@.@@.......* > 030000a0: 0a1c 2192 ce01 8293 2101 606c 2d1c 6407 *..!.....!.`l-.d.* > 030000b0: 0060 0004 2402 1008 0000 0010 0408 0200 *.`..$...........* > 030000c0: 0525 0cb4 38e9 4c4d 77a0 6422 3656 3b32 *.%..8.LMw.d"6V;2* > 030000d0: 4004 0000 0000 4200 0000 0004 0001 0000 *@.....B.........* > 030000e0: 1698 4c56 7796 8c49 0d8d 2c02 6c21 6ca0 *..LVw..I..,.l!l.* > 030000f0: 0008 0064 0002 2004 0080 0041 0800 0014 *...d.. ....A....* > value = 21 = 0x15 > > -> d 0x10000000 > 10000000: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 10000010: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 10000020: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 10000030: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 10000040: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 10000050: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 10000060: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 10000070: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 10000080: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 10000090: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 100000a0: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 100000b0: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 100000c0: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 100000d0: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 100000e0: ffff ffff ffff ffff ffff ffff ffff ffff *................* > 100000f0: ffff ffff ffff ffff ffff ffff ffff ffff *................* > value = 21 = 0x15 > -> > > As if above, > > the problem is two. > ----- Original Message ----- > From: "Tim Shaw" > Newsgroups: comp.os.vxworks > Sent: Monday, March 11, 2002 8:00 AM > Subject: Re: PCI memory space > > > The MVME2604 has two modes, PReP and EXTEND_VME - EXTENDED_VME is now the > > default, but it may have been PReP for rev 1.2 - do you know which you are > > using? The answer will affect your memory map. > > > > You may need to make an entry in your sysPhysMemDesc table corresponding > to the > > region you've mapped (depending on whether the PCI space you're using has > been > > mapped yet or not). It will probably look something like > > > > { > > (void *)CPU_PCI_MEM_ADRS2, > > (void *)CPU_PCI_MEM_ADRS2, > > CPU_PCI_MEM_SIZE2, > > VM_STATE_MASK_VALID | ..... |VM_STATE_MASK_CACHEABLE, > > VM_STATE_VALID | ..... | VM_STATE_MASK_CACHEABLE > > } > > > > where CPU_PCI_MEM_SIZE2 is 256 MB and CPU_PCI_MEM_ADRS2 is the pci address > as > > the CPU sees it (as described by Michael Lawnick. Part of this region may > > already be defined, in which case just extend it if possible. > > > > > > > > Ahn Jung Hoon wrote: > > > > > Hi, all > > > > > > I have a problem in accessing pci memory space > > > > > > Previously, > > > My work space is.. > > > > > > VxWorks version 5.4 > > > KERNEL: WIND version 2.5 > > > CPU: Motorola Unknown - MPC 750. Processor #0. > > > Memory Size: 0x10000000. BSP version 1.2/0. > > > WDB: Ready. > > > > > > well.. > > > I have PCI memory card, and it's size is 256MB.. > > > > > > By default, it was written in MV2600.h > > > #define CPU_PCI_MEM_SIZE 0x01000000 /* 16 meg */ > > > > > > so, I modified it as following.. > > > #define CPU_PCI_MEM_SIZE 0x20000000 /* 256 meg */ > > > > > > Then I met data access error as following.. > > > > > > ------------------------------------------------------- > > > -> pciHeaderShow(0, 0x10, 0) > > > vendor ID = 0x11b0 > > > device ID = 0x0200 > > > command register = 0x0002 > > > status register = 0x0000 > > > revision ID = 0x00 > > > class code = 0x05 > > > sub class code = 0x00 > > > programming interface = 0x00 > > > cache line = 0x00 > > > latency time = 0xf8 > > > header type = 0x00 > > > BIST = 0x00 > > > base address 0 = 0x10000000 > > > base address 1 = 0x00000000 > > > base address 2 = 0x00000000 > > > base address 3 = 0x00000000 > > > base address 4 = 0x00000000 > > > base address 5 = 0x00000000 > > > cardBus CIS pointer = 0x00000000 > > > sub system vendor ID = 0x4754 > > > sub system ID = 0x0005 > > > expansion ROM base address = 0x00000000 > > > interrupt line = 0x03 > > > interrupt pin = 0x00 > > > min Grant = 0x00 > > > max Latency = 0x00 > > > value = 0 = 0x0 > > > -> d 0x10000000 > > > 10000000: > > > data access > > > Exception current instruction address: 0x0015c070 > > > Machine Status Register: 0x0000b030 > > > Data Access Register: 0x10000000 > > > Condition Register: 0x48200080 > > > Data storage interrupt Register: 0x40000000 > > > > > > 1812e0 vxTaskEntry +60 : shell () > > > 177118 shell +18c: 177144 () > > > 177368 shell +3dc: execute () > > > 1774ec execute +d8 : yyparse () > > > 1a96ec yyparse +7a8: 1a7634 () > > > 1a77ac yystart +8f8: d () > > > shell restarted. > > > -------------------------------------------------------------- > > > > > > But When I modified it as following, I could success to display and > modified > > > at PCI_BASE_ADDR(0x08000000).. > > > #define CPU_PCI_MEM_SIZE 0x10000000 /* 128 meg */ > > > > > > .. > > > > > > I think that only what I had to do is to modify CPU_PCI_MEM_SIZE > > > for memory access more than 16MB.. > > > > > > But.. Maybe, it seems to be incorrect.. > > > > > > Please.. > > > Can anybody let me understand in the easiest way what is problem. > > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: BSD Ethernet Driver Date: 12 Mar 2002 20:47:40 -0800 From: vittala@hotmail.com (Vittal) Organization: http://groups.google.com/ Message-ID: <6847c39a.0203122047.16035284@posting.google.com> References: <6847c39a.0203072126.4cc28aaf@posting.google.com> <6847c39a.0203080206.2515b5ff@posting.google.com> <3C890057.E551DBDA@varndellengineering.com> <3c891c2c$1@brateggebdc5.br-automation.co.at> <3C8DE54A.50807@spamm.me.l8s.co.uk> Hi All, Thanks for your discussions. Special thanks to HJB who replied for my message. I have found that the device I am using does not support DMA!. I went through the manuals and did not find any DMA descriptos there. So, I beleive the device does not support DMA. Now, my job is to find out why the throughput is less, which I have started doing now, by timestamping the code step by step. Thanks for your discussions here, the discussions here have given me a few hints to find out the BUG!. If any of you have faced similar problem where in the device does not support DMA and you are asked find out why the throughput is less, please give me some hints. Thanks in Advance, Vittal. David Laight wrote in message news:<3C8DE54A.50807@spamm.me.l8s.co.uk>... > Werner Schiendl wrote: > > >>Why would WRS discard working code? > >> > >> > > > > To simplify the demo code? > > > The 'demo' driver for the Olicom pcmcia card contained > several timing bugs! Not a good sample driver at all. > > David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: BSD Ethernet Driver Date: Tue, 12 Mar 2002 21:33:22 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <6847c39a.0203072126.4cc28aaf@posting.google.com> <6847c39a.0203080206.2515b5ff@posting.google.com> <3C890057.E551DBDA@varndellengineering.com> <3C89397B.DFA7FE0@varndellengineering.com> <3C8DE502.30407@spamm.me.l8s.co.uk> <3C8E077E.50407@spamm.me.l8s.co.uk> Mostly I agree. However, sometimes just running TCP benchmark on an otherwise quiet system is not sufficient to guarantee an optimal situation. Because the more CPU is busy, the more noticible will be the contribution of DMA code. Similarly, the less powerful CPU is, the more noticible DMA contribution. In a modern system with fast CPUs driving relatively slow network interfaces, you frequently notice that simpler code which copies data sometimes yields better results when running isolated benchmarks. However, it is not always correct to assume that such measurements represent sum total of your system performance. Even using modern hardware, you can still exhaust CPU resources when performing intense computation. For example, if your CPU is doing extensive soft floating point calculations, DSP algorithms, CPU intensive work, all the while network is also busy. The less work CPU has to do (avoid copying), the better your system behavior will be overall. Such stability is important in embedded systems. Again, one must pay attention to the boundaries cases and not insist on doing loaning / DMA all the time. It is better in general to use such optimization when it makes sense, using proper thresholds that are derived from experimentation and testing data. The rule holds mostly true for even fast CPU systems that work fine normally with copying data for the reasons above. Historically, when loaning and DMA mechanisms were put into VxWorks network driver layer, I was working on systems that are considered very slow by todays standards (Motorola 68020 CPUs running at 25Mhz, for example). DMA helped a lot. Modern CPUs and network interfaces change things a bit, but not by much. Finally, the reason I am so verbose on this subject is due to the fact that many people have run into problems related in these areas when working on network drivers. I ran into many people who learn things and fix things after spending a lot of time debugging and tuning. I always meant to write it all down somewhere again, since my original written materials were never made available to the VxWorks users. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: PMC clash on MVME5100 Date: Wed, 13 Mar 2002 05:42:21 GMT From: "Nejhdeh Ghevondian" Organization: Integrated Spectronics Message-ID: <1FBj8.11690$mp.52877@news-server.bigpond.net.au> Reply-To: "Nejhdeh Ghevondian" Dear Anyone, I have a MVME5100 card that uses a PMC-based SCSI add-on card (PMC slot1), that works fine. However, I recently purchased a TechnoBox Multi-IO PMC card (part no. 2628) inserted in PMC slot2 of my MVME5100 card. I can access memory of this Technobox PCI card using pciConfigInLong() e.t.c, hence I know the board works. However, now the PMC SCSI card doesn't work properly. I.e it fails the scsiAutoConfig() etc. Both PMC cards have different memory locations on the local bus, and they both have different IRQ numbers. Can anyone help me in this area. Regards Nejhdeh Ghevondian --------------------------- Newsgroups: comp.os.vxworks Subject: How to preform periodical task except sysAuxClkRateSet() Date: 12 Mar 2002 22:54:01 -0800 From: allencyl@my-deja.com (Allen Chang) Organization: http://groups.google.com/ Message-ID: <5c074538.0203122254.56279c06@posting.google.com> Hello All, I am surveying how to use VxWorks to write a real-time simulator in cooperate with x86 single board computer. During reading the documents of VxWorks, there is a question that need some help here. If you need to perform a periodical task, and the frequency is an invaild value for sysAuxClkRateSet(). Since it's periodical and the task really takes some time to execute (at least 3ms in PII 350), the watchdog timer and ISR may not be a solution. Is there any alternative to perform the task accurately, without increase the system overhead by using sysClkRateSet()? Best Regards, Allen Chang --------------------------- Newsgroups: comp.os.vxworks Subject: Re: C++ application: Tornado Shell vs. Target Console Date: 12 Mar 2002 23:02:21 -0800 From: tut_pharoh@yahoo.com (tutankhamun) Organization: http://groups.google.com/ Message-ID: <88c8dc81.0203122302.5aeec9a4@posting.google.com> References: <%mzj8.6346$lM.2279@news2.bloor.is> "Jamilur Rahman" wrote in message news:<%mzj8.6346$lM.2279@news2.bloor.is>... > On Shell (host side): > I could download the object code (.o) of a C++ file and spawn the function > right away. > > On console (target side): > I could load the object code, but can't spawn the task (error message: > symbol not found !). > But, if I declare that function as 'extern "C" ', then I am > able to call that function from target console. > > Question: > 1) Does VxWorks (not Tornado) recognizes only C file ? > > Note that, the application that I've downloaded (dynamically) was an extra > module. > > Any informative explanation would be very much appreciated. > > /jamil, > Ottawa. This is addressed by WindRiver SPR 28980 which suggests the following workaround: From the target shell set the global variable sysCplusEnable to a non-zero value This should allow the target shell to understand C++ functions directly, without having to define them with 'C' linkage (extern C), or use their mangled names. hope this helps, tut --------------------------- Newsgroups: comp.os.vxworks Subject: Re: compiling a bootrom for Cetia VMPC6A under Tornado 2.0/Win NT Date: Wed, 13 Mar 2002 07:44:02 GMT From: "drdiags" Organization: AT&T Broadband Message-ID: <6rDj8.30983$ZR2.17327@rwcrnsc52.ops.asp.att.net> References: <59b46a44.0203121830.4e7f5d0a@posting.google.com> Hello Andrew, I am not familiar with your BSP, but the bootrom builds from Tornado will use the various make rules found in the target/h/make directory and the BSP makefile. Can you make a copy of your BSP directory and try running: $(WIND_BASE)/host/$(WIND_HOST_TYPE)/bin/torVars.bat or torVars.sh, depending on your development host and do a "make bootrom.prep" from the BSP directory? This should have worked from the Project facility, so this excercise may be totally useless, but I would also look into your BSP Makefile to see the bootrom.prep rule, since it sounds as though it eventually is using the bootrom and bootrom_uncmp rules from the target/h/make/rules.bootrom. Also, in most cases that I know of, any modifications made in the Project facility will affect how the vxWorks Kernel is made but not the Bootrom. Even though there is a rule there, none of your changes made to the bootable kernel will make it into the bootrom unless you change the BSP files and then you can run the bootrom rules from the project facility or the command line. HTH "Andrew Spiehler" wrote in message news:59b46a44.0203121830.4e7f5d0a@posting.google.com... > Here's my situation: I need to compile a bootrom for a Cetia/Thales > VMPC6a to boot from the user flash. When I configure the build in the > Tornado 2.0 project facility, I notice that there are two custom rules > that I believe were added when the VMPC6a BSP was installed. The two > rules are "bootrom.prep" and "bootrom_uncmp.prep". When I try to build > the project, I get a makefile error saying that there's no rule to > make the target "bootrom" or "bootrom_uncmp". I'm not experienced with > compilers so I don't know how to even begin debugging this problem. My > contact at Cetia suggested that the make program wasn't looking in the > correct path for something. My project directory isn't kept under the > c:\tornado directory, if that makes any difference. Does anyone have > any experience with this board/BSP set? Any help would be very greatly > appreciated. > > Thanks, > > Andrew Spiehler > > please reply to: > > acspiehler@ > raytheon.com --------------------------- Newsgroups: comp.os.vxworks Subject: bootroms not building... Date: 12 Mar 2002 23:44:46 -0800 From: alimohd@logiceastern.com (Ali) Organization: http://groups.google.com/ Message-ID: hi everyone Im trying to build a ootroms for my project bsp but the problem is that when i build the bootrom_uncmp,bootrom_uncmp.hex it builds well and ok. when i am building bootrom.st,bootrom.hex it shows following errors.. l/version.c ldppc -X -N -e _romInit -Ttext 0x00010000 \ -o bootrom romInit.o bootInit.o version.o \ /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/miiLib.o /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/motFccEnd.o /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/fatlite.o /home/alimohd/tornado/target/lib/libPPCEC603gnuvx.a bootrom.Z.o /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/miiLib.o: In function `miiBasicCheck': /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/miiLib.o(.text+0x1b14): undefined reference to `sysClkRateGet' /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/miiLib.o(.text+0x1b34): undefined reference to `sysClkRateGet' /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/miiLib.o: In function `miiPhyMonitor': /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/miiLib.o(.text+0x2e54): undefined reference to `sysClkRateGet' /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/miiLib.o: In function `miiPhyListAdd': /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/miiLib.o(.text+0x30c8): undefined reference to `sysClkRateGet' make: *** [bootrom] Error 1 when i build bootrom_res and bootrom_res.hex it shows following errors.. cd /home/alimohd/tornado/target/config/ep8260/ make bootrom_res ccppc -B/home/alimohd/tornado/host/sun4-solaris2/lib/gcc-lib/ -c - -mstrict-align -ansi -nostdinc -O2 -fvolatile -fno-builtin - -fno-for-scope -Wall -I/h -I. - -I/home/alimohd/tornado/target/config/all - -I/home/alimohd/tornado/target/h - -I/home/alimohd/tornado/target/src/config - -I/home/alimohd/tornado/target/src/drv -DCPU=PPCEC603 -g -O0 - -msoft-float -o version.o /home/alimohd/tornado/target/config/all/version.c ldppc -X -N -e _romInit \ -Ttext 0xFF000100 -Tdata 0x00200000 -o bootrom_res romInit_res.o bootInit_res.o \ version.o bootConfig.o sysALib.o sysLib.o sysTffs.o /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/miiLib.o /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/motFccEnd.o /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/fatlite.o /home/alimohd/tornado/target/lib/libPPCEC603gnuvx.a romInit_res.o(.text+0x416): undefined reference to `RAM_DST_ADRS' romInit_res.o(.text+0x41a): undefined reference to `RAM_DST_ADRS' make: *** [bootrom_res] Error 1 hit ENTER to exit can anyone tell me why it happens and what actually is the problem..Note that the files miiLib.o,motFccend.o and fatLite.o i have attached as LIB_EXTRA in make file as these source files were not available with me .. Im using tornado2.0 IDE to do all this stuff on sun machine. thanx in advance ali --------------------------- Newsgroups: comp.os.vxworks Subject: Re: [Help Me] vxworks Simulator Date: 13 Mar 2002 00:06:15 -0800 From: tut_pharoh@yahoo.com (tutankhamun) Organization: http://groups.google.com/ Message-ID: <88c8dc81.0203130006.759238fb@posting.google.com> References: "Kim, Jeong-Hwan" wrote in message news:... > In solaris, vxworks simulator cannot load application program. > How can i solve this problem? > > The problem is as follows : > > > > Adding 1779 symbols for standalone. > > > ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] > ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] > ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] > ]]]]]]]]]]] ]]]] ]]]]]]]]]] ]] ]]]] > (R) > ] ]]]]]]]]] ]]]]]] ]]]]]]]] ]] ]]]] > ]] ]]]]]]] ]]]]]]]] ]]]]]] ] ]] ]]]] > ]]] ]]]]] ] ]]] ] ]]]] ]]] ]]]]]]]]] ]]]] ]] ]]]] ]] ]]]] > ] > ]]]] ]]] ]] ] ]]] ]] ]]]]] ]]]]]] ]] ]]]]]]] ]]]] ]] ]]]] > ]]]]] ] ]]]] ]]]]] ]]]]]]]] ]]]] ]] ]]]] ]]]]]]] ]]]] > ]]]]]] ]]]]] ]]]]]] ] ]]]]] ]]]] ]] ]]]] ]]]]]]]] ]]] > ] > ]]]]]]] ]]]]] ] ]]]]]] ] ]]] ]]]] ]] ]]]] ]]]] ]]]] ]] > ]] > ]]]]]]]] ]]]]] ]]] ]]]]]]] ] ]]]]]]] ]]]] ]]]] ]]]] ]]]] > ] > ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] > ]]]]]]]]]]]]]]]]]]]]]]]]]]]]] Development System > ]]]]]]]]]]]]]]]]]]]]]]]]]]]] > ]]]]]]]]]]]]]]]]]]]]]]]]]]] VxWorks version 5.4 > ]]]]]]]]]]]]]]]]]]]]]]]]]] KERNEL: WIND version 2.5 > ]]]]]]]]]]]]]]]]]]]]]]]]] Copyright Wind River Systems, Inc., > 1984-1999 > > CPU: SunOS 5.6 [sun4u]. Processor #0. > Memory Size: 0x300000. BSP version 1.2/0. > WDB: Ready. > > -> > -> > -> > -> > -> > -> > -> ls > . > .. > Makefile > Makefile-original > README > asppp.cf > config.h > depend.solaris > usrConfig.o > dataSegPad.o > usrConfig_st.o > sysALib.o > sysALib.s > sysLib.c > sysLib.o > target.nr > tyCoDrv.c > tyCoDrv.o > version.o > ppp_test.out > ctdt.c > ctdt.o > symTbl.c > symTbl.o > vxWorks.st > value = 0 = 0x0 > -> devs > drv name > 0 /null > 1 /tyCo/0 > 3 sejong: > 4 /vio > 5 /tgtsvr > value = 0 = 0x0 > -> > -> > -> > -> > -> i > > NAME ENTRY TID PRI STATUS PC SP ERRNO > DELAY > ---------- ------------ -------- --- ---------- -------- -------- ------- -- > --- > tExcTask excTask 3ccc40 0 PEND a0238 3cca48 0 > 0 > tLogTask logTask 3c81a8 0 PEND a0238 3c7fb0 0 > 0 > tShell shell 3bee90 1 READY 669d4 3bdf10 0 > 0 > tWdbTask 5a7a4 3c31b8 3 PEND 61dc8 3c2e88 0 > 0 > value = 0 = 0x0 > -> > -> > -> > -> checkStack > NAME ENTRY TID SIZE CUR HIGH MARGIN > ------------ ------------ -------- ----- ----- ----- ------ > tExcTask excTask 3ccc40 15984 504 1016 14968 > tLogTask logTask 3c81a8 15984 504 1224 14760 > tShell shell 3bee90 57184 3376 12092 45092 > tWdbTask 0x000005a7a4 3c31b8 16040 816 11276 4764 > INTERRUPT 50000 0 0 50000 > value = 1109464 = 0x10edd8 > -> > -> > -> > -> > -> > -> > -> > -> ld > ld error: error reading file (errno = 0xe0001). > value = 0 = 0x0 > -> > -> > -> ld < ppp.out > can't open input 'ppp.out' > errno = 0x1c0001 > -> > -> > -> > -> > -> I've never tried VxSim on solaris, but on Windows 2000 I'm able to load an object module using 'ld'. You should probably use it with right parameters. Try this - -> ld (0, 1, "ppp.out") Make sure the current directory (you can check this up using 'pwd') has file called ppp.out or you could probably even specify the full path in the file name. Hope this helps, tut --------------------------- Newsgroups: comp.os.vxworks Subject: Re: A question about ifunit( ) && extern struct ifnet *ifnet? Date: Wed, 13 Mar 2002 08:10:09 +0000 (UTC) From: "Ramesh Krishnan" Organization: Mailgate.ORG Server - http://www.Mailgate.ORG Message-ID: <6ab3109fcd959d946780d1e4a7c60845.77030@mygate.mailgate.org> References: <8cd11808.0203111953.52ac6949@posting.google.com> <4a7f0d21.0203120006.3d87515c@posting.google.com> <8cd11808.0203121841.70cd9f8d@posting.google.com> > > Ramesh ,I think you can get. > first you must get one interface name in your system. perhaps you > can do this by ioctl func. and you also can use the global > value:"extern struct ifnet *ifnet;".then your get the ifnet of one > interface. > every interface have an ifnet struct ,and all ifnet struct > constructed a list.you can look into "net/if.h" in vxworks.Use the > pointer:struct ifnet *if_next you can view all the ifnet struct.that > mean you can view all the interfaces info. > Do you catch my mean?Wish those word can help you! You can also read > the book" > TCP/IP Illustrated volume 3" to see the details!!Suggest you read the > book!! HI Zhang, Yeah i have gone through the Vol 3 TCP/IP. But as you mentioned how to get the "first" interface name of the target. Because the ifnet structure is for every interface and it is a singly linked list where *next pointer points to the next itnerface. But how do we ensure that the interface name we are getting with the ioctl is the first ( Also how to get a interface name alone with ioctl. Is it SIOGIFCONF? for this request ifreq structure is the arguement, the ifreq structure contains a name of a interface, but will it be the first ? have you tried this thing? will it also have a pointer to the localhost "l0" interface also? ). Yeah nice to have discussions in future too, since sharing is the better way of learning. Thanks, Ramesh - -- Posted via Mailgate.ORG Server - http://www.Mailgate.ORG --------------------------- Newsgroups: comp.os.vxworks Subject: Should the IP header be 4 bytes(long word) align? Date: 13 Mar 2002 00:23:19 -0800 From: lihuapeng@21cn.com (DragonSpring) Organization: http://groups.google.com/ Message-ID: <1d411918.0203130023.5d5db610@posting.google.com> We use Tornado II/VxWorks 5.4 for MPC860 + T2CP2 + NPT(TDK-13274) + NPT patch(spr30894) + MUX/END driver. We make IP over HDLC. I have some questions on IP header long word (32bits) align. 1. Must the IP header be 4 bytes(long word) align when my END driver delivers the IP packet to MUX layer? Our IP packet is stored in M_BLK. To our system, the mBlkHdr.mData directly pointers to IP header, no Logic Link Header, because IP over HDLC. To ensure reliable transfer, we encapsulate 2 bytes just before IP header, which makes the IP header not long word align (4n+2). Certainly, this 2 bytes will be peeled off before END driver deliver the IP packet to the MUX layer. (use mBlkHdr.mData += 2;) 2. I find the WindNet PPP do M_BLK copy to ensure/force the IP header long word align before using (pEnd)->receiveRtn ((pEnd), pMblk,NULL,NULL,NULL,NULL) to deliver IP packet to MUX layer. Is it necessary? 3.But for Ethernet frame, the IP header is not long word align (14bytes offset the Ethernet frame). And it causes no problem. I need a canonical answer. Or I have to copy mBlk, which is no longer zero-copy. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: I want to log the packet between IP and mux. Date: Wed, 13 Mar 2002 08:28:40 +0000 (UTC) From: "Ramesh Krishnan" Organization: Mailgate.ORG Server - http://www.Mailgate.ORG Message-ID: <8a648867e6a9facb9959e6accde73cc8.77030@mygate.mailgate.org> References: <2b9429fcc4035f6c6ac8066e02008a99.75083@mygate.mailgate.org> <2dbc95a7.0203121605.1ad8c1aa@posting.google.com> > Thanks, > > Tim > } HI TIm, I haven't used muxbind in vxworks. But i had tried sniffing in Linux box. Just set your ethernet to promisc mode using ioctl ( remember to bitwise OR the flags in ifreq structure while setting ) and you will get all the packets. You filter your specified packets by writing some lines of layer filters ( checking type for 0x0800 for IP in Ethernet TYpe field etc. ). This worked well in linux. But anyway while shutdown your interface which is already in promisc mode, remember to restore the flags of your interface, before you set it to promisc mode. You can do this using signal handlers i suppose. BTW this is a suggestion only. I haven't done this so far in VxWOrks. THanks, Ramesh - -- Posted via Mailgate.ORG Server - http://www.Mailgate.ORG --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Interrupt vector table Date: Wed, 13 Mar 2002 09:42:40 +0100 From: "Michael Lawnick" Organization: Buergernetz Dillingen Message-ID: References: Reply-To: "Michael Lawnick" Sender: mlawnick@pd952489c.dip.t-dialin.net Hi JJS, PPC has a complete other interrupt structure. On MVxxxx it's more like PC. Not having installed MV2300, but 2400,260x and 2700 I'd suggest to look into your BSP, file sl82565IntrCtl.c, function sysIbcIntConnect(). HTH - -- Mit freundlichen Grüßen, Michael Lawnick ============================================== SOFTEC GmbH Tel +49-731-96600-0 Promenade 17 Fax +49-731-96600-23 D-89073 Ulm Michael Lawnick Germany lawnick@softec.de ============================================== "JJS" schrieb im Newsbeitrag news:a6lvjb$d05$1@news2.isdnet.net... > Our system : Tornado 2.0 VxWorks 5.4 mvme2304 board > In a 68000 system architecture, the interrupt vector table begins in memory > at address 0. > Where is the vector table in a ppc architecture? > I search to find the initialisation done with IntConnect() > Thanks > Jack > > > --------------------------- Newsgroups: comp.os.vxworks Subject: Building the WindML system and Driver set using the PPC604 cpu tool Date: 13 Mar 2002 01:19:08 -0800 From: aephraty@rugged.com (Avi Ephraty) Organization: http://groups.google.com/ Message-ID: <43191605.0203130119.429a670f@posting.google.com> I'm working on tornado 2 on PC, I installed the windML. Than I tried to build the windML libraries with the generic VGA driver supplied by windML for the cpu PPC604. But when I invoked the menu item tools>windML and chose as a cpu the PPC604 the tool didn't offer any graphics driver (No graphics) and offcourse didn't build any thing. 1. How can I change this situation? 2. There is a possibility for command line building using the command make how can I use it with tornado 2 on PC? Bye avi --------------------------- Newsgroups: comp.os.vxworks Subject: Re: How to preform periodical task except sysAuxClkRateSet() Date: Wed, 13 Mar 2002 11:26:46 +0200 From: "Leonid Rosenboim" Organization: Verio Message-ID: References: <5c074538.0203122254.56279c06@posting.google.com> There are basically these methods for periodical processing, each is a tradeoff between timing accuracy (jitter) and processing time, and wakeup freqnecy. Suppose you create a function, WakeMeUp(), which would be invoked with the frequency required for processing. If processing time is long (e.g. >200 microsec), there should be a dedicated task tperforming the proessing, and WakeMeUp would only Give a semaphore on which the task is Pending. If the processing is short, it can be done within WakeMeUp. The deditated task's priority is too a tradeoff of the same sort - the higher priority would give less jitter and lower priority is more appropriate for longer processing time (See about Rate Monolithic Scheduling) As to the method to invoke WakeMeUp (which could run in ISR) is one of these: + Use the system clock via wdLib, if period is multiple (or can be made multiple) of the system clock rate + Use sysAuxClk if dependency of processing frequency and system clock can not be acheived. I could provide you with specific advise, but you omitted the frequency of processing you require. Leonid "Allen Chang" wrote in message news:5c074538.0203122254.56279c06@posting.google.com... > Hello All, > > I am surveying how to use VxWorks to write a real-time > simulator in cooperate with x86 single board computer. > During reading the documents of VxWorks, there is a question > that need some help here. > > If you need to perform a periodical task, and the > frequency is an invaild value for sysAuxClkRateSet(). > Since it's periodical and the task really takes some time > to execute (at least 3ms in PII 350), the watchdog > timer and ISR may not be a solution. > > Is there any alternative to perform the task accurately, > without increase the system overhead by using sysClkRateSet()? > > Best Regards, > > Allen Chang --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Should the IP header be 4 bytes(long word) align? Date: Wed, 13 Mar 2002 11:31:18 +0200 From: "Leonid Rosenboim" Organization: Verio Message-ID: References: <1d411918.0203130023.5d5db610@posting.google.com> Dragon Dear, Your observation are very true with respect to the existing drivers. The alignment is not mandatory, but would typically improve performance of the IP layer processing. The significance of this performance improvement depends on the hardware architecture and packet rate. At times, pureposeful alignment could actually decrease performance if the "byte shift" operation costs more then the subsequent performance gain. So make the thing work first, and then try both methods under heavy simulated traffic load, and see which gets you best packet rate. Leonid "DragonSpring" wrote in message news:1d411918.0203130023.5d5db610@posting.google.com... > We use Tornado II/VxWorks 5.4 for MPC860 + T2CP2 + NPT(TDK-13274) + > NPT patch(spr30894) + MUX/END driver. We make IP over HDLC. > > I have some questions on IP header long word (32bits) align. > > 1. Must the IP header be 4 bytes(long word) align when my END driver > delivers the IP packet to MUX layer? > > Our IP packet is stored in M_BLK. To our system, the mBlkHdr.mData > directly pointers to IP header, no Logic Link Header, because IP over > HDLC. To ensure reliable transfer, we encapsulate 2 bytes just before > IP header, which makes the IP header not long word align (4n+2). > Certainly, this 2 bytes will be peeled off before END driver deliver > the IP packet to the MUX layer. (use mBlkHdr.mData += 2;) > > 2. I find the WindNet PPP do M_BLK copy to ensure/force the IP header > long word align before using (pEnd)->receiveRtn ((pEnd), > pMblk,NULL,NULL,NULL,NULL) to deliver IP packet to MUX layer. Is it > necessary? > > 3.But for Ethernet frame, the IP header is not long word align > (14bytes offset the Ethernet frame). And it causes no problem. > > I need a canonical answer. Or I have to copy mBlk, which is no longer > zero-copy. --------------------------- Newsgroups: comp.os.vxworks Subject: Compatibility of Diab C++ with RogueWave Date: Wed, 13 Mar 2002 05:07:20 -0500 From: Yves Organization: Bell Sympatico Message-ID: <3C8F24D8.89918A5E@sympatico.ca> Hi all, some time back, someone stated that Diab C++ and WFC/tools.h++ did not mix. I can't find any reference to this on the WRS web site. Are there any such compatibility issues ? I am struggling with a g++ compiler (in T2.0.2) problem (SPR 74180 - PPC - - register containing exception handler context is being overwritten and re-used as gp register ... you can bet this was a fun one for us to track down). choices offered by wrs: Tornado 2.1 (my BSP is not 2.1 friendly) Tornado 2.2 (who has this much time on their hands to wait 6 months or more) wait for us to maybe fix it but it is not a high priority given that there is a solution (these guys must be math majors, it is good enough to know that a solution exists) so being the rebel kind, I am investigating (e) none of the above. Thanks Yves --------------------------- Newsgroups: comp.os.vxworks Subject: Receiving IP packet in Raw Sockets Date: Wed, 13 Mar 2002 10:56:29 +0000 (UTC) From: "Ramesh Krishnan" Organization: Mailgate.ORG Server - http://www.Mailgate.ORG Message-ID: Hi, I previously posted regarding the reception of IP hdr in VxWorks. THe total length field alone is receiving wrongly. I am sending the packet from linux machine and receiving it in VxWOrks. I have checked sending between two linux machines, it worked fine. But reception in VxWorks is the problem. I tried between two VxWOrks images two, there also the problem exists. I will paste the code here. Somebody kindly help me out what's going wrong in this. This code is a working code. You can cut and paste it and check out. Thanks, Ramesh Linux Raw packet sending code: =========================================================================== #include #include #include #include #define PORT 0 #define LOCAL_IP_ADDR "192.168.100.242" #define DEST_IP_ADDR "90.0.0.1" /* #define LOCAL_IP_ADDR "192.168.100.242" #define DEST_IP_ADDR "192.168.100.109" */ #define IP_PROTO_LMP 140 #define OK 1 #define ERROR -1 #define MESSAGE "MESSAGE CAME" uint16_t checksum( uint16_t *data, uint32_t len ) { /* Data is the one for which we are calculating checksum and its size * len in bytes */ register uint32_t sum = 0; uint16_t ans; register uint16_t *temp = data; register uint32_t odd = len; /* Adding 16 bit word every time to sum */ while( odd > 1) { sum += *temp; odd -= 2; } /* If length is odd the last 8 bits will also get added */ if( odd ) sum += *( uint8_t * )temp; while( sum >> 16 ) sum = ( sum >> 16 ) + ( sum & 0xffff ); ans =~ sum; return( ans ); } /*this message is encapsulated by my IP hdr */ int build_iphdr(void *data, uint32_t len) { struct iphdr *ip=( struct iphdr * )data; ip->version=4; ip->ihl=5; ip->tos=0; ip->tot_len=0; /*htons(sizeof( struct iphdr )+ len);*/ ip->id=htons(getuid()); ip->ttl=255; ip->protocol=IP_PROTO_LMP; /*My protocol number */ if( (ip->saddr=inet_addr(LOCAL_IP_ADDR)) < 0 ) { perror("Give valid source IP:"); return -1; } if( (ip->daddr=inet_addr(DEST_IP_ADDR)) < 0 ) { perror("Give valid dest IP:"); return -1; } ip->check=checksum((unsigned short *)ip,sizeof(struct iphdr)); return 0; } void display(void *buf, int bytes) { int i; struct iphdr *ip = buf; printf("\n---------------------------------------------------------\n"); for ( i = 0; i < bytes; i++ ) { if ( !(i & 15) ) printf("\n%04X: ", i); printf("%02X ", ((unsigned char*)buf)[i]); } printf("\n---------------------------------------------------------\n"); printf("IPv%d: hdr-size=%d pkt-size=%d protocol=%d TTL=%d src=%s ", ip->version, ip->ihl*4, ntohs(ip->tot_len), ip->protocol, ip->ttl, inet_ntoa(ip->saddr)); printf("dst=%s chksum= %d\n", inet_ntoa(ip->daddr), ip->check); } int main() { int raw,sockopt_val=1; struct sockaddr_in local_addr,peer_addr; struct iphdr *ip; char *my_sending_pkt; uint32_t len; if( (raw=socket(AF_INET,SOCK_RAW,IPPROTO_RAW)) < 0 ) { perror("sock"); exit(1); } if( (my_sending_pkt=(char *)malloc(sizeof(struct iphdr)+sizeof(MESSAGE)) ) == NULL ) { perror("malloc failed:"); return(ERROR); } ip=(struct iphdr *)my_sending_pkt; strcpy( (my_sending_pkt+sizeof(struct iphdr)),MESSAGE); bzero((char *)&local_addr,sizeof(local_addr)); bzero((char *)&peer_addr,sizeof(peer_addr)); local_addr.sin_family=AF_INET; local_addr.sin_port=htons(PORT); peer_addr.sin_family=AF_INET; peer_addr.sin_port=htons(PORT); if( (inet_aton(LOCAL_IP_ADDR,(struct in_addr *)&local_addr.sin_addr.s_addr)) == ERROR ) { perror("Addr conversion:"); return(ERROR); } if( (inet_aton(DEST_IP_ADDR,(struct in_addr *)&peer_addr.sin_addr.s_addr)) == ERROR ) { perror("Addr conversion:"); return(ERROR); } if( (setsockopt(raw,0,IP_HDRINCL,(char *)&sockopt_val,sizeof(sockopt_val)) )== ERROR) { perror("setsockopt:"); return(ERROR); } if( (build_iphdr(ip,sizeof(MESSAGE)) ) < 0) { perror("Build IP failed:"); return(ERROR); } if( ( bind(raw,(struct sockaddr *)&local_addr,sizeof(local_addr)) ) == ERROR ) { perror("Bind:"); return(ERROR); } len = sizeof( struct iphdr ) + sizeof( MESSAGE ); display(my_sending_pkt,len); printf("IP PKT len %d\n",ip->tot_len); if( (sendto(raw,(caddr_t)my_sending_pkt,len,0,(struct sockaddr *)&peer_addr,sizeof(peer_addr)) ) != len ) { perror("Sendto failed:"); return(ERROR); } return OK; } ============================================================================== VxWorks code for receiving IP packet: ===================================== #include #include #include #include #include #include #include #include #define LOCAL_IP_ADDR "90.0.0.1" void display(void *buf, int bytes) { int i; struct ip *iphdr = buf; /* struct icmphdr *icmp=(buf + sizeof(struct ip));*/ printf("----------------\n"); for ( i = 0; i < bytes; i++ ) { if ( !(i & 15) ) printf("\n%04X: ", i); printf("%02X ", ((unsigned char*)buf)[i]); } printf("\n"); printf("IPv%d: hdr-size=%d pkt-size=%d protocol=%d TTL=%d src=%s dst=%s\n", iphdr->ip_v, iphdr->ip_hl*4, ntohs(iphdr->ip_len), iphdr->ip_p, iphdr->ip_ttl, inet_ntoa(iphdr->ip_src),inet_ntoa(iphdr->ip_dst)); /* if( iphdr->p== IPPROTO_ICMP ) { printf("ICMP type %d: ICMP echo id %d: ICMP Seq %d: ICMP Chksum %d:\n", icmp->type,icmp->un.echo.id,icmp->un.echo.sequence,icmp->checksum); } */ if ( iphdr->ip_p == 140 ) printf("Message %s\n",(char *)(buf+sizeof(struct ip))); } int rawget() { int sd; struct sockaddr_in addr,local_addr; unsigned char buf[1024]; sd = socket(AF_INET,SOCK_RAW,140); if ( sd < 0 ) { perror("socket"); return ERROR; } local_addr.sin_family=AF_INET; local_addr.sin_port=htons(0); local_addr.sin_addr.s_addr=INADDR_ANY; /* if( (inet_aton(LOCAL_IP_ADDR,(struct in_addr *)&local_addr.sin_addr.s_addr)) == ERROR ) { perror("Addr conversion:"); return(ERROR); } */ if( ( bind(sd,(struct sockaddr *)&local_addr,sizeof(local_addr)) )==ERROR) { perror("Bind:"); return(ERROR); } for (;;) { int bytes, len=sizeof(addr); bzero(buf, sizeof(buf)); bytes = recvfrom(sd, buf, sizeof(buf), 0, (struct sockaddr *)&addr, &len); if ( bytes > 0 ) display(buf, bytes); } return OK; } ========================================================================== - -- Posted via Mailgate.ORG Server - http://www.Mailgate.ORG --------------------------- End of New-News digest ********************** From vxwexplo-errs@csg.lbl.gov Wed Mar 13 07:02:37 2002 From: "Hans-Peter Kabout" Date: Wed Mar 13 07:02:40 PST 2002 Subject: RE: Reception of IP hdr in VxWorks Hi Mr. Ramesh, I don't believe that sendto() is correcting ip->tot_len. So it should be set correctly in your build_iphdr() function: /* ip->tot_len = 0; */ ip->tot_len = len + 20; /* 20 = 4*ip->ihl */ I also believe that your checksum() function is not returning a desired result. Please check: while (odd> 1) { sum += *temp; temp++; /* add this line!? */ odd -= 2; } Regards, H.-P. Kabout, IT-Consulting [mailto:Hans-Peter@Kabout.com] Phone: +49 (0)9085 - 1017 Mobile: +49 (0)160 - 7556913 [http://www.kabout.com] -----Original Message----- From: the vxWorks Users Group Exploder [mailto:vxwexplo@lbl.gov] Sent: Wednesday, March 13, 2002 12:12 To: vxworks_users@csg.lbl.gov Subject: Reception of IP hdr in VxWorks Submitted-by vxwexplo-errs@csg.lbl.gov Wed Mar 13 03:00:37 2002 Submitted-by: S Ramesh Hi, I previously posted regarding the reception of IP hdr in VxWorks. THe total length field alone is receiving wrongly. I am sending the packet from linux machine and receiving it in VxWOrks. I have checked sending between two linux machines, it worked fine. But reception in VxWorks is the problem. I tried between two VxWOrks images two, there also the problem exists. I will paste the code here. Somebody kindly help me out what's going wrong in this. This code is a working code. You can cut and paste it and check out. Thanks, Ramesh (message truncated) From vxwexplo-errs@csg.lbl.gov Wed Mar 13 21:56:00 2002 From: Sathyavathi Ramaiah Date: Wed Mar 13 21:56:03 PST 2002 Subject: Running a batch file Hi, I am beginner in using this environment. I am facing a problem while running the applictaion in batch mode. I have tornado Installed on my machine. I want to run the batch file, which will have commands to invoke the target server, load the image and spawn the root. This is how my batch file looks like ############# windsh vxsim@tajmahal cd "c:\Examples\Traffic_light\vxsimntws\" ld < traffic.X86 sp root exit ############## It just invokes the windshell command. The other commands are not executed. How do I achieve this??? Thanks in advance. Regards, Sathya __________________________________________________ Do You Yahoo!? Yahoo! Sports - live college hoops coverage http://sports.yahoo.com/ From vxwexplo-errs@csg.lbl.gov Thu Mar 14 04:03:30 2002 From: Vxworks Exploder Date: Thu Mar 14 04:03:33 PST 2002 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Thu Mar 14 04:03:23 PST 2002 Subject: setsockopt IP_ADD_MEMBERSHIP error Subject: Re: BSD Ethernet Driver Subject: Re: Page Fault for help Subject: Re: Should the IP header be 4 bytes(long word) align? Subject: Re: Page Fault for help Subject: Unable to ping Subject: arp_rtrequest: bad gateway value Subject: arpresolve problem Subject: Re: Page Fault for help Subject: [AE] What is the bootApp entry point in RAM? Subject: Re: [AE] What is the bootApp entry point in RAM? Subject: Re: [AE] What is the bootApp entry point in RAM? Subject: Re: Printing 64bit values Subject: Re: What causes this message? Subject: Posix semaphore question Subject: Re: What causes this message? Subject: Re: how can I clear the data buffer of a serial port? Subject: Re: I want to log the packet between IP and mux. Subject: Re: What's the Expected errno from msgQReceive(...,NO_WAIT) Subject: VxWork RPC Subject: Need help with Technobox 2901 serial PMC on an MVME2100. Subject: Re: [Help Me] vxworks Simulator Subject: Re: What causes this message? Subject: Re: Is it possible to change the priortiy of windsh Subject: Need help with Technobox 2901 serial PMC on an MVME2100. Subject: Re: Printing 64bit values Subject: Re: Printing 64bit values Subject: Re: [AE] What is the bootApp entry point in RAM? Subject: Re: Should the IP header be 4 bytes(long word) align? Subject: Re: ln97xEnd - ring buffer size Subject: Re: A question about ifunit( ) && extern struct ifnet *ifnet? Subject: Re: BSD Ethernet Driver Subject: Re: Posix semaphore question Subject: ATM PCR (Peak Cell Rate) limit exceeded when PPC cache enabled? Subject: Re: tNetTask takes too long? Subject: Re: HELP about sysAuxClkRateSet() and BSP ! Subject: Re: [AE] What is the bootApp entry point in RAM? Subject: Re: OPENDIR Help Subject: VxWorks WebServer for ARM can not work correctly? Subject: Re: Should the IP header be 4 bytes(long word) align? Subject: Re: Should the IP header be 4 bytes(long word) align? Subject: Re: How to preform periodical task except sysAuxClkRateSet() Subject: Re: Using STL map type Subject: how do I program device driver on vxworks Subject: Re: [AE] What is the bootApp entry point in RAM? Subject: Read on serial does not block Subject: Re: Page Fault for help Subject: Re: Should the IP header be 4 bytes(long word) align? Subject: [AE] BSP and Device Driver Development Subject: try(void) Subject: Re: How to preform periodical task except sysAuxClkRateSet() Subject: select() with General Protection Fault Subject: help for hard disk Subject: Binary Serial Communications Subject: Re: ln97xEnd - ring buffer size Subject: Re: A question about ifunit( ) && extern struct ifnet *ifnet? Subject: Re: BSD Ethernet Driver Subject: Re: Page Fault for help Subject: Re: Binary Serial Communications Subject: Re: How to preform periodical task except sysAuxClkRateSet() Subject: Re: help for hard disk Subject: Reception of broadacted UDP messages on the same host Subject: Re: PCI memory space Subject: Re: Read on serial does not block Subject: Re: [AE] What is the bootApp entry point in RAM? Subject: Re: [AE] BSP and Device Driver Development Subject: Re: Read on serial does not block Subject: question about END driver's unload function...... Subject: trgEvent user event triggering Subject: Re: tNetTask takes too long? ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: setsockopt IP_ADD_MEMBERSHIP error Date: 13 Mar 2002 04:06:57 -0800 From: edenkannan@hotmail.com (kannan) Organization: http://groups.google.com/ Message-ID: <97b1f722.0203130406.38ec459f@posting.google.com> Hi, I was trying sending out mutlicast packets from our simulator(full version) to our target board(which use vxworks).I use the code given by vxworks. I was able to be to join the MULTICAST group through our target board.But i was unable to join the the multicast group through simulator.It throws setsockopt IP_ADD_MEMBERSHIP error.But it succeeds in our target board. I also added 224.0.0.0 to the gateway 90.0.0.1. - -> routeShow ROUTE NET TABLE destination gateway flags Refcnt Use Interface - ---------------------------------------------------------------------------- 0.0.0.0 90.0.0.1 101 0 0 nt0 224.0.0.0 90.0.0.1 101 0 0 nt0 - ---------------------------------------------------------------------------- ROUTE HOST TABLE destination gateway flags Refcnt Use Interface - ---------------------------------------------------------------------------- 127.0.0.1 127.0.0.1 5 0 0 lo0 - ---------------------------------------------------------------------------- value = 77 = 0x4d = 'M' - -> ifShow nt (unit number 0): Flags: (0xf1) UP POINT-TO-POINT RUNNING Type: ETHERNET_CSMACD Internet address: 90.0.0.1 Destination Internet address: 0.0.0.0 Netmask 0xff000000 Subnetmask 0xff000000 Metric is 0 Maximum Transfer Unit size is 1520 0 packets received; 1 packets sent 0 multicast packets received 0 multicast packets sent 0 input errors; 0 output errors 0 collisions; 0 dropped lo (unit number 0): Flags: (0x8069) UP LOOPBACK RUNNING ARP MULTICAST Type: SOFTWARE_LOOPBACK Internet address: 127.0.0.1 Netmask 0xff000000 Subnetmask 0xff000000 Metric is 0 Maximum Transfer Unit size is 32768 0 packets received; 0 packets sent 0 multicast packets received 0 multicast packets sent 0 input errors; 0 output errors 0 collisions; 0 dropped value = 0 = 0x0 I also added INCLUDE_MCAST_ROUTING in the bootable image. I thought of changing the flags to "Flags: (0x8063) UP BROADCAST RUNNING ARP MULTICAST" instead of "Flags: (0xf1) UP POINT-TO-POINT RUNNING " for nt interface.I use ifFlagChange to change the interface flag to MULTICAST but except this flag I was able to change all flags say (UP DEBUG LOOPBACK POINT-TO-POINT RUNNING) but I was not able to change it as say UP BROADCAST RUNNING ARP MULTICAST.(Does anybody tried changing this nt interface flag). I don't know whether my route configuration(say routeAdd) or this flag is the problem or can anybody let me know whether it is possible to do multicasting with simulator.I also seen old archives but no positive answer. Did anybody tried sending multicast packets from target board to the simulator. If so what else i have to do for sending multicat packets. pls let me know. Thanks and Regards, Kannan --------------------------- Newsgroups: comp.os.vxworks Subject: Re: BSD Ethernet Driver Date: Wed, 13 Mar 2002 07:04:30 -0500 From: George Varndell Organization: Posted Via Binaries.net = SPEED+RETENTION+COMPLETION = http://www.binaries.net Message-ID: <3C8F404D.7C2C7538@varndellengineering.com> References: <6847c39a.0203072126.4cc28aaf@posting.google.com> <6847c39a.0203080206.2515b5ff@posting.google.com> <3C890057.E551DBDA@varndellengineering.com> <3c891c2c$1@brateggebdc5.br-automation.co.at> <3C8DE54A.50807@spamm.me.l8s.co.uk> <6847c39a.0203122047.16035284@posting.google.com> Vittal wrote: > > If any of you have faced similar problem where in the device does not > support DMA and you are asked find out why the throughput is less, > please give me some hints. I've worked with a number of these non-bus-mastering devices, and it can be difficult to squeeze performance out of them. Here are some lessons I learned -- roughly in order of importance. 1. It will be necessary to abandon some WRS religion. Don't defer servicing receive packets to task level -- no netjob. You may increase interrupt service time and, in so doing, stretch out the overall system interrupt response latency, but if you don't keep the device ready to receive data, you'll loose packets and effective throughput will suffer. The #1 cause of lackluster performance in WRS network drivers is trying to handle everything at task level. 2. If available on your particular board or CPU, use other DMA channels to move data to and from the device. This highlights what is probably the only advantage of a noDMA chip -- it is easier to allocate rcv buffers that fit the incoming frame. With (nearly all) descriptor based devices, you must supply a buffer of MTU+slop size to every descriptor. 3. On output, avoid copying the mbuf chain to a local RAM buffer before moving it to the device. Walk the mbuf chain yourself, moving data from each one directly to the device. 4. When moving data to and from the device, consider whether buffer alignment is having an adverse affect on performance. What is best, what is optimal, will depend on your specific hardware. You never mentioned what is your target architecture or device. I suspect you may get more helpful replies if you do. Regards, George Varndell - -- Embedded Systems Expertise Varndell Engineering, LLC. http://www.varndellengineering.com Cumberland MD. 21502 ______________________________________________________________________________ Posted Via Binaries.net = SPEED+RETENTION+COMPLETION = http://www.binaries.net --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Page Fault for help Date: Wed, 13 Mar 2002 12:10:33 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C8F422D.30607@spamm.me.l8s.co.uk> References: <3C8E07F7.4050609@spamm.me.l8s.co.uk> K.YH wrote: > I originally think that vxworks image is overwriting RAM_HIGH_ADDR and > hence > the boot loader code,so i change the RAM_LOW_ADRS to 00358000 and the > RAM_HIGH_ADRS is 00008000(not changed). I presume you've typed these the wrong way around! > My vxworks image size is > 1.65MB,so the mem space is enough,but the same error appears again.By > the way ,is vxworks for X86 different with that for others ,for > example ppc. > Any help for it. > Thanks What was RAM_HIGH_ADRS before? Your main image doesn't have ANY reference to RAM_HIGH_ADRS in it. It is the boot rom that you need to rebuild after changing it. The boot sequence is: 1) code execute from ROM, this code is linked to RAM_LOW_ADRS so is initially executing at the wrong address. 2) code copies the rom image to RAM_LOW_ADRS and jumps into the copy (this copy usually excludes binArrayStart .. binArrayEnd) 3) the bootload code is uncompressed to RAM_HIGH_ADRS 4) jump into bootload code at RAM_HIGH_ADRS 5) load 'real' image to RAM_LOW_ADRS - must not hit RAM_HIGH_ADRS 6) jump into image at RAM_LOW_ADRS David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Should the IP header be 4 bytes(long word) align? Date: Wed, 13 Mar 2002 12:13:24 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C8F42DB.8050601@spamm.me.l8s.co.uk> References: <1d411918.0203130023.5d5db610@posting.google.com> Leonid Rosenboim wrote: > Dragon Dear, > > Your observation are very true with respect to the existing drivers. > The alignment is not mandatory, but would typically improve performance of > the IP layer processing. The significance of this performance improvement > depends > on the hardware architecture and packet rate. At times, pureposeful > alignment could actually decrease performance if the "byte shift" operation > costs more then the > subsequent performance gain. If possible get the ethernet hardware to place the rx packets onto a 4n+2 boundary. Then no extra copy is required. David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Page Fault for help Date: Wed, 13 Mar 2002 13:29:06 +0100 From: "Michael Lawnick" Organization: Buergernetz Dillingen Message-ID: References: <3C8E07F7.4050609@spamm.me.l8s.co.uk> <3C8F422D.30607@spamm.me.l8s.co.uk> Reply-To: "Michael Lawnick" Sender: mlawnick@pd952489c.dip.t-dialin.net Stop, stop, hooooooooo David ! "David Laight" schrieb im Newsbeitrag news:3C8F422D.30607@spamm.me.l8s.co.uk... > K.YH wrote: > > > I originally think that vxworks image is overwriting RAM_HIGH_ADDR and > > hence > > the boot loader code,so i change the RAM_LOW_ADRS to 00358000 and the > > RAM_HIGH_ADRS is 00008000(not changed). > > > I presume you've typed these the wrong way around! > > > My vxworks image size is > > 1.65MB,so the mem space is enough,but the same error appears again.By > > the way ,is vxworks for X86 different with that for others ,for > > example ppc. > > Any help for it. > > Thanks > > What was RAM_HIGH_ADRS before? > > Your main image doesn't have ANY reference to RAM_HIGH_ADRS in it. > It is the boot rom that you need to rebuild after changing it. > > The boot sequence is: > 1) code execute from ROM, this code is linked to RAM_LOW_ADRS > so is initially executing at the wrong address. > 2) code copies the rom image to RAM_LOW_ADRS and jumps into the copy > (this copy usually excludes binArrayStart .. binArrayEnd) > 3) the bootload code is uncompressed to RAM_HIGH_ADRS > 4) jump into bootload code at RAM_HIGH_ADRS > 5) load 'real' image to RAM_LOW_ADRS - must not hit RAM_HIGH_ADRS > 6) jump into image at RAM_LOW_ADRS > > David > He's got a X86 arch (see above), where all is the other way round (not only endianess ;-)) On X86 RAM_HIGH_ADRS points into low mem i.e. the lower 640kb that BIOS can access. RAM_LOW_ADRS points to the region higher than 1Mb. So X86 never has the (over-)loading problem of 68k and PPC. - -- Mit freundlichen Grüßen, Michael Lawnick ============================================== SOFTEC GmbH Tel +49-731-96600-0 Promenade 17 Fax +49-731-96600-23 D-89073 Ulm Michael Lawnick Germany lawnick@softec.de ============================================== --------------------------- Newsgroups: comp.os.vxworks Subject: Unable to ping Date: 13 Mar 2002 05:06:05 -0800 From: edenkannan@hotmail.com (kannan) Organization: http://groups.google.com/ Message-ID: <97b1f722.0203130506.69d85ee2@posting.google.com> Hi, I was trying SMTP client in my target board(MPC 860).I was unable to ping the mail server from vxworks it is in the same subnet. But the strange thing is i was able to ping all vxworks host systems(which has vxworks installed).Iam not able to ping any of the IP address other than vxworks host systems. - -> routeShow ROUTE NET TABLE destination gateway flags Refcnt Use Interface - ---------------------------------------------------------------------------- 56.0.0.0 135.111.122.1 3 0 0 cpm0 135.111.0.0 135.111.122.240 101 0 0 cpm0 - ---------------------------------------------------------------------------- ROUTE HOST TABLE destination gateway flags Refcnt Use Interface - ---------------------------------------------------------------------------- 127.0.0.1 127.0.0.1 5 1 1 lo0 - ---------------------------------------------------------------------------- value = 77 = 0x4d = 'M' my mail server IP is "135.111.122.144". Board Ip is "135.111.122.240". Can anybody help me. Thanks and Regards, Kannan --------------------------- Newsgroups: comp.os.vxworks Subject: arp_rtrequest: bad gateway value Date: 13 Mar 2002 05:39:29 -0800 From: edenkannan@hotmail.com (kannan) Organization: http://groups.google.com/ Message-ID: <97b1f722.0203130539.2fab8187@posting.google.com> Hi, I was trying multicasting the multicast address ranges from 224.0.0.0 to 239.255.255.255.I use vxsim(full version) when i route add routeAdd("224.0.0.0","90.0.0.1") it is silent. But when i routeAdd("224.1.0.1","90.0.0.1") which is also in the same multicast group.But in the simulator it throws some "arp_rtrequest: bad gateway value" .I have searched in old archives but none of the mails in vxworks group conatons this error.But when i searched in comp.unix.bsd.freebsd.misc and some mailing.freebsd.net they say it as a kernel bug(I don't believe). May be my understanding is illogical. Pls help me out to understand why this error happens... Thanks and Regards, Kannan --------------------------- Newsgroups: comp.os.vxworks Subject: arpresolve problem Date: 13 Mar 2002 06:02:35 -0800 From: edenkannan@hotmail.com (kannan) Organization: http://groups.google.com/ Message-ID: <97b1f722.0203130602.6f27d94b@posting.google.com> Hi, I have a problem in connecting my SMTP client which runs in my target board .When i communicate with our mail server it just throws 0xfb7490 (tNetTask): arptnew failed on 876f7a92 0xf84638 (tPingTx4): arpresolve: can't allocate llinfo0xfb7490 (tNetTask): arptn ew failed on 876f7a92 0xf84638 (tPingTx4): arpresolve: can't allocate llinfo0xfb7490 (tNetTask): arptn ew failed on 876f7a92 I have added all components related with arp say INCLUDE_ARP_API and INCLUDE_ARP.But the error comes again and again whenever the SMTP client program is called from our target board. Note:My mail server is in the same subnet. Another strange thing i found out is arpShow works in the shell.But arpAdd doesn't works in the shell.I tried checking the target\lib\objPPC860gnuvx there the arpLib.o is missing .But arpShow and arpAdd works in the simulator i tried checking the target\lib\objSIMNTgnuvx which contains arpLib.o. I don't know how to proceed pls help me.. Thanks and Regards, Kannan --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Page Fault for help Date: Wed, 13 Mar 2002 14:16:24 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C8F5F9B.6070605@spamm.me.l8s.co.uk> References: <3C8E07F7.4050609@spamm.me.l8s.co.uk> <3C8F422D.30607@spamm.me.l8s.co.uk> Michael Lawnick wrote: > Stop, stop, hooooooooo David ! > >>>I originally think that vxworks image is overwriting RAM_HIGH_ADDR and >>>hence the boot loader code,so i change the RAM_LOW_ADRS to 00358000 >>>and the RAM_HIGH_ADRS is 00008000(not changed). >>>My vxworks image size is 1.65MB, >>What was RAM_HIGH_ADRS before? > He's got a X86 arch (see above), where all is the other way round. > On X86 RAM_HIGH_ADRS points into low mem i.e. the lower 640kb that > BIOS can access. RAM_LOW_ADRS points to the region higher than 1Mb. > So X86 never has the (over-)loading problem of 68k and PPC. (ok some conjecure) Lets see, that (probably) means you have RAM from 0 to 640k and 1Mb upwards. If the 'bootrom' code is small enough it could be loaded between 32k and 640k - probably ok unless you try to rebuild it on a system with lots of stuff included - the boot rom doesn't have it's own list of features :-( The main image could be loaded anywhere above 1Mb (say 0x101000) giving plenty of space. The area to the top of free memory would be the heap space. I guess a big chunk of 1k..640k could be added with memPartAddToPartition(). In which case RAM_LOW_ADRS of 0x358000 (3.5Mb) doesn't seem right at all! Places the vxWorks image right in the middle of DRAM. Certainly hopeless if you have 4Mb! FWIW my system was ARM, I used a compressed rom image. So the uncompress code was linked to RAM_HIGH_ADRS and the vxWorks image to RAM_LOW_ADRS. David --------------------------- Newsgroups: comp.os.vxworks Subject: [AE] What is the bootApp entry point in RAM? Date: Wed, 13 Mar 2002 10:17:45 -0500 From: "David Masse" Organization: Universite du Quebec Message-ID: Hi, I would like to know what is the entry point of a bootApp in RAM. I always thinked that is supposed to be sysInit (defined in sysALib.s) but it's not seems to be that. I build a bootApp from a custom BSP (ported from ads860) for my PPC860 target with the bootApp_romCopy build specification. I used the objdumpppc tool to get the disassembly and I found that the RAM entry point that is located at binArrayStart is not corresponding to sysInit. Here is a sample of the disassembly at binArrayStart: fff0102c <_binArrayStart>: fff0102c: 94 21 ff f0 stwu r1,-16(r1) fff01030: 7c 08 02 a6 mflr r0 fff01034: 90 01 00 14 stw r0,20(r1) fff01038: 48 00 44 19 bl fff05450 <_binArrayStart+0x4424> fff0103c: 80 01 00 14 lwz r0,20(r1) fff01040: 7c 08 03 a6 mtlr r0 fff01044: 38 21 00 10 addi r1,r1,16 fff01048: 4e 80 00 20 blr fff0104c: 7d 29 4a 78 xor r9,r9,r9 fff01050: 39 40 0f ff li r10,4095 fff01054: b1 24 09 62 sth r9,2402(r4) fff01058: b1 44 09 60 sth r10,2400(r4) fff0105c: b1 24 09 64 sth r9,2404(r4) fff01060: b1 24 09 68 sth r9,2408(r4) fff01064: b1 24 09 66 sth r9,2406(r4) fff01068: 3c a0 00 01 lis r5,1 fff0106c: 38 a5 80 00 addi r5,r5,-32768 and here is the beginning of my sysInit routine: _sysInit: sysInit: /* CPU Led Test */ xor r9,r9,r9 li r10, 0x0FFF sth r9, PCPAR(0)(r4) sth r10, PCDIR(0)(r4) sth r9, PCSO(0)(r4) sth r9, PCINT(0)(r4) sth r9, PCDAT(0)(r4) lis r5,HIADJ(0x00008000) addi r5,r5,LO(0x00008000) lis r6,0x0000 As you can see, sysInit start at the 9th line of the disassembly file (addr = fff0104c). My question is what is the code before because the programm seems to never branch to my sysInit code. I run this bootApp on my target and the CPU branch correctly to RAM_HIGH_ADRS after romStart() that is the beginning of binArrayStart. But when the code reach the 4th line (fff01038: 48 00 44 19 bl fff05450 <_binArrayStart+0x4424>), it start branching I don't know where and the system crash before ever reaching my sysInit code. The strange thing is that I build a VxWorks ROM system and this time, the compiler put correctly my sysInit code at the beginning of binArrayStart. Can someone help me? Thanks David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: [AE] What is the bootApp entry point in RAM? Date: Wed, 13 Mar 2002 15:36:17 GMT From: "Jim" Organization: Magma Communications Ltd. Message-ID: References: do objdump on your core file ...it should show up "David Masse" wrote in message news:a6nqo9$i60$1@Tropolix.UQSS.UQuebec.CA... > Hi, > > I would like to know what is the entry point of a bootApp in RAM. I always > thinked that is supposed to be sysInit (defined in sysALib.s) but it's not > seems to be that. I build a bootApp from a custom BSP (ported from ads860) > for my PPC860 target with the bootApp_romCopy build specification. I used > the objdumpppc tool to get the disassembly and I found that the RAM entry > point that is located at binArrayStart is not corresponding to sysInit. > > Here is a sample of the disassembly at binArrayStart: > > fff0102c <_binArrayStart>: > fff0102c: 94 21 ff f0 stwu r1,-16(r1) > fff01030: 7c 08 02 a6 mflr r0 > fff01034: 90 01 00 14 stw r0,20(r1) > fff01038: 48 00 44 19 bl fff05450 <_binArrayStart+0x4424> > fff0103c: 80 01 00 14 lwz r0,20(r1) > fff01040: 7c 08 03 a6 mtlr r0 > fff01044: 38 21 00 10 addi r1,r1,16 > fff01048: 4e 80 00 20 blr > fff0104c: 7d 29 4a 78 xor r9,r9,r9 > fff01050: 39 40 0f ff li r10,4095 > fff01054: b1 24 09 62 sth r9,2402(r4) > fff01058: b1 44 09 60 sth r10,2400(r4) > fff0105c: b1 24 09 64 sth r9,2404(r4) > fff01060: b1 24 09 68 sth r9,2408(r4) > fff01064: b1 24 09 66 sth r9,2406(r4) > fff01068: 3c a0 00 01 lis r5,1 > fff0106c: 38 a5 80 00 addi r5,r5,-32768 > > and here is the beginning of my sysInit routine: > > _sysInit: > sysInit: > /* CPU Led Test */ > xor r9,r9,r9 > li r10, 0x0FFF > sth r9, PCPAR(0)(r4) > sth r10, PCDIR(0)(r4) > sth r9, PCSO(0)(r4) > sth r9, PCINT(0)(r4) > sth r9, PCDAT(0)(r4) > lis r5,HIADJ(0x00008000) > addi r5,r5,LO(0x00008000) > lis r6,0x0000 > > As you can see, sysInit start at the 9th line of the disassembly file (addr > = fff0104c). My question is what is the code before because the programm > seems to never branch to my sysInit code. I run this bootApp on my target > and the CPU branch correctly to RAM_HIGH_ADRS after romStart() that is the > beginning of binArrayStart. But when the code reach the 4th line (fff01038: > 48 00 44 19 bl fff05450 <_binArrayStart+0x4424>), it start branching > I don't know where and the system crash before ever reaching my sysInit > code. The strange thing is that I build a VxWorks ROM system and this time, > the compiler put correctly my sysInit code at the beginning of > binArrayStart. > > Can someone help me? > > Thanks > > David > > > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: [AE] What is the bootApp entry point in RAM? Date: Wed, 13 Mar 2002 15:49:24 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C8F757A.6050403@spamm.me.l8s.co.uk> References: Jim wrote: > do objdump on your core file ...it should show up or just nmxxx on the vxWorks image - you MAY need save the required file during the build, but I think the file the debugger uses to get a symbol table is ok. David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Printing 64bit values Date: Wed, 13 Mar 2002 10:52:44 -0500 From: "doug dotson" Organization: Verio Message-ID: References: <900e9637.0203060746.2d1c1bda@posting.google.com> "Joe Chung" wrote in message news:rpselip7aml.fsf@nospam.invalid... > "doug dotson" writes: > > > "Joe Chung" wrote in message > > > 3. If I say, "Doug, your solution doesn't deal with signed > > > numbers, can you provide the code to do that?" You would just > > > refine and repost it, right? > > > > Yes, would you like me to? I assumed that one could extend the > > basic algorithm to handle signed numbers. > > You seemed to have missed my point. > But you do demonstrate my point later.... I guess. > > I would think that anyone that could do a bubble sort .... > > Bingo! You would think that wouldn't you? > And I'd have to agree with you there. > > At what point do you stop giving out help because you realize > that the help they asking is for something you already expect > them to know, OR something that is easy find out because the way > has been shown? I guess that "something *you* already expect them to know" is the key phrase here. That's a judgement call on your part. I contend that when someone asks for advise it is their perrogative and it is not appropriate for you to judge their reasons. Either offer advise or stay quite. No judging, no insults. Help them out or stay out of it. > > I don't have a 64-bit platform on which to test a 64-bit > > solution. I'd rather offer a solution that I tested the was not > > exactly what was asked for but could be extended in an obvious > > way, rather than offerring a solution that I could not test. > > I'm not criticizing your solution's correctness per se. I'm > merely illustrating that you are expecting some people to do the > thinking. I hope you realize that you simply proved my > point by answering the way that you did. "per se" is a code word for "that's not the way I would have done it " :) > You expect people to be able to extend, modify, improve upon your > solution. And you expect them to already know the answer. > In other words, you expect people to be able to do some thinking. > > Well, so do I. > > Let's just agree that we disagree on where to draw the line. Agreed. But I contend there should be no line in the first place. Either offer useful advise or be quiet. > > > At what point would you tell me to stop? > > > > Right now would be nice. > > This just further illustrates that you do have a line that you > will not cross. No, it illustrates that I have work to do and spending my time bantering about with you isn't what I am getting paid for. > > Many times it is quicker to ask than to find out on your own. Usenet > > is a marvelous resource for solutions and those that ask for help > > Yes. I agree with you here. > > Though, it would've been MUCH faster to find out the answer to > this by doing a little google/deja searching or cracking open an > elementary programming book or two than to post and wait for an > answer *that might never come*. Another judgement call on your part. Why can't you just let people make their own decisions on how to solve their problems? > I mean, holy cow, a project won't be finished on time cuz someone > is waiting for an answer on Usenet, on the code to print 64 bit > integers! That's his judgement call. I don't recall any part of his request indicating that this was the case. > > should not have to deal with having their skill as a programmer > > called into question when the seek advise. Many of us here are > > actually programming to make a living and produce a product for > > our companies. Time is more important than impressing others. > > But you'd call their skill into question if they asked you for > the code to bubble sort, right? No I wouldn't. It's not my place to call their skill into question. My background is of the "no such thing as a stupid question" mantra. Incidently, I taught Computer Science at a university for many years. We gave up on teaching bubble sort years ago. So it wouldn't suprise me at all if someone wouldn't know how to do it, but then again it would surprise me that someone would actually use it. Ancient relic. > By the way, if you think that I intend to "impress" by showing > this trivial piece of code then you are gravely mistaken. I > intend to help. Much more so than you do. "gravely mistaken"? You lost me here. I just offered a usable piece of code. > > > One implementation can be found in K&R's _The C Programming > > > Language_ 2nd Ed. on page 64, when they first introduce the > > > do-while loop construct of C. > > > > Big deal. Not everyone learned using this book or even has a > > copy of it. > > Hmmm, a more literal answer than I expected. > > Again, you're misreading my illustration of a point. I'm not > going cite all easily accessible sources in print and on the net > to prove my point: which is that solutions to this particular > problem are *well known*. Thank you. But once again you are passing judgement on someone else's level of skill. > > > Finally, I leave you with this thought. What's more insulting to > > > the person who asked for the code? Your reply or mine? > > > > Your's obviously. If you had submitted it without the insults then > > they would be equivalent I would think. > > Remember, I didn't provide the first 5 replies to the initial > inquiry, I only jumped in when, in the face of answers, someone > still demanded to see the code. I happen to think my solution is > more helpful. > > Also remember that I didn't drag you into this, but since you > dragged me into it: Your terse three liner embarrasses and > dismisses the questioner. I mean, DOH, I couldn't figure that > out? But, hey, that's just me. Whatever you say, John. Your use "DOH" does say something about you though. > Oh, the fact that your 3 liner is neither efficient nor safe in a > small stack environment points to your willingness to help, Depends upon your definition of a small stack environment. If you are operating that close to the limits then you have bigger worries than how to print a number. Efficiency and safeness is a matter of requirements. > rather than to impress, right? Not sure where "impressing" someone enters the picture. And I have trouble seeing a function to print an integer as somehow impressive. Now tell me that that little snippet of LISP at the bottom of your post isn't there to impress us. Now get back to work before you get in trouble with your boss :) > -jc > -- > (apply 'concat (reverse (list "com" > (char-to-string 46) "yahoo" > (char-to-string 64) "joechung"))) --------------------------- Newsgroups: comp.os.vxworks Subject: Re: What causes this message? Date: 13 Mar 2002 08:40:16 -0800 From: davidh@sncorp.com (david howard) Organization: http://groups.google.com/ Message-ID: References: "doug dotson" wrote in message news:... > Greetings! > > When bringing up a shell using the "Launch Shell" button (->i), the > shell starts up and then we get the following message: > > "Invalid C++ Constructor/Destructor strategy ...." > > or something similar (the developer decided to reinstall Tornado so > I can't reproduce it now). Then the shell just keeps restarting over and > over. Everything works fine on other hosts, just this problem on one. > All Target Servers are identcal and the boot images are the exact > same as well. And we are all pointing to the same target machine. > I know I saw this once before months ago but I can't remember what > the solution was. > > Thanks, > Doug This happens to us if there is a mismatch between the downloaded image and the image file that the target server is referencing. make sure the target server is pointing at the same file. --------------------------- Newsgroups: comp.os.vxworks Subject: Posix semaphore question Date: Wed, 13 Mar 2002 16:35:51 +0000 From: Christopher Davidson-Rose Organization: Spider Software Limited Message-ID: <3C8F7FE7.4DD956E1@spider.com> - --------------D10512E18E9C4E8A8EC3B840 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hi, Are the posix semaphore functions (sem_***) callable from interrupt context. Thanks Chris - -- Chris Davidson-Rose - Spider Software 0131 475 7000 "Assassins!" - - Arturo Toscanini (1867-1957) to his orchestra - --------------D10512E18E9C4E8A8EC3B840 Content-Type: text/html; charset=us-ascii Content-Transfer-Encoding: 7bit Hi,

Are the posix semaphore functions (sem_***) callable from interrupt context.

Thanks

Chris

-- 
Chris Davidson-Rose - Spider Software
0131 475 7000
"Assassins!"
- - Arturo Toscanini (1867-1957) to his orchestra
  - --------------D10512E18E9C4E8A8EC3B840-- --------------------------- Newsgroups: comp.os.vxworks Subject: Re: What causes this message? Date: Wed, 13 Mar 2002 10:24:28 -0500 From: Babu Yama Organization: Lucent Technologies Message-ID: <3C8F6F2C.FFE821AD@lucent.com> References: doug dotson wrote: > > Greetings! > > When bringing up a shell using the "Launch Shell" button (->i), the > shell starts up and then we get the following message: > > "Invalid C++ Constructor/Destructor strategy ...." > > or something similar (the developer decided to reinstall Tornado so > I can't reproduce it now). Then the shell just keeps restarting over and > over. Everything works fine on other hosts, just this problem on one. > All Target Servers are identcal and the boot images are the exact > same as well. And we are all pointing to the same target machine. > I know I saw this once before months ago but I can't remember what > the solution was. > > Thanks, > Doug One thing you may want to check is that you are pointing to the right image that is running on the target in your windshell preferences when you create the Target (in Target|create|core file, on a unix box). I don't know if you are already doing this, though. Thanks, Babu --------------------------- Newsgroups: comp.os.vxworks Subject: Re: how can I clear the data buffer of a serial port? Date: Tue, 12 Mar 2002 12:24:43 -0800 From: Joe Durusau Organization: Lockheed Martin Corporation Message-ID: <3C8E640B.D2903EAB@lmco.com> References: thatbird wrote: > > I connect a serial port of ppc(A) directly to another device(B)'s > serial port. A want to read data from B. The communication is > correct, but the question I met is followed. > > After ata that A got from B is stored, I want to clear the data buffer > when error happen, otherwise, next time I will read only data from > last time communication. > > But I do not know how to do?????? Try: ioctl(Comm_Port,FIOFLUSH, 0); Check the return code, of cuss. Speaking only for myself, Joe Durusau --------------------------- Newsgroups: comp.os.vxworks Subject: Re: I want to log the packet between IP and mux. Date: Wed, 13 Mar 2002 09:47:08 -0800 From: "Dan Gold" Organization: Mailgate.ORG Server - http://www.Mailgate.ORG Message-ID: References: <2b9429fcc4035f6c6ac8066e02008a99.75083@mygate.mailgate.org> <2dbc95a7.0203121605.1ad8c1aa@posting.google.com> Sender: gold@ensemble.com "aman" wrote in message news:2dbc95a7.0203121605.1ad8c1aa@posting.google.com... >I want to emulate libpcap under Linux). > >The > first few packets send over the socket work fine. However after about > 30-50 packets I totally lose my Ethernet interface. At this point I > can no longer ping my vxWorks box nor can I ping out from my vxWorks > box. All connection is lost. Note that my vxWorks box has not crashed > because I have a serial connection to it and my tShell is alive an > well. No task appears to have crashed (ie. tNetTask is still alive > along with my tasks). My only choice at this point is to re-boot. > > Do you have any idea what might be happening to cause my vxWorks box > to totally lose ethernet connectivity? Am I not doing something right > with the packets I recieve or not passing back the correct return > codes someplace? Any help would be greatly appreciated as I have been > unable to find a working example of Mux code anywhere I'm guessing your driver has run out of buffers from it's pool. In the hook routine, if you've sent the packet to your other task, you return TRUE. This tells the Mux that the hook routine has "swallowed" the packet, and no other processing needs to be done. Thus you either need to free the packet in your hook routine with netMblkChainFree(), or return FALSE so that the packet will still get sent up the stack and thus freed by the Mux. I guess it depends if you want your other task to get the official packet, or just a copy of it. What about if you have your hook installed but never send any packets from the machine you're interested in ? Then your interface should not get hosed. The fact that you can't ping out could still be due to the driver not having any buffers. Normally those Tx packets come from the system data pool, but if the driver does a copy to it's own buffers (due to caching, not wanting any chains, etc...) you'll fail because all the buffers will still be gone. Do you have source to the driver ? Are there any stats you can look at ? What version of vxWorks, platform, driver, etc... are you using ? Also, you don't have to use the Mux and bind a SNARF protocol. It still works fine if you just use EtherInputHookAdd. That's how it's done on SENS under T101 for DHCP. I think they changed it under T2, but it still works (who knows for how long though). hth, Dan Gold gold@ensemble.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: What's the Expected errno from msgQReceive(...,NO_WAIT) Date: Wed, 13 Mar 2002 12:18:48 -0800 From: Joe Durusau Organization: Lockheed Martin Corporation Message-ID: <3C8FB428.A9F17904@lmco.com> References: <3C8E660E.FD7E63E0@bitworkssystemsDELETETHIS.com> Jon Newbill wrote: > > I'm trying to determine what the expected errno response is when reading > a msg queue using no wait and the queue is empty. I expected to get a > S_objLib_OBJ_TIMEOUT error but am instead getting > S_objLib_OBJ_UNAVAILABLE. The reference manual gives no description of > any of these errors that I can find (is there someplace I've missed?) > and the msgQReceive() entry in the the reference manual only lists the > expected errno responses but not the conditions when each would occur. > > In particular the section on NO_WAIT says > > "return immediately, even if the message has not been sent" > > which appears to be a cut and past error in the manual since msgQReceive > doesn't send a message at all. > > Here's the call I'm using. > > rc = msgQReceive(dc2000_queue, (char *)profile_packet, 16, NO_WAIT); > > Thanks in advance > > Jon Newbill > jonUN@bitworkssystemsREMOVTHIS.com The man page on my system says S_objLib_OBJ_UNAVAILABLE - is set to NO_WAIT, and no messages are available. Mine's a bit old, yours might be different. Speaking only for myself, Joe Durusau --------------------------- Newsgroups: comp.os.vxworks Subject: VxWork RPC Date: Wed, 13 Mar 2002 09:59:55 -0800 From: "Tisson Mathew" Organization: Intel Corporation Message-ID: Hello All , Does anyone know why xdr_free could fail and cause a segmentation fault when freeing a union that's composed of a structure and an interger ? The structure contains variable length strings , intergers and double. Thanks in advance - -Tisson --------------------------- Newsgroups: comp.os.vxworks Subject: Need help with Technobox 2901 serial PMC on an MVME2100. Date: Wed, 13 Mar 2002 13:12:50 -0500 From: "James Perkins" Message-ID: References: I have an MVME2100 and I am using vxWorks 5.4. Yesterday I received a Technobox 2901 rs232 PMC. I expected it to come with drivers and/or directions. I got neither. From what I can gather I should use the ns16550 driver that came with my BSP. My MVME2100 board has an Intel 8250 onboard that provides one com port ( /tyCo/0 ). I want the PMC to provide /tyCo/1 and /tyCo/2. Anyone know of a set of directions or at least where to look? - -Jim --------------------------- Newsgroups: comp.os.vxworks Subject: Re: [Help Me] vxworks Simulator Date: 13 Mar 2002 10:16:48 -0800 From: saint_p@yahoo.com (Brian St. Pierre) Organization: http://groups.google.com/ Message-ID: <7363e2a5.0203131016.b997be2@posting.google.com> References: <88c8dc81.0203130006.759238fb@posting.google.com> tut_pharoh@yahoo.com wrote: > wrote: > > In solaris, vxworks simulator cannot load application program. > > How can i solve this problem? > > > > The problem is as follows : > > > > -> ls > > ppp_test.out [ ... ] > > -> ld < ppp.out > > can't open input 'ppp.out' > > errno = 0x1c0001 > > -> Of course it can't open "ppp.out", this file doesn't exist! Try: - -> ld < ppp_test.out - -Brian --------------------------- Newsgroups: comp.os.vxworks Subject: Re: What causes this message? Date: Wed, 13 Mar 2002 13:21:20 -0500 From: "doug dotson" Organization: Verio Message-ID: References: I'll double check that, thanks. "david howard" wrote in message news:e55797e4.0203130840.7c97ef25@posting.google.com... > "doug dotson" wrote in message news:... > > Greetings! > > > > When bringing up a shell using the "Launch Shell" button (->i), the > > shell starts up and then we get the following message: > > > > "Invalid C++ Constructor/Destructor strategy ...." > > > > or something similar (the developer decided to reinstall Tornado so > > I can't reproduce it now). Then the shell just keeps restarting over and > > over. Everything works fine on other hosts, just this problem on one. > > All Target Servers are identcal and the boot images are the exact > > same as well. And we are all pointing to the same target machine. > > I know I saw this once before months ago but I can't remember what > > the solution was. > > > > Thanks, > > Doug > > This happens to us if there is a mismatch between the downloaded image > and the image file that the target server is referencing. make sure > the target server is pointing at the same file. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Is it possible to change the priortiy of windsh Date: Wed, 13 Mar 2002 18:27:44 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C8F9A96.4050203@spamm.me.l8s.co.uk> References: <%n7h8.2999$5o.2232656@newsr2.u-net.net> <3C850A5B.3040106@spamm.me.l8s.co.uk> <0iTh8.7396$J3.1346@nwrddc01.gnilink.net> Matt Schuckmann wrote: > I tried his example but it doesn't work, I get a mesage "A host function > cannot be used as an argument" > Try running the 'ld' on the target? David --------------------------- Newsgroups: comp.os.vxworks Subject: Need help with Technobox 2901 serial PMC on an MVME2100. Date: Wed, 13 Mar 2002 14:04:27 -0500 From: "James Perkins" Message-ID: <_qNj8.97$Sk3.4010@llslave.llan.ll.mit.edu> I have an MVME2100 and I am using vxWorks 5.4. Yesterday I received a Technobox 2901 rs232 PMC. I expected it to come with drivers and/or directions. I got neither. From what I can gather I should use the ns16550 driver that came with my BSP. My MVME2100 board has an Intel 8250 onboard that provides one com port ( /tyCo/0 ). I want the PMC to provide /tyCo/1 and /tyCo/2. Anyone know of a set of directions or at least where to look? - -Jim --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Printing 64bit values Date: 13 Mar 2002 11:19:05 -0800 From: Joe Chung Message-ID: References: <900e9637.0203060746.2d1c1bda@posting.google.com> "doug dotson" writes: > "Joe Chung" wrote in message > > Let's just agree that we disagree on where to draw the line. > > Agreed. But I contend there should be no line in the first > place. Either offer useful advise or be quiet. Like I said. I feel my advice was more useful, and that yours was not (but I didn't, then go charging and swinging at you). You may not like my style, and it's a judgement call as you pointed out, but offering useful advice is what I did in my post. You should also follow your own advice, "Either offer useful advise or be quiet." Your initial message to me was not germane to the newsgroup nor to the original subject of this thread. Furthermore, we could've carried on the conversation privately, but you chose, initially, to post it publicly. > > I mean, holy cow, a project won't be finished on time cuz someone > > is waiting for an answer on Usenet, on the code to print 64 bit > > integers! > > That's his judgement call. I don't recall any part of his > request indicating that this was the case. Doug, it's your point I'm addressing. You're the one who said basically that many of us are seeking answers for work and that time is more important than impressing others. Carry that statement to a logical conclusion and you end up with an absurd situation which I describe above, of someone waiting on Usenet for a crucial work-related answer to a silly problem. > It's not my place to call their skill into question. My > background is of the "no such thing as a stupid question" > mantra. Incidently, I taught Computer Science at a university > for many years. We gave up on teaching bubble sort years > ago. So it wouldn't suprise me at all if someone wouldn't know > how to do it, but then again it would surprise me that someone > would actually use it. Ancient relic. Then you do appreciate how more and more lazy people are using Usenet (Internet in general) to do their homework right? I'm sure you'll see a lot questions posed in certain groups, like comp.lang.c, where a questioner is met with answers of "do your own homework". Yes, people are passing judgement everywhere. But I know better than to harrangue the answerers. I have a lot of respect for good teachers. They're the ones who teach that how to arrive at an answer is more important than the answer itself. > > Oh, the fact that your 3 liner is neither efficient nor safe > > in a small stack environment points to your willingness to > > help, > > Depends upon your definition of a small stack environment. If > you are operating that close to the limits then you have bigger > worries than how to print a number. Efficiency and safeness is > a matter of requirements. I agree with that statement in general. But efficiency and stack size is much more of a concern to the VxWorks, especially for a commonly used routine. There are many algorithms for doing things that are "cute" in recursive form but not practical in real life, especially in an RTOS situation. > > rather than to impress, right? > > Not sure where "impressing" someone enters the picture. And I You brought it in, in your previous post. Isn't it great that this silly debate is on public record in the archives of deja/google (maybe forever)? > have trouble seeing a function to print an integer as somehow > impressive. Now tell me that that little snippet of LISP at the > bottom of your post isn't there to impress us. Please reread your previous post. I'm just throwing your own word "impress" back at you. I never brought that word into my discussion. You did. By passing judgement on my intent. I state again and again that this code is trivial, but you said I was trying to impress. If you're going to start an argument with me (recall I didn't start this), then please keep your own argument straight! That little snipet of Elisp in my sig is designed to get around the spammers. It is also clear enough, so that people who don't understand [E]lisp can assemble my address correctly. And if they can't figure it out, then I don't want to talk to them in private. If you find that impressive, then thank you. It's more functional, to me. > Now get back to work before you get in trouble with your boss :) I don't know you and have no axe to grind with you. Please don't pass judgement on people, who don't have a quarrel with you. It's hypocrisy to pass judgement on my intention (saying that I'm trying to impress) while accusing me of passing judgement on others. By the way, how much respect do you show for that person, that you feel compelled to defend him, completely unasked? This whole thread has gone completely OT. It now has nothing to do with its subject heading, because you came in swinging at me, who was only trying to help. I'm sure you have better things to do with your time. I know I do. We've already agreed to disagree, and that's a rare achievement in Usenet. Maybe we can carry further discussions in private? - -jc - -- (apply 'concat (reverse (list "com" (char-to-string 46) "yahoo" (char-to-string 64) "joechung"))) --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Printing 64bit values Date: Wed, 13 Mar 2002 14:43:24 -0500 From: "doug dotson" Organization: Verio Message-ID: References: <900e9637.0203060746.2d1c1bda@posting.google.com> Get a life, Joe. "Joe Chung" wrote in message news:rpsbsds2s46.fsf@nospam.invalid... > "doug dotson" writes: > > > "Joe Chung" wrote in message > > > Let's just agree that we disagree on where to draw the line. > > > > Agreed. But I contend there should be no line in the first > > place. Either offer useful advise or be quiet. > > Like I said. I feel my advice was more useful, and that yours > was not (but I didn't, then go charging and swinging at you). > You may not like my style, and it's a judgement call as you > pointed out, but offering useful advice is what I did in my post. > > You should also follow your own advice, "Either offer useful > advise or be quiet." Your initial message to me was not germane > to the newsgroup nor to the original subject of this thread. > Furthermore, we could've carried on the conversation privately, > but you chose, initially, to post it publicly. > > > > I mean, holy cow, a project won't be finished on time cuz someone > > > is waiting for an answer on Usenet, on the code to print 64 bit > > > integers! > > > > That's his judgement call. I don't recall any part of his > > request indicating that this was the case. > > Doug, it's your point I'm addressing. You're the one who said > basically that many of us are seeking answers for work and that > time is more important than impressing others. > > Carry that statement to a logical conclusion and you end up with > an absurd situation which I describe above, of someone waiting on > Usenet for a crucial work-related answer to a silly problem. > > > It's not my place to call their skill into question. My > > background is of the "no such thing as a stupid question" > > mantra. Incidently, I taught Computer Science at a university > > for many years. We gave up on teaching bubble sort years > > ago. So it wouldn't suprise me at all if someone wouldn't know > > how to do it, but then again it would surprise me that someone > > would actually use it. Ancient relic. > > Then you do appreciate how more and more lazy people are using > Usenet (Internet in general) to do their homework right? I'm > sure you'll see a lot questions posed in certain groups, like > comp.lang.c, where a questioner is met with answers of "do your > own homework". Yes, people are passing judgement everywhere. > But I know better than to harrangue the answerers. > > I have a lot of respect for good teachers. They're the ones who > teach that how to arrive at an answer is more important than the > answer itself. > > > > > Oh, the fact that your 3 liner is neither efficient nor safe > > > in a small stack environment points to your willingness to > > > help, > > > > Depends upon your definition of a small stack environment. If > > you are operating that close to the limits then you have bigger > > worries than how to print a number. Efficiency and safeness is > > a matter of requirements. > > I agree with that statement in general. But efficiency and stack > size is much more of a concern to the VxWorks, especially for a > commonly used routine. > > There are many algorithms for doing things that are "cute" in > recursive form but not practical in real life, especially in an > RTOS situation. > > > > rather than to impress, right? > > > > Not sure where "impressing" someone enters the picture. And I > > You brought it in, in your previous post. Isn't it great that > this silly debate is on public record in the archives of > deja/google (maybe forever)? > > > have trouble seeing a function to print an integer as somehow > > impressive. Now tell me that that little snippet of LISP at the > > bottom of your post isn't there to impress us. > > Please reread your previous post. I'm just throwing your own word > "impress" back at you. I never brought that word into my > discussion. You did. By passing judgement on my intent. > > I state again and again that this code is trivial, but you said I > was trying to impress. If you're going to start an argument with > me (recall I didn't start this), then please keep your own > argument straight! > > That little snipet of Elisp in my sig is designed to get around > the spammers. It is also clear enough, so that people who don't > understand [E]lisp can assemble my address correctly. And if > they can't figure it out, then I don't want to talk to them in > private. If you find that impressive, then thank you. It's more > functional, to me. > > > Now get back to work before you get in trouble with your boss :) > > I don't know you and have no axe to grind with you. Please don't > pass judgement on people, who don't have a quarrel with you. > It's hypocrisy to pass judgement on my intention (saying that I'm > trying to impress) while accusing me of passing judgement on > others. > > By the way, how much respect do you show for that person, that > you feel compelled to defend him, completely unasked? > > This whole thread has gone completely OT. It now has nothing to > do with its subject heading, because you came in swinging at me, > who was only trying to help. I'm sure you have better things to > do with your time. I know I do. > > We've already agreed to disagree, and that's a rare achievement > in Usenet. Maybe we can carry further discussions in private? > > -jc > -- > (apply 'concat (reverse (list "com" > (char-to-string 46) "yahoo" > (char-to-string 64) "joechung"))) --------------------------- Newsgroups: comp.os.vxworks Subject: Re: [AE] What is the bootApp entry point in RAM? Date: Wed, 13 Mar 2002 11:56:14 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <3C8F757A.6050403@spamm.me.l8s.co.uk> When you are building a ROM version of code your start point is romInit, not sysInit. Remember there are two usrInit() in VxWorks target/config directory. One is in bootConfig.c. The other in usrConfig.c. The bootConfig.c usrInit gets called by romStart which is called by romInit. The usrConfig usrInit gets called by sysInit. The story behind all this a little too complex and involved. But there you have it. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Should the IP header be 4 bytes(long word) align? Date: Wed, 13 Mar 2002 12:10:59 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <1d411918.0203130023.5d5db610@posting.google.com> <3C8F42DB.8050601@spamm.me.l8s.co.uk> The portability rule is that VxWorks IP layer will expect the beginning of IP header to be 4 byte aligned. It is not just efficiency issue. It has to do with alignment problems that can happen on many RISC architecture CPUs. If beginning of IP header is not properly aligned, you will get alignment exceptions on RISC CPUs such as MIPS, SPARC, etc. Largely this is because BSD stack likes to cast a mbuf to a struct ip pointer and access the data. This is a rather messy problem when you are doing PPPoA or PPPoE or worse yet PPPoE over ATM. Or L2TP over PPPoE over ATM. :-) I am not kidding. Even just with PPPoA you have several incompatible ways of doing PPPoA (VC-multiplexed, LLC encapsulated, HDLC + LLC, etc.). Handling all of these cases becomes a challenge in terms of alignment, especially since we want to avoid copying. The trick is to avoid copying for all these cases where extra bytes get used for encapsulating packets, thereby throwing off your nice alignments. How do you do that without copying? There are methods for dealing with all of these cases but it ain't pretty. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: ln97xEnd - ring buffer size Date: Wed, 13 Mar 2002 12:18:04 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <9d082700.0203120647.5b0439aa@posting.google.com> <3C8E2177.D0B3BA2A@varndellengineering.com> If this device driver is based on LANCE driver, then probably 128 limit is derived from the fact that original LANCE had 128 limit on the descriptors. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: A question about ifunit( ) && extern struct ifnet *ifnet? Date: Wed, 13 Mar 2002 12:21:06 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <8cd11808.0203111953.52ac6949@posting.google.com> <4a7f0d21.0203120006.3d87515c@posting.google.com> <8cd11808.0203121841.70cd9f8d@posting.google.com> <6ab3109fcd959d946780d1e4a7c60845.77030@mygate.mailgate.org> There is a global pointer variable called ifnet (of type struct ifnet *). You can do: for (ifp = ifnet; ifp; ifp = ifp->if_next) to get the whole list of devices. The first one is pointed by ifnet. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: BSD Ethernet Driver Date: Wed, 13 Mar 2002 12:26:32 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <6847c39a.0203072126.4cc28aaf@posting.google.com> <6847c39a.0203080206.2515b5ff@posting.google.com> <3C890057.E551DBDA@varndellengineering.com> <3c891c2c$1@brateggebdc5.br-automation.co.at> <3C8DE54A.50807@spamm.me.l8s.co.uk> <6847c39a.0203122047.16035284@posting.google.com> <3C8F404D.7C2C7538@varndellengineering.com> The number 1 is a good observation. It illustrates the latency vs. throughput issue. Depending on your hard realtime requirements you should tune the behavior of your driver in that area. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Posix semaphore question Date: 13 Mar 2002 20:28:55 GMT From: Denis Perelyubskiy Message-ID: References: <3C8F7FE7.4DD956E1@spider.com> * Christopher Davidson-Rose [03-Wed-02 08:35 -0800]: [...] > Are the posix semaphore functions (sem_***) callable from > interrupt context. I am not sure if you're asking about taking or giving a semaphore. If taking, then you can not take a semaphore when you are inside of an interrupt... You can, however, give semaphores... denis - -- if you want to reply by mail, please tweak my address in a reasonable way. sorry for the inconvenience. --------------------------- Newsgroups: comp.os.vxworks,comp.sys.powerpc.tech Subject: ATM PCR (Peak Cell Rate) limit exceeded when PPC cache enabled? Date: Wed, 13 Mar 2002 22:07:42 +0100 From: "Mads Bligaard Nielsen \(M@H\)" Organization: Ericsson Diax (DXD), Mobile@Home Message-ID: Hi, We are using the MPC8255A (200/133/66Mhz) to support both ATM (FCC1) and FastEthernet (FCC2). We use VxWorks 5.4 but have fixed some bugs in the supplied MOTFCCEND & ATM-SAR Drivers. The UTOPIA-2 bus is clocked at 16 Mhz and we use multi-PHY (8). We currently have (at least:-) three problems: 1) When we enable the PPC instruction and data cache, we have problems when we use AAL5/UBR to send approx. 300 kbytes on AAL5. It seems like the PCR is exceeded (UBR traffic). The AAL5 download speed changes from around 8 Mbit/s to 73 Mbit/s, but PCR is configured to allow max. 8192000 BPS. - -TRC sarPQIIChChipInit: pCh->TctStatus=0x2 (before update)(sar_pqiichci.c#177,xxxDriver#0xd00678) - -TRC sarPQIIChChipInit: pCh->TctStatus=0x13050002 (after update)(sar_pqiichci.c#186,xxxDriver#0xd00678) - -TRC sarPQIITctInit: PcrInSlots=1.000000, PcrFraction=0.000000, LineRate=8.192000, Pcr=8.192000(sar_pqiitct.h#247,xxxDriver#0xd00678) - -TRC sarPQIITctInit: PriSlots=195, Cps=1(sar_pqiitct.h#248,xxxDriver#0xd00678) - -TRC InBandManagement: using atmChannel=0xe87a88(ibm.cpp#558,xxxDriver#0xd00678) - -TRC fwImage Installed: loadTime=0.04 [s] (dT=4), sizeInBytes=365908, kbitsSec=73181(xxxxDriver.cpp#408,xxxxDriver#0xd00678) 2) When we configure AAL5/UBR channels for data traffic we cannot utilise the bandwidth (2 Mbit/s) unless we change the PCR for these channels as follows: //TODO: Here it seems like the PCR should be in BPS?? //Aal5ChannelParam.AtmChannelParam.Pcr = (double)LineRate / (double)1000000; Aal5ChannelParam.AtmChannelParam.Pcr = LineRate; // Should be in BPS - i.e. not "((double)LineRate / (double)1000000)" 3) It seems like the ATM FCC can "disturb" the Ethernet transmitter - without any underrun or other error detected. When ATM is idle we can easily run a TCP based test on Ethernet at e.g. 2*10Mbit/s (duplex) without any errors. However when we starts using one ATM-channel (1 PHY) then the contents of some of the packets transmitted via Ethernet starts to become crappy (but length ok). This occurs before we really starts to "heat up" the ATM (after all the Idle Cells are still the most frequent cells - and we only run UTOPIA at 16 Mhz). Any ideas? Thanks, Mads Bligaard Nielsen System Engineer, Core Software Development Ericsson Diax, http://dxd.ericsson.se strip "NOJUNK." to reply via email... --------------------------- Newsgroups: comp.os.vxworks Subject: Re: tNetTask takes too long? Date: Wed, 13 Mar 2002 15:54:38 -0600 From: Dinker Charak Organization: Fermi National Accelerator Laboratory Message-ID: <3C8FCA9E.849D1DC2@fnal.gov> References: Well, > Refreshing: We had a strange problem of tNetTask taking around 4.5 ms each > 5 sec. It turns out that each 5 sec the miiLib adds a job to tNetTask for > checking if the PHY is connected or not. It turns out that it is during > this reading there is an abnormal delay. The MII driver is the std miiLib > from vxworks. Technical service at Windriver is not too excited to solve the issue inspite of the fact they too were able to replicate the problem. Am interested in knowing if anyone of you out there has this problem too. It is observed in VxWorks 5.4.2 kernels on MV2400 and MV2301 (at least). I arote a small test snip that will attach a hook to the task switch and in that hook calaulate time spent in each task. If it is unusually long, rememeber the time. If possible run this code on your test setup with just VxWorks standards tasks running (of course the tNetTask too), not telnet session open and send me the dump. I am particularly interested in difference observed in vxWorks 5.4 and vxWorks 5.4.2. If you want can explain the information conveyed by the dump too. Do send output of sysGetBusSpd too. Thanks for you help, Dinker - -> sysGetBusSpd value = 67 = 0x43 = 'C' #include #include #include #include #include #define maxArray 8000 /* size of array of dummy data */ #define maxHist 100 /* size of histogram array */ #define maxLog 10 /* size of anomaly log */ #define binThresh 20 /* anomalously long time (2 ms) in bin units */ typedef struct LogEntry_s { /* entry structure for anomaly log */ int delt; int tick; } LogEntry; int hist[maxHist]; /* histogram array */ LogEntry logRec[maxLog]; typedef struct _IdStruct { unsigned long int TaskId; unsigned long int ElapsedTime; } id_Dump; id_Dump idDump[64]; unsigned int total_records; void switchHook(WIND_TCB *pOld, WIND_TCB *pNew) { static int counter=0; unsigned long int id = 0, start = 0; start = sysTimeBaseLGet(); total_records++; idDump[counter].TaskId = (unsigned long int)(pOld->pStackBase); idDump[counter].ElapsedTime = start - idDump[counter].ElapsedTime; counter++; if (counter >= 64) counter=0; idDump[counter].ElapsedTime = start; } /* The following command should make this run as a task, after it hgas been ld'ed. - -> taskSpawn("tDummy",130,0,32768,dummy,60000,0,0,0,0,0,0) */ void dummy(int nTimes) /* Keep CPU busy, watching for variations in execution time of dummy work */ /* maxArray should be sized to cause dummy work to last about 1 ms */ { int i, j, elapsed, bin; volatile int start, end, ticks, baseticks; int iLog = 0, logTotal = 0; int c[maxArray]; volatile int r[maxArray]; /* support for dummy work */ taskSwitchHookAdd(switchHook); for (j = 0; j < maxHist; j++) hist[j] = 0; /* clear histogram array */ for (j = 0; j < maxArray; j++) c[j] = j; /* fill array of dummy data */ baseticks = tickGet(); for (i = 0; i < nTimes; i++) /* perform dummy work many times */ { start = sysTimeBaseLGet(); /* PowerPC Time Base register */ for (j = 1; j < maxArray; j++) r[j] = c[j]*c[j-1] + i; /* dummy work */ end = sysTimeBaseLGet(); elapsed = end - start; /* elapsed time in 16.666 MHz units */ bin = elapsed / 1666; /* convert to 100 us bin size */ j = bin; if (j < 0) j = 0; if (j >= maxHist) j = maxHist - 1; hist[j]++; /* add to histogram */ if (bin > binThresh) { /* large enough to be considered an anomaly */ ticks = tickGet(); /* log time as tick counter from kernel */ logRec[iLog].delt = bin; /* elapsed time in 100 us units */ logRec[iLog].tick = ticks - baseticks; /* kernel ticks in 60 Hz units */ iLog++; if (iLog >= maxLog) iLog = 0; /* logRec is circular buffer */ logTotal++; /* count total entries ever logged */ } } printf("\n"); for (i = 0; i < maxHist; i = j) { for (j = i; j < i + 10; j++) { (void)printf("%06d ", hist[j]); } printf("\n"); } for (i = 0; i < maxLog; i++) printf("%010d %010d\n", logRec[i].delt, logRec[i].tick); printf("\n"); for (i = 0; i < 64; i++) { printf("%x : %lu\n", idDump[i].TaskId, idDump[i].ElapsedTime); /* printf("%x : %lu\n", idDump[i].TaskId, idDump[i].ElapsedTime); */ } printf("%lu\n", total_records); taskDeleteHookDelete(switchHook); return; } Dinker Charak wrote: > > Hi All, > > Refreshing: We had a strange problem of tNetTask taking around 4.5 ms each > 5 sec. It turns out that each 5 sec the miiLib adds a job to tNetTask for > checking if the PHY is connected or not. > > It turns out that it is during this reading there is an abnormal delay. > > Anyone any pointer or suggestion what could be wrong? > > The WRS support person's system does not show the delay. But two of our > systems on different sub-nets show the problem (one is a MV2301 and another > MV2400). > > We are running vxWorks 5.4.2 with June 2001 driver update installed. > > Thanks, > Dinker --------------------------- Newsgroups: comp.os.vxworks Subject: Re: HELP about sysAuxClkRateSet() and BSP ! Date: 14 Mar 2002 00:12:06 GMT From: merleebene@aol.com (MerleEbene) Organization: AOL http://www.aol.com Message-ID: <20020313191206.24447.00000981@mb-df.aol.com> References: <5c074538.0203111923.534ff9d2@posting.google.com> Allen, In theory you could go up to 1000 Hz without any noticeable impairment. We were able to run at 400 Hz on a PPC 603e. We used the system clk not the aux; It should work at the rates you specified. On a second thought go with PPC just in case you need any help in the future. I am not an employee of Motorola. Good luck!! Lazare --------------------------- Newsgroups: comp.os.vxworks Subject: Re: [AE] What is the bootApp entry point in RAM? Date: Wed, 13 Mar 2002 19:13:12 -0500 From: "David Masse" Organization: Universite du Quebec Message-ID: References: <3C8F757A.6050403@spamm.me.l8s.co.uk> > When you are building a ROM version of code your start point is romInit, not > sysInit. Remember there are two usrInit() in VxWorks target/config > directory. One is in bootConfig.c. The other in usrConfig.c. The > bootConfig.c usrInit gets called by romStart which is called by romInit. > The usrConfig usrInit gets called by sysInit. There are no bootConfig.c and usrConfig.c anymore in VxWorks AE. usrInit has been moved to prjConfig.c. When I talked about a ROM version, I talked about a full VxWorks AE system ROM image that contains the boot loader and a VxWorks image that will be copied in RAM, not a ROM image that executes in ROM. In fact, my question was what is executed after romStart(). Is it different for a bootApp and a VxWorks AE ROM system image? I used the nm and objdump tools on my image (bootApp_romCopy) but they gave me only the boot objects symbols and not the vxWorks boot kernels image. - -- David > The story behind all this a little too complex and involved. But there you > have it. > > -- > Hwa Jin Bae > mailto:hjb@pso.com > http://www.pso.com > > > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: OPENDIR Help Date: 13 Mar 2002 16:23:33 -0800 From: mpalone@gotuit.com (Mike Palone) Organization: http://groups.google.com/ Message-ID: <971e6b8f.0203131623.3cf32e91@posting.google.com> References: <971e6b8f.0203092108.3d502241@posting.google.com> <971e6b8f.0203101438.300fe42c@posting.google.com> <971e6b8f.0203110612.f95dd7d@posting.google.com> <3C8CC14E.3E10877D@notifier-is.net> <971e6b8f.0203111150.156e92e5@posting.google.com> <3C8D11DE.A3F336BE@notifier-is.net> <971e6b8f.0203121115.738db6a6@posting.google.com> Hi. Thanks for your response. We are using opendir for determining if certain directories exist, and if so, enumerating files and directories within a given directory. The number of files and directories is variable and we do not know the names of the files and directories...this is why we need readdir to do the enumeration for us. I suppose there is a way to manage this using ramdisks, but it feels like a chicken and egg problem unless we copy *.* to ramdsk and then do the opendir and readdir. Mike "Hwa Jin Bae" wrote in message news:... > Mike, creating a RAM Disk and DOS FS on it is simple. For example, from > VxWorks shell... > > -> ramDrv() > -> xyz1 = ramDevCreate(0, 256, 128, 128, 0) > -> xyz2 = dosFsMkFs("/tmp, xyz1) > > Then you can copy stuff into it from your NT pass FS. > > -> chdir ("your_nt_passfs:/some/directory/") > -> copy ( "somefile.txt", "/tmp/somefile.txt") > > etc. > > By the way, the issue with dirLib and netDrv vs. other file systems in > VxWorks (DOS, NFS, etc.): > > 1. netDrv is a kind of emulation of filesystem over FTP or RSH. To > accomplish directory listing over this, protocol specific packets sent to > the server. For FTP, NLST packet is sent to server, for example. netDrv > does not support concepts like file system stat and various ioctl's required > by something like dirLib. Actually, it is possible to implement all the > necessary ioctl's and make netDrv compatible with other filesystems, but it > was never done. > > 2. other filesystems do support generic ioctls to allow dirLib and other > things to work. > > 3. The reason for above is historical, and it is not a desirable situation > as you can see. The real problem stems from the fact that VxWorks really > does not have properly layered design for implementing filesystems. The > filesystems in VxWorks are just I/O drivers masquerading as filesystems. > > Leonid probably has more details on all of the above. --------------------------- Newsgroups: comp.os.vxworks Subject: VxWorks WebServer for ARM can not work correctly? Date: 13 Mar 2002 16:35:00 -0800 From: xiaohua.zhang@163.com (xiaohua) Organization: http://groups.google.com/ Message-ID: I add the WebServer in the Bootable Application. Then I download it to the target board. It can work well in the Intel X86. But it cannot work in the ARM target board. It display the following error information: - -------------------------------------------- Data abort Exception address: 0x0005c930 Current Processor Status Register: 0x20000013 Task: 0x353a50 "tHTTPd" - --------------------------------------------- Can anybody help me? --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Should the IP header be 4 bytes(long word) align? Date: 13 Mar 2002 16:37:30 -0800 From: lihuapeng@21cn.com (DragonSpring) Organization: http://groups.google.com/ Message-ID: <1d411918.0203131637.2dd9ebc1@posting.google.com> References: <1d411918.0203130023.5d5db610@posting.google.com> <3C8F42DB.8050601@spamm.me.l8s.co.uk> David Laight wrote in message news:<3C8F42DB.8050601@spamm.me.l8s.co.uk>... > Leonid Rosenboim wrote: > > > Dragon Dear, > > > > Your observation are very true with respect to the existing drivers. > > The alignment is not mandatory, but would typically improve performance of > > the IP layer processing. The significance of this performance improvement > > depends > > on the hardware architecture and packet rate. At times, pureposeful > > alignment could actually decrease performance if the "byte shift" operation > > costs more then the > > subsequent performance gain. > > If possible get the ethernet hardware to place the rx packets onto > a 4n+2 boundary. Then no extra copy is required. > > David No, I can't make 4n+2 boundary. The HDLC controller requires 4n boundary. And we also use MPC860 FEC as Ethernet controller. This ethernet hardware also requires 4n boundary. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Should the IP header be 4 bytes(long word) align? Date: 13 Mar 2002 16:40:07 -0800 From: lihuapeng@21cn.com (DragonSpring) Organization: http://groups.google.com/ Message-ID: <1d411918.0203131640.5619bf@posting.google.com> References: <1d411918.0203130023.5d5db610@posting.google.com> "Leonid Rosenboim" wrote in message news:... > Dragon Dear, > > Your observation are very true with respect to the existing drivers. > The alignment is not mandatory, but would typically improve performance of > the IP layer processing. The significance of this performance improvement > depends > on the hardware architecture and packet rate. At times, pureposeful > alignment could actually decrease performance if the "byte shift" operation > costs more then the > subsequent performance gain. > So make the thing work first, and then try both methods under heavy > simulated traffic load, and see which gets you best packet rate. > > Leonid Why would alignment typically improve preformance of the IP layer processing? Is it the case of using hardware cache? --------------------------- Newsgroups: comp.os.vxworks Subject: Re: How to preform periodical task except sysAuxClkRateSet() Date: 13 Mar 2002 16:43:25 -0800 From: allencyl@my-deja.com (Allen Chang) Organization: http://groups.google.com/ Message-ID: <5c074538.0203131643.765b42c2@posting.google.com> References: <5c074538.0203122254.56279c06@posting.google.com> Hello Leonid, The reason I ask is because the freuqency I want to set is not all supported by sysAuxClk. So far as I know in the x86 platform, the auxClk only support 2**1, 2**2, 2**3 ~ 2**13 Hz, if I set the frequency as 240 Hz, it will NOT give me the 240Hz timer. The frequency I want is 64Hz, 256hz, 320Hz, and 80*n(n=1~3) Hz. And I know that the 320, 80, 160, 240 Hz will not execute accurately, that is what my question. Regards, Allen Chang "Leonid Rosenboim" wrote in message news:... > There are basically these methods for periodical processing, > each is a tradeoff between timing accuracy (jitter) and processing > time, and wakeup freqnecy. > > Suppose you create a function, WakeMeUp(), which would be invoked > with the frequency required for processing. > If processing time is long (e.g. >200 microsec), there should be a dedicated > task tperforming the proessing, and WakeMeUp would only Give a semaphore on > which the task is Pending. If the processing is short, it can be done within > WakeMeUp. The deditated task's priority is too a tradeoff of the same sort - > the higher priority would give less jitter and lower priority is more > appropriate for longer processing time (See about Rate Monolithic > Scheduling) > > As to the method to invoke WakeMeUp (which could run in ISR) is one of > these: > + Use the system clock via wdLib, if period is multiple (or can be made > multiple) of the system clock rate > + Use sysAuxClk if dependency of processing frequency and system clock can > not be acheived. > > I could provide you with specific advise, but you omitted the frequency of > processing you require. > > Leonid --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Using STL map type Date: 14 Mar 2002 01:37:54 GMT From: merleebene@aol.com (MerleEbene) Organization: AOL http://www.aol.com Message-ID: <20020313203754.24447.00000994@mb-df.aol.com> References: Hi!!! Try the following: add the following directive after the #include // #pragma warning This might just eliminate the error. Good luck Lazare --------------------------- Newsgroups: comp.os.vxworks Subject: how do I program device driver on vxworks Date: 13 Mar 2002 17:40:34 -0800 From: tang-xiao-ming@263.net (xmtang) Organization: http://groups.google.com/ Message-ID: <6fe967ba.0203131740.7cda7c64@posting.google.com> hi,all I'm just the beginner(outsider somewhat).I want to know how to program the specific device driver on vxworks.Who can give me some advice or related resouces. Generally but sincerely. Thanks in advance --------------------------- Newsgroups: comp.os.vxworks Subject: Re: [AE] What is the bootApp entry point in RAM? Date: Wed, 13 Mar 2002 17:50:17 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <3C8F757A.6050403@spamm.me.l8s.co.uk> I should have clarified before, but objdump and nm won't show you the information about the code in binArray. That stuff is just hex code extracted via binToAsm utility, then compiled. No symbol info in there but the binArray name. The prjConfig stuff is essentially the same kind of stuff as bootConfig and usrConfig stuff. The same is true as before. usrInit is the one that will be called. But before that happens BSS will be cleared. If you have errors in memory configuration (RAM_HIGH_ADRS, etc.) then you won't be successful in reaching your BSP. Make sure your sysHwInit() is being called and correctly executed in your BSP. And before even that happens, you should make sure usrInit itself is being called. If you want to debug this in a systematic way, you should examine your Makefile generated by the Tornado project. You will see lines like "include $(TGT_DIR)/h/make/rules.something" in the Makefile. You should read the rules files in the target/h/make directory to see exactly how the binArray stuff is generated (via binToAsm) and what the entry point is for the final output. Right before binToAsm is called to extract the code from temporary objects (something like tmp.bin) you should use that object (tmp.o or tmp.bin) to disassemble. Better yet, just look at how tmp.o was built in the first place. You will see that it is built do call romInit -> romStart -> usrInit. That is, unless things have changed so much since the last time I looked at all this stuff. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Read on serial does not block Date: 13 Mar 2002 17:59:00 -0800 From: bhorowit@cs.berkeley.edu (Benjamin Horowitz) Organization: http://groups.google.com/ Message-ID: Hi, We are having a difficulty with doing a read() on a serial port. Once per second, computer 1 writes "hello hello\n" to /tyCo/0. This serial port is cabled to /tyCo/0 on computer 2 using a null modem cable. Computer 2 does the following: 1. open /tyCo/0 2. flush /tyCo/0 ( using ioctl(serialfd, FIOFLUSH, 0) ) 3. check the number of unread bytes in /tyCo/0 ( using ioctl(serialfd, FIONREAD, &nbytes) ) 4. read 12 bytes from /tyCo/0 ( using read(serialfd, data_in, 12) ) 5. check the number of unread bytes in /tyCo/0 ( using ioctl(serialfd, FIONREAD, &nbytes) ) In steps 3 and 5, the number of bytes available is always 0. However, in step 4, the number of bytes read is always 1! Obviously, read() can return less than 12 -- but why should it return 1 when no bytes are available? A return of 0 would indicate end-of-file, but why doesn't read() just block? Does anyone have an idea about what's causing this? Before we read(), should we be doing a select() to block until some input is available? Thanks, Ben --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Page Fault for help Date: 13 Mar 2002 18:04:04 -0800 From: kang.yonghong@mail.zte.com.cn (K.YH) Organization: http://groups.google.com/ Message-ID: References: <3C8E07F7.4050609@spamm.me.l8s.co.uk> <3C8F422D.30607@spamm.me.l8s.co.uk> <3C8F5F9B.6070605@spamm.me.l8s.co.uk> Maybe i don't describe my problem in detail,i will supply more . Firstly, the target is a pc386 with NE2000 netcard,and its RAM is 64MB. I boot vxworks from DOS OS,that is DOS firt starts up ,and then it boot the vxworks.If i don't include the application project in vworks image,the vxworks image works successfully.The way that the bootable project is created is as follows: a. An application project is build a archive as *.a; b. A bootable vxworks image is created ,with a main function of the application project is referenced is its usrAppInit.c. And then in the Build MACRO LIBS includes the application lib *.a; I simulated successfully in vxsim in this way. But it didn't work,when i ported to the target pc386. Why? Thanks. David Laight wrote in message news:<3C8F5F9B.6070605@spamm.me.l8s.co.uk>... > Michael Lawnick wrote: > > > Stop, stop, hooooooooo David ! > > > >>>I originally think that vxworks image is overwriting RAM_HIGH_ADDR and > >>>hence the boot loader code,so i change the RAM_LOW_ADRS to 00358000 > > >>>and the RAM_HIGH_ADRS is 00008000(not changed). > > > >> vxworks image size is 1.65MB, > > > >>What was RAM_HIGH_ADRS before? > > > He's got a X86 arch (see above), where all is the other way round. > > > On X86 RAM_HIGH_ADRS points into low mem i.e. the lower 640kb that > > > BIOS can access. RAM_LOW_ADRS points to the region higher than 1Mb. > > So X86 never has the (over-)loading problem of 68k and PPC. > > (ok some conjecure) > > Lets see, that (probably) means you have RAM from 0 to 640k and > 1Mb upwards. > > If the 'bootrom' code is small enough it could be loaded between > 32k and 640k - probably ok unless you try to rebuild it on a system > with lots of stuff included - the boot rom doesn't have it's own > list of features :-( > > The main image could be loaded anywhere above 1Mb (say 0x101000) > giving plenty of space. The area to the top of free memory > would be the heap space. I guess a big chunk of 1k..640k could > be added with memPartAddToPartition(). > > In which case RAM_LOW_ADRS of 0x358000 (3.5Mb) doesn't seem > right at all! Places the vxWorks image right in the middle > of DRAM. Certainly hopeless if you have 4Mb! > > FWIW my system was ARM, I used a compressed rom image. > So the uncompress code was linked to RAM_HIGH_ADRS and > the vxWorks image to RAM_LOW_ADRS. > > David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Should the IP header be 4 bytes(long word) align? Date: Wed, 13 Mar 2002 18:11:42 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <1d411918.0203130023.5d5db610@posting.google.com> <3C8F42DB.8050601@spamm.me.l8s.co.uk> <1d411918.0203131637.2dd9ebc1@posting.google.com> A lot of recent hardware designs seem to insist on 4 byte aligned pointers for receive DMA buffer pointers. TX side is less stringent (if that were the case, software will have to employ even more tricks) typically. However, my recollection of MPC860 style Ethernet using one of the SCC's is that RX buffer pointers can be 16bit aligned (not 32bit). That means it is possible to do 4n+2. But it is useful to consider general cases where the RISC host CPU must interface with network interfaces that require 32bit alignment in buffer pointers (RX side). It helps for cases where you have single byte encapsulation as well. How does one solve this? One way (less desirable) is to do some copying. You don't have to copy the whole IP packet. You can just copy first 20 bytes typically (IP header) into a seperate small mbuf and create a mbuf chain containing the complete IP packet and send upwards. The stack will not complain, since you met the requirements. Another way (better) is to use multiple descriptors per packet. This doesn't always work well, but when it works it works wonders. The idea is to allocate 2 buffers and assocate with 2 descriptors in the RX DMA ring. For every ethernet frame, controller will fill two descriptors. The first will have the MAC header. The second will have IP packet. You can extend this concept to handle almost all kinds of encapsulations. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: [AE] BSP and Device Driver Development Date: 13 Mar 2002 18:14:42 -0800 From: strick@hiwaay.net (BS) Organization: http://groups.google.com/ Message-ID: Hello, Has anyone had luck building a VxWorks AE BSP from scratch? I am trying to intergrate several device drivers into a new BSP and I am having lots of problems using these drivers from a user Protection Domain. Would anyone be willing to share experiences with device driver integration into the AE BSP's? Thanks --------------------------- Newsgroups: comp.os.vxworks Subject: try(void) Date: 13 Mar 2002 18:29:32 -0800 From: shuiziliu@sina.com (lily) Organization: http://groups.google.com/ Message-ID: void --------------------------- Newsgroups: comp.os.vxworks Subject: Re: How to preform periodical task except sysAuxClkRateSet() Date: Wed, 13 Mar 2002 18:46:29 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <5c074538.0203122254.56279c06@posting.google.com> <5c074538.0203131643.765b42c2@posting.google.com> You can use TSC. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: select() with General Protection Fault Date: 13 Mar 2002 18:56:46 -0800 From: shuiziliu@sina.com (lily) Organization: http://groups.google.com/ Message-ID: Hi all, I am doing porting from Linux to VxWorks. I use select to listen multiple socket fds. The program is running normal when my sockets are sending and receiving messages. But at the end of the program, when one of the socket is not sending just receiving, a General Protection Fault are produced in the select. And the parameters are list below: before the select: fd_limit=12; fd_select_list.fds_bits[0]=2304; num_fd=1; select_timeout.tv_sec=2; select_timeout.tv_usec=0; num_fds = select(fd_limit, &fd_select_list, (fd_set *)0, (fd_set *)0, (select_timeout.tv_sec== 0 && select_timeout.tv_usec == 0)?(struct timeval *)0:&select_timeout); after the select: fd_select_list.fds_bits[0]=2048; num_fd=1; .....(no socket fds are be opened and closed through the process) the program is waiting for other socket fds. I have print out select parameter status when these soecket fds running before.But it is the same as what I have listed. So it seems nothing is wrong. But why a GPF occur when select excute? This is the GPF info: Exception number 0: Task: 0x4bbecd0 (t3) General Protection Fault Program Counter: 0x00000000 Status Register: 0x00010246 I am using Tornado Prototyper in Window 2000. Could anybody help me? Thanks in advance. --------------------------- Newsgroups: comp.os.vxworks Subject: help for hard disk Date: 13 Mar 2002 19:15:20 -0800 From: winter_lin2000@yahoo.com.cn (winter) Organization: http://groups.google.com/ Message-ID: <7863b471.0203131915.2439e089@posting.google.com> hi vxworks, I want use hard disk in my embedded system,and my cpu is mpc860. my question is: 1.How should I connect hard disk to my mpc860 and what circuit is need in my system? Which port may I use?(bus interface , parallel i/o port or other ports) 2.If i want my disk is compliant with win98/win2000,what should I do? 3.My Os use Vxworks,what job need to do,can you give me some reference? I am a newer,and need your help. Thanks. --------------------------- Newsgroups: comp.os.vxworks Subject: Binary Serial Communications Date: Thu, 14 Mar 2002 04:32:06 GMT From: "George Ross" Organization: RoadRunner - TampaBay Message-ID: I am trying to open a serial connection between two ppcs so that I can send 8bit binary messages between them. Since I'm using 8bit binary I figure I can't use SW handshaking. The HW handshaking seems not to be implemented i.e. the data was sent without the control lines being hooked up just Tx, Rx, gnd. I can get data across the serial connection but can't seem to control it. I am also trying to put a few other things in the serial stream (modem, phone, etc) so I need handshaking to talk to them. Any ideas? Anyone know a good way to send 8bit binary with software handshaking? --------------------------- Newsgroups: comp.os.vxworks Subject: Re: ln97xEnd - ring buffer size Date: 13 Mar 2002 22:14:01 -0800 From: fillmore2@arcor.de (Achim) Organization: http://groups.google.com/ Message-ID: <9d082700.0203132214.4b5f6089@posting.google.com> References: <9d082700.0203120647.5b0439aa@posting.google.com> <3C8E2177.D0B3BA2A@varndellengineering.com> "Hwa Jin Bae" wrote in message news:... > If this device driver is based on LANCE driver, then probably 128 limit is > derived from the fact that original LANCE had 128 limit on the descriptors. That's probably the reason where the restrictions in the driver code come from. But: The controller itself supports up to 512 descriptors - we have it working with 512/128 rx/tx descriptors in a non-vxworks environment. I've tried to change the obvious driver settings, but it doesn't work... - so I suspected that there are more restrictions in somwhere in the driver code than the rmt_max/tmd_max from ln97xEnd.h Achim. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: A question about ifunit( ) && extern struct ifnet *ifnet? Date: Thu, 14 Mar 2002 06:22:20 +0000 (UTC) From: "Ramesh Krishnan" Organization: Mailgate.ORG Server - http://www.Mailgate.ORG Message-ID: <42687eb21d35f68d6655b8afc6e6d759.77030@mygate.mailgate.org> References: <8cd11808.0203111953.52ac6949@posting.google.com> <4a7f0d21.0203120006.3d87515c@posting.google.com> <8cd11808.0203121841.70cd9f8d@posting.google.com> <6ab3109fcd959d946780d1e4a7c60845.77030@mygate.mailgate.org> "Hwa Jin Bae" wrote in message news:u8vd80oh5vhh65@corp.supernews.com... Hi Hwa, Thanks for the response. It worked. Thanks, Ramesh > There is a global pointer variable called ifnet (of type struct ifnet *). > > You can do: for (ifp = ifnet; ifp; ifp = ifp->if_next) to get the whole > list of devices. The first one is pointed by ifnet. > > -- > Hwa Jin Bae > mailto:hjb@pso.com > http://www.pso.com - -- Posted via Mailgate.ORG Server - http://www.Mailgate.ORG --------------------------- Newsgroups: comp.os.vxworks Subject: Re: BSD Ethernet Driver Date: 13 Mar 2002 22:24:32 -0800 From: vittala@hotmail.com (Vittal) Organization: http://groups.google.com/ Message-ID: <6847c39a.0203132224.15b9c86f@posting.google.com> References: <6847c39a.0203072126.4cc28aaf@posting.google.com> <6847c39a.0203080206.2515b5ff@posting.google.com> <3C890057.E551DBDA@varndellengineering.com> <3c891c2c$1@brateggebdc5.br-automation.co.at> <3C8DE54A.50807@spamm.me.l8s.co.uk> <6847c39a.0203122047.16035284@posting.google.com> <3C8F404D.7C2C7538@varndellengineering.com> Hi GV / HJB, Thanks for the Info and I shall try out all the 4 suggestions. Here is some details about the device I am using. The network controller is the SMS FEAST controller (91C100FD). It sits on an IP module LAN-100 manufactured by ACTIS computer and this IP module is part of an IP carrier (VIPC-400) which sits on a VME bus. Thanks and Regards, Vittal. "Hwa Jin Bae" wrote in message news:... > The number 1 is a good observation. It illustrates the latency vs. > throughput issue. Depending on your hard realtime requirements you should > tune the behavior of your driver in that area. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Page Fault for help Date: Thu, 14 Mar 2002 08:49:55 +0100 From: "Michael Lawnick" Organization: Buergernetz Dillingen Message-ID: References: <3C8E07F7.4050609@spamm.me.l8s.co.uk> <3C8F422D.30607@spamm.me.l8s.co.uk> <3C8F5F9B.6070605@spamm.me.l8s.co.uk> Reply-To: "Michael Lawnick" Sender: mlawnick@pd9e655ba.dip.t-dialin.net Hi, "K.YH" schrieb im Newsbeitrag news:d29c2180.0203131804.4177b213@posting.google.com... > Maybe i don't describe my problem in detail,i will supply more . > Firstly, the target is a pc386 with NE2000 netcard,and its RAM is > 64MB. > I boot vxworks from DOS OS,that is DOS firt starts up ,and then it > boot the vxworks.If i don't include the application project in vworks > image,the vxworks image works successfully.The way that the bootable > project is created is as follows: > a. An application project is build a archive as *.a; > b. A bootable vxworks image is created ,with a main function of the > application project is referenced is its usrAppInit.c. And then in the > Build MACRO LIBS includes the application lib *.a; > I simulated successfully in vxsim in this way. But it didn't work,when > i ported to the target pc386. > Why? > Thanks. If your vxWorks builds successfully and you don't do a symFindByName() to find dynamically a functions address, the only thing I can imagine is a missing initialisation of a library that works with function tables (e.g. cacheLib and others). Away from your line: you say you are building a 'bootable vxworks image' and 'boot vxworks from DOS OS'. How do you do that ? I am asking, because I always thought, this wouldn't be possible on X86. I thought on X86 you always have to go trough a bootrom.sys (loaded instead of io.sys or from boot menu in autoexec.bat) that will then load the VxWorks Image. Can you tell me the trick? How can BIOS load the image directly to hi-mem (>1MB)? What are your workspace settings to achieve that ? - -- Mit freundlichen Grüßen, Michael Lawnick ============================================== SOFTEC GmbH Tel +49-731-96600-0 Promenade 17 Fax +49-731-96600-23 D-89073 Ulm Michael Lawnick Germany lawnick@softec.de ============================================== --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Binary Serial Communications Date: Thu, 14 Mar 2002 08:21:33 -0000 From: "Thomas Horsten" Organization: Newport Networks Ltd. Message-ID: <1016094101.74523@azores.network-i.net> References: George Ross wrote: > I am trying to open a serial connection between two ppcs so that I can send > 8bit binary messages between them. Since I'm using 8bit binary I figure I > can't use SW handshaking. The HW handshaking seems not to be implemented > i.e. the data was sent without the control lines being hooked up just Tx, > Rx, gnd. I can get data across the serial connection but can't seem to > control it. I am also trying to put a few other things in the serial stream > (modem, phone, etc) so I need handshaking to talk to them. > > Any ideas? Anyone know a good way to send 8bit binary with software > handshaking? You need some sort of encapsulation of your binary data if you want to use software handshaking (it uses the ASCII XON/XOFF characters). For example you could base64 encode your binary data for sending over the link. See http://www.scripting.com/midas/base64/source.html for this. You could also use a file transfer protocol designed for non-8bit clean connections such as Kermit or Xmodem, but while these provide error checking and correction they are far from optimal in performance. If you only need the basic software handshaking and you don't need to follow any standards, the above is probably overkill, and you should probably just do your own encoding. Define an escape character (eg. 0x7f, or another character that occurs infrequently in your data). When you want to transmit the XON/XOFF characters as part of your binary stream you simply send 0x7f followed by eg. 0x01 for XON and 0x02 for the XOFF character. To send the escape character literally just repeat it twice. Do this at the lowest layer possible (ie. in the functions actually receiving/sending characters from/to the device) to make this encoding as transparant as possible. Hope that helps. // Thomas --------------------------- Newsgroups: comp.os.vxworks Subject: Re: How to preform periodical task except sysAuxClkRateSet() Date: Thu, 14 Mar 2002 10:40:26 +0200 From: "Leonid Rosenboim" Organization: Verio Message-ID: References: <5c074538.0203122254.56279c06@posting.google.com> <5c074538.0203131643.765b42c2@posting.google.com> Allen, you can get the frequencies you need on a x86 BSP, but you may need to slightly change to BSP to do that. Simply, do not use the RTC for the AuxClk, use the Counter/Timer chip. "Allen Chang" wrote in message news:5c074538.0203131643.765b42c2@posting.google.com... > Hello Leonid, > > The reason I ask is because the freuqency I want to set is not > all supported by sysAuxClk. So far as I know in the x86 platform, > the auxClk only support 2**1, 2**2, 2**3 ~ 2**13 Hz, if I set > the frequency as 240 Hz, it will NOT give me the 240Hz timer. > > The frequency I want is 64Hz, 256hz, 320Hz, and 80*n(n=1~3) Hz. > And I know that the 320, 80, 160, 240 Hz will not execute accurately, > that is what my question. > > Regards, > > Allen Chang > > > "Leonid Rosenboim" wrote in message news:... > > There are basically these methods for periodical processing, > > each is a tradeoff between timing accuracy (jitter) and processing > > time, and wakeup freqnecy. > > > > Suppose you create a function, WakeMeUp(), which would be invoked > > with the frequency required for processing. > > If processing time is long (e.g. >200 microsec), there should be a dedicated > > task tperforming the proessing, and WakeMeUp would only Give a semaphore on > > which the task is Pending. If the processing is short, it can be done within > > WakeMeUp. The deditated task's priority is too a tradeoff of the same sort - > > the higher priority would give less jitter and lower priority is more > > appropriate for longer processing time (See about Rate Monolithic > > Scheduling) > > > > As to the method to invoke WakeMeUp (which could run in ISR) is one of > > these: > > + Use the system clock via wdLib, if period is multiple (or can be made > > multiple) of the system clock rate > > + Use sysAuxClk if dependency of processing frequency and system clock can > > not be acheived. > > > > I could provide you with specific advise, but you omitted the frequency of > > processing you require. > > > > Leonid --------------------------- Newsgroups: comp.os.vxworks Subject: Re: help for hard disk Date: Thu, 14 Mar 2002 10:44:44 +0200 From: "Leonid Rosenboim" Organization: Verio Message-ID: References: <7863b471.0203131915.2439e089@posting.google.com> One way to do this, is use the 860's PCMCIA interface to connec to a CompactFlash disk, and then use dosFs on top of that. CF is a subset of PCMCIA signals, and you can also use a mechanical adapter to connect CF cards onto the ADS860 eval board. Leonid "winter" wrote in message news:7863b471.0203131915.2439e089@posting.google.com... > hi vxworks, > I want use hard disk in my embedded system,and my cpu is mpc860. > my question is: > 1.How should I connect hard disk to my mpc860 and what circuit is need > in my system? Which port may I use?(bus interface , parallel i/o port or > other ports) > > 2.If i want my disk is compliant with win98/win2000,what should I do? > > 3.My Os use Vxworks,what job need to do,can you give me some reference? > > I am a newer,and need your help. > Thanks. --------------------------- Newsgroups: comp.os.vxworks Subject: Reception of broadacted UDP messages on the same host Date: Thu, 14 Mar 2002 10:54:29 +0200 From: "Vassilis Panagiotopoulos" Organization: Intracom S.A., GREECE Message-ID: I'm trying unsuccessfully to receive broadcasted UDP messages send by a task located on the SAME host with the receiver. The following scenario is based on a demo app, found in ..\Tornado\target\src\demo\dg\dgTesc.c: I'm running a sender/receiver pair of tasks on a PPC860 board, with IP address 191.191.191.1 and broadcast address 191.191.255.255. I'm using two sockets, socket A which is able to broadcast( (SO_BROADCAST flag set with setsockopt()), and socket B, which is able to receive broadcasts. Both have been verified with an external application hosted on a Win2000 PC to work as intended, regarding broadcasted UDP messages. The problem is that socket B is not able to receive the broadcasts send by A, ie the VxWorks network stack seems to exclude reception of a broadcast message when the sender is located on the same host with the receiver. This is not the case for the Win2000 application though, where a broadcasted message from there is received by both socket B AND another receiver hosted on the PC. I suspect that there might be a way to enable this feature on the VxWorks also, if anybody knows how, please tell me so. - -- Bill Panos --------------------------- Newsgroups: comp.os.vxworks Subject: Re: PCI memory space Date: 14 Mar 2002 01:13:06 -0800 From: burst_slick@cmmail.com (slick) Organization: http://groups.google.com/ Message-ID: References: <2b0ae335.0203070425.4ca35b57@posting.google.com> emycall@dreamx.net (Ahn Jung Hoon) wrote in message news:<2b0ae335.0203070425.4ca35b57@posting.google.com>... > Hi, all > > I have a problem in accessing pci memory space > > Previously, > My work space is.. > > VxWorks version 5.4 > KERNEL: WIND version 2.5 > CPU: Motorola Unknown - MPC 750. Processor #0. > Memory Size: 0x10000000. BSP version 1.2/0. > WDB: Ready. > > well.. > I have PCI memory card, and it's size is 256MB.. > > By default, it was written in MV2600.h > #define CPU_PCI_MEM_SIZE 0x01000000 /* 16 meg */ > > so, I modified it as following.. > #define CPU_PCI_MEM_SIZE 0x20000000 /* 256 meg */ > > Then I met data access error as following.. > > ------------------------------------------------------- > -> pciHeaderShow(0, 0x10, 0) > vendor ID = 0x11b0 > device ID = 0x0200 > command register = 0x0002 > status register = 0x0000 > revision ID = 0x00 > class code = 0x05 > sub class code = 0x00 > programming interface = 0x00 > cache line = 0x00 > latency time = 0xf8 > header type = 0x00 > BIST = 0x00 > base address 0 = 0x10000000 > base address 1 = 0x00000000 > base address 2 = 0x00000000 > base address 3 = 0x00000000 > base address 4 = 0x00000000 > base address 5 = 0x00000000 > cardBus CIS pointer = 0x00000000 > sub system vendor ID = 0x4754 > sub system ID = 0x0005 > expansion ROM base address = 0x00000000 > interrupt line = 0x03 > interrupt pin = 0x00 > min Grant = 0x00 > max Latency = 0x00 > value = 0 = 0x0 > -> d 0x10000000 > 10000000: > data access > Exception current instruction address: 0x0015c070 > Machine Status Register: 0x0000b030 > Data Access Register: 0x10000000 > Condition Register: 0x48200080 > Data storage interrupt Register: 0x40000000 > > 1812e0 vxTaskEntry +60 : shell () > 177118 shell +18c: 177144 () > 177368 shell +3dc: execute () > 1774ec execute +d8 : yyparse () > 1a96ec yyparse +7a8: 1a7634 () > 1a77ac yystart +8f8: d () > shell restarted. > -------------------------------------------------------------- > > But When I modified it as following, I could success to display and modified > at PCI_BASE_ADDR(0x08000000).. > #define CPU_PCI_MEM_SIZE 0x10000000 /* 128 meg */ > > .. > > I think that only what I had to do is to modify CPU_PCI_MEM_SIZE > for memory access more than 16MB.. > > But.. Maybe, it seems to be incorrect.. > > Please.. > Can anybody let me understand in the easiest way what is problem. Hi, All I don't know the download the S-record files to system from keyboard ( SCC) in Dink32 PMC8245. and how to specify the address by what and ways, etc. the usage : dl -k -o 90000 (ok?) thanks. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Read on serial does not block Date: 14 Mar 2002 10:20:09 +0100 From: Reinhold Wirth Organization: WEB.DE Message-ID: <3c906b49$1@netnews.web.de> References: Hi Benjamin, bhorowit@cs.berkeley.edu (Benjamin Horowitz) wrote: >Hi, > >We are having a difficulty with doing a read() on a serial port. Once >per second, computer 1 writes "hello hello\n" to /tyCo/0. This serial >port is cabled to /tyCo/0 on computer 2 using a null modem cable. >Computer 2 does the following: > >1. open /tyCo/0 >2. flush /tyCo/0 > ( using ioctl(serialfd, FIOFLUSH, 0) ) >3. check the number of unread bytes in /tyCo/0 > ( using ioctl(serialfd, FIONREAD, &nbytes) ) >4. read 12 bytes from /tyCo/0 > ( using read(serialfd, data_in, 12) ) >5. check the number of unread bytes in /tyCo/0 > ( using ioctl(serialfd, FIONREAD, &nbytes) ) > >In steps 3 and 5, the number of bytes available is always 0. However, >in step 4, the number of bytes read is always 1! Obviously, read() >can return less than 12 -- but why should it return 1 when no bytes >are available? A return of 0 would indicate end-of-file, but why >doesn't read() just block? > >Does anyone have an idea about what's causing this? Before we read(), >should we be doing a select() to block until some input is available? > I think your read() is blocked until the first char is received. The following ioctl (FIONREAD) returns 0 (not byte is received between the function call read and ioctl). If you expect a blocking until "\n" is received, try it with ioctl (serialfd, FIOSETOPTIONS, OPT_TERMINAL). - -- __________________________________________________________ News suchen, lesen, schreiben mit http://newsgroups.web.de --------------------------- Newsgroups: comp.os.vxworks Subject: Re: [AE] What is the bootApp entry point in RAM? Date: 14 Mar 2002 01:51:54 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203140151.456ada86@posting.google.com> References: <3C8F757A.6050403@spamm.me.l8s.co.uk> Hello, > There are no bootConfig.c and usrConfig.c anymore in VxWorks AE. usrInit > has been moved to prjConfig.c. When I talked about a ROM version, I talked > about a full VxWorks AE system ROM image that contains the boot loader and a > VxWorks image that will be copied in RAM, not a ROM image that executes in > ROM. In fact, my question was what is executed after romStart(). Is it > different for a bootApp and a VxWorks AE ROM system image? I used the nm > and objdump tools on my image (bootApp_romCopy) but they gave me only the > boot objects symbols and not the vxWorks boot kernels image. OK, this is confusing... first you say you are talking about a full VxWorks AE image copied from ROM, the you are saying that you looked in bootApp_romCopy, which is a bootloader project... If you haven't already found it, there is an app note on WindSurf about creating ROM based systems (i.e. full VxWorks AE images, not just the bootApp images). From your description, it sounds as though you are trying to create a full system (perhaps multi-domain?) from a bootApp project. This will not work. Instead, you just need to select a different build type for your system project. That will get you a ROMable image. How to do this is described in the app note which can be read here: http://web1.windriver.com/windsurf/appnotes/ide/tae/APN69/romming.html Now, as for the addresses that things start executing at... The address that is jumped to is ABS_ENTRY_ADRS. This is defined in h/make/make. as (basically) RAM_ENTRY_ADRS. That macro changes value according to whether a bootApp or a full system is being built. In the bootApp case, it is RAM_HIGH_ADRS; for the full system RAM_LOW_ADRS. So, that gets you an address. Now, to verify the code that is being executed, take a look in the gnu.debug_romCopy subdirectory of your system project. You should find a file called vxKernel.sm. This is the image of your kernel prior to conversion into a payload for the ROM installer. You can use objdump etc on this to get the information you need. In the case of the system I have here, when I build for an ARMARCH4gnu.debug_romCopy build, I get a vxKernel.sm file that starts at 0x1000 (the value of RAM_LOW_ADRS) with the _sysInit routine from sysALib.s in my BSP. HTH. John... --------------------------- Newsgroups: comp.os.vxworks Subject: Re: [AE] BSP and Device Driver Development Date: 14 Mar 2002 01:59:47 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203140159.172eb9a0@posting.google.com> References: Hello, > Has anyone had luck building a VxWorks AE BSP from scratch? Yes. > I am trying to intergrate several device drivers into a new BSP and I > am having lots of problems using these drivers from a user Protection > Domain. Would anyone be willing to share experiences with device > driver integration into the AE BSP's? OK, well, you need to provide a lot more information about what you are doing. Here's a good set of questions to start with: 1) How is your driver built? Pre-compiled and included as a binary component, built using the configlette mechanism, or built as a source/component project? 2) Is your driver an I/O system one, or just a library that exports a number of routines for users to call? 3) Does it do any asynchronous or DMA transfers? Does it copy data directly between user space and the device somehow, or does it buffer the data first? 4) Does it create any kernel objects (e.g. semaphores) or allocate/free any memory (e.g. call malloc()) Finally, tell us more about the sorts of problems you are seeing... does it crash, or just not work correctly? Rgds, John... --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Read on serial does not block Date: 14 Mar 2002 02:15:15 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203140215.7c84ba53@posting.google.com> References: Hello, Most likely is that the read is blocking until your first byte arrives. As soon as a byte is available, read will return it. That will leave the buffer clear again when next checked in step 5. You don't say the speed of your serial line, but think about this... Assume a 9600 bits per second line (the default for VxWorks). That means you get around 1000 bytes every second (round up for easeof estimation and remember that there are 10 bits per character on the wire when you include start and stop bits in 8n1). That's one every millisecond or so. Now, I suspect that the time between your read returning the first character and you checking for more is less that a millisecond, so there are no more characters available. HTH, John... bhorowit@cs.berkeley.edu (Benjamin Horowitz) wrote in message news:... > Hi, > > We are having a difficulty with doing a read() on a serial port. Once > per second, computer 1 writes "hello hello\n" to /tyCo/0. This serial > port is cabled to /tyCo/0 on computer 2 using a null modem cable. > Computer 2 does the following: > > 1. open /tyCo/0 > 2. flush /tyCo/0 > ( using ioctl(serialfd, FIOFLUSH, 0) ) > 3. check the number of unread bytes in /tyCo/0 > ( using ioctl(serialfd, FIONREAD, &nbytes) ) > 4. read 12 bytes from /tyCo/0 > ( using read(serialfd, data_in, 12) ) > 5. check the number of unread bytes in /tyCo/0 > ( using ioctl(serialfd, FIONREAD, &nbytes) ) > > In steps 3 and 5, the number of bytes available is always 0. However, > in step 4, the number of bytes read is always 1! Obviously, read() > can return less than 12 -- but why should it return 1 when no bytes > are available? A return of 0 would indicate end-of-file, but why > doesn't read() just block? > > Does anyone have an idea about what's causing this? Before we read(), > should we be doing a select() to block until some input is available? > > Thanks, > Ben --------------------------- Newsgroups: comp.os.vxworks Subject: question about END driver's unload function...... Date: 14 Mar 2002 02:46:06 -0800 From: lig@catt.ac.cn (bjlig) Organization: http://groups.google.com/ Message-ID: <73a87e9d.0203140246.b1c5627@posting.google.com> hi,all: cpu: 8260 turnado 2, vxworks 5.4 i write an END driver, but when i try to unload it by call muxDevUnload(END_OBJ),the unload routine suspended in muxDevUnload(),but my endUnload has been loaded and finished. (i traced it with debug) at first , i only call the END_OBJECT_UNLOAD(pEnd) routine in my endUnload(), the routine is suspended. then i add some code to free the clusternetpool and ClDescTbl.memarea and MclBlkConfig.memArea,but it does not help anything. if anyone could tell me what i need to do to unload my end driver? thanx in advance! roman --------------------------- Newsgroups: comp.os.vxworks Subject: trgEvent user event triggering Date: 14 Mar 2002 03:22:31 -0800 From: rcheshmehdoost@t-modus.nec.co.uk (Ray. Cheshmehdoost) Organization: http://groups.google.com/ Message-ID: <96369127.0203140322.27098932@posting.google.com> Hi all I am having problem with WindView capturing the user instrumented triggering events. I need to use user triggering events, these will allow me to carry out some timing analysis on my application performance. Here is a summery: Under VxWorks development tools components triggering library is included. (e.g trgLib.h private/trgLibP.h trgLib.o, and trgInit () is called when traget powers up) Application code initialization for user triggering events: trgLibInit(); trgOff(); trgAdd(40010,TRG_ENABLE,FROM_ANY_WHERE..........., ETC); trgAdd(40020,TRG_ENABLE,..........., ETC); .... .... trgOn(); Actual embedded triggering is simple call to: trgEvent(40010); or Even e(event_t X, 0, 0, 0); does not work Run application, code runs through placed triggering event points, but WindView doesn't seem to see these events. Many thanks Ray --------------------------- Newsgroups: comp.os.vxworks Subject: Re: tNetTask takes too long? Date: Thu, 14 Mar 2002 06:29:00 -0500 From: George Varndell Organization: Posted Via Binaries.net = SPEED+RETENTION+COMPLETION = http://www.binaries.net Message-ID: <3C90897C.3008AF07@varndellengineering.com> References: <3C8FCA9E.849D1DC2@fnal.gov> Dinker Charak wrote: [snip] > Technical service at Windriver is not too excited to solve the issue > inspite of the fact they too were able to replicate the problem. Am > interested in knowing if anyone of you out there has this problem too. > It is observed in VxWorks 5.4.2 kernels on MV2400 and MV2301 (at least). I recently attended a seminar, held by one of WR partners, in which we were shown a profiling tool -- I'm not going to name names. The live-target demo of this profiling tool clearly showed that the greatest amount of CPU time was being spent in this polling of the PHY. While it stood out like a sore thumb to me, I don't know that any other attendees really picked up on it. I just had to laugh inside because there were, of course, WR sales people there who had no clue that their fly was open. Regards, George Varndell - -- Embedded Systems Expertise Varndell Engineering, LLC. http://www.varndellengineering.com Cumberland MD. ______________________________________________________________________________ Posted Via Binaries.net = SPEED+RETENTION+COMPLETION = http://www.binaries.net --------------------------- End of New-News digest ********************** From vxwexplo-errs@csg.lbl.gov Thu Mar 14 14:42:53 2002 From: "Venkat" Date: Thu Mar 14 14:42:55 PST 2002 Subject: VxWwroks equilavent of Linux outb, inb commands Can someone point to me the equivalent of 'outb' and 'inb' commands in VxWorks? Your response will be appreciated. Thanks, Venkat Linux code ======== int siocgfport 0x2e, val; outb ( 0x55, siocfgport); outb (0x20, siocfgport); val = inb (siocfgport+1); Equivalent VxWorks code ????? ======================== int siocgfport 0x2e, val; ????? From vxwexplo-errs@csg.lbl.gov Fri Mar 15 01:27:59 2002 From: Rainer Stelzer Date: Fri Mar 15 01:28:01 PST 2002 Subject: Re: VxWwroks equilavent of Linux outb, inb commands Hi, > > Can someone point to me the equivalent of 'outb' and 'inb' commands in > VxWorks? > Your response will be appreciated. > > Thanks, Venkat > > Linux code > ======== > int siocgfport 0x2e, val; > outb ( 0x55, siocfgport); > outb (0x20, siocfgport); > val = inb (siocfgport+1); > > Equivalent VxWorks code ????? > ======================== > int siocgfport 0x2e, val; the vxworks equivalent is sysOutByte (siocfgport,0x20); and val = sysInByte (siocfgport+1); rgds R.Stelzer ===================================================== Gebrüder Stoye GmbH department: traffic control systems name: Rainer Stelzer adr: Longericher Strasse 177 city: Cologne, Germany zip: 50739 mobil: 0173/7266090 phone: ++49/221/285301-11 fax: ++49/221/285301-10 mailto: r.stelzer@stoye.de www: http://www.stoye.de ===================================================== From vxwexplo-errs@csg.lbl.gov Fri Mar 15 04:03:25 2002 From: Vxworks Exploder Date: Fri Mar 15 04:03:27 PST 2002 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Fri Mar 15 04:03:20 PST 2002 Subject: Re: A question about ifunit( ) && extern struct ifnet *ifnet? Subject: Setting an ethernet port to full duplex Subject: Problem in attaching cpm Subject: Re: How to preform periodical task except sysAuxClkRateSet() Subject: end driver: number of buffers & ipAttach problem (ln97xEnd) Subject: Re: how do I program device driver on vxworks Subject: Re: Task ID & Task name Subject: Re: How to preform periodical task except sysAuxClkRateSet() Subject: Re: question about END driver's unload function...... Subject: Re: Task ID & Task name Subject: Re: Setting an ethernet port to full duplex Subject: Re: BSD Ethernet Driver Subject: [AE] BSP and drivers Subject: Re: Task ID & Task name Subject: Re: Binary Serial Communications Subject: Re: tNetTask takes too long? Subject: Re: how do I program device driver on vxworks Subject: Re: tNetTask takes too long? Subject: Re: BSD Ethernet Driver Subject: Re: try(void) Subject: Re: Read on serial does not block Subject: Re: help for hard disk Subject: VxWorks and Diamond's Prometheus Subject: Re: How to preform periodical task except sysAuxClkRateSet() Subject: Re: tNetTask takes too long? Subject: Re: tNetTask takes too long? Subject: Re: tNetTask takes too long? Subject: Re: question about END driver's unload function...... Subject: Re: ln97xEnd - ring buffer size Subject: Re: tNetTask takes too long? Subject: Re: Setting an ethernet port to full duplex Subject: Re: tNetTask takes too long? Subject: Re: Reception of broadacted UDP messages on the same host Subject: dosFs2 cluster sizes Subject: Re: [AE] BSP and Device Driver Development Subject: Re: [AE] BSP and drivers Subject: Re: tNetTask takes too long? Subject: Re: How to preform periodical task except sysAuxClkRateSet() Subject: Re: question about END driver's unload function...... Subject: Re: Reception of broadacted UDP messages on the same host Subject: Re: Setting an ethernet port to full duplex Subject: Re: question about END driver's unload function...... Subject: Sandpoint3 system Subject: Re: How to preform periodical task except sysAuxClkRateSet() Subject: Re: help for hard disk Subject: muxDevStart function failed. Subject: Re: [AE] BSP and drivers Subject: Re: help for hard disk Subject: Virtual keyboard in PJWorks Subject: Re: dosFs2 cluster sizes Subject: Re: [AE] BSP and drivers Subject: problem about RapidControl Subject: Re: how do I program device driver on vxworks Subject: Wanted SupportFreaks.com Scouts Subject: What cause my USB driver error, .o or .a? Subject: Looking for a Fortran compiler Subject: Re: What cause my USB driver error, .o or .a? ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Re: A question about ifunit( ) && extern struct ifnet *ifnet? Date: 14 Mar 2002 05:01:46 -0800 From: zjh_future@263.net (zjh) Organization: http://groups.google.com/ Message-ID: <8cd11808.0203140501.15cd0658@posting.google.com> References: <8cd11808.0203111953.52ac6949@posting.google.com> <4a7f0d21.0203120006.3d87515c@posting.google.com> <8cd11808.0203121841.70cd9f8d@posting.google.com> <6ab3109fcd959d946780d1e4a7c60845.77030@mygate.mailgate.org> hi, do you read the book? In the TCP/IP Illustrated vol 2(Implented) :the chapter about interface layer. Perhaps i made a mistake last time. I havn't do the thing you do. perhaps you can make use of the value "if_index"? The interface whose if_index =1 is the first interface in the system. And you also can try the way Hwa Jin Bae told.Use the global varible: extern struct ifnet *ifnet; the poiner ifnet is the fist element of list. Wish you good lucky!! "Ramesh Krishnan" wrote in message news:<6ab3109fcd959d946780d1e4a7c60845.77030@mygate.mailgate.org>... > > > > Ramesh ,I think you can get. > > first you must get one interface name in your system. perhaps you > > can do this by ioctl func. and you also can use the global > > value:"extern struct ifnet *ifnet;".then your get the ifnet of one > > interface. > > every interface have an ifnet struct ,and all ifnet struct > > constructed a list.you can look into "net/if.h" in vxworks.Use the > > pointer:struct ifnet *if_next you can view all the ifnet struct.that > > mean you can view all the interfaces info. > > Do you catch my mean?Wish those word can help you! You can also read > > the book" > > TCP/IP Illustrated volume 3" to see the details!!Suggest you read the > > book!! > > HI Zhang, > > Yeah i have gone through the Vol 3 TCP/IP. But as you mentioned how to > get the "first" interface name of the target. Because the ifnet > structure is for every interface and it is a singly linked list where > *next pointer points to the next itnerface. But how do we ensure that > the interface name we are getting with the ioctl is the first ( Also how > to get a interface name alone with ioctl. Is it SIOGIFCONF? for this > request ifreq structure is the arguement, the ifreq structure contains a > name of a interface, but will it be the first ? have you tried this > thing? will it also have a pointer to the localhost "l0" interface also? > ). Yeah nice to have discussions in future too, since sharing is the > better way of learning. > > Thanks, > Ramesh --------------------------- Newsgroups: comp.os.vxworks Subject: Setting an ethernet port to full duplex Date: 14 Mar 2002 05:05:40 -0800 From: sandeep@eventhelix.com (Sandeep) Organization: http://groups.google.com/ Message-ID: <9d8984ab.0203140505.3529a3ba@posting.google.com> Hi, How can I set an ethernet port to operate in full duplex? What command/ configuration changes are required to accomplish this in VxWorks? Thanks in advance, Sandeep - -- www.EventHelix.com Distributed, Realtime and Embedded Software Development --------------------------- Newsgroups: comp.os.vxworks Subject: Problem in attaching cpm Date: Thu, 14 Mar 2002 22:06:23 +0900 From: =?EUC-KR?B?wMzA58jG?= Organization: Neowave, Inc. Message-ID: <3C90A04F.3060102@neowave.co.kr> Hi, I am developing MPC860 board with ethernet interface. I found that rommed application counldn't attach cpm. Messages are shown like this: - ---------------------------- begin of message Failed to attach to device Network interface unknwon Attaching interface lo0 ... done ... <-- WDB related messages are in here. 0x1ffdf8: task deadCan't attach unknwon device (unit 0) - ---------------------------- end of message In BSP rom, network interface was normally functioned wid WDB agent. What was wrong? Thanks in advance. - -- ===--------------------------------------------------=== Jaehoon Lee Engineer, NeoWave Inc. Tel: +82-31-380-4922 FAX: +82-31-380-4747 mailto:jhoonlee@neowave.co.kr http://www.neowave.co.kr ===--------------------------------------------------=== --------------------------- Newsgroups: comp.os.vxworks Subject: Re: How to preform periodical task except sysAuxClkRateSet() Date: Thu, 14 Mar 2002 14:21:53 +0100 From: "Werner Schiendl" Message-ID: <3c90a3ec@brateggebdc5.br-automation.co.at> References: <5c074538.0203122254.56279c06@posting.google.com> <5c074538.0203131643.765b42c2@posting.google.com> Hi, Do you need them alternatively, or all of them at once? If you need all of them, you might try to have some master timer that triggers the slower ones. Given your numbers, you'd need a 3840 Hz clock to derive all your clocks. You'd run a routine that counts the ticks and triggers that action every n ticks, where n is: 12 for 320 Hz (3840 / 12) 16 for 240 Hz 24 for 160 Hz 48 for 80 Hz 15 for 256 Hz 30 for 128 Hz ... In case you need only one, of course you should adapt the clock rate. hth Werner "Allen Chang" wrote in message news:5c074538.0203131643.765b42c2@posting.google.com... > Hello Leonid, > > The reason I ask is because the freuqency I want to set is not > all supported by sysAuxClk. So far as I know in the x86 platform, > the auxClk only support 2**1, 2**2, 2**3 ~ 2**13 Hz, if I set > the frequency as 240 Hz, it will NOT give me the 240Hz timer. > > The frequency I want is 64Hz, 256hz, 320Hz, and 80*n(n=1~3) Hz. > And I know that the 320, 80, 160, 240 Hz will not execute accurately, > that is what my question. > > Regards, > > Allen Chang > > > "Leonid Rosenboim" wrote in message news:... > > There are basically these methods for periodical processing, > > each is a tradeoff between timing accuracy (jitter) and processing > > time, and wakeup freqnecy. > > > > Suppose you create a function, WakeMeUp(), which would be invoked > > with the frequency required for processing. > > If processing time is long (e.g. >200 microsec), there should be a dedicated > > task tperforming the proessing, and WakeMeUp would only Give a semaphore on > > which the task is Pending. If the processing is short, it can be done within > > WakeMeUp. The deditated task's priority is too a tradeoff of the same sort - > > the higher priority would give less jitter and lower priority is more > > appropriate for longer processing time (See about Rate Monolithic > > Scheduling) > > > > As to the method to invoke WakeMeUp (which could run in ISR) is one of > > these: > > + Use the system clock via wdLib, if period is multiple (or can be made > > multiple) of the system clock rate > > + Use sysAuxClk if dependency of processing frequency and system clock can > > not be acheived. > > > > I could provide you with specific advise, but you omitted the frequency of > > processing you require. > > > > Leonid --------------------------- Newsgroups: comp.os.vxworks Subject: end driver: number of buffers & ipAttach problem (ln97xEnd) Date: 14 Mar 2002 05:36:32 -0800 From: fillmore2@arcor.de (Achim) Organization: http://groups.google.com/ Message-ID: <9d082700.0203140536.767087ca@posting.google.com> Hi, I've got problems with increasing the number of buffers for the lnPci ethernet driver: After adapting some settings and restrictions in ln97xEnd I can set the number of RMDs & TMDs to 128. For more buffers (up to 512 supported by the controller) the mux init seems ok, but the ipAttach no longer works. I'm doing muxDevLoad(...) & muxDevStart(), - and after that, I get the same result with muxShow for 128 and 256 buffers: - -> muxShow Device: ln Unit: 0 [the driver has been renamed from lnPci to ln] Description: AMD 79C970 Lance PCI Enhanced Network Driver value = 0 = 0x0 If I call ipAttach(0,"ln")(and ifMaskSet(), ifAddrSet()), all works fine for 128 buffers. But with 256 buffers, I get the following error display after calling ipAttach: 0x1cd994d0 (tShell): Can't attach unknown device ln (unit 0). This seems kind of strange to me, for it works with 128 buffers and mux seems to know the device with more than 128 buffers, too... And there should also be enough memory. Has anyone made a similar experience or has an idea why this happens? Thanks in advance, Achim --------------------------- Newsgroups: comp.os.vxworks Subject: Re: how do I program device driver on vxworks Date: 14 Mar 2002 05:45:41 -0800 From: vittala@hotmail.com (Vittal) Organization: http://groups.google.com/ Message-ID: <6847c39a.0203140545.294d2fae@posting.google.com> References: <6fe967ba.0203131740.7cda7c64@posting.google.com> Hi, WRS provides BSP developer's kit which contains useful information on how to write device drivers with VxWorks. Also, the programming manuals will be useful. tang-xiao-ming@263.net (xmtang) wrote in message news:<6fe967ba.0203131740.7cda7c64@posting.google.com>... > hi,all > I'm just the beginner(outsider somewhat).I want to know how to > program the specific device driver on vxworks.Who can give me some > advice or related resouces. Generally but sincerely. > Thanks in advance --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Task ID & Task name Date: Thu, 14 Mar 2002 09:04:41 -0500 From: "doug dotson" Organization: Verio Message-ID: <342k8.3728$T_.69299@iad-read.news.verio.net> References: <3c90a2db$0$92532$edfadb0f@dspool01.news.tele.dk> You can use the "i" commands in the shell to see what taksId corresponds to a name. Findin out the currently executing task is hard because if you use the "i" command to display it, then the shell is the currently executing task while the lask list is being displayed. doug ":-)" <.@.dk> wrote in message news:3c90a2db$0$92532$edfadb0f@dspool01.news.tele.dk... > Hi, > > I'm new in VxWorks and have some problems. > > My first problem is that I need to know which Task ID currently is > executing. > > The second problem is how to translate the Task ID to the name given as > parameter to the taskSpawn() function. > > Please reply to group. > > BR > Lars > > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: How to preform periodical task except sysAuxClkRateSet() Date: Thu, 14 Mar 2002 14:04:37 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C90AE69.10201@spamm.me.l8s.co.uk> References: <5c074538.0203122254.56279c06@posting.google.com> <5c074538.0203131643.765b42c2@posting.google.com> <3c90a3ec@brateggebdc5.br-automation.co.at> >>The frequency I want is 64Hz, 256hz, 320Hz, and 80*n(n=1~3) Hz. >>And I know that the 320, 80, 160, 240 Hz will not execute accurately, >>that is what my question. How accurate do you need these? Is 'long term' or 'short term' most important? Don't set the normal clock much above 2k - things start breaking if you do (select() fails above 2147Hz) David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: question about END driver's unload function...... Date: Thu, 14 Mar 2002 14:05:14 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C90AE8E.10003@spamm.me.l8s.co.uk> References: <73a87e9d.0203140246.b1c5627@posting.google.com> > if anyone could tell me what i need to do to unload my end driver? reboot David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Task ID & Task name Date: Thu, 14 Mar 2002 15:06:12 +0100 From: ":-\)" <.@.dk> Organization: TDC Internet Message-ID: <3c90ae56$0$92566$edfadb0f@dspool01.news.tele.dk> References: <3c90a2db$0$92532$edfadb0f@dspool01.news.tele.dk> Use taskIdSelf() & taskName() Thanks to myself ;-) --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Setting an ethernet port to full duplex Date: Thu, 14 Mar 2002 09:07:24 -0500 From: "doug dotson" Organization: Verio Message-ID: References: <9d8984ab.0203140505.3529a3ba@posting.google.com> I'm pretty sure that is either BSP specific or you have to go right to the controller to do it. On our platform the ethernet controllers are on a Galileo chip and we have to go right to a register to set a bit. doug "Sandeep" wrote in message news:9d8984ab.0203140505.3529a3ba@posting.google.com... > Hi, > > How can I set an ethernet port to operate in full duplex? What command/ > configuration changes are required to accomplish this in VxWorks? > > Thanks in advance, > > Sandeep > -- > www.EventHelix.com > Distributed, Realtime and Embedded Software Development --------------------------- Newsgroups: comp.os.vxworks Subject: Re: BSD Ethernet Driver Date: Thu, 14 Mar 2002 09:33:27 -0500 From: George Varndell Organization: Posted Via Binaries.net = SPEED+RETENTION+COMPLETION = http://www.binaries.net Message-ID: <3C90B4B7.F209AC42@varndellengineering.com> References: <6847c39a.0203072126.4cc28aaf@posting.google.com> <6847c39a.0203080206.2515b5ff@posting.google.com> <3C890057.E551DBDA@varndellengineering.com> <3c891c2c$1@brateggebdc5.br-automation.co.at> <3C8DE54A.50807@spamm.me.l8s.co.uk> <6847c39a.0203122047.16035284@posting.google.com> <3C8F404D.7C2C7538@varndellengineering.com> <6847c39a.0203132224.15b9c86f@posting.google.com> Vittal wrote: > > Hi GV / HJB, > > Thanks for the Info and I shall try out all the 4 suggestions. Here is > some details about the device I am using. > > The network controller is the SMS FEAST controller (91C100FD). It sits > on an IP module LAN-100 manufactured by ACTIS computer and this IP > module is part of an IP carrier (VIPC-400) which sits on a VME bus. I thought so. I get several jobs a year from the 91C... chips. The problem is not the chips, they're screwy but they can made to perform well. It just takes a rework of whatever driver the customer dug up from Wind or wherever. When you start seeing the performance gains you're looking for, then you'll have fun finding all the race conditions and unprotected critical regions that make the driver lock up. Good luck. Regards, George Varndell - -- Embedded Systems Expertise Varndell Engineering, LLC. http://www.varndellengineering.com Cumberland MD. ______________________________________________________________________________ Posted Via Binaries.net = SPEED+RETENTION+COMPLETION = http://www.binaries.net --------------------------- Newsgroups: comp.os.vxworks Subject: [AE] BSP and drivers Date: 14 Mar 2002 08:30:49 -0800 From: strick@hiwaay.net (BS) Organization: http://groups.google.com/ Message-ID: Does anyone have any experience integrating device drivers into the base x86 Tornado AE BSP's? I need to know exactly what I need to do to make the driver accessible to the users in other PD's. I am assuming that all the driver we add to the BSP must also be given an IOCTL interface in order to call the driver from the user space. I have this interface for both of the driver mentioned below, but when I try to access the Universe II windows from within my xxIoctl function I get a page fault? In previous Tornado BSP's we would provide drivers where the user would be able to attach their own ISR's if they wish to handle the interrupt, however, in the AE environment, how are we supposed to provide user ISR's from a PD if all ISR are supposed to be in the Kernel domain? I am currently trying to integrate a Universe II device driver and a local timer device driver. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Task ID & Task name Date: Thu, 14 Mar 2002 10:36:00 -0600 From: Dinker Charak Organization: Fermi National Accelerator Laboratory Message-ID: <3C90D170.A31B47A5@fnal.gov> References: <3c90a2db$0$92532$edfadb0f@dspool01.news.tele.dk> <342k8.3728$T_.69299@iad-read.news.verio.net> - -> printf("%lx\n", taskIdSelf()) 3662d0 value = 7 = 0x7 - -> printf("%lx\n", taskIdCurrent) 3662d0 value = 7 = 0x7 taskIdSelf() is not ISR safe ... you can use taskIdCurrent too hth dinker doug dotson wrote: > > You can use the "i" commands in the shell to see what taksId corresponds > to a name. Findin out the currently executing task is hard because if you > use the "i" command to display it, then the shell is the currently executing > task while the lask list is being displayed. > > doug > > ":-)" <.@.dk> wrote in message > news:3c90a2db$0$92532$edfadb0f@dspool01.news.tele.dk... > > Hi, > > > > I'm new in VxWorks and have some problems. > > > > My first problem is that I need to know which Task ID currently is > > executing. > > > > The second problem is how to translate the Task ID to the name given as > > parameter to the taskSpawn() function. > > > > Please reply to group. > > > > BR > > Lars > > > > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Binary Serial Communications Date: Thu, 14 Mar 2002 09:16:58 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <1016094101.74523@azores.network-i.net> In the past I have ported a freeware xmodem code to VxWorks to accomplish it and it worked fine. Code size was very small too. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: tNetTask takes too long? Date: Thu, 14 Mar 2002 09:32:50 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <3C8FCA9E.849D1DC2@fnal.gov> <3C90897C.3008AF07@varndellengineering.com> The polling of PHY is actually not that unusual. Linux does it. So does BSD. It is rare that cheap MII PHYs and MACs thesedays allow for asynch notification (interrupt) for PHY mode change. Most of them do not. There are some that do, but they are not as common as the ones that do not. Without proper HW support, OS must poll. And when SW polls and HW is designed to take certain amount of time for each poll, there is little SW can do to avoid this pitfall. Since most of these things are done by shifting bits in and out over serial connections between MAC and PHY, it is easily solvable in a small PLD. Not much SW can do other than doing it less frequently. So I would not laugh at WRS on this one personally. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: how do I program device driver on vxworks Date: Thu, 14 Mar 2002 18:35:41 +0100 From: "Werner Schiendl" Message-ID: <3c90df67$1@brateggebdc5.br-automation.co.at> References: <6fe967ba.0203131740.7cda7c64@posting.google.com> Hi, to write a character device driver, you just implement the 'magic' seven functions (or a subset thereof). Namely create() delete() open() close() read() write() and ioctl(). You add this to the VxWorks IO system with iosDrvInstall() API. This is the responsibility of the Drv() function you write for your driver (by convention). To create an actual device, you use your drivers DevCreate(your args go here) function. This function creates the device data structure and adds the device to the VxWorks device table with iosDevAdd() API. Voila, ready is your device. (This is for 'normal' VxWorks 5.4, VxWorks AE may be different to some extent) hth Werner P. S. This is thoroughly explained in the VxWorks Programmer's Manual. Further, the unsupported source code of your distribution is your friend to find samples. "xmtang" wrote in message news:6fe967ba.0203131740.7cda7c64@posting.google.com... > hi,all > I'm just the beginner(outsider somewhat).I want to know how to > program the specific device driver on vxworks.Who can give me some > advice or related resouces. Generally but sincerely. > Thanks in advance --------------------------- Newsgroups: comp.os.vxworks Subject: Re: tNetTask takes too long? Date: Thu, 14 Mar 2002 17:42:43 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C90E187.6050409@spamm.me.l8s.co.uk> References: <3C8FCA9E.849D1DC2@fnal.gov> <3C90897C.3008AF07@varndellengineering.com> Hwa Jin Bae wrote: > The polling of PHY is actually not that unusual. Linux does it. So does > BSD. It is rare that cheap MII PHYs and MACs thesedays allow for asynch > notification (interrupt) for PHY mode change. Most of them do not. There > are some that do, but they are not as common as the ones that do not. > > Without proper HW support, OS must poll. And when SW polls and HW is > designed to take certain amount of time for each poll, there is little SW > can do to avoid this pitfall. You need to shift about 64 bits, you could do 1 every other clock tick! That would give you an answer often enough to tell when the PHY has changed from FDX to HDX - which is all you need to know. > > Since most of these things are done by shifting bits in and out over serial > connections between MAC and PHY, it is easily solvable in a small PLD. Not > much SW can do other than doing it less frequently. > > So I would not laugh at WRS on this one personally. Why? we alawys do:-) Presumably you have escaped their prison and can now talk to us? David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: BSD Ethernet Driver Date: Thu, 14 Mar 2002 17:44:09 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C90E1DE.30801@spamm.me.l8s.co.uk> References: <6847c39a.0203072126.4cc28aaf@posting.google.com> <6847c39a.0203080206.2515b5ff@posting.google.com> <3C890057.E551DBDA@varndellengineering.com> <3c891c2c$1@brateggebdc5.br-automation.co.at> <3C8DE54A.50807@spamm.me.l8s.co.uk> <6847c39a.0203122047.16035284@posting.google.com> <3C8F404D.7C2C7538@varndellengineering.com> <6847c39a.0203132224.15b9c86f@posting.google.com> <3C90B4B7.F209AC42@va George Varndell wrote: > Vittal wrote: > >>Hi GV / HJB, >> >>Thanks for the Info and I shall try out all the 4 suggestions. Here is >>some details about the device I am using. >> >>The network controller is the SMS FEAST controller (91C100FD). It sits >>on an IP module LAN-100 manufactured by ACTIS computer and this IP >>module is part of an IP carrier (VIPC-400) which sits on a VME bus. >> > > I thought so. I get several jobs a year from the 91C... chips. > The problem is not the chips, they're screwy but they can made to > perform well. It just takes a rework of whatever driver the customer > dug up from Wind or wherever. When you start seeing the performance > gains you're looking for, then you'll have fun finding all the race > conditions and unprotected critical regions that make the driver > lock up. Good luck. If the network driver I had the source for from WRS is anything to go by, you might be better ignoring it and writing one from scratch! David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: try(void) Date: Thu, 14 Mar 2002 17:04:42 -0000 From: "Dave Korn" Organization: Lumber Cartel (tinlc) Members #2234-2237 (owing to browser refresh) Message-ID: <5p5k8.3200$5o.2714376@newsr2.u-net.net> References: "lily" wrote in message news:a1c6e5dc.0203131829.1696cfb9@posting.google.com... > void Caught exception! DaveK - -- moderator of alt.talk.rec.soc.biz.news.comp.humanities.meow.misc.moderated.meow Burn your ID card! http://www.optional-identity.org.uk/ Help support the campaign, copy this into your .sig! Proud Member of the Exclusive "I have been plonked by Davee because he thinks I'm interesting" List Member # Master of Many Meowing Minions Holder of the exhalted PF Chang's Crab Wonton Award for kook spankage above and beyond the call of hilarity. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Read on serial does not block Date: Thu, 14 Mar 2002 18:43:21 +0100 From: "Werner Schiendl" Message-ID: <3c90e133$1@brateggebdc5.br-automation.co.at> References: Hi, read(), by convention, may read any number from 1 to the maximum you specify. This does always signal success. Only if it is 0, then you are at the end of file or stream. If you need to read a fixed amount of bytes, you must do this in a loop until all bytes are there. This is not specific to VxWorks. hth Werner "Benjamin Horowitz" wrote in message news:ab1f8a59.0203131759.5fd1b5c5@posting.google.com... > Hi, > > We are having a difficulty with doing a read() on a serial port. Once > per second, computer 1 writes "hello hello\n" to /tyCo/0. This serial > port is cabled to /tyCo/0 on computer 2 using a null modem cable. > Computer 2 does the following: > > 1. open /tyCo/0 > 2. flush /tyCo/0 > ( using ioctl(serialfd, FIOFLUSH, 0) ) > 3. check the number of unread bytes in /tyCo/0 > ( using ioctl(serialfd, FIONREAD, &nbytes) ) > 4. read 12 bytes from /tyCo/0 > ( using read(serialfd, data_in, 12) ) > 5. check the number of unread bytes in /tyCo/0 > ( using ioctl(serialfd, FIONREAD, &nbytes) ) > > In steps 3 and 5, the number of bytes available is always 0. However, > in step 4, the number of bytes read is always 1! Obviously, read() > can return less than 12 -- but why should it return 1 when no bytes > are available? A return of 0 would indicate end-of-file, but why > doesn't read() just block? > > Does anyone have an idea about what's causing this? Before we read(), > should we be doing a select() to block until some input is available? > > Thanks, > Ben --------------------------- Newsgroups: comp.os.vxworks Subject: Re: help for hard disk Date: Thu, 14 Mar 2002 18:52:27 +0100 From: "Werner Schiendl" Message-ID: <3c90e355$1@brateggebdc5.br-automation.co.at> References: <7863b471.0203131915.2439e089@posting.google.com> Hi, see inline replies... "winter" wrote in message news:7863b471.0203131915.2439e089@posting.google.com... > hi vxworks, > I want use hard disk in my embedded system,and my cpu is mpc860. > my question is: > 1.How should I connect hard disk to my mpc860 and what circuit is need > in my system? Which port may I use?(bus interface , parallel i/o port or > other ports) No idea, sorry. > > 2.If i want my disk is compliant with win98/win2000,what should I do? > Format the disk using the proper FAT format of your choice (FAT-32 is only supported, if you use DosFs 2.0) from DOS (maybe Windows works as well, but just firing up a DOS boot disk is much easier, in my opinion). > 3.My Os use Vxworks,what job need to do,can you give me some reference? > What do you mean with that? DosFs and DosFs 2.0 produce something that is not compatible with DOS and/or Windows machines - if you use it to format or partition the disk. At least on x86 - I think this is not platform dependent. You need to either use DOS to format the disk, or rewrite the formatting, partitioning stuff for that. After that, the two can perfectly co-exist on a single disk and access the same data. In particular, you need to use the proper LBA settings and store this values correctly in the MBR. hth Werner --------------------------- Newsgroups: comp.os.vxworks Subject: VxWorks and Diamond's Prometheus Date: Thu, 14 Mar 2002 13:09:18 -0500 From: "Steve Wortley" Organization: Posted via Supernews, http://www.supernews.com Message-ID: Has anyone put Vxworks onto the Prometheus? Steve Wortley --------------------------- Newsgroups: comp.os.vxworks Subject: Re: How to preform periodical task except sysAuxClkRateSet() Date: Thu, 14 Mar 2002 19:04:19 +0100 From: "Werner Schiendl" Message-ID: <3c90e61d@brateggebdc5.br-automation.co.at> References: <5c074538.0203122254.56279c06@posting.google.com> <5c074538.0203131643.765b42c2@posting.google.com> <3c90a3ec@brateggebdc5.br-automation.co.at> <3C90AE69.10201@spamm.me.l8s.co.uk> Hi, "David Laight" wrote in message news:3C90AE69.10201@spamm.me.l8s.co.uk... > >>The frequency I want is 64Hz, 256hz, 320Hz, and 80*n(n=1~3) Hz. > >>And I know that the 320, 80, 160, 240 Hz will not execute accurately, > >>that is what my question. > > > How accurate do you need these? > Is 'long term' or 'short term' most important? > > Don't set the normal clock much above 2k - things start > breaking if you do (select() fails above 2147Hz) > I guess this depends on the actual performance of the CPU?? To which CPU / clock frequency does this apply? Or is it something 'strange' in WRS' handling (calculation) of timeout values? Of course using a high system clock rate eats up some performance. On the other hand, the number of timers in most systems is severly limited. In the case of the original poster, it may be better to have one 256 Hz clock for the 2**n clocks. An other clock would be used for the 320, 240, 160 and 80 Hz -> needs 960 Hz to be exact. regards Werner --------------------------- Newsgroups: comp.os.vxworks Subject: Re: tNetTask takes too long? Date: Thu, 14 Mar 2002 20:20:53 +0200 From: "Leonid Rosenboim" Organization: Verio Message-ID: References: <3C8FCA9E.849D1DC2@fnal.gov> <3C90897C.3008AF07@varndellengineering.com> "Hwa Jin Bae" wrote in message news:u91nob6ifihi3c@corp.supernews.com... [snip] > Since most of these things are done by shifting bits in and out over serial > connections between MAC and PHY, it is easily solvable in a small PLD. Not > much SW can do other than doing it less frequently. > I disagree, H. J. The driver writer could spawn a dedicated task to poll the PHY at low priority, as a last resort. This new task could also me modelled after the tNetTask so it could poll many PHY's one after the other, avoiding sapwning of a separate task per interface. Spawning a task by a driver is much lesser moral offence then spending 4.5 milisec in tNetTask which would have serious impact on network performance. Leonid --------------------------- Newsgroups: comp.os.vxworks Subject: Re: tNetTask takes too long? Date: Thu, 14 Mar 2002 10:50:51 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <3C8FCA9E.849D1DC2@fnal.gov> <3C90897C.3008AF07@varndellengineering.com> <3C90E187.6050409@spamm.me.l8s.co.uk> You shift out 64 bits on MDIO, but you can't do it every other clock tick. MDIO and MDC (clock) has to be synchronized. This really is a problem better solved in HW. MDC can clock up to 2.5mhz and if your MAC is not able to supply this frequency, it may be worth using a oscillator. Also, it is not just full and half duplex. It can be more complicated negotiation or PHY management work that needs to happen in polled fashion. By the way, I left WRS over ten years ago. I'm semi-retired and I am under no gag rule as far as I know. :-) However, I see little sense in bashing a company. After all, we all make use of their product for useful work. It is never the case anyone makes perfect product. But the world is better when there are varieties of products. I favor BSD and Linux, but VxWorks (and others) should thrive as well. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: tNetTask takes too long? Date: Thu, 14 Mar 2002 10:56:44 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <3C8FCA9E.849D1DC2@fnal.gov> <3C90897C.3008AF07@varndellengineering.com> Yes I agree with having seperate task to do this work. But that is not the point. The point is the work is still done by SW and CPU spends that time. If you don't want SW overhead (in any task) then HW solution is better. That is the point I was making. Regarding seperating some work out of netTask, it is a good idea in general. In fact I discuss that extensive in my write up for PSO Stack, which makes liberal use of tasks per driver instantiation to preserve priority of the network traffic (depending on the type of interface) as well as avoid single point of failure in netTask. The file that describes all that is located at: http://www.xs4all.nl/~borkhuis/vxworks/ftp/vxhacks/pso_stack/README - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: question about END driver's unload function...... Date: Thu, 14 Mar 2002 11:11:13 -0800 From: "Dan Gold" Organization: Mailgate.ORG Server - http://www.Mailgate.ORG Message-ID: References: <73a87e9d.0203140246.b1c5627@posting.google.com> <3C90AE8E.10003@spamm.me.l8s.co.uk> Sender: gold@ensemble.com "David Laight" wrote in message news:3C90AE8E.10003@spamm.me.l8s.co.uk... > > if anyone could tell me what i need to do to unload my end driver? > > reboot :-) :-) :-) Alas, this has the undesirable side-affect of (after unloading) then loading the driver again ;-) Back to the OP's question: How are you allocating the driver control structure in the EndLoad() function ? If you're statically allocating it (as I've seen before), you're in trouble. The END_OBJ_UNLOAD(pEnd) will attempt to free the pDrvCtrl pointer. Make sure you've dynamically allocated the driver control structure in xxxEndLoad(). hth, Dan Gold gold@ensemble.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: ln97xEnd - ring buffer size Date: Thu, 14 Mar 2002 11:11:09 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <9d082700.0203120647.5b0439aa@posting.google.com> <3C8E2177.D0B3BA2A@varndellengineering.com> <9d082700.0203132214.4b5f6089@posting.google.com> Did you also change the freeRtn and freeData sizes accordingly in the drvCtrl? - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: tNetTask takes too long? Date: Thu, 14 Mar 2002 14:24:04 -0600 From: Dinker Charak Organization: Fermi National Accelerator Laboratory Message-ID: <3C9106E4.12CB0C58@fnal.gov> References: <3C8FCA9E.849D1DC2@fnal.gov> <3C90897C.3008AF07@varndellengineering.com> So what is recommended? Drop the WRS miiLib? Or drop the PHY check or make it check after longer intervals? Also am waiting for any response from people on 5.4 amd 5.4.2 kernel. The observation that it is only in 5.4.2 kernel needs to be confirmed. Is anyone else also worried about such long delay? Thanks for you help, Dinker Hwa Jin Bae wrote: > > Yes I agree with having seperate task to do this work. But that is not the > point. The point is the work is still done by SW and CPU spends that time. > If you don't want SW overhead (in any task) then HW solution is better. > That is the point I was making. > > Regarding seperating some work out of netTask, it is a good idea in general. > In fact I discuss that extensive in my write up for PSO Stack, which makes > liberal use of tasks per driver instantiation to preserve priority of the > network traffic (depending on the type of interface) as well as avoid single > point of failure in netTask. The file that describes all that is located > at: > > http://www.xs4all.nl/~borkhuis/vxworks/ftp/vxhacks/pso_stack/README > > -- > Hwa Jin Bae > mailto:hjb@pso.com > http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Setting an ethernet port to full duplex Date: 14 Mar 2002 13:02:08 -0800 From: fillmore2@arcor.de (Achim) Organization: http://groups.google.com/ Message-ID: <9d082700.0203141302.a4fddfd@posting.google.com> References: <9d8984ab.0203140505.3529a3ba@posting.google.com> You'll probably have to adapt the driver code (BSP) where it does the initialization of the controller. I would guess that you have to look in the driver documentation for the right register setting, too. Some controllers may offer "auto-negotiation" for the port's operation mode, and it probably would make sense to be the default setting chosen by the driver - with this, the operation mode of the port may also be caused by a connected device. Achim. "doug dotson" wrote in message news:... > I'm pretty sure that is either BSP specific or you have to go > right to the controller to do it. On our platform the ethernet > controllers are on a Galileo chip and we have to go right to > a register to set a bit. > > doug > > "Sandeep" wrote in message > news:9d8984ab.0203140505.3529a3ba@posting.google.com... > > Hi, > > > > How can I set an ethernet port to operate in full duplex? What command/ > > configuration changes are required to accomplish this in VxWorks? > > > > Thanks in advance, > > > > Sandeep > > -- > > www.EventHelix.com > > Distributed, Realtime and Embedded Software Development --------------------------- Newsgroups: comp.os.vxworks Subject: Re: tNetTask takes too long? Date: Thu, 14 Mar 2002 14:11:56 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <3C8FCA9E.849D1DC2@fnal.gov> <3C90897C.3008AF07@varndellengineering.com> <3C9106E4.12CB0C58@fnal.gov> Typically, it depends on what you want. For me, I care less about period checks of PHY so much as being aware of it and having up to date info as I need. So I would reduce the frequency of calls to check PHY. I would recode the driver so that PHY check will happen upon request. The SNMP agent should simply use the API to get the latest PHY info as needed. You should not incur periodic overhead just so that you can have SNMP agent be ready to give answers. That is lower priority than having an efficient system. Typically, BSD and Linux systems will run code to recheck PHY status either after Carrier Sense error interrupt and / or after sending a packet a timer is triggered. If timer runs out and TX is not complete, then you should check PHY. The PHY speed does not change for no reason. Typically it happens because someone unplugs the cable from one port (100mbps) and insert it into another (10mbps), for example. That will generate an error interrupt in most MAC -> driver will then check the carrier sense error bit and recheck the PHY as needed. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Reception of broadacted UDP messages on the same host Date: Fri, 15 Mar 2002 08:52:48 +1030 From: Tim Shaw Organization: Defence Science and Technology Organisation Message-ID: <3C9122B7.25CA38F4@dsto.defence.gov.au> References: We overcame this problem with the dc family of ethernet devices by setting IFF_SIMPLEX. Unfortunately, you have to do this in the driver (you can't set IFF_SIMPLEX after the device is up) so you may need the source code from WRS, or whoever provided your driver. The broadcast should then come back over the loopback interface. Vassilis Panagiotopoulos wrote: > I'm trying unsuccessfully to receive broadcasted UDP messages send by > > a task located on the SAME host with the receiver. > > The following scenario is based on a demo app, > > found in ..\Tornado\target\src\demo\dg\dgTesc.c: > > I'm running a sender/receiver pair of tasks on a PPC860 board, > > with IP address 191.191.191.1 and broadcast address 191.191.255.255. > > I'm using two sockets, socket A which is able to broadcast( > > (SO_BROADCAST flag set with setsockopt()), and socket B, which is able > > to receive broadcasts. Both have been verified with an external application > > hosted on a Win2000 PC to work as intended, regarding broadcasted UDP > messages. > > The problem is that socket B is not able to receive the broadcasts send by > A, > > ie the VxWorks network stack seems to exclude reception of a broadcast > message > > when the sender is located on the same host with the receiver. This is not > > the case for the Win2000 application though, where a broadcasted message > > from there is received by both socket B AND another receiver hosted on the > PC. > > I suspect that there might be a way to enable this feature on the VxWorks > also, > > if anybody knows how, please tell me so. > > -- > Bill Panos --------------------------- Newsgroups: comp.os.vxworks Subject: dosFs2 cluster sizes Date: 14 Mar 2002 14:36:55 -0800 From: agraham@openglobe.net (Aaron Graham) Organization: http://groups.google.com/ Message-ID: <95ebbe31.0203141436.5bf2035d@posting.google.com> Could someone enlighten me on the subject of changing cluster sizes for hard disk drives using dosFs 2.0? There aren't really any configuration methods that involve cluster sizes anywhere in the API's (that I can find). dosFsVolFormat takes 3 parameters, but I only understand one of them. The first parameter is a void* but in all the examples and documentation I've seen, it's a string representing the device name. The second parameter is more self-explanatory. I have no idea what the 3rd parameter does, except I guess it probably lets you interrupt and ask the user the obligatory question. None of these allow you to specify any configuration parameters... So how do I change the cluster size? Aaron --------------------------- Newsgroups: comp.os.vxworks Subject: Re: [AE] BSP and Device Driver Development Date: 14 Mar 2002 14:52:32 -0800 From: strick@hiwaay.net (BS) Organization: http://groups.google.com/ Message-ID: References: <488e459a.0203140159.172eb9a0@posting.google.com> - ------------------------------------------------------------------ Sorry about the lack of information on the first post. Here are answers to the questions below. I hope this will help. 1) How is your driver built? Pre-compiled and included as a binary component, built using the configlette mechanism, or built as a source/component project? [---->] The driver is built using the configlette mechanism. I have a *.cdf file in my BSP directory that describes the driver and location of the source. This particular driver is for a universe II PCI to VME bus bridge. Inside the 00region.sdf file I have 4 region pools defined that will be used to access the config registers, A16, A24, and A32 space of the VME bus. These are areas of memory that were previously defined inside the sysPhysMemDesc[] table for T2. The driver source that I am using is for the most part the same code that was used with previous T2 BSP's, however I have added some code to install the driver into the I/O system. I am using IOCTL calls through the I/O system to call the driver functions. 2) Is your driver an I/O system one, or just a library that exports a number of routines for users to call? [---->] I have the driver installed into the I/O system so that I am able to use IOCTL calls to the driver. I was under the impression that all drivers had to be installed into the I/O system. Are we able to build drivers into the kernel and have functions within that driver callable from every user PD? 3) Does it do any asynchronous or DMA transfers? Does it copy data directly between user space and the device somehow, or does it buffer the data first? [---->] Currently I am not performing any transfers of any kind. All I am trying to do at first is to make driver calls that read and/or write to the configuration registers of the Universe II device. 4) Does it create any kernel objects (e.g. semaphores) or allocate/free any memory (e.g. call malloc()) [---->] Not currently. Finally, tell us more about the sorts of problems you are seeing... does it crash, or just not work correctly? [---->] As mentioned above I have 4 memory regions allocated inside 00region.sdf. From the kernel space I am able to read and write to these regions with no problem. However, from my user PD when I make a IOCTL call to the device driver and try to perform the same register accesses I get a page fault. In my case all I am currently trying to do is access the configuration registers and toggle a bit to disable and enable the VME windows of the Universe II chip. [---->] Here is another question : Are we able to pass structures through the IOCTL calls? Basically have an IOCTL structure defined in the driver, and have all users create a local copy of the structure and fill in the data fields before the call? - ------------------------------------------------------------------ --------------------------- Newsgroups: comp.os.vxworks Subject: Re: [AE] BSP and drivers Date: 14 Mar 2002 14:54:38 -0800 From: strick@hiwaay.net (BS) Organization: http://groups.google.com/ Message-ID: References: - ------------------------------------------------------------- Here is some clarification to my first question. 1) How is your driver built? Pre-compiled and included as a binary component, built using the configlette mechanism, or built as a source/component project? [---->] The driver is built using the configlette mechanism. I have a *.cdf file in my BSP directory that describes the driver and location of the source. This particular driver is for a universe II PCI to VME bus bridge. Inside the 00region.sdf file I have 4 region pools defined that will be used to access the config registers, A16, A24, and A32 space of the VME bus. These are areas of memory that were previously defined inside the sysPhysMemDesc[] table for T2. The driver source that I am using is for the most part the same code that was used with previous T2 BSP's, however I have added some code to install the driver into the I/O system. I am using IOCTL calls through the I/O system to call the driver functions. 2) Is your driver an I/O system one, or just a library that exports a number of routines for users to call? [---->] I have the driver installed into the I/O system so that I am able to use IOCTL calls to the driver. I was under the impression that all drivers had to be installed into the I/O system. Are we able to build drivers into the kernel and have functions within that driver callable from every user PD? 3) Does it do any asynchronous or DMA transfers? Does it copy data directly between user space and the device somehow, or does it buffer the data first? [---->] Currently I am not performing any transfers of any kind. All I am trying to do at first is to make driver calls that read and/or write to the configuration registers of the Universe II device. 4) Does it create any kernel objects (e.g. semaphores) or allocate/free any memory (e.g. call malloc()) [---->] Not currently. Finally, tell us more about the sorts of problems you are seeing... does it crash, or just not work correctly? [---->] As mentioned above I have 4 memory regions allocated inside 00region.sdf. From the kernel space I am able to read and write to these regions with no problem. However, from my user PD when I make a IOCTL call to the device driver and try to perform the same register accesses I get a page fault. In my case all I am currently trying to do is access the configuration registers and toggle a bit to disable and enable the VME windows of the Universe II chip. [---->] Here is another question : Are we able to pass structures through the IOCTL calls? Basically have an IOCTL structure defined in the driver, and have all users create a local copy of the structure and fill in the data fields before the call? - ------------------------------------------------------------- --------------------------- Newsgroups: comp.os.vxworks Subject: Re: tNetTask takes too long? Date: Fri, 15 Mar 2002 00:14:37 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C913D61.90603@spamm.me.l8s.co.uk> References: <3C8FCA9E.849D1DC2@fnal.gov> <3C90897C.3008AF07@varndellengineering.com> <3C9106E4.12CB0C58@fnal.gov> > The PHY speed does not change for no reason. Typically it happens because > someone unplugs the cable from one port (100mbps) and insert it into another > (10mbps), for example. That will generate an error interrupt in most > MAC -> driver will then check the carrier sense error bit and recheck the > PHY as needed. No other error is likely to be generated. ok 64 bits @ 25MHz is 25 micro secs - not loads of millsecs... Anyway, provided nothing else uses the MII you can change/sample the data on one clock tick and change the clock on the next. All the timeout (wd) calls are quite expensive per bit, but not that expensive overall. Who knows how WRS managed to take 0.5 ms clocking out 64 bits. Clearly if a process desparately wants to know the status it must suffer the time penalty. But no whay is this required every 5ms. David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: How to preform periodical task except sysAuxClkRateSet() Date: Fri, 15 Mar 2002 00:22:23 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C913F32.4050007@spamm.me.l8s.co.uk> References: <5c074538.0203122254.56279c06@posting.google.com> <5c074538.0203131643.765b42c2@posting.google.com> <3c90a3ec@brateggebdc5.br-automation.co.at> <3C90AE69.10201@spamm.me.l8s.co.uk> <3c90e61d@brateggebdc5.br-automation.co.at> >>Don't set the normal clock much above 2k - things start >>breaking if you do (select() fails above 2147Hz) > I guess this depends on the actual performance of the CPU?? > To which CPU / clock frequency does this apply? > > Or is it something 'strange' in WRS' handling (calculation) of timeout > values? select() has to change a time is seconds and microseconds to clock ticks. To do this it multiples the number of us by the clock rate then divides by 1000000. If the number of us is high, and the clock rate exceeds 2147 then the product exceeds 2^31. Since the division is signed this generates a very large timeout value (quite likely to zap vxTicks). Certainly enough to cause the task to wait forever is the timeout is 'expected'. Were the division unsigned, then select would just return early...... David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: question about END driver's unload function...... Date: Fri, 15 Mar 2002 00:26:18 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C91401F.70005@spamm.me.l8s.co.uk> References: <73a87e9d.0203140246.b1c5627@posting.google.com> <3C90AE8E.10003@spamm.me.l8s.co.uk> > Back to the OP's question: How are you allocating the driver control > structure in the EndLoad() function ? If you're statically allocating it > (as I've seen before), you're in trouble. The END_OBJ_UNLOAD(pEnd) will > attempt to free the pDrvCtrl pointer. Make sure you've dynamically > allocated the driver control structure in xxxEndLoad(). I couldn't convince myself that there were no race conditions when removing an ethernet driver. (ISTR you can't even safely delete a route!) My pcmcia driver left the interface present (but marked it down and discarded any tx requests) when the card was removed. Just seemed safer. After all, will your final customer system require you to support removing the interface? David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Reception of broadacted UDP messages on the same host Date: Fri, 15 Mar 2002 00:29:40 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C9140E7.4070001@spamm.me.l8s.co.uk> References: <3C9122B7.25CA38F4@dsto.defence.gov.au> Well, the usual (non WRS) standards for ethernet drivers require them to receive transmitted broadcasts/multicasts if they would have received them if someone else had sent them. The BSD derived TCP/UDP stack may be expecting that behaviour..... No idea what your drivers does, I saw no hint of the requirement to loop back tx broadcasts in the WRS END driver we had... David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Setting an ethernet port to full duplex Date: Fri, 15 Mar 2002 00:34:46 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C914219.4090009@spamm.me.l8s.co.uk> References: <9d8984ab.0203140505.3529a3ba@posting.google.com> <9d082700.0203141302.a4fddfd@posting.google.com> Achim wrote: > You'll probably have to adapt the driver code (BSP) where it does the > initialization of the controller. I would guess that you have to look > in the driver documentation for the right register setting, too. > Some controllers may offer "auto-negotiation" for the port's operation > mode, and it probably would make sense to be the default setting > chosen by the driver - with this, the operation mode of the port may > also be caused by a connected device. You definitely need to ensure that the PHY (hiding behind the MII interface) and the MAC agree on the use of full duplex. Getting a mismatch will destroy your throughput. You will need the PHY spec to find out which (phy dependant) register to read in order to find the current mode. This will (almost certainly) have to be polled in s/w. (If you use the WRS MII library, be prepared for your system to stop for 5ms). You might find it easier to just disable FDX on the PHY (clear the bits from the ANAR register) and set the MAC to HDX. Look at FDX if you actually determine that LAN latency if your performance bottleneck. David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: question about END driver's unload function...... Date: Thu, 14 Mar 2002 17:04:17 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <73a87e9d.0203140246.b1c5627@posting.google.com> <3C90AE8E.10003@spamm.me.l8s.co.uk> <3C91401F.70005@spamm.me.l8s.co.uk> Some drivers are virtual and can be instantiated or deleted as needed. For example, PPPoE. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Sandpoint3 system Date: 14 Mar 2002 17:22:32 -0800 From: burst_slick@cmmail.com (slick) Organization: http://groups.google.com/ Message-ID: Hi, all: I have a MPPMC8245 board on the SandPoint 3 . but the default settings on SW3,4 don't match the Unity X4(MPPMC824X) Configuration Guide, 1. what can I do it to the test the board? 2. select the develop tools :what, and how to execute programe on it step by step? 3.the system if provide me some documents or not? but it doesn't give me anthing (about the specified tails to the board) except the common document for the Unity X4, is it ok ? Thanks. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: How to preform periodical task except sysAuxClkRateSet() Date: 14 Mar 2002 17:26:24 -0800 From: allencyl@my-deja.com (Allen Chang) Organization: http://groups.google.com/ Message-ID: <5c074538.0203141726.537eb8e1@posting.google.com> References: <5c074538.0203122254.56279c06@posting.google.com> <5c074538.0203131643.765b42c2@posting.google.com> <3c90a3ec@brateggebdc5.br-automation.co.at> <3C90AE69.10201@spamm.me.l8s.co.uk> <3c90e61d@brateggebdc5.br-automation.co.at> "Werner Schiendl" wrote in message news:<3c90e61d@brateggebdc5.br-automation.co.at>... > Hi, > > "David Laight" wrote in message > news:3C90AE69.10201@spamm.me.l8s.co.uk... > > >>The frequency I want is 64Hz, 256hz, 320Hz, and 80*n(n=1~3) Hz. > > >>And I know that the 320, 80, 160, 240 Hz will not execute accurately, > > >>that is what my question. > > > > > > How accurate do you need these? > > Is 'long term' or 'short term' most important? > > > > Don't set the normal clock much above 2k - things start > > breaking if you do (select() fails above 2147Hz) > > > > I guess this depends on the actual performance of the CPU?? > To which CPU / clock frequency does this apply? > > Or is it something 'strange' in WRS' handling (calculation) of timeout > values? > > Of course using a high system clock rate eats up some performance. > On the other hand, the number of timers in most systems is severly limited. > > In the case of the original poster, it may be better to have one 256 Hz > clock for the 2**n clocks. > An other clock would be used for the 320, 240, 160 and 80 Hz -> needs 960 Hz > to be exact. > > regards > Werner Hello All, In general, My task will execute at (64*n)Hz, but when being set, the whole task needs to execute at (80*n)Hz. For the 64*nHz task I can use sysAuxClkRateSet(), but for 80*nHz one... that is the problem. Regards, Allen Chang --------------------------- Newsgroups: comp.os.vxworks Subject: Re: help for hard disk Date: 14 Mar 2002 17:30:33 -0800 From: winter_lin2000@yahoo.com.cn (winter) Organization: http://groups.google.com/ Message-ID: <7863b471.0203141730.4934b9d9@posting.google.com> References: <7863b471.0203131915.2439e089@posting.google.com> thank you Leonid, In your means,I only can use CompactFlash disk or cf card,is that right? If I want use hard disk which is used in PC,may I use PCMCIA interface? There are many diferent signals,what should I do? Can you give me some advice? Thanks again! Winter "Leonid Rosenboim" wrote in message news:... > One way to do this, is use the 860's PCMCIA interface > to connec to a CompactFlash disk, and then use dosFs > on top of that. > CF is a subset of PCMCIA signals, and you can also use > a mechanical adapter to connect CF cards onto the ADS860 eval board. > > Leonid > --------------------------- Newsgroups: comp.os.vxworks Subject: muxDevStart function failed. Date: 14 Mar 2002 21:48:22 -0800 From: jychoi@cisl.snu.ac.kr (Jae Young Choi) Organization: http://groups.google.com/ Message-ID: <220aeb02.0203142148.7b873564@posting.google.com> Hello everyone. I'm developing MPC8260 BSP. I want to boot my hardware board using FCC. But, my BSP says "Failed to start device motfcc" I find the source code in bootConfig.c like below. - --------------------------------------------------------------------- pEnd = endFindByName (bootDev, params.unitNum); if (!attached && (pEnd != NULL)) { if (muxDevStart (pEnd) != OK) { printf("Failed to start device %s\n", bootDev); return (ERROR); } - ----------------------------------------------------------------------- I checked muxDevLoad function and it works well. However muxDevStart function returns ERROR. What causes muxDevStart function failed? Please let me know any idea. Thanks in advance. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: [AE] BSP and drivers Date: 14 Mar 2002 23:17:26 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203142317.114b12be@posting.google.com> References: Hello, I've deleted the stuff that had no questions or followups... > 2) Is your driver an I/O system one, or just a library that exports a > number of routines for users to call? > > [---->] I have the driver installed into the I/O system so that I am able to > use IOCTL calls to the driver. I was under the impression that all drivers > had to be installed into the I/O system. Are we able to build drivers into > the kernel and have functions within that driver callable from every user PD? Yes, you can add routines to the kernel and make them entry points. Simply define the functions you want called in the component's ENTRY_POINTS section in the CDF. > Finally, tell us more about the sorts of problems you are seeing... > does it crash, or just not work correctly? > > [---->] As mentioned above I have 4 memory regions allocated inside > 00region.sdf. From the kernel space I am able to read and write to these > regions with no problem. However, from my user PD when I make a IOCTL call to > the device driver and try to perform the same register accesses I get a page > fault. There should be no difference here since your driver code is executed in supervisor mode in both cases, and the context information should be in all contexts. You can check on this easily using vxContextShow()... I would install the target tools and core show routine bundles into your kernel, then boot a kernel-only system. Once you have the shell prompt on the console, use vmContextShow() to verify the mappings for your four regions. If all is OK here, create a user domain at the shell. Switch the shell to the user domain, and repeat the vmContextShow(). The addresses should still be mapped and have the same attributes (probably supervisor only RWX). Next experiment is to make the actual ioctl routine for your driver visible to the user domain using the ENTRY_POINTS keyword in the CDF. Rebuild and reboot, then try calling the routine first from the kernel, then from a user domain via the shell. If that gets you nowhere, post the sections from your 00region.sdf file and the point in the ioctl routine that fails along with the register dump (ti output) for the task. > In my case all I am currently trying to do is access the configuration > registers and toggle a bit to disable and enable the VME windows of the > Universe II chip. > > > [---->] Here is another question : Are we able to pass structures through the > IOCTL calls? Basically have an IOCTL structure defined in the driver, and > have all users create a local copy of the structure and fill in the data > fields before the call? You can pass pointers to structures, but data can only be transferred across the boundary by the driver code. When you call the kernel from user space all that happens is the CPU mode is changed. That change enables the mappings for the kernel that were already a part of the user domain's context, and leaves all the others in place too. So, while a user domain task is executing in the kernel space, it can see everything that was available to it in user mode *and* the kernel's address space too. Now, if you are doing this, remember that the driver cannot see that memory when called from a different domain, so if you need the data passed from one of the user level copies to be maintained in the state information for the driver you'll need to copy it into a kernel memory structure. HTH, John... PS Feel free to email if you think the info is too long to post. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: help for hard disk Date: Fri, 15 Mar 2002 09:22:20 +0200 From: "Leonid Rosenboim" Organization: Verio Message-ID: References: <7863b471.0203131915.2439e089@posting.google.com> <7863b471.0203141730.4934b9d9@posting.google.com> CF is not your only choise by all means, but its the easiest, because the CF hardware interface is quite close to PCMCIA. Standard PC disk drives all use IDE interface, and you would need an PCI/IDE chip to handle them properly. This will cost more but will yield greater performance, worse reliability. Depende on what you really need. "winter" wrote in message news:7863b471.0203141730.4934b9d9@posting.google.com... > thank you Leonid, > In your means,I only can use CompactFlash disk or cf card,is that right? > If I want use hard disk which is used in PC,may I use PCMCIA interface? > There are many diferent signals,what should I do? > Can you give me some advice? > Thanks again! > Winter > > "Leonid Rosenboim" wrote in message news:... > > One way to do this, is use the 860's PCMCIA interface > > to connec to a CompactFlash disk, and then use dosFs > > on top of that. > > CF is a subset of PCMCIA signals, and you can also use > > a mechanical adapter to connect CF cards onto the ADS860 eval board. > > > > Leonid > > --------------------------- Newsgroups: comp.os.vxworks Subject: Virtual keyboard in PJWorks Date: Fri, 15 Mar 2002 08:19:54 +0100 From: "Romano Signorelli" Organization: Centro Servizi Interbusiness Message-ID: Hello. I would send virtual keystrokes to the JVM. The keystrokes codes are read from a stream. The must: use the standard (PC) keyboard and this virtual keyboard, simultaneously. How can I send arbitrary keystrokes to the JVM? Note: keystrokes must be sent to the entire application, not only to a particolar component. Like standard keyboard does. Final result: I must simulate the standard keyboard that can be not present in the system (embedded application). Note: I don't want to use onscreen virtual keyboard. I haven't mouse and I haven't PC keyboard. I have only a few keys, read from I/O and sent to a stream. Any ideas? Thanks in advance, bye. Romano Signorelli --------------------------- Newsgroups: comp.os.vxworks Subject: Re: dosFs2 cluster sizes Date: Fri, 15 Mar 2002 09:35:57 +0200 From: "Leonid Rosenboim" Organization: Verio Message-ID: References: <95ebbe31.0203141436.5bf2035d@posting.google.com> Aaron, the cluster size is only set during formatting, so that if you format the disk drive under a different OS, then dosFs will use the file system in that particular format, to make sure the other OS will accept the file system sunsequently. The volId parameter is documented to be either the volume ID as returned from the dosFsVolCreate() function, or a device name string which will be automatically converted to a valid volId, this is to make things easier for Shell experimentations etc. I will skip the explanation of the second argument as you have understood it already. The third argument, is a callback function that can be used to display various details about the format and parameters, require user confirmation, and gives the user a chanse to CHANGE any of the format parameters. So if you hook your own callback to dosFsVolFormat(), it will get a pointer to a DOS_VOL_CONFIG structure, and within that callback you can change any of the fields in this structure, which will take effect when your callback returns and format commences. Note that these params will be checked for sanity once again after your callback, but changing the cluster size toa reasinable value should be pretty straight forward. Please note that other implementations of FAT32 are rather picky about the size of clusters, so data interchange can be an issue if needed. hope this helps, Leonid "Aaron Graham" wrote in message news:95ebbe31.0203141436.5bf2035d@posting.google.com... > Could someone enlighten me on the subject of changing cluster sizes > for hard disk drives using dosFs 2.0? There aren't really any > configuration methods that involve cluster sizes anywhere in the API's > (that I can find). dosFsVolFormat takes 3 parameters, but I only > understand one of them. > > The first parameter is a void* but in all the examples and > documentation I've seen, it's a string representing the device name. > The second parameter is more self-explanatory. I have no idea what > the 3rd parameter does, except I guess it probably lets you interrupt > and ask the user the obligatory question. None of these allow you to > specify any configuration parameters... > > So how do I change the cluster size? > > Aaron --------------------------- Newsgroups: comp.os.vxworks Subject: Re: [AE] BSP and drivers Date: 15 Mar 2002 00:36:03 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203150036.58e0f452@posting.google.com> References: Hello again, > In previous Tornado BSP's we would provide drivers where the user > would be able to attach their own ISR's if they wish to handle the > interrupt, however, in the AE environment, how are we supposed to > provide user ISR's from a PD if all ISR are supposed to be in the > Kernel domain? If you need to notify user level code of events there are really only two mechanisms available: 1) Have the user code execute as a task that makes a blocking call. This could be a semaphore, a message queue or even a call to read say on a file descriptor owned by the driver. 2) Send a signal to a tasks in the user space that can handle the interrupt. HTH, John... --------------------------- Newsgroups: comp.os.vxworks Subject: problem about RapidControl Date: 15 Mar 2002 00:43:06 -0800 From: yatc@21cn.com (lyman) Organization: http://groups.google.com/ Message-ID: Now, I encounter a problem when using CLI. That is my typing from HyperTerminal is alway echo again on srceen ,especially my password ,which can also be displayed . You know that is terrible. Any comments are welcome and grateful! --------------------------- Newsgroups: comp.os.vxworks Subject: Re: how do I program device driver on vxworks Date: 15 Mar 2002 01:27:17 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203150127.6a57fc51@posting.google.com> References: <6fe967ba.0203131740.7cda7c64@posting.google.com> <3c90df67$1@brateggebdc5.br-automation.co.at> Hello, > (This is for 'normal' VxWorks 5.4, VxWorks AE may be different to some > extent) No, AE works the same way... all just as simple. Rgds, John... --------------------------- Newsgroups: comp.os.vxworks Subject: Wanted SupportFreaks.com Scouts Date: Friday, 15 Mar 2002 03:48:30 -0600 From: no.email.address.entered@none444.yet Organization: Message-ID: <15030203.4830@none444.yet> Reply-To: sloar51@hotmail.com Marketing Computer and Internet Support, Programming, and Web Development The Scout position is an opportunity that allows you to work from home, set your own hours, doesn't require travel or time away from your loved ones, allows you to build residual commissions while helping you work towards financial security. The Scout position is about marketing computer and Internet support, programming, web development and consulting services to businesses, partners, and individuals. This is a full-time or part-time contract position. For full details and application, see http://thedellgod.supportfreaks.com/scout.cgi --------------------------- Newsgroups: comp.os.vxworks Subject: What cause my USB driver error, .o or .a? Date: 15 Mar 2002 02:30:53 -0800 From: thatbird@263.net (thatbird) Organization: http://groups.google.com/ Message-ID: I have develop a USB driver under vxworks. The device is used to read some data from smart card. But I found that there is a problem. the driver works well, when it is comple to .o file. But when it is comple to .a file, the driver will lead the device to error state. What is differece between .o and .a? Can it cause this prolem? --------------------------- Newsgroups: comp.os.vxworks Subject: Looking for a Fortran compiler Date: Fri, 15 Mar 2002 10:57:33 +0100 From: Quenot Helene - GRE Organization: SchlumbergerSema Grenoble Message-ID: <3C91C58C.8623A08B@grenoble.sema.slb.com> Target System : pentium III PCI, with VxWorks OS I need to run existing Fortran software on a new target system, based on Pentium PC/VxWorks. How can I manage that problem : Do I need to convert my programs from Fortran to C++ or does anybody know about a compiler or cross-compiler that I could use to generate FORTRAN code for PC/VxWorks ? Thanks for your help. Helene Quenot e-mail : hquenot@grenoble.sema.slb.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: What cause my USB driver error, .o or .a? Date: Fri, 15 Mar 2002 06:40:20 -0500 From: joe durusau Organization: BELLSOUTH.net Message-ID: <3C91DDA4.DE0BE48A@bellsouth.net> References: thatbird wrote: > I have develop a USB driver under vxworks. The device is used to read > some data from smart card. But I found that there is a problem. the > driver works well, when it is comple to .o file. But when it is > comple to .a file, the driver will lead the device to error state. > > What is differece between .o and .a? Can it cause this prolem? Well, you really can't _compile_ to a .a file. .a files are generated by ar or some similar utility, as they are supposed to be archives of .o files. You would have to show what you ar trying to do in order for someone to spot the error. Speaking only for myself, Joe Durusau --------------------------- End of New-News digest ********************** From vxwexplo-errs@csg.lbl.gov Fri Mar 15 10:39:56 2002 From: Satish Narayan Karat Date: Fri Mar 15 10:39:58 PST 2002 Subject: ip stack question Hi, I'm a user of the VxWorks RTOS. I have the following question regarding IP stack in VxWorks. I have a switch that has a network processor and a controlling processor MPPC860. I'm running vxworks on the MPPC860. The network processor is runnig a propritary os.The vxworks processor has a dedicated ethernet port (called the admin port) that it used to download image from the network and other things. My switch interfaces are associated with the network processor and the vxworks processor has no idea about this interfaces. Now when a ip packet arrives on one of the switch interfaces and is destined to the switch, the network hands over then to the MPPC860. It expected that ip processing be done on these packtes on the vxworks processor. But I cannot insert these packtes in the the vxworksIP stack. question: Can you please tell how I can insert these packtes into the vxworks ip stack (at the bottom). Note the special thing about this packtes is that they have not arrived at a interface known to vxworks. From vxwexplo-errs@csg.lbl.gov Fri Mar 15 14:36:20 2002 From: "Venkat" Date: Fri Mar 15 14:36:22 PST 2002 Subject: software to monitor fan speed with Intel 815 or D845BG motherboard (VxWorks OS)? I want to findout if you are able to monitor fan speed with Intel D845BG motherboard on VxWorks. I am able to get the code to work with Linux but not on VxWorks? The code is pretty striaght forward. Linux to Vxworks conversion did not work. Linux based code is at http://www.lsc-group.phys.uwm.edu/~ballen/driver/fan-1.2/fan.txt This is a simple fan-monitor and control module for the SMSC LPC47M1xx family of Super I/O Controllers. These allow two system fans to have their speeds monitored and controlled. The supported chips are LPC47M10x, LPC47M120, LPC47M13x, and LPC47M14x. This chip is used on a number of Intel Pentium Motherboards, including the D815EEA, D815EEA2, D815EFV, and others. I just want to find out if anyone has written code to dump system information such as fan speed, CPU temperature, power supply voltage etc. Your response will be highly appreiated. Thanks, Venkat From vxwexplo-errs@csg.lbl.gov Fri Mar 15 15:10:49 2002 From: "Venkat" Date: Fri Mar 15 15:10:52 PST 2002 Subject: software to monitor fan speed with Intel 815 or D845BG motherboard (VxWorks OS)? vxwexplo@lbl.gov, inquiries@windriver.com I want to findout if you are able to monitor fan speed with Intel D845BG motherboard on VxWorks. I am able to get the code to work with Linux but not on VxWorks? The code is pretty striaght forward. Linux to Vxworks conversion did not work. Linux based code is at http://www.lsc-group.phys.uwm.edu/~ballen/driver/fan-1.2/fan.txt This is a simple fan-monitor and control module for the SMSC LPC47M1xx family of Super I/O Controllers. These allow two system fans to have their speeds monitored and controlled. The supported chips are LPC47M10x, LPC47M120, LPC47M13x, and LPC47M14x. This chip is used on a number of Intel Pentium Motherboards, including the D815EEA, D815EEA2, D815EFV, and others. I just want to find out if anyone has written code to dump system information such as fan speed, CPU temperature, power supply voltage etc. Your response will be highly appreiated. Thanks, Venkat From vxwexplo-errs@csg.lbl.gov Sat Mar 16 04:03:16 2002 From: Vxworks Exploder Date: Sat Mar 16 04:03:18 PST 2002 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Sat Mar 16 04:03:10 PST 2002 Subject: Re: How to preform periodical task except sysAuxClkRateSet() Subject: ipAttach - c vs c++ Subject: Re: Strange ccarm error message. Subject: A question about TIMER design in vxworks Subject: Re: Looking for a Fortran compiler Subject: Re: Machine Check Exception Subject: Re: How to preform periodical task except sysAuxClkRateSet() Subject: VxWorks image & headers Subject: Re: Strange ccarm error message. Subject: Re: Should the IP header be 4 bytes(long word) align? Subject: vxWorks: using time & date package Subject: VX_FP_TASK taskSpawn option Subject: Re: vxWorks: using time & date package Subject: Re: Should the IP header be 4 bytes(long word) align? Subject: Re: Should the IP header be 4 bytes(long word) align? Subject: Can I associate a destination with a specific interface in the routing table? Subject: MAC address gets flipped after boot?? Subject: loadModule: Relocation value does not fit in 24 bits Subject: Re: MAC address gets flipped after boot?? Subject: Re: Read on serial does not block Subject: Re: help for hard disk Subject: Re: Machine Check Exception Subject: Re: loadModule: Relocation value does not fit in 24 bits Subject: Re: loadModule: Relocation value does not fit in 24 bits ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Re: How to preform periodical task except sysAuxClkRateSet() Date: Fri, 15 Mar 2002 13:47:50 +0100 From: "Werner Schiendl" Message-ID: <3c91ed7c$1@brateggebdc5.br-automation.co.at> References: <5c074538.0203122254.56279c06@posting.google.com> <5c074538.0203131643.765b42c2@posting.google.com> <3c90a3ec@brateggebdc5.br-automation.co.at> <3C90AE69.10201@spamm.me.l8s.co.uk> <3c90e61d@brateggebdc5.br-automation.co.at> <5c074538.0203141726.537eb8e1@posting.google.com> Hi, Maybe you can exchange the system clock with the auxilary clock if you change the BSP sources. I'm not sure, but I think the appropriate stuff should be in sysLib.c and friends (the files included from within sysLib.c) Be advised, that the sysClk on x86 is not 'freely' programmable in real-world units either (e. g. usec, or Hz) - it uses some odd clock rate internally that I don't know where to look it up right now (maybe its stated in the BSP docs or sources....). So you'll be off a little bit using this clock, but you can certainly set it to whatever clock rate (from 1 Hz to the clock rate of the chip) you like. Another option would probably be to change the auxilary clock code as described in an other post in this thread. hth Werner "Allen Chang" wrote in message news:5c074538.0203141726.537eb8e1@posting.google.com... - -- snip -- > > Hello All, > > In general, My task will execute at (64*n)Hz, but when being set, > the whole task needs to execute at (80*n)Hz. > For the 64*nHz task I can use sysAuxClkRateSet(), but for 80*nHz one... > that is the problem. > > Regards, > > Allen Chang --------------------------- Newsgroups: comp.os.vxworks Subject: ipAttach - c vs c++ Date: 15 Mar 2002 05:23:51 -0800 From: dwh8@yahoo.com (David) Organization: http://groups.google.com/ Message-ID: <8fe86b76.0203150523.37bcf451@posting.google.com> This is probably a basic c vs c++ question, but I ran into it when using ipAttach so here goes: I have a c++ program that uses ipAttach. When I try to build it into a vxworks image I get an undefined reference error on ipAttach if I include "ipProto.h" #include "ipProto.h" I don't get the error if I dont include "ipProto" and instead use extern "C" { int ipAttach (int unit,char *pDevice); } What gives? Secondary question (of less importance): While I'm on the subject of c vs c++, I was tasked with the conversion of an application from PSOS (using a Diab C compiler) to vxworks (using the included gnu based compiler). The original files had the .cc suffix and made extensive use of the "//" comment delimeters. When I tried to compile the files in vxworks (Tornado) I of course got numerous parse errors. Instead of converting all of the "// XXX" to "/* XXX */", I opted to convert all the files to .cpp. I just curious why a later version of a c compiler (vxworks) make such a fuss about the "//" comments while the prior version worked fine? Thanks for any help on these begginer C/C++ questions. David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Strange ccarm error message. Date: 15 Mar 2002 05:42:39 -0800 From: wzhliang@postmaster.co.uk (lang2) Organization: http://groups.google.com/ Message-ID: References: Bill Pringlemeir wrote in message news:... > lang2> Could anyone tell me what the following message mean? > lang2> initializer element for `_localExceptionContext_.next' is not > lang2> computable at load time. > > It helps immensely if you can give more details, like the C++ code > that has localExceptionContext in some sort of array context. "is not > computable at load time" means that you have made something static and > attempted to use some sort of dynamic quantity to initialize it or to > describe the size of an array [at least those are my guesses]. > > Does "localExceptionContext" exist within your source code? Which > processor and compiler are you using? This might be a special C++ > label for an exception, so you might be doing something wrong with an > exception object. The code is actually in C. And it compiles fine with gcc. It is actaully a exception handeller emulator if you check the following link out: http://ldeniau.home.cern.ch/ldeniau/html/exception/exception.html The following is the code where ccarm is complainning about: /*---------------------------------------------------------*/ #define try \ do { \ struct _exceptionContext_ *const _returnExceptionContext0_ = \ _returnExceptionContext_; \ struct _exceptionContext_ *const volatile _returnExceptionContext_ = \ _returnExceptionContext0_ ? _returnExceptionContext0_: \ _currentExceptionContext_; \ struct _exceptionContext_ _localExceptionContext_ = \ { _currentExceptionContext_ }; \ /* ^^^^^^^^^^^^^^^^ here */ _currentExceptionContext_ = &_localExceptionContext_; \ (void)_returnExceptionContext_; \ do { \ int const exception = \ _save_context_buffer_(_currentExceptionContext_->context); \ if (!exception) { --------------------------- Newsgroups: comp.os.vxworks Subject: A question about TIMER design in vxworks Date: 15 Mar 2002 05:44:43 -0800 From: zjh_future@263.net (zjh) Organization: http://groups.google.com/ Message-ID: <8cd11808.0203150544.550ad069@posting.google.com> hi,all I have to design a timer in vxworks use tickLib.h .This need myself maintain a timer list and broke them once a tick. I want to know the detail of timer API about Vxworks:SUCH AS timer_create( ) timer_start( );timer_stop( );timer_del( ) . Then I can use the API vxworks provied.Have anyone done this thing?Can you share your experience with me? I also have another question on the difference of "exit( ) " between Linux and Vxworks?Do the exit( ) close all the file have been opened? All thanks!! your sincerely :zhang jianhui --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Looking for a Fortran compiler Date: Fri, 15 Mar 2002 14:28:56 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C92059D.2090203@spamm.me.l8s.co.uk> References: <3C91C58C.8623A08B@grenoble.sema.slb.com> Quenot Helene - GRE wrote: > Target System : pentium III PCI, with VxWorks OS > > I need to run existing Fortran software on a new target system, based on > Pentium PC/VxWorks. > > How can I manage that problem : > > Do I need to convert my programs from Fortran to C++ or does anybody > know about a compiler or cross-compiler that I could use to generate > FORTRAN code for PC/VxWorks ? I believe that the later versions of gcc will compile fortran 77. You might have to write ASM hooks to call C from fortran and v.v. The Fortran I wrote was for a pdp11 :-) David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Machine Check Exception Date: Fri, 15 Mar 2002 14:41:05 +0000 From: David Machin Message-ID: <3C920801.37DAA692@baesystems.removethis-nospam.com> References: <488e459a.0201180048.23f0ed9d@posting.google.com> <3C4B7627.B304755F@sympatico.ca> <2ede7703.0201210625.666f9918@posting.google.com> I apologise for replying so long after the original post. My client had similar problems with a PPC 750 processor running Tornado 2 - the main symptom being a Machine Check exception where the code and register set appeared to be fine We investigated this with the assistance of the hardware vendor and could find no obvious underlying cause (such as a transfer abort to a peripheral etc.) It is worth noting that a posted write to a peripheral (especially over PCI) is often the cause of this kind of behaviour, as the resulting exception is asynchronous with the instruction sequence and could occur hundreds of cycles after the instruction that caused it. We found that the rate of failure was affected by where the executable was located in memory (i.e. moving the same executable to a different place would change the behaviour) - but extensive RAM tests and testing on other boards seemed to rule out any memory problems. We also found that code which performed intensive operations on large complex data structures was particularly badly affected. Based on what we observed, we suspected some form of caching problem was to blame, and thus disabled the level 2 cache. Since doing this we have not seen the problem again. The board vendor has a TSR with windriver to investigate this problem as we suspect it may involve swapping of Page Table Entries (PTEs) - I would be very interested to hear from anyone else who has had problems with the PPC750 running T2 with level 2 cache enabled. HTH Dave Machin Machin Consultants Ltd. working on behalf of BAE SYSTEMS kannan wrote: > > Hi Yves, > > > we are having a similar problem with our system. A machine check > > exception is happening ... in a streaming method. It runs through the > > code on a number of occasion, than one time it produces an exception. > > This problem comes and goes with re-compiles... We have created a ring > > buffer with which all tasks check in on a task switch, to try and > > identify the task causing the problem, but have yet to succeed... > > The contents that are printed in the console after getting the > exception are: > > 1).Exception current instruction address > 2).Machine Status Register > 3).Condition Register > 4).TaskId > 5).TaskName > > so probably you will get that particular taskName and taskId which > causes the > Exception .Suppose if you are going a hanged state then probably you > can write your own handler to logMsg the taskName and taskId in the > console. > So you will isolate the code which creates those exception.Check > whether > your default handler(VxWorks) makes that particular task which creates > exception to suspended state? If so you can only check the task which > goes to the suspended state. > > > the machine check exception can be caused by parity, invalid instruction > > and some bus errors (I don't have my PPC manual with me). > > > > Any suggestions on finding (what I assumed to be) the stray pointer > > would be welcomed at this point. > > > > PPC 750, Tornado II (with TCP2) on NT. We are using watchdogs. > > check whether your code has any invalid memory access. > > check this code : > > void machineChecktest (void) > { > printf("\n Test Task"); > d (0xffffffff); /*some Invalid address*/ > printf("\n Machine check exception test code over\n"); > } > > ->sp machineChecktest > > test this code and see whether the machine check exception > is happening ... in a streaming method or you are able > to get the machine check exception only once and also check > whether you get that task machineChecktest to suspended state > and the taskName and taskId are printed in your console. > > Rgds, > kannan > > Yves wrote in message news:<3C4B7627.B304755F@sympatico.ca>... > > John wrote: > > > > > > Hello, > > > > > > Which type of PPC are you using, and what version of VxWorks? Also, > > > what else is running on your target at the time, or is it just the > > > serial output? In particular, are you using things like watchdogs or > > > POSIX timers? > > > > > > Rgds, > > > > > > John... > > > > > > "martin brook" wrote in message news:... > > > > Hi, > > > > > > > > I'm having problems with my application getting random machine check > > > > exceptions (0x200). The exception address reported does not correspond to > > > > any code which may cause a machine check. I understand that the exception > > > > reporting can be delayed so giving no clue as to where the exception is > > > > occuring. > > > > > > > > Has anyone got a method of debugging these exceptions ? or a way of turning > > > > the machine check off ? > > > > > > > > My app is doing a lot of serial I/O on ports 0/1 which are set to > > > > 115200baud. > > > > > > > > TIA martin > > > > > > > > > > > > > > > > --- > > > > Outgoing mail is certified Virus Free. > > > > Checked by AVG anti-virus system (http://www.grisoft.com). > > > > Version: 6.0.313 / Virus Database: 174 - Release Date: 1/3/02 > > > > Hi, > > > > we are having a similar problem with our system. A machine check > > exception is happening ... in a streaming method. It runs through the > > code on a number of occasion, than one time it produces an exception. > > This problem comes and goes with re-compiles... We have created a ring > > buffer with which all tasks check in on a task switch, to try and > > identify the task causing the problem, but have yet to succeed... > > > > the machine check exception can be caused by parity, invalid instruction > > and some bus errors (I don't have my PPC manual with me). > > > > Any suggestions on finding (what I assumed to be) the stray pointer > > would be welcomed at this point. > > > > PPC 750, Tornado II (with TCP2) on NT. We are using watchdogs. > > > > thanks > > > > Yves --------------------------- Newsgroups: comp.os.vxworks Subject: Re: How to preform periodical task except sysAuxClkRateSet() Date: Fri, 15 Mar 2002 14:52:00 +0000 From: David Machin Message-ID: <3C920A90.A9B8CB02@baesystems.removethis-nospam.com> References: <5c074538.0203122254.56279c06@posting.google.com> Use the watchdog timer (or better still an alarm timer) to trigger and ISR that will: - - Reprogram the watchdog timer for the next event (if required). - - Signal a semaphore. Then provide a task which loops, waiting on this semaphore to run. If you use a watchdog timer which requires reprogramming you may get some drift due to the latency between timer expiry and the ISR running. HTH Dave Machin Machin Consultants Ltd. working on behalf of BAE SYSTEMS Allen Chang wrote: > > Hello All, > > I am surveying how to use VxWorks to write a real-time > simulator in cooperate with x86 single board computer. > During reading the documents of VxWorks, there is a question > that need some help here. > > If you need to perform a periodical task, and the > frequency is an invaild value for sysAuxClkRateSet(). > Since it's periodical and the task really takes some time > to execute (at least 3ms in PII 350), the watchdog > timer and ISR may not be a solution. > > Is there any alternative to perform the task accurately, > without increase the system overhead by using sysClkRateSet()? > > Best Regards, > > Allen Chang --------------------------- Newsgroups: comp.os.vxworks Subject: VxWorks image & headers Date: Fri, 15 Mar 2002 10:14:57 -0500 From: david lindauer Message-ID: <3C920FEF.BFB40EA0@notifier-is.net> References: <3c90a2db$0$92532$edfadb0f@dspool01.news.tele.dk> <342k8.3728$T_.69299@iad-read.news.verio.net> <3C90D170.A31B47A5@fnal.gov> hi, I noticed that the bootimage (bootrom_uncmp) has some type of image header on it, and you would use e.g. vxcopy to strip the header and create a bootable version of the boot code. Does the vxworks image itself have such a header? I want to put my own header on the vxworks image (to synchronize downloads of the image) and am wondering if I can just replace an existing header, or if things are more complex than that? Thanks, David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Strange ccarm error message. Date: 15 Mar 2002 12:52:16 -0500 From: Bill Pringlemeir Organization: Factory of the mind Message-ID: References: Sender: bpringlemeir@DeadDuck >>> Could anyone tell me what the following message mean? >>> initializer element for `_localExceptionContext_.next' is not >>> computable at load time. >> It helps immensely if you can give more details, like the C++ >> code that has localExceptionContext in some sort of array >> context. "is not computable at load time" means that you have made >> something static and attempted to use some sort of dynamic >> quantity to initialize it or to describe the size of an array [at >> least those are my guesses]. >> >> Does "localExceptionContext" exist within your source code? Which >> processor and compiler are you using? This might be a special C++ >> label for an exception, so you might be doing something wrong with >> an exception object. lang2> The code is actually in C. And it compiles fine with gcc. It lang2> is actaully a exception handeller emulator if you check the lang2> following link out: lang2> http://ldeniau.home.cern.ch/ldeniau/html/exception/exception.html struct _exceptionContext_ _localExceptionContext_ = \ { _currentExceptionContext_ }; \ Why are there braces around currentExceptionContext? Something is messed up here. I assume that the first or second element of the `_??```~~exceptionContext' is called `next'. In the rest of the code, it is using `currentExceptionContext' as a pointer. This would make more sense, but I am unsure as I haven't looked at the code. struct _exceptionContext_ _localExceptionContext_ = \ *currentExceptionContext_; \ The code is bad, it is not a gcc error. hth, Bill Pringlemeir. - -- NORAD spy cryptographic radar Serbian jihad Semtex quiche DES PLO Saddam Hussein Delta Force Albanian Nazi Soviet vxWorks FAQ, "http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html" --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Should the IP header be 4 bytes(long word) align? Date: 15 Mar 2002 12:57:33 -0500 From: Bill Pringlemeir Organization: Factory of the mind Message-ID: References: <1d411918.0203130023.5d5db610@posting.google.com> <3C8F42DB.8050601@spamm.me.l8s.co.uk> <1d411918.0203131637.2dd9ebc1@posting.google.com> Sender: bpringlemeir@DeadDuck >>>>> "DragonSpring" == DragonSpring writes: DragonSpring> No, I can't make 4n+2 boundary. The HDLC controller DragonSpring> requires 4n boundary. And we also use MPC860 FEC as DragonSpring> Ethernet controller. This ethernet hardware also DragonSpring> requires 4n boundary. Use two buffer descriptors. One for the MAC header and another for the IP packet. I an not sure how this will convert to the mbuf/network blocks. However, the MPC860 is pretty cool in that it can chain the receive buffers just like an mbuf. So, I think that you can make things very efficient. You may only sacrifice one BD to do the MAC decoding as you could copy the header after the receive. You can also mark only some of the BD with an interrupt bit. hth, Bill Pringlemeir. - -- $400 million in gold bullion Legion of Doom Delta Force domestic disruption South Africa cryptographic kibo colonel terrorist CIA Nazi SEAL Team 6 strategic Ft. Bragg plutonium vxWorks FAQ, "http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html" --------------------------- Newsgroups: comp.os.vxworks Subject: vxWorks: using time & date package Date: 15 Mar 2002 10:23:33 -0800 From: vlad_falcon@srtelecom.com (vlad) Organization: http://groups.google.com/ Message-ID: The "time & date" package consists of a few libraries (ansiTime, clockLib, ...). I am in need of using local time zones and daylight saving time. In the documentation there is a simple remark "... The local time zone and Daylight Saving Time are implementation-defined. ..." What does it mean?? Then: "...If the environment variable TIMEZONE is set, the information is retrieved from this variable, otherwise from the locale information...." I tried defining a TIMEZONE variable as suggested and seeing if there is any difference between gmtime and local time; NONE whatsoever. TIMEZONE="EST::300:040102:100102" I looked in the "locale.h" for different services offered and there are none time&date related. There is only one simbol defined but not used (directly): #define LC_TIME 6 I made some simple tests that showed: - - no difference between GMT and LOCAL time - - no impact of DST Here you have my test program and the output: How can I use time zones? How daylight saving time (could) affect timers in the system?? Is there any documentation on these issues? Our Configuration: Tornado 2.0(.x), PPC860, host Win-NT 4.0 (SP6, build 1381), Thanx, Vlad. >>>>>>>>>>>>>>>>>> timeutils.cpp // Interface Dependencies ------------------------------------------------------ #include //#include #include #include "TimeUtils.Hpp" // End Interface Dependencies -------------------------------------------------- // Global Variables Area ------------------------------------------------------- const char* TIMEZONE= "EST::300:040102:100102"; time_t calendarTime; struct tm gmTime, localTime; // Local Variables Area -------------------------------------------------------- // Local Variables Area End ---------------------------------------------------- // Functions Area -------------------------------------------------------------- void srxTimeDateShow(const char* msgShow, struct tm * bufTime) { #define ASC_TIME_BUF_LEN 100 char ascTimeBuf[ASC_TIME_BUF_LEN]; size_t bufLen= ASC_TIME_BUF_LEN; asctime_r(bufTime, ascTimeBuf, &bufLen); printf("%s: %s\n", msgShow, ascTimeBuf); } void srxTimeDateCompare() { // get current calendar time calendarTime= time(0); // breakdown GMT gmtime_r(&calendarTime, &gmTime); // breakdown LOCAL localtime_r(&calendarTime, &localTime); // show GMT srxTimeDateShow("GMT time ", &gmTime); // show LOCAL srxTimeDateShow("LOCAL time", &localTime); } void srxTimeTests() { // set initial date (no DST) printf("\n\n >>> Initial date <<<\n"); srxDateSet ( 2002, 2, 15); srxTimeDateCompare(); // change date in DST printf("\n\n >>> Change date in DST <<<\n"); srxDateSet ( 1990, 6, 1); srxTimeDateCompare(); // reset DST flag printf("\n\n >>> Reset DST flag <<<\n"); gmTime.tm_isdst= 0; localTime.tm_isdst= 0; // show GMT srxTimeDateShow("GMT time ", &gmTime); // show LOCAL srxTimeDateShow("LOCAL time", &localTime); // set DST flag printf("\n\n >>> Set DST flag <<<\n"); gmTime.tm_isdst= 1; localTime.tm_isdst= 1; // show GMT srxTimeDateShow("GMT time ", &gmTime); // show LOCAL srxTimeDateShow("LOCAL time", &localTime); } // End-of-file >>>>>>>>>>>>>>>>>>>>>>>>> timeutils.log - -> - -> ld < g:\tests\obj\timeutils.o Loading g:\tests\obj\timeutils.o | value = 3231408 = 0x314eb0 - -> srxTimeTests() >>> Initial date <<< GMT time : FRI MAR 15 13:57:07 2002 LOCAL time: FRI MAR 15 13:57:07 2002 >>> Change date in DST <<< GMT time : SUN JUL 01 13:57:07 1990 LOCAL time: SUN JUL 01 13:57:07 1990 >>> Reset DST flag <<< GMT time : SUN JUL 01 13:57:07 1990 LOCAL time: SUN JUL 01 13:57:07 1990 >>> Set DST flag <<< GMT time : SUN JUL 01 13:57:07 1990 LOCAL time: SUN JUL 01 13:57:07 1990 value = 39 = 0x27 = ''' - -> lkup "TIME" TIMEZONE 0x003397cc data (timeutils.o) value = 0 = 0x0 - -> - -> d 0x003397cc 003397c0: 0033971c * .3..* 003397d0: 268e0133 00000007 00000039 0000000d *&..3.......9....* 003397e0: 00000001 00000006 0000005a 00000000 *...........Z....* 003397f0: 000000b5 00000001 00000007 00000039 *...............9* 00339800: 0000000d 00000001 00000006 0000005a *...............Z* 00339810: 00000000 000000b5 00000001 *............ * value = 0 = 0x0 - -> d 0x0033971c 00339710: 4553543a * EST:* 00339720: 3a333030 3a303430 3130323a 31303031 *:300:040102:1001* 00339730: 30320000 25733a20 2025730a 00000000 *02..%s: %s.....* 00339740: 474d5420 74696d65 20200000 4c4f4341 *GMT time ..LOCA* 00339750: 4c207469 6d650000 0a0a203e 3e3e2049 *L time.... >>> I* 00339760: 6e697469 616c2064 61746520 *nitial date * value = 0 = 0x0 - -> --------------------------- Newsgroups: comp.os.vxworks Subject: VX_FP_TASK taskSpawn option Date: 15 Mar 2002 10:32:11 -0800 From: hschultz98@yahoo.com (Harold Schultz) Organization: http://groups.google.com/ Message-ID: <56a1997f.0203151032.986081d@posting.google.com> Does anyone know how to have all spawned tasks automatically set the option VX_FP_TASK? The problem is that we are using some COTS software that doesn't set this option, but is doing floating point computations. The vendor for the COTS software doesn't provide support anymore and the only thing we have is a library module. Thank you in advance for any help. - --------------------- Harold Schultz hschultz98@yahoo.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: vxWorks: using time & date package Date: Fri, 15 Mar 2002 14:24:05 -0500 From: "Vlad Falcon" Organization: Bell Sympatico Message-ID: <7Urk8.5497$PS5.683583@news20.bellglobal.com> References: The answer is in vxWorks library "envLib" as soon as i defined the TIMEZONE variable and added to the environment using putenv "TIMEZONE EST::300:040102:100102" everything started working properly. thanks, vlad. vlad wrote in message ... >The "time & date" package consists of a few libraries (ansiTime, clockLib, >...). I am in need of using local time zones and daylight saving time. In >the documentation there is a simple remark > ........ --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Should the IP header be 4 bytes(long word) align? Date: Fri, 15 Mar 2002 19:48:11 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C92506D.4030601@spamm.me.l8s.co.uk> References: <1d411918.0203130023.5d5db610@posting.google.com> <3C8F42DB.8050601@spamm.me.l8s.co.uk> <1d411918.0203131637.2dd9ebc1@posting.google.com> Bill Pringlemeir wrote: >>>>>>"DragonSpring" == DragonSpring writes: >>>>>> > > DragonSpring> No, I can't make 4n+2 boundary. The HDLC controller > DragonSpring> requires 4n boundary. And we also use MPC860 FEC as > DragonSpring> Ethernet controller. This ethernet hardware also > DragonSpring> requires 4n boundary. > > Use two buffer descriptors. One for the MAC header and another for > the IP packet. I an not sure how this will convert to the > mbuf/network blocks. However, the MPC860 is pretty cool in that it > can chain the receive buffers just like an mbuf. So, I think that you > can make things very efficient. You may only sacrifice one BD to do > the MAC decoding as you could copy the header after the receive. You > can also mark only some of the BD with an interrupt bit. Does it allow lengths that are 4n+2? What happens to runt and overlong packets? You don't want to have to undo the mess generated if it gets misaligned! Given half a chance (ie being told which MAC chip a board was going to use, and being able to get and read its datasheet before the decision was completely finalised) I would recommend buying a MAC chip that can rx onto 4n+2 boundaries. The performance benefit is almost certainly measurable - even if your cpu can do misaligned reads - which many embedded system style cpus cannot. If you are stuck with an rx frame on a 4n boundary and you are expecting IP frames then there is quite possibly a win realigning the entire frame by copying in in the MAC driver. Almost all the frame will either be looked with 32 bit transfers, or copied into an aligned buffer at a later date. Cpus that have a string move instruction and an embedded data cache could quite easily have the hardware added to do fast unaligned block moves - cache line aligned block moves can be done by reading memory into the 'wrong' cache line (ie read src address to tgt addr cache line). A big barrel shifter will do all the other alignments. David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Should the IP header be 4 bytes(long word) align? Date: 15 Mar 2002 15:11:56 -0500 From: Bill Pringlemeir Organization: Factory of the mind Message-ID: References: <1d411918.0203130023.5d5db610@posting.google.com> <3C8F42DB.8050601@spamm.me.l8s.co.uk> <1d411918.0203131637.2dd9ebc1@posting.google.com> <3C92506D.4030601@spamm.me.l8s.co.uk> Sender: bpringlemeir@DeadDuck DragonSpring> No, I can't make 4n+2 boundary. The HDLC controller DragonSpring> requires 4n boundary. And we also use MPC860 FEC as DragonSpring> Ethernet controller. This ethernet hardware also DragonSpring> requires 4n boundary. >> Use two buffer descriptors. One for the MAC header and another >> for the IP packet. I an not sure how this will convert to the >> mbuf/network blocks. However, the MPC860 is pretty cool in that >> it can chain the receive buffers just like an mbuf. So, I think >> that you can make things very efficient. You may only sacrifice >> one BD to do the MAC decoding as you could copy the header after >> the receive. You can also mark only some of the BD with an >> interrupt bit. David> Does it allow lengths that are 4n+2? David> What happens to runt and overlong packets? You don't want to David> have to undo the mess generated if it gets misaligned! You can specify to ignore these packets in the controller if you like. David> Given half a chance (ie being told which MAC chip a board was David> going to use, and being able to get and read its datasheet David> before the decision was completely finalised) I would David> recommend buying a MAC chip that can rx onto 4n+2 boundaries. David> The performance benefit is almost certainly measurable - even David> if your cpu can do misaligned reads - which many embedded David> system style cpus cannot. Ah, put the MPC860 has an integrated MAC. That is part of the point of the beast. It has a sort of co-processor called the CPM. This thing does DMA from the MAC controller on board (you do need front-end stuff like MII, RJ45, 10Base-T, 10Base-2, AUI, etc). I think the BD's on an MPC860 can use size like `14' to grab a DIX header [if it cann't, my point is useless]. The CRC is normally discarded. Since you must have a frame that is at least 64 bytes if it is non-runt I think this method might work well. However, I haven't tried it! It is only a suggestion, given that the OP is working with this specific controller. [the FEC was `brand new' when I stopped with the CPM. I have used the 68360 version as well as the MPC without FEC]. Regards, Bill Pringlemeir. - -- Minutes from now making love may seem worthless. Discuss life with RMS with the help of God. This week will be a good time for staying where you are. Someone you know will eventually reveal itself to be your child. You'll never be shrunk. Your lucky numbers are 20, 30, and 40. vxWorks FAQ, "http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html" --------------------------- Newsgroups: comp.os.vxworks Subject: Can I associate a destination with a specific interface in the routing table? Date: 15 Mar 2002 12:16:53 -0800 From: lliao@opvista.com (Liang) Organization: http://groups.google.com/ Message-ID: Hi, I have the following system configuration with 3 nodes (could be more). This is a proprietary network and you can assume it has no interaction with the outside public network. ------------ | A | | | ------------ A1| |A2 | | | | B1| |C1 ------------ ------------ | B |B2 C2| C | | |-------| | ------------ ------------ Each node (A, B, C) has two Ethernet interfaces, and each interface is connected only to an interface on the adjacent nodes, so I want to treat them as point to point interfaces. I am trying to set up a routing table in each node to send traffic to the other nodes. One way to do that is to treat each point to point segment as a network, e.g. interface A1 has IP address 1.1.1.1, B1 is 1.1.1.2, A2 is 1.1.2.1, C1 is 1.1.2.2, etc. The problem with this is that it would be a configuration nightmare since I need to treat each network segment as a subnet (imagine that there are a few more nodes in the ring, or a even a tree). I would like to assign all the nodes to the same subnet, e.g. A is 1.1.1.1, B is 1.1.1.2, C is 1.1.1.3, and not assign any IP address to the interface. By doing so, I want to set up my routing table such that I can specify in Node A's routing table, for example, to send traffic to destination B(1.1.1.2) using interface A1, and C using interface A2. With this approach, however, I need a way to associate a destination with an interface. That means I can't use routeAdd or mRouteAdd. Is there a way for me to accomplish what I want under vxworks, or do I have to set up my own routing table and do the routing myself by intercepting all incoming frames and route them according to my own routing table? Thanks for any comments. Liang --------------------------- Newsgroups: comp.os.vxworks Subject: MAC address gets flipped after boot?? Date: Fri, 15 Mar 2002 17:55:17 -0500 From: "James Perkins" Message-ID: I have a strange ethernet problem that I have been trying to figure out. I had two identical MVME2700 boards. One of these boards would execute my system image without a problem. The other board had problems with ethernet (TCP to be exact). I was stumped since I was using identical hardware, the same boot rom, and the same system image. I returned the "bad" and got a replacement. It has the same problem. On the suggestion of someone on the list I decided to use Ethereal on a PC to sniff the network and try to pinpoint my problem. I discovered something that I do not understand. The MAC address gets flipped after the system images boots. So it goes like this: power up board boot rom loads and executes MVME2700 MAC address seen on the network is 08-00-3e-2a-49-4c system image is retrieved via ftp system image loads and boots MVME2700 MAC address seen on the network is 00-08-2a-3e-4c-49 This is my "good" MVME2700. The "new bad" one shows up on the network as 00-01-af-03-f7-7e and then changes to 01-00-03-af-7e-f7 What is going on here? - -Jim --------------------------- Newsgroups: comp.os.vxworks Subject: loadModule: Relocation value does not fit in 24 bits Date: Sat, 16 Mar 2002 01:03:57 +0200 From: "Zvika Vered" Organization: Internet Gold, ISRAEL Message-ID: Hello All, When I load an object file by calling LoadModule() or ld (1) Organization: PSO Systems Inc Message-ID: References: The bootrom seems correct. Motorola vendor address is 08-00-3e. Your VxWorks driver must be swapping bytes when programming mac address in. 00-08-2a is invalid vendor. The VxWorks driver should be fixed. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Read on serial does not block Date: 15 Mar 2002 17:01:13 -0800 From: bhorowit@cs.berkeley.edu (Benjamin Horowitz) Organization: http://groups.google.com/ Message-ID: References: Reinhold, John, Werner, Thanks very much for your suggestions, which enabled us to solve our problem. Ben --------------------------- Newsgroups: comp.os.vxworks Subject: Re: help for hard disk Date: 15 Mar 2002 18:00:44 -0800 From: winter_lin2000@yahoo.com.cn (winter) Organization: http://groups.google.com/ Message-ID: <7863b471.0203151800.3d644e4b@posting.google.com> References: <7863b471.0203131915.2439e089@posting.google.com> <7863b471.0203141730.4934b9d9@posting.google.com> I find an article about PCMCIA ATA specification in which it is mention that we can use pcmcia signal as true ide signal. I am not sure if it is right.Maybe I do not need pci/ide chip. I will try it. If I use pic/ide chip,I have to use PCI bridge to connect with my CPU.It may be too trouble. ok,wait for my good news! Thanks! "Leonid Rosenboim" wrote in message news:... > CF is not your only choise by all means, but its the easiest, > because the CF hardware interface is quite close to PCMCIA. > > Standard PC disk drives all use IDE interface, and you would > need an PCI/IDE chip to handle them properly. This will cost > more but will yield greater performance, worse reliability. > > Depende on what you really need. > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Machine Check Exception Date: Fri, 15 Mar 2002 21:33:44 -0500 From: Yves Organization: Bell Sympatico Message-ID: <3C92AF08.32D10089@sympatico.ca> References: <488e459a.0201180048.23f0ed9d@posting.google.com> <3C4B7627.B304755F@sympatico.ca> <2ede7703.0201210625.666f9918@posting.google.com> <3C920801.37DAA692@baesystems.removethis-nospam.com> David Machin wrote: > > I apologise for replying so long after the original post. > > My client had similar problems with a PPC 750 processor running Tornado > 2 - the main symptom being a Machine Check exception where the code and > register set appeared to be fine > We investigated this with the assistance of the hardware vendor and > could find no obvious underlying cause (such as a transfer abort to a > peripheral etc.) It is worth noting that a posted write to a peripheral > (especially over PCI) is often the cause of this kind of behaviour, as > the resulting exception is asynchronous with the instruction sequence > and could occur hundreds of cycles after the instruction that caused it. > > We found that the rate of failure was affected by where the executable > was located in memory (i.e. moving the same executable to a different > place would change the behaviour) - but extensive RAM tests and testing > on other boards seemed to rule out any memory problems. > We also found that code which performed intensive operations on large > complex data structures was particularly badly affected. > > Based on what we observed, we suspected some form of caching problem was > to blame, and thus disabled the level 2 cache. Since doing this we have > not seen the problem again. > > The board vendor has a TSR with windriver to investigate this problem as > we suspect it may involve swapping of Page Table Entries (PTEs) - I > would be very interested to hear from anyone else who has had problems > with the PPC750 running T2 with level 2 cache enabled. > > HTH > > Dave Machin > Machin Consultants Ltd. working on behalf of BAE SYSTEMS > > kannan wrote: > > > > Hi Yves, > > > > > we are having a similar problem with our system. A machine check > > > exception is happening ... in a streaming method. It runs through the > > > code on a number of occasion, than one time it produces an exception. > > > This problem comes and goes with re-compiles... We have created a ring > > > buffer with which all tasks check in on a task switch, to try and > > > identify the task causing the problem, but have yet to succeed... > > > > The contents that are printed in the console after getting the > > exception are: > > > > 1).Exception current instruction address > > 2).Machine Status Register > > 3).Condition Register > > 4).TaskId > > 5).TaskName > > > > so probably you will get that particular taskName and taskId which > > causes the > > Exception .Suppose if you are going a hanged state then probably you > > can write your own handler to logMsg the taskName and taskId in the > > console. > > So you will isolate the code which creates those exception.Check > > whether > > your default handler(VxWorks) makes that particular task which creates > > exception to suspended state? If so you can only check the task which > > goes to the suspended state. > > > > > the machine check exception can be caused by parity, invalid instruction > > > and some bus errors (I don't have my PPC manual with me). > > > > > > Any suggestions on finding (what I assumed to be) the stray pointer > > > would be welcomed at this point. > > > > > > PPC 750, Tornado II (with TCP2) on NT. We are using watchdogs. > > > > check whether your code has any invalid memory access. > > > > check this code : > > > > void machineChecktest (void) > > { > > printf("\n Test Task"); > > d (0xffffffff); /*some Invalid address*/ > > printf("\n Machine check exception test code over\n"); > > } > > > > ->sp machineChecktest > > > > test this code and see whether the machine check exception > > is happening ... in a streaming method or you are able > > to get the machine check exception only once and also check > > whether you get that task machineChecktest to suspended state > > and the taskName and taskId are printed in your console. > > > > Rgds, > > kannan > > > > Yves wrote in message news:<3C4B7627.B304755F@sympatico.ca>... > > > John wrote: > > > > > > > > Hello, > > > > > > > > Which type of PPC are you using, and what version of VxWorks? Also, > > > > what else is running on your target at the time, or is it just the > > > > serial output? In particular, are you using things like watchdogs or > > > > POSIX timers? > > > > > > > > Rgds, > > > > > > > > John... > > > > > > > > "martin brook" wrote in message news:... > > > > > Hi, > > > > > > > > > > I'm having problems with my application getting random machine check > > > > > exceptions (0x200). The exception address reported does not correspond to > > > > > any code which may cause a machine check. I understand that the exception > > > > > reporting can be delayed so giving no clue as to where the exception is > > > > > occuring. > > > > > > > > > > Has anyone got a method of debugging these exceptions ? or a way of turning > > > > > the machine check off ? > > > > > > > > > > My app is doing a lot of serial I/O on ports 0/1 which are set to > > > > > 115200baud. > > > > > > > > > > TIA martin > > > > > > > > > > > > > > > > > > > > --- > > > > > Outgoing mail is certified Virus Free. > > > > > Checked by AVG anti-virus system (http://www.grisoft.com). > > > > > Version: 6.0.313 / Virus Database: 174 - Release Date: 1/3/02 > > > > > > Hi, > > > > > > we are having a similar problem with our system. A machine check > > > exception is happening ... in a streaming method. It runs through the > > > code on a number of occasion, than one time it produces an exception. > > > This problem comes and goes with re-compiles... We have created a ring > > > buffer with which all tasks check in on a task switch, to try and > > > identify the task causing the problem, but have yet to succeed... > > > > > > the machine check exception can be caused by parity, invalid instruction > > > and some bus errors (I don't have my PPC manual with me). > > > > > > Any suggestions on finding (what I assumed to be) the stray pointer > > > would be welcomed at this point. > > > > > > PPC 750, Tornado II (with TCP2) on NT. We are using watchdogs. > > > > > > thanks > > > > > > Yves Hi, thanks for the input. We successfully tracked the problem down ... gcc problem. A register (exception context?) was being reused as a general purpose register that should not have been. A SPR is logged at WRS. Yves --------------------------- Newsgroups: comp.os.vxworks Subject: Re: loadModule: Relocation value does not fit in 24 bits Date: 16 Mar 2002 00:11:52 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203160011.728d304e@posting.google.com> References: Hello, This is a very well known issue. Please try searching in the group archives and/or on Windsurf in future. You can search previous postings at a number of places, including http://groups.google.com/ and in WindSurf's search facility. The cause of the error you are seeing relates to the relative addressing used in the branch instructions. There are two common solutions: 1) Define LOCAL_MEM_SIZE to be 32MB (for PPC; other architectures might need other sizes), boot your system and load the code, then use memAddToPool() to add the remainder of the RAM to the heap. 2) Compile your code with the -mlongcall option (might be -mlong-call - - check the compiler docs). The reason that the host loader works is due to the way the host tools allocate memory on the target. Also, when posting here you should also include at least the architecture/CPU you are using, and which host OS. HTH, John... "Zvika Vered" wrote in message news:... > Hello All, > > When I load an object file by calling LoadModule() or ld (1) > > Relocation value does not fit in 24 bits. > Relocation value does not fit in 24 bits > ...... > > But if I download this file by Tornado II,it is ok. > Who can help me? --------------------------- Newsgroups: comp.os.vxworks Subject: Re: loadModule: Relocation value does not fit in 24 bits Date: Sat, 16 Mar 2002 08:17:41 GMT From: "drdiags" Organization: AT&T Broadband Message-ID: References: Hello Zvika, If you have more than 32MB of ram and you didn't compile your app with -mlongcall, since the target shell will allocate from the system memory pool (starts from the top of physical memory) , which could be more than 24 bits of addressing away from the kernel routines it needs to link with, this causes problems for PPC and MIPS(?). Not sure about other architectures. The reason you don't see this when loading from the Host shell is due to the fact that the application will be loaded into the WDB memory pool which is usually carved out right after the memory containing the kernel routines. Therefore you usually wouldn't see this error (keyword usually). HTH "Zvika Vered" wrote in message news:a6tuis$460$1@news.inter.net.il... > Hello All, > > When I load an object file by calling LoadModule() or ld (1) > > Relocation value does not fit in 24 bits. > Relocation value does not fit in 24 bits > ...... > > But if I download this file by Tornado II,it is ok. > Who can help me? > > --------------------------- End of New-News digest ********************** From vxwexplo-errs@csg.lbl.gov Sun Mar 17 04:03:16 2002 From: Vxworks Exploder Date: Sun Mar 17 04:03:18 PST 2002 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Sun Mar 17 04:03:12 PST 2002 Subject: Re: MAC address gets flipped after boot?? Subject: Re: loadModule: Relocation value does not fit in 24 bits Subject: Re: MAC address gets flipped after boot?? Subject: Re: Can I associate a destination with a specific interface in the routing table? Subject: Re: VX_FP_TASK taskSpawn option Subject: Re: loadModule: Relocation value does not fit in 24 bits Subject: Re: MAC address gets flipped after boot?? Subject: Re: VX_FP_TASK taskSpawn option Subject: Re: MAC address gets flipped after boot?? Subject: Re: Can I associate a destination with a specific interface in the routing table? Subject: Re: VX_FP_TASK taskSpawn option Subject: Re: VX_FP_TASK taskSpawn option Subject: Re: muxDevStart function failed. Subject: Re: Reception of broadacted UDP messages on the same host Subject: Re: Reception of broadacted UDP messages on the same host Subject: Re: MAC address gets flipped after boot?? Subject: DY4 X Libraries for vxworks Subject: Re: MAC address gets flipped after boot?? Subject: Re: MAC address gets flipped after boot?? Subject: Re: MAC address gets flipped after boot?? Subject: Re: How do I debug freezes? Subject: ATA driver for compact flash with memory mode Subject: Help:Toronda Prototyper two simulated targets in Windows XP? Subject: Re: DY4 X Libraries for vxworks Subject: Re: How do I debug freezes? Subject: Re: Can I associate a destination with a specific interface in the routing table? ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Re: MAC address gets flipped after boot?? Date: Sat, 16 Mar 2002 13:02:53 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C9342ED.6010803@spamm.me.l8s.co.uk> References: Hwa Jin Bae wrote: > The bootrom seems correct. Motorola vendor address is 08-00-3e. Your > VxWorks driver must be swapping bytes when programming mac address in. > 00-08-2a is invalid vendor. The VxWorks driver should be fixed. No: 00-08-2a-xx-xx-xx is a valid MAC address, but: 01-00-03-xx-xx-xx is a broadcast address and thus invalid. The vxWorks driver is definitely hosed ;-) David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: loadModule: Relocation value does not fit in 24 bits Date: Sat, 16 Mar 2002 08:34:25 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: No such problem for MIPS. It is PPC specific issue. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: MAC address gets flipped after boot?? Date: Sat, 16 Mar 2002 08:35:23 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <3C9342ED.6010803@spamm.me.l8s.co.uk> Valid in what sense? Who owns 00-08-2a? - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Can I associate a destination with a specific interface in the routing table? Date: Sat, 16 Mar 2002 18:49:56 +0200 From: "Leonid Rosenboim" Organization: Verio Message-ID: References: I have nver tried this, but here is a suggestion: 1. You can change the interface flags with ifFlagSet() to turn off IFF_BROADCAST, and set IFF_POINTTOPOINT 2. Set the destination IP address with ifDestAddrSet(), as if this was a true P2P link. 3. At this point, the MAC address could become a headache, so you would need to use a sniffer of some sort to see what is going on. If ARP does not work, you could use arpAdd() to add the needed ARP tables manually. "Liang" wrote in message news:e9720ff6.0203151216.2eb010eb@posting.google.com... > Hi, I have the following system configuration with 3 nodes (could be > more). This is a proprietary network and you can assume it has no > interaction with the outside public network. > > ------------ > | A | > | | > ------------ > A1| |A2 > | | > | | > B1| |C1 > ------------ ------------ > | B |B2 C2| C | > | |-------| | > ------------ ------------ > > Each node (A, B, C) has two Ethernet interfaces, and each interface is > connected only to an interface on the adjacent nodes, so I want to > treat them as point to point interfaces. I am trying to set up a > routing table in each node to send traffic to the other nodes. One > way to do that is to treat each point to point segment as a network, > e.g. interface A1 has IP address 1.1.1.1, B1 is 1.1.1.2, A2 is > 1.1.2.1, C1 is 1.1.2.2, etc. The problem with this is that it would > be a configuration nightmare since I need to treat each network > segment as a subnet (imagine that there are a few more nodes in the > ring, or a even a tree). I would like to assign all the nodes to the > same subnet, e.g. A is 1.1.1.1, B is 1.1.1.2, C is 1.1.1.3, and not > assign any IP address to the interface. By doing so, I want to set up > my routing table such that I can specify in Node A's routing table, > for example, to send traffic to destination B(1.1.1.2) using interface > A1, and C using interface A2. With this approach, however, I need a > way to associate a destination with an interface. That means I can't > use routeAdd or mRouteAdd. Is there a way for me to accomplish what I > want under vxworks, or do I have to set up my own routing table and do > the routing myself by intercepting all incoming frames and route them > according to my own routing table? Thanks for any comments. > > Liang --------------------------- Newsgroups: comp.os.vxworks Subject: Re: VX_FP_TASK taskSpawn option Date: Sat, 16 Mar 2002 18:57:31 +0200 From: "Leonid Rosenboim" Organization: Verio Message-ID: References: <56a1997f.0203151032.986081d@posting.google.com> When tasks are spawned with the "sp()" function, there are global variables that control the new tasks default stack size and options. When tasks are spawned with "taskSpawn()", all these options are controlled by the arguments explicitly, and there is no way to force them into anything, unless the taskSpawn() use a certain global variable for the options, which is a common practice. In other words, you need to look into the source code of every task created. "Harold Schultz" wrote in message news:56a1997f.0203151032.986081d@posting.google.com... > Does anyone know how to have all spawned tasks automatically set the > option VX_FP_TASK? > The problem is that we are using some COTS software that doesn't set > this option, but is doing floating point computations. The vendor for > the COTS software doesn't provide support anymore and the only thing > we have is a library module. > Thank you in advance for any help. > --------------------- > Harold Schultz > hschultz98@yahoo.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: loadModule: Relocation value does not fit in 24 bits Date: Sat, 16 Mar 2002 18:36:11 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C93910B.6090003@spamm.me.l8s.co.uk> References: Hwa Jin Bae wrote: > No such problem for MIPS. It is PPC specific issue. and ARM... Really the vxWorks loader ought to created the relevant code fragment. It shouldn't be that hard (unless your module is over 64Mb and the problem branch is near the middle) David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: MAC address gets flipped after boot?? Date: Sat, 16 Mar 2002 18:45:46 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C939348.70605@spamm.me.l8s.co.uk> References: <3C9342ED.6010803@spamm.me.l8s.co.uk> Hwa Jin Bae wrote: > Valid in what sense? Who owns 00-08-2a? It doesn't matter! It is a valid address. It might be unallocated, but it is valid. I don't know if it is better these days, but in the old days some card manufacturers (including some big ones) just put a random 'manufacturer id' onto their cards. Certainly is was quite common so see cards with 'locally administered' addresses (eg 02-cf-1f-xx-xx-xx, 02-07-08-xx-xx-xx) Some of the lists of manufacturer ids contain these values. Other confusion arises with token ring cards - where the address should be bit - reversed (ie broadcast is 80-xx-xx-xx-xx-xx). Addresses only need to be unique on the same LAN segment or bridged network. (Actually I suspect that IP will work even if the MAC address isn't unique - provided you aren't running such a systemn as a gateway) OTOH using a broadcast address as your local address is definitely frowned upon - and may be policed by some drivers and/or hardware. Indeed the 'broadcast' bit of the source address is used on token ring networks to indicate the presence of the source routing field. (I've certainly done it in the past - sent packets that go: ff-ff-ff-ff-ff-ff-ff-ff-ff-ff-ff-ff-ff-ff-e3 which, due to a bug we had turning around test packets ought to still be being reflected to this day) David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: VX_FP_TASK taskSpawn option Date: Sat, 16 Mar 2002 19:02:58 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C939750.6050209@spamm.me.l8s.co.uk> References: <56a1997f.0203151032.986081d@posting.google.com> Leonid Rosenboim wrote: > When tasks are spawned with the "sp()" function, there are global > variables that control the new tasks default stack size and options. > When tasks are spawned with "taskSpawn()", all these options > are controlled by the arguments explicitly, and there is no way > to force them into anything, unless the taskSpawn() use a certain > global variable for the options, which is a common practice. > > In other words, you need to look into the source code of every > task created. Or do a bit of hacking! taskSpawn seems to call taskCreat then taskActivate taskCreat allocates stuff then calls taskInit. It will 'or' VX_DEALLOC_STACK (=4) onto the flags passed to it when passing them onto taskInit. It may be possible to modify that piece of code (eg in any early initialiation code) so that both 4 and 8 are set at that time. If you are stuck with a 'bit set' instruction, you could modify the call to taskInit to call a bit of assembler that modifies the relevant argument then jumps to taskInit. Good hacking :-) David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: MAC address gets flipped after boot?? Date: Sat, 16 Mar 2002 10:53:58 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <3C9342ED.6010803@spamm.me.l8s.co.uk> <3C939348.70605@spamm.me.l8s.co.uk> If you read my comment, I said "invalid vendor". James' problem has to do with some code in sysLib which reads the MAC address and incorrectly swaps bytes. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Can I associate a destination with a specific interface in the routing table? Date: Sat, 16 Mar 2002 10:56:36 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: A, B, C all can reside in same subnet and still have host specific routes. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: VX_FP_TASK taskSpawn option Date: Sat, 16 Mar 2002 11:07:23 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <56a1997f.0203151032.986081d@posting.google.com> You can use taskOptionsSet(). But the VX_FP_TASK is used at task creation time to set up FP context and hook routines to save/restore FP context for each task switch. Setting the option after task has been created will not have desired behavior. You add another task creation hook, to force the tasks to have VX_FP_TASK on. If you do that it must be done before your fppInit() is called. The idea is to have a hook at creation time which runs before fppLib's own creation hook (which does the FP context allocation, etc.). - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: VX_FP_TASK taskSpawn option Date: 16 Mar 2002 11:11:35 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203161111.1381474d@posting.google.com> References: <56a1997f.0203151032.986081d@posting.google.com> Hello, There is one way you can do this, and it is relatively simple: Write yourself a task create hook routine that sets the bit in the task options. The only thing you must make sure of is that your hook is installed before the floating point one. The floating point hooks are added when fppInit() is called, so simply make sure that your call to taskCreateHookAdd() occurs before that. As long as the VX_FP_TASK bit is set when the fppLib task creat hook is executed, your task will have all the necessary storage for FP register save & restore. HTH, John... hschultz98@yahoo.com (Harold Schultz) wrote in message news:<56a1997f.0203151032.986081d@posting.google.com>... > Does anyone know how to have all spawned tasks automatically set the > option VX_FP_TASK? > The problem is that we are using some COTS software that doesn't set > this option, but is doing floating point computations. The vendor for > the COTS software doesn't provide support anymore and the only thing > we have is a library module. > Thank you in advance for any help. > --------------------- > Harold Schultz > hschultz98@yahoo.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: muxDevStart function failed. Date: Sat, 16 Mar 2002 11:14:39 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <220aeb02.0203142148.7b873564@posting.google.com> Usually it means your END driver's start routine has returned some error. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Reception of broadacted UDP messages on the same host Date: Sat, 16 Mar 2002 11:23:02 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <3C9122B7.25CA38F4@dsto.defence.gov.au> IFF_SIMPLEX and other IFF_ flags can be set any time. Use ifFlagSet(). - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Reception of broadacted UDP messages on the same host Date: Sat, 16 Mar 2002 11:27:01 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <3C9122B7.25CA38F4@dsto.defence.gov.au> <3C9140E7.4070001@spamm.me.l8s.co.uk> Looping packets back for simplex devices is done at driver level. It is right place to do so since the behavior of whether you can get your own broadcast from your HW is HW dependent. IFF_SIMPLEX flag controls this. This is the same as BSD behavior (it is BSD code). You don't see examples in specific ethernet drivers because this is done in common subroutines. For Ethernet devices they are in common routines like ether_output() (For BSD style drivers), or ipOutput( for END style drivers). If IFF_SIMPLEX is set, a copy is sent to looutput() which loops back to IP. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: MAC address gets flipped after boot?? Date: Sat, 16 Mar 2002 11:32:15 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <3C9342ED.6010803@spamm.me.l8s.co.uk> <3C939348.70605@spamm.me.l8s.co.uk> Apparently, someone does own it. 00-08-2A (hex) Powerwallz Network Security Thanks to Gerry Belanger for pointing it out to me. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: DY4 X Libraries for vxworks Date: Sat, 16 Mar 2002 20:15:10 +0000 (UTC) From: "David Mccorkindale" Organization: BT Openworld Message-ID: We are currently trying to build an application to put it into flash. To do that, we must link our application code with vxworks and appropriate dy4 opengl and X libraries. To do this, we have a project building a downloadable vxworks with the libraries either in LIBS or EXTRA MODULES. The build gets so far and then fails. The problem is there are conflicts between the library libx11.a and the xserver xpmc700. We've tried the old trick of varying the link order, but to no avail. Has anyone ever managed to get this to work? There is no problem if you link for dynamic loading. In fact, if you do that and then lkup, you can see, for example, that gethostbyaddr has indeed been loaded twice. Unfortunately we must do all linking at build time. Thanks. - -- Regards, David McCorkindale dmc@btopenworld.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: MAC address gets flipped after boot?? Date: Sat, 16 Mar 2002 20:25:57 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C93AAC5.70605@spamm.me.l8s.co.uk> References: <3C9342ED.6010803@spamm.me.l8s.co.uk> <3C939348.70605@spamm.me.l8s.co.uk> Hwa Jin Bae wrote: > If you read my comment, I said "invalid vendor". 'Incorrect' and/or 'Unassigned', but not 'Invalid' David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: MAC address gets flipped after boot?? Date: Sat, 16 Mar 2002 14:25:47 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <3C9342ED.6010803@spamm.me.l8s.co.uk> <3C939348.70605@spamm.me.l8s.co.uk> <3C93AAC5.70605@spamm.me.l8s.co.uk> OK, sorry for being stupid. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: MAC address gets flipped after boot?? Date: Sat, 16 Mar 2002 16:15:32 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <3C9342ED.6010803@spamm.me.l8s.co.uk> <3C939348.70605@spamm.me.l8s.co.uk> <3C93AAC5.70605@spamm.me.l8s.co.uk> James, I looked at the manual for MVME2X00. It has SROM which has MAC address. Reading from it is a bit like EEROM. But with this SROM you get 16bit at a time. Depending on host CPU byte order you may or may not need to swap to get the right byte. It seems the ethernet driver in your bootrom is doing the opposite of the driver in VxWorks. Since behavior of bootrom is correct and behavior of VxWorks driver seems incorrect, you should look into the part of the driver which reads from the SROM. Typically macros are used for these things, like LSB() and MSB(). Maybe they are compiled differently for bootrom and vxWorks. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: How do I debug freezes? Date: Sat, 16 Mar 2002 16:21:09 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <3c93ca60_3@nopics.sjc> Here are some things I do: 1. Use logic analyser to see the last batch of PC and memory data. 2. Use ICE, or PromICE 3. Use WindView and Stethoscope 4. If your system is VME based, you can write your own post mortem debugger. Another CPU on the bus can copy the memory of the dead board and analyze it later. The way I did before, I had to modify GDB (write a new backend) so that it can understand flat memory dump of the target board. There is some code I wrote that does something like this in the VxHacks repository. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: ATA driver for compact flash with memory mode Date: 16 Mar 2002 17:32:33 -0800 From: goldwave@cmmail.com (Gold Wave) Organization: http://groups.google.com/ Message-ID: <44fe2a7b.0203161732.71cc5f14@posting.google.com> Hi, guys Now I need to create a ATA driver for compact flash which works in memory mode. I got an ATA driver from Windriver support, but it's for PIO mode, so does anyone tell me any experience? Hope for help! Thanks --------------------------- Newsgroups: comp.os.vxworks Subject: Help:Toronda Prototyper two simulated targets in Windows XP? Date: Sat, 16 Mar 2002 21:05:27 -0800 From: "david" Organization: Bell Sympatico Message-ID: <7SSk8.63012$hb6.3809907@news20.bellglobal.com> Hi All: who have successed in configure Toronda Prototyper ULIP driver in Windows XP. I inquire if two simulated targets can communication in Windows XP? Can it work in Windows 2K? I would like to study VXwork network programming at home, and I would like to update my home OS from Windows 98 to Windows 2K or XP? Thanks in advance David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: DY4 X Libraries for vxworks Date: 16 Mar 2002 21:03:43 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203162103.66d07e3a@posting.google.com> References: Hello, Well, as long as all your .a files are at the end of your link line (check in the build output to get the exact order things are appearing in), then you should only ever get conflicts between the .a files, and then only if there are partial overlaps between .o files contained in the .a files. So, you need to do some work to diagnose the problem a little more... 1) Make sure that all the .a files are after the .o files in the link line 2) Determine which .o files contained in the archive are the cause of the problem, and from there which symbols are causing the second .o to be needed even though the first is present. The linker's map file can be useful for this since it will list the reason why a module was extracted from the archive. 3) Once you have the symbols that are causing the second .o file to be extracted from one of the archives, you can determine whether the second is a superset of the first (i.e. could replace it), or whether there are symbols in both .o files that you need. If you are lucky it will be the former. In that case, make a copy of the .a for backup purposes, then delete the sub-set .o from its archive using ar - -d. Since you've tried changing the order of the archives, I suspect that you might be unlucky. Have you tried asking DY-4 how this is meant to be done? If all else fails, you could try using objcopy -L to downgrade the instances of the offending symbols in the server to locals. That will prevent them from being an issue during the build, but obviously will leave you with two copies of the overlapping routines since there is something in the X11 lib that needs them too. HTH, John... "David Mccorkindale" wrote in message news:... > We are currently trying to build an application to put it into flash. To do > that, we must link our application code with vxworks and appropriate dy4 > opengl and X libraries. To do this, we have a project building a > downloadable vxworks with the libraries either in LIBS or EXTRA MODULES. The > build gets so far and then fails. > > The problem is there are conflicts between the library libx11.a and the > xserver xpmc700. We've tried the old trick of varying the link order, but to > no avail. > > Has anyone ever managed to get this to work? There is no problem if you link > for dynamic loading. In fact, if you do that and then lkup, you can see, for > example, that gethostbyaddr has indeed been loaded twice. Unfortunately we > must do all linking at build time. > > Thanks. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: How do I debug freezes? Date: 16 Mar 2002 21:17:30 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203162117.f67c45@posting.google.com> References: <3c93ca60_3@nopics.sjc> Hello, There are some general hints and tips I can share about debugging freezes for PPC... I've seen enough of them! I cannot give much of a clue about your current problem though, sorry... 1) The ICE/Probe should be able to tell you the current location of the PC, irrespective of the current task. Freezes are not often caused by a task (though they can be). More often they are an ISR or similar "invisible" code. So, check the PC, but don't be fooled by the current task ID. BTW, the shell waiting on the semaphore is not unusual, it is just trying to display a message. 2) When using the 'printf' debug strategy there are a couple of tips: (a) consider using logMsg() instead of printf() - handy in case of stack problems in the current task; (b) add a taskDelay() call after the printf/logMsg call to allow the output to be sent to the (relatively) slow serial port. 3) If you suspect interrupt handlers, or the quantity of debug output is so high that the timing is changing, try writing a position indicator to a special location. Now, since the bootrom will be running after the freeze, you need a safe location. I use locations going down from 0xfc under VxWorks 5.4, and locations starting at 0x3000 for VxWorks AE 1.1. Why the difference? Well, the pages below 0x3000 are "invisible" under AE, even to ISRs. 4) Once you have it narrowed down a little, you can use the memory trick in (3) to store variable values too so you get an idea of the state just before the crash. 5) When starting your task from the shell, spawn it as its own task rather than executing it directly from the shell. Also, use taskSpawn() so you can set the stack size to be very large (I tend to favour 1MB in these cases, but then I have plenty of memory, usually ;-). 6) Final tip, and it may be less useful for your case but is handy when debugging initial board start up, use calls to reboot() with a parameter of 1 (i.e. no auto-boot), to track down the exact location of the failure. First place I start when looking at boot problems, using a binary search strategy, is to determine if execution reaches usrRoot(). Hope something there helps with your problem, John... "Vladimir Vysotsky" wrote in message news:<3c93ca60_3@nopics.sjc>... > Hi, > > I'm pretty new to vxWorks and embedded programming (about two > months :), so, when something strange happens, I often don't > know what to do. > > The particular problem I'm stuck with right now is the following. > I have an MPC8260, a 60x to PCI bridge (Tundra Powerspan) and > several DSPs on the PCI bus. The code I'm trying to debug initializes > one of the DSPs, loads some software into it and tries to run it. > It also prints a lot of debug output using printf, which goes to > the console. I run it from the shell on the same console. > Sometimes the code executes fine, but sometimes it causes global > freeze - shell, network, everything. Of course, wdb doesn't help > in such cases. Using visionICE I've been able to look at the > stacks of the tasks. Strangely, tShell is blocked on something like > dsp_init_function->printf->...->tyWrite->semTake->semBtake. > > So, my question is not really "what happens" (although I'd be happy > if somebody could give a clue), but rather "how do I find out what > happens". Are there any vxWorks- or Motorola/PowerPC-specific > debugging tips and techniques applicable to my problem? > > Vladimir --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Can I associate a destination with a specific interface in the routing table? Date: Sun, 17 Mar 2002 08:14:18 +0000 (UTC) From: "Ramesh Krishnan" Organization: Mailgate.ORG Server - http://www.Mailgate.ORG Message-ID: References: Hi Hwa, I have a question? can you kindly tell me how the routing table will be for host specific routes for the network drawn earlier. To reach node 1.1.1.2 through interface A1, what will be the gateway ( A1 has to have some local IP address right ). Are the interfaces of all the three nodes are ethernet interfaces? Are they back to back connected? If this is the case and interfaces having some private address means we can send data. Without interfaces having IP addresses how data can be sent through socket ( How it is done in Point to Point links? Asking out of curiosity ). Thanks, Ramesh =========================================== "Hwa Jin Bae" wrote in message news:u975dl5ar8a277@corp.supernews.com... > A, B, C all can reside in same subnet and still have host specific routes. > > -- > Hwa Jin Bae > mailto:hjb@pso.com > http://www.pso.com - -- Posted via Mailgate.ORG Server - http://www.Mailgate.ORG --------------------------- End of New-News digest ********************** From vxwexplo-errs@csg.lbl.gov Mon Mar 18 04:03:12 2002 From: Vxworks Exploder Date: Mon Mar 18 04:03:14 PST 2002 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Mon Mar 18 04:03:08 PST 2002 Subject: Re: Problem in attaching cpm Subject: Re: problem about RapidControl Subject: Re: Help:Toronda Prototyper two simulated targets in Windows XP? Subject: Re: Can I associate a destination with a specific interface in the routing table? Subject: Re: How to preform periodical task except sysAuxClkRateSet() Subject: Xerces XML parser Subject: VxWorks faq archives ?? Subject: MPC860 Ethernet Driver Subject: Re: HELP about sysAuxClkRateSet() and BSP ! Subject: Re: MPC860 Ethernet Driver Subject: Re: bootroms not building... Subject: Re: How to preform periodical task except sysAuxClkRateSet() Subject: Re: How do I debug freezes? Subject: Re: loadModule: Relocation value does not fit in 24 bits Subject: A problem about ppc860 QMC Subject: Re: How to preform periodical task except sysAuxClkRateSet() Subject: Re: arpresolve problem ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Re: Problem in attaching cpm Date: Fri, 15 Mar 2002 15:46:02 +0100 From: "Michael Lawnick" Organization: Buergernetz Dillingen Message-ID: References: <3C90A04F.3060102@neowave.co.kr> Reply-To: "Michael Lawnick" Sender: mlawnick@p5088ebb6.dip.t-dialin.net Hi , type help on boot line. This will list you the known ethernet drives. HTH - -- Mit freundlichen Gru©¬en, Michael Lawnick ============================================== SOFTEC GmbH Tel +49-731-96600-0 Promenade 17 Fax +49-731-96600-23 D-89073 Ulm Michael Lawnick Germany lawnick@softec.de ============================================== "ÀÌÀçÈÆ" schrieb im Newsbeitrag news:3C90A04F.3060102@neowave.co.kr... > Hi, > > I am developing MPC860 board with ethernet interface. > > I found that rommed application counldn't attach cpm. > Messages are shown like this: > ---------------------------- begin of message > Failed to attach to device Network interface unknwon > > Attaching interface lo0 ... done > > ... <-- WDB related messages are in here. > 0x1ffdf8: task deadCan't attach unknwon device (unit 0) > ---------------------------- end of message > > > In BSP rom, network interface was normally functioned wid WDB agent. > > > What was wrong? > > Thanks in advance. > > -- > ===--------------------------------------------------=== > Jaehoon Lee Engineer, NeoWave Inc. > Tel: +82-31-380-4922 FAX: +82-31-380-4747 > mailto:jhoonlee@neowave.co.kr http://www.neowave.co.kr > ===--------------------------------------------------=== > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: problem about RapidControl Date: 17 Mar 2002 07:09:01 -0800 From: tut_pharoh@yahoo.com (tutankhamun) Organization: http://groups.google.com/ Message-ID: <88c8dc81.0203170709.4322f42f@posting.google.com> References: Replace your RCC_EXT_LocalEcho() defined in rcc_ext.c with the following: extern void RCC_EXT_LocalEcho(cli_env *pCliEnv, Boolean enable) { #ifdef __POSIX_OS__ struct termios TermIO; tcgetattr ( STDIN, &TermIO ); if (enable) TermIO.c_lflag |= ECHO; else TermIO.c_lflag &= ~ECHO; tcsetattr ( STDIN, TCSANOW, &TermIO ); #endif /* __POSIX_OS__ */ #ifdef __VXWORKS_OS__ static int opt = OPT_ECHO; if (enable) ioctl(STD_IN, FIOSETOPTIONS, OPT_RAW); else { opt = ioctl(STD_IN, FIOGETOPTIONS, opt); ioctl(STD_IN, FIOSETOPTIONS, OPT_RAW); } #endif /* __VXWORKS_OS__ */ if (enable) RCC_EnableFeature(pCliEnv, kRCC_FLAG_ECHO); else RCC_DisableFeature(pCliEnv, kRCC_FLAG_ECHO); } Should fix your problem. This function sets the serial port console to OPT_RAW by which your program will have full control over the console. Hope this helps, tut yatc@21cn.com (lyman) wrote in message news:... > Now, I encounter a problem when using CLI. That is my typing from > HyperTerminal is alway echo again on srceen ,especially my password > ,which can also be displayed . You know that is terrible. Any comments > are welcome and grateful! --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Help:Toronda Prototyper two simulated targets in Windows XP? Date: 17 Mar 2002 07:20:13 -0800 From: tut_pharoh@yahoo.com (tutankhamun) Organization: http://groups.google.com/ Message-ID: <88c8dc81.0203170720.6208585b@posting.google.com> References: <7SSk8.63012$hb6.3809907@news20.bellglobal.com> David, As far as I know, the ULIP driver works only with WinNT 4.0/Win2k. I presume WindRiver has not yet released the ULIP driver for XP (I'm sure they must be working on it). I've seen a couple of posts to this effect, of late. So till they release it I suggest you hold off your upgrade; or if you're pressed for time, upgrade to win2k as ULIP driver is known to work on Win2k. regards, tut "david" wrote in message news:<7SSk8.63012$hb6.3809907@news20.bellglobal.com>... > Hi All: > who have successed in configure Toronda Prototyper ULIP driver in Windows > XP. > I inquire if two simulated targets can communication in Windows XP? > Can it work in Windows 2K? > I would like to study VXwork network programming at home, and I would like > to update my home OS from Windows 98 to Windows 2K or XP? > Thanks in advance > David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Can I associate a destination with a specific interface in the routing table? Date: Sun, 17 Mar 2002 08:31:09 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: Each point to point interface must have an associated destination address. That is what makes it a point to point interface, along with IFF_POINTOPOINT. In vxWorks you use ifDstAddrSet on interface. From socket layer you can choose to use SO_DONTROUTE option. When you use this option the routing table is bypassed and route is chosen based on destination address or network address. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: How to preform periodical task except sysAuxClkRateSet() Date: 17 Mar 2002 16:39:01 -0800 From: allencyl@my-deja.com (Allen Chang) Organization: http://groups.google.com/ Message-ID: <5c074538.0203171639.7c988ef1@posting.google.com> References: <5c074538.0203122254.56279c06@posting.google.com> <3C920A90.A9B8CB02@baesystems.removethis-nospam.com> David Machin wrote in message news:<3C920A90.A9B8CB02@baesystems.removethis-nospam.com>... > Use the watchdog timer (or better still an alarm timer) to trigger and > ISR that will: > > - Reprogram the watchdog timer for the next event (if required). > - Signal a semaphore. > > Then provide a task which loops, waiting on this semaphore to run. > > If you use a watchdog timer which requires reprogramming you may get > some drift due to the latency between timer expiry and the ISR running. > > > HTH > > Dave Machin > Machin Consultants Ltd. working on behalf of BAE SYSTEMS > Thanks EveryBody, I recently revice a message, "For example, if you use a 8253 Timer for getting 256Hz frequency, and use the channel 0/1/2/3/? as an auxClock. The base clock for 8253 Timer is 1193180 hz, the counter value should be 1193180/256 = 4660.85 (4661). Is this good enough for you application? The other choice is using APIC timer in P2/P3/P4 architecture." I'm using P3, how to use APIC timer? Regards, Allen Chang --------------------------- Newsgroups: comp.os.vxworks Subject: Xerces XML parser Date: Sun, 17 Mar 2002 19:25:33 -0600 From: Arthur Gold Organization: TippingPoint Message-ID: <3C95420D.D1138BEA@tippingpoint.com> Hey all: Has anyone had any success porting the Xerces-C XML parsing library to vxWorks? I found what purported to be a port (from the XDAQ distribution) but, alas, many problems have ensued (primarily due to the semantics of the `wide, flat, persistent address space' as exists on vxWorks). Many, many thanks, - --ag - -- Artie Gold -- TippingPoint Technologies --------------------------- Newsgroups: comp.os.vxworks Subject: VxWorks faq archives ?? Date: Sun, 17 Mar 2002 17:55:41 +0000 From: Binish Parangodath Organization: Nortel Message-ID: <3C94D89D.96A5B45F@nortelnetworks.com> Reply-To: binishp@nortelnetworks.com Hi , I am looking for vxWorks FAQ archives. Any pointers ??? Regards, Binish --------------------------- Newsgroups: comp.os.vxworks Subject: MPC860 Ethernet Driver Date: 17 Mar 2002 19:27:45 -0800 From: brightpolestar@yahoo.com (Daniel Haines) Organization: http://groups.google.com/ Message-ID: <28ee7c97.0203171927.2418d5ec@posting.google.com> Hi, I wonder if Windriver provides ethernet device driver for Motorola PPC860? Is it in the BSP of evaluation board? where can I get it? Thanks. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: HELP about sysAuxClkRateSet() and BSP ! Date: Mon, 18 Mar 2002 03:44:47 GMT From: nunya@damn.business.com (Bruce) Organization: Prodigy Internet http://www.prodigy.com Message-ID: <3c9562ef.33310267@news.dallas.sbcglobal.net> References: <5c074538.0203111923.534ff9d2@posting.google.com> In comp.os.vxworks allencyl@my-deja.com (Allen Chang) wrote: > In our application, we have some periodical task, and the VxWorks >Reference Manual, about sysAuxClkRateSet() the return value is >ERROR if the tick rate is invalid. > > I'm now planning to use VxWork with x86 or PPC platform, >and I need to set the sysAuxClkRateSet() with 64Hz, 80Hz, >256Hz, 320 Hz. I need to make sure that the board/BSP will >support that frequences before I buy it. Allen, I'm almost certain I recall that the auxilliary clock on the X86 is limited to power of two frequencies. This would leave you unable to set 80 and 320 Hz. I don't know about PPC since this is a BSP item. Bruce --------------------------- Newsgroups: comp.os.vxworks Subject: Re: MPC860 Ethernet Driver Date: Sun, 17 Mar 2002 20:35:38 -0800 From: "Michael R. Kesti" Organization: MK Associates Message-ID: <3C956E9A.E43D1ED9@gv.net> References: <28ee7c97.0203171927.2418d5ec@posting.google.com> Reply-To: mkesti@gv.net Daniel Haines wrote: >I wonder if Windriver provides ethernet device driver for Motorola PPC860? Yes, for both the CPM and FEC/MII interfaces. >Is it in the BSP of evaluation board? I believe that they're included in the ADS860 BSP. > where can I get it? You purchase the BSP from Wind River, I think. - -- ======================================================================== Michael Kesti | "And like, one and one don't make | two, one and one make one." mkesti@gv.net | - The Who, Bargain --------------------------- Newsgroups: comp.os.vxworks Subject: Re: bootroms not building... Date: Sun, 17 Mar 2002 23:51:39 -0500 From: "BruceL" Message-ID: References: Not sure about the first. When building for rom residency, you must use the macro $(CC_ROM_RES_FLAGS) to get the RAM_ADRS thing. Grep for this in the target\h\make directory. Bruce "Ali" wrote in message news:b305b5bd.0203122344.269d9c1@posting.google.com... > hi everyone > Im trying to build a ootroms for my project bsp but the problem is > that when i build the bootrom_uncmp,bootrom_uncmp.hex it builds well > and ok. > when i am building bootrom.st,bootrom.hex it shows following errors.. > l/version.c > ldppc -X -N -e _romInit -Ttext 0x00010000 \ > -o bootrom romInit.o bootInit.o version.o \ > /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/miiLib.o > /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/motFccEnd.o > /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/fatlite.o > /home/alimohd/tornado/target/lib/libPPCEC603gnuvx.a bootrom.Z.o > /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/miiLib.o: In > function `miiBasicCheck': > /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/miiLib.o(.text+0x1b14): > undefined reference to `sysClkRateGet' > /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/miiLib.o(.text+0x1b34): > undefined reference to `sysClkRateGet' > /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/miiLib.o: In > function `miiPhyMonitor': > /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/miiLib.o(.text+0x2e54): > undefined reference to `sysClkRateGet' > /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/miiLib.o: In > function `miiPhyListAdd': > /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/miiLib.o(.text+0x30c8): > undefined reference to `sysClkRateGet' > make: *** [bootrom] Error 1 > > when i build bootrom_res and bootrom_res.hex it shows following > errors.. > > cd /home/alimohd/tornado/target/config/ep8260/ > make bootrom_res > ccppc -B/home/alimohd/tornado/host/sun4-solaris2/lib/gcc-lib/ -c > -mstrict-align -ansi -nostdinc -O2 -fvolatile -fno-builtin > -fno-for-scope -Wall -I/h -I. > -I/home/alimohd/tornado/target/config/all > -I/home/alimohd/tornado/target/h > -I/home/alimohd/tornado/target/src/config > -I/home/alimohd/tornado/target/src/drv -DCPU=PPCEC603 -g -O0 > -msoft-float -o version.o > /home/alimohd/tornado/target/config/all/version.c > ldppc -X -N -e _romInit \ > -Ttext 0xFF000100 -Tdata 0x00200000 -o bootrom_res romInit_res.o > bootInit_res.o \ > version.o bootConfig.o sysALib.o sysLib.o sysTffs.o > /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/miiLib.o > /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/motFccEnd.o > /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/fatlite.o > /home/alimohd/tornado/target/lib/libPPCEC603gnuvx.a > romInit_res.o(.text+0x416): undefined reference to `RAM_DST_ADRS' > romInit_res.o(.text+0x41a): undefined reference to `RAM_DST_ADRS' > make: *** [bootrom_res] Error 1 > hit ENTER to exit > > can anyone tell me why it happens and what actually is the > problem..Note that the files miiLib.o,motFccend.o and fatLite.o i have > attached as LIB_EXTRA in make file as these source files were not > available with me .. > Im using tornado2.0 IDE to do all this stuff on sun machine. > thanx in advance > ali --------------------------- Newsgroups: comp.os.vxworks Subject: Re: How to preform periodical task except sysAuxClkRateSet() Date: Fri, 15 Mar 2002 12:08:49 +0100 From: "Mario Semo" Organization: Nextra Telekom GmbH Message-ID: References: <5c074538.0203122254.56279c06@posting.google.com> <5c074538.0203131643.765b42c2@posting.google.com> <3c90a3ec@brateggebdc5.br-automation.co.at> <3C90AE69.10201@spamm.me.l8s.co.uk> Hello, on which HW? we use 4K timer. up to now (2 years) we didnt encounter a problem (x86 and ppc). but maybe we are doing just things which does not break. > > Don't set the normal clock much above 2k - things start > breaking if you do (select() fails above 2147Hz) > > David > > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: How do I debug freezes? Date: Sun, 17 Mar 2002 22:49:00 -0800 From: "Vladimir Vysotsky" Message-ID: <3c95926d_3@nopics.sjc> References: <3c93ca60_3@nopics.sjc> <488e459a.0203162117.f67c45@posting.google.com> "John" wrote: > There are some general hints and tips I can share about debugging > freezes for PPC... I've seen enough of them! I cannot give much of a > clue about your current problem though, sorry... [...] John, thanks a lot - all your suggestions may be very helpful in future. I didn't realize that task stacks in PPC/vxWorks are normally that small - something I'll definitely need to take into account. By the way - after three days I've finally debugged the problem, and it appeared to be caused by hardware, not by software. PCI controller generated a signal (ARTRY~) during PCI configuration cycles, which, according to Motorola errata document, "confused" the comm processor in 8260 to the point of completely stopping console and Ethernet I/O. Go figure... Vladimir. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: loadModule: Relocation value does not fit in 24 bits Date: Mon, 18 Mar 2002 09:03:54 +0100 From: "Michael Lawnick" Organization: Buergernetz Dillingen Message-ID: References: Reply-To: "Michael Lawnick" Sender: mlawnick@p5088edae.dip.t-dialin.net Hi Zvika, AFAIK this has been discussed several times in the last half year: Your memory is more than 32MB on a PPC, right ? So, when your code resides in upper memory and wants to call system functions, it's branch address-width exceeds the standard coding width in PPC mnemonic. This is detected on locating your object on end of dynamic load. It will not occur on small code loaded via target-agent, as code will now lay in target agent's local buffer,near kernel. 4 of ? workarounds: a) use -mlongcall in compiler directive. Result has larger and slower code, but may be located anywhere. b) set USER_RESERVED_MEM in your BSP to an amount, you only have 32MB left. Load your image after boot and call memAddToPool(USER_RESERVED_MEM).This will only work, if you don't need to download later on. c) set USER_RESERVED_MEM in your BSP to an amount, you only have 32MB left. Create a secondary memory partition with memPartCreate() for your USER_RESERVED_MEM. All calls of malloc in your code should now be replaced by memPartAlloc() to this new partition. d) Write your own memory allocator, where you can allocate memory from lower (32MB) region if available. Now do a loadModuleAt(). HTH - -- Mit freundlichen Grüßen, Michael Lawnick ============================================== SOFTEC GmbH Tel +49-731-96600-0 Promenade 17 Fax +49-731-96600-23 D-89073 Ulm Michael Lawnick Germany lawnick@softec.de ============================================== "Zvika Vered" schrieb im Newsbeitrag news:a6tuis$460$1@news.inter.net.il... > Hello All, > > When I load an object file by calling LoadModule() or ld (1) > > Relocation value does not fit in 24 bits. > Relocation value does not fit in 24 bits > ...... > > But if I download this file by Tornado II,it is ok. > Who can help me? > > --------------------------- Newsgroups: comp.os.vxworks Subject: A problem about ppc860 QMC Date: 18 Mar 2002 03:27:33 -0800 From: li.jingchi@mail.zte.com.cn (Networker) Organization: http://groups.google.com/ Message-ID: <18fe3c2d.0203180327.3e3a5bfc@posting.google.com> I am do some working about PPC860 in QMC, but now I found a strange thing: when the SCCx has been asinged with QMC parameters "qmcstate = 0x8000", after initalize, make SCCx TXB and RXB interupt enabled, I found the parameter of this SCC QMC "qmcstate = 0x0", WHY? --------------------------- Newsgroups: comp.os.vxworks Subject: Re: How to preform periodical task except sysAuxClkRateSet() Date: Mon, 18 Mar 2002 06:44:33 -0500 From: joe durusau Organization: Bellsouth.Net Message-ID: <3C95D321.D0B01F0F@bellsouth.net> References: <5c074538.0203122254.56279c06@posting.google.com> <5c074538.0203131643.765b42c2@posting.google.com> <3c90a3ec@brateggebdc5.br-automation.co.at> <3C90AE69.10201@spamm.me.l8s.co.uk> <3c90e61d@brateggebdc5.br-automation.co.at> <5c074538.0203141726.537eb8e1@posting.google.com> <3c91ed7c$1@brateggebdc5.br-automation.co.at> Werner Schiendl wrote: > Hi, > > Maybe you can exchange the system clock with the auxilary clock if you > change the BSP sources. > <> > hth > Werner > > "Allen Chang" wrote in message > news:5c074538.0203141726.537eb8e1@posting.google.com... > -- snip -- > > > > Hello All, > > > > In general, My task will execute at (64*n)Hz, but when being set, > > the whole task needs to execute at (80*n)Hz. > > For the 64*nHz task I can use sysAuxClkRateSet(), but for 80*nHz one... > > that is the problem. > > > > Regards, > > > > Allen Chang The speeds the OP is suggesting sound like he needs to add a hardware device to interrupt at a periodic rate. There are many such devices on the market. Speaking only for myself, Joe Durusau --------------------------- Newsgroups: comp.os.vxworks Subject: Re: arpresolve problem Date: Mon, 18 Mar 2002 11:51:58 GMT From: brede.thurmann@kongsberg-simrad.com (BT) Message-ID: <3c95d448.2800306@news.eunet.no> References: <97b1f722.0203130602.6f27d94b@posting.google.com> I guess you are out of network stack memory. From the ENS/TORNADO 2.0 NETWORK STACK CONFIGURATION/PERFORMANCE ISSUES: 4.1.1 NETWORK STACK MEMORY POOLS -------------------------- Increase the default values as follows: 1. INCREASE NUM_FILES The socket library uses NUM_FILES to configure the size of the socket file descriptor table. The default value for NUM_FILES is 50 sockets. 2. TCP SOCKETS For every TCP socket, the system allocates 3 clusters (1 128 byte, 1 256 byte, and 1 512 byte clusters) used for the generic protocol control block (inpcb), TCP protocol control block, and the socket structure respectively. 3. UDP SOCKETS For every UDP socket, the system allocates 2 clusters (1 128 byte, 1 512 byte) used for the inpcb and socket structures respectively. 4. ROUTES For every link layer route (ARP), 3 clusters (2 64 byte, and 1 256 byte) clusters are allocated. BT On 13 Mar 2002 06:02:35 -0800, edenkannan@hotmail.com (kannan) wrote: >Hi, > >I have a problem in connecting my SMTP client which runs in my target >board .When i communicate with our mail server it just throws > >0xfb7490 (tNetTask): arptnew failed on 876f7a92 >0xf84638 (tPingTx4): arpresolve: can't allocate llinfo0xfb7490 >(tNetTask): arptn >ew failed on 876f7a92 >0xf84638 (tPingTx4): arpresolve: can't allocate llinfo0xfb7490 >(tNetTask): arptn >ew failed on 876f7a92 > >I have added all components related with arp say INCLUDE_ARP_API and >INCLUDE_ARP.But the error comes again and again whenever the SMTP >client program >is called from our target board. > >Note:My mail server is in the same subnet. > >Another strange thing i found out is arpShow works in the shell.But >arpAdd doesn't works in the shell.I tried checking the >target\lib\objPPC860gnuvx there the arpLib.o is missing .But arpShow >and arpAdd works in the simulator i tried checking the >target\lib\objSIMNTgnuvx which contains arpLib.o. > >I don't know how to proceed pls help me.. > > >Thanks and Regards, >Kannan --------------------------- End of New-News digest ********************** From vxwexplo-errs@csg.lbl.gov Mon Mar 18 07:18:58 2002 From: Shlomo Katz Date: Mon Mar 18 07:19:00 PST 2002 Subject: using scanf under vxworks hi i am trying to use scanf under vxworks, i have connected a hyper teminal to my board and printf seems to work fine. do not they should work on the same channel katz shlomi From vxwexplo-errs@csg.lbl.gov Mon Mar 18 21:27:58 2002 From: vinayak kore Date: Mon Mar 18 21:28:01 PST 2002 Subject: Re: using scanf under vxworks Hi, Have you enabled shell? If yes, you need to delete it so that the scanf will work.Give command - td tShell form the shell. U will stop receiving shell prompt after this command. Then give the input value which you are trying to receive using scanf(). Vinayak Kore --- the vxWorks Users Group Exploder wrote: > Submitted-by vxwexplo-errs@csg.lbl.gov Mon Mar 18 > 07:18:58 2002 > Submitted-by: Shlomo Katz > > hi > i am trying to use scanf under vxworks, i have > connected a hyper teminal to > my board and > printf seems to work fine. > do not they should work on the same channel > > katz shlomi > > ********** > > This is a user group mailing list for vxWorks > related topics > see http://www-vxw.lbl.gov/vxworks for posting > and subscription info __________________________________________________ Do You Yahoo!? Yahoo! Sports - live college hoops coverage http://sports.yahoo.com/ From vxwexplo-errs@csg.lbl.gov Tue Mar 19 04:03:21 2002 From: Vxworks Exploder Date: Tue Mar 19 04:03:24 PST 2002 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Tue Mar 19 04:03:17 PST 2002 Subject: Re: VxWorks faq archives ?? Subject: Re: How to preform periodical task except sysAuxClkRateSet() Subject: Re: loadModule: Relocation value does not fit in 24 bits Subject: How do I debug freezes? Subject: Proxy Arp Client Fails (Error 0x4c0009) Subject: Bootprom Subject: Re: MPC860 Ethernet Driver Subject: Re: SCSI request sense failed with a phasemismatch Subject: Re: muxDevStart function failed. Subject: Time Counter on MVME2400 Subject: Re: Is it possible to change the priortiy of windsh Subject: Re: Tornado 2.0.2 With gcc 2.96 Subject: SCSI Speed Limit, have you been faster? Subject: Disable java mode (Altivec) Subject: Getting the Mac Address Subject: Re: Time Counter on MVME2400 Subject: How to access LPC47M14x fan control (intel 845 motherboard)? Subject: Re: Can I associate a destination with a specific interface in the routing table? Subject: Re: Can I associate a destination with a specific interface in the routing table? Subject: Re: Getting the Mac Address Subject: Vxworks stack trace Subject: Re: Vxworks stack trace Subject: Test Subject: Source code for password encryption Subject: DHCP servers for VxWorks Subject: Re: Xerces XML parser Subject: Senior Embedded Systems developer looking for contract work ... Subject: Re: loadModule: Relocation value does not fit in 24 bits Subject: Re: Can I associate a destination with a specific interface in the routing table? Subject: Re: Can I associate a destination with a specific interface in the routing table? Subject: Re: Vxworks stack trace Subject: Re: bootroms not building... Subject: changes in object file Subject: mpc8260 scc ethernet driver Subject: Re: Can I associate a destination with a specific interface in the routing table? Subject: Re: SCSI Speed Limit, have you been faster? Subject: Re: Can I associate a destination with a specific interface in the routing table? Subject: I2C interface driver writing on MPC107 Subject: Re: Source code for password encryption Subject: Re: Time Counter on MVME2400 Subject: Re: Can I associate a destination with a specific interface in the routing table? Subject: How do device driver run on vxworks! Subject: socket create returns 0x23(decimal 35) error code i.e, it returns ENOTSUP Subject: Re: Source code for password encryption Subject: Re: Printing 64bit values Subject: VxWorks 5.2.1 ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Re: VxWorks faq archives ?? Date: 18 Mar 2002 05:17:30 -0800 From: tut_pharoh@yahoo.com (tutankhamun) Organization: http://groups.google.com/ Message-ID: <88c8dc81.0203180517.21a85846@posting.google.com> References: <3C94D89D.96A5B45F@nortelnetworks.com> Tyr these: http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html http://www.faqs.org/faqs/vxworks-faq/ hth, tut Binish Parangodath wrote in message news:<3C94D89D.96A5B45F@nortelnetworks.com>... > Hi , > > I am looking for vxWorks FAQ archives. > Any pointers ??? > > Regards, > Binish --------------------------- Newsgroups: comp.os.vxworks Subject: Re: How to preform periodical task except sysAuxClkRateSet() Date: Mon, 18 Mar 2002 13:19:46 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C95E9E3.6070207@spamm.me.l8s.co.uk> References: <5c074538.0203122254.56279c06@posting.google.com> <5c074538.0203131643.765b42c2@posting.google.com> <3c90a3ec@brateggebdc5.br-automation.co.at> <3C90AE69.10201@spamm.me.l8s.co.uk> >>Don't set the normal clock much above 2k - things start >>breaking if you do (select() fails above 2147Hz) > on which HW? > we use 4K timer. > up to now (2 years) we didnt encounter a problem (x86 and ppc). > but maybe we are doing just things which does not break. All hardware, since it is a bug in the generic 'kernel' code. You are probably 'lucky' because you dont ever call select() for timeouts that are fractions of a second - and require it to timeout. Try the following: - -> tv = malloc(8) - -> tv[0] = 5 - -> tv[1] = 0 - -> sp timex,select,0,0,0,0,tv timex: time of execution = 5000 +/- 10 (0%) milliseconds - -> tv[0]=0 - -> tv[1]=600000 - -> sp timex,select,0,0,0,0,tv timex: time of execution = 600 +/- 10 (1%) milliseconds I think you will find that the second one sleeps more or less forever - and may kill the system time in the process. David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: loadModule: Relocation value does not fit in 24 bits Date: Mon, 18 Mar 2002 13:22:34 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C95EA8D.4070003@spamm.me.l8s.co.uk> References: > 4 of ? workarounds: e) link your application into the vxWorks image David --------------------------- Newsgroups: comp.os.vxworks Subject: How do I debug freezes? Date: Sat, 16 Mar 2002 14:22:58 -0800 From: "Vladimir Vysotsky" Message-ID: <3c93ca60_3@nopics.sjc> Hi, I'm pretty new to vxWorks and embedded programming (about two months :), so, when something strange happens, I often don't know what to do. The particular problem I'm stuck with right now is the following. I have an MPC8260, a 60x to PCI bridge (Tundra Powerspan) and several DSPs on the PCI bus. The code I'm trying to debug initializes one of the DSPs, loads some software into it and tries to run it. It also prints a lot of debug output using printf, which goes to the console. I run it from the shell on the same console. Sometimes the code executes fine, but sometimes it causes global freeze - shell, network, everything. Of course, wdb doesn't help in such cases. Using visionICE I've been able to look at the stacks of the tasks. Strangely, tShell is blocked on something like dsp_init_function->printf->...->tyWrite->semTake->semBtake. So, my question is not really "what happens" (although I'd be happy if somebody could give a clue), but rather "how do I find out what happens". Are there any vxWorks- or Motorola/PowerPC-specific debugging tips and techniques applicable to my problem? Vladimir --------------------------- Newsgroups: comp.os.vxworks Subject: Proxy Arp Client Fails (Error 0x4c0009) Date: 18 Mar 2002 06:36:23 -0800 From: rob.coombs@lmco.com (Rob Coombs) Organization: http://groups.google.com/ Message-ID: <70a3b51c.0203180636.4e932b28@posting.google.com> I'm kind of stumped and hoping someone can help me. I have a PowerPC (mv2604) and a 68k (mv162) in a VME chassis. The PowerPC boots from the ethernet, and I'm attempting to setup a shared memory network to boot the 68k. We want to use the same subnet for the sm network, so we're using proxy arp. The PPC seems to be setup correctly. Upon boot, it initializes and attaches the sm network, and creates the proxy network. smNetShow shows the shared memory network, and proxyNetShow and proxyPortShow display the expected values. I can ping the the proxy master address from our main network (although I'm not sure if this really means anything?). When I boot the 68k, it attaches the sm interface (and smNetShow on the PowerPC shows it as 'poll'). It then attempts to register as a proxy client, and it fails with an error 0x4c0009 (this is a proxy lib timeout). We have the Tornado 2.0.2 patch and the Network patch installed. From what I see everything seems to be setup correctly, but I'm relatively new to Tornado/vxWorks, so I might be missing something. I've been talking with Tech Support, but they seem to be having a tough time coming up with suggestions. Here are the boot parameters for each card: PowerPC (proxy master): boot device : dc unit number : 0 processor number : 0 host name : neptune file name : /auto_opt/tornado2.0/ppc/target/config/mv2604/vxWorks inet on ethernet (e) : xxx.xxx.11.35:ffffff00 inet on backplane (b) : xxx.xxx.11.36:ffffffff host inet (h) : xxx.xxx.10.18 gateway inet (g) : xxx.xxx.11.1 user (u) : ftp password (pw) : flags (f) : 0x0 target name (tn) : ts2p startup script (s) : /projects/run/vxworks/ssde/PPC/links/ts2p/etc/rc (I've tried using a subnet mask of ffffff00 on the backplace inet too, and also using a host that is on the xxx.xxx.11.xxx subnet, but neither of these seemed to make any difference). 68k (proxy slave): boot device : sm=0x8004100 unit number : 0 processor number : 1 host name : neptune file name : /projects/run/vxworks/ssde/68K/kernel/vxWorks inet on ethernet (e) : inet on backplane (b) : xxx.xxx.11.37:ffffffff host inet (h) : xxx.xxx.10.18 gateway inet (g) : xxx.xxx.11.36 user (u) : ftp password (pw) : flags (f) : 0x100 target name (tn) : ts2s startup script (s) : (Again, here I have tried a subnet mask of ffffff00 on the backplace address and tried a host on the 11 subnet). Any ideas would be greatly appreciated! - -- Rob Coombs Lockheed Martin Halifax, NS rob.coombs@lmco.com --------------------------- Newsgroups: comp.os.vxworks Subject: Bootprom Date: Mon, 18 Mar 2002 15:23:39 -0000 From: "DMC" Message-ID: <3c96064b$1@pull.gecm.com> when I build a bootprom image of my application/vxworks, am I right in thinking the way to tell the board its ip address (and other information) is through the DEFAULT_BOOT_LINE macro in config.h, with the STANDALONE macro defined? If so, what do I put in for the boot device? Thanks, David. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: MPC860 Ethernet Driver Date: 18 Mar 2002 11:12:33 -0500 From: Bill Pringlemeir Organization: Factory of the mind Message-ID: References: <28ee7c97.0203171927.2418d5ec@posting.google.com> <3C956E9A.E43D1ED9@gv.net> Sender: bpringlemeir@DeadDuck >>>>> Daniel Haines wrote: Daniel> I wonder if Windriver provides ethernet device driver for Daniel> Motorola PPC860? Is it in the BSP of evaluation board? Daniel> where can I get it? >>>>> "Michael" == Michael R Kesti writes: Michael> Yes, for both the CPM and FEC/MII interfaces. Michael> I believe that they're included in the ADS860 BSP. Michael> You purchase the BSP from Wind River, I think. I think that Aisys (maybe another company from France or Germany) makes a package that is suppose to generate drivers for the PPP860. One problem was that several serial channels have to share different clock sources, so it is not possible to use a different baud rate on every SCC channel. Anyways, I looked at an evaluation copy of the software about three years ago. The software may have improved significantly. "http://www.aisysinc.com/" I think that Michael probably gave you the best advice. But a second source is always nice. Web searches also find several consultants who have MPC860 packages, although I can not comment on them. "http://www.google.ca/search?q=MPC860+device+drivers" hth, Bill Pringlemeir. - -- ANNOYED BY SALESMEN. CAPTAIN INTOXICATED. LEAVE BOAT. U-70. vxWorks FAQ, "http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html" --------------------------- Newsgroups: comp.os.vxworks Subject: Re: SCSI request sense failed with a phasemismatch Date: Mon, 18 Mar 2002 17:41:44 +0000 From: Mark Armstrong Organization: Kaon Ltd Message-ID: <3C9626D8.EC93CA9D@kaon.co.uk> References: <8fd52479.0202260519.7f89d892@posting.google.com> Hans, I'm suffering similar type problems with SCSI under VxWorks. Life is not as simple under VxWorks as when using Solaris for example, plug in a SCSI device and provided you don't mix up your HVDs and your LVDs it works. Shame. We've been in the situation with an 895 controller, where a Seagate disk and one tape drive type works fine and another similar tape drive type suffers a phase mismatch during scsiPhysDevCreate() caused by some idyosyncratic responses by the tape drive. After a bus analyser and the help of a "man in the know " from WindRiver it was decided that it should be possible to patch the WindRiver part of the driver to cope with our wayward device. If HP can produce a wayward tape drive then there must be loads of SCSI targets that can trick the VxWorks driver into failing. Having said that, try talking to you RAID asynchronously and narrow to start with. I.e do the following before calling scsiPhysDevCreate(): { SCSI_OPTIONS options; uint32_t which; if (scsiTargetOptionsGet (pSysScsiCtrl, scsiId, &options) == ERROR) { printf(" scsiTargetOptionsGet failed for TAPE DRIVE\n\a"); } which = SCSI_SET_OPT_XFER_PARAMS | SCSI_SET_OPT_WIDE_PARAMS; options.maxOffset = SCSI_SYNC_XFER_ASYNC_OFFSET; options.minPeriod = SCSI_SYNC_XFER_ASYNC_PERIOD; options.xferWidth = SCSI_WIDE_XFER_SIZE_NARROW; if (scsiTargetOptionsSet (pSysScsiCtrl, scsiId, &options, which) == ERROR) { printf(" scsiTargetOptionSet failed for TAPE DRIVE\n"); } } If that works but is too slow, try slowly increasing the synchronous transfer rate by decreasing the minPeriod. E.g { SCSI_OPTIONS options; uint32_t which; if (scsiTargetOptionsGet (pSysScsiCtrl, scsiId, &options) == ERROR) { printf(" scsiTargetOptionsGet failed for TAPE DRIVE\n\a"); } which = SCSI_SET_OPT_XFER_PARAMS; options.minPeriod = 25; /* 10MHz */ /* options.minPeriod = 12; */ /* 20MHz */ /* options.minPeriod = 6; */ /* 40MHz */ if (scsiTargetOptionsSet (pSysScsiCtrl, scsiId, &options, which) == ERROR) { printf (" scsiTargetOptionSet failed for TAPE DRIVE\n"); return (ERROR); } } If you still can't get any life or the speed you need, you may require serious SCSI debugging, or maybe you should try another RAID! Regards, Mark Armstrong > > I am using a VME board with a PPC750 and a SYM53C875 SCSI controller. > When I use the board with a SEAGATE harddisk everthing is fine. But when > I connect the board to a RAID controller it hangs in the routine > scsiPhysDevCreate(0,0,0,0,-1,0,0,0), the debug output shows like attached > below. > > Does anybody knows when went wrong and how I can solve this problem??? > > > 0x1683158 (t1): scsiReqSense: > 0x1683158 (t1): scsi2Transact: > 0x17d8af8 (tScsiTask): scsiMgrRequestProc: client request: 0 > 0x17d8af8 (tScsiTask): scsiMgrActivateRequest: thread 0x01ffe470 > 0x17d8af8 (tScsiTask): ncr810ThreadActivate: thread 0x01ffe470: activating > 0x17d8af8 (tScsiTask): ncr810XferParamsCvt: converted to: offset = 0, period > = 0 > xferParams = 0, clockDivide = 133 > 0x17d8af8 (tScsiTask): ncr810ThreadStateSet: thread 0x01ffe470: 1 -> 6 > 0x17d8af8 (tScsiTask): ncr810Event: received event 50 (thread = 0x01ffe470) > 0x17d8af8 (tScsiTask): ncr810ThreadEvent: thread 0x01ffe470: received event 50 > 0x17d8af8 (tScsiTask): ncr810PhaseMismatch: message out aborted (4 of 1 bytes se > nt). > 0x17d8af8 (tScsiTask): ncr810Event: received event 11 (thread = 0x01ffe470) > 0x17d8af8 (tScsiTask): ncr810ThreadEvent: thread 0x01ffe470: received event 11 > 0x17d8af8 (tScsiTask): MESSAGE REJECT message in > 0x17d8af8 (tScsiTask): WIDE DATA TRANSFER REQUEST rejected > 0x17d8af8 (tScsiTask): ncr810Event: received event 13 (thread = 0x01ffe470) > 0x17d8af8 (tScsiTask): ncr810ThreadEvent: thread 0x01ffe470: received event 13 > : > : repeats indefinitly > : > 0x17d8af8 (tScsiTask): ncr810Event: received event 13 (thread = 0x01ffe470) > 0x17d8af8 (tScsiTask): ncr810ThreadEvent: thread 0x01ffe470: received event 13 --------------------------- Newsgroups: comp.os.vxworks Subject: Re: muxDevStart function failed. Date: Mon, 18 Mar 2002 10:16:06 -0800 From: "Dan Gold" Organization: Mailgate.ORG Server - http://www.Mailgate.ORG Message-ID: References: <220aeb02.0203142148.7b873564@posting.google.com> Sender: gold@ensemble.com "Jae Young Choi" wrote in message news:220aeb02.0203142148.7b873564@posting.google.com... > I'm developing MPC8260 BSP. > I want to boot my hardware board using FCC. > But, my BSP says "Failed to start device motfcc" > What causes muxDevStart function failed? I guess you don't have the source to the driver, or you could look at it there... Try setting the global variable motFccEndDbg before calling your routines. If you can't find this variable, it means the driver wasn't compiled with debug enabled. Then you can either ask WRS for the source, or a .o that has been compiled with debug enabled. Also double check your bootline and make sure all the parameters there are correct. hth, Dan Gold gold@ensemble.com --------------------------- Newsgroups: comp.os.vxworks Subject: Time Counter on MVME2400 Date: 18 Mar 2002 18:27:28 GMT From: Juergen Naumann Organization: Uni Dortmund, Physik Message-ID: Reply-To: naumann@Physik.Uni-Dortmund.DE Dear vxWorkers We have MVME2400 Motorola PowerPC and vxWorks 5.4. For Trigger Purposes in High Energy Physics some short routines are running on these boards. The time available for 1 run is less then 100 mus. For timing checks and to monitor the boards I want to retrieve the time it takes between the first data entering the board and the routine ending. The BSP gives a maximum of 5000 for SYS_CLK_RATE_MAX which is by far not enough for my purposes. For some tests I succeed to use values for SYS_CLK_RATE as high as 100000, but this for sure limits the system performance. In Google I read the possibility to use the aux-Clock with a rather low Clock-rate and get the necessary precision by reading out the counter in-between the clock interrupts. Unfortunately the aux-Clock (provided by a timer counter in the Hawk-Chip) is not supported in the BSP, therefore e.g. sysAuxClkConnect does not exist. Therefore I have the question if it is possible to read out a counter of the "normal" system clock in the same way as was proposed for the aux-clock? Thanks and best regards, - -- Jürgen Naumann e----------------------------->H1<---------------------------p --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Is it possible to change the priortiy of windsh Date: Mon, 18 Mar 2002 19:37:53 +0100 From: "Doedel" Organization: @Home Network Message-ID: References: <%n7h8.2999$5o.2232656@newsr2.u-net.net> <3C850A5B.3040106@spamm.me.l8s.co.uk> <0iTh8.7396$J3.1346@nwrddc01.gnilink.net> You can do this by adding the following code (or calling it from the shell): E.g. when you want to change the prio to 150 (0 = default). - -> taskPrioritySet( taskNameToId("tShell"), 150) We also did that to enable us to do a lkup, i etc.. shell command when your hard realtime system is already running. Hope this helps. "Matt Schuckmann" wrote in message news:0iTh8.7396$J3.1346@nwrddc01.gnilink.net... > I tried his example but it doesn't work, I get a mesage "A host function > cannot be used as an argument" > > Any other ideas? > > Thanks > Matt S. > > "Michael Lawnick" wrote in message > news:a67e76$a3o$1@snoopy.bndlg.de... > > Hi Matt, > > > > just read a nd do how David said: > > on all critical commands use > > -> sp ,,,..... > > This seems the only way to get around your problems. All commands entered > > without 'sp' will be executed at the same priority as the shell you invoke > > it from. > > > > -- > > Mit freundlichen Grüßen, > > Michael Lawnick > > ============================================== > > SOFTEC GmbH Tel +49-731-96600-0 > > Promenade 17 Fax +49-731-96600-23 > > D-89073 Ulm Michael Lawnick > > Germany lawnick@softec.de > > ============================================== > > > > "Matt Schuckmann" schrieb im Newsbeitrag > > news:A2wh8.2902$J3.1067@nwrddc01.gnilink.net... > > > All good ideas guys but want if I want to use the ld() shell command to > > > dynamically load a module. > > > > > > The behaviour I've observed is that when I give the shell a command, > like > > > ld() or even one of my own functions, it spawns a very high proiorty > task, > > > priorty 3 I think and it's usually called t01, t02, t03, etc) to run the > > > function. Now if it's one of my own functions I can explicitly change > the > > > priorty right off and I'm good. But what I can't figure out is how to > make > > > the ld(), or other shell commands, to run at a lower priority so that > they > > > don't preempt my real time task. > > > > > > Any ideas would be great > > > Thanks > > > Matt Schuckmann > > > > > > matthew_schuckmann@amat.com > > > > > > "David Laight" wrote in message > > > news:3C850A5B.3040106@spamm.me.l8s.co.uk... > > > > >>Does anybody know if there is a way to change the priorty at which > > > > >>function and commands run from windsh run at? > > > > >> > > > > >>The problem I'm having is that I've got a significant part of my > code > > > > >>loaded and running and I'm dynamically loading and unloading another > > > > > > > > >>part of the code to make it easier and quicker to debug it. > > > > >>When I use the ld() command to dynamicaly load and unload the > > > > >>module I'm debugging the loader runs in the windsh task and that > > > > >>task appears to run at such a high priority that it prevents my > > > > >>hard real time task from running for long enough that I end up > > > > > > > > >>having to reset my hardware after loading or unloading my test > module. > > > > > > > > > > > > Just ask the shell to spawn a task to do the work.... > > > > > > > > sp ld,"filename" > > > > > > > > will run at a reasonable priority > > > > > > > > David > > > > > > > > > > > > > > > > > > > > > > > > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Tornado 2.0.2 With gcc 2.96 Date: Mon, 18 Mar 2002 19:42:02 +0100 From: "Dan Janssen" Organization: @Home Network Message-ID: References: <9ec53d11.0203042356.73d7b673@posting.google.com> I heard that that version will be delivered with Tornado 2.2. However you could request a Beta version now.... The 2.7.2. version from 1996 seems to have problems with C++ exception handling and more... "Ignacio González" wrote in message news:9ec53d11.0203042356.73d7b673@posting.google.com... > shoz@elbit.co.il (shoz) wrote in message news:... > > Hi > > Did any body use T2 update for gcc 2.96 on x86 ? > > Did any body use gcc 2.96 with Tornado on x86 ? > > thanks oz > > No. I wish I did, if it existed. I need C++ namespaces (to use CORBA > without nasty classes inside classes to simulate namespaces.) --------------------------- Newsgroups: comp.os.vxworks Subject: SCSI Speed Limit, have you been faster? Date: Mon, 18 Mar 2002 18:44:11 +0000 From: Mark Armstrong Organization: Kaon Ltd Message-ID: <3C96357B.31BF6A2A@kaon.co.uk> I am using a VME board with a PPC750 and a PMC that uses a SYM53C875 SCSI controller. We brought the device to life thanks to the VxWorks standard ncr810 driver, (remembering obviously to endian swap the ncr810 script or it won't work...) With the minPeriod set to 25 (* 4 ns = 100ns, i.e. 10MHz). This works fine but our maximum speed is 10MByte/s to our tape drive that is capable of 33MB/s when connected to a Solaris machine. Even with wide transfers negotiated which should double our bandwidth we only see 10 MByte/s. It's almost as if there is a hidden parameter that forbids transfers faster than 10MB/s for sequential devices. Does anyone know of such a parameter? This driver was written when 10MHz was the known SCSI-2 limit, the Reference Manual even comments on this limit. These days SCSI should be capable of 40MB/s, 80MB/s even 160MB/s and beyond before long. When we negotiate 10MHz the following is seen when debug enabled: 0xf7f2b10 (tScsiTask): ncr810ThreadActivate: thread 0x0e54c568: activating 0xf7f2b10 (tScsiTask): ncr810XferParamsCvt: requested: offset = 8, period = 25 0xf7f2b10 (tScsiTask): ncr810XferParamsCvt: converted to: offset = 8, period = 25 xferParams = 8, clockDivide = 19 etc... When we try to negotiate a higher speed (minPeriod = 12) the scsiPhysDevCreate() fails, hanging the bus with the activity light on and printing the following: 0xf7f2b10 (tScsiTask): SYNCHRONOUS TRANSFER REQUEST message in offset = 8, period = 12 0xf7f2b10 (tScsiTask): ncr810XferParamsCvt: requested: offset = 8, period = 12 0xf7f2b10 (tScsiTask): ncr810XferParamsCvt: converted to: offset = 8, period = 12 xferParams = 8, clockDivide = 19 0xf7f2b10 (tScsiTask): ncr810Resume: thread: 0x0e54c3e8: state 0 -> 2 0xf7f2b10 (tScsiTask): scsiMgrTimeoutProc: thread 0x0e54c3e8 (state = 6) timed out 0xf7f2b10 (tScsiTask): ncr810ThreadAbort: thread 0x0e54c3e8 (state = 6) aborting interrupt: ncr810EventTypeGet:Interrupt status istat = 0x89, SCSI status0 = 0x00, SCSI status1 = 0x00DMA status = 0x10 interrupt: ncr810EventTypeGet: script aborted. interrupt: ncr810Intr: DSA = 0x0f7f3d30, DSP = 0x0033cdf8, type = 1. interrupt: ncr810Intr: state 2 -> 0 0xf7f2b10 (tScsiTask): ncr810ThreadStateSet: thread 0x0e54c3e8: 6 -> 9 0xf7f2b10 (tScsiTask): ncr810Event: received event 1 (thread = 0x0e54c3e8) 0xf7f2b10 (tScsiTask): ncr810ThreadEvent: thread 0x0e54c3e8: received event 1 0xf7f2b10 (tScsiTask): ncr810InitEvent: thread 0x0e54c3e8: aborted 0xf7f2b10 (tScsiTask): ncr810Resume: thread: 0x0e54c3e8: state 0 -> 2 Its almost as if the tape drive accepts a faster speed but the VxWorks driver is still set in it's default with no hope of changing. I find it suspicious that the clockDivide = 19 does not change. Anyone know what this means? Has anyone found a fix or seen the NCR810 driver go faster than 10MB/s fast and wide to a sequential device? We've had an 895 device going at over 30MB/s to a disk which is why we are so confused at this speed limit. Yours hopefully Mark Armstrong --------------------------- Newsgroups: comp.os.vxworks Subject: Disable java mode (Altivec) Date: 18 Mar 2002 18:53:22 GMT From: bte@tog.arl.psu.edu (Bruce T. Einfalt) Organization: Applied Research Laboratory Keywords: altivec vxworks java mode Message-ID: Reply-To: bte@tog.arl.psu.edu Hi, I have a Motorola MVME5100 board (Altivec G4) with VxWorks 5.4 kernel using a Tornado 2.1 compiler. Could someone please tell me how I determine whether Java mode (IEEE mode) is enabled on the Altivec chip? I know it is in the VSCR register but how do I access it and set/disable the bit? I could not find any information on this in the VxWorks or 5100 manuals. Anu ideas? Thanks! - -- Bruce Einfalt ARL - Penn State 814-863-4142 beinfalt@psu.edu --------------------------- Newsgroups: comp.os.vxworks Subject: Getting the Mac Address Date: Mon, 18 Mar 2002 13:15:23 -0600 From: "Chris Richards" Message-ID: <3c963bfb$0$3038$39cecf19@news.twtelecom.net> Howdy. From a higher level application, how do you get the mac address of an interface? The standard Unix ioctl methods aren't working. I attempted to use EIOCGADDR and failed miserably. The other tack I took was to use endFindByName and then muxIoctl. Unfortunately, the pCookie that muxIoctl accepts isn't the same as the END_OBJ returned by endFindByName (though pCookie is returned from muxBind and contains the END_OBJ; but that is too low a level). I couldn't find endIoctl which muxIoctl documentation references. Since this would (seemingly) be a standard operation and wouldn't be a problem. I can only assume user error. Thanks. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Time Counter on MVME2400 Date: 18 Mar 2002 11:29:18 -0800 From: Joe Chung Message-ID: References: Try the undocumented function vxTimeBaseGet() which samples the 64 bit time-base register on the CPU itself. This timer has a 60ns period. Also search around deja for "vxTimeBaseGet" - -jc - -- (apply 'concat (reverse (list "com" (char-to-string 46) "yahoo" (char-to-string 64) "joechung"))) --------------------------- Newsgroups: comp.os.vxworks Subject: How to access LPC47M14x fan control (intel 845 motherboard)? Date: 18 Mar 2002 11:30:42 -0800 From: venkat@peribit.com (V. R. Venkataramana) Organization: http://groups.google.com/ Message-ID: <9f1c83d3.0203181130.785c9aae@posting.google.com> Mother Board: Intel Desktop Board D845WN Fan Control : via SMSC chip LPC47M142-NC OS : vxWorks I need to know: ================ 1. How to access FANx registers? The FAN1 and FAN2 registers are located 0x56 and 0x57 from base I/O in logical Device A. I tried to follow linux version of code: /* Device ID of SMSC47M14x super io chip */ #define DEVID 0x5F /* Configuration port address of the SMSC47M1xx Super I/O chip * Could also be 0x4e; on Intel D815* motherboards it is 0x2e * MODULE_PARM(siocfgport,"i"); * MODULE_PARM_DESC(siocfgport,"Configuration port: 0x2e or 0x4e */ int siocfgport=0x4e; /* send 0x55 to set up for configuration */ sysOutByte(0x55,siocfgport); /* now check the device type */ smscdevid=getregsio(0x20); /* check that chip is really there */ if (smscdevid!=DEVID) { /* prepare a helpful suggestion */ printf("<1>fan: No SMSC LPC47M1xx SuperI/O chip at address 0x%x\n", siocfgport); printk("<1>fan: Chip at this address has device ID 0x%x not 0x%x.\n", smscdevid,DEVID); printk("<1>fan: Try insmod fan.o siocfgport=0x%x. Exiting...\n", siocfgport==0x2e?0x4e:0x2e); } I cannot retrieve DEVID information at all. Before I access FANx register, I want to make sure that DEVID is valid. I cannot access DEVID information and FANx control registers. Any pointers on how to access DEVID anbd FANx registers will be greatly appreciated. Thanks, Venkat (408) 330-5628 --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Can I associate a destination with a specific interface in the routing table? Date: 18 Mar 2002 11:36:50 -0800 From: lliao@opvista.com (Liang) Organization: http://groups.google.com/ Message-ID: References: Consider the following configuration: 1.1.1.1 1.1.1.2 1.1.1.3 1.1.1.4 A <---------------> B <---------------> C <------------------> D If I want to send a packet from A to D, can I use your suggesting below? (Assume the interface from left to right is motfec0, right to left is motfec1) In node A: 1. ifFlagSet( "motfec0", IFF_POINTTOPOINT ) 2. ifDstAddrSet( "motfec0", "1.1.1.2") 3. routeAdd( "1.1.1.4", "1.1.1.2" ) In node B: 1. ifFlagSet( "motfec0", IFF_POINTTOPOINT ) 2. ifDstAddrSet( "motfec0", "1.1.1.3") 3. routeAdd( "1.1.1.4", "1.1.1.3" ) In node C: 1. ifFlagSet( "motfec0", IFF_POINTTOPOINT ) 2. ifDstAddrSet( "motfec0", "1.1.1.4") So if I send a udp packet in node A using the DONTROUTE flag, the packet destined for 1.1.1.4 will be sent to B using motfec0, and will be routed automatically to C, and then D? Do you think this will work? Also the documentation for IFF_POINTTOPOINT states that this flag can only be set at interface initialization time, so when/where do I set this? One more thing, how do I resolve the MAC addr? does ARP still work if the interface is IFF_POINTTOPOINT? Thanks. Liang "Hwa Jin Bae" wrote in message news:... > Each point to point interface must have an associated destination address. > That is what makes it a point to point interface, along with > IFF_POINTOPOINT. In vxWorks you use ifDstAddrSet on interface. > > From socket layer you can choose to use SO_DONTROUTE option. When you use > this option the routing table is bypassed and route is chosen based on > destination address or network address. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Can I associate a destination with a specific interface in the routing table? Date: Mon, 18 Mar 2002 11:55:13 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: First of all, if you set IFF_POINTOPOINT, ARP will not be generated. You can further disable ARP by setting IFF_NOARP. IFF_POINTOPOINT is not strictly initialization time flag. It can be set any time. There might be some drivers that abuse the condition for init time setting, but that would be not consistent with the rest of BSD code , at least in spirit. I cannot recommend you use IFF_POINTOPOINT because it gives me weird feelings associating Ethernet with point to point. If you must do so, then there might be a way to get it all working. Your solution won't work though. At least if you use SO_DONTROUTE. You can't ask stack to bypass the routing table, and attempt to use route table at the same time (as in your routeAdd). You drew different picture this time. A <-> B <-> C <-> D. If that is what you want to accomplish, it would be better to just use proxy ARP. B should proxy ARP respond for C, D. C would do it for D, etc. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Getting the Mac Address Date: Mon, 18 Mar 2002 12:05:33 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <3c963bfb$0$3038$39cecf19@news.twtelecom.net> Use ifunit() to get interface pointer (struct ifnet *). Cast this to (struct arpcom *). Access ac_enaddr, which will contain your ethernet address. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Vxworks stack trace Date: 18 Mar 2002 13:16:19 -0800 From: harixxxx@yahoo.com (T. Hariharan) Organization: http://groups.google.com/ Message-ID: <919a9583.0203181316.34beac93@posting.google.com> Hello, In the stack trace below, why are the arguments for some functions in square brackets and some not? What is the difference? Thanks, Hari 41454b i +53 : show ([53dc3bbc, 2, 53dc2ac4, 53dc3b8c, 1669aa]) 414693 show +9b : objShow (53dc3bbc, 2) 41f519 objShow +69 : taskShow ([53dc3bbc, 2, 53dc3bbc, 53dc2a84, 53dc2a88]) 3dfae6 taskShow +1be: 3dfb48 (53dc2a10) 3dfb7e taskShow +256: printf (3dfb02, 5ddc11cc) 3b3d96 printf +12 : fioFormatV ([3dfb0a, 53dc1fe4, 3b4c34, 1, 53dc2128]) 3b4b1c fioFormatV +a58: 3b4c34 (5ddc11cc, 6, 1) 3b4c44 fioFormatV +b80: write ([1, 5ddc11cc, 6, fffffffa, 53dc1fbc]) 3c0dd7 write +f : iosWrite ([1, 5ddc11cc, 6, 53dc1dd0, 3b4c49]) 3ec1c8 iosWrite +70 : 3bc0b8 ([5fff59ec, 5ddc11cc, 6, 6, 5ddc11cc]) 3bc0c9 dosFsChkDsk +2451: 3bb998 ([5fff59ec, 5ddc11cc, 6, 2, 53dc1da4]) 3bba5e dosFsChkDsk +1de6: semMTake (5fff59ec, ffffffff) --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Vxworks stack trace Date: Mon, 18 Mar 2002 21:25:17 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C965BB0.6030803@spamm.me.l8s.co.uk> References: <919a9583.0203181316.34beac93@posting.google.com> > In the stack trace below, why are the arguments for some > functions in square brackets and some not? What is the > difference? By the look of it the [] are used when the number of arguments isn't know and 4 arguments are given. (Actually it may even be giving the cuurent values of the registers that the arguments were passed in anyway....) David > 41454b i +53 : show ([53dc3bbc, 2, 53dc2ac4, 53dc3b8c, 1669aa]) > 414693 show +9b : objShow (53dc3bbc, 2) > 41f519 objShow +69 : taskShow ([53dc3bbc, 2, 53dc3bbc, 53dc2a84, 53dc2a88]) > 3dfae6 taskShow +1be: 3dfb48 (53dc2a10) > 3dfb7e taskShow +256: printf (3dfb02, 5ddc11cc) > 3b3d96 printf +12 : fioFormatV ([3dfb0a, 53dc1fe4, 3b4c34, 1, 53dc2128]) > 3b4b1c fioFormatV +a58: 3b4c34 (5ddc11cc, 6, 1) > 3b4c44 fioFormatV +b80: write ([1, 5ddc11cc, 6, fffffffa, 53dc1fbc]) > 3c0dd7 write +f : iosWrite ([1, 5ddc11cc, 6, 53dc1dd0, 3b4c49]) > 3ec1c8 iosWrite +70 : 3bc0b8 ([5fff59ec, 5ddc11cc, 6, 6, 5ddc11cc]) > 3bc0c9 dosFsChkDsk +2451: 3bb998 ([5fff59ec, 5ddc11cc, 6, 2, 53dc1da4]) > 3bba5e dosFsChkDsk +1de6: semMTake (5fff59ec, ffffffff) > --------------------------- Newsgroups: comp.os.vxworks Subject: Test Date: 18 Mar 2002 14:46:06 -0800 From: venkat@peribit.com (V. R. Venkataramana) Organization: http://groups.google.com/ Message-ID: <9f1c83d3.0203181446.456a1dbf@posting.google.com> Please ignore this --------------------------- Newsgroups: comp.os.vxworks Subject: Source code for password encryption Date: Mon, 18 Mar 2002 19:46:28 -0000 From: "cecil" Message-ID: <1016492581.2843.0.nnrp-07.d4e4b8d1@news.demon.co.uk> Does anybody know the algorithim to create the passwords for UserAdd? Nigel --------------------------- Newsgroups: comp.os.vxworks Subject: DHCP servers for VxWorks Date: 18 Mar 2002 23:11:00 GMT From: Denis Perelyubskiy Message-ID: Hello, in addition to the DHCP server supplied by WRS folks, are there any good alternatives that work for thousands of subscribers, and are really well-tested and supported? We'd prefer something we did not have to port, but if there are things easily-portable to VxWorks, we'd appreciate suggestions as well. Another, somewhat related question, is whether anyone around here knows/have used some tool for testing a DHCP server against heavy loads of possibly-not-very-well-behaving dhcp clients (whatever the definition of this may be)? We have some home-grown things that simulate this sort of traffic, but is there something that is known to work well, that's commercially available? thank you, denis - -- if you want to reply by mail, please tweak my address in a reasonable way. sorry for the inconvenience. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Xerces XML parser Date: Mon, 18 Mar 2002 23:55:58 +0000 From: molochai Message-ID: References: <3C95420D.D1138BEA@tippingpoint.com> Reply-To: molochai@vapour-trail.demon.co.uk Arthur Gold wrote: > Hey all: > > Has anyone had any success porting the Xerces-C XML parsing library to > vxWorks? We've ported the Xerces C++ parser. It was in fact very easy to do (all platform specifics bare abstracted into one class) - It took me about 1/2 hour to write a VxWorks implementation of it. There are some areas of difficulty such as the lack of wide-character support in VxWorks. We build Xerces as a library and have found the binaries to be huge, although much of this might be the symbol table rather than code. I also seem to recall the stack usage to be somewhat high due to profligate use of automatic objects built on it. --------------------------- Newsgroups: comp.os.qnx,comp.os.unix,comp.os.vxworks,comp.sys.arm,comp.sys.m68k Subject: Senior Embedded Systems developer looking for contract work ... Date: Tue, 19 Mar 2002 00:15:22 GMT From: "Mark Lane" Organization: AT&T Broadband Message-ID: Senior Embedded Systems developer looking for contract work ... - - pSOS, VxWorks, VRTX, Nucleus, QNX, OSE, INTEGRITY - - C/C++, Assembly, Microcode - - Object-Oriented, UML, Rational Rose, SASD - - PowerPC, PowerQuicc, 683XX, 68K, ColdFire, 68HCXX - - Pentium, 80X86, ARM7/9, TI OMAP, 805X - - ClearCase, PVCS, CVS, RCS, SEI/ISO process - - NT, Unix, GNU, Perl, ShellScripting - - TCP/IP, ATM, SAR, CAC, QOS, GSM/GPRS, SNMP - - USB, PCI, VME, ISA, DSL, JTAG, I2C, SPI, DS1, DS3 - - BSP Development, Debug GREEN hardware - - Complex software design at any level - - Commercial or Military Mark Lane Time Domain Systems, Inc. 214-232-4091 marklane5@attbi.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: loadModule: Relocation value does not fit in 24 bits Date: Tue, 19 Mar 2002 00:32:55 GMT From: Andray Kaganovsky Organization: Primus Canada Message-ID: References: "Zvika Vered" wrote in news:a6tuis$460$1 @news.inter.net.il: > Hello All, > > When I load an object file by calling LoadModule() or ld (1) > > Relocation value does not fit in 24 bits. > Relocation value does not fit in 24 bits > ...... > > But if I download this file by Tornado II,it is ok. > Who can help me? > > [AndrayK]. I belive you can solve your problem by recompiling your module with "-mlongcall" switch. Andray --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Can I associate a destination with a specific interface in the routing table? Date: 18 Mar 2002 17:48:50 -0800 From: lliao@opvista.com (Liang) Organization: http://groups.google.com/ Message-ID: References: Thanks HJB, your information is very useful. I think you are right about the fact that IFF_POINTOPOINT may not be the right approach to solve my problem. My true configuration, which I had previously left out for simplification, is A <-> B <-> C <-> D <-> E <-> F <-> ... <-> A. ( a ring ) In fact, in the future the configuration may be extended to include trees. My task is to design a solution so all the nodes can communicate with each other. I am planning to port OSPF into VxWorks to establish the routing table. I was thinking about using the routing table already provided in the IP layer (routeLib). But all my links are Ethernet point to point, and from our discussion there doesn't seem to be an easy way to add p2p links to the routing table. I believe OSPF already provides support for establishing routes over p2p links, and for routing I think I will create my own routing table in each node. For example, A knows from its routing table that to send traffic to D, it will send the packet over motfec0 to B. When B receives the packet, (MUX_PROTO_SNARF), my protocol service routine will consult my routing table and forward the traffic to C (etherOutput). I will bypass the VxWorks IP layer completely. There are still some details to be worked out but so far I think this will work. Thanks again for your help. Further recommendations(if any) is much appreciated. Liang "Hwa Jin Bae" wrote in message news:... > First of all, if you set IFF_POINTOPOINT, ARP will not be generated. You > can further disable ARP by setting IFF_NOARP. > > IFF_POINTOPOINT is not strictly initialization time flag. It can be set any > time. There might be some drivers that abuse the condition for init time > setting, but that would be not consistent with the rest of BSD code , at > least in spirit. > > I cannot recommend you use IFF_POINTOPOINT because it gives me weird > feelings associating Ethernet with point to point. If you must do so, then > there might be a way to get it all working. > > Your solution won't work though. At least if you use SO_DONTROUTE. You > can't ask stack to bypass the routing table, and attempt to use route table > at the same time (as in your routeAdd). > > You drew different picture this time. A <-> B <-> C <-> D. > > If that is what you want to accomplish, it would be better to just use proxy > ARP. > > B should proxy ARP respond for C, D. C would do it for D, etc. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Can I associate a destination with a specific interface in the routing table? Date: Mon, 18 Mar 2002 18:57:43 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: You know, it is possible to use routeAdd() to add host specific routing table entries. Like, for example, routeAdd("1.1.1.4", "1.1.1.2") and routeAdd("1.1.1.4","1.1.1.3"). Why would it not work in your case? - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Vxworks stack trace Date: Mon, 18 Mar 2002 19:54:42 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <919a9583.0203181316.34beac93@posting.google.com> <3C965BB0.6030803@spamm.me.l8s.co.uk> The number of arguments for each function call in the call stack is derived from a simple algorithm that is CPU architecture specific. In most cases, the return address is examined. If the instruction in the return address (that is the instruction that gets executed after function call return) looks like instructions that are used to pop the stack of arguments, that is used to calculate how many arguments are passed. However, modern compilers optimize this out frequently, storing arguments in registers and doing other things. In those cases, the arguments for each function is printed inside brackets ([ ]). Since number of arguments is unknown, a default number of values are printed. The default is usually set to 5. Another thing to note is that arguments printed are approximate and not 100% accurate. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: bootroms not building... Date: 18 Mar 2002 21:18:33 -0800 From: alimohd@logiceastern.com (Ali) Organization: http://groups.google.com/ Message-ID: References: hi bruce thanx for ur reply but i am not getting wat u saying where should i set this flag i don't see it any where in target/h/make what actually i have to do . can u pls tell me clearly. thanx in advance ali "BruceL" wrote in message news:... > Not sure about the first. When building for rom residency, you must use the > macro $(CC_ROM_RES_FLAGS) to get the RAM_ADRS thing. Grep for this in the > target\h\make directory. > > Bruce > > "Ali" wrote in message > news:b305b5bd.0203122344.269d9c1@posting.google.com... > > hi everyone > > Im trying to build a ootroms for my project bsp but the problem is > > that when i build the bootrom_uncmp,bootrom_uncmp.hex it builds well > > and ok. > > when i am building bootrom.st,bootrom.hex it shows following errors.. > > l/version.c > > ldppc -X -N -e _romInit -Ttext 0x00010000 \ > > -o bootrom romInit.o bootInit.o version.o \ > > /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/miiLib.o > > /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/motFccEnd.o > > /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/fatlite.o > > /home/alimohd/tornado/target/lib/libPPCEC603gnuvx.a bootrom.Z.o > > /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/miiLib.o: In > > function `miiBasicCheck': > > /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/miiLib.o(.text+0x1b14): > > undefined reference to `sysClkRateGet' > > /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/miiLib.o(.text+0x1b34): > > undefined reference to `sysClkRateGet' > > /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/miiLib.o: In > > function `miiPhyMonitor': > > /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/miiLib.o(.text+0x2e54): > > undefined reference to `sysClkRateGet' > > /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/miiLib.o: In > > function `miiPhyListAdd': > > /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/miiLib.o(.text+0x30c8): > > undefined reference to `sysClkRateGet' > > make: *** [bootrom] Error 1 > > > > when i build bootrom_res and bootrom_res.hex it shows following > > errors.. > > > > cd /home/alimohd/tornado/target/config/ep8260/ > > make bootrom_res > > ccppc -B/home/alimohd/tornado/host/sun4-solaris2/lib/gcc-lib/ -c > > -mstrict-align -ansi -nostdinc -O2 -fvolatile -fno-builtin > > -fno-for-scope -Wall -I/h -I. > > -I/home/alimohd/tornado/target/config/all > > -I/home/alimohd/tornado/target/h > > -I/home/alimohd/tornado/target/src/config > > -I/home/alimohd/tornado/target/src/drv -DCPU=PPCEC603 -g -O0 > > -msoft-float -o version.o > > /home/alimohd/tornado/target/config/all/version.c > > ldppc -X -N -e _romInit \ > > -Ttext 0xFF000100 -Tdata 0x00200000 -o bootrom_res romInit_res.o > > bootInit_res.o \ > > version.o bootConfig.o sysALib.o sysLib.o sysTffs.o > > /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/miiLib.o > > /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/motFccEnd.o > > /home/alimohd/tornado/target/lib/objPPCEC603gnuvx/fatlite.o > > /home/alimohd/tornado/target/lib/libPPCEC603gnuvx.a > > romInit_res.o(.text+0x416): undefined reference to `RAM_DST_ADRS' > > romInit_res.o(.text+0x41a): undefined reference to `RAM_DST_ADRS' > > make: *** [bootrom_res] Error 1 > > hit ENTER to exit > > > > can anyone tell me why it happens and what actually is the > > problem..Note that the files miiLib.o,motFccend.o and fatLite.o i have > > attached as LIB_EXTRA in make file as these source files were not > > available with me .. > > Im using tornado2.0 IDE to do all this stuff on sun machine. > > thanx in advance > > ali --------------------------- Newsgroups: comp.os.vxworks Subject: changes in object file Date: 18 Mar 2002 21:40:03 -0800 From: alimohd@logiceastern.com (Ali) Organization: http://groups.google.com/ Message-ID: hi Can any body answer my simple question. I have the driver object file for FCC ethernet driver as it calls some functions from the BSP if i made the changes in the BSP will those changes be reflect in the object file .for instance if i change m8260InumToIvec in IntrCtl.h to m8255InumToIvec will this be reflected in driver file or not.This driver is provided by WRS with ads8260. thanx in advance ali --------------------------- Newsgroups: comp.os.vxworks Subject: mpc8260 scc ethernet driver Date: 18 Mar 2002 21:47:08 -0800 From: alimohd@logiceastern.com (Ali) Organization: http://groups.google.com/ Message-ID: hi all Has anybody written the driver code for SCC as ethernet in either mpc8260/mpc8255. I wonder i did not find any clue for that till now. I have to support ethernet on my scc interface on mpc8255 board. Has anybody written such driver so far. Pls give me thensuggestion where will i find such information or where can i find i scratch to start with.I do not have the bsp for either 8260/8255 .I know that number of guys would have done this before. so can anybody help me in this .. thanx in advance ali --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Can I associate a destination with a specific interface in the routing table? Date: Tue, 19 Mar 2002 06:18:33 +0000 (UTC) From: "Ramesh Krishnan" Organization: Mailgate.ORG Server - http://www.Mailgate.ORG Message-ID: <4b03f983597b7be1d8be2f119be0e622.77030@mygate.mailgate.org> References: Hi Hwa, In a ethernet medium, if you use host specific routes also, you are not assured of data is going through the particular interface. If you use SO_DONTROUTE option also, you may be able to receive the packet, not assured of whether data is going through a particular interface. Thanks, Ramesh "Hwa Jin Bae" wrote in message news:u9dabffjfns4b7@corp.supernews.com... > You know, it is possible to use routeAdd() to add host specific routing > table entries. Like, for example, routeAdd("1.1.1.4", "1.1.1.2") and > routeAdd("1.1.1.4","1.1.1.3"). > > Why would it not work in your case? > > -- > Hwa Jin Bae > mailto:hjb@pso.com > http://www.pso.com - -- Posted via Mailgate.ORG Server - http://www.Mailgate.ORG --------------------------- Newsgroups: comp.os.vxworks Subject: Re: SCSI Speed Limit, have you been faster? Date: Mon, 18 Mar 2002 22:23:58 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <3C96357B.31BF6A2A@kaon.co.uk> The clockDivide is the number that gets written to SCNTL3 register. There is a good description of what this register is used for in the 53c895 manual. Basically the clockDivide value 19 in this case (hex 0x13) means SCF[2:0]=1 and CCF[2:0]=3. They are probably hard-coded in the driver to depend on the SCLK. The values printed for XFER params does not make sense to me. I think the driver needs some work to support Ultra and Ultra2. It may not be handling multiplier at all and also calculating period and divisors incorrectly. You are probably lucky that it works at 10MB at all. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Can I associate a destination with a specific interface in the routing table? Date: Mon, 18 Mar 2002 22:38:05 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <4b03f983597b7be1d8be2f119be0e622.77030@mygate.mailgate.org> Ramesh, The way routing code works, host specific routes bound to an interface will be used properly. Just try it. I should work. If you still doubt it, go read BSD Unix code route.c. If you use SO_DONTROUTE, things will work as I said before. Routing is used for output, not input. So I don't understand your remark about receving OK but not OK sending. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: I2C interface driver writing on MPC107 Date: Tue, 19 Mar 2002 15:42:03 +0900 From: "¾ÈÁ¤ÈÆ" Organization: Korea Telecom Message-ID: Hi, all. I meet new project, but I am new at vxworks. So I don't know how I start to solve the problem.. Simply, My project is "I2C interface driver writing on MPC107".. Namely, I want to initialize board(MPC107) through the EEPROM. Can anyboy let me understand in most easiest way what and how I do..?? so I want to receive some manual, open source, html link and so on please help me...!!! --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Source code for password encryption Date: Mon, 18 Mar 2002 22:56:32 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <1016492581.2843.0.nnrp-07.d4e4b8d1@news.demon.co.uk> You can use vxencrypt that comes with Tornado to create passwords. You can also install your own encryption routine using loginEncryptInstall(). The algorithm used by vxencrypt is pretty weak. It is essentially just adding bytes in the password with some XOR of index ... or something like that. Not much better than rot13. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Time Counter on MVME2400 Date: Tue, 19 Mar 2002 08:55:37 +0100 From: "Michael Lawnick" Organization: Buergernetz Dillingen Message-ID: References: Reply-To: "Michael Lawnick" Sender: mlawnick@pd9e65dc3.dip.t-dialin.net Hi Juergen, besides there *is* an auxClk on your board (just include it in your workspace), and there are three more identical (unsupported) timers on the board (on MPIC), I wouldn't recommend to use an interrupt driven source just for getting time marks. Your fifth timer is a fixed micro second timer(CTR32 on SMC) , and if this isn't enough, include timestamping into your BSP and use sysTimestamp() to get a 60ns timestamp that will wrap every tick (its the lower count of sysClock). Just take a look into "MVME2400-Series VME Processor Module Programmer's Reference Guide" HTH Mit freundlichen Grüßen, Michael Lawnick ============================================== SOFTEC GmbH Tel +49-731-96600-0 Promenade 17 Fax +49-731-96600-23 D-89073 Ulm Michael Lawnick Germany lawnick@softec.de ============================================== "Juergen Naumann" schrieb im Newsbeitrag news:a75big$hdh$1@nx6.HRZ.Uni-Dortmund.DE... > Dear vxWorkers > > We have MVME2400 Motorola PowerPC and vxWorks 5.4. For Trigger Purposes > in High Energy Physics some short routines are running on these boards. > The time available for 1 run is less then 100 mus. For timing checks > and to monitor the boards I want to retrieve the time it takes between > the first data entering the board and the routine ending. > > The BSP gives a maximum of 5000 for SYS_CLK_RATE_MAX which is by far not > enough for my purposes. For some tests I succeed to use values for > SYS_CLK_RATE as high as 100000, but this for sure limits the system > performance. > > In Google I read the possibility to use the aux-Clock with a rather low > Clock-rate and get the necessary precision by reading out the counter > in-between the clock interrupts. Unfortunately the aux-Clock (provided > by a timer counter in the Hawk-Chip) is not supported in the BSP, > therefore e.g. sysAuxClkConnect does not exist. > > Therefore I have the question if it is possible to read out a counter > of the "normal" system clock in the same way as was proposed for the > aux-clock? > > > Thanks and best regards, > -- > Jürgen Naumann > e----------------------------->H1<---------------------------p > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Can I associate a destination with a specific interface in the routing table? Date: Tue, 19 Mar 2002 08:39:25 +0000 (UTC) From: "Ramesh Krishnan" Organization: Mailgate.ORG Server - http://www.Mailgate.ORG Message-ID: <37574f915d187852dcdba6f0e510ab8c.77030@mygate.mailgate.org> References: <4b03f983597b7be1d8be2f119be0e622.77030@mygate.mailgate.org> Hi Hwa, Sorry for that previous reply. It is a buggy one. Actually i forgot of the case that the Network diagram containing node's interfaces are back to back connected. In mentioning SO_DONTROUTE option also instead of typing sending i mistyped as receiving. Forgive me. But what i thought is like In the network drawn, ------------ | A | | | ------------ A1| |A2 | | | | B1| |C1 ------------ ------------ | B |B2 C2| C | | |-------| | ------------ ------------ if A, B, C are given IP address like they are in the same subnet e.g. A is 1.1.1.1, B is 1.1.1.2, C is 1.1.1.3, and want to get assured of data is sent from A1 to B1 right. Suppose if we add host specific routes, how do we get assured of data is going through A1 to B1. If link between A1 and B1 goes down and hence the routing protocol will remove this route right, and the net longest match prefix is through A2 and still the packet can reach B. Oh.. now only am getting it, he is talking only about the static routes right. In dyanmic routing protocol is updating means, we cannot add a static route. Oh sorry, bit confused. Sorry for the post Hwa. Thanks, Ramesh "Hwa Jin Bae" wrote in message news:u9dn8mcj232d48@corp.supernews.com... > Ramesh, > > The way routing code works, host specific routes bound to an interface will > be used properly. Just try it. I should work. If you still doubt it, go > read BSD Unix code route.c. > > If you use SO_DONTROUTE, things will work as I said before. Routing is used > for output, not input. So I don't understand your remark about receving OK > but not OK sending. > > -- > Hwa Jin Bae > mailto:hjb@pso.com > http://www.pso.com - -- Posted via Mailgate.ORG Server - http://www.Mailgate.ORG --------------------------- Newsgroups: comp.os.vxworks Subject: How do device driver run on vxworks! Date: 19 Mar 2002 00:58:27 -0800 From: tang-xiao-ming@263.net (xmtang) Organization: http://groups.google.com/ Message-ID: <6fe967ba.0203190058.70af0f38@posting.google.com> When I read Vxwork programmer's grude,something confuse me very much.Could you tell me how do device driver run on vxworks. Such as who invokes xxDrv() and xxDevCreate(),and what does xxDevCreate() implement generally. In addition,how do the xxInterrupt() run using Select Facillity. thanks in advance Sincerely,xmtang --------------------------- Newsgroups: comp.os.vxworks Subject: socket create returns 0x23(decimal 35) error code i.e, it returns ENOTSUP Date: 19 Mar 2002 01:36:42 -0800 From: sai_dattathrani@infy.com (sai) Organization: http://groups.google.com/ Message-ID: <8dff11cd.0203190136.7c7786fd@posting.google.com> Hi, When I try to create a routing socket using the function call socket as below, I get 0x23 error sockfd = socket(AF_ROUTE,SOCK_RAW,0); Please let me know if anything else needs to be done. Rgds sai --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Source code for password encryption Date: Tue, 19 Mar 2002 10:44:46 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C971710.2050009@spamm.me.l8s.co.uk> References: <1016492581.2843.0.nnrp-07.d4e4b8d1@news.demon.co.uk> > The algorithm used by vxencrypt is pretty weak. It is essentially just > adding bytes in the password with some XOR of index ... or something like > that. Not much better than rot13. I think it is sum( p[i] * i ^ i )) * 0x1e3a1d5 converted to ascii with a munged hex character set (presumably to make you think there are more than 2^32 encrypted passwords). I think I could reverse that using pen and paper, For a strong password [1], encrypt known plaintext using the password as the key. Unix traditionally uses DES - but that requires a moderate amount of code. I used 'TEA' - see vader.brad.ac.uk, since it is unencumbered. [1] problematical since you have difficulty protecting the password file as none of the vxWorks filesystems support user-ids. David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Printing 64bit values Date: 19 Mar 2002 11:58:46 GMT From: Johan Borkhuis Organization: XS4ALL Internet BV Message-ID: References: <900e9637.0203060746.2d1c1bda@posting.google.com> Sender: Johan Borkhuis doug dotson wrote: : This works: : void printULong (unsigned long val) : { : if (val > 0) { : printULong (val / 10); : printf ("%d", val %10); : } : } One remark on this piece of code: do not use recursive calls in an embedded system. This can cause some very difficult to track problems, when stack overflows occur, and that is something that can happen with recursive calls. I have seen some very nasty examples of that. Groeten, Johan - -- o o o o o o o . . . ______________________________ o _____ || Johan Borkhuis | .][__n_n_|DD[ ====_____ | borkhuis@agere.com | >(________|__|_[_________]_|___________________________| _/oo OOOOO oo` ooo ooo 'o!o!o o!o!o` === VxWorks FAQ: http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html === --------------------------- Newsgroups: comp.os.vxworks Subject: VxWorks 5.2.1 Date: Tue, 19 Mar 2002 13:28:17 -0800 From: Retro John Organization: Organization? This is usenet, good grief! Message-ID: <3C97AD71.20B9@dW.co.za> Hi all I need a copy of vxWorks 5.2.1 so that I can compile a driver for that platform -- I'm using both 5.3.1 and 5.4 but 5.2 goes back a long time. I have contacted VxWorks tech support and (1) they are not prepared to support 5.2 since it's pre-Tornado and (2) they don't even have an old CD lying around that they can ship me. So, can anyone help? If you have this CD, and you can mount it on some box on the net that also runs an ftp daemon, that would be great :-) This is for the x86 platform, BTW. Thanks Wouter --------------------------- End of New-News digest ********************** From vxwexplo-errs@csg.lbl.gov Tue Mar 19 05:01:44 2002 From: "prasanna denkanikota seshadri" Date: Tue Mar 19 05:01:46 PST 2002 Subject: vxworks:Problem in debugging. This is a multi-part message in MIME format. ------=_NextPartTM-000-7213bed1-3b19-11d6-a219-0000e22173f5 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Hi, We are facing one problem as stated below. we are using VxWorks 5.4,tornado 2 Complile the files without debug information. Now remove the reqd .o of the file to be debugged . Include the -g options in the compiler options and build the .out Download and start the debugger. I am able to put a breakpoint in the source code.When the execution comes to that point I can see the task breaking at that point in the shell. When I try to attach the debugger to the task. I get the following message. " Attach 0xae0cf30 Failed:WTX Error 0x100d1 Agent_GOPHER_FAULT " Can anyone comment on this. Thanks in advance. Prasanna. ------=_NextPartTM-000-7213bed1-3b19-11d6-a219-0000e22173f5 Content-Type: text/plain; name="InterScan_Disclaimer.txt" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="InterScan_Disclaimer.txt" **************************Disclaimer************************************ Information contained in this E-MAIL being proprietary to Wipro Limited is 'privileged' and 'confidential' and intended for use only by the individual or entity to which it is addressed. You are notified that any use, copying or dissemination of the information contained in the E-MAIL in any manner whatsoever is strictly prohibited. ******************************************************************** ------=_NextPartTM-000-7213bed1-3b19-11d6-a219-0000e22173f5-- From vxwexplo-errs@csg.lbl.gov Wed Mar 20 04:03:21 2002 From: Vxworks Exploder Date: Wed Mar 20 04:03:24 PST 2002 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Wed Mar 20 04:03:16 PST 2002 Subject: Re: PING johan! [was Re: Newbie question, please help!] Subject: Ping Toooo Slow Subject: Signal handlers parent and child Subject: Re: Vxworks stack trace Subject: Re: Can I associate a destination with a specific interface in the routing table? Subject: Re: Printing 64bit values Subject: Re: Printing 64bit values Subject: 100% Free Porn!\n Subject: Re: Printing 64bit values Subject: Re: Printing 64bit values Subject: Are sockets thread safe? Subject: Partitioning RAM space for DosFs2.0 Subject: Error building standalone vxWorks image with templates - makeSymTbl Subject: Anyone using tiny file system? Subject: Re: How to preform periodical task except sysAuxClkRateSet() Subject: Re: Anyone using tiny file system? Subject: Re: Partitioning RAM space for DosFs2.0 Subject: Re: Anyone using tiny file system? Subject: Re: mpc8260 scc ethernet driver Subject: Re: Anyone using tiny file system? Subject: Anybody ported openssh to vxworks ? Any issues ? Subject: Re: SCSI Speed Limit, have you been faster? Subject: Re: Vxworks stack trace Subject: Re: DHCP servers for VxWorks Subject: Re: How do device driver run on vxworks! Subject: Re: socket create returns 0x23(decimal 35) error code i.e, it returns ENOTSUP Subject: Re: Error building standalone vxWorks image with templates - makeSymTbl Subject: Re: Are sockets thread safe? Subject: Re: VxWorks Timer Subject: Re: Error building standalone vxWorks image with templates - makeSymTbl Subject: Re: VxWorks 5.2.1 Subject: NFS Client compatible with VxWorks NFS Server Subject: Re: Can I associate a destination with a specific interface in the routing table? Subject: Re: Ping Toooo Slow Subject: Re: socket create returns 0x23(decimal 35) error code i.e, it returns ENOTSUP Subject: Debugging a C++ Project Subject: lxt9763 driver Subject: Re: socket create returns 0x23(decimal 35) error code i.e, it returns ENOTSUP Subject: Re: mpc8260 scc ethernet driver ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Re: PING johan! [was Re: Newbie question, please help!] Date: 19 Mar 2002 05:41:31 -0800 From: johan@borksoft.xs4all.nl (Johan Borkhuis) Organization: http://groups.google.com/ Message-ID: <171ae16.0203190541.28670475@posting.google.com> References: <28f07413.0202221001.180f9405@posting.google.com> <28f07413.0202221556.4736f3ba@posting.google.com> <28f07413.0202251349.73780fe7@posting.google.com> "Dave Korn" wrote in message news:... > Johan? You listening? Yep, I am listening again. I was an holiday (honeymoon actually) but I am back again and working through the newsgroup archives. > The FAQ needs to say at least something about > interference between existing cygwin (or as in this case djgpp) > installations and Tornado. It can get quite complicated, but at least to > mention there must never be two cygwin.dll's in the path at the same time, > and that you can run cygwin's command "cygcheck -s -v -r -h" to find out if > you do have dll clash. OK, I will add this to the FAQ. Groeten, Johan - -- o o o o o o o . . . _____J_o_h_a_n___B_o_r_k_h_u_i_s___ o _____ || http://www.xs4all.nl/~borkhuis | .][__n_n_|DD[ ====_____ | borkhuis@agere.com | >(________|__|_[_________]_|________________________________| _/oo OOOOO oo` ooo ooo 'o!o!o o!o!o` ==== VxWorks-FAQ: http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html ==== --------------------------- Newsgroups: comp.os.vxworks Subject: Ping Toooo Slow Date: 19 Mar 2002 07:02:17 -0800 From: hemant_passi@satyam.com (Hemant Passi) Organization: http://groups.google.com/ Message-ID: <1a938d02.0203190702.3ef3e7ea@posting.google.com> Hi, I have a setup where a PowerPC 8260 board running VxWorks is configured to perform the functionality of an internet gateway. The gateway connects a private LAN to an Internet Service Provider. The connection between the powerpc board and the ISP is a dial-up one running PPP. The connection between the powerpc board and the private LAN is Ethernet. I've implemented NAT protocol layer on the gateway for the setup to function normally. However, I observe that the response to a PING request is way too slow (usually it is 1000-1200 ms) wheras I feel it should be somewhere close to 50-100 ms. In the NAT implementation code, I'm performing Forward and Reverse Address Translations by intercepting IP packets using ipFilterHook routine. Also, I find a similar situation for http responses, becoz of which the pages are not being displayed properly. Please suggest if there is a way to speed up things. Thanks. Regards Hemant Passi --------------------------- Newsgroups: comp.os.vxworks Subject: Signal handlers parent and child Date: Tue, 19 Mar 2002 15:30:48 GMT From: "Jim" Organization: Magma Communications Ltd. Message-ID: Hello, I am just wondering if signal handlers of the parent are given to the child ... It seems this may not be the case ... Jim --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Vxworks stack trace Date: 19 Mar 2002 11:24:32 -0500 From: Bill Pringlemeir Organization: Factory of the mind Message-ID: References: <919a9583.0203181316.34beac93@posting.google.com> <3C965BB0.6030803@spamm.me.l8s.co.uk> Sender: bpringlemeir@DeadDuck >>>>> "Hwa" == Hwa Jin Bae writes: Hwa> Another thing to note is that arguments printed are approximate Hwa> and not 100% accurate. I wondered about that. Most RISC processors have calling conventions that cache the arguments in registers. The compiler might decide to trash a parameter register in a leaf function, or store some of them in the stack frame. I guess that this is what you are talking about. I was kind of aghast thinking there was some vxWorks (compiler) option that was causing function calls to dump all arguments to memory just to get a good stack trace. Regards, Bill Pringlemeir. - -- You must be a CUB SCOUT!! Have you made your MONEY-DROP today?? vxWorks FAQ, "http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html" --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Can I associate a destination with a specific interface in the routing table? Date: Tue, 19 Mar 2002 08:26:41 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <4b03f983597b7be1d8be2f119be0e622.77030@mygate.mailgate.org> <375 Ramesh, I am quite confused about what Liang wants to do actually. So I don't know what the issues are. So better stop guessing. Thanks. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Printing 64bit values Date: Tue, 19 Mar 2002 12:14:07 -0500 From: "doug dotson" Organization: Verio Message-ID: References: <900e9637.0203060746.2d1c1bda@posting.google.com> You don't usually use recursion in stack-limited envionments. doug "Johan Borkhuis" wrote in message news:a7795m$l6$1@news1.xs4all.nl... > doug dotson wrote: > : This works: > > : void printULong (unsigned long val) > : { > : if (val > 0) { > : printULong (val / 10); > : printf ("%d", val %10); > : } > : } > > One remark on this piece of code: do not use recursive calls in an > embedded system. This can cause some very difficult to track problems, > when stack overflows occur, and that is something that can happen with > recursive calls. I have seen some very nasty examples of that. > > Groeten, > Johan > > -- > o o o o o o o . . . ______________________________ > o _____ || Johan Borkhuis | > .][__n_n_|DD[ ====_____ | borkhuis@agere.com | > >(________|__|_[_________]_|___________________________| > _/oo OOOOO oo` ooo ooo 'o!o!o o!o!o` > === VxWorks FAQ: http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html === --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Printing 64bit values Date: Tue, 19 Mar 2002 12:17:40 -0500 From: "doug dotson" Organization: Verio Message-ID: <_mKl8.4232$T_.81120@iad-read.news.verio.net> References: <900e9637.0203060746.2d1c1bda@posting.google.com> One last note. This use of recursion is bounded in both time and space and its behavour is deterministic. Perfectly acceptable in an embedded environment if resources are carefully planned. In a tiny microcontroller it might not be a good thing to use but the embedded system I'm working in has 256M of memory so I'm not too concerned. doug "Johan Borkhuis" wrote in message news:a7795m$l6$1@news1.xs4all.nl... > doug dotson wrote: > : This works: > > : void printULong (unsigned long val) > : { > : if (val > 0) { > : printULong (val / 10); > : printf ("%d", val %10); > : } > : } > > One remark on this piece of code: do not use recursive calls in an > embedded system. This can cause some very difficult to track problems, > when stack overflows occur, and that is something that can happen with > recursive calls. I have seen some very nasty examples of that. > > Groeten, > Johan > > -- > o o o o o o o . . . ______________________________ > o _____ || Johan Borkhuis | > .][__n_n_|DD[ ====_____ | borkhuis@agere.com | > >(________|__|_[_________]_|___________________________| > _/oo OOOOO oo` ooo ooo 'o!o!o o!o!o` > === VxWorks FAQ: http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html === --------------------------- Newsgroups: comp.os.vxworks Subject: 100% Free Porn!\n Date: Sun, 17 Mar 2002 13:32:55 +0000 (UTC) From: adverts@ludost.net Organization: Telefonica Data Espagna Message-ID: Are you intrested in some high quallity porn and adult artwork all neatly sorted for your viewing pleasure we have all types neatly sorted and well kept im fairly sure we will have something you like if not let us know and we will see if we can find some http://kork.ludost.net/adult/ Try it now! --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Printing 64bit values Date: Tue, 19 Mar 2002 17:54:13 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C977BB6.6010009@spamm.me.l8s.co.uk> References: <900e9637.0203060746.2d1c1bda@posting.google.com> Johan Borkhuis wrote: > doug dotson wrote: > : This works: > > : void printULong (unsigned long val) > : { > : if (val > 0) { > : printULong (val / 10); > : printf ("%d", val %10); > : } > : } > > One remark on this piece of code: do not use recursive calls in an > embedded system. This can cause some very difficult to track problems, > when stack overflows occur, and that is something that can happen with > recursive calls. I have seen some very nasty examples of that. Agreed, don't use recursion... Especially in embedded systems, and especially 'tail' recursion. (now tell WRS - the dosfs (v1) does a recursive walk of the filesystem directory structure :-( ) What is wrong with: void print_ulong( unsigned long long v ) { char b[ 20 ]; char *p; if (!v) { printf( "0" ); return; } p = b + sizeof( b ); *--p = 0; do { unsigned long long v1 = v / 10u; *--p = '0' + (v1 - v * 10); } while (v = v1); printf( "%s", p ); } Under the assumption that gcc will compile long long multiply and divide for you. David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Printing 64bit values Date: Tue, 19 Mar 2002 13:20:23 -0500 From: "doug dotson" Organization: Verio Message-ID: References: <900e9637.0203060746.2d1c1bda@posting.google.com> <3C977BB6.6010009@spamm.me.l8s.co.uk> Nothing wrong with it if it pleases you. Nothing wrong with using recursive algorithms in embedded environments either as long as their behavour is bounded and understood so that resources can be appropriately allocated. If either the behavour of the algorithm cannot be predicted or resources cannot be reliably allocated then recursive algorithms would be risky and should be avoided. It just depends upon the situation. Tail recursion should be avoided in any case regardless of the environment, and recursive traversing a file system is totally legitimat as long as the max nesting of directories is known. doug "David Laight" wrote in message news:3C977BB6.6010009@spamm.me.l8s.co.uk... > Johan Borkhuis wrote: > > > doug dotson wrote: > > : This works: > > > > : void printULong (unsigned long val) > > : { > > : if (val > 0) { > > : printULong (val / 10); > > : printf ("%d", val %10); > > : } > > : } > > > > One remark on this piece of code: do not use recursive calls in an > > embedded system. This can cause some very difficult to track problems, > > when stack overflows occur, and that is something that can happen with > > recursive calls. I have seen some very nasty examples of that. > > Agreed, don't use recursion... > Especially in embedded systems, and especially 'tail' recursion. > > (now tell WRS - the dosfs (v1) does a recursive walk of the filesystem > directory structure :-( ) > > What is wrong with: > > void > print_ulong( unsigned long long v ) > { > char b[ 20 ]; > char *p; > if (!v) { > printf( "0" ); > return; > } > p = b + sizeof( b ); > *--p = 0; > do { > unsigned long long v1 = v / 10u; > *--p = '0' + (v1 - v * 10); > } while (v = v1); > printf( "%s", p ); > } > > Under the assumption that gcc will compile long long multiply > > and divide for you. > > David > > > > --------------------------- Newsgroups: comp.os.vxworks Subject: Are sockets thread safe? Date: Tue, 19 Mar 2002 13:57:34 -0500 From: "doug dotson" Organization: Verio Message-ID: I have a situation where one thread is periodically sending out status messages, and another thread is receiving messages and also asynchronously sending messages on a demand basis. All this is via a single interface using UDP. Are there any known problems with doing this? thanks in advance, doug --------------------------- Newsgroups: comp.os.vxworks Subject: Partitioning RAM space for DosFs2.0 Date: 19 Mar 2002 11:30:13 -0800 From: vloscomp@yahoo.com (Vinh) Organization: http://groups.google.com/ Message-ID: Hi all, I have completed DosFs2.0 and ramDrv configuration to my system, as follows: address = 0; pBlkDev = RamDevCreate( (char *)address, 512, 400, 400, 0 ); pVolDesc = dosFsMkfs( "/ram0", pBlkDev ); Since our system have 128Mb of RAM, i would like to make 'address' to a fixed location in our RAM space. address = sysMemTop(); This seems to causes illegal access. I would like to know if any one have try to do this, or any suggestion is welcome. Thank you, Vinh Lam --------------------------- Newsgroups: comp.os.vxworks Subject: Error building standalone vxWorks image with templates - makeSymTbl Date: 19 Mar 2002 11:40:29 -0800 From: ma56027@yahoo.com (M A) Organization: http://groups.google.com/ Message-ID: I am trying to build a standalone vxWorks image by doing a 'make vxWorks.st' My application code has templates in it. The interim module tmp.o has symbols of the following form (note the period towards the end) 00000004 C __sn_t24__default_alloc_template2b1i0$__node_allocator_lock.192 00000004 C __sn_t24__default_alloc_template2b1i0$__node_allocator_lock.238 00000004 C __sn_t24__default_alloc_template2b1i0$__node_allocator_lock.252 00000004 C __sn_t24__default_alloc_template2b1i0$__node_allocator_lock.254 00000004 C __sn_t24__default_alloc_template2b1i0$__node_allocator_lock.278 00000004 C __sn_t24__default_alloc_template2b1i0$__node_allocator_lock.284 00000004 C __sn_t24__default_alloc_template2b1i0$__node_allocator_lock.286 00000004 C __sn_t24__default_alloc_template2b1i0$__node_allocator_lock.335 00000004 C __sn_t24__default_alloc_template2b1i0$__node_allocator_lock.394 00000004 C __sn_t24__default_alloc_template2b1i0$__node_allocator_lock.490 When makeSymTbl creates symTbl.c, it creates integers with a period (.) in the name. This gives errors when symTbl.c is compiled. I am building the image from command-line for PPC8260. Has anybody encountered similar problems ? Can somebody explain what is happening here ? TIA - -M A --------------------------- Newsgroups: comp.os.vxworks Subject: Anyone using tiny file system? Date: Tue, 19 Mar 2002 19:41:03 -0000 From: "cecil" Message-ID: <1016567027.6090.0.nnrp-12.d4e4b8d1@news.demon.co.uk> Is there anyone out there using tiny file system? See http://www.embedded.com/internet/0012/0012ia2.htm I wondered if it is possible to hook it into DOSFS Any thoughts? Nigel --------------------------- Newsgroups: comp.os.vxworks Subject: Re: How to preform periodical task except sysAuxClkRateSet() Date: 19 Mar 2002 09:56:45 -1000 From: Jim Thomas Organization: Canada France Hawai`i Telescope Message-ID: References: <5c074538.0203122254.56279c06@posting.google.com> <5c074538.0203131643.765b42c2@posting.google.com> <3c90a3ec@brateggebdc5.br-automation.co.at> <3C90AE69.10201@spamm.me.l8s.co.uk> <3C95E9E3.6070207@spamm.me.l8s.co.uk> >>>>> "David" == David Laight writes: David> Try the following: David> -> tv = malloc(8) David> -> tv[0] = 5 David> -> tv[1] = 0 David> -> sp timex,select,0,0,0,0,tv David> timex: time of execution = 5000 +/- 10 (0%) milliseconds David> -> tv[0]=0 David> -> tv[1]=600000 David> -> sp timex,select,0,0,0,0,tv David> timex: time of execution = 600 +/- 10 (1%) milliseconds Ummm... :-) -> tv = malloc(8) new symbol "tv" added to symbol table. tv = 0x1a8f3d8: value = 27849704 = 0x1a8f3e8 = tv + 0x10 -> tv[0]=0 tv + 0x10 = 0x1a8f3e8: value = 0 = 0x0 -> tv[1]=500000 tv + 0x11 = 0x1a8f3e9: value = 500000 = 0x7a120 -> printf("%d %d\n",tv[0],tv[1]) 1953 500000 value = 12 = 0xc -> *tv=0 tv + 0x10 = 0x1a8f3e8: value = 0 = 0x0 -> tv[4]=500000 tv + 0x14 = 0x1a8f3ec: value = 500000 = 0x7a120 -> printf("%d %d\n",tv[0],tv[4]) 0 500000 value = 9 = 0x9 -> sp timex,select,0,0,0,0,tv task spawned: id = 0x1a8c378, name = t1 value = 27837304 = 0x1a8c378 -> timex: time of execution = 500 +/- 16 (3%) millisecs But, while we're on the subject ..... :-) In August, 2000, there was a sequence which included: Paul> From the code you have below, it looks like the select timeout is Paul> set to 10000nS, ie 10 mS, which is less than the granularity of the Paul> system clock (1/60 sec by default on MVME2700). Perhaps Vxworks is Paul> seeing this value as '0', and thereby returning straight away? Paul> Paul Roberts. I'm running 5.4.2 on a PPC MVME2700 with the default 60Hz system clock. tv[4]=26000 tv + 0x14 = 0x1a8f3ec: value = 26000 = 0x6590 -> sp timexN,select,0,0,0,0,tv task spawned: id = 0x1a8c378, name = t3 value = 27837304 = 0x1a8c378 -> timex: 50 reps, time per rep = 16666 +/- 333 (1%) microsecs In actual code, I've seen the select return in as few as 41 microseconds (based on the PPC TBR). This seems broken to me. I tried the same code on HP-UX, Solaris, and linux. All of them waited until the specified time was met or exceeded. All have a 10ms "resolution". All waited 30ms for my 26ms request. That's how I read the man pages. Does WRS think a "real time system" is better if it is faster??? Jim --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Anyone using tiny file system? Date: Tue, 19 Mar 2002 15:06:41 -0500 From: "doug dotson" Organization: Verio Message-ID: References: <1016567027.6090.0.nnrp-12.d4e4b8d1@news.demon.co.uk> Yes. We were using it for a while and switched to TFFS. doug "cecil" wrote in message news:1016567027.6090.0.nnrp-12.d4e4b8d1@news.demon.co.uk... > Is there anyone out there using tiny file system? > See http://www.embedded.com/internet/0012/0012ia2.htm > I wondered if it is possible to hook it into DOSFS > Any thoughts? > Nigel > > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Partitioning RAM space for DosFs2.0 Date: Tue, 19 Mar 2002 22:07:45 +0200 From: "Leonid Rosenboim" Organization: Verio Message-ID: References: This statement: > address = sysMemTop(); creates a collision of memory usage by the RAM disk and your standard heap manager. There is a BSP parameter that allows you to reserve a fixed amount of memory, at the end of memory, e.g. for WindView event buffer. You can use the same parameter to reserve RAM for RAMdisk. Also there is another mistake in this same stamement: > address = sysMemTop(); it would cause
to point to one byte AFTER the end of your RAM memory, which would indeed cause an illegal access or another exception. This is what you want to do: *** address = sysMemTop() - SYS_MEM_RESERVED_SIZE ; "Vinh" wrote in message news:c129947c.0203191130.5073be71@posting.google.com... > Hi all, > I have completed DosFs2.0 and ramDrv configuration to my system, as > follows: > > address = 0; > pBlkDev = RamDevCreate( (char *)address, 512, 400, 400, 0 ); > pVolDesc = dosFsMkfs( "/ram0", pBlkDev ); > > > Since our system have 128Mb of RAM, i would like to make 'address' > to a fixed location in our RAM space. > > address = sysMemTop(); > > > This seems to causes illegal access. I would like to know if any one > have try to do this, or any suggestion is welcome. > > > Thank you, > Vinh Lam --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Anyone using tiny file system? Date: Tue, 19 Mar 2002 20:09:41 -0000 From: "cecil" Message-ID: <1016568597.7081.0.nnrp-12.d4e4b8d1@news.demon.co.uk> References: <1016567027.6090.0.nnrp-12.d4e4b8d1@news.demon.co.uk> why did you switch? were you just using the api function or did you write a driver for vxworks? Nigel doug dotson wrote in message ... >Yes. We were using it for a while and switched to TFFS. > >doug > > >"cecil" wrote in message >news:1016567027.6090.0.nnrp-12.d4e4b8d1@news.demon.co.uk... >> Is there anyone out there using tiny file system? >> See http://www.embedded.com/internet/0012/0012ia2.htm >> I wondered if it is possible to hook it into DOSFS >> Any thoughts? >> Nigel >> >> > > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: mpc8260 scc ethernet driver Date: Tue, 19 Mar 2002 12:20:44 -0800 From: "Dan Gold" Organization: Mailgate.ORG Server - http://www.Mailgate.ORG Message-ID: References: Sender: gold@ensemble.com "Ali" wrote in message news:b305b5bd.0203182147.5ced69f4@posting.google.com... > hi all > Has anybody written the driver code for SCC as ethernet in either > mpc8260/mpc8255. I wonder i did not find any clue for that till now. I > have to support ethernet on my scc interface on mpc8255 board. Has > anybody written such driver so far. Yes, it's not difficult to adapt it from an existing 860 SCC ethernet driver. > Pls give me thensuggestion where will i find such information or > where can i find i scratch to start with.I do not have the bsp for > either 8260/8255 . I'm confused. You don't have the bsp for the 8260/8255, but you're running vxWorks on an 8260 ? How is this possible ? What BSP are you running on your board ? I would think WRS would have an 8260 SCC driver, but I haven't looked at their 8260 BSP in quite a while. You could ask them for the 860 SCC driver and make the necessary mods. I thought the Mot website in the 8260 drivers.tar pkg had an SCC ethernet example. Notice I said example, and not "driver"... You could always get the Linux 860 driver too and take out what you need... How are you going to know how to hook it into the IP stack ? Do you at least have the NPT or network driver docs ? hth, Dan Gold gold@ensemble.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Anyone using tiny file system? Date: Tue, 19 Mar 2002 15:32:05 -0500 From: "doug dotson" Organization: Verio Message-ID: References: <1016567027.6090.0.nnrp-12.d4e4b8d1@news.demon.co.uk> <1016568597.7081.0.nnrp-12.d4e4b8d1@news.demon.co.uk> We were just using the TFS API directly. We switched because TFFS gives us a hierarchical file system and also because we are doing extensive development in a simulated environment. So coding to the standard file I/O API and using TSFS for development gives us a cleaner migration to TFFS when our hardware is ready. There was nothing wrong with TFS per se although it doesn't do things like Wear Leveling. Just to make sure all these acronyms are clear: TFS = Tiny File System TFFS = True Flash File System TSFS = Target Server File System doug "cecil" wrote in message news:1016568597.7081.0.nnrp-12.d4e4b8d1@news.demon.co.uk... > why did you switch? were you just using the api function or did you write a > driver for vxworks? > Nigel > doug dotson wrote in message ... > >Yes. We were using it for a while and switched to TFFS. > > > >doug > > > > > >"cecil" wrote in message > >news:1016567027.6090.0.nnrp-12.d4e4b8d1@news.demon.co.uk... > >> Is there anyone out there using tiny file system? > >> See http://www.embedded.com/internet/0012/0012ia2.htm > >> I wondered if it is possible to hook it into DOSFS > >> Any thoughts? > >> Nigel > >> > >> > > > > > > --------------------------- Newsgroups: comp.os.vxworks Subject: Anybody ported openssh to vxworks ? Any issues ? Date: 19 Mar 2002 14:38:31 -0800 From: dsa0000@hotmail.com (dsa) Organization: http://groups.google.com/ Message-ID: Hi, Anybody ported openssh to vxworks ? What are the issues ? Thanks in advance. Regards Dsa --------------------------- Newsgroups: comp.os.vxworks Subject: Re: SCSI Speed Limit, have you been faster? Date: Wed, 20 Mar 2002 09:21:19 +1030 From: Tim Shaw Organization: Defence Science and Technology Organisation Message-ID: <3C97C0E7.E0040D4C@dsto.defence.gov.au> References: <3C96357B.31BF6A2A@kaon.co.uk> We found that we couldn't get much more than about 8 MBytes/sec with the 875 and ncr810 driver. With a PCI bus analyser and SCSI analyser, we found that nearly all the values were hard coded into the driver (and also that the PCI usage was very inefficient). WRS eventually gave us the source code, and after tweaking a couple of registers (I can't remember which, but it didn't take more than a couple of hours) our SCSI performance reached about 18MB/sec and PCI usage dropped to about 25% of what it was previously. I think our tape drive was the limiting device here too. Let me know if you want the details of the changes and I'll look them up, but you'll need to get the code from WRS to make the changes. Tim Mark Armstrong wrote: > I am using a VME board with a PPC750 and a PMC that uses > a SYM53C875 SCSI controller. We brought the device to life > thanks to the VxWorks standard ncr810 driver, (remembering obviously > to endian swap the ncr810 script or it won't work...) > > With the minPeriod set to 25 (* 4 ns = 100ns, i.e. 10MHz). This works > fine > but our maximum speed is 10MByte/s to our tape drive that is capable of > 33MB/s when connected to a Solaris machine. > Even with wide transfers negotiated which should double > our bandwidth we only see 10 MByte/s. It's almost as if there is a > hidden > parameter that forbids transfers faster than 10MB/s for sequential > devices. > > Does anyone know of such a parameter? > > This driver was written when 10MHz was the known SCSI-2 limit, > the Reference Manual even comments on this limit. > These days SCSI should be capable of 40MB/s, 80MB/s even 160MB/s > and beyond before long. > > When we negotiate 10MHz the following is seen when debug enabled: > > 0xf7f2b10 (tScsiTask): ncr810ThreadActivate: thread 0x0e54c568: > activating > 0xf7f2b10 (tScsiTask): ncr810XferParamsCvt: requested: offset = 8, > period = 25 > 0xf7f2b10 (tScsiTask): ncr810XferParamsCvt: converted to: offset = > 8, period = 25 > xferParams = 8, clockDivide = 19 > > etc... > > When we try to negotiate a higher speed (minPeriod = 12) the > scsiPhysDevCreate() > fails, hanging the bus with the activity light on and printing the > following: > > 0xf7f2b10 (tScsiTask): SYNCHRONOUS TRANSFER REQUEST message in > offset = 8, period = 12 > 0xf7f2b10 (tScsiTask): ncr810XferParamsCvt: requested: offset = 8, > period = 12 > 0xf7f2b10 (tScsiTask): ncr810XferParamsCvt: converted to: offset = > 8, period = 12 > xferParams = 8, clockDivide = 19 > 0xf7f2b10 (tScsiTask): ncr810Resume: thread: 0x0e54c3e8: state 0 -> 2 > 0xf7f2b10 (tScsiTask): scsiMgrTimeoutProc: thread 0x0e54c3e8 (state = 6) > timed out > 0xf7f2b10 (tScsiTask): ncr810ThreadAbort: thread 0x0e54c3e8 (state = 6) > aborting > interrupt: ncr810EventTypeGet:Interrupt status istat = 0x89, SCSI > status0 = 0x00, SCSI status1 = 0x00DMA status = 0x10 > interrupt: ncr810EventTypeGet: script aborted. > interrupt: ncr810Intr: DSA = 0x0f7f3d30, DSP = 0x0033cdf8, type = 1. > interrupt: ncr810Intr: state 2 -> 0 > 0xf7f2b10 (tScsiTask): ncr810ThreadStateSet: thread 0x0e54c3e8: 6 -> 9 > 0xf7f2b10 (tScsiTask): ncr810Event: received event 1 (thread = > 0x0e54c3e8) > 0xf7f2b10 (tScsiTask): ncr810ThreadEvent: thread 0x0e54c3e8: received > event 1 > 0xf7f2b10 (tScsiTask): ncr810InitEvent: thread 0x0e54c3e8: aborted > 0xf7f2b10 (tScsiTask): ncr810Resume: thread: 0x0e54c3e8: state 0 -> 2 > > Its almost as if the tape drive accepts a faster speed but the VxWorks > driver > is still set in it's default with no hope of changing. > > I find it suspicious that the clockDivide = 19 does not change. Anyone > know what this means? > > Has anyone found a fix or seen the NCR810 driver go faster than 10MB/s > fast and wide to a sequential device? > > We've had an 895 device going at over 30MB/s to a disk which is why we > are > so confused at this speed limit. > > Yours hopefully > > Mark Armstrong --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Vxworks stack trace Date: Tue, 19 Mar 2002 15:41:51 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <919a9583.0203181316.34beac93@posting.google.com> <3C965BB0.6030803@spamm.me.l8s.co.uk> I always thought that the trcLib stuff in vxWorks was very innovative. It was first implementation of a decent debugging facility which did not require extra debug information generated by assembler or debugger. I was always fond of that. And I still think it is kind of neat. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: DHCP servers for VxWorks Date: Tue, 19 Mar 2002 15:49:51 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: I have ported ISC's DHCP server before and it seemed to work well. This was before VxWorks had its own DHCP server though. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: How do device driver run on vxworks! Date: Tue, 19 Mar 2002 15:51:20 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <6fe967ba.0203190058.70af0f38@posting.google.com> xxDevCreate() and xxDrv() are to be called from anywhere in your application code or startup code, before the driver routines are used. I think that is the only requirement. There isn't a specific place you have to call them - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: socket create returns 0x23(decimal 35) error code i.e, it returns ENOTSUP Date: Tue, 19 Mar 2002 15:57:00 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <8dff11cd.0203190136.7c7786fd@posting.google.com> PF_ROUTE is not supported as far as I know. The support can be added, but you need source code. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Error building standalone vxWorks image with templates - makeSymTbl Date: Tue, 19 Mar 2002 15:59:42 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: This is probably describe in FAQ. These symbols are generated by C++ compiler. To compile the symbol table, usually it is necessary to remove these lines from symTbl.c. symTbl.c is generated from makeSymTbl. You can write a script to post-process (remove some of these C++ symbols) and then compile the resulting file. you will need to modify Makefile for that. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Are sockets thread safe? Date: Tue, 19 Mar 2002 16:00:47 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: I think it should be OK to do that. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: VxWorks Timer Date: Tue, 19 Mar 2002 16:03:30 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <4ab8487e.0202211844.24553c16@posting.google.com> I don't think there is a set limit to number of timers you can use. You will need to consider the system overhead though. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Error building standalone vxWorks image with templates - makeSymTbl Date: 19 Mar 2002 16:40:26 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203191640.61a6e3c6@posting.google.com> References: Hello, This is a known issue, and results from the symbols containing 'illegal' characters when the table is fed back through the compiler. Assuming that you can bear the loss of these symbols, the solution is to add an extra filter after makeSymTbl and before the compilation to remove the symbols that contain '.' - be careful with that though if you are using a regular expression based tool as '.' means match anything for most of those. You might want to search in the archives for this topic too - it was discussed not that long ago. HTH, John... ma56027@yahoo.com (M A) wrote in message news:... > I am trying to build a standalone vxWorks image by doing a 'make > vxWorks.st' > > My application code has templates in it. The interim module tmp.o has > symbols of the following form (note the period towards the end) > > 00000004 C __sn_t24__default_alloc_template2b1i0$__node_allocator_lock.192 > 00000004 C __sn_t24__default_alloc_template2b1i0$__node_allocator_lock.238 > 00000004 C __sn_t24__default_alloc_template2b1i0$__node_allocator_lock.252 > 00000004 C __sn_t24__default_alloc_template2b1i0$__node_allocator_lock.254 > 00000004 C __sn_t24__default_alloc_template2b1i0$__node_allocator_lock.278 > 00000004 C __sn_t24__default_alloc_template2b1i0$__node_allocator_lock.284 > 00000004 C __sn_t24__default_alloc_template2b1i0$__node_allocator_lock.286 > 00000004 C __sn_t24__default_alloc_template2b1i0$__node_allocator_lock.335 > 00000004 C __sn_t24__default_alloc_template2b1i0$__node_allocator_lock.394 > 00000004 C __sn_t24__default_alloc_template2b1i0$__node_allocator_lock.490 > > When makeSymTbl creates symTbl.c, it creates integers with a period > (.) in the name. This gives errors when symTbl.c is compiled. > I am building the image from command-line for PPC8260. > Has anybody encountered similar problems ? > Can somebody explain what is happening here ? > > TIA > -M A --------------------------- Newsgroups: comp.os.vxworks Subject: Re: VxWorks 5.2.1 Date: Tue, 19 Mar 2002 19:47:23 -0500 From: joe durusau Organization: BELLSOUTH.net Message-ID: <3C97DC1A.8A53809D@bellsouth.net> References: <3C97AD71.20B9@dW.co.za> Retro John wrote: > Hi all > > I need a copy of vxWorks 5.2.1 so that I can > compile a driver for that platform -- I'm > using both 5.3.1 and 5.4 but 5.2 goes back > a long time. > > I have contacted VxWorks tech support and > (1) they are not prepared to support 5.2 > since it's pre-Tornado and > (2) they don't even have an old CD lying > around that they can ship me. > > So, can anyone help? If you have this CD, > and you can mount it on some box on the > net that also runs an ftp daemon, that > would be great :-) > > This is for the x86 platform, BTW. > > Thanks > > Wouter Sounds like great lawsuit bait to me. Speaking only for myself, Joe Durusau --------------------------- Newsgroups: comp.os.vxworks Subject: NFS Client compatible with VxWorks NFS Server Date: Tue, 19 Mar 2002 21:13:40 -0500 From: Yves Organization: Bell Sympatico Message-ID: <3C97F054.C58892A8@sympatico.ca> Hi all, Trying to get a Win2000 machine to be an nfs client to vxworks. Currently running into problems with authentication using Hummingbird. I got Hummingbird to behave as an nfs server though. Any suggestions ? yves --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Can I associate a destination with a specific interface in the routing table? Date: 19 Mar 2002 19:04:55 -0800 From: lliao@opvista.com (Liang) Organization: http://groups.google.com/ Message-ID: References: <4b03f983597b7be1d8be2f119be0e622.77030@mygate.mailgate.org> <37574f915d187852dcdba6f0e510ab8c.77030@mygate.mailgate.org> Hi HJB, are you saying that my proposed solution posted in message 6 would work, assuming that ARP is taken care of, if I use normal sendto/sendmsg without SO_DONTROUTE? I am trying to experment with the IFF_POINTOPOINT set up, but I am running into problem with ifDstAddrSet. Below is my code. STATUS bpInit( char * pIPAddr ) { char inetAddr[INET_ADDR_LEN]; int flag; if ( ipAttach( 0, "motfec" ) == ERROR ) printf ( "bpInit: ipAttach failed.\n" ); if ( ifFlagSet( "motfec0", IFF_POINTOPOINT ) == ERROR ) printf ( "bpInit: ifFlagSet failed.\n" ); if ( ifFlagGet( "motfec0", &flag ) == ERROR ) printf ( "bpInit: ifFlagGet failed.\n" ); if ( ifMaskSet( "motfec0", 0xffffffff ) == ERROR ) printf ( "bpInit: ifMaskSet failed.\n" ); if ( ifDstAddrSet( "motfec0", "1.1.1.2" ) == ERROR ) printf ( "bpInit: ifDstAddrSet failed.\n" ); if ( ifDstAddrGet( "motfec0", inetAddr ) == ERROR ) printf ( "bpInit: ifDstAddrGet failed.\n" ); } ifDstAddrSet always return ERROR for some reason. Also, ipAttach must be called before ifFlagSet(otherwise ifFlagSet would return ERROR), even though IF_POINTOPOINT should be already set in function END_OBJ* motFecEndLoad(char *initString), END_OBJ_READY (&pDrvCtrl->endObj, IFF_NOTRAILERS | IFF_POINTOPOINT /*IFF_MULTICAST | IFF_BROADCAST*/); The End is already loaded when bpInit is called. I suppose the ifFlagSet in bpInit is not necessary. I'd like to know why ifDstAddrSet doesn't work at all and why the strange behavior with ifFlagSet. (Note: ifDstAddrSet doesn't work with or without ifMaskSet) Liang p.s. sorry about the delay posting. I'm using Google to post but for some reason it takes hours for the message to show up. "Hwa Jin Bae" wrote in message news:... > Ramesh, > > I am quite confused about what Liang wants to do actually. So I don't know > what the issues are. So better stop guessing. Thanks. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Ping Toooo Slow Date: 19 Mar 2002 21:03:34 -0800 From: vittala@hotmail.com (Vittal) Organization: http://groups.google.com/ Message-ID: <6847c39a.0203192103.521bd7ed@posting.google.com> References: <1a938d02.0203190702.3ef3e7ea@posting.google.com> Hi, I don't think there is a specific answer for your problem. You need to probe-in and find out where the packets are getting lost or why is the transfer slow. Basically you need to use some debug messages on the whole of send and receive paths, starting from the Application Layer to the Ethernet or Serial link (in case of PPP). I think this is the only way. Good luck. hemant_passi@satyam.com (Hemant Passi) wrote in message news:<1a938d02.0203190702.3ef3e7ea@posting.google.com>... > Hi, > > I have a setup where a PowerPC 8260 board running VxWorks is > configured to perform the functionality of an internet gateway. The > gateway connects a private LAN to an Internet Service Provider. The > connection between the powerpc board and the ISP is a dial-up one > running PPP. The connection between the powerpc board and the private > LAN is Ethernet. > > I've implemented NAT protocol layer on the gateway for the setup to > function normally. However, I observe that the response to a PING > request is way too slow (usually it is 1000-1200 ms) wheras I feel it > should be somewhere close to 50-100 ms. > > In the NAT implementation code, I'm performing Forward and Reverse > Address Translations by intercepting IP packets using ipFilterHook > routine. > > Also, I find a similar situation for http responses, becoz of which > the pages are not being displayed properly. > > Please suggest if there is a way to speed up things. > > Thanks. > Regards > Hemant Passi --------------------------- Newsgroups: comp.os.vxworks Subject: Re: socket create returns 0x23(decimal 35) error code i.e, it returns ENOTSUP Date: 19 Mar 2002 21:51:45 -0800 From: sai_dattathrani@infy.com (sai) Organization: http://groups.google.com/ Message-ID: <8dff11cd.0203192151.7f0073cb@posting.google.com> References: <8dff11cd.0203190136.7c7786fd@posting.google.com> How do we add the source code & can we get any plug-in for enabling routing sockets in VxWorks ?? --------------------------- Newsgroups: comp.os.vxworks Subject: Debugging a C++ Project Date: Wed, 20 Mar 2002 07:39:43 +0100 From: "Kurt Burri" Organization: Swisscom IP+ (post doesn't reflect views of Swisscom) Message-ID: I have a C++ project which is built using our own makefile (outside of a Tornado2 Workspace). Although the source directory path is set up correctly, the debugger do not show a source code window after starting. Also, when I try to attach to a Task, an exception occurs. What's the problem? Platform: x86 Compiler options: ADDED_C++FLAGS = -g -w -O2 -frepo Thanks for help Kurt Burri --------------------------- Newsgroups: comp.os.vxworks Subject: lxt9763 driver Date: 19 Mar 2002 23:47:25 -0800 From: asher.elimelekh@telrad.co.il (asher) Organization: http://groups.google.com/ Message-ID: <99b2aeac.0203192347.4f317f97@posting.google.com> Hi, Please, can someone advise me as to where to find or what to use as a driver to lxt9763 phy ? I'm working with ixp1200 network processor, ixf440 MAC I'm working with VxWorks OS!!! I saw that on the phy - f21640.1 is written. I would like to read/write to this phy registers. Thanks in advance. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: socket create returns 0x23(decimal 35) error code i.e, it returns ENOTSUP Date: 20 Mar 2002 01:40:14 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203200140.746115da@posting.google.com> References: <8dff11cd.0203190136.7c7786fd@posting.google.com> Hello, "Hwa Jin Bae" wrote in message news:... > PF_ROUTE is not supported as far as I know. The support can be added, but > you need source code. Not true; there is a component called INCLUDE_NETINET_RTSOCK that adds support for routing sockets. This is in AE, and should be in later versions of T2 (the first date in the source file is '96). Rgds, John... --------------------------- Newsgroups: comp.os.vxworks Subject: Re: mpc8260 scc ethernet driver Date: 20 Mar 2002 02:18:11 -0800 From: alimohd@logiceastern.com (Ali) Organization: http://groups.google.com/ Message-ID: References: thanx for reply Actually i have WRS bsp for my mpc860 which i ported for mpc8260 i changed all my bsp codes as per my needs . Also with some scratches i did all this stuff. getting libraries from ads 8260 bsp solved my work . now the problem lies with scc ethernet driver which is provided with mpc860 bsp package but that is in object file . i don't have the source code for that so that i could have got the iMotorolla site is useless for this sort of information as there is nothing like this which i could found at all. i hope u'll certainly solve my problem to some extent. thanx in advance ali "Dan Gold" wrote in message news:... > "Ali" wrote in message > news:b305b5bd.0203182147.5ced69f4@posting.google.com... > > hi all > > Has anybody written the driver code for SCC as ethernet in either > > mpc8260/mpc8255. I wonder i did not find any clue for that till now. I > > have to support ethernet on my scc interface on mpc8255 board. Has > > anybody written such driver so far. > > Yes, it's not difficult to adapt it from an existing 860 SCC ethernet > driver. > > > Pls give me thensuggestion where will i find such information or > > where can i find i scratch to start with.I do not have the bsp for > > either 8260/8255 . > > I'm confused. You don't have the bsp for the 8260/8255, but you're running > vxWorks on an 8260 ? How is this possible ? What BSP are you running on > your board ? I would think WRS would have an 8260 SCC driver, but I haven't > looked at their 8260 BSP in quite a while. You could ask them for the 860 > SCC driver and make the necessary mods. I thought the Mot website in the > 8260 drivers.tar pkg had an SCC ethernet example. Notice I said example, > and not "driver"... You could always get the Linux 860 driver too and take > out what you need... How are you going to know how to hook it into the IP > stack ? Do you at least have the NPT or network driver docs ? > > hth, > Dan Gold gold@ensemble.com --------------------------- End of New-News digest ********************** From vxwexplo-errs@csg.lbl.gov Wed Mar 20 08:01:00 2002 From: "Clayton, Mark" Date: Wed Mar 20 08:01:03 PST 2002 Subject: Re: PING johan! [was Re: Newbie question, please help!] I missed the earlier posts in this thread. What are the symptoms of two cygwins conflicting? I had both cygwin and Tornado 2 installed. I had many Tornado supplied tools (ld, rm, etc) core dump on me. This only started when I started using cygwin's ftp server. I thought I had my environment variables setup properly to avoid cygwin.dll conflicts. Thanks, Mark > > > "Dave Korn" wrote in message > news:... > > Johan? You listening? > > Yep, I am listening again. I was an holiday (honeymoon > actually) but I am back > again and working through the newsgroup archives. > > > The FAQ needs to say at least something about > > interference between existing cygwin (or as in this case djgpp) > > installations and Tornado. It can get quite complicated, > but at least to > > mention there must never be two cygwin.dll's in the path at > the same time, > > and that you can run cygwin's command "cygcheck -s -v -r > -h" to find out if > > you do have dll clash. > > OK, I will add this to the FAQ. > > Groeten, > Johan > From vxwexplo-errs@csg.lbl.gov Wed Mar 20 08:10:00 2002 From: "Nadar, Jaybal J" Date: Wed Mar 20 08:10:02 PST 2002 Subject: Ethernet Link Aggregation on vxWorks 5.4 Hi, Is there any information on Ethernet Link Aggregation on vxWorks 5.4? Regards, Jaybal From vxwexplo-errs@csg.lbl.gov Wed Mar 20 23:18:27 2002 From: "Kavitha" Date: Wed Mar 20 23:18:29 PST 2002 Subject: F1 Hi All, I just want to know the following info In vxworks char device, each driver will go and sit in driver table as a single driver right.. say i have three drivers (each driver is supporting some two or three basic functionality like read,write ,open and close),these drivers will sit in driver table(in i.o system) as a seperate driver(entry ) and its index will be return to us as a drivernumber ... am i correct? if the above scenario is correct, then when ever i access my driver i can usethe driver number..(which is unique for each and every driver). In manual (vxworks) its given for block devices, the file system will sit as a driver in the driver table, which is diff compare to char devices, In this case say i m using DosFs file system then this will go and sit in the driver table and i will get this index as a driver number? am i correct? (this is what given in the manual)..If so say i have three drivers (block) and each are supporting DosFs. how can i access the functionality of a say first driver like char driver (where i can access the functionality of a driver using driver number, but in this case for each and every driver you won't get a seperate driver number.but we will get a driver number for the file system only not for individual driver) got the scenario? ...if so then explain me how can i access the functionality of a single driver in this case... thanks kavitha From vxwexplo-errs@csg.lbl.gov Thu Mar 21 13:12:39 2002 From: "DAlessandro, Larry (GEAE)" Date: Thu Mar 21 13:12:41 PST 2002 Subject: vxWorks 5.2, RPC, vxgdb Hello, This is a real puzzler for me, hopefully someone really up on vxgdb has a clue they're willing to share with me. In order to get my target processors - Mot 177's-68060's to conform to the new plant lan IP schema, I had to reassign their IP addresses, and change the subnet mask. I have an HP workstation with 2 lan cards in it. One card is on the plant lan, the other is on a lan with just the first target processor on it. The other targets boot through the first processor using the backplane lan. Now that I've made the changes, all of the processors still download their kernels from the workstation, all of the interprocess communication stuff works, smNetShow shows everything to be in the right status and in general all's right with the world. My application code downloads, runs and communicates back to the workstation just fine. Except - vxgdb no longer works with the hostnames. If I type in the target address in IP notation it works. i.e. if I start the debugger and type "target vxworks simnode" I get a RPC_timeout error compalining about the portmapper. If I type in "target vxworks 3.86.2.225" it connects and works fine. The only thing thats really different is that my subnet mask is much different i.e. it was 0xfffffc00 and now its 0xfffffff0, still within the sam 3.86.x.x range. I'm also running Crosswind under the Tornado launcher and that works fine with my power PC cards. Unfortunately my legacy 5.2 systems aren't going to be upgraded any time soon. Before I spend way too much time trying to figure this out on my own, can anyone please provide some insight? Thanks Larry larry.dalessandro@ae.ge.com From vxwexplo-errs@csg.lbl.gov Sun Mar 24 04:03:16 2002 From: Vxworks Exploder Date: Sun Mar 24 04:03:19 PST 2002 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Sun Mar 24 04:03:12 PST 2002 Subject: Defrag utility for dos file system? Subject: what is a objCore? Subject: Re: Partitioning RAM space for DosFs2.0 Subject: Re: Ethernet problem on an mvme2700 Subject: Re: ISR not Working - IBM PPC405GP Subject: RADIUS Subject: Re: Device Driver tutorial webpage Subject: Re: Defrag utility for dos file system? Subject: Re: Disable java mode (Altivec) Subject: Re: Partitioning RAM space for DosFs2.0 Subject: Re: what is a objCore? Subject: Re: Porting a board to Vxworks? Subject: General protection error Subject: Re: source code for SCSI Fibre Channel implementation Subject: How to debug vxworks image thru multiICE? Subject: aboud HDLC driver for MPC860 Subject: Re: How to preform periodical task except sysAuxClkRateSet() Subject: Re: General protection error Subject: VERIFY_AFTER_WRITE in tffs Subject: Re: General protection error Subject: RAW Socket problem Subject: Re: Device Driver Tutorial Subject: Re: arptnew error with subnetmask Subject: Re: usrLib api's in bootrom Subject: initialize tffs Subject: HW Design Verification.. Subject: uninitialized interrupt Subject: Re: How to preform periodical task except sysAuxClkRateSet() Subject: Finding VxWorks version Subject: Re: Vxworks stack trace Subject: Font size in the target simulator window Subject: Upgrading the ccsimpc compiler Subject: Re: Font size in the target simulator window ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Defrag utility for dos file system? Date: 22 Mar 2002 06:16:12 -0800 From: vkinger@hotmail.com (Kinger) Organization: http://groups.google.com/ Message-ID: Does anyone know of a VxWorks based defrag utility for the dos file system? Thanks, Vikas Kinger --------------------------- Newsgroups: comp.os.vxworks Subject: what is a objCore? Date: 22 Mar 2002 07:48:18 -0800 From: mynamvs@nsc.network.com (Venkat Mynampati) Organization: http://groups.google.com/ Message-ID: <65b2abfc.0203220748.1fd8d605@posting.google.com> Hi I was looking at tcb struct and i found this " OBJ_CORE objCore" and i also noticed that it is there in many structs.(this objCore comes from classLib.h/objLibP.h ) Now, what is it? and why it is used? Also i found that there is classLib.o, which contains classInit() etc, where can i find out about them. How to use them and what they offer? Thank's Venkat --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Partitioning RAM space for DosFs2.0 Date: 22 Mar 2002 08:18:44 -0800 From: vloscomp@yahoo.com (Vinh) Organization: http://groups.google.com/ Message-ID: References: <3C99C096.6070609@spamm.me.l8s.co.uk> Hi David, I am using PPC, and i had also tried to access the range with shell commnand 'd 0x68001000' and 'm 0x68001000' and it's seem to be fine. I can check memset(sysMemTop(),0,sysPhyMemTop()-sysMemTop()); but i don't think it will resolved anything. I can not believed that no one else had tried using the Dos + Ram file system this way. It seem to be a simple extension of the file system initialization. Vinh Lam David Laight wrote in message news:<3C99C096.6070609@spamm.me.l8s.co.uk>... > Michael Lawnick wrote: > > > Hi Vinh, > > AFAIK, what you are doing should work. A problem could be, that DosFs2 tries > > to rescue an image found on initialisation. Have you ever checked whether > > memset(sysMemTop(),0,sysPhyMemTop()-sysMemTop()); > > helps ? > > I'd also check what your BSP is up to.... > The Brutus ARM one steals the top 16k of memory for an intermediate > page table. Unfortunately it uses the top of physical memory but > gives the memory above sysMemTop() back to the pool. > If you change USER_RESERVED_MEM it will give back the wrong piece! > > David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Ethernet problem on an mvme2700 Date: 22 Mar 2002 08:26:22 -0800 From: tim.white@jhuapl.edu (Tim White) Organization: http://groups.google.com/ Message-ID: <82e84c9b.0203220826.1da85ae1@posting.google.com> References: <514a749c.0202280850.348a6474@posting.google.com> If your are using the same IP address on both 2700 boards, you may need to clear out the arp entry on the server so that it can communicate with the new board. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: ISR not Working - IBM PPC405GP Date: 22 Mar 2002 08:46:31 -0800 From: venkat@peribit.com (V. R. Venkataramana) Organization: http://groups.google.com/ Message-ID: <9f1c83d3.0203220846.364bd946@posting.google.com> References: Hi Arun, This is the essence of interrupt handler logic. Hope this helps! Thanks, Venkat void ProcessIsrEvent (SEM_ID sem_id) { while ( 1 ) { if ( semTake (sem_id, WAIT_FOREVER) == ERROR ) { printf("semTake error"); } process the interrupt enable the interrupt } } void IntSvcRtn (SEM_ID sem_id ) { /* * Figure out if the interrupt is for you and save interrupt * status info */ if ( interrupt is for you) { disable the interrupt semGive (sem_id); intr_got++; } } void intr_init(int intnum) { int intvec = intnum + 0x20; /* * Initiailze all the things that you want to do including * the driver related stuff. */ IsrSyncSem = semBCreate ( SEM_Q_FIFO, SEM_EMPTY ); taskSpawn("Test Isr", PRIORITY, 0, 20*1024, (FUNCPTR) ProcessIsrEvent, (int)IsrSyncSem,0,0,0,0,0,0,0,0,0 ); if (pciIntConnect(INUM_TO_IVEC(intvec), (VOIDFUNCPTR)IntSvcRtn, (int)IsrSyncSem) == ERROR) { printf("intconnect Failed"); } /* Initialize everything you are suppose to, just before enabling * the PIC for receiving interrupts */ sysIntEnablePIC (intnum); } arun4vxworks@indiatimes.com (Arun Prasad) wrote in message news:... > Hi, > > I called pciIntLibInit() explicitly before clling > pciIntConnect. > I put some logMsgs in pciIntLibInit() and in pciIntConnect(). > After calling pciIntLibInit(), pciIntConnect() is not > failing. > > But my dummy ISR is not getting called though I reset the > port/switch or pull out the ethernet interface cable and connect it > again, sending some broadcast messages from the switch. (To create > intterupts in our card). > > But, When I poll the interrupt status of the card I'm finding > interrupt status register getting changed in the above mentioned > scenarios. > I did IntEnable() after pciIntConnect() call and thats also > getting succeed. System is not freezing. But my dummy ISR is not > getting invoked. > > I'm thinking of going back to intConnect() and check out the > same again. > > In our card we have a regiser used not to produce > interrupts. When enter into the driver's ISR (not the dummy one) I'll > program this register so that new interrupt wont occur and then I'll > process the ISR and then I'll program again the above mentioned to > enable the interrupts of my card. > > ======== > if ( retVal = pciIntLibInit() ) // pciInitLib > { > logMsg ("pciIntLibInit FAILED retVal = %x, intNum = > %x > !!!!!!!!!!!! :-( \n", retVal, intNum, 0, 0, 0, 0); > return (-1); > } > logMsg ("pciIntLibInit SUCCESS retVal = %x, intNum = %x > !!!!!!!!!!!! :-( \n", retVal, intNum, 0, 0, 0, 0); > > if ( retVal = pciIntConnect((VOIDFUNCPTR *) > INUM_TO_IVEC(intNum ), > testISR, 0 ) ) > { > logMsg ("pciIntConnect FAILED retVal = %x, intNum = > %x > !!!!!!!!!!!! :-( \n", retVal, intNum, 0, 0, 0, 0); > return (-1); > } > logMsg ("pciIntConnect SUCCESS retVal = %x, intNum = %x > !!!!!!!!!!!! :-( \n", retVal, intNum, 0, 0, 0, 0); > > for(delayCount=0; delayCount<0xfff; delayCount++); > > if(intEnable(intNum)) // Just for testing > logMsg ("intEnable FAILED intNum = %x !!!!!!!!!!!! > :-( > \n", intNum, 0, 0, 0, 0,0); > else > logMsg ("intEnable SUCCCESS intNum = %x > !!!!!!!!!!!! :-( > \n", intNum, 0, 0, > 0, 0,0); > > > while(1) > { > for(delayCount=0; delayCount<0xfffffff; delayCount++); > > logMsg ("I'm withing while(1) loop\n",0, 0, 0, 0, 0, > 0); > } > ............. > ............. > void testISR() > { > unsigned pciAck; > > pciAck = sysPciInLong(0xEED00000); > logMsg("I'm Within ISR ;-) \n", 0, 0, 0, 0, 0, 0); > } > ======== > > Regards > Arun > > > "Michael Lawnick" wrote in message news:... > > Hi Arun, > > > > you seem to make the thing complicated before you start to do anything at > > all. > > Throw away all wrappings and simply call pciInitConnect as its expected by > > the system developers. > > > > To avoid system freeze, you have to acknowledge interrupt on your PCI-cards > > side, you won't find any hint for that in BSP but in card's documentation or > > driver code. There are some rare exceptions, where the HW-interrupt cycle > > itself already acknowledges the cards interrupt. > > Using pciIntConnect(), you won't have to take care about acknowledging > > interrupt on CPU side. As you have pciIntConnect() in source code > > (target/src/drv/pci), you can debug the connection problem when compiling > > VxWorks with debug information on. > > > > After all is up and running, you may think about optimisation by using > > intConnect() - but not earlier. > > HTH > > -- > > Mit freundlichen Grüßen, > > Michael Lawnick > > ============================================== > > SOFTEC GmbH Tel +49-731-96600-0 > > Promenade 17 Fax +49-731-96600-23 > > D-89073 Ulm Michael Lawnick > > Germany lawnick@softec.de > > ============================================== --------------------------- Newsgroups: comp.os.vxworks Subject: RADIUS Date: Fri, 22 Mar 2002 17:05:55 GMT From: "Verizon" Message-ID: Has anyone out there used the VxWorks Version of Radius? We are getting ready to implement and not sure if we should go with the VxWorks Version or write our own. We would have to Upgrade some of our products to Tornado 2 and later Version of VxWorks. Any got yas or other things that people have run in to? Thanks !!! Rick --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Device Driver tutorial webpage Date: Fri, 22 Mar 2002 11:14:30 -0600 From: "Tim" Organization: Nicolet Technologies Message-ID: References: Reply-To: "Tim" Sender: moeller@niti.com I once stumbled across an old copy of the WindRiver Device Driver Workshop training materials on a Chinese web site at: http://www.embed.com.cn/download/userfiledown.asp?filename=abc0821 Unfortunately, that file seems to have been removed now (probably due to copyright issues with WindRiver.) "Jamilur Rahman" wrote in message news:HTxm8.10627$nO.2902@news01.bloor.is.net.cable.rogers.com... > Is there any web site for learning the basics of device driver design and > implementation in VxWorks. > Any informative help would be very much appreciated. > > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Defrag utility for dos file system? Date: Fri, 22 Mar 2002 19:47:56 +0200 From: "Leonid Rosenboim" Organization: Verio Message-ID: References: Dear Vik, If you are using the older dosFs (sometimes referred to as dosFs 1), there is indeed a problem without a solution. If however you are using dosFs2, you are in a much better position then you think: dosFs2 does not provide a defragmentation utility per se, but it implements a fragmentation-resistent space allocation policies. It has been extensively tested with avying work load patterns, that as long as the work load pattern is unchanged, the fragmentation percentage reaches a certain steady-state, and remains there. The only exception is when the absolutely contigous space allocation is used, with FIOCONTIG ioctl, which is very likely to cause a situation when another contigous file wont be allocated although sufficient free space exists. For details please refer to the dosFs2 component release manual, and if needed, I can provide some insight too. Leonid Rosenboim Creator of DosFs2 (among other things) "Kinger" wrote in message news:f57b3351.0203220616.7bb33721@posting.google.com... > Does anyone know of a VxWorks based defrag utility for the dos file system? > > Thanks, > > Vikas Kinger --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Disable java mode (Altivec) Date: Fri, 22 Mar 2002 16:36:06 -0000 From: "Dave Korn" Organization: Lumber Cartel (tinlc) Members #2234-2237 (owing to browser refresh) Message-ID: References: "Bruce T. Einfalt" wrote in message news:a75d32$1lgq@r02n01.cac.psu.edu... > Hi, > I have a Motorola MVME5100 board (Altivec G4) with VxWorks 5.4 kernel >using a Tornado 2.1 compiler. Could someone please tell me how I determine >whether Java mode (IEEE mode) is enabled on the Altivec chip? I know it is >in the VSCR register but how do I access it and set/disable the bit? I >could not find any information on this in the VxWorks or 5100 manuals. Anu >ideas? Thanks! See section 2.1.1 in the motorola Altivec PEM, or section 4.1 in the PIM. In C, you want to use the vec_mfvscr (...) function to move the contents of the VSCR to a vector register, from where you can perform bit manipulation or write it to memory and load it into a general register; when you want to put an updated value back into the VSCR, load the new value into a vector register and use vec_mtvscr (...) to transfer it back. DaveK - -- moderator of alt.talk.rec.soc.biz.news.comp.humanities.meow.misc.moderated.meow Burn your ID card! http://www.optional-identity.org.uk/ Help support the campaign, copy this into your .sig! Proud Member of the Exclusive "I have been plonked by Davee because he thinks I'm interesting" List Member # Master of Many Meowing Minions Holder of the exhalted PF Chang's Crab Wonton Award for kook spankage above and beyond the call of hilarity. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Partitioning RAM space for DosFs2.0 Date: Fri, 22 Mar 2002 20:35:00 +0200 From: "Leonid Rosenboim" Organization: Verio Message-ID: References: <3C99C096.6070609@spamm.me.l8s.co.uk> Here is one other idea - try to make the RAM disk a smaller the the reserved memory area, perhaps the RAM disk driver attempts to use more RAM then it should, and attempts to access beyond sysPhysMemTop(), which would cause an exception. "Vinh" wrote in message news:c129947c.0203220818.5949bb97@posting.google.com... > Hi David, > I am using PPC, and i had also tried to access the range with shell > commnand 'd 0x68001000' and 'm 0x68001000' and it's seem to be fine. > > I can check memset(sysMemTop(),0,sysPhyMemTop()-sysMemTop()); > but i don't think it will resolved anything. > > I can not believed that no one else had tried using the Dos + Ram > file system this way. It seem to be a simple extension of the file > system initialization. > > Vinh Lam > > David Laight wrote in message news:<3C99C096.6070609@spamm.me.l8s.co.uk>... > > Michael Lawnick wrote: > > > > > Hi Vinh, > > > AFAIK, what you are doing should work. A problem could be, that DosFs2 tries > > > to rescue an image found on initialisation. Have you ever checked whether > > > memset(sysMemTop(),0,sysPhyMemTop()-sysMemTop()); > > > helps ? > > > > I'd also check what your BSP is up to.... > > The Brutus ARM one steals the top 16k of memory for an intermediate > > page table. Unfortunately it uses the top of physical memory but > > gives the memory above sysMemTop() back to the pool. > > If you change USER_RESERVED_MEM it will give back the wrong piece! > > > > David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: what is a objCore? Date: Fri, 22 Mar 2002 20:49:21 +0200 From: "Leonid Rosenboim" Organization: Verio Message-ID: References: <65b2abfc.0203220748.1fd8d605@posting.google.com> objCore should not bother you much, unless you are in the process of writing an extention to VxWorks. It is essentially an object oriented approach implemented in plain C. System objects are grouped into generic groups, i.e. classes, which share common methods. Finally all system objects share this objCore which too has a couple of methods shared by all system objects related to debuggin and instrumentation. I would need to look at source code (which I dont have now) to provide any specific details, it's been a while ... Leonid "Venkat Mynampati" wrote in message news:65b2abfc.0203220748.1fd8d605@posting.google.com... > Hi > I was looking at tcb struct and i found this > " OBJ_CORE objCore" and i also noticed that it > is there in many structs.(this objCore comes from > classLib.h/objLibP.h ) > Now, what is it? and why it is used? Also i found > that there is classLib.o, which contains classInit() > etc, where can i find out about them. How to use them > and what they offer? > > Thank's > Venkat --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Porting a board to Vxworks? Date: Fri, 22 Mar 2002 21:41:28 +0100 From: "Michael B." Organization: [Infostrada] Message-ID: References: <1a047b5a.0203220236.37215514@posting.google.com> Hi Raja! Your question could have many answers, buto in few words "porting a board to VxW means you have to customize VxW configuration files for your hardware. Now the question is: what kind of board do you mean? WRS provides VxW with many BSP, board support packages, so I guess you don't need to write one! If your board is device-card, this is a different thing; "porting" means someone has to write drivers and install it into VxW image. Good luck, Mika. "Raja Ganesan" ha scritto nel messaggio news:1a047b5a.0203220236.37215514@posting.google.com... > "Porting a board to Vxworks", What does this mean? > what are the steps that should be follwed for porting the board to Vxworks. > would anyone detail it. > Expecting your help. > > Thanks in advance, > Raja G --------------------------- Newsgroups: comp.os.vxworks Subject: General protection error Date: Fri, 22 Mar 2002 21:48:30 +0100 From: "Michael B." Organization: [Infostrada] Message-ID: <%IMm8.59750$1S3.1793504@twister1.libero.it> Hi, how can a task cause a "General protection error"? I know this question should be more specific, but I'm looking for an idea because I don't know where to start to fix my bug. Thank you. --------------------------- Newsgroups: comp.arch.storage,comp.periphs.scsi,comp.os.vxworks Subject: Re: source code for SCSI Fibre Channel implementation Date: Fri, 22 Mar 2002 21:36:02 GMT From: "Jamey Kirby" Organization: StorageCraft Message-ID: References: <5c04bc56.0202272342.124108d6@posting.google.com> <5c04bc56.0203011650.69636895@posting.google.com> Reply-To: "Jamey Kirby" Intel has public Linux iSCSI source. "Maxim S. Shatskih" wrote in message news:a62a9v$190s$1@gavrilo.mtu.ru... > > I don't know the module names because it is neither my responsibility > > or desire to do this person's homework. He/whe asked if there was > > iSCSI driver sample sourcecode available, and I told them where some > > IIRC they are commercial closed-source even for Linux. > > Max > > > --------------------------- Newsgroups: comp.os.vxworks Subject: How to debug vxworks image thru multiICE? Date: 22 Mar 2002 18:18:08 -0800 From: liuxin@autosoft.com.cn (Xin Liu) Organization: http://groups.google.com/ Message-ID: Dear all, I have checked that Tornado for ARM can not generate *.axf and *.aif image file format that multiICE need, would you pls tell me how to debug the vxworks image thru multiICE or give me a image format converter to generate what multiICE need? Thanks and B.R. Liuxin --------------------------- Newsgroups: comp.os.vxworks Subject: aboud HDLC driver for MPC860 Date: Sat, 23 Mar 2002 11:18:04 +0900 From: "stewart Ryu" Organization: Korea Telecom Message-ID: Hi, I want to connect LAN and WAN interface on SCCs in MPC860. I was trying to find HDLC driver for Vxworks, but I could'nt. Dose anyone kows where can I find it, and how to deliver data from HDLC to Ethernet, vice versa? Thanks in advance --------------------------- Newsgroups: comp.os.vxworks Subject: Re: How to preform periodical task except sysAuxClkRateSet() Date: 22 Mar 2002 19:20:24 -0800 From: hjb@pso.com (Hwa Jin Bae) Organization: http://groups.google.com/ Message-ID: <4cf902bf.0203221920.2e65f87@posting.google.com> References: <5c074538.0203122254.56279c06@posting.google.com> <5c074538.0203131643.765b42c2@posting.google.com> <3c90a3ec@brateggebdc5.br-automation.co.at> <3C90AE69.10201@spamm.me.l8s.co.uk> <3C95E9E3.6070207@spamm.me.l8s.co.uk> Using select to do periodic task is a little imprecise because timeval is converted to "ticks" and therefore dependent on tick resolution. It is worse then that actually, because the calculation for the usec - -> ticks conversion is entirely done in integer math, with associated rounding down. For lower clock frequencies. The traditional sys clock frequency of 60hz does not help here either, yielding fractions that are discounted after integer divides. The use of 60hz is archaic, derived from U.S. power frequency. Better resolution and better realtime behaviors can be achieved by use of Aux clock programmed properly. If system clock is to be used for all your timing needs, careful consideration should be made for the frequency of system clock. Depending on your needs, you may need to increase the frequency quite a bit, with associated system overhead for processing frequenty interrupts. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: General protection error Date: 22 Mar 2002 21:48:34 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203222148.24ff2898@posting.google.com> References: <%IMm8.59750$1S3.1793504@twister1.libero.it> Hello, "Michael B." wrote in message news:<%IMm8.59750$1S3.1793504@twister1.libero.it>... > Hi, > how can a task cause a "General protection error"? > I know this question should be more specific, but I'm looking for an idea > because I don't know where to start to fix my bug. Well, a good place to start would be the following: 1) Attach the debugger and see what line in your source code caused the fault (assuming that it was one of your application's tasks of course). 2) If the debugger is not available for some reason, you can use tt from a shell to get a stack trace from the crashed task. That should give you some idea of where the failure is. 3) If you still cannot work it out, you could add some printf statements to your code, in the function that crashes, or, if the crash actually occurs in a system call, in the last function in the trace that was in your application. Display the relevant function parameters. Hope that helps you find your problem, John... --------------------------- Newsgroups: comp.os.vxworks Subject: VERIFY_AFTER_WRITE in tffs Date: Sat, 23 Mar 2002 07:07:08 +0000 (UTC) From: "Franco Bassetti" Organization: Mailgate.ORG Server - http://www.Mailgate.ORG Message-ID: I have enabled the VERIFY_AFTER_WRITE option in tffs but I have 2 problems: 1) the function statfs return error 2) The funtion I used to copy the bootfile on the flash tffsBootImagePut fails with this message "enable to get phisical info from drive" I found that the problem is in rawIo called by bootImagePut Has anybody used this functionality? - -- Posted via Mailgate.ORG Server - http://www.Mailgate.ORG --------------------------- Newsgroups: comp.os.vxworks Subject: Re: General protection error Date: Sat, 23 Mar 2002 13:08:58 +0100 From: "Michael B." Organization: [Infostrada] Message-ID: References: <%IMm8.59750$1S3.1793504@twister1.libero.it> <488e459a.0203222148.24ff2898@posting.google.com> Thank you very much John for your answer. Next Monday I'll try your suggestions. Bye, Mic. "John" ha scritto nel messaggio news:488e459a.0203222148.24ff2898@posting.google.com... > Hello, > > "Michael B." wrote in message news:<%IMm8.59750$1S3.1793504@twister1.libero.it>... > > Hi, > > how can a task cause a "General protection error"? > > I know this question should be more specific, but I'm looking for an idea > > because I don't know where to start to fix my bug. > > Well, a good place to start would be the following: > > 1) Attach the debugger and see what line in your source code caused > the fault (assuming that it was one of your application's tasks of > course). > > 2) If the debugger is not available for some reason, you can use tt > from a shell to get a stack trace from the crashed task. That should > give you some idea of where the failure is. > > 3) If you still cannot work it out, you could add some printf > statements to your code, in the function that crashes, or, if the > crash actually occurs in a system call, in the last function in the > trace that was in your application. Display the relevant function > parameters. > > Hope that helps you find your problem, > > John... --------------------------- Newsgroups: comp.os.vxworks Subject: RAW Socket problem Date: 23 Mar 2002 09:33:30 -0800 From: e-tonyc@163.net (Tonyc) Organization: http://groups.google.com/ Message-ID: Hi all, now I have a problem. when I write in VC, I just open a raw socket with "socket(AF_INET, SOCK_RAW, IPPROTO_RAW);", and it works, but when I use recv() to receive the data, I can not receive any thing, while I can use sendto() to send data successfully. I use this to get/send tcp/ip header and data. Can any one help me? Thanks in advance. Etonyc --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Device Driver Tutorial Date: Sat, 23 Mar 2002 09:54:17 -0800 From: "Jerry Marcinko" Organization: Newshosting.com - Highest quality at a great price! www.newshosting.com Message-ID: <3c9cc1bd@news.mhogaming.com> References: Although these are not tutorials, the online manuals on the WindSurf support site have pretty good tutorial-level and reference information on the I/O system in general and also on Network Drivers. It also depends on type of device driver are you interested in. In VxWorks there are Network Drivers which are called "MUX END" drivers which are normally used for things like Ethernet drivers, but can also be used for other types of devices. There are also general I/O drivers which conform to the standard open, close, read, write, and ioctl API. There are also some other special variations of drivers such as TTY serial port drivers. Then there are also "socket backend" drivers you can implement if your application requires a socket API interface. For Network drivers, please see the following: VxWorks 5.4 Network Programmers Guide VxWorks 5.4 Network Protocol Toolkit Guide For general I/O drivers (open, close, read, write, ioctl), see: VxWorks 5.4 Programmers Guilde -- I/O section You may also want to consult the following for additional information: BSP reference manual Also, there is sample driver source that can be downloaded from the WindSuft support site for additional reference information. Hope this helps. "Jürgen Felleisen" wrote in message news:a7c4v3$e0b$1@news.ilk.de... > on the web site www.ayyalasoft.com you will find a short introduction on > writing device drivers > > Jamilur Rahman schrieb in Nachricht ... > >Is there any web site for learning the basics of device driver design and > >implementation in VxWorks. > >Any informative help would be very much appreciated. > > > > > > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: arptnew error with subnetmask Date: Sat, 23 Mar 2002 18:58:59 GMT From: "drdiags" Organization: AT&T Broadband Message-ID: References: <3C99FE8B.BBF8685@ineoquest.com> Hello George, I have seen this, but with using a VPN from my company. The VPN connection causes all the routing to be "re-configured" on my local WinXP/Win2k or WinNT hosts whenever I connect from any of them and once I log off, my "normal" routing tables return and I am able to connect the target server. Try rebooting while you are dialed-in and see that the target will fail to download the kernel if you use that technique. HTH. "George Varndell" wrote in message news:3C99FE8B.BBF8685@ineoquest.com... > While attempting to reproduce the problem I've discovered that, if I > have a dial-up connection active on my computer (W2K), I cannot > connect to the target with the target server. I was trying to get > to the point that I could execute the commands you mentioned. > While dial-up is active, my packet sniffer never sees any attempt > to access the target by my host PC. This is independent of any > netmask configuration. If I kill the dial-up connection and wait > several minutes, the target server is again able to connect to > the target and the sniffer captures the whole thing. Should I > suspect a W2K bug or a Tornado bug? At this point, I still don't > know if this is in any way related to my netmask problems. > > Regards, > George Varndell --------------------------- Newsgroups: comp.os.vxworks Subject: Re: usrLib api's in bootrom Date: Sat, 23 Mar 2002 19:15:10 GMT From: "drdiags" Organization: AT&T Broadband Message-ID: <2v4n8.95397$Yv2.30491@rwcrnsc54> References: Hello Lovell, I tried doing this by looking at usrConfig.c to determine how to get the symbol table included, add the "shell", etc and unfortunately I could get everything except the symbol table in the bootrom. So I had the target shell, the banner but I couldn't do an "i" If you figure out how to pull in the symbol table, let me know. From what I remember if I could get a build of the bootrom to reflect how a vxWork.st was built, this would get me over the last hump. Did you look at the target/h/make directory to see how vxWorks.st is built? Good luck and if I revisit this and get it working, I will post my steps. Hope you have better luck. "lovell James" wrote in message news:a66abf95.0203210803.29e6dd6e@posting.google.com... > Hi all, > Has anyone ever tried getting some of the usrLib api's to work > in bootrom, such as 'cd', 'pwd' etc? I know they are only meant to be > executed in the Vxworks shell but ideally I want to give the user at > the boot prompt an option to view files in my file flsh formatted and > setup by Tffs. I thought before giving up I'll try here first. > Basically I called usrlib.o into the bootrom image but I got link > errors because it was looking for symbol table defines. > Thanks > > LJ --------------------------- Newsgroups: comp.os.vxworks Subject: initialize tffs Date: Sun, 24 Mar 2002 00:41:19 +0100 From: ilyas G Organization: Wanadoo, l'internet avec France Telecom Message-ID: <3C9D129F.9030204@no-spam.guennoun.org> I have a target using tffs, I uwe rapid control to create commands. i hev two commands 'ls' and 'pwd' once i start the target, if i type 'ls' none appear, however if i type 'ls .' fr the current directory, the directory content appear and all the 'ls' commands work fine after that. the same thing with 'pwd' , it doesn't work since i don't type a 'cd' command; either 'cd /' or 'cd directory/' --------------------------- Newsgroups: comp.os.vxworks Subject: HW Design Verification.. Date: Sat, 23 Mar 2002 15:56:40 -0800 From: "Verilog Training @ N Square" Organization: N Square Corporation Message-ID: <3C9D1638.9F626235@nsquare.com> With the recession in the US economy gradually paring down, would you be in a position to take this opportunity to find a new vista for your career growth? ******************************************************************************* If you are seriously thinking about this, feel free to check out our Training classes for digital design using Verilog. Our classes are conducted over the weekends. Our Instructors are well honed professionals from the Hardware industry having experience of working at companies like 3Com, Sun, Nokia, NEC, Cadence etc. For further details on these courses, class schedule, registration etc, please refer to http://www.nsquare.com/training_courses.htm * Registration open for - I. Digital Design using Verilog (starting on 03/30/2002) - - at Santa Clara, CA 4 weeks course - Sat & Sun mornings (Maximum 6 students per class) II. Advanced-level Digital Design using Verilog (starting on 04/27/2002) - - at Santa Clara, CA 4 weeks course - Sat & Sun mornings (Maximum 6 students per class) Southern California residents may check our website at http://www.nsquare.com/san_diego_course.htm for details on "Digital Design using Verilog" course scheduled in June, '02 at San Diego, CA. **************************************************************************** For further details on us, please feel free to visit our website at http://www.nsquare.com or, Call Tel # 408-654-0500 / 408-654-0466 --------------------------- Newsgroups: comp.os.vxworks Subject: uninitialized interrupt Date: Sat, 23 Mar 2002 18:28:00 -0800 From: "suresh kannan" Organization: Georgia Institute of Technology Message-ID: Hi, We have code that crashes with the following error. We are unable to get this to happen consistently. Although it will happen at some point during a run. If anyone can point me towards a solution that would be perfect. Or if any one can provide advice on how to go about tracking this problem that would be most appreciated. interrupt: Uninitialized Interrupt! Vector Number 47 (0-255) Program Counter 0x0010cedc Status Register 0x00000206 regards, suresh. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: How to preform periodical task except sysAuxClkRateSet() Date: 23 Mar 2002 16:28:36 -1000 From: Jim Thomas Organization: Canada France Hawai`i Telescope Message-ID: References: <5c074538.0203122254.56279c06@posting.google.com> <5c074538.0203131643.765b42c2@posting.google.com> <3c90a3ec@brateggebdc5.br-automation.co.at> <3C90AE69.10201@spamm.me.l8s.co.uk> <3C95E9E3.6070207@spamm.me.l8s.co.uk> <4cf902bf.0203221920.2e65f87@posting.google.com> >>>>> "HJB" == Hwa Jin Bae writes: HJB> Using select to do periodic task is a little imprecise because timeval HJB> is converted to "ticks" and therefore dependent on tick resolution. HJB> It is worse then that actually, because the calculation for the usec HJB> -> ticks conversion is entirely done in integer math, with associated HJB> rounding down. .... Down? That does, as you say, make it worse. Why down? If I dumbly ask for 10ms, I certainly don't mean 0! Jim --------------------------- Newsgroups: comp.os.vxworks Subject: Finding VxWorks version Date: Sun, 24 Mar 2002 11:50:05 +0200 From: "Alex Vinokur" Organization: Scopus Message-ID: ============================================= Tornado Version 2.0.2 Host : Windows2000 Target : VxSim (VxWorks target simulator) ============================================= I can't find in documentation what is VxWorks version. Any suggestions how to find that ? Thanks in advance, - -- ==================== Alex Vinokur http://up.to/alexvn http://go.to/alexv_math mailto:alexvn@bigfoot.com mailto:alexvn@go.to ==================== --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Vxworks stack trace Date: Sun, 24 Mar 2002 09:59:27 -0000 From: "cecil" Message-ID: <1016963992.7280.0.nnrp-08.d4e4b8d1@news.demon.co.uk> References: <919a9583.0203181316.34beac93@posting.google.com> Does anybody know if you can specify how far back you want the stack trace to go? T. Hariharan wrote in message <919a9583.0203181316.34beac93@posting.google.com>... >Hello, > >In the stack trace below, why are the arguments for some >functions in square brackets and some not? What is the >difference? > >Thanks, >Hari > >41454b i +53 : show ([53dc3bbc, 2, 53dc2ac4, 53dc3b8c, 1669aa]) >414693 show +9b : objShow (53dc3bbc, 2) >41f519 objShow +69 : taskShow ([53dc3bbc, 2, 53dc3bbc, 53dc2a84, 53dc2a88]) >3dfae6 taskShow +1be: 3dfb48 (53dc2a10) >3dfb7e taskShow +256: printf (3dfb02, 5ddc11cc) >3b3d96 printf +12 : fioFormatV ([3dfb0a, 53dc1fe4, 3b4c34, 1, 53dc2128]) >3b4b1c fioFormatV +a58: 3b4c34 (5ddc11cc, 6, 1) >3b4c44 fioFormatV +b80: write ([1, 5ddc11cc, 6, fffffffa, 53dc1fbc]) >3c0dd7 write +f : iosWrite ([1, 5ddc11cc, 6, 53dc1dd0, 3b4c49]) >3ec1c8 iosWrite +70 : 3bc0b8 ([5fff59ec, 5ddc11cc, 6, 6, 5ddc11cc]) >3bc0c9 dosFsChkDsk +2451: 3bb998 ([5fff59ec, 5ddc11cc, 6, 2, 53dc1da4]) >3bba5e dosFsChkDsk +1de6: semMTake (5fff59ec, ffffffff) --------------------------- Newsgroups: comp.os.vxworks Subject: Font size in the target simulator window Date: Sun, 24 Mar 2002 12:14:29 +0200 From: "Alex Vinokur" Organization: Scopus Message-ID: ============================================= Tornado Version 2.0.2 Host : Windows2000 Target : VxSim (VxWorks target simulator) ============================================= Size of font on the target simulator window ("VxWorks Simulator for Windows") is too small. Is there any possibility to change it? Thanks in advance, ==================== Alex Vinokur http://up.to/alexvn http://go.to/alexv_math mailto:alexvn@bigfoot.com mailto:alexvn@go.to ==================== --------------------------- Newsgroups: comp.os.vxworks Subject: Upgrading the ccsimpc compiler Date: Sun, 24 Mar 2002 13:38:27 +0200 From: "Alex Vinokur" Organization: Scopus Message-ID: ============================================= Tornado Version 2.0.2 Host : Windows2000 Target : VxSim (VxWorks target simulator) ============================================= The ccsimpc compiler is the GNU one. %ccsimpc.exe -v Using builtin specs. gcc version egcs-2.90.29 tornado 2.0 980515 (egcs-1.0.3 release) We can see that it is old version of GNU gcc compiler (For instance, latest versions are 3.0.X ones). Is there any possibility to upgrade ccsimpc/gcc compiler in Tornado? ==================== Alex Vinokur http://up.to/alexvn http://go.to/alexv_math mailto:alexvn@bigfoot.com mailto:alexvn@go.to ==================== --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Font size in the target simulator window Date: Sun, 24 Mar 2002 13:46:16 +0200 From: "Ofer Goren" Organization: Verio Message-ID: References: Hi alex. According to the Israeli windriver support, this is a well known problem in systems that their local settings are defined to hebrew. So, windirver worldwide has no intensions on solving this bug. We got a little .exe file that solves the problem. If you want it, send me an Email. - -- Ofer Goren Iamba Technologies "Alex Vinokur" wrote in message news:a7k8s0$ktmeu$1@ID-79865.news.dfncis.de... > ============================================= > Tornado Version 2.0.2 > Host : Windows2000 > Target : VxSim (VxWorks target simulator) > ============================================= > > Size of font > on the target simulator window ("VxWorks Simulator for Windows") > is too small. > > Is there any possibility to change it? > > Thanks in advance, > > > ==================== > Alex Vinokur > http://up.to/alexvn > http://go.to/alexv_math > mailto:alexvn@bigfoot.com > mailto:alexvn@go.to > ==================== > > > --------------------------- End of New-News digest ********************** From vxwexplo-errs@csg.lbl.gov Mon Mar 25 02:23:08 2002 From: ulf.fiederling@dornier.eads.net Date: Mon Mar 25 02:23:10 PST 2002 Subject: How to increase MTU Hi all We are using Tornado 2 on an NT Host with a Pentium Target. How can I increase the MTU to a value greater than 1500 Thanks in advance Ulf Fiederling From vxwexplo-errs@csg.lbl.gov Mon Mar 25 04:03:14 2002 From: Vxworks Exploder Date: Mon Mar 25 04:03:16 PST 2002 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Mon Mar 25 04:03:10 PST 2002 Subject: Re: Font size in the target simulator window Subject: Re: Finding VxWorks version Subject: debugging on MCPN765 card (vxworks) Subject: Tornado Shell Window & Target Simulator Window, cout & printf Subject: Invalid opcode when using Pentium III SIMD instructions Subject: integrating packages into the project facilites Subject: Re: How to preform periodical task except sysAuxClkRateSet() Subject: Re: Invalid opcode when using Pentium III SIMD instructions Subject: "/tffs0/" Vs. "/tffs0" what is the difference? Subject: Re: uninitialized interrupt Subject: Re: RAW Socket problem Subject: Tornado Windows Subject: Re: loadModule: Relocation value does not fit in 24 bits Subject: Some questions about mpc860t SCC&TDM wroked for E1 line! Subject: Re: integrating packages into the project facilites Subject: Re: Tornado Shell Window & Target Simulator Window, cout & printf Subject: Re: Finding VxWorks version Subject: Re: "/tffs0/" Vs. "/tffs0" what is the difference? Subject: Examples for working with Ethernet ( EndDriver, Mux) Subject: Re: Finding VxWorks version ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Re: Font size in the target simulator window Date: Sun, 24 Mar 2002 14:56:22 +0200 From: "Alex Vinokur" Organization: Scopus Message-ID: References: "Ofer Goren" wrote in message news:newscache$uj9htg$r2i$1@lnews.actcom.co.il... > Hi alex. > > According to the Israeli windriver support, this is a well known problem in > systems that their local settings are defined to hebrew. So, windirver > worldwide has no intensions on solving this bug. We got a little .exe file > that solves the problem. If you want it, send me an Email. > Thanks. Now it works OK. [snip] - -- ==================== Alex Vinokur http://up.to/alexvn http://go.to/alexv_math mailto:alexvn@bigfoot.com mailto:alexvn@go.to ==================== --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Finding VxWorks version Date: Sun, 24 Mar 2002 14:59:55 +0200 From: "Alex Vinokur" Organization: Scopus Message-ID: References: "Alex Vinokur" wrote in message news:a7k7e8$lm14a$1@ID-79865.news.dfncis.de... > ============================================= > Tornado Version 2.0.2 > Host : Windows2000 > Target : VxSim (VxWorks target simulator) > ============================================= > > I can't find in documentation what is VxWorks version. > > Any suggestions how to find that ? > > Thanks in advance, > [snip] We can see that on the target simulator window. For instance, - ------------------------------------------------- VxWorks Copyright 1984-1998 Wind River Systems, Inc. CPU: VxSim for Windows VxWorks: 5.4.2 BSP version: 1.1/1 Creation date: Jan 29 2001 WDB: Ready. - ------------------------------------------------- ==================== Alex Vinokur http://up.to/alexvn http://go.to/alexv_math mailto:alexvn@bigfoot.com mailto:alexvn@go.to ==================== --------------------------- Newsgroups: comp.os.vxworks Subject: debugging on MCPN765 card (vxworks) Date: 24 Mar 2002 05:35:35 -0800 From: rdayal@hss.hns.com (Rajat Dayal) Organization: http://groups.google.com/ Message-ID: Hi, Im using vxWorks on a Motorola MCPN765 card. If i add a breakpoint on any function through the vxworks prompt it doesnt get hit on execution. - -- although the breakpoint gets added correctly. What could be the problem ? Regards RD --------------------------- Newsgroups: comp.os.vxworks Subject: Tornado Shell Window & Target Simulator Window, cout & printf Date: Sun, 24 Mar 2002 17:12:15 +0200 From: "Alex Vinokur" Organization: Scopus Message-ID: ======================================================= Tornado : Version 2.0.2 VxWorks : Version 5.4.2 BSP : Version 1.1/1 Compiler : c++simpc gcc version egcs-2.90.29 tornado 2.0 980515 (egcs-1.0.3 release) Host : Windows2000 Target : VxSim for Windows (VxWorks target simulator) ======================================================= I created Sample Project that holds updated file cobble.c (Tornado's sample program). Here are main updates : WARNING-message and OK-message are printed twice - First time via cout - Second time via printf. We can see that behavior of cout and printf is different : * cout prints a message to the Tornado Shell Window * printf prints a message to the Target Simulator Window Is it feature or bug? || ###### C++-code : BEGIN ###### // Fragment of cobble.c void monitor (void) { int isHot = 0; int isNot = 0; while (runState == ALL_GO) { if (!isHot && result >= HOT) { isHot = 1; cout << "[" << __FILE__ << ", #" << __LINE__ << "] WARNING: HOT! -> via cout\n"; // Line#336 printf ("[%s, #%d] WARNING: HOT! -> via printf\n", __FILE__, __LINE__); // Line#337 } else if (isHot && result < HOT) { isHot = 0; cout << "[" << __FILE__ << ", #" << __LINE__ << "] OK! -> via cout\n"; // Line#342 printf ("[%s, #%d] OK! -> via printf\n", __FILE__, __LINE__); // Line#343 } } } || ###### C++-code : END ######## || ====== Tornado Shell Window : BEGIN ====== || Fragment - -> progStart [D:/projects/demo/cobble.c, #336] WARNING: HOT! -> via cout [D:/projects/demo/cobble.c, #342] OK! -> via cout [D:/projects/demo/cobble.c, #336] WARNING: HOT! -> via cout [D:/projects/demo/cobble.c, #342] OK! -> via cout value = 0 = 0x0 - -> Exception number 0: Task: 0x4af3f60 (tCrunch) Divide Error Program Counter: 0x0495ed48 Status Register: 0x00010212 4276cf _vxTaskEntry +47 : 495ed46 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0) || ====== Tornado Shell Window : END ======== || ------ The Target Simulator Window : BEGIN ------ || Fragment [D:/projects/demo/cobble.c, #337] WARNING: HOT! -> via printf [D:/projects/demo/cobble.c, #343] OK! -> via printf Exception ! Vector 0 : Divide Error Program Counter : 0x0495ed48 Status Register : 0x00010212 || ------ The Target Simulator Window : END -------- ==================== Alex Vinokur http://up.to/alexvn http://go.to/alexv_math mailto:alexvn@bigfoot.com mailto:alexvn@go.to ==================== --------------------------- Newsgroups: comp.os.vxworks Subject: Invalid opcode when using Pentium III SIMD instructions Date: 24 Mar 2002 07:33:22 -0800 From: tapicella@mrdoc.cc (Tony Apicella) Organization: http://groups.google.com/ Message-ID: I have written the following assembly subroutine to use the Pentium III SIMD instructions: GAS LISTING sse1.s page 1 1 .text 2 .align 4 3 .globl _sqrt4 4 _sqrt4: 5 0000 55 pushl %ebp 6 0001 89E5 movl %esp,%ebp 7 0003 0F284508 movaps 8(%ebp), %xmm0 8 0007 89EC movl %ebp,%esp 9 0009 5D popl %ebp 10 000a C3 ret When I load this into VxWorks, and use the disassemble memory command to display, the movaps command is listed as a POP command, as shown below: - -> l 0x00a18ed4 _sqrt4 00a18ed4 55 PUSH EBP 00a18ed5 89 e5 MOV EBP, ESP 00a18ed7 29 c0 SUB EAX, EAX 00a18ed9 0f POP EAX 00a18eda 28 45 08 SUB [EBP+8], AL 00a18edd 89 ec MOV ESP, EBP 00a18edf 5d POP EBP 00a18ee0 c3 RET 00a18ee1 90 NOP 00a18ee2 90 NOP value = 0 = 0x0 Excuting the routine causes the following error message: Exception number 6: Task: 0x7ecfb2c (t1) Invalid Opcode Program Counter: 0x00a18ed9 Status Register: 0x0001014616e7bb _wdbFuncCallLibInit+eb : _sse__Fv (0, 0, 0, 0, 0, 0, 0, 0, 0, 0) a18e54 _sse__Fv +94 : _sqrt4 (7ecfab4) edi = 0 esi = 0 ebp = 7ecfaa8 esp = 7ecfaa8 ebx = 7ed4600 edx = 7ecfb2c ecx = 7ed45dc eax = 0eflags = 46 pc = a18ed9 Similar results are obtained with any SIMD command I have tried, including MOVHPS and ADDPS. I am using VxWorks 5.4, WIND version 2.5, with CPU "PEP CPCI CPU". I am compiling the assembly language code using the latest version of the GAS compiler, GNU assembler version 2.10.1 (i686-*-vxworks*). I have also built a version of GAS with --target i586-*-vxworks with similar results. Also note I have used the CPUID command to verify that the processor supports these instructions. The value in EDX after issuing a CPUID with EAX=1 is 7ec9b4c , which indicates presence of both SSE and SSE2. Thank you --------------------------- Newsgroups: comp.os.vxworks Subject: integrating packages into the project facilites Date: Sun, 24 Mar 2002 18:17:00 +0200 From: "Ofer Goren" Organization: Verio Message-ID: - -- - ------------------------ Win2k Sp2 Tornado 2.02 for PPC Diab 4.4b Envoy 9.2 - ------------------------ Hi. I have two seperate packages (SNMP and STP) in addition to my tornado2. Today, both pacakges are located on a different directory, under my main drive. In order to add them to my vxWorks, I need to seperetedly compile them to an archive files (two files, one for each package), and then add them with the EXTRA_MODULE macro. I would like to be able to do all of these from the project facility: select them as a components, and add them to my vxWorks just by compiling/linking them, just as I do with every other vxWorks component (telnet, shell, etc). I dont mind moving the source files (I dont think I should, but maybe), the works. Whatever is needed. How can I do that? Thanks, - -- Ofer Goren Iamba Technologies --------------------------- Newsgroups: comp.os.vxworks Subject: Re: How to preform periodical task except sysAuxClkRateSet() Date: 24 Mar 2002 09:14:44 -0800 From: hjb@pso.com (Hwa Jin Bae) Organization: http://groups.google.com/ Message-ID: <4cf902bf.0203240914.472936a9@posting.google.com> References: <5c074538.0203122254.56279c06@posting.google.com> <5c074538.0203131643.765b42c2@posting.google.com> <3c90a3ec@brateggebdc5.br-automation.co.at> <3C90AE69.10201@spamm.me.l8s.co.uk> <3C95E9E3.6070207@spamm.me.l8s.co.uk> <4cf902bf.0203221920.2e65f87@posting.google.com> It is not the best example of coding. But that is how integer math works in C. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Invalid opcode when using Pentium III SIMD instructions Date: Sun, 24 Mar 2002 18:37:12 GMT From: "Paul Iannacito" Organization: AT&T Broadband Message-ID: References: Hello Tony, "Tony Apicella" wrote in message news:ca6f9542.0203240733.3fbc9be7@posting.google.com... > I have written the following assembly subroutine to use the Pentium > III SIMD instructions: > ... > I am using VxWorks 5.4, WIND version 2.5, with CPU "PEP CPCI CPU". I > am compiling the assembly language code using the latest version of > the GAS compiler, GNU assembler version 2.10.1 (i686-*-vxworks*). I > have also built a version of GAS with --target i586-*-vxworks with > similar results. The SSE and SSE2 instructions are going to require runtime/OS and tool (disassembler and compiler, for example) support that is not available in the vxWorks version you are using. The runtime trouble is documented in SPR 65337 - see the following link on WindSurf: http://www.windriver.com/cgi-bin/windsurf/kpl/dispSpr.cgi?65337 The SPR is marked as fixed, but I do not believe that the fix is available in the version of vxWorks you are using. Regards, paul --------------------------- Newsgroups: comp.os.vxworks Subject: "/tffs0/" Vs. "/tffs0" what is the difference? Date: 24 Mar 2002 13:34:43 -0800 From: roswel_ajf@hotmail.com (roswell) Organization: http://groups.google.com/ Message-ID: <6dcae13d.0203241334.5f64cc2a@posting.google.com> Hi all: When bootDev is network, all is fine. In usrConfig/usrRoot() I call usrTffsConfig (0, 0, "/tffs0"), if the bootDev is network. so when doing "devs" from shell, I see the "/tffs0" device. good. The problem is when bootDev is tffs. After booting, when displaying the devices, i see, "/tffs0/" (note: with the 2nd '/'). for sure, the bootConfig.c/bootLoad/tffsLoad() is creating this. But after the usrConfig/usrRoot() runs, why do I still see the "/tffs0/" created by bootConfig.c/bootLoad/tffsLoad() ? I understood that, in usrConfig.c/usrRoot() we have stick in a usrTffsConfig(0, 0, "/tffs0"), so regardless of how we booted, we will creat "/tffs0" device? It seems "/tffs0/" that got created in Boot code, did not get re-created via usrConfig.c. Please help to clarify this. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: uninitialized interrupt Date: Sun, 24 Mar 2002 20:12:19 -0500 From: joe durusau Organization: Bellsouth.Net Message-ID: <3C9E7973.24C56C0@bellsouth.net> References: suresh kannan wrote: > Hi, > > We have code that crashes with the following error. We are unable to get > this to happen consistently. Although it will happen at some point during a > run. If anyone can point me towards a solution that would be perfect. Or if > any one can provide advice on how to go about tracking this problem that > would be most appreciated. > > interrupt: > Uninitialized Interrupt! > Vector Number 47 (0-255) > Program Counter 0x0010cedc > Status Register 0x00000206 > > regards, > suresh. Most often caused by : caching an address range external to the CPU board, Using a powerPC or some other system that does not ensure in-order execution, or usng a VME interface device that does not ensure completion of output (eg interrupt reset) prior to exiting an ISR. I'm sure someone else could come up with more, but those seem to be the most popular causes I've seen. Speaking only for myself, Joe Durusau --------------------------- Newsgroups: comp.os.vxworks Subject: Re: RAW Socket problem Date: 24 Mar 2002 19:08:41 -0800 From: sai_dattathrani@infy.com (sai) Organization: http://groups.google.com/ Message-ID: <8dff11cd.0203241908.51878995@posting.google.com> References: e-tonyc@163.net (Tonyc) wrote in message news:... > Hi all, now I have a problem. when I write in VC, I just open a raw > socket with "socket(AF_INET, SOCK_RAW, IPPROTO_RAW);", and it works, > but when I use recv() to receive the data, I can not receive any > thing, while I can use sendto() to send data successfully. I use this > to get/send tcp/ip header and data. > > Can any one help me? Thanks in advance. > > Etonyc Hi, Check if you have given IPPROTO_RAW on both the sending & receiving side. If the protocol numbers are different between the sending & reciving side, you will not be able to get any packets. Rgds, sai --------------------------- Newsgroups: comp.os.vxworks Subject: Tornado Windows Date: Mon, 25 Mar 2002 03:57:39 GMT From: "Weddick" Organization: AT&T Broadband Message-ID: Is there a way to make the shell window, debugger windows, etc come up in the same place with the same size as I left them? Or I am I just being picky? It's a royal pain to have to move and resize windows everytime I start up. Granted the debugger windows come up in the same place (not always the right size). Thanks, --------------------------- Newsgroups: comp.os.vxworks Subject: Re: loadModule: Relocation value does not fit in 24 bits Date: Mon, 25 Mar 2002 08:56:07 +0200 From: "Karin Ucitel" Organization: Verio Message-ID: References: Hello, Option 'a' suggests compiling with '-mlongcall'. This is a GNU compilation flag. I'm experiencing the same difficulty, only using DIAB... Does anybody know the DIAB compatible? Many thanks, Karin "Michael Lawnick" wrote in message news:a7471c$fe6$1@snoopy.bndlg.de... > Hi Zvika, > > AFAIK this has been discussed several times in the last half year: > Your memory is more than 32MB on a PPC, right ? > So, when your code resides in upper memory and wants to call system > functions, it's branch address-width exceeds the standard coding width in > PPC mnemonic. This is detected on locating your object on end of dynamic > load. It will not occur on small code loaded via target-agent, as code will > now lay in target agent's local buffer,near kernel. > > 4 of ? workarounds: > a) use -mlongcall in compiler directive. Result has larger and slower code, > but may be located anywhere. > b) set USER_RESERVED_MEM in your BSP to an amount, you only have 32MB left. > Load your image after boot and call memAddToPool(USER_RESERVED_MEM).This > will only work, if you don't need to download later on. > c) set USER_RESERVED_MEM in your BSP to an amount, you only have 32MB left. > Create a secondary memory partition with memPartCreate() for your > USER_RESERVED_MEM. All calls of malloc in your code should now be replaced > by memPartAlloc() to this new partition. > d) Write your own memory allocator, where you can allocate memory from lower > (32MB) region if available. Now do a loadModuleAt(). > > HTH > -- > Mit freundlichen Grüßen, > Michael Lawnick > ============================================== > SOFTEC GmbH Tel +49-731-96600-0 > Promenade 17 Fax +49-731-96600-23 > D-89073 Ulm Michael Lawnick > Germany lawnick@softec.de > ============================================== > > "Zvika Vered" schrieb im Newsbeitrag > news:a6tuis$460$1@news.inter.net.il... > > Hello All, > > > > When I load an object file by calling LoadModule() or ld (1) > > > > > Relocation value does not fit in 24 bits. > > Relocation value does not fit in 24 bits > > ...... > > > > But if I download this file by Tornado II,it is ok. > > Who can help me? > > > > > > --------------------------- Newsgroups: comp.os.vxworks Subject: Some questions about mpc860t SCC&TDM wroked for E1 line! Date: 25 Mar 2002 00:00:48 -0800 From: yong_bvcom@sina.com (bigtornado) Organization: http://groups.google.com/ Message-ID: <5624c1bf.0203250000.2b8672c0@posting.google.com> Hi,all: Anybody know where can i find some sourcecode about SCC&TDM wroked for E1 line? Thanks! Celphone --------------------------- Newsgroups: comp.os.vxworks Subject: Re: integrating packages into the project facilites Date: 25 Mar 2002 08:04:36 GMT From: Johan Borkhuis Organization: Agere Systems Message-ID: References: "Ofer Goren" wrote: > I have two seperate packages (SNMP and STP) in addition to my > tornado2. Today, both pacakges are located on a different directory, > under my main drive. In order to add them to my vxWorks, I need to > seperetedly compile them to an archive files (two files, one for each > package), and then add them with the EXTRA_MODULE macro. > > I would like to be able to do all of these from the project facility: > select them as a components, and add them to my vxWorks just by > compiling/linking them, just as I do with every other vxWorks > component (telnet, shell, etc). I dont mind moving the source files (I > dont think I should, but maybe), the works. Whatever is needed. > > How can I do that? You can add the archives to the main VxWorks libraries, and create a CDF file to add a menu item, config parameters and a startup function to Tornado. See http://www.xs4all.nl/~borkhuis/vxworks/vxw_pt2.html#2.4 for more info on adding components to Tornado. Groeten, Johan - -- o o o o o o o . . . _____________________________ o _____ || Johan Borkhuis | .][__n_n_|DD[ ====_____ | borkhuis@agere.com | >(________|__|_[_________]_|__________________________| _/oo OOOOO oo` ooo ooo 'o!o!o o!o!o` === VxWorks FAQ: http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html === --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Tornado Shell Window & Target Simulator Window, cout & printf Date: Mon, 25 Mar 2002 11:06:29 +0200 From: "Alex Vinokur" Organization: Scopus Message-ID: References: ======================================================= Tornado : Version 2.0.2 VxWorks : Version 5.4.2 BSP : Version 1.1/1 Compiler : c++simpc gcc version egcs-2.90.29 tornado 2.0 980515 (egcs-1.0.3 release) Host : Windows2000 Target : VxSim for Windows (VxWorks target simulator) ======================================================= The cobble.c has been changed one more. Here are some question concerning its behavior. In functions test1() and progStart() * cout, fprint (stdout, ...) and envShow() print to Tornado Shell Window. * cerr, fprint (stderr, ...) print to Target Simulator Window. In all other functions * cout, cerr, fprint (stdout, ...), fprint (stderr, ...) and envShow() print to Target Simulator Window. Any explanations? Thanks in advance. || ###### C++-code : BEGIN ###### // Changed cobble.c // cobble.c - sample program for tutorial in Tornado Getting Started Guide // This code is intentionally left buggy! // ----------------------------- // // modification history // -------------------- // 01a,01apr99,ems written // 2002-03-25 Alex Vinokur // ----------------------------- /* DESCRIPTION: This module is used as a simple example multitask application in the Tornado Getting Started Guide. It is intended to help the new Tornado user quickly become familiar with various Tornado tools that are available for debugging such applications. The program simulates a data collection system in which data is retrieved from an external source (e.g. a device which generates interrupts as data come in). A task simulating the ISR gives a semaphore each time a new datum arrives. (This task could easily be replaced by a VxWorks watchdog timer.) The data are processed in two stages. First, a sample consisting of NUM_SAMPLE data is collected. Second, various arcane arithmetical operations are performed on the sample to obtain a result value. Each stage is represented by a task; the first task gives a binary semaphore when the second task should begin the second stage work. The value of the result of the processing is monitored by yet another task, which prints a warning messages whenever the result is out of the safety range. INCLUDE FILES: None. */ // includes #include "vxWorks.h" #include "envLib.h" #include "stdio.h" #include "stdlib.h" #include "semLib.h" #include "taskLib.h" #include "iostream.h" // macro #define D1SHOW(x) \ cout << "+[ " << __FILE__ << ", #" << __LINE__ << "; " << __FUNCTION__ << " ] " x << " (via cout)" << endl; \ cerr << "+[ " << __FILE__ << ", #" << __LINE__ << "; " << __FUNCTION__ << " ] " x << " (via cerr)" << endl; \ fprintf (stdout, "-[ %s, #%d; %s ] %s (via stdout)\n", __FILE__, __LINE__, __FUNCTION__, x); \ fprintf (stderr, "-[ %s, #%d; %s ] %s (via stderr)\n", __FILE__, __LINE__, __FUNCTION__, x) // defines #define NUM_SAMPLE 10 #define LUCKY 7 #define HOT 20 #define DELAY_TICKS 4 #define STACK_SIZE 20000 // run states, provides for shutdown in stages; ensures that no // routine tries to take a semaphore that no longer exists #define ALL_GO 0 #define COSMOS_STOP 1 #define SCHLEP_STOP 2 #define CRUNCH_STOP 3 #define ALL_STOP 4 // typedefs typedef struct byLightning { int data; int nodeNum; struct byLightning * pPrevNode; } LIST_NODE; // globals int tidCosmos; // Task IDs int tidSchlep; int tidCrunch; int tidMonitor; int cosmicData = 0; // Holds a datum available to read int result = 0; // Holds result of calculation volatile UINT8 runState = ALL_STOP; // controls shutdown LIST_NODE * pCurrNode = NULL; // head of list of data SEM_ID dataSemId; // Given when a datum is available SEM_ID syncSemId; // Given when a data sample can be crunched SEM_ID currNodeSemId; // Given when pointer to current node can be accessed // forward declarations void cosmos (void); void nodeAdd (int data, int nodeNum); void schlep (void); void nodeScrap (void); void crunch (void); void monitor (void); void progStop (void); // ######################################## // // test1 program // // ######################################## STATUS test1 (void) { D1SHOW ("STATRT"); envShow(0); D1SHOW ("RETURN"); return (OK); } // ######################################## // // progStart - start the sample program. // // Create various semaphores and spawn various tasks, while doing // incredibly little error checking. // // RETURNS: OK // // ######################################## STATUS progStart (void) { D1SHOW ("START-A"); envShow(0); D1SHOW ("START-B"); syncSemId = semBCreate (SEM_Q_FIFO, SEM_EMPTY); dataSemId = semBCreate (SEM_Q_FIFO, SEM_EMPTY); currNodeSemId = semMCreate ( SEM_Q_PRIORITY | SEM_INVERSION_SAFE | SEM_DELETE_SAFE ); pCurrNode = NULL; // just in case // --- get started --- runState = ALL_GO; tidCosmos = taskSpawn ( "tCosmos", 200, 0, STACK_SIZE, (FUNCPTR) cosmos, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ); tidSchlep = taskSpawn ( "tSchlep", 220, 0, STACK_SIZE, (FUNCPTR) schlep, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ); // ---------------------------------------------- // priority mis-assignment provides desired educational // malfunction of never allowing tCrunch to run because // tMonitor is higher priority // ---------------------------------------------- tidCrunch = taskSpawn ( "tCrunch", 240, 0, STACK_SIZE, (FUNCPTR) crunch, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ); tidMonitor = taskSpawn ( "tMonitor", 250, 0, STACK_SIZE, (FUNCPTR) monitor, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ); return (OK); } // progStart // ######################################## // // cosmos - simulate data arrival interrupt // // This routine is executed by a task which serves as a replacement for // an ISR which signals the availability of data from some device. // It periodically gives the semaphore dataSemId to indicate that a // datum is available and may be read from the cosmicData variable. // // ######################################## void cosmos (void) { int nadaNichtsIdx = 0; D1SHOW ("START-A"); envShow(0); D1SHOW ("START-B"); while (runState == ALL_GO) { if (nadaNichtsIdx != LUCKY) { cosmicData = rand (); } else { cosmicData = 0; // because you can't wait forever for nothing nadaNichtsIdx = 0; } ++nadaNichtsIdx; // --- semaphore and delay ensure only new data will be read --- semGive (dataSemId); taskDelay (DELAY_TICKS); } // while (runState == ALL_GO) runState = SCHLEP_STOP; semGive (dataSemId); D1SHOW ("FINISH"); } // cosmos // ######################################## // // nodeAdd - link a new node to front of data chain. // // Allocates and initializes a node, puts it onto the data chain. // // RETURNS: N/A // ######################################## void nodeAdd ( int data, int nodeNum ) { LIST_NODE * node; //D1SHOW ("START"); if ( (node = (LIST_NODE *) malloc (sizeof (LIST_NODE))) != NULL) { node->data = data; node->nodeNum = nodeNum; semTake (currNodeSemId, WAIT_FOREVER); node->pPrevNode = pCurrNode; pCurrNode = node; semGive (currNodeSemId); } else { D1SHOW ("cobble: Out of Memory"); taskSuspend (0); } //D1SHOW ("FINISH"); } // nodeAdd // ######################################## // // schlep - collect data into a sample to be processed // // Repeatedly, wait for and place NUM_SAMPLE data onto the list, // then awaken the cruncher. // // ######################################## void schlep (void) { int nodeIdx; D1SHOW ("START-A"); envShow(0); D1SHOW ("START-B"); FOREVER { for (nodeIdx = 0; nodeIdx < NUM_SAMPLE; nodeIdx++) { // --- Wait for datum --- semTake (dataSemId, WAIT_FOREVER); if (runState == SCHLEP_STOP) { runState = CRUNCH_STOP; semGive (syncSemId); return; } nodeAdd (cosmicData, nodeIdx); } // for ... // --- Wake up the cruncher! --- semGive (syncSemId); } // FOREVER D1SHOW ("FINISH"); } // schlep // ######################################## // // nodeScrap - relegate a node to the dust bin of history // // ######################################## void nodeScrap (void) { LIST_NODE * pTmpNode; //D1SHOW ("START"); pTmpNode = pCurrNode; pCurrNode = pCurrNode->pPrevNode; free (pTmpNode); // D1SHOW ("FINISH"); } // ######################################## // // crunch - process data samples // // Applies dubious transformations to data. // But first it waits for the schlepper to send it a sample. // // ######################################## void crunch (void) { int sampleSum =0; int div; BOOL quit = FALSE; D1SHOW ("START-A"); envShow(0); D1SHOW ("START-B"); while (!quit) { // --- Wait for dinner --- semTake (syncSemId, WAIT_FOREVER); if (runState == CRUNCH_STOP) quit = TRUE; // --- reserve access to pCurrNode --- semTake (currNodeSemId, WAIT_FOREVER); while (pCurrNode != NULL) { sampleSum += pCurrNode->data; div = pCurrNode->data; nodeScrap (); } // --- release access to pCurrNode --- semGive (currNodeSemId); // --- exception problem and the silly fix --- result = sampleSum / div; // if (div != 0) result = sampleSum/div; // --- Clean up for the next round --- sampleSum = 0; } // while (!quit) runState = ALL_STOP; D1SHOW ("FINISH"); } // crunch // ######################################## // // monitor - monitors results of calculation // // Checks results of calculation and prints warning if too hot. // // ######################################## void monitor (void) { int isHot = 0; int isNot = 0; D1SHOW ("START-A"); envShow(0); D1SHOW ("START-B"); while (runState == ALL_GO) { if (!isHot && result >= HOT) { isHot = 1; D1SHOW ("WARNING: HOT!"); } else { if (isHot && result < HOT) { isHot = 0; D1SHOW ("OK!"); } } } // while D1SHOW ("FINISH"); } // monitor // ######################################## // // progStop - stops the program // // Call this routine to end it all. // // ######################################## void progStop (void) { D1SHOW ("START-A"); envShow(0); D1SHOW ("START-B"); runState = COSMOS_STOP; // --- Wait for everyone to finish up --- while (runState != ALL_STOP) { taskDelay (1); } // --- Clean up --- semDelete (dataSemId); semDelete (syncSemId); semDelete (currNodeSemId); D1SHOW ("BYE!TSCHUESS!ADIEU!"); D1SHOW ("FINISH"); } // progStop || ###### C++-code : END ######## || ====== Tornado Shell Window : BEGIN ====== Copyright 1995-1999 Wind River Systems, Inc. C++ Constructors/Destructors Strategy is AUTOMATIC - -> test1 +[ D:/projects/demo/cobble.c, #126; test1 ] STATRT (via cout) - -[ D:/projects/demo/cobble.c, #126; test1 ] STATRT (via stdout) (global environment) +[ D:/projects/demo/cobble.c, #128; test1 ] RETURN (via cout) - -[ D:/projects/demo/cobble.c, #128; test1 ] RETURN (via stdout) value = 0 = 0x0 - -> progStart +[ D:/projects/demo/cobble.c, #149; progStart ] START-A (via cout) - -[ D:/projects/demo/cobble.c, #149; progStart ] START-A (via stdout) (global environment) +[ D:/projects/demo/cobble.c, #151; progStart ] START-B (via cout) - -[ D:/projects/demo/cobble.c, #151; progStart ] START-B (via stdout) value = 0 = 0x0 - -> Exception number 0: Task: 0x4b17528 (tCrunch) Divide Error Program Counter: 0x0495df86 Status Register: 0x00010202 4276cf _vxTaskEntry +47 : 495df84 (0, 0, 0, 0, 0, 0, 0, 0, 0, 0) || ====== Tornado Shell Window : END ======== || ------ The Target Simulator Window : BEGIN ------ VxWorks Copyright 1984-1998 Wind River Systems, Inc. CPU: VxSim for Windows VxWorks: 5.4.2 BSP version: 1.1/1 Creation date: Jan 29 2001 WDB: Ready. +[ D:/projects/demo/cobble.c, #126; test1 ] STATRT (via cerr) - -[ D:/projects/demo/cobble.c, #126; test1 ] STATRT (via stderr) +[ D:/projects/demo/cobble.c, #128; test1 ] RETURN (via cerr) - -[ D:/projects/demo/cobble.c, #128; test1 ] RETURN (via stderr) +[ D:/projects/demo/cobble.c, #149; progStart ] START-A (via cerr) - -[ D:/projects/demo/cobble.c, #149; progStart ] START-A (via stderr) +[ D:/projects/demo/cobble.c, #151; progStart ] START-B (via cerr) - -[ D:/projects/demo/cobble.c, #151; progStart ] START-B (via stderr) +[ D:/projects/demo/cobble.c, #266; cosmos ] START-A (via cout) +[ D:/projects/demo/cobble.c, #266; cosmos ] START-A (via cerr) - -[ D:/projects/demo/cobble.c, #266; cosmos ] START-A (via stdout) - -[ D:/projects/demo/cobble.c, #266; cosmos ] START-A (via stderr) (global environment) +[ D:/projects/demo/cobble.c, #268; cosmos ] START-B (via cout) +[ D:/projects/demo/cobble.c, #268; cosmos ] START-B (via cerr) - -[ D:/projects/demo/cobble.c, #268; cosmos ] START-B (via stdout) - -[ D:/projects/demo/cobble.c, #268; cosmos ] START-B (via stderr) +[ D:/projects/demo/cobble.c, #350; schlep ] START-A (via cout) +[ D:/projects/demo/cobble.c, #350; schlep ] START-A (via cerr) - -[ D:/projects/demo/cobble.c, #350; schlep ] START-A (via stdout) - -[ D:/projects/demo/cobble.c, #350; schlep ] START-A (via stderr) (global environment) +[ D:/projects/demo/cobble.c, #352; schlep ] START-B (via cout) +[ D:/projects/demo/cobble.c, #352; schlep ] START-B (via cerr) - -[ D:/projects/demo/cobble.c, #352; schlep ] START-B (via stdout) - -[ D:/projects/demo/cobble.c, #352; schlep ] START-B (via stderr) +[ D:/projects/demo/cobble.c, #417; crunch ] START-A (via cout) +[ D:/projects/demo/cobble.c, #417; crunch ] START-A (via cerr) - -[ D:/projects/demo/cobble.c, #417; crunch ] START-A (via stdout) - -[ D:/projects/demo/cobble.c, #417; crunch ] START-A (via stderr) (global environment) +[ D:/projects/demo/cobble.c, #419; crunch ] START-B (via cout) +[ D:/projects/demo/cobble.c, #419; crunch ] START-B (via cerr) - -[ D:/projects/demo/cobble.c, #419; crunch ] START-B (via stdout) - -[ D:/projects/demo/cobble.c, #419; crunch ] START-B (via stderr) +[ D:/projects/demo/cobble.c, #471; monitor ] START-A (via cout) +[ D:/projects/demo/cobble.c, #471; monitor ] START-A (via cerr) - -[ D:/projects/demo/cobble.c, #471; monitor ] START-A (via stdout) - -[ D:/projects/demo/cobble.c, #471; monitor ] START-A (via stderr) (global environment) +[ D:/projects/demo/cobble.c, #473; monitor ] START-B (via cout) +[ D:/projects/demo/cobble.c, #473; monitor ] START-B (via cerr) - -[ D:/projects/demo/cobble.c, #473; monitor ] START-B (via stdout) - -[ D:/projects/demo/cobble.c, #473; monitor ] START-B (via stderr) +[ D:/projects/demo/cobble.c, #480; monitor ] WARNING: HOT! (via cout) +[ D:/projects/demo/cobble.c, #480; monitor ] WARNING: HOT! (via cerr) - -[ D:/projects/demo/cobble.c, #480; monitor ] WARNING: HOT! (via stdout) - -[ D:/projects/demo/cobble.c, #480; monitor ] WARNING: HOT! (via stderr) +[ D:/projects/demo/cobble.c, #487; monitor ] OK! (via cout) +[ D:/projects/demo/cobble.c, #487; monitor ] OK! (via cerr) - -[ D:/projects/demo/cobble.c, #487; monitor ] OK! (via stdout) - -[ D:/projects/demo/cobble.c, #487; monitor ] OK! (via stderr) +[ D:/projects/demo/cobble.c, #480; monitor ] WARNING: HOT! (via cout) +[ D:/projects/demo/cobble.c, #480; monitor ] WARNING: HOT! (via cerr) - -[ D:/projects/demo/cobble.c, #480; monitor ] WARNING: HOT! (via stdout) - -[ D:/projects/demo/cobble.c, #480; monitor ] WARNING: HOT! (via stderr) +[ D:/projects/demo/cobble.c, #487; monitor ] OK! (via cout) +[ D:/projects/demo/cobble.c, #487; monitor ] OK! (via cerr) - -[ D:/projects/demo/cobble.c, #487; monitor ] OK! (via stdout) - -[ D:/projects/demo/cobble.c, #487; monitor ] OK! (via stderr) Exception ! Vector 0 : Divide Error Program Counter : 0x0495df86 Status Register : 0x00010202 || ------ The Target Simulator Window : END -------- - -- ==================== Alex Vinokur http://up.to/alexvn http://go.to/alexv_math mailto:alexvn@bigfoot.com mailto:alexvn@go.to ==================== --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Finding VxWorks version Date: Mon, 25 Mar 2002 12:13:29 +0200 From: "Alex Vinokur" Organization: Scopus Message-ID: References: "Alex Vinokur" wrote in message news:a7k7e8$lm14a$1@ID-79865.news.dfncis.de... > ============================================= > Tornado Version 2.0.2 > Host : Windows2000 > Target : VxSim (VxWorks target simulator) > ============================================= > > I can't find in documentation what is VxWorks version. > > Any suggestions how to find that ? > > Thanks in advance, > The Tornado Shell's version() command in Tornado Shell Window. For instance, - -> version VxWorks (for VxSim for Windows) version 5.4.2. Kernel: WIND version 2.5 Made on Jan 29 2001, 12:16:20. Boot line: nt(0,0)host:D:/sys2/Tornado/target/config/simpc/vxWorks.exe h=90.0.0.254 e=90.0.0.1 u=user . value = 0 = 0x0 - -> - -- ==================== Alex Vinokur http://up.to/alexvn http://go.to/alexv_math mailto:alexvn@bigfoot.com mailto:alexvn@go.to ==================== --------------------------- Newsgroups: comp.os.vxworks Subject: Re: "/tffs0/" Vs. "/tffs0" what is the difference? Date: Mon, 25 Mar 2002 11:04:59 +0000 (UTC) From: "Franco Bassetti" Organization: Mailgate.ORG Server - http://www.Mailgate.ORG Message-ID: <0f4065205973cc2a9cf7227fa59c2867.37262@mygate.mailgate.org> References: <6dcae13d.0203241334.5f64cc2a@posting.google.com> I have a call to usrTffsConfig(0,0,"/tffs0"); in usrAppInit may be you too, try to see there otherwise try with a find usrTffsConfig - -- Posted via Mailgate.ORG Server - http://www.Mailgate.ORG --------------------------- Newsgroups: comp.os.vxworks Subject: Examples for working with Ethernet ( EndDriver, Mux) Date: 25 Mar 2002 03:56:25 -0800 From: Vladimir.Kharakh@ecitele.com (Vlady) Organization: http://groups.google.com/ Message-ID: Hi all, Does anyone know about VxWorks examples library for working with Ethernet (EndDriver, Mux)? I am working with IBM PPC 405GP. Thanks, Vladimir Kharakh E-mail mailto:Vladimir.Kharakh@innowave-ws.com URL http://www.innowave-ws.com ________________________________________ --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Finding VxWorks version Date: Mon, 25 Mar 2002 11:57:34 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C9F111F.3080504@spamm.me.l8s.co.uk> References: > The Tornado Shell's version() command in Tornado Shell Window. > For instance, > > -> version > VxWorks (for VxSim for Windows) version 5.4.2. > Kernel: WIND version 2.5 > Made on Jan 29 2001, 12:16:20. > Boot line: > nt(0,0)host:D:/sys2/Tornado/target/config/simpc/vxWorks.exe h=90.0.0.254 > e=90.0.0.1 u=user Yes - gives out the password for ftp access and omits the BSP version. David --------------------------- End of New-News digest ********************** From vxwexplo-errs@csg.lbl.gov Mon Mar 25 21:04:40 2002 From: "Sajjad Ahmed" Date: Mon Mar 25 21:04:43 PST 2002 Subject: tNetTask Hang Hi All, I have even posted this question before . 1) Why does vxWorks System Hangs when you have semTake (semId. WAIT_FOREVER) in the handler function called by netJobAdd. Seems there is problem with tNetTask. can any one point me out this problem and give me a detail picture how tNetTask works. + _Sajjad Ahmed. *************************************************************************** This message is proprietary to Future Software Limited (FSL) and is intended solely for the use of the individual to whom it is addressed. It may contain privileged or confidential information and should not be circulated or used for any purpose other than for what it is intended. If you have received this message in error, please notify the originator immediately. If you are not the intended recipient, you are notified that you are strictly prohibited from using, copying, altering, or disclosing the contents of this message. FSL accepts no responsibility for loss or damage arising from the use of the information transmitted by this email including damage from virus. *************************************************************************** From vxwexplo-errs@csg.lbl.gov Tue Mar 26 04:03:13 2002 From: Vxworks Exploder Date: Tue Mar 26 04:03:15 PST 2002 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Tue Mar 26 04:03:09 PST 2002 Subject: Re: "/tffs0/" Vs. "/tffs0" what is the difference? Subject: Re: uninitialized interrupt Subject: Analyze Windview Logs Subject: Re: Tornado Shell Window & Target Simulator Window, cout & printf Subject: Re: Analyze Windview Logs Subject: Re: Tornado Shell Window & Target Simulator Window, cout & printf Subject: Re: Porting a board to Vxworks? Subject: Booting vxWorks image Subject: Re: VERIFY_AFTER_WRITE in tffs Subject: vxWorks system calls Subject: malloc in a device driver. [newbie question] Subject: Re: Booting vxWorks image Subject: Re: vxWorks system calls Subject: Re: How to preform periodical task except sysAuxClkRateSet() Subject: The "unsupported" WRS Telnet server hanging Subject: Re: "/tffs0/" Vs. "/tffs0" what is the difference? Subject: Building VxWorks image using Tornado Prototyper Subject: Re: malloc in a device driver. [newbie question] Subject: Re: vxWorks system calls Subject: Re: malloc in a device driver. [newbie question] Subject: Strange /CS timing with GPCM on 8260 (SETA=1) Subject: Re: Building VxWorks image using Tornado Prototyper Subject: Re: Examples for working with Ethernet ( EndDriver, Mux) ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Re: "/tffs0/" Vs. "/tffs0" what is the difference? Date: Mon, 25 Mar 2002 12:05:54 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C9F1311.7000304@spamm.me.l8s.co.uk> References: <6dcae13d.0203241334.5f64cc2a@posting.google.com> roswell wrote: > Hi all: > > When bootDev is network, all is fine. In usrConfig/usrRoot() I call > usrTffsConfig (0, 0, "/tffs0"), if the bootDev is network. so when > doing "devs" from shell, I see the "/tffs0" device. good. > > The problem is when bootDev is tffs. After booting, when displaying > the devices, i see, "/tffs0/" (note: with the 2nd '/'). for sure, the > bootConfig.c/bootLoad/tffsLoad() is creating this. But after the > usrConfig/usrRoot() runs, why do I still see the "/tffs0/" created by > bootConfig.c/bootLoad/tffsLoad() ? I understood that, in > usrConfig.c/usrRoot() we have stick in a usrTffsConfig(0, 0, > "/tffs0"), so regardless of how we booted, we will creat "/tffs0" > device? > > It seems "/tffs0/" that got created in Boot code, did not get > re-created via usrConfig.c. > > Please help to clarify this. > Well, since vxWorks doesn't parse filenames (they are treated as strings) until you get into the fs code itself, if you call a filesystem "/tffs0" then names like "/tffs0fred" are passed into the fs code which will treat them as being identical to "/tffs0/fred" this probably isn't quite what you had in mind:-) So in order to require the "/" between the filesystem name and a file within the system you need to end the filesystem name with a "/". Unfortunately this is counter intuitive and not processed consistently within vxWorks. The worst culprit is the NFS export code which, when matching the name supplied by the remote system, strips a '/' of the wrong name! So of you export "/fred/" you have to specify "/fred//" in order to mount it (from a unix system). You might think this is a bug, however attepts to raise it failed because the documentation says (somewhere) that NFS exported FS must not end in a '/'. David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: uninitialized interrupt Date: Mon, 25 Mar 2002 12:07:52 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C9F138A.3060304@spamm.me.l8s.co.uk> References: <3C9E7973.24C56C0@bellsouth.net> > I'm sure someone else could come up with more, but those seem to > be the most popular causes I've seen. Best one I saw was a VMEbus ethernet card [1] that used a 74xx646 (bidirectional octal buffer with internal latch) to buffer the lower 8 bits of the vmebus data bus. When the on board software requested a vmebus interrupt, the vector number was put into the latch, during the IACK cycle the contents of the latch were driven onto the vmebus. Unfortunately if another write bus cycle happened before the IACK cycle, it was quite likely that the effort of driving the vmebus would cause the ground level inside the '646 to rise thus corrupting the contents of the latch - and hence the vector number. I recall it was 'fixed' by changing from an LS646 to an F646. [1] An interesting little card (ok it had a full sized daughterboard) with a 68020 and a split memory architecture that allowed the cpu, lance and DMA based vmebus master interface to run concurrently at full speed. Mind you only having a DMA bus master, and reads being 1k read-modify-write cycle [2] made the software interesting! [2] it used video memory for the shared area, using the serial interface for the vmebus dma. David --------------------------- Newsgroups: comp.os.vxworks Subject: Analyze Windview Logs Date: Mon, 25 Mar 2002 13:23:29 +0100 From: Walter Zimmer Organization: FhG - ESK Message-ID: <3C9F16C1.A3963C79@esk.fhg.de> Hi! I just recovered tons of windview logs and now want to analyze the gathered data. The "Export to Excel"-Button doesn't work although Excel is installed. So, did someone incidentally write a perl extractor for .wvr files or has any hints about their data format? Many thanks, Walter - -- Fraunhofer-Einrichtung Systeme der Kommunikationstechnik (ESK) Walter Zimmer Hansastraße 32 Dipl.-Inf. D-80686 München Telefon: +49(0)89-547088-344 walter.zimmer@esk.fraunhofer.de Telefax: +49(0)89-547088-221 --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Tornado Shell Window & Target Simulator Window, cout & printf Date: Mon, 25 Mar 2002 14:57:44 +0200 From: "Alex Vinokur" Organization: Scopus Message-ID: References: "Alex Vinokur" wrote in message news:a7mp8g$m68lb$1@ID-79865.news.dfncis.de... > > ======================================================= > Tornado : Version 2.0.2 > VxWorks : Version 5.4.2 > BSP : Version 1.1/1 > Compiler : c++simpc > gcc version egcs-2.90.29 tornado 2.0 980515 > (egcs-1.0.3 release) > Host : Windows2000 > Target : VxSim for Windows (VxWorks target simulator) > ======================================================= > > > The cobble.c has been changed one more. > > Here are some question concerning its behavior. > > In functions test1() and progStart() > * cout, fprint (stdout, ...) and envShow() > print to Tornado Shell Window. > * cerr, fprint (stderr, ...) > print to Target Simulator Window. > > In all other functions > * cout, cerr, fprint (stdout, ...), fprint (stderr, ...) and envShow() > print to Target Simulator Window. > Is it possible similar behavior with real target (not Target Simulator)? > Any explanations? > > Thanks in advance. > > [snip] - -- ==================== Alex Vinokur http://up.to/alexvn http://go.to/alexv_math mailto:alexvn@bigfoot.com mailto:alexvn@go.to ==================== --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Analyze Windview Logs Date: Mon, 25 Mar 2002 14:13:55 +0100 From: "Michael Lawnick" Organization: Buergernetz Dillingen Message-ID: References: <3C9F16C1.A3963C79@esk.fhg.de> Reply-To: "Michael Lawnick" Sender: mlawnick@pd9524dc5.dip.t-dialin.net Hi Walter, as WRS-support told me once upon a time, 'export' only works with American version of Excel, so if you have it at hand ... HTH Michael Lawnick "Walter Zimmer" schrieb im Newsbeitrag news:3C9F16C1.A3963C79@esk.fhg.de... > Hi! > > I just recovered tons of windview logs and now want to analyze the > gathered data. The "Export to Excel"-Button doesn't work although > Excel is installed. > > So, did someone incidentally write a perl extractor for .wvr files > or has any hints about their data format? > > Many thanks, > Walter > -- > Fraunhofer-Einrichtung Systeme der Kommunikationstechnik (ESK) > > Walter Zimmer Hansastraße 32 > Dipl.-Inf. D-80686 München > Telefon: +49(0)89-547088-344 > walter.zimmer@esk.fraunhofer.de Telefax: +49(0)89-547088-221 --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Tornado Shell Window & Target Simulator Window, cout & printf Date: Mon, 25 Mar 2002 16:11:38 +0200 From: "Alex Vinokur" Organization: Scopus Message-ID: References: "Alex Vinokur" wrote in message news:a7mp8g$m68lb$1@ID-79865.news.dfncis.de... > > ======================================================= > Tornado : Version 2.0.2 > VxWorks : Version 5.4.2 > BSP : Version 1.1/1 > Compiler : c++simpc > gcc version egcs-2.90.29 tornado 2.0 980515 > (egcs-1.0.3 release) > Host : Windows2000 > Target : VxSim for Windows (VxWorks target simulator) > ======================================================= > > > The cobble.c has been changed one more. > > Here are some question concerning its behavior. > > In functions test1() and progStart() > * cout, fprint (stdout, ...) and envShow() > print to Tornado Shell Window. > * cerr, fprint (stderr, ...) > print to Target Simulator Window. > > In all other functions > * cout, cerr, fprint (stdout, ...), fprint (stderr, ...) and envShow() > print to Target Simulator Window. > The ioTaskStdGet( ) function was used in order to analize the sitiation. - ---------------------------------------------------------------------------- - --- Fragment of the description - ---------------------------------------------------------------------------- - ------------------- ioTaskStdGet( ) NAME ioTaskStdGet( ) - get the file descriptor for task standard input/output/error SYNOPSIS int ioTaskStdGet ( int taskId, /* ID of desired task (0 = self) */ int stdFd /* std input (0), output (1), or error (2) */ ) DESCRIPTION This routine returns the current underlying file descriptor for task-specific standard input, output, and error. -------------------------------------------------------------------------- - --------------------- The following results have been received : * for test1() and progStart() : ioTaskStdGet( 0, 1) != ioTaskStdGet( 0, 2) * for other functions : ioTaskStdGet( 0, 1) == ioTaskStdGet( 0, 2). What causes it? > Any explanations? > > Thanks in advance. > > - -- ==================== Alex Vinokur http://up.to/alexvn http://go.to/alexv_math mailto:alexvn@bigfoot.com mailto:alexvn@go.to ==================== --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Porting a board to Vxworks? Date: Mon, 25 Mar 2002 16:37:04 +0100 From: Markus Pietrek Organization: FS Forth Systeme GmbH Message-ID: References: <1a047b5a.0203220236.37215514@posting.google.com> Raja Ganesan wrote: > "Porting a board to Vxworks", What does this mean? > what are the steps that should be follwed for porting the board to > Vxworks. would anyone detail it. > Expecting your help. Depending on the BSPs you have or you may get it means little or a lot of work. If you are lucky you have similar boards and just have to change the memory addresses and/or chip selects in some few source files. But if you are unlucky you have the necessary libraries (e.g. x86 or ARM7TDMI based) but have to adapt or redevelop the timers, interrupt handlers, cache management, ethernet and serial drivers by yourself. For more detailed answers please give more details. Bye, Markus Pietrek --------------------------- Newsgroups: comp.os.vxworks Subject: Booting vxWorks image Date: Mon, 25 Mar 2002 08:55:20 -0700 From: Shawn Baldwin Organization: Raytheon Company Message-ID: <3C9F4868.782BF378@west.raytheon.com> I can not get my vxWorks image to boot itself on our Ppmc750. However my vxWorks image will boot itself when the JTAG ICE emulator controls the execution of code! So when I remove the JTAG to have the board boot itself it produces the following message through the COM1 port: "mux Dev Load failed for device entry 0! Could not find fei0 Attaching interface lo0... done instruction address breakpoint exception Exception current instruction address: 0x00000700 Machine Status Register: 0x00001000 Task: 0x1fffdf8 "tRootTask" If anyone could assist, I'd greatly appreciate it! Thanks! Shawn Baldwin --------------------------- Newsgroups: comp.os.vxworks Subject: Re: VERIFY_AFTER_WRITE in tffs Date: Mon, 25 Mar 2002 19:07:25 +0000 (UTC) From: "Franco Bassetti" Organization: Mailgate.ORG Server - http://www.Mailgate.ORG Message-ID: References: Does anybody use VERIFY_AFTER_WRITE? - -- Posted via Mailgate.ORG Server - http://www.Mailgate.ORG --------------------------- Newsgroups: comp.os.vxworks Subject: vxWorks system calls Date: Mon, 25 Mar 2002 20:02:05 GMT From: "Jim" Organization: Magma Communications Ltd. Message-ID: <1nLn8.7846$f5.527808@news> In vxworks do system call cause a context switch ? ... I assume no because there is no memory protection ... Cheers, Jim --------------------------- Newsgroups: comp.os.vxworks Subject: malloc in a device driver. [newbie question] Date: 25 Mar 2002 13:20:09 -0800 From: google@drforehead.net (Nick Forrette) Organization: http://groups.google.com/ Message-ID: <576881c0.0203251320.5ade1f69@posting.google.com> In a nutshell, is it legal to allocate memory with malloc inside of a (character) device driver in VxWorks? I've done some searching through the programmers guide, the windriver community forums, and comp.os.vxworks, but didn't see anything that addressed the question. Based on what I've read thus far, all code in VxWorks runs in the most priviledged mode of the target processor. In a more traditional environment, malloc would be a part of user mode libc (thus not readily available to a device driver). This is not the case with VxWorks. (NB: this won't be called from and interupt handler. It will only be called by the functions registered to handle open/close/read/write/etc). --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Booting vxWorks image Date: Tue, 26 Mar 2002 09:20:25 +1030 From: Tim Shaw Organization: Defence Science and Technology Organisation Message-ID: <3C9FA9B1.EDCAD1B@dsto.defence.gov.au> References: <3C9F4868.782BF378@west.raytheon.com> Are you using T2.0 or T2.1? Shawn Baldwin wrote: > I can not get my vxWorks image to boot itself on our Ppmc750. However > my vxWorks image will boot itself when the JTAG ICE emulator controls > the execution of code! So when I remove the JTAG to have the board boot > itself it produces the following message through the COM1 port: > > "mux Dev Load failed for device entry 0! > Could not find fei0 > Attaching interface lo0... done > > instruction address breakpoint exception > Exception current instruction address: 0x00000700 > Machine Status Register: 0x00001000 > Task: 0x1fffdf8 "tRootTask" > > If anyone could assist, I'd greatly appreciate it! Thanks! > > Shawn Baldwin --------------------------- Newsgroups: comp.os.vxworks Subject: Re: vxWorks system calls Date: Mon, 25 Mar 2002 23:15:09 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3C9FAFEE.9020308@spamm.me.l8s.co.uk> References: <1nLn8.7846$f5.527808@news> Jim wrote: > In vxworks do system call cause a context switch ? > > ... I assume no because there is no memory protection ... The new vxWorks AE might do something.... But traditionally vxWorks has not 'context' to switch! and nothing that is a 'system call' really. Everything is just a normal function call. Process switches happen on return from an ISR, or as a direct result of an action (eg giving a semaphore to a higher priority task). David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: How to preform periodical task except sysAuxClkRateSet() Date: 25 Mar 2002 15:55:59 -1000 From: Jim Thomas Organization: Canada France Hawai`i Telescope Message-ID: References: <5c074538.0203122254.56279c06@posting.google.com> <5c074538.0203131643.765b42c2@posting.google.com> <3c90a3ec@brateggebdc5.br-automation.co.at> <3C90AE69.10201@spamm.me.l8s.co.uk> <3C95E9E3.6070207@spamm.me.l8s.co.uk> <4cf902bf.0203221920.2e65f87@posting.google.com> <4cf902bf.0203240914.472936a9@posting.google.com> >> I wrote but was not quoted: HJB> It is worse then that actually, because the calculation for the usec HJB> -> ticks conversion is entirely done in integer math, with associated HJB> rounding down. .... Jim> Down? That does, as you say, make it worse. Why down? If I dumbly Jim> ask for 10ms, I certainly don't mean 0! >>>>> "HJB" == Hwa Jin Bae writes: HJB> It is not the best example of coding. But that is how integer math HJB> works in C. I was under the impression that integer math worked that way in general. I was also under the impression that there were "well known" ways of doing useful arithmetic in spite of that. Like (x + (n - 1))/n ..... Jim --------------------------- Newsgroups: comp.os.vxworks Subject: The "unsupported" WRS Telnet server hanging Date: 25 Mar 2002 18:27:25 -0800 From: chrismooremobile@yahoo.com (Chris Moore) Organization: http://groups.google.com/ Message-ID: Hi, I've been using the unsupported WRS telnet daemon for a while now and have not noticed any huge problems. BUT! When I have the CPU loaded (according to the spylib) I get some problems with the telnet client task hanging, if I do a netstat from my machine or from the VxWorks target I see that the msgq is filled and doesnt clear out at all... Has anyone else experienced this problem? Chris --------------------------- Newsgroups: comp.os.vxworks Subject: Re: "/tffs0/" Vs. "/tffs0" what is the difference? Date: 25 Mar 2002 20:57:58 -0800 From: roswel_ajf@hotmail.com (roswell) Organization: http://groups.google.com/ Message-ID: <6dcae13d.0203252057.11143d82@posting.google.com> References: <6dcae13d.0203241334.5f64cc2a@posting.google.com> hi folks: what i found is, netLoadSymTbl() is called from usrConfig.c/usrRoot(), which in turns call usrTffsConfig (withbootline). which in turns call devSplit() which adds the 2nd '/', so this is why we have "/tffs0/". so i fixed the devSplit() in usrExtra.c, my issue is fixed. thanks roswel_ajf@hotmail.com (roswell) wrote in message news:<6dcae13d.0203241334.5f64cc2a@posting.google.com>... > Hi all: > > When bootDev is network, all is fine. In usrConfig/usrRoot() I call > usrTffsConfig (0, 0, "/tffs0"), if the bootDev is network. so when > doing "devs" from shell, I see the "/tffs0" device. good. > > The problem is when bootDev is tffs. After booting, when displaying > the devices, i see, "/tffs0/" (note: with the 2nd '/'). for sure, the > bootConfig.c/bootLoad/tffsLoad() is creating this. But after the > usrConfig/usrRoot() runs, why do I still see the "/tffs0/" created by > bootConfig.c/bootLoad/tffsLoad() ? I understood that, in > usrConfig.c/usrRoot() we have stick in a usrTffsConfig(0, 0, > "/tffs0"), so regardless of how we booted, we will creat "/tffs0" > device? > > It seems "/tffs0/" that got created in Boot code, did not get > re-created via usrConfig.c. > > Please help to clarify this. --------------------------- Newsgroups: comp.os.vxworks Subject: Building VxWorks image using Tornado Prototyper Date: 25 Mar 2002 21:37:55 -0800 From: mohit@mahindrabt.com (Mohit) Organization: http://groups.google.com/ Message-ID: <538e14e.0203252137.76a1fde@posting.google.com> Hi All, I am new to VxWorks and Tornado. I have installed Tornado Prototyper 2.0.2 and installed on Windows 2000. I would like to know whether i can create VxWorks image using default "simpc" BSP or not. i created a project using simpc BSP but when i go to "Build>Build Bootrom" menu option in Tornado IDE there is no BSP listed therefore i am not able to create a Bootable image of VxWorks.any help will be appreciated! Thanks in advance --------------------------- Newsgroups: comp.os.vxworks Subject: Re: malloc in a device driver. [newbie question] Date: Tue, 26 Mar 2002 08:21:37 +0100 From: "Michael Lawnick" Organization: Buergernetz Dillingen Message-ID: References: <576881c0.0203251320.5ade1f69@posting.google.com> Reply-To: "Michael Lawnick" Sender: mlawnick@pd95242f3.dip.t-dialin.net Hi Nick, "Nick Forrette" schrieb im Newsbeitrag news:576881c0.0203251320.5ade1f69@posting.google.com... > In a nutshell, is it legal to allocate memory with malloc inside of a > (character) device driver in VxWorks? > > I've done some searching through the programmers guide, the windriver > community forums, and comp.os.vxworks, but didn't see anything that > addressed the question. > > Based on what I've read thus far, all code in VxWorks runs in the most > priviledged mode of the target processor. In a more traditional > environment, malloc would be a part of user mode libc (thus not > readily available to a device driver). This is not the case with > VxWorks. (NB: this won't be called from and interupt handler. It will > only be called by the functions registered to handle > open/close/read/write/etc). your 'NB' makes the answer possible: yes, but not recommended. Yes, because you may call malloc nearly anywhere, but not within ISR or sigHandler. Not recommended, as malloc should be used only if really necessary (time + fragmentation), best only on initialisation. - -- Regards, Mit freundlichen Grüßen, Michael Lawnick ============================================== SOFTEC GmbH Tel +49-731-96600-0 Promenade 17 Fax +49-731-96600-23 D-89073 Ulm Michael Lawnick Germany lawnick@softec.de ============================================== --------------------------- Newsgroups: comp.os.vxworks Subject: Re: vxWorks system calls Date: 25 Mar 2002 23:37:14 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203252337.769c22cf@posting.google.com> References: <1nLn8.7846$f5.527808@news> <3C9FAFEE.9020308@spamm.me.l8s.co.uk> Hello, David Laight wrote in message news:<3C9FAFEE.9020308@spamm.me.l8s.co.uk>... > Jim wrote: > > > In vxworks do system call cause a context switch ? > > > > ... I assume no because there is no memory protection ... > > The new vxWorks AE might do something.... No, there are still no context switch required to make a system call. If your task is in a user level application domain, then an exception will occur, the processor mode will be set to supervisor (or equiv.), some validation of the system call takes place and then the kernel function is executed. The same task context is used throughout this operation. On exit from the system call function, the return path causes the CPU mode to be dropped back to user mode. Now, in a privileged application domain, the exception never occurs and the operation proceeds exactly as it would have in 5.4 (i.e. it is just a function call). > But traditionally vxWorks has not 'context' to switch! and > nothing that is a 'system call' really. Everything is just > a normal function call. > > Process switches happen on return from an ISR, or as a direct > result of an action (eg giving a semaphore to a higher > priority task). There are no "processes" in VxWorks, so I assume that you meant a task context switch here... Rgds, John... --------------------------- Newsgroups: comp.os.vxworks Subject: Re: malloc in a device driver. [newbie question] Date: 25 Mar 2002 23:43:42 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203252343.770aa97a@posting.google.com> References: <576881c0.0203251320.5ade1f69@posting.google.com> Hello, google@drforehead.net (Nick Forrette) wrote in message news:<576881c0.0203251320.5ade1f69@posting.google.com>... > In a nutshell, is it legal to allocate memory with malloc inside of a > (character) device driver in VxWorks? Yes, it is perfectly legal, and quite common, to allocate memory inside a device driver. Under VxWorks 5.4, you may use malloc(). For VxWorks AE you need to think a little more about where the memory should come from: malloc() will allocate from the "current" user heap (perhaps outside the kernel), and KHEAP_ALLOC() will allocate, as its name suggests, from the kernel's heap space. > I've done some searching through the programmers guide, the windriver > community forums, and comp.os.vxworks, but didn't see anything that > addressed the question. > > Based on what I've read thus far, all code in VxWorks runs in the most > priviledged mode of the target processor. In a more traditional > environment, malloc would be a part of user mode libc (thus not > readily available to a device driver). This is not the case with > VxWorks. Yes, but even on those systems there is some kind of memory allocation primitive, often with malloc-like semantics, available. > (NB: this won't be called from and interupt handler. It will > only be called by the functions registered to handle > open/close/read/write/etc). You've found the only restriction already; never try dynamic memory alloc or free operations from an ISR. HTH, John... --------------------------- Newsgroups: comp.sys.powerpc.tech,comp.sys.powerpc.misc,comp.os.vxworks Subject: Strange /CS timing with GPCM on 8260 (SETA=1) Date: 26 Mar 2002 00:07:44 -0800 From: ryeung@earthlink.net (Raymond Yeung) Organization: http://groups.google.com/ Message-ID: I've an external device interfacing with 8260 via a CPLD. The device is under GPCM control with SETA=1 (i.e. external access termination). A READY signal is hooked up to /PGTA to trigger the access termination. I'm seeing some strange timing on the /CS. After the first successful access, the device asserts its READY, which gets translated by CPLD to /PGTA. The /CS is deasserted shortly after and stays that way for a few clock cycles. In the mean time, /PGTA becomes deasserted. So far so good. Then /CS becomes asserted again, and lasts only for about 1 clock cycle and deasserted itself. Why? There's data to write to the device (so I do expect /CS to be asserted). But /PGTA is not asserted, so what terminates the access? Any other register setting or ext. signals I need to check to get more insight? Furthermore, 8260 manual says that /GTA needs to be one clock cycle long (see sec. 10.5.2). Is it harmful (other than slowing things down) to have a longer /PGTA (say, a few clock cycles)? Thanks, Raymond --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Building VxWorks image using Tornado Prototyper Date: 26 Mar 2002 10:01:14 GMT From: Johan Borkhuis Organization: Agere Systems Message-ID: References: <538e14e.0203252137.76a1fde@posting.google.com> mohit@mahindrabt.com (Mohit) wrote: > Hi All, > I am new to VxWorks and Tornado. I have installed Tornado > Prototyper 2.0.2 and installed on Windows 2000. I would like to know > whether i can create VxWorks image using default "simpc" BSP or not. i > created a project using simpc BSP but when i go to "Build>Build > Bootrom" menu option in Tornado IDE there is no BSP listed therefore i > am not able to create a Bootable image of VxWorks.any help will be > appreciated! You do not need a bootrom with the simulator, you can build your project. This will create a Windows application that can be started from within Tornado, or from Windows. The bootrom is only needed when you have a real VxWorks system, but the simulator only "simulates" VxWorks on a Windows platform. Groeten, Johan - -- o o o o o o o . . . _____________________________ o _____ || Johan Borkhuis | .][__n_n_|DD[ ====_____ | borkhuis@agere.com | >(________|__|_[_________]_|__________________________| _/oo OOOOO oo` ooo ooo 'o!o!o o!o!o` === VxWorks FAQ: http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html === --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Examples for working with Ethernet ( EndDriver, Mux) Date: 26 Mar 2002 03:27:29 -0800 From: giby@myw.ltindia.com (Giby) Organization: http://groups.google.com/ Message-ID: References: Hi Vladimir, I am working on a similar project . Motorola ppc - MPC823 / Vxworks platform networking on ethernet. I think Network Protocol Toolkit Users Guide should provide some light on your question. Also VxWorks Network programmers guide have some example socket programing code for reference .Driver template is also very useful . Check it out. Keep in touch GIBY RAPHAEL email - giby@myw.ltindia.com --------------------------- End of New-News digest ********************** From vxwexplo-errs@csg.lbl.gov Tue Mar 26 07:42:05 2002 From: "Padmanabh M. Kulkarni" Date: Tue Mar 26 07:42:08 PST 2002 Subject: MSG_PRI_URGENT in VxWorks This is a multi-part message in MIME format. ------=_NextPartTM-000-834a752e-40a8-11d6-a219-0000e22173f5 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0020_01C1D50A.9175F2E0" ------=_NextPart_000_0020_01C1D50A.9175F2E0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Hello Everyone, This query is regarding MSG_PRI_URGENT parameter in msgQSend() system call of VxWorks. I need clarfications on the following - 1. Consider a Message Queue created with size ( max number of messages that can be queued ) of N, ( N >= 1 ). If the Queue is not Full at any instant of time, then any message posted to the Queue with MSG_PRI_URGENT parameter will be at the head of the Queue. This is the expected behaviour. However, we can have a condition during which a message is posted with MSG_PRI_URGENT, but at that instant the Queue may be full and hence this urgent message will not be added at head of the Queue. This is an undeterministic behaviour. How can this situation be avoided ? 2. An RTOS like VRTXsa from Microtec Research, implements the above MSG_PRI_URGENT philosophy by maintaining a DeQueue Structure. If one specifies a size of N, VRTXsa creates a Queue of size ( N + 1 ), the extra location ( internal head of the queue ) being accesible only to the RTOS. All messages posted with Normal priority and added in FIFO order into the N Locations. Any message posted with MSG_PRI_URGENT, is added to the internal head of the queue and thus this guarantees that at least one message with parameter MSG_PRI_URGENT will be posted to the Queue even if the N locations are full. Does VxWorks implement such a philosophy ? Please clarify on the above. Regards, Padmanabh ------=_NextPart_000_0020_01C1D50A.9175F2E0 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
Hello=20 Everyone,
 
   This=20 query is regarding MSG_PRI_URGENT parameter in msgQSend() system call of = VxWorks. I need clarfications on the following -
 
1.  Consider a=20 Message Queue created with size ( max number of messages that can = be queued=20 ) of N, ( N >=3D 1 ). If the Queue is not Full at any instant of = time,=20 then
     any message posted to the Queue with=20 MSG_PRI_URGENT parameter will be at the head of the Queue. This is the = expected=20 behaviour.
     However, we can have a condition = during which a=20 message is posted with MSG_PRI_URGENT, but at that = instant the=20 Queue may be full and hence this urgent
     message will not be added = at head of=20 the Queue. This is an undeterministic behaviour. How can this situation = be=20 avoided ?
 
2. =20 An RTOS like VRTXsa from Microtec Research, implements the above=20 MSG_PRI_URGENT philosophy by maintaining a DeQueue Structure. If one = specifies a=20 size of
     N, VRTXsa creates = a Queue of size ( N = + 1 ), the=20 extra location ( internal head of the queue ) being accesible only to = the RTOS.=20 All messages posted with Normal
     priority and added in FIFO=20 order into the N Locations. Any message posted with MSG_PRI_URGENT, = is added to=20 the internal head of the queue and thus this
     guarantees that at least one message = with=20 parameter MSG_PRI_URGENT will be posted to the Queue even if the N = locations are=20 full. Does VxWorks implement such
     a philosophy ?
 
     Please clarify on the = above.
 
Regards,
Padmanabh
------=_NextPart_000_0020_01C1D50A.9175F2E0-- ------=_NextPartTM-000-834a752e-40a8-11d6-a219-0000e22173f5 Content-Type: text/plain; name="InterScan_Disclaimer.txt" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="InterScan_Disclaimer.txt" **************************Disclaimer************************************ Information contained in this E-MAIL being proprietary to Wipro Limited is 'privileged' and 'confidential' and intended for use only by the individual or entity to which it is addressed. You are notified that any use, copying or dissemination of the information contained in the E-MAIL in any manner whatsoever is strictly prohibited. ******************************************************************** ------=_NextPartTM-000-834a752e-40a8-11d6-a219-0000e22173f5-- From vxwexplo-errs@csg.lbl.gov Wed Mar 27 04:03:17 2002 From: Vxworks Exploder Date: Wed Mar 27 04:03:20 PST 2002 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Wed Mar 27 04:03:13 PST 2002 Subject: dosFs2 and DOS_VOL_CONFIG Subject: SAB/SAF 82538 device drivers Subject: vxworks driver for National Instrument's GPIB-ENET/100 Subject: Re: RAW Socket problem Subject: c vs c++ (who's using which) Subject: Re: vxWorks system calls Subject: WindView Questions Subject: Re: How to preform periodical task except sysAuxClkRateSet() Subject: Re: vxWorks system calls Subject: Can VxWorks Solutions be applied to drive IO boards for process control !!! Subject: Re: Can I associate a destination with a specific interface in the routing table? Subject: Re: A question about TIMER design in vxworks Subject: TCP for 4K messages takes really long Subject: Default Signal Handler Subject: Re: malloc in a device driver. [newbie question] Subject: Re: SAB/SAF 82538 device drivers Subject: vxworks_rom on Cetia VMPC6a (Tornado 2.0 NT) Subject: Re: Can VxWorks Solutions be applied to drive IO boards for process Subject: keyboard timeout - need some help Subject: select and pty Subject: IPC communication between agent and External application Subject: Re: ISR not Working - IBM PPC405GP Subject: pciDeviceShow() shows 2 devices when there's only one IBM PPC405GP Subject: Re: select and pty Subject: Re: malloc in a device driver. [newbie question] Subject: Re: Default Signal Handler Subject: Re: TCP for 4K messages takes really long Subject: VxOPC with Wonderware Subject: porting LINUX driver to vxWorks Subject: Re: WindView Questions Subject: Re: keyboard timeout - need some help Subject: how to bind a pppoe service to multi ethernet port ? Subject: Re: Porting a board to Vxworks? Subject: semBCreate() Subject: I want to initialize board(MPC107) through the EEPROM Subject: Re: pciDeviceShow() shows 2 devices when there's only one IBM PPC405GP ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: dosFs2 and DOS_VOL_CONFIG Date: Tue, 26 Mar 2002 12:33:33 -0000 From: "Employee" Organization: Newport Networks Ltd. Message-ID: <1017146014.258896@azores.network-i.net> Hi, given the name of a dos file system (e.g. "/dos1"), how can I get its DOS_VOL_CONFIG structure? I have tried to get it by copying the pointer passed to the configuration function given to the dosFsVolFormat() via the 3rd parameter but it appears to expire immediatelly after. i.e. if I print the contents of the structure from inside the configuration function the data makes sense. But if I print the same structure again later on from the shell I get garbage which suggests that the structure was moved. Example: void config(DOS_VOL_CONFIG *p); dosFsVolFormat(cbio, DOS_OPT_BLANK | DOS_OPT_QUIET, &config); In other words to do something similar to: dosFsShow ("/dos1"); Regards, Dimitris --------------------------- Newsgroups: comp.arch.embedded,comp.os.linux.embedded,comp.os.linux.powerpc,comp.os.psos,comp.os.vxworks,comp.realtime,comp.sys.arm,comp.sys.mips,comp.sys.powerpc.advocacy,comp.sys.powerpc.misc,comp.sys.powerpc.tech Subject: SAB/SAF 82538 device drivers Date: Tue, 26 Mar 2002 14:37:43 +0200 From: "Rami Gideoni" Organization: Internet Gold, ISRAEL Message-ID: Hi, I need to write device drivers for the ESCC8 -- SAB/SAF 82538 (Enhanced Serial Communication Controller (8 channels)) for VxWorks/PowerPC based board. Any source code, ideas, hits will be most appreciated. Thanks in advance RamiG --------------------------- Newsgroups: comp.os.vxworks Subject: vxworks driver for National Instrument's GPIB-ENET/100 Date: 26 Mar 2002 05:33:16 -0800 From: techsoul2001@yahoo.com (raghuram) Organization: http://groups.google.com/ Message-ID: VXWORKS Hi all, I need to control/communicate with several GPIB devices in my application. I am planning to use National Instrument's GPIB-ENET/100 converter. National Instruments says that they have ESP-488 1.0 (ENET, ENET/100) Developer Kit using which the driver for VxWorks can be developed for GPIB-ENET/100 converter. I would like to know if anybody has used this tool kit before to develop a driver for GPIB-ENET/100 converter. Any feedback/references would be greatly appreciated. Thanks in advance. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: RAW Socket problem Date: 26 Mar 2002 06:34:42 -0800 From: sriram_sarda@yahoo.com (Sriram) Organization: http://groups.google.com/ Message-ID: <8356dc69.0203260634.3ace34b4@posting.google.com> References: <8dff11cd.0203241908.51878995@posting.google.com> Hey Etonyc, I think recvfrom() (instead of recv()) should solve your problem. (......................Did anyone say 'bind'!!) Cheers, Sriram. --------------------------- Newsgroups: comp.os.vxworks Subject: c vs c++ (who's using which) Date: Wed, 20 Mar 2002 12:39:04 -0500 From: "Ben" Organization: RIT, Department of Computer Science Message-ID: <3c98c8c0$1@buckaroo.cs.rit.edu> I develop host libraries for an embedded components hardware company. The libraries are used under VxWorks and Windows to to provide demos and sample code to customers. We've been doing them in C, and I suggested that new libraries be written in C++, for all the obvious reasons. The response I got is that (basically) everyone else (our customers) is using C (but acknkowledgement that all the other reasons would otherwise be valid). So I just wondered how true this is. Do you use third party DSPs / components? Would you rather have software packaged with them written in C or C++? Feel free to email me directly instead of flooding the group, if you like, at "bjk4929" + "@" + "cs.rit.edu". I'll post a count / ratio summary after I've had a chance to read through the responses assuming that I get a decent sample. Ben --------------------------- Newsgroups: comp.os.vxworks Subject: Re: vxWorks system calls Date: Tue, 26 Mar 2002 15:44:42 GMT From: "Jim" Organization: Magma Communications Ltd. Message-ID: References: <1nLn8.7846$f5.527808@news> <3C9FAFEE.9020308@spamm.me.l8s.co.uk> <488e459a.0203252337.769c22cf@posting.google.com> Cool, My next question: Is there a listing of system call latencies anywhere for vxWorks (I am aware this is processor specific) ... obviously aside for memory allocation ? Jim "John" wrote in message news:488e459a.0203252337.769c22cf@posting.google.com... > Hello, > > David Laight wrote in message news:<3C9FAFEE.9020308@spamm.me.l8s.co.uk>... > > Jim wrote: > > > > > In vxworks do system call cause a context switch ? > > > > > > ... I assume no because there is no memory protection ... > > > > The new vxWorks AE might do something.... > > No, there are still no context switch required to make a system call. > If your task is in a user level application domain, then an exception > will occur, the processor mode will be set to supervisor (or equiv.), > some validation of the system call takes place and then the kernel > function is executed. The same task context is used throughout this > operation. On exit from the system call function, the return path > causes the CPU mode to be dropped back to user mode. > > Now, in a privileged application domain, the exception never occurs > and the operation proceeds exactly as it would have in 5.4 (i.e. it is > just a function call). > > > But traditionally vxWorks has not 'context' to switch! and > > nothing that is a 'system call' really. Everything is just > > a normal function call. > > > > Process switches happen on return from an ISR, or as a direct > > result of an action (eg giving a semaphore to a higher > > priority task). > > There are no "processes" in VxWorks, so I assume that you meant a task > context switch here... > > Rgds, > > John... --------------------------- Newsgroups: comp.os.vxworks Subject: WindView Questions Date: Tue, 26 Mar 2002 15:56:52 GMT From: "Jim" Organization: Magma Communications Ltd. Message-ID: <8T0o8.8950$f5.554741@news> Hello I have questions regarding windview ... most are in the manual i am sure but i fugure there's now harm asking question in case someone has better experiences than expressed in manuals ... 1.) Windview adds code where in the system? 2.) Does it tell you what function is running or what thread? - if thread then i assume it only adds extra code to context switching ... right? - if function then it adds code all over the place (function calls etc) ... right? 3.) If its tells you functions then this means your gcc must be changed for vxworks ... must be a real pain to keep compiler up to date (but thats none of my business) ... 4.) If it tells you thread then how do find out where in thread the problem code is ... does it just match up "pc" with the "ELF" core file ... 5.) Does windview add any extra threads to the system? I assume yes it does if gcc is unmodified ... Thats all for now ... cheers, Jim --------------------------- Newsgroups: comp.os.vxworks Subject: Re: How to preform periodical task except sysAuxClkRateSet() Date: 26 Mar 2002 08:13:58 -0800 From: hjb@pso.com (Hwa Jin Bae) Organization: http://groups.google.com/ Message-ID: <4cf902bf.0203260813.516548b9@posting.google.com> References: <5c074538.0203122254.56279c06@posting.google.com> <5c074538.0203131643.765b42c2@posting.google.com> <3c90a3ec@brateggebdc5.br-automation.co.at> <3C90AE69.10201@spamm.me.l8s.co.uk> <3C95E9E3.6070207@spamm.me.l8s.co.uk> <4cf902bf.0203221920.2e65f87@posting.google.com> <4cf902bf.0203240914.472936a9@posting.google.com> I agree that the code could have been written better. I am certainly not trying to defend the current code. I did not write that code, but I know who did. The person who wrote that code originally is a very good engineer. I have to assume that it was his intent to keep things that way. It was never his intent to support fine grain timer resolution with select. There are other ways of accomplishing such timing requirements in vxWorks. select was only provided as a crude way of compatibility with Unix. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: vxWorks system calls Date: 26 Mar 2002 16:32:53 GMT From: Johan Borkhuis Organization: Agere Systems Message-ID: References: <1nLn8.7846$f5.527808@news> <3C9FAFEE.9020308@spamm.me.l8s.co.uk> <488e459a.0203252337.769c22cf@posting.google.com> "Jim" wrote: > Cool, > > My next question: > > Is there a listing of system call latencies anywhere for vxWorks (I am > aware this is processor specific) ... obviously aside for memory > allocation ? WindRiver has some documents in which they provide that information. They also have the SW that produced those numbers so you can do the tests on your own HW or other HW. Groeten, Johan - -- o o o o o o o . . . _____________________________ o _____ || Johan Borkhuis | .][__n_n_|DD[ ====_____ | borkhuis@agere.com | >(________|__|_[_________]_|__________________________| _/oo OOOOO oo` ooo ooo 'o!o!o o!o!o` === VxWorks FAQ: http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html === --------------------------- Newsgroups: comp.os.vxworks Subject: Can VxWorks Solutions be applied to drive IO boards for process control !!! Date: 26 Mar 2002 08:47:20 -0800 From: avsrk@mailcity.com (Subrahmanyam Arya) Organization: http://groups.google.com/ Message-ID: <25c1993e.0203260847.60c4dc3@posting.google.com> Hello VxWorkers I am working in the area of process control and data acquistion software . I developed some solutions using Allen-Bradleys (Rockwell automations) ladder logic to read Analog Input data from their Analog modules and drive digital and real out puts of the modules provided by allen-bradley . The processor used is Microlgix 1500 . I know that VxWorks is also used for the process control and data acquistion type of applications . I went to VXWorks web site and it says so . But the question is , Since VXWorks is a real time OS runnnig on SBC , what are the IO Boards it drives , does Windriver provide the IO Boards and the drivers for them too . I could not find this info in their web site . Nor any where in the web . Or do any other vendors provide the IO boards which can be driven through this VXWorks based systems . Can any body reply with some web links which have info about who the IOboards which can be driven through VXWorks and the drivers for it . I highly appreciate your response Thanks in advance - -Subra --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Can I associate a destination with a specific interface in the routing table? Date: Tue, 26 Mar 2002 17:47:52 -0000 From: "Dave Korn" Organization: Lumber Cartel (tinlc) Members #2234-2237 (owing to browser refresh) Message-ID: References: "Liang" wrote in message news:e9720ff6.0203151216.2eb010eb@posting.google.com... > Hi, I have the following system configuration with 3 nodes (could be > more). This is a proprietary network and you can assume it has no > interaction with the outside public network. > > ------------ > | A | > | | > ------------ > A1| |A2 > | | > | | > B1| |C1 > ------------ ------------ > | B |B2 C2| C | > | |-------| | > ------------ ------------ > > Each node (A, B, C) has two Ethernet interfaces, and each interface is > connected only to an interface on the adjacent nodes, so I want to > treat them as point to point interfaces. I am trying to set up a > routing table in each node to send traffic to the other nodes. One > way to do that is to treat each point to point segment as a network, > e.g. interface A1 has IP address 1.1.1.1, B1 is 1.1.1.2, A2 is > 1.1.2.1, C1 is 1.1.2.2, etc. The problem with this is that it would > be a configuration nightmare since I need to treat each network > segment as a subnet (imagine that there are a few more nodes in the > ring, or a even a tree). I would like to assign all the nodes to the > same subnet, e.g. A is 1.1.1.1, B is 1.1.1.2, C is 1.1.1.3, and not > assign any IP address to the interface. This is a fundamental misunderstanding. Any IP address is always the address of a specific interface, not of a particular host. Each interface MUST have its own IP address. That is just the way that IP works. > By doing so, I want to set up > my routing table such that I can specify in Node A's routing table, > for example, to send traffic to destination B(1.1.1.2) using interface > A1, and C using interface A2. With this approach, however, I need a > way to associate a destination with an interface. That means I can't > use routeAdd or mRouteAdd. Now you see the advantage of having an IP address for each interface instead of just one for the entire host machine: to specify different routes. To associate a destination with an interface, you just specify the IP of that interface as the gateway for the route in question! So on A, you would say that the route to B1 and B2 is A1, and the route to C1 and C2 is A2. You could specify each host as a pretend-subnet, i.e.: 1.1.1.x = A A1 = 1.1.1.1, A2 = 1.1.1.2 1.1.2.x = B B1 = 1.1.2.1, B2 = 1.1.2.2 1.1.3.x = C C1 = 1.1.3.1, C2 = 1.1.3.2 Then on A you have a routing table like: Route 1.1.2.0 Netmask 255.255.255.0 Gateway 1.1.1.1 Route 1.1.3.0 Netmask 255.255.255.0 Gateway 1.1.1.2 and likewise for B Route 1.1.1.0 Netmask 255.255.255.0 Gateway 1.1.2.1 Route 1.1.3.0 Netmask 255.255.255.0 Gateway 1.1.2.2 and C Route 1.1.1.0 Netmask 255.255.255.0 Gateway 1.1.3.1 Route 1.1.2.0 Netmask 255.255.255.0 Gateway 1.1.3.2 With this scheme, each host is its own subnet, so it is easy to expand to a scheme where each host has more than two interfaces. And there is only one routing entry per destination host rather than one per destination netif. Note that I've devised a scheme where each host may have up to 256 netifs; in practical usage, you would not want so many netifs, and you could use smaller subnets (but don't forget to set the netmask appropriately). Your network diagram would look like: > ------------ > | A | > | 1.1.1.x | > ------------ > 1.1.1.1=A1| |A2=1.1.1.2 > | | > | | > 1.1.2.1=B1| |C1=1.1.3.1 > ------------ ------------ > | B |B2 C2| C | > | 1.1.2.x |-------| 1.1.3.x | > ------------ ------------ > B2=1.1.2.2 C2=1.1.3.2 DaveK - -- moderator of alt.talk.rec.soc.biz.news.comp.humanities.meow.misc.moderated.meow Burn your ID card! http://www.optional-identity.org.uk/ Help support the campaign, copy this into your .sig! Proud Member of the Exclusive "I have been plonked by Davee because he thinks I'm interesting" List Member # Master of Many Meowing Minions Holder of the exhalted PF Chang's Crab Wonton Award for kook spankage above and beyond the call of hilarity. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: A question about TIMER design in vxworks Date: Tue, 26 Mar 2002 17:20:31 -0000 From: "Dave Korn" Organization: Lumber Cartel (tinlc) Members #2234-2237 (owing to browser refresh) Message-ID: References: <8cd11808.0203150544.550ad069@posting.google.com> "zjh" wrote in message news:8cd11808.0203150544.550ad069@posting.google.com... > hi,all > I have to design a timer in vxworks use tickLib.h .This need myself > maintain a timer list and broke them once a tick. > I want to know the detail of timer API about Vxworks:SUCH AS > timer_create( ) > timer_start( );timer_stop( );timer_del( ) . Then I can use the API > vxworks provied. That's what the manual is for. Read it; it tells you about all the details of the APIs. I'm not going to type out page after page of the manual for you just so you can read it in a usenet post rather than in the books that came supplied with your copy of VxWorks. Maybe someone else around here will volunteer for you, but it's not very likely. >Have anyone done this thing?Can you share your > experience with me? I've used clock functions under VxWorks. They work, although on the ppc platform the posix timer routines have a bug in them that causes the clock to be reset at random intervals, which there have been various discussions on how to fix in this very group. > I also have another question on the difference of "exit( ) " between > Linux and Vxworks?Do the exit( ) close all the file have been opened? Nope, in VxWorks, exit (...) doesn't do anything for your: it doesn't close files, it doesn't even free the memory you malloced from the heap! That's because any of your other tasks might still be using the same memory or file - tasks are permitted to share in VxWorks, also unlike Linux, because they all execute in one global memory space, instead of each having their own memory space. DaveK - -- moderator of alt.talk.rec.soc.biz.news.comp.humanities.meow.misc.moderated.meow Burn your ID card! http://www.optional-identity.org.uk/ Help support the campaign, copy this into your .sig! Proud Member of the Exclusive "I have been plonked by Davee because he thinks I'm interesting" List Member # Master of Many Meowing Minions Holder of the exhalted PF Chang's Crab Wonton Award for kook spankage above and beyond the call of hilarity. --------------------------- Newsgroups: comp.os.vxworks Subject: TCP for 4K messages takes really long Date: 26 Mar 2002 11:22:52 -0800 From: kim.quinn@lmco.com (Kim Quinn) Organization: http://groups.google.com/ Message-ID: <56eaa15a.0203261122.2e46198d@posting.google.com> I'm trying to send 4K messages using TCP. I have a Gigabit Ethernet card PMC667 from Ramix and 2 MVME5100 SBCs. I'm running vxWorks 5.4.2 and Tornado 2.1. I am able to send from 1 byte up to 2K with no problem. When I hit 4K, it takes me about 15 minutes to send 5000 4K messages. Now I do receive all the messages I sent, but it takes 15 minutes! I don't think it's my Gigabit Ethernet card because I switched to use the 10 Base-T Ethernet on the front of the boards instead to see if I increased my throughput, and it did not. I don't know if there is some parameter I'm missing in the vxWorks kernel or not. I thought that it may have been the clDescTbl[] but I wasn't sure. Has anyone seen this before? If so, help please. Kim --------------------------- Newsgroups: comp.os.vxworks Subject: Default Signal Handler Date: Tue, 26 Mar 2002 21:49:06 GMT From: "Jim" Organization: Magma Communications Ltd. Message-ID: Is there a default signal handler for all threads that I can make a global change to ... Jim --------------------------- Newsgroups: comp.os.vxworks Subject: Re: malloc in a device driver. [newbie question] Date: Tue, 26 Mar 2002 22:38:59 GMT From: "Jim" Organization: Magma Communications Ltd. Message-ID: <7M6o8.9008$f5.563329@news> References: <576881c0.0203251320.5ade1f69@posting.google.com> <488e459a.0203252343.770aa97a@posting.google.com> You said malloc is illegal in ISR ... what about signal handler? Cheers, Jim "John" wrote in message news:488e459a.0203252343.770aa97a@posting.google.com... > Hello, > > google@drforehead.net (Nick Forrette) wrote in message news:<576881c0.0203251320.5ade1f69@posting.google.com>... > > In a nutshell, is it legal to allocate memory with malloc inside of a > > (character) device driver in VxWorks? > > Yes, it is perfectly legal, and quite common, to allocate memory > inside a device driver. Under VxWorks 5.4, you may use malloc(). > > For VxWorks AE you need to think a little more about where the memory > should come from: malloc() will allocate from the "current" user heap > (perhaps outside the kernel), and KHEAP_ALLOC() will allocate, as its > name suggests, from the kernel's heap space. > > > I've done some searching through the programmers guide, the windriver > > community forums, and comp.os.vxworks, but didn't see anything that > > addressed the question. > > > > Based on what I've read thus far, all code in VxWorks runs in the most > > priviledged mode of the target processor. In a more traditional > > environment, malloc would be a part of user mode libc (thus not > > readily available to a device driver). This is not the case with > > VxWorks. > > Yes, but even on those systems there is some kind of memory allocation > primitive, often with malloc-like semantics, available. > > > (NB: this won't be called from and interupt handler. It will > > only be called by the functions registered to handle > > open/close/read/write/etc). > > You've found the only restriction already; never try dynamic memory > alloc or free operations from an ISR. > > HTH, > > John... --------------------------- Newsgroups: comp.arch.embedded,comp.os.linux.embedded,comp.os.linux.powerpc,comp.os.psos,comp.os.vxworks,comp.realtime,comp.sys.arm,comp.sys.mips,comp.sys.powerpc.advocacy,comp.sys.powerpc.misc,comp.sys.powerpc.tech Subject: Re: SAB/SAF 82538 device drivers Date: Tue, 26 Mar 2002 23:16:17 -0000 From: "Dave Black" Message-ID: <1017184579.10857.0.nnrp-01.d4e44151@news.demon.co.uk> References: I wrote a driver for this device for a Seimens C167 early last year, email seimens (or what ever they are called) for the example code (only avalible on request I think), I think these devices or perhaps the 2 channel version escc2 has been used by the solaris OS. Remember this device is basically four escc2's. E = extra S = scary C= comms C= chip HTH, Dave "Rami Gideoni" wrote in message news:a7pq1k$190$1@news.inter.net.il... > Hi, > I need to write device drivers for the ESCC8 -- SAB/SAF 82538 (Enhanced > Serial Communication Controller (8 channels)) for VxWorks/PowerPC based > board. > > Any source code, ideas, hits will be most appreciated. > > Thanks in advance > > RamiG > > > > > --------------------------- Newsgroups: comp.os.vxworks Subject: vxworks_rom on Cetia VMPC6a (Tornado 2.0 NT) Date: 26 Mar 2002 16:20:08 -0800 From: static@ieee.org (Andrew Spiehler) Organization: http://groups.google.com/ Message-ID: <59b46a44.0203261620.1ae03207@posting.google.com> Hi, I'm pretty new to Vxworks and embedded systems in general. I'm having two unrelated (maybe) issues. First issue: I'm trying to configure a vxworks_rom image to reside in an 8 megabyte flash on my cetia board. I set all references in the BSP makefile, project facility, and build properties (c compiler, assembler, macros) for ROM_BASE_ADRS and ROM_TEXT_ADRS to 0xd8000000 (the bottom of flash memory on this particular board) and built the project. Then I uploaded the file with tftp and wrote it to flash memory. Then I commanded the debugger to start executing at d8000000, at which point nothing else happened. I did the above steps again, but this time changed the value to 0x02000000, a location in RAM. After uploading the file with tftp, I did a blockmove and copied the vxworks_rom data to 0x02000000 and then started executing at that address, where I assume the rom copied the data and test segments to RAM_LOW_ADRS and jumped there. Can anyone offer some explanation as to why the vxworks_rom will execute out of RAM at 0x02000000 but not flash at 0xd8000000? Am I correct in thinking that the vxworks_rom configuration will copy the text and data segments to RAM_LOW_ADRS or do I have to use a different build configuration? Second issue: How do I set the the IP address of the board if I'm not doing a network boot through the bootrom or through tftp? Does it have something to do with the DEFAULT_BOOT_LINE and if so, how do I configure the image to use the arguments in that? Andrew Spiehelr --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Can VxWorks Solutions be applied to drive IO boards for process control !!! Date: Tue, 26 Mar 2002 19:32:54 -0500 From: joe durusau Organization: BELLSOUTH.net Message-ID: <3CA11336.2BD6A41E@bellsouth.net> References: <25c1993e.0203260847.60c4dc3@posting.google.com> Subrahmanyam Arya wrote: > Hello VxWorkers > > I am working in the area of process control and data acquistion > software . > I developed some solutions using Allen-Bradleys (Rockwell automations) > ladder > logic to read Analog Input data from their Analog modules and drive > digital and real out puts of the modules provided by allen-bradley . > The processor used is > Microlgix 1500 . > > I know that VxWorks is also used for the process control and data > acquistion type of applications . I went to VXWorks web site and it > says so . > > But the question is , Since VXWorks is a real time OS runnnig on SBC > , what are the IO Boards it drives , does Windriver provide the IO > Boards and the drivers for them too . I could not find this info in > their web site . > Nor any where in the web . > Or do any other vendors provide the IO boards which can be driven > through this > VXWorks based systems . > > Can any body reply with some web links which have info about who the > IOboards which can be driven through VXWorks and the drivers for it . > > I highly appreciate your response > > Thanks in advance > -Subra In general, WRS provides the OS and development tools. Anything else you get from a board vendor or roll your own. Usually, not too hard. You might look at www.vita.com if you are interested in VME IO boaards as such. Speaking only for myself, Joe Durusau --------------------------- Newsgroups: comp.os.vxworks Subject: keyboard timeout - need some help Date: 26 Mar 2002 17:10:37 -0800 From: mark_ck_chang@yahoo.com (Mark Chang) Organization: http://groups.google.com/ Message-ID: <9b6f8883.0203261710.56f9ef6c@posting.google.com> I have a keyboard timeout for my CLI in Vxworks 5.3. The code is like this do { numReady = select(FD_SETSIZE, &readFds, NULL, NULL, &tclSelectTimeout); if (numReady==0) { FD_ZERO(&readFds); FD_SET(stdInFd, &readFds); if (tclSelectTimeout.tv_sec >= (long) 60) { printf("Interface will timeout in 60 seconds.\n"); tclSelectTimeout.tv_sec = (long) 30; } else if (tclSelectTimeout.tv_sec == (long) 30) { printf("Interface will timeout in 30 seconds.\n"); tclSelectTimeout.tv_sec = (long) 20; } else if (tclSelectTimeout.tv_sec == (long) 20) { printf("Interface will timeout in 10 seconds.\n"); tclSelectTimeout.tv_sec = (long) 10; /* if timeout reached 0, exit out of CLI */ } else if (tclSelectTimeout.tv_sec == (long) 10) { strcpy (str,"exit"); return; } } } while (numReady==0); onechar = &onecharbuff; /* read the buffer, could be 1 character or more since * ethernet will trigger select once for an entire package via * scripts, so we need to read the buffer until EOF/empty (numReady=0) */ do { numReady = read (stdInFd,onechar,1); ch = *onechar; /* if we get a ESC character, read the next one */ if (ch == D_ESC) { snip } while ( numReady != 0 ); The problem I have is that if the user hits one key or several with a CR/LF, the routines of course ends up in the second loop and my timeout never happens. I couldn't just use a read loop because for some reason, it would not return from the read if the data (keyboard input) were from ethernet (Telnet) It would wait until a cr/lf was detected before coming out of it. The select works so that's why I'm using it. I could use some ideas on how to get my timeout to work with the above case (1 key or more hit w/o cr/lf) Thanks, Mark --------------------------- Newsgroups: comp.os.vxworks Subject: select and pty Date: 26 Mar 2002 18:23:25 -0800 From: dsa0000@hotmail.com (dsa) Organization: http://groups.google.com/ Message-ID: I have some problem regarding select and pty fds. In main task I created two pty fds and passed the slave pty fd to a spwaned task which does nothing but echo. ptyDrv (); ptyDevCreate ("/pty/s.", 512, 512); open ("/pty/s.M",, O_RDWR, 0); open ("/pty/s.S",, O_RDWR, 0); The main task pends on a select which multiplexes a client socket and master pty fd. I could verify that the data is read from the client socket and wrote to the master fd. The spawned task reads from the slave fd and writes back to the slave fd. But in the main task the select is still pending. Whether is there known issues with select and pty in vxworks ? or whether I am doing some thing wrong ? Regards DSA --------------------------- Newsgroups: comp.os.vxworks Subject: IPC communication between agent and External application Date: 26 Mar 2002 22:45:12 -0800 From: sharvan_fr@yahoo.com (Sarvanan) Organization: http://groups.google.com/ Message-ID: Hi all, Iam using SNMP agent ported to vxworks .The agent is a NETWORK manangement for the Target board. For interaction with the hardware i need to design an wrapper application which acts as an interface between the agent and the hardware API's device drivers. Can any one give me some idea how to achieve this type of communication in Real Time system. snmpAgent <===> Wrapper Application <====>Hardware Api's(gives STATUS). Thanks in advance , chanemouganandam. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: ISR not Working - IBM PPC405GP Date: 26 Mar 2002 23:38:33 -0800 From: arun4vxworks@indiatimes.com (Arun Prasad) Organization: http://groups.google.com/ Message-ID: References: <9f1c83d3.0203220846.364bd946@posting.google.com> Hi, Thank you for your reply. Special thanks to Michael Lawnick, who's giving valueable tips and suggestions on these issues. When I enable my device's interrrupt (intEnable()) system getting freezed. We are suspecting DMA modules on this regard. It would be helpful if anyone could give me some tips on debugging ISR and on debugging freezing system. Regards Arun venkat@peribit.com (V. R. Venkataramana) wrote in message news:<9f1c83d3.0203220846.364bd946@posting.google.com>... > Hi Arun, > This is the essence of interrupt handler logic. Hope this helps! > Thanks, Venkat > > void ProcessIsrEvent (SEM_ID sem_id) > { > while ( 1 ) > { > if ( semTake (sem_id, WAIT_FOREVER) == ERROR ) > { > printf("semTake error"); > } > process the interrupt > enable the interrupt > } > } > > void IntSvcRtn (SEM_ID sem_id ) > { > /* > * Figure out if the interrupt is for you and save interrupt > * status info > */ > > if ( interrupt is for you) > { > disable the interrupt > semGive (sem_id); > intr_got++; > } > } > > > void intr_init(int intnum) > { > int intvec = intnum + 0x20; > > /* > * Initiailze all the things that you want to do including > * the driver related stuff. > */ > > IsrSyncSem = semBCreate ( SEM_Q_FIFO, SEM_EMPTY ); > taskSpawn("Test Isr", PRIORITY, 0, 20*1024, > (FUNCPTR) ProcessIsrEvent, > (int)IsrSyncSem,0,0,0,0,0,0,0,0,0 ); > > if (pciIntConnect(INUM_TO_IVEC(intvec), (VOIDFUNCPTR)IntSvcRtn, > (int)IsrSyncSem) == ERROR) > { > printf("intconnect Failed"); > } > > /* Initialize everything you are suppose to, just before enabling > * the PIC for receiving interrupts > */ > sysIntEnablePIC (intnum); > } > > > > --------------------------- Newsgroups: comp.os.vxworks Subject: pciDeviceShow() shows 2 devices when there's only one IBM PPC405GP Date: 26 Mar 2002 23:47:16 -0800 From: arun4vxworks@indiatimes.com (Arun Prasad) Organization: http://groups.google.com/ Message-ID: Hi, I'm facing a problem and couldn't figure it out why it happens. I have a NIC card connected to my walnut machine, for which we are writing device driver. When I use pciDeviceShow() function, it shows there are two of my cards present on the system and they only differ in device (of BDF). But I have only one card connected to the system. Also pciFindDevice() getting succeeded for both of these devices. In the given output 2nd and 3rd entries are our card's. ======== Scanning function 0 of each PCI device on bus 0 Using configuration mechanism 0 bus device function vendorID deviceID class 00000000 00000000 00000000 00001014 00000156 00060000 00000000 00000004 00000000 0000143a 00004e53 00028000 00000000 00000014 00000000 0000143a 00004e53 00028000 ======== Could anyone tell me why this strange behaviour happens to our card on VxWorks? Regards Arun --------------------------- Newsgroups: comp.os.vxworks Subject: Re: select and pty Date: 27 Mar 2002 00:49:45 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203270049.12b0fc87@posting.google.com> References: Hello, You have found something a little unusual... try swapping your master and slave fds over and it should work; i.e. select the slave and use the master side in the echoing task. I suggest filing this as a problem report with support, and if you can get away with just swapping the master and slave ends over for your app, do that. HTH, John... dsa0000@hotmail.com (dsa) wrote in message news:... > I have some problem regarding select and pty fds. > In main task I created two pty fds and passed the > slave pty fd to a spwaned task which does nothing but echo. > > ptyDrv (); > ptyDevCreate ("/pty/s.", 512, 512); > open ("/pty/s.M",, O_RDWR, 0); > open ("/pty/s.S",, O_RDWR, 0); > > The main task pends on a select which multiplexes a client > socket and master pty fd. > > I could verify that the data is read from the client socket and wrote to > the master fd. The spawned task reads from the slave fd and writes back > to the slave fd. But in the main task the select is still pending. > > Whether is there known issues with select and pty in vxworks ? > > or whether I am doing some thing wrong ? > > Regards > DSA --------------------------- Newsgroups: comp.os.vxworks Subject: Re: malloc in a device driver. [newbie question] Date: 27 Mar 2002 01:11:18 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203270111.b14b5e0@posting.google.com> References: <576881c0.0203251320.5ade1f69@posting.google.com> <488e459a.0203252343.770aa97a@posting.google.com> <7M6o8.9008$f5.563329@news> Hello, "Jim" wrote in message news:<7M6o8.9008$f5.563329@news>... > You said malloc is illegal in ISR ... what about signal handler? malloc() should cause no problems in signal handlers since they are executed in a task's context always. Rgds, John... > Cheers, > Jim > > "John" wrote in message > news:488e459a.0203252343.770aa97a@posting.google.com... > > Hello, > > > > google@drforehead.net (Nick Forrette) wrote in message > news:<576881c0.0203251320.5ade1f69@posting.google.com>... > > > In a nutshell, is it legal to allocate memory with malloc inside of a > > > (character) device driver in VxWorks? > > > > Yes, it is perfectly legal, and quite common, to allocate memory > > inside a device driver. Under VxWorks 5.4, you may use malloc(). > > > > For VxWorks AE you need to think a little more about where the memory > > should come from: malloc() will allocate from the "current" user heap > > (perhaps outside the kernel), and KHEAP_ALLOC() will allocate, as its > > name suggests, from the kernel's heap space. > > > > > I've done some searching through the programmers guide, the windriver > > > community forums, and comp.os.vxworks, but didn't see anything that > > > addressed the question. > > > > > > Based on what I've read thus far, all code in VxWorks runs in the most > > > priviledged mode of the target processor. In a more traditional > > > environment, malloc would be a part of user mode libc (thus not > > > readily available to a device driver). This is not the case with > > > VxWorks. > > > > Yes, but even on those systems there is some kind of memory allocation > > primitive, often with malloc-like semantics, available. > > > > > (NB: this won't be called from and interupt handler. It will > > > only be called by the functions registered to handle > > > open/close/read/write/etc). > > > > You've found the only restriction already; never try dynamic memory > > alloc or free operations from an ISR. > > > > HTH, > > > > John... --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Default Signal Handler Date: 27 Mar 2002 01:15:59 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203270115.56ab7567@posting.google.com> References: Hello, "Jim" wrote in message news:... > Is there a default signal handler for all threads that I can make a global > change to ... No. You can catch all exceptions though via a hook routine if that is what you are hoping to achieve. HTH, John... --------------------------- Newsgroups: comp.os.vxworks Subject: Re: TCP for 4K messages takes really long Date: 27 Mar 2002 01:31:58 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203270131.1a819701@posting.google.com> References: <56eaa15a.0203261122.2e46198d@posting.google.com> Hello, Some things you should consider: 1) The buffer sizes for the network stack... check out this app note from WindSurf for information on this: http://www.windriver.com/windsurf/appnotes/osExtensions/pjworks/APN51/WTN51.pdf You can ignore the fact that it is a PJWorks app note, the network configuration techniques are the same for all network intensive operations. 2) In addition to the core stack config, you should check the number of receive and transmit buffers allocated to the network driver. These are set, if configurable, via the driver's load string. This is either in configNet.h, or sometimes dynamically created in a sysXXX.c file. HTH, John... kim.quinn@lmco.com (Kim Quinn) wrote in message news:<56eaa15a.0203261122.2e46198d@posting.google.com>... > I'm trying to send 4K messages using TCP. I have a Gigabit Ethernet > card > PMC667 from Ramix and 2 MVME5100 SBCs. I'm running vxWorks 5.4.2 and > Tornado 2.1. I am able to send from 1 byte up to 2K with no > problem. > When I hit 4K, it takes me about 15 minutes to send 5000 4K messages. > Now I > do receive all the messages I sent, but it takes 15 minutes! > I don't think it's my Gigabit Ethernet card because I switched to use > the 10 Base-T Ethernet on the front of the boards instead to see if I > increased my throughput, and it did not. I don't know > if there is some parameter I'm missing in the vxWorks kernel or not. > I thought that it may have been the clDescTbl[] but I wasn't sure. > Has anyone seen this before? If so, help please. > > Kim --------------------------- Newsgroups: comp.os.vxworks Subject: VxOPC with Wonderware Date: 27 Mar 2002 01:32:53 -0800 From: techsoul2001@yahoo.com (raghuram) Organization: http://groups.google.com/ Message-ID: vxworks Hi, We are planning to build a vxworks SBC for some process control applications. For the GUI we are currently envisaging Wonderware's Intouch product. Wonderware supports OPC. I would like to know if anybody has ever used vxOPC to interface Wonderware's InTouch SCADA Software with vxworks SBCs. Any references or pointers would be greatly appreciated. Thanks in advance. --------------------------- Newsgroups: comp.os.vxworks Subject: porting LINUX driver to vxWorks Date: Wed, 27 Mar 2002 10:41:47 +0100 From: "Michael Lawnick" Organization: Buergernetz Dillingen Message-ID: Reply-To: "Michael Lawnick" Sender: mlawnick@p5088fccb.dip.t-dialin.net Hi all, I am trying to port LINUX (red hat) Journaling Flash File System (JFFS/JFFS2). Looking into JFFS sources, it seems that the architecture of LINUX virtual file system / driver is very different to vxWorks. I am lost hopelessly, as I don't know anything about LINUX-internals. Has anbody already done that port or can anybody point me in a direction to understand the LINUX side of the problem ? For the LINUX-experts that don't know vxWorks: vxWorks mainly uses a DOS compatible filesystem basing on block-devices. All non-DOS-devices have to implement their own FS. A device is attached to the system by forwarding the function pointers of creat(), open(), read(), write(), ioctl(), close() and delete(). I have found something similiar in JFFS-sources. But there seem to exist callbacks to VFS concerning iNodes and others. The problem seems to be: which parts of VFS have to be put to JFFS to get an driver satisfying the interface of VxWorks ? Or am I on the wrong trail ? Any hint would be appreciated Reinhold Wirth Please don't use the reply-address, but answer to wirth@softec.de --------------------------- Newsgroups: comp.os.vxworks Subject: Re: WindView Questions Date: 27 Mar 2002 02:04:21 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203270204.2f44977@posting.google.com> References: <8T0o8.8950$f5.554741@news> Hello, "Jim" wrote in message news:<8T0o8.8950$f5.554741@news>... > Hello I have questions regarding windview ... most are in the manual i am > sure but i fugure there's now harm asking question in case someone has > better experiences than expressed in manuals ... Have you bought VxWorks, or are you still thinking about it? If the latter, you should get an FAE to come and talk to you - that would get you answers to a lot of these questions much quicker than posting the questions here one at a time... You could also get an eval copy - either from the FAE, or simply download the prototyper from the Wind River web site. > 1.) Windview adds code where in the system? There is instrumentation code in key places in the system. Most of the time this instrumentation is not executed (apart from a test to see if it is enabled). You can switch on each class of instrumentation individually, or enable the lot - your choice. > 2.) Does it tell you what function is running or what thread? > - if thread then i assume it only adds extra code to context > switching ... right? > - if function then it adds code all over the place (function calls > etc) ... right? It records three things: the event time (using a high resolution timestamp driver), the type of event (e.g. semGive, ISR entry, context switch), and some data about the event (exact data depends on the event type, but typically includes the ID of the task and any other object ID, such as a semaphore ID, associated with the event). > 3.) If its tells you functions then this means your gcc must be changed for > vxworks ... must be a real pain to keep compiler up to date (but thats none > of my business) ... There are no changes to the compiler, or any other GNU tools, to support WindView. > 4.) If it tells you thread then how do find out where in thread the problem > code is ... does it just match up "pc" with the "ELF" core file ... WindView doesn't magically record problems. What it records is key events in the system (including user defined events in the newer versions), and some data about them. When displayed in the host tool the resulting graph shows you what was executing at any time, and all the events that you enabled. Like a hardware logic analyser, it can also be set to start recording by a trigger event, or it can just record from when you start it. With some careful filtering and a good trigger definition you should be able to focus on a problem area and see if there are timing issues (e.g. deadlocks) in your application. > 5.) Does windview add any extra threads to the system? I assume yes it does > if gcc is unmodified ... Normally there is an upload task to get the data up to the development host, but I believe that it can run without any tasks when running in "post-mortem" mode. HTH, John... --------------------------- Newsgroups: comp.os.vxworks Subject: Re: keyboard timeout - need some help Date: 27 Mar 2002 02:06:01 -0800 From: tut_pharoh@yahoo.com (tutankhamun) Organization: http://groups.google.com/ Message-ID: <88c8dc81.0203270206.55eddf@posting.google.com> References: <9b6f8883.0203261710.56f9ef6c@posting.google.com> mark_ck_chang@yahoo.com (Mark Chang) wrote in message news:<9b6f8883.0203261710.56f9ef6c@posting.google.com>... > I have a keyboard timeout for my CLI in Vxworks 5.3. > The code is like this > > do { > numReady = select(FD_SETSIZE, &readFds, NULL, NULL, &tclSelectTimeout); > if (numReady==0) { > FD_ZERO(&readFds); > FD_SET(stdInFd, &readFds); > if (tclSelectTimeout.tv_sec >= (long) 60) { > printf("Interface will timeout in 60 seconds.\n"); > tclSelectTimeout.tv_sec = (long) 30; > } else if (tclSelectTimeout.tv_sec == (long) 30) { > printf("Interface will timeout in 30 seconds.\n"); > tclSelectTimeout.tv_sec = (long) 20; > } else if (tclSelectTimeout.tv_sec == (long) 20) { > printf("Interface will timeout in 10 seconds.\n"); > tclSelectTimeout.tv_sec = (long) 10; > /* if timeout reached 0, exit out of CLI */ > } else if (tclSelectTimeout.tv_sec == (long) 10) { > strcpy (str,"exit"); > return; > } > } > } while (numReady==0); > > onechar = &onecharbuff; > > /* read the buffer, could be 1 character or more since > * ethernet will trigger select once for an entire package via > * scripts, so we need to read the buffer until EOF/empty (numReady=0) */ > do { > numReady = read (stdInFd,onechar,1); > ch = *onechar; > /* if we get a ESC character, read the next one */ > if (ch == D_ESC) { > > snip > > } while ( numReady != 0 ); > > The problem I have is that if the user hits one key or > several with a CR/LF, the routines of course ends > up in the second loop and my timeout never happens. > > I couldn't just use a read loop because for some reason, > it would not return from the read if the data (keyboard input) > were from ethernet (Telnet) It would wait until a cr/lf > was detected before coming out of it. > > The select works so that's why I'm using it. > > I could use some ideas on how to get my timeout to work > with the above case (1 key or more hit w/o cr/lf) > > Thanks, > Mark This is because your serial I/O is by default configured in "terminal" mode, wherein all the reads on stdins would block until user hits CR/LF. All you need to do is get your serial I/O in "raw" mode, so you have full control over it. Add the following statement just before you start your select loop, and see what happens. ioctl(STD_IN, FIOSETOPTIONS, OPT_RAW); hope this helps, tut --------------------------- Newsgroups: comp.os.vxworks Subject: how to bind a pppoe service to multi ethernet port ? Date: 27 Mar 2002 02:18:06 -0800 From: sardine_sz@163.net (sardine) Organization: http://groups.google.com/ Message-ID: how to bind a pppoe service to multi ethernet port ? --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Porting a board to Vxworks? Date: 27 Mar 2002 02:28:13 -0800 From: rajaismyname@yahoo.com (Raja Ganesan) Organization: http://groups.google.com/ Message-ID: <1a047b5a.0203270228.2f84109e@posting.google.com> References: <1a047b5a.0203220236.37215514@posting.google.com> Markus Pietrek wrote in message news:... > Raja Ganesan wrote: > > > "Porting a board to Vxworks", What does this mean? > > what are the steps that should be follwed for porting the board to > > Vxworks. would anyone detail it. > > Expecting your help. > > Depending on the BSPs you have or you may get it means little or a lot of > work. If you are lucky you have similar boards and just have to change the > memory addresses and/or chip selects in some few source files. > > > But if you are unlucky you have the necessary libraries (e.g. x86 or > ARM7TDMI based) but have to adapt or redevelop the timers, interrupt > handlers, cache management, ethernet and serial drivers by yourself. > > For more detailed answers please give more details. > > Bye, > Markus Pietrek Hi Marcus, Thank you very much for the prompt response for my query. I am investigating on the feasibility of developing a BSP for a PowerPC based evaluation board for VxWorks. Unfortunately, I don’t have much experience in the field of BSP development. However, now I am into it and I would like to get some guidelines as to 1. how to go about it 2. what are the different steps involved in it 3. what are the tools that I can make use of 4. roughly how much time and effort I will have to put into it. Meanwhile, the board is based on PowerPC 750CX and is a custom made one with facilities for almost all kinds of peripheral support such as PCI bus, AGP, IDE Master controller, floppy controller, PS/2 keyboard and mouse, serial and parallel ports, audio/modem, game port and DIMM slot. It is running on PowerPC Linux. The whole job is porting this board to VxWorks as BSP. Regards Raja --------------------------- Newsgroups: comp.os.vxworks Subject: semBCreate() Date: Wed, 27 Mar 2002 10:46:02 -0000 From: "lang2" Organization: WHAT Message-ID: Hi all, This function can create a binary semaphore with SEM_Q_FIFO or SEM_Q_PRIORITY. But is the semaphore created recursive? Thnx --------------------------- Newsgroups: comp.os.vxworks Subject: I want to initialize board(MPC107) through the EEPROM Date: 27 Mar 2002 02:44:33 -0800 From: emycall@dreamx.net (Ahn Jung Hoon) Organization: http://groups.google.com/ Message-ID: <2b0ae335.0203270244.47a017df@posting.google.com> Hi, all. I meet new project, but I am new at vxworks. So I don't know how I start to solve the problem.. Simply, My project is "I2C interface driver writing on MPC107".. Namely, I want to initialize board(MPC107) through the EEPROM. Can anyboy let me understand in most easiest way what and how I do..?? so I want to receive some manual, open source, html link and so on please help me...!!! Post a follow-up to this --------------------------- Newsgroups: comp.os.vxworks Subject: Re: pciDeviceShow() shows 2 devices when there's only one IBM PPC405GP Date: 27 Mar 2002 03:52:42 -0800 From: vittala@hotmail.com (Vittal) Organization: http://groups.google.com/ Message-ID: <6847c39a.0203270352.13d8cdb8@posting.google.com> References: Hi Arun, As you see from the listing, the device numbers in the two entries are different. one is 4 and the other is 14. So, it could be the case where in you have 2 devices on the same card. Check out the card's hardware manual to confirm this. Hope this helps you and let me know if it is true. regards, Vittal. arun4vxworks@indiatimes.com (Arun Prasad) wrote in message news:... > Hi, > > I'm facing a problem and couldn't figure it out why it happens. > I have a NIC card connected to my walnut machine, for which we are > writing device driver. > When I use pciDeviceShow() function, it shows there are two of my > cards present on the system and they only differ in device (of BDF). > But I have only one card connected to the system. Also pciFindDevice() > getting succeeded for both of these devices. > In the given output 2nd and 3rd entries are our card's. > > ======== > Scanning function 0 of each PCI device on bus 0 > Using configuration mechanism 0 > bus device function vendorID deviceID class > 00000000 00000000 00000000 00001014 00000156 00060000 > 00000000 00000004 00000000 0000143a 00004e53 00028000 > 00000000 00000014 00000000 0000143a 00004e53 00028000 > ======== > > Could anyone tell me why this strange behaviour happens to our card > on VxWorks? > > Regards > Arun --------------------------- End of New-News digest ********************** From vxwexplo-errs@csg.lbl.gov Thu Mar 28 04:03:29 2002 From: Vxworks Exploder Date: Thu Mar 28 04:03:32 PST 2002 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Thu Mar 28 04:03:23 PST 2002 Subject: Re: semBCreate() Subject: Re: semBCreate() Subject: Re: How to preform periodical task except sysAuxClkRateSet() Subject: Re: malloc in a device driver. [newbie question] Subject: Re: pciDeviceShow() shows 2 devices when there's only one IBM PPC405GP Subject: Re: malloc in a device driver. [newbie question] Subject: Re: Default Signal Handler Subject: Re: WindView Questions Subject: Re: semBCreate() Subject: why ping request timed out Subject: Re: porting LINUX driver to vxWorks Subject: Anyone using VxWorks Radius implementation Subject: Re: semBCreate() Subject: Re: porting LINUX driver to vxWorks Subject: Re: usrLib api's in bootrom Subject: Re: semBCreate() Subject: Re: pciDeviceShow() shows 2 devices when there's only one IBM PPC405GP Subject: Re: semBCreate() Subject: DosFs File Attributes Subject: Re: semBCreate() Subject: Re: keyboard timeout - need some help Subject: Re: malloc in a device driver. [newbie question] Subject: Re: DosFs File Attributes Subject: Re: semBCreate() Subject: Re: The "unsupported" WRS Telnet server hanging Subject: modifying configlettes` Subject: Re: semBCreate() Subject: PCI interrupt routines Subject: Re: ipAttach - c vs c++ Subject: Re: Anybody ported openssh to vxworks ? Any issues ? Subject: Re: why ping request timed out Subject: Re: dosFs2 and DOS_VOL_CONFIG Subject: Re: how to bind a pppoe service to multi ethernet port ? Subject: Re: malloc in a device driver. [newbie question] Subject: Re: vxWorks system calls Subject: Re: Default Signal Handler Subject: Re: pciDeviceShow() shows 2 devices when there's only one IBM PPC405GP Subject: Re: select and pty Subject: Question about tScsiTask Subject: About mpc860t's SCC working for E1 line!Help! Subject: windNet PPP&PPPOE1.2 ,how to bind pppoe service to Multi Ethernet Port ? Subject: how to use envoy in tornado? Subject: SAB 82532/82538 device drivers Subject: BSD and END device drivers Subject: Can I kill a task in itself? Subject: How to Communicate between Two vxsim Targets in Windows 2000 Subject: Re: BSD and END device drivers Subject: why vxworks PING makes the system slow in winnt ?? Subject: where can I find the driver of 82559? Subject: Re: BSD and END device drivers Subject: Re: select and pty Subject: Re: modifying configlettes` Subject: Re: BSD and END device drivers Subject: Reboot Target error Subject: Re: semBCreate() Subject: Re: DosFs File Attributes Subject: Re: modifying configlettes` Subject: Re: modifying configlettes` Subject: Re: PCI interrupt routines Subject: Re: Can I kill a task in itself? Subject: Re: DosFs File Attributes Subject: Re: ipAttach - c vs c++ Subject: Re: PCI interrupt routines Subject: Re: Can I kill a task in itself? Subject: Re: CLI Parser for VxWorks Subject: Re: using CLI commands from file Subject: rlogin client puts stdout to shell session Subject: Re: rlogin client puts stdout to shell session Subject: Establishing ppp Connection between vxWorks and windows2000 ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Re: semBCreate() Date: Wed, 27 Mar 2002 03:58:56 -0800 From: Bob Bradley Organization: Uh huh huh...It says Organ Message-ID: References: In article , "lang2" wrote: > This function can create a binary semaphore with SEM_Q_FIFO or > SEM_Q_PRIORITY. > But is the semaphore created recursive? No, but if you need a recursive semaphore, you can use semMCreate. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: semBCreate() Date: Wed, 27 Mar 2002 12:23:42 -0000 From: "lang2" Organization: WHAT Message-ID: References: "Bob Bradley" wrote in message news:bob-A0B288.03585627032002@news.apple.com... > In article , > "lang2" wrote: > > > This function can create a binary semaphore with SEM_Q_FIFO or > > SEM_Q_PRIORITY. > > But is the semaphore created recursive? > > No, but if you need a recursive semaphore, you can use semMCreate. I looked up the reference, semMCreate can take the following options: SEM_Q_PRIORITY SEM_Q_FIFO SEM_DELETE_SAFE SEM_INVERSION_SAFE. I can't find an recurrsive option there. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: How to preform periodical task except sysAuxClkRateSet() Date: Wed, 27 Mar 2002 12:25:06 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3CA1BA96.1060706@spamm.me.l8s.co.uk> References: <5c074538.0203122254.56279c06@posting.google.com> <5c074538.0203131643.765b42c2@posting.google.com> <3c90a3ec@brateggebdc5.br-automation.co.at> <3C90AE69.10201@spamm.me.l8s.co.uk> <3C95E9E3.6070207@spamm.me.l8s.co.uk> <4cf902bf.0203221920.2e65f87@posting.google.com> <4cf902bf.0203240914.472936a9@posting.google.com> <4cf902bf.0203260813 Hwa Jin Bae wrote: > I agree that the code could have been written better. I am certainly > not trying to defend the current code. I did not write that code, but > I know who did. The person who wrote that code originally is a very > good engineer. I have to assume that it was his intent to keep things > that way. It was never his intent to support fine grain timer > resolution with select. There are other ways of accomplishing such > timing requirements in vxWorks. select was only provided as a crude > way of compatibility with Unix. > Actually I expect it was written assuming a tick of around 60-100Hz. Writing it to support arbitrary fast ticks is quite hard. OTOH if unsigned arithmetic had been done then select() would only ever return early. In some senses the problem is that the restriction on the clock rate isn't documented anywhere. If select used unsigneds then a 4k clock is fine - which is probbaly faster than most people want. David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: malloc in a device driver. [newbie question] Date: Wed, 27 Mar 2002 12:34:07 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3CA1BCB2.1040500@spamm.me.l8s.co.uk> References: <576881c0.0203251320.5ade1f69@posting.google.com> <488e459a.0203252343.770aa97a@posting.google.com> <7M6o8.9008$f5.563329@news> <488e459a.0203270111.b14b5e0@posting.google.com> John wrote: > Hello, > > "Jim" wrote in message news:<7M6o8.9008$f5.563329@news>... > >>You said malloc is illegal in ISR ... what about signal handler? >> > > malloc() should cause no problems in signal handlers since they are > executed in a task's context always. That isn't enough... malloc() uses a semaphore to protect the free list, Consider what happens if an interrupt happens with the semaphore held and causes a signal handler to run for that task (eg a posix timer). If the signal handler tries to call malloc() it will lock on the semaphore. So you can't call malloc froma signal handler. Even Unix has very tight restrictions on what a signal handler can do - it is almost limited to setting an entire volatile global variable. Many many signal handlers do dangerous things, and usually get away with it. David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: pciDeviceShow() shows 2 devices when there's only one IBM PPC405GP Date: Wed, 27 Mar 2002 12:39:57 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3CA1BE10.1080306@spamm.me.l8s.co.uk> References: <3CA1B3B7.89A1A579@ineoquest.com> George Varndell wrote: > Arun Prasad wrote: > >>Hi, >> >> I'm facing a problem and couldn't figure it out why it happens. >> I have a NIC card connected to my walnut machine, for which we are >>writing device driver. >> When I use pciDeviceShow() function, it shows there are two of my >>cards present on the system and they only differ in device (of BDF). >>But I have only one card connected to the system. Also pciFindDevice() >>getting succeeded for both of these devices. >> In the given output 2nd and 3rd entries are our card's. >> >>======== >>Scanning function 0 of each PCI device on bus 0 >>Using configuration mechanism 0 >>bus device function vendorID deviceID class >>00000000 00000000 00000000 00001014 00000156 00060000 >>00000000 00000004 00000000 0000143a 00004e53 00028000 >>00000000 00000014 00000000 0000143a 00004e53 00028000 >>======== >> >> Could anyone tell me why this strange behaviour happens to our card >>on VxWorks? >> >> > > I would assume your mechanism 0 PCI configuration access function is > flawed > in some way causing identical coding of device ID 4 and device ID 14. It is possible that you system doesn't generate different PCI config cycles for devices d and d = 0x10. I've seen this before on some PC motherboards. If the accesses are done though the BIOS then it SHOULD error requests for devices 0x10 to 0x1f - but ours didn't. We had to kill the extra devices during system startup. Dunno how to stop vxWorks probing devices 0x10 to 0x1f though.... David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: malloc in a device driver. [newbie question] Date: Wed, 27 Mar 2002 13:29:12 GMT From: "Jim" Organization: Magma Communications Ltd. Message-ID: References: <576881c0.0203251320.5ade1f69@posting.google.com> <488e459a.0203252343.770aa97a@posting.google.com> <7M6o8.9008$f5.563329@news> <488e459a.0203270111.b14b5e0@posting.google.com> <3CA1BCB2.1040500@spamm.me.l8s.co.uk> So its seems it is not allowed to do this? Or can I do it ... but its generaly a bad idea? "David Laight" wrote in message news:3CA1BCB2.1040500@spamm.me.l8s.co.uk... > John wrote: > > > Hello, > > > > "Jim" wrote in message news:<7M6o8.9008$f5.563329@news>... > > > >>You said malloc is illegal in ISR ... what about signal handler? > >> > > > > malloc() should cause no problems in signal handlers since they are > > executed in a task's context always. > > That isn't enough... > malloc() uses a semaphore to protect the free list, > Consider what happens if an interrupt happens with the > semaphore held and causes a signal handler to run > for that task (eg a posix timer). > If the signal handler tries to call malloc() it > will lock on the semaphore. > > So you can't call malloc froma signal handler. > > Even Unix has very tight restrictions on what a signal > handler can do - it is almost limited to setting an > entire volatile global variable. Many many signal > handlers do dangerous things, and usually get away with it. > > David > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Default Signal Handler Date: Wed, 27 Mar 2002 13:32:50 GMT From: "Jim" Organization: Magma Communications Ltd. Message-ID: <6Sjo8.9059$f5.588439@news> References: <488e459a.0203270115.56ab7567@posting.google.com> what i want to do is boot my system ... and have new tasks use "default hadlers" that i determine for each signal ... is this possible? Thnx, Jim "John" wrote in message news:488e459a.0203270115.56ab7567@posting.google.com... > Hello, > > "Jim" wrote in message news:... > > Is there a default signal handler for all threads that I can make a global > > change to ... > > No. You can catch all exceptions though via a hook routine if that is > what you are hoping to achieve. > > HTH, > > John... --------------------------- Newsgroups: comp.os.vxworks Subject: Re: WindView Questions Date: Wed, 27 Mar 2002 13:41:54 GMT From: "Jim" Organization: Magma Communications Ltd. Message-ID: References: <8T0o8.8950$f5.554741@news> <488e459a.0203270204.2f44977@posting.google.com> We have bought vxWorks ... I am just looking into some of the features I have not had the opportunity to take advantage of ... Jim "John" wrote in message news:488e459a.0203270204.2f44977@posting.google.com... > Hello, > > "Jim" wrote in message news:<8T0o8.8950$f5.554741@news>... > > Hello I have questions regarding windview ... most are in the manual i am > > sure but i fugure there's now harm asking question in case someone has > > better experiences than expressed in manuals ... > > Have you bought VxWorks, or are you still thinking about it? If the > latter, you should get an FAE to come and talk to you - that would get > you answers to a lot of these questions much quicker than posting the > questions here one at a time... > > You could also get an eval copy - either from the FAE, or simply > download the prototyper from the Wind River web site. > > > 1.) Windview adds code where in the system? > > There is instrumentation code in key places in the system. Most of the > time this instrumentation is not executed (apart from a test to see if > it is enabled). You can switch on each class of instrumentation > individually, or enable the lot - your choice. > > > 2.) Does it tell you what function is running or what thread? > > - if thread then i assume it only adds extra code to context > > switching ... right? > > - if function then it adds code all over the place (function calls > > etc) ... right? > > It records three things: the event time (using a high resolution > timestamp driver), the type of event (e.g. semGive, ISR entry, context > switch), and some data about the event (exact data depends on the > event type, but typically includes the ID of the task and any other > object ID, such as a semaphore ID, associated with the event). > > > 3.) If its tells you functions then this means your gcc must be changed for > > vxworks ... must be a real pain to keep compiler up to date (but thats none > > of my business) ... > > There are no changes to the compiler, or any other GNU tools, to > support WindView. > > > 4.) If it tells you thread then how do find out where in thread the problem > > code is ... does it just match up "pc" with the "ELF" core file ... > > WindView doesn't magically record problems. What it records is key > events in the system (including user defined events in the newer > versions), and some data about them. When displayed in the host tool > the resulting graph shows you what was executing at any time, and all > the events that you enabled. > > Like a hardware logic analyser, it can also be set to start recording > by a trigger event, or it can just record from when you start it. With > some careful filtering and a good trigger definition you should be > able to focus on a problem area and see if there are timing issues > (e.g. deadlocks) in your application. > > > 5.) Does windview add any extra threads to the system? I assume yes it does > > if gcc is unmodified ... > > Normally there is an upload task to get the data up to the development > host, but I believe that it can run without any tasks when running in > "post-mortem" mode. > > HTH, > > John... --------------------------- Newsgroups: comp.os.vxworks Subject: Re: semBCreate() Date: Wed, 27 Mar 2002 15:01:19 +0100 From: "Michael Lawnick" Organization: Buergernetz Dillingen Message-ID: References: Reply-To: "Michael Lawnick" Sender: mlawnick@p5088fccb.dip.t-dialin.net Liang, Bob, don't let me die stupid - what is a 'recursive' semaphore ??? I know counting- and binary-semaphores and mutex, but have never heard of a recursive one ! "lang2" schrieb im Newsbeitrag news:a7sdf9$gvt$1@kermit.esat.net... > > "Bob Bradley" wrote in message > news:bob-A0B288.03585627032002@news.apple.com... > > In article , > > "lang2" wrote: > > > > > This function can create a binary semaphore with SEM_Q_FIFO or > > > SEM_Q_PRIORITY. > > > But is the semaphore created recursive? > > > > No, but if you need a recursive semaphore, you can use semMCreate. > I looked up the reference, semMCreate can take the following options: > SEM_Q_PRIORITY > SEM_Q_FIFO > SEM_DELETE_SAFE > SEM_INVERSION_SAFE. > > I can't find an recurrsive option there. > > --------------------------- Newsgroups: comp.os.vxworks Subject: why ping request timed out Date: 27 Mar 2002 06:37:02 -0800 From: lihuapeng@21cn.com (DragonSpring) Organization: http://groups.google.com/ Message-ID: <1d411918.0203270637.531e5161@posting.google.com> Tornado 2/VxWorks 5.4/T2CP2/NPT/NPT Patch, 2 MPC860 boards, each board has an Ethernet port(FEC) and a WAN port(bandwidth is 16TS, QMC driver on 2 SCCs). Two wan ports is connected by TS switcher. The IP addresses are as following: (PC1) (board1 LAN) (board1 WAN) (board2 WAN) (board2 LAN) (PC2) 138.0.0.125---138.0.4.8-----90.0.1.1------90.0.1.2------137.0.4.8----137.0.0.95 The routes are added correctly. The MTU of board1 WAN and board2 WAN are both 1500. Now ping 137.0.0.95 from 138.0.0.125: ping 137.0.0.95 -t -l length when length < 1473 All is OK length >=1473 and < 1477 found some "Request timed out" (about 50 percent) length >=1478 All is OK Notice that the ping packet will be split to 2 IP packets when length>=1473 because of MTU=1500. What's the matter? 138.0.0.125 can get all the reply ICMP packet, no one is lost. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: porting LINUX driver to vxWorks Date: Wed, 27 Mar 2002 15:53:29 +0100 From: "Friedrich Ensslin" Message-ID: References: Hello Michael, to get a feeling on the Linux driver philiosopy (kernel space, not user space like in VxWorks), you might have a look at Rubini's book on Linux Device Drivers (published by O'Reilly). hth, F. Ensslin --------------------------- Newsgroups: comp.os.vxworks Subject: Anyone using VxWorks Radius implementation Date: Wed, 27 Mar 2002 15:10:37 GMT From: "Verizon" Message-ID: Has anyone out there used the VxWorks Version of Radius? We are getting ready to implement and not sure if we should go with the VxWorks Version or write our own. We would have to Upgrade some of our products to Tornado 2 and later Version of VxWorks. Any got yas or other things that people have run in to? Thanks !!! Rick --------------------------- Newsgroups: comp.os.vxworks Subject: Re: semBCreate() Date: Wed, 27 Mar 2002 15:19:58 -0000 From: "lang2" Organization: WHAT Message-ID: References: "Michael Lawnick" wrote in message news:a7sjbg$7s3$1@snoopy.bndlg.de... > Liang, Bob, > > don't let me die stupid - what is a 'recursive' semaphore ??? > I know counting- and binary-semaphores and mutex, but have never heard of a > recursive one ! > > "lang2" schrieb im Newsbeitrag > news:a7sdf9$gvt$1@kermit.esat.net... > > > > "Bob Bradley" wrote in message > > news:bob-A0B288.03585627032002@news.apple.com... > > > In article , > > > "lang2" wrote: > > > > > > > This function can create a binary semaphore with SEM_Q_FIFO or > > > > SEM_Q_PRIORITY. > > > > But is the semaphore created recursive? > > > > > > No, but if you need a recursive semaphore, you can use semMCreate. > > I looked up the reference, semMCreate can take the following options: > > SEM_Q_PRIORITY > > SEM_Q_FIFO > > SEM_DELETE_SAFE > > SEM_INVERSION_SAFE. > > > > I can't find an recurrsive option there. > > Sorry if I confused you. I mean a binary semaphore which can be grabbed by the same thread for multi times. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: porting LINUX driver to vxWorks Date: Wed, 27 Mar 2002 16:41:06 +0100 From: "Fauris, Sebastien [CTF:4927:EXCH]" Organization: Nortel Networks Message-ID: <3CA1E812.72810FB9@europem01.nt.com> References: Friedrich Ensslin wrote: > Hello Michael, > > to get a feeling on the Linux driver philiosopy (kernel space, not user > space like in VxWorks), you might have a look at Rubini's book on Linux > Device Drivers (published by O'Reilly). > > hth, > > F. Ensslin You can download this book for free at the following address: http://www.xml.com/ldd/chapter/book/ Sebastien. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: usrLib api's in bootrom Date: 27 Mar 2002 07:57:54 -0800 From: triniatlarge@yahoo.com (lovell James) Organization: http://groups.google.com/ Message-ID: References: <2v4n8.95397$Yv2.30491@rwcrnsc54> Hi drdiags, Thanks for the info. All I need if getting my file access functions to work. cd, dir, ls, ll. I used ioctl and iolib library but that did not work. I know I am missing a step. Since you got these to work you might remember something I am not doing. Thanks LJ "drdiags" wrote in message news:<2v4n8.95397$Yv2.30491@rwcrnsc54>... > Hello Lovell, > > I tried doing this by looking at usrConfig.c to determine how to get > the symbol table > included, add the "shell", etc and unfortunately I could get everything > except the symbol > table in the bootrom. So I had the target shell, the banner but I couldn't > do an "i" > If you figure out how to pull in the symbol table, let me know. From what I > remember > if I could get a build of the bootrom to reflect how a vxWork.st was built, > this would > get me over the last hump. Did you look at the target/h/make directory to > see how > vxWorks.st is built? Good luck and if I revisit this and get it working, I > will post my > steps. Hope you have better luck. > > "lovell James" wrote in message > news:a66abf95.0203210803.29e6dd6e@posting.google.com... > > Hi all, > > Has anyone ever tried getting some of the usrLib api's to work > > in bootrom, such as 'cd', 'pwd' etc? I know they are only meant to be > > executed in the Vxworks shell but ideally I want to give the user at > > the boot prompt an option to view files in my file flsh formatted and > > setup by Tffs. I thought before giving up I'll try here first. > > Basically I called usrlib.o into the bootrom image but I got link > > errors because it was looking for symbol table defines. > > Thanks > > > > LJ --------------------------- Newsgroups: comp.os.vxworks Subject: Re: semBCreate() Date: Wed, 27 Mar 2002 17:51:24 +0100 From: "Michael Lawnick" Organization: Buergernetz Dillingen Message-ID: References: Reply-To: "Michael Lawnick" Sender: mlawnick@p5088fccb.dip.t-dialin.net "lang2" schrieb im Newsbeitrag news:a7snpd$mfu$1@kermit.esat.net... > > "Michael Lawnick" wrote in message > news:a7sjbg$7s3$1@snoopy.bndlg.de... > > Liang, Bob, > > > > don't let me die stupid - what is a 'recursive' semaphore ??? > > I know counting- and binary-semaphores and mutex, but have never heard of > a > > recursive one ! > > > > "lang2" schrieb im Newsbeitrag > > news:a7sdf9$gvt$1@kermit.esat.net... > > > > > > "Bob Bradley" wrote in message > > > news:bob-A0B288.03585627032002@news.apple.com... > > > > In article , > > > > "lang2" wrote: > > > > > > > > > This function can create a binary semaphore with SEM_Q_FIFO or > > > > > SEM_Q_PRIORITY. > > > > > But is the semaphore created recursive? > > > > > > > > No, but if you need a recursive semaphore, you can use semMCreate. > > > I looked up the reference, semMCreate can take the following options: > > > SEM_Q_PRIORITY > > > SEM_Q_FIFO > > > SEM_DELETE_SAFE > > > SEM_INVERSION_SAFE. > > > > > > I can't find an recurrsive option there. > > > > Sorry if I confused you. I mean a binary semaphore which can be grabbed by > the same thread for multi times. > That is a _mutex_ (MUTual EXclusion). Create it by semMCreate, rest like normal semaphores. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: pciDeviceShow() shows 2 devices when there's only one IBM PPC405GP Date: Wed, 27 Mar 2002 09:13:10 -0800 From: "kdb" Organization: cmc Message-ID: References: Could be a hardware problem - these have been known to occur! Looks like an address line could be shorted, either on the host SBC board or on the device card. Observe: device # 0x0004 vs 0x0014. Pin AD4 could be shorted somewhere. Check to see if you can do a config write to some register on device # 0x0004 and read the same value back from the same register on device # 0x0014, and vice versa. cheer - K "Arun Prasad" wrote in message news:e38d912c.0203262347.3fd78ec8@posting.google.com... > Hi, > > I'm facing a problem and couldn't figure it out why it happens. > I have a NIC card connected to my walnut machine, for which we are > writing device driver. > When I use pciDeviceShow() function, it shows there are two of my > cards present on the system and they only differ in device (of BDF). > But I have only one card connected to the system. Also pciFindDevice() > getting succeeded for both of these devices. > In the given output 2nd and 3rd entries are our card's. > > ======== > Scanning function 0 of each PCI device on bus 0 > Using configuration mechanism 0 > bus device function vendorID deviceID class > 00000000 00000000 00000000 00001014 00000156 00060000 > 00000000 00000004 00000000 0000143a 00004e53 00028000 > 00000000 00000014 00000000 0000143a 00004e53 00028000 > ======== > > Could anyone tell me why this strange behaviour happens to our card > on VxWorks? > > Regards > Arun --------------------------- Newsgroups: comp.os.vxworks Subject: Re: semBCreate() Date: Wed, 27 Mar 2002 17:25:45 -0000 From: "lang2" Organization: WHAT Message-ID: References: "Michael Lawnick" wrote in message news:a7stac$fki$1@snoopy.bndlg.de... > > "lang2" schrieb im Newsbeitrag > news:a7snpd$mfu$1@kermit.esat.net... > > > > "Michael Lawnick" wrote in message > > news:a7sjbg$7s3$1@snoopy.bndlg.de... > > > Liang, Bob, > > > > > > don't let me die stupid - what is a 'recursive' semaphore ??? > > > I know counting- and binary-semaphores and mutex, but have never heard > of > > a > > > recursive one ! > > > > > > "lang2" schrieb im Newsbeitrag > > > news:a7sdf9$gvt$1@kermit.esat.net... > > > > > > > > "Bob Bradley" wrote in message > > > > news:bob-A0B288.03585627032002@news.apple.com... > > > > > In article , > > > > > "lang2" wrote: > > > > > > > > > > > This function can create a binary semaphore with SEM_Q_FIFO or > > > > > > SEM_Q_PRIORITY. > > > > > > But is the semaphore created recursive? > > > > > > > > > > No, but if you need a recursive semaphore, you can use semMCreate. > > > > I looked up the reference, semMCreate can take the following options: > > > > SEM_Q_PRIORITY > > > > SEM_Q_FIFO > > > > SEM_DELETE_SAFE > > > > SEM_INVERSION_SAFE. > > > > > > > > I can't find an recurrsive option there. > > > > > > Sorry if I confused you. I mean a binary semaphore which can be grabbed by > > the same thread for multi times. > > > That is a _mutex_ (MUTual EXclusion). > Create it by semMCreate, rest like normal semaphores. > Yes that was exactly what I mean. But vxWorks seems like the name semaphore for some reason. Do you mean that the mutex(semaphore) is recurrsive by default? > > --------------------------- Newsgroups: comp.os.vxworks Subject: DosFs File Attributes Date: Wed, 27 Mar 2002 12:53:06 -0500 From: "Jim S" Organization: Lucent Technologies, Columbus, Ohio Message-ID: Are there any tips on setting attributes for files under DosFs? I've tried the documented procedure of: fd=open("filename", O_RDONLY, 0) fstat (fd, &statStruct) ioctl (fd, FIOATTRIBSET, statStruct.st_attrib | DOS_ATTR_RDONLY)) /* DOS_ATTR_RDONLY = 0x01 */ But the ioctl( ) always returns error (-1) and the file attributes remain unchanged. The files exist (open OK and I can check the size), but the attribute always show as 0x0. Also, what's the deal with dosFs2.0? Is it part of the standard Tornado 2/VxW 5.4? Seems we have the original dosFs as part of a recent T2/VxW 5.4, would this contribute to my problem? WindSurf offered little insight on this. TIA, Jim --------------------------- Newsgroups: comp.os.vxworks Subject: Re: semBCreate() Date: Wed, 27 Mar 2002 17:43:24 -0000 From: "Dave Korn" Organization: Lumber Cartel (tinlc) Members #2234-2237 (owing to browser refresh) Message-ID: References: "lang2" wrote in message news:a7sdf9$gvt$1@kermit.esat.net... > > "Bob Bradley" wrote in message > news:bob-A0B288.03585627032002@news.apple.com... > > In article , > > "lang2" wrote: > > > > > This function can create a binary semaphore with SEM_Q_FIFO or > > > SEM_Q_PRIORITY. > > > But is the semaphore created recursive? > > > > No, but if you need a recursive semaphore, you can use semMCreate. > I looked up the reference, semMCreate can take the following options: > SEM_Q_PRIORITY > SEM_Q_FIFO > SEM_DELETE_SAFE > SEM_INVERSION_SAFE. > > I can't find an recurrsive option there. > > The 'M' in semMCreate stands for "recursive", in much the same way as the 'B' in semBCreate stands for "not recursive at all really" ;-) IOW, it's innate to the type of semaphore that it can be taken and given multiple times. DaveK - -- moderator of alt.talk.rec.soc.biz.news.comp.humanities.meow.misc.moderated.meow Burn your ID card! http://www.optional-identity.org.uk/ Help support the campaign, copy this into your .sig! Proud Member of the Exclusive "I have been plonked by Davee because he thinks I'm interesting" List Member # Master of Many Meowing Minions Holder of the exhalted PF Chang's Crab Wonton Award for kook spankage above and beyond the call of hilarity. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: keyboard timeout - need some help Date: Wed, 27 Mar 2002 18:02:30 -0000 From: "Dave Korn" Organization: Lumber Cartel (tinlc) Members #2234-2237 (owing to browser refresh) Message-ID: References: <9b6f8883.0203261710.56f9ef6c@posting.google.com> "Mark Chang" wrote in message news:9b6f8883.0203261710.56f9ef6c@posting.google.com... > I have a keyboard timeout for my CLI in Vxworks 5.3. > The code is like this > > do { [snip select loop] > } > } > } while (numReady==0); > > onechar = &onecharbuff; > > /* read the buffer, could be 1 character or more since > * ethernet will trigger select once for an entire package via > * scripts, so we need to read the buffer until EOF/empty (numReady=0) */ > do { [snip read chars one-by-one loop] > } while ( numReady != 0 ); > > The problem I have is that if the user hits one key or > several with a CR/LF, the routines of course ends > up in the second loop and my timeout never happens. > > I couldn't just use a read loop because for some reason, > it would not return from the read if the data (keyboard input) > were from ethernet (Telnet) It would wait until a cr/lf > was detected before coming out of it. > > The select works so that's why I'm using it. > > I could use some ideas on how to get my timeout to work > with the above case (1 key or more hit w/o cr/lf) Well, one solution would be: after the select (...) call exits, do an ioctl call using FIONREAD to find out exactly how many chars there are in the buffer to read, and then your second loop could read exactly that many chars and return to the first loop to do a select again. That should keep the second loop from blocking when it tries to read and the buffer is empty. Also, in another post, tut suggested setting raw mode with ioctl(STD_IN, FIOSETOPTIONS, OPT_RAW); I'd suggest that you might want to keep all the other features such as ctrl-c and ctrl-x recognition and XON/XOFF handling, so really the only tty option you're concerned with is OPT_LINE which causes the tty device to accumulate chars until a lineend is received. So you might prefer to try: ioctl(STD_IN, FIOSETOPTIONS, OPT_TERMINAL & ~OPT_LINE); which should, according to the manual (vxworks ref. guide, section 3.7.1 : Serial I/O Devices, subsection "Raw Mode and Line Mode") - ---quote--- In raw mode, each input character is available to readers as soon as it is input from the device [snip] In line mode, all input characters are saved until a NEWLINE character is input; then the entire line of characters, including the NEWLINE, is made available in the ring at one time - ---quote--- DaveK - -- moderator of alt.talk.rec.soc.biz.news.comp.humanities.meow.misc.moderated.meow Burn your ID card! http://www.optional-identity.org.uk/ Help support the campaign, copy this into your .sig! Proud Member of the Exclusive "I have been plonked by Davee because he thinks I'm interesting" List Member # Master of Many Meowing Minions Holder of the exhalted PF Chang's Crab Wonton Award for kook spankage above and beyond the call of hilarity. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: malloc in a device driver. [newbie question] Date: 27 Mar 2002 10:53:49 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203271053.23b6a1b1@posting.google.com> References: <576881c0.0203251320.5ade1f69@posting.google.com> <488e459a.0203252343.770aa97a@posting.google.com> <7M6o8.9008$f5.563329@news> <488e459a.0203270111.b14b5e0@posting.google.com> <3CA1BCB2.1040500@spamm.me.l8s.co.uk> Hello, > That isn't enough... > malloc() uses a semaphore to protect the free list, > Consider what happens if an interrupt happens with the > semaphore held and causes a signal handler to run > for that task (eg a posix timer). > If the signal handler tries to call malloc() it > will lock on the semaphore. That's not a problem. The interrupt was serviced *before* the signal was delivered. If the handler blocks on the semaphore, then that is the correct behaviour. You have reminded me of a problem here though... the issue is not the one you describe, but the case where the task that received the signal was already in the critical region of malloc(). Then the semaphore will fail to protect the critical region since the calling task already owns it. This is more of a problem. > So you can't call malloc froma signal handler. No, you can use malloc from a signal handler, but with care. You would need to make sure that signals were blocked during all other places in the task's code where allocations occur (note that this is going to be difficult if you use any of the VxWorks xxxCreate() APIs after you've installed the signal handler). Perhaps a better solution would be to have a pre-allocated block of memory for the signal handler to use (e.g. a simple slab allocator). If you want to be really safe, then you could treat them as ISRs, but that is really restricting you more than necessary. Rgds, John... --------------------------- Newsgroups: comp.os.vxworks Subject: Re: DosFs File Attributes Date: Wed, 27 Mar 2002 19:10:07 GMT From: "H. E. Taylor" Organization: MTS Internet Message-ID: <3CA233E4.1EAF@despam.autobahn.mb.ca> References: In article , Jim S wrote: > > Are there any tips on setting attributes for files under DosFs? > I've tried the documented procedure of: > > fd=open("filename", O_RDONLY, 0) > fstat (fd, &statStruct) > ioctl (fd, FIOATTRIBSET, statStruct.st_attrib | DOS_ATTR_RDONLY)) /* > DOS_ATTR_RDONLY = 0x01 */ > > But the ioctl( ) always returns error (-1) and the file attributes remain > unchanged. >[...] > With what errno? - -het - -- "progress in software has not followed Moore's law." -John Holland Computer stuff: http://www.autobahn.mb.ca/~het/clinks.html H.E. Taylor http://www.autobahn.mb.ca/~het/ --------------------------- Newsgroups: comp.os.vxworks Subject: Re: semBCreate() Date: 27 Mar 2002 19:25:23 GMT From: Denis Perelyubskiy Message-ID: References: * lang2 [03-Wed-02 09:25 -0800]: > > "Michael Lawnick" wrote in message > news:a7stac$fki$1@snoopy.bndlg.de... > > > > "lang2" schrieb im Newsbeitrag > > news:a7snpd$mfu$1@kermit.esat.net... > > > > > > "Michael Lawnick" wrote in message > > > news:a7sjbg$7s3$1@snoopy.bndlg.de... > > > > Liang, Bob, > > > > > > > > don't let me die stupid - what is a 'recursive' > > > > semaphore ??? I know counting- and > > > > binary-semaphores and mutex, but have never heard > > of > > > a > > > > recursive one ! > > > > > > > > "lang2" schrieb > > > > im Newsbeitrag > > > > news:a7sdf9$gvt$1@kermit.esat.net... > > > > > > > > > > "Bob Bradley" wrote in message > > > > > news:bob-A0B288.03585627032002@news.apple.com... > > > > > > In article , > > > > > > "lang2" wrote: > > > > > > > > > > > > > This function can create a binary semaphore > > > > > > > with SEM_Q_FIFO or SEM_Q_PRIORITY. But is > > > > > > > the semaphore created recursive? > > > > > > > > > > > > No, but if you need a recursive semaphore, you > > > > > > can use semMCreate. > > > > > I looked up the reference, semMCreate can take > > > > > the following options: > > > > > SEM_Q_PRIORITY > > > > > SEM_Q_FIFO > > > > > SEM_DELETE_SAFE > > > > > SEM_INVERSION_SAFE. > > > > > > > > > > I can't find an recurrsive option there. > > > > > > > > Sorry if I confused you. I mean a binary semaphore > > > which can be grabbed by the same thread for multi > > > times. > > > > > That is a _mutex_ (MUTual EXclusion). > > Create it by semMCreate, rest like normal semaphores. > > > Yes that was exactly what I mean. But vxWorks seems like > the name semaphore for some reason. > Do you mean that the mutex(semaphore) is recurrsive by > default? Yes. Read the programmer's guide, it talks about that... denis - -- if you want to reply by mail, please tweak my address in a reasonable way. sorry for the inconvenience. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: The "unsupported" WRS Telnet server hanging Date: 27 Mar 2002 19:26:45 GMT From: Denis Perelyubskiy Message-ID: References: * Chris Moore [03-Mon-02 18:27 -0800]: > I've been using the unsupported WRS telnet daemon for a > while now and have not noticed any huge problems. BUT! > When I have the CPU loaded (according to the spylib) I > get some problems with the telnet client task hanging, if > I do a netstat from my machine or from the VxWorks target > I see that the msgq is filled and doesnt clear out at > all... > Has anyone else experienced this problem? Haven't used this, but it sounds like some sort of a starvation problem. Did you check your task priorities? denis - -- if you want to reply by mail, please tweak my address in a reasonable way. sorry for the inconvenience. --------------------------- Newsgroups: comp.os.vxworks Subject: modifying configlettes` Date: Wed, 27 Mar 2002 15:12:44 -0500 From: david lindauer Message-ID: <3CA227BC.7A8F78F5@notifier-is.net> hi, I'm on an x86 development system (target also happens to be x86) and want to modify one of the configlettes in /tornado/target/config/comps/src (actually in the net/http directory if that makes a difference). I made the changes but it seems as if my change didn't work. I did a build all, so is there anything I can do to get it to recompile the configlettes? Or did they recompile somewhere in the background and my change just isn't taking for some other reason? Thanks, David --------------------------- Newsgroups: comp.os.vxworks Subject: Re: semBCreate() Date: Wed, 27 Mar 2002 12:59:52 -0800 From: Bob Bradley Organization: Uh huh huh...It says Organ Message-ID: References: In article , "Michael Lawnick" wrote: > don't let me die stupid - what is a 'recursive' semaphore ??? > I know counting- and binary-semaphores and mutex, but have never heard of a > recursive one ! Recursive just means it can be used in recursive functions. If the same thread takes a semaphore it already owns, it simply increments an internal counter and doesn't block. Giving a semaphore decrements the internal counter and when it reaches zero, it really gives it back such that other threads can take it. This is useful in situations where you take a semaphore in a function that may call another function that also takes that semaphore. This would work correctly with a recursive semaphore, but deadlock with a non-recursive semaphore. --------------------------- Newsgroups: comp.os.vxworks Subject: PCI interrupt routines Date: Wed, 27 Mar 2002 22:23:30 +0100 From: Peter Kannegiesser Organization: SEK Message-ID: Reply-To: peter.kannegiesser@gmx.de Hello everybody! Right now I'm fighting with an interrupt routine for a device driver for a custom PCI board. I use Tornado II with the standard pcPentium BSP. The driver is connected to the interrupt using pciConnectInt(...) Question: Is it necessary for may driver to handle hardware (apart of course from the board it is handling)? Things such as sending EOI to the interrupt controller or similar... I believe that would be the responsiblity of the BSP, not of my driver but feel somewhat unsure about it. Any thoughts, ideas or even wisdom? TIA, Peter - -- keine sig --------------------------- Newsgroups: comp.os.vxworks Subject: Re: ipAttach - c vs c++ Date: Wed, 27 Mar 2002 21:51:46 GMT From: Pete Flugstad Organization: AT&T Broadband Message-ID: <3CA23F13.7090508@nospam.icon-labs.com> References: <8fe86b76.0203150523.37bcf451@posting.google.com> David wrote: > While I'm on the subject of c vs c++, I was tasked with the conversion > of an application from PSOS (using a Diab C compiler) to vxworks > (using the included gnu based compiler). The original files had the > .cc suffix and made extensive use of the "//" comment delimeters. > When I tried to compile the files in vxworks (Tornado) I of course got > numerous parse errors. Instead of converting all of the "// XXX" to > "/* XXX */", I opted to convert all the files to .cpp. > > I just curious why a later version of a c compiler (vxworks) make such > a fuss about the "//" comments while the prior version worked fine? Acutally, the C compiler Tornado uses is an old version of GCC (2.7.2 on my install). GCC recognizes // for comments, *except* if you turn on - -ansi, which is on by default inside Tornado. I bet if you remove the - -ansi from your build lines, the compiler will accept // just fine. Pete --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Anybody ported openssh to vxworks ? Any issues ? Date: Wed, 27 Mar 2002 22:02:03 GMT From: Pete Flugstad Organization: AT&T Broadband Message-ID: <3CA2417B.6060702@nospam.icon-labs.com> References: dsa wrote: > Anybody ported openssh to vxworks ? Yes. > What are the issues ? Lots. OpenSSH has all kinds of "unixisms", and it's based on a process model (fork/exec) rather than threads. Also, OpenSSH assumes it's going to start a shell using fork/exec, which doesn't make a lot of sense on vxWorks. Then you have to port OpenSSL as well (since OpenSSH depends on it) as well as zlib. We've done a lot of work on it and are selling this as an embedded SSH library which you can hook into any CLI type interface you want (including the vxWorks shell). Contact me directly if you are interested. Pete Flugsatd Icon Labs --------------------------- Newsgroups: comp.os.vxworks Subject: Re: why ping request timed out Date: Wed, 27 Mar 2002 15:04:14 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <1d411918.0203270637.531e5161@posting.google.com> It sounds like that the problem may be due to incorrect code which affects fragmentation and reassembly of IP datagrams. You should be able to see why IP layer is not handling packets correctly. On VxWorks, you can do ipstatShow (or something like that) and on Unix or NT systems you can do netstat with -s option. Doing so should tell you whether IP layer dropped packets due to checksum error, incomplete header, insufficient data for fragments, or whatever. Likely problems that can cause this are: network device driver which has errors in the buffering code for large size packets, or small size packets or both. Some MAC devices do not accept frames less than minimal bytes (64 for example), and must be padded properly. That can happen if you are fragmenting and the last fragment is small. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: dosFs2 and DOS_VOL_CONFIG Date: 27 Mar 2002 15:09:25 -0800 From: agraham@openglobe.net (Aaron Graham) Organization: http://groups.google.com/ Message-ID: <95ebbe31.0203271509.2ab543a2@posting.google.com> References: <1017146014.258896@azores.network-i.net> I had the exact opposite problem a couple months ago. I had a DOS_VOL_CONFIG structure, and I was trying to figure out how to get the vol name. I never found a way to do it. The workaround (read: hack) I had to put into place involved keeping track of all vol names, adding in some global variables, a table, and searching the table every time I wanted to associate a config struct with a volume name. The final result is that the code I'm using is messy, unreadable, and not re-entrant. Out of 20 or so possible leads I had tried (using volLabel, comparing pointers, etc), none of them worked. WRS must have gone to great lengths to specifically disallow you from doing this. There's no other explanation I could think of... Good luck! Aaron "Employee" wrote in message news:<1017146014.258896@azores.network-i.net>... > Hi, > > given the name of a dos file system (e.g. "/dos1"), how can I get its > DOS_VOL_CONFIG structure? > > I have tried to get it by copying the pointer passed to the configuration > function given to the dosFsVolFormat() via the 3rd parameter but it appears > to expire immediatelly after. i.e. if I print the contents of the structure > from inside the configuration function the data makes sense. But if I print > the same structure again later on from the shell I get garbage which > suggests that the structure was moved. > > Example: > void config(DOS_VOL_CONFIG *p); > dosFsVolFormat(cbio, DOS_OPT_BLANK | DOS_OPT_QUIET, &config); > > In other words to do something similar to: > dosFsShow ("/dos1"); > > Regards, > Dimitris --------------------------- Newsgroups: comp.os.vxworks Subject: Re: how to bind a pppoe service to multi ethernet port ? Date: Wed, 27 Mar 2002 15:10:43 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: It is not clear why you would want to do that. Typically PPPOE session is associated with a particular MAC address in the concentrator and mapping between them is created. This mapping is used to forward packets between a client and the remote peer. Theoretically, it seems possible to change the mapping logic to accommodate multiple MAC addresses. But the policy for picking one of N number of interfaces per packet complicates things. I can imagine load balancing, round robin, etc. policies, but it really doesn't make much sense to me. Especially since PPPoE is primarily used to provide WAN access over slow links. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: malloc in a device driver. [newbie question] Date: Wed, 27 Mar 2002 15:38:36 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <576881c0.0203251320.5ade1f69@posting.google.com> <488e459a.0203252343.770aa97a@posting.google.com> <7M6o8.9008$f5.563329@news> <488e459a.0203270111.b14b5e0@posting.google.com> <3CA1BCB2.1040500@spamm.me.l8s.co.uk> It is generally a bad idea. But strictly speaking, it is allowed (tolerated would be more like it). - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: vxWorks system calls Date: Wed, 27 Mar 2002 15:46:44 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <1nLn8.7846$f5.527808@news> <3C9FAFEE.9020308@spamm.me.l8s.co.uk> Each task has a context. So there is a context which can be switched. In vxWorks, all functions are treated more or less equally. There is not much difference between a subroutine call (e.g. atoi) vs. a system call as in Unix (e.g. read). They are both C functions. In Unix, system calls are implemented to generate traps into kernel mode. But even in Unix, even with such traps, full process context switch is not always done. It is done when needed. Similarly, there is no context switch requirement for each call made in vxWorks. There is a potential for a context switch though. For example, if you do a read(), and there is not sufficient data to satisfy the request, calling task's context will switch out and another task will run. In systems that use traps for system calls (AE and Unix), one additional provision is often made. Sometimes it is a nice place to implement the task scheduling logic heuristics. Each time trap is made is another place to look for opportunities for potential scheduling deadlocks or refinements in scheduling queue. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Default Signal Handler Date: Wed, 27 Mar 2002 15:58:31 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <488e459a.0203270115.56ab7567@posting.google.com> <6Sjo8.9059$f5.588439@news> Signals are specific to a given task. There is no way to assign a global handler for all the tasks. You will need to use exception hooks instead. Even in Unix, you cannot declare a signal handler which will work in all processes. What happens is by default the SIG_DFL handler will kill the process. You can do something similar in vxWorks if you rewrite signals yourself. But I don't think sigLib allows that. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: pciDeviceShow() shows 2 devices when there's only one IBM PPC405GP Date: Wed, 27 Mar 2002 16:14:56 -0800 From: "kdb" Organization: cmc Message-ID: References: Whoops, my bad: not AD4, but whichever AD pin (or pins?) the IDSEL line on the device is tied to. The PCI spec is not specific in regard to how IDSEL is generated to a particular device, but makes a suggestion in 3.2.2.3.5. Depends how your system is designed. whatever - K "kdb"wrote in message news:p6no8.533$GV.14251@newsfeed.avtel.net... > Could be a hardware problem - these have been known to occur! Looks like an > address line could be shorted, either on the host SBC board or on the device > card. Observe: device # 0x0004 vs 0x0014. Pin AD4 could be shorted > somewhere. Check to see if you can do a config write to some register on > device # 0x0004 and read the same value back from the same register on > device # 0x0014, and vice versa. > > cheer - K > > "Arun Prasad" wrote in message > news:e38d912c.0203262347.3fd78ec8@posting.google.com... > > Hi, > > > > I'm facing a problem and couldn't figure it out why it happens. > > I have a NIC card connected to my walnut machine, for which we are > > writing device driver. > > When I use pciDeviceShow() function, it shows there are two of my > > cards present on the system and they only differ in device (of BDF). > > But I have only one card connected to the system. Also pciFindDevice() > > getting succeeded for both of these devices. > > In the given output 2nd and 3rd entries are our card's. > > > > ======== > > Scanning function 0 of each PCI device on bus 0 > > Using configuration mechanism 0 > > bus device function vendorID deviceID class > > 00000000 00000000 00000000 00001014 00000156 00060000 > > 00000000 00000004 00000000 0000143a 00004e53 00028000 > > 00000000 00000014 00000000 0000143a 00004e53 00028000 > > ======== > > > > Could anyone tell me why this strange behaviour happens to our card > > on VxWorks? > > > > Regards > > Arun > > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: select and pty Date: 27 Mar 2002 16:48:27 -0800 From: dsa0000@hotmail.com (dsa) Organization: http://groups.google.com/ Message-ID: References: <488e459a.0203270049.12b0fc87@posting.google.com> Hi John, Thank you very much for the reply. The vxworks telnetd server was using 2 tasks per telnet session. I thought of trying with one task and select/pty. Then I faced this problem. I am trying your idea. But I have one doubt. The slave fd is normally used to talk to shell or parser. Whether I am right ? Regards DSA john_94501@yahoo.com (John) wrote in message news:<488e459a.0203270049.12b0fc87@posting.google.com>... > Hello, > > You have found something a little unusual... try swapping your master > and slave fds over and it should work; i.e. select the slave and use > the master side in the echoing task. > > I suggest filing this as a problem report with support, and if you can > get away with just swapping the master and slave ends over for your > app, do that. > > HTH, > > John... > > dsa0000@hotmail.com (dsa) wrote in message news:... > > I have some problem regarding select and pty fds. > > In main task I created two pty fds and passed the > > slave pty fd to a spwaned task which does nothing but echo. > > > > ptyDrv (); > > ptyDevCreate ("/pty/s.", 512, 512); > > open ("/pty/s.M",, O_RDWR, 0); > > open ("/pty/s.S",, O_RDWR, 0); > > > > The main task pends on a select which multiplexes a client > > socket and master pty fd. > > > > I could verify that the data is read from the client socket and wrote to > > the master fd. The spawned task reads from the slave fd and writes back > > to the slave fd. But in the main task the select is still pending. > > > > Whether is there known issues with select and pty in vxworks ? > > > > or whether I am doing some thing wrong ? > > > > Regards > > DSA --------------------------- Newsgroups: comp.os.vxworks Subject: Question about tScsiTask Date: 28 Mar 2002 00:49:11 GMT From: "csc" Organization: Go Navy! Message-ID: <3ca26887$1_7@news3.uncensored-news.com> What could cause the tScsiTask to be spawned twice? On board 0 there are two tasks named tScsiTask. On boards 1 and 2, which boot through shared memory, there is only one. All have a priority of 5. So, why are there 2 on board 0? What follows is the code in sysScsi.c to initialize our SCSI drive: if (sysProcNumGet() == 0) { int ix, temp; BLK_DEV *dospBlockDev; /* Used for download device */ #define SPIN_UP_TIME 5 /* Seconds since device already should be up*/ #define RIMM0_ID 0x0 #define RIMM0_LUN 0x0 #define BOOT_NAME "/od" printf ("Initializing SCSI..."); /* create device handle for TEST UNIT READY commands */ if ((pSpd20 = scsiPhysDevCreate (pSysScsiCtrl, RIMM0_ID, RIMM0_LUN, 0,-1, 1, 0x100000, 0x200)) == NULL) { printErr ("\nRIMM0 scsiPhysDevCreate failed, ID = %d and LUN = %d\n",RIMM0_ID,RIMM0_LUN ); return (ERROR); } /* issue a couple of TEST UNIT READY commands to clear reset exception */ taskDelay(sysClkRateGet() * 2); scsiTestUnitRdy (pSpd20); scsiTestUnitRdy (pSpd20); /* issue a TEST UNIT READY every second for SPIN_UP_TIMEOUT seconds, * or until device returns OK status. */ if (scsiTestUnitRdy (pSpd20) != OK) { printf ("Waiting for RIMM0 to spin up in sysScsiConfig()..."); for (ix = 0; ix < SPIN_UP_TIME; ix++) { if (scsiTestUnitRdy (pSpd20) == OK) { break; } else { if (ix != (SPIN_UP_TIME - 1)) { printf ("Waiting for RIMM0 to Initialize\n"); } else { printf ("Point #1"); return (ERROR); } taskDelay (sysClkRateGet ()); } } } scsiPhysDevDelete (pSpd20); if ( sysScsiInit() == ERROR) { printf ("Point #2"); return (ERROR); } /* recreate a device handle, with polling for actual device parameters */ taskDelay (sysClkRateGet() * 4); if ((pSpd20 = scsiPhysDevCreate (pSysScsiCtrl, RIMM0_ID, RIMM0_LUN, 0, -1, 1, 0, 0)) == NULL) { taskDelay(sysClkRateGet() ); if ((pSpd20 = scsiPhysDevCreate (pSysScsiCtrl, RIMM0_ID, RIMM0_LUN, 0, -1, 1, 0, 0)) == NULL) { printf ("Point #3"); return (ERROR); } } /* Start making up the dos device */ dosFsInit(NUM_DOSFS_FILES); dospBlockDev = scsiBlkDevCreate( pSpd20, (pSpd20->numBlocks / 2) , 0x0); if (dospBlockDev == NULL) printf ("Point #5"); if ( ( dosFsDevInit(BOOT_NAME, dospBlockDev , 0x0 ) ) == NULL ) { printf ("Point #4"); return (ERROR); } printf (" done.\n"); } /* sysProcNumGet() */ Thanks for your help... ______________________________________________________________________ Posted Via Uncensored-News.Com - Still Only $9.95 - http://www.uncensored-news.com With NINE Servers In California And Texas - The Worlds Uncensored News Source --------------------------- Newsgroups: comp.os.vxworks Subject: About mpc860t's SCC working for E1 line!Help! Date: 27 Mar 2002 17:50:18 -0800 From: yong_bvcom@sina.com (bigtornado) Organization: http://groups.google.com/ Message-ID: <5624c1bf.0203271750.4b488713@posting.google.com> hi, I want program MPC860T's SCC and TDMa for working as E1 line,I use SCC's transparent mode,connect SCC to TDMa,now SCC can work well in it's loopback mode,but when I connect the SCC to TDMa and let TDMa work in loopback mode,I can't receive data stream,TDMa's SYNC and CLK provided by E1 chip DS21354,the follow is my code for initialize TSA: void SiTsaInit(void) { int immrVal = vxImmrGet(); SI_Entry = SIRAM(immrVal); /*************************************************** * Initialize the SIMODE register * Initialize for work in internal loopback mode ****************************************************/ /**SIMODE(immrVal) = 0;*/ *SIMODE(immrVal) |= 0x00000840; /**************************************************** * Initialize the SI Router Clock register * To connect SCC2 to the multiplexed SI ****************************************************/ /* *SICR(immrVal) = 0;*/ *SICR(immrVal) |= 0x00004000; /*************************************************** * Configuration Port A for TDMa functionality * PA7 = L1RCLKA PA8 = L1RXDA PA9 = L1TXDA ****************************************************/ *PAPAR(immrVal) |= 0x01c0; /*0b0000 0001 1100 0000;*/ *PADIR(immrVal) |= 0x00c0; /*0b0000 0000 1100 0000;*/ *PADIR(immrVal) &= 0xffef; /*0b1111 1110 1111 1111*/ /******************************************************* * Configuration PA9 = L1TXDA as open-drain output *******************************************************/ /**PAODR(immrVal) |= 0x0040; */ /*0b0000 0000 0100 0000;*/ /***************************************************** * Configuration Port C for sync tx and rx * PC4 = L1RSYNCA PC5 = L1TSYNCA ******************************************************/ *PCPAR(immrVal) |= 0x0C00; /*0b0000 1100 0000 0000 ;*/ *PCDIR(immrVal) &= 0xf3ff; /*0b1111 0011 1111 1111;*/ /*Configuration SI RAM entries*/ SI_Entry[0] = 0x00be0000; SI_Entry[1] = 0x00bf0000; SI_Entry[64] = 0x00be0000; SI_Entry[65] = 0x00bf0000; /******************************************************* * Initialize SI Globe Mode Register * To eanble TDMa *******************************************************/ *SIGMR(immrVal) = 0x0; *SIGMR(immrVal) |= 0x04; /********TSA init end*************/ } has it any errors?Anyone help me!Thanks! BRs! --------------------------- Newsgroups: comp.os.vxworks Subject: windNet PPP&PPPOE1.2 ,how to bind pppoe service to Multi Ethernet Port ? Date: 27 Mar 2002 18:12:25 -0800 From: sardine_sz@163.net (sardine) Organization: http://groups.google.com/ Message-ID: hi gurus, is there have anyone know how to bind a pppoe service to Multi ethernet port, it's mean, when i start pppoe service , my pppoe client can check the pppoe service from different ethernet port on the pppoeAC device. now i use windNet ppp&pppoe1.2 . any reply,appreciate !!! --------------------------- Newsgroups: comp.os.vxworks Subject: how to use envoy in tornado? Date: 27 Mar 2002 18:37:05 -0800 From: xiangxinyan@yahoo.com.cn (Alice) Organization: http://groups.google.com/ Message-ID: It is said that envoy.h, install.h, snmp.h are for > Various definitions and compile-time constants needed > to build the SNMP agent. > > the following code is from mib.h: > #if INSTALL_ENVOY_AGENTX_MASTER > bits32_t session_id; /* session for this object */ > bits16_t ref_count; /* reference count */ > bits8_t timeout; /* timeout period */ > #endif > ...... > #if INSTALL_ENVOY_TWO_CHAR_MACROS > #define RO READ_ACCESS /* READ ONLY ACCESS */ > #define WO WRITE_ACCESS /* WRITE ONLY ACCESS */ > #define RW (READ_ACCESS | WRITE_ACCESS) /* READ/WRITE ACCESS */ > #define RC (READ_ACCESS | WRITE_ACCESS | CREATE_ACCESS) /* READ/CREATE */ > #define NO NOTIFY_ACCESS /* NOTIFY ONLY ACCESS */ > #endif > > Do I need to add"#define INSTALL_ENVOY_TWO_CHAR_MACROS"? --------------------------- Newsgroups: comp.arch.embedded,comp.os.linux.embedded,comp.os.linux.powerpc,comp.os.psos,comp.os.vxworks,comp.realtime,comp.sys.arm,comp.sys.mips,comp.sys.powerpc.advocacy,comp.sys.powerpc.misc,comp.sys.powerpc.tech Subject: SAB 82532/82538 device drivers Date: Tue, 26 Mar 2002 09:39:39 +0200 From: "Rami Gideoni" Organization: Internet Gold, ISRAEL Message-ID: Hi, I need device drivers for the infineon (siemens) SAB 82532/82538 serial communication controllers. Any source code, pointers, ideas, hits or any other assistance will be most appreciated. Thanks in advance RamiG. --------------------------- Newsgroups: comp.os.vxworks Subject: BSD and END device drivers Date: Wed, 27 Mar 2002 19:14:03 -0800 From: Aravind Srinivasan Organization: Cisco Systems Inc. Message-ID: <3CA28A7B.FB0C4972@cisco.com> Hi, I am trying to integrate a broadcom ethernet driver which is END based and AMD 79C970 (PCI-Pcnet) driver, driver which is BSD 4.4 based into a single Vxworks 5.4 image. Is it okay? Are there any gotchas that I should look out for? Thanks, Aravind --------------------------- Newsgroups: comp.os.vxworks Subject: Can I kill a task in itself? Date: 27 Mar 2002 21:35:57 -0800 From: seatide@263.net (seatide) Organization: http://groups.google.com/ Message-ID: as title --------------------------- Newsgroups: comp.os.vxworks Subject: How to Communicate between Two vxsim Targets in Windows 2000 Date: 27 Mar 2002 21:37:12 -0800 From: mohit@mahindrabt.com (Mohit) Organization: http://groups.google.com/ Message-ID: <538e14e.0203272137.50aedafc@posting.google.com> I have followed the procedure mentione in the tutorial to create multiple targets and ping them. I also Configured ULIP driver and enabled IpForwarding. But still when i try to ping Target i.e. 90.0.0.1 or 90.0.0.2 either from Tronado shell or from ms-Dos prompt there is no reply.Target servers for both the targets are running fine. I have observed one problem in ULIP driver, the connection for ULIP driver is shown disabled when i try to enable it i get the Error message "Connection Failed". Is it related to the problem i mentioned above. If yes then could anybody plese tell how to enable the ULIP connection.If no then please tell me what additional steps should be taken to solve the problem. Thanks, --------------------------- Newsgroups: comp.os.vxworks Subject: Re: BSD and END device drivers Date: Thu, 28 Mar 2002 05:38:25 GMT From: "Kumar Mahesh" Organization: AT&T Broadband Message-ID: References: <3CA28A7B.FB0C4972@cisco.com> Why don't you get the END driver for AMD 79C970 from the AMD website and use it. With two END it is easier to set up routing and other interface specific items than if you a one END driver and a BSD driver. Mahesh maheshn@attbi.com "Aravind Srinivasan" wrote in message news:3CA28A7B.FB0C4972@cisco.com... > Hi, > > I am trying to integrate a broadcom ethernet driver which is END based > and AMD 79C970 (PCI-Pcnet) driver, driver which is BSD 4.4 based into a > single Vxworks 5.4 image. > Is it okay? Are there any gotchas that I should look out for? > > > Thanks, > Aravind > --------------------------- Newsgroups: comp.os.vxworks Subject: why vxworks PING makes the system slow in winnt ?? Date: 27 Mar 2002 21:39:03 -0800 From: sharvan_fr@yahoo.com (Sarvanan) Organization: http://groups.google.com/ Message-ID: Hi all, When i tried to ping between "Two simulators" say 90.0.0.1 & 90.0.0.2 , on winnt host machine ,it slows down the entire process. Also it slows down the application running under the simulators. Due to this slow down in process iam getting the request timed out in the application . so for every time i need to increase my tiemout both in application and in tornado tool . Can any one help me ,How to solve this problem . Thankx in advance ... Regards, sharvan. --------------------------- Newsgroups: comp.os.vxworks Subject: where can I find the driver of 82559? Date: 27 Mar 2002 21:40:52 -0800 From: seatide@263.net (seatide) Organization: http://groups.google.com/ Message-ID: as title --------------------------- Newsgroups: comp.os.vxworks Subject: Re: BSD and END device drivers Date: 27 Mar 2002 21:44:33 -0800 From: seatide@263.net (seatide) Organization: http://groups.google.com/ Message-ID: References: <3CA28A7B.FB0C4972@cisco.com> sorry,only have a test here. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: select and pty Date: 27 Mar 2002 21:58:03 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203272158.68c3a627@posting.google.com> References: <488e459a.0203270049.12b0fc87@posting.google.com> Hello, > But I have one doubt. The slave fd is normally used to talk to shell > or parser. Whether I am right ? It shouldn't matter; the two ends are essentially the same. The difference in the select behaviour results from the use of a single tyLib device to implement the pseudo tty. It just happens that the way the master and slave are connected to the underlying tyLib device results in the slave supporting select. To understand this you need to realise how the pty is implemented. Basically, one end is on top of the tyLib device (the slave), the other end is pretending to be a low level physical device driver, much like an SIO driver (the master). Since only the user side of a tyLib device is normally interested in select, only that side makes the correct calls. The fix is simple; just handle the master's select/unselect ioctl() calls in the ptyDrv code. In your case, as long as you only need select on one end of the link, you can swap them safely; if you need select at both ends, contact Wind River support (email me if you go this way... I can let you have the SPR number for this problem which might get you a patch quicker - can't remember it tonight though, and I'm at home so I can't look it up). Rgds, John... > Regards > DSA > > > john_94501@yahoo.com (John) wrote in message news:<488e459a.0203270049.12b0fc87@posting.google.com>... > > Hello, > > > > You have found something a little unusual... try swapping your master > > and slave fds over and it should work; i.e. select the slave and use > > the master side in the echoing task. > > > > I suggest filing this as a problem report with support, and if you can > > get away with just swapping the master and slave ends over for your > > app, do that. > > > > HTH, > > > > John... > > > > dsa0000@hotmail.com (dsa) wrote in message news:... > > > I have some problem regarding select and pty fds. > > > In main task I created two pty fds and passed the > > > slave pty fd to a spwaned task which does nothing but echo. > > > > > > ptyDrv (); > > > ptyDevCreate ("/pty/s.", 512, 512); > > > open ("/pty/s.M",, O_RDWR, 0); > > > open ("/pty/s.S",, O_RDWR, 0); > > > > > > The main task pends on a select which multiplexes a client > > > socket and master pty fd. > > > > > > I could verify that the data is read from the client socket and wrote to > > > the master fd. The spawned task reads from the slave fd and writes back > > > to the slave fd. But in the main task the select is still pending. > > > > > > Whether is there known issues with select and pty in vxworks ? > > > > > > or whether I am doing some thing wrong ? > > > > > > Regards > > > DSA --------------------------- Newsgroups: comp.os.vxworks Subject: Re: modifying configlettes` Date: Thu, 28 Mar 2002 06:07:34 GMT From: "drdiags" Organization: AT&T Broadband Message-ID: References: <3CA227BC.7A8F78F5@notifier-is.net> David, Do you see the file being included in the prjConfig.c? Also, you could check to see what initgroup the init routine would be called from or put a syntax error in the file and compile. Also, make sure the configlette is referenced in a *.cdf file (the configlette could be an leftover and a renamed configlette has replaced it). Since you are modifying and not adding, this shouldn't be a problem. "david lindauer" wrote in message news:3CA227BC.7A8F78F5@notifier-is.net... > hi, > I'm on an x86 development system (target also happens to be x86) and > want to modify one of the configlettes in > /tornado/target/config/comps/src (actually in the net/http directory if > that makes a difference). > I made the changes but it seems as if my change didn't work. I did a > build all, so is there anything I can do to get it to recompile the > configlettes? Or did they recompile somewhere in the background and my > change just isn't taking for some other reason? > > Thanks, > > David > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: BSD and END device drivers Date: Wed, 27 Mar 2002 22:15:03 -0800 From: Aravind Srinivasan Organization: Cisco Systems Inc. Message-ID: <3CA2B4E7.2D4A063E@cisco.com> References: <3CA28A7B.FB0C4972@cisco.com> There are many platform specific changes in the old AMD driver. AMD 79C970 , I believe, has been/ will be, made end of life. And so porting the code onto the END driver for this chip is not an option. And while I will be using the BCM END driver, still the old driver has to function for backward compatibilty issues. Kumar Mahesh wrote: > Why don't you get the END driver for AMD 79C970 from the AMD website and use > it. With two END it is easier to set up routing and other interface specific > items than if you a one END driver and a BSD driver. > > Mahesh > maheshn@attbi.com > > "Aravind Srinivasan" wrote in message > news:3CA28A7B.FB0C4972@cisco.com... > > Hi, > > > > I am trying to integrate a broadcom ethernet driver which is END based > > and AMD 79C970 (PCI-Pcnet) driver, driver which is BSD 4.4 based into a > > single Vxworks 5.4 image. > > Is it okay? Are there any gotchas that I should look out for? > > > > > > Thanks, > > Aravind > > --------------------------- Newsgroups: comp.os.vxworks Subject: Reboot Target error Date: 27 Mar 2002 23:34:29 -0800 From: supergod2001@bigfoot.com (supergod) Organization: http://groups.google.com/ Message-ID: <58cafc21.0203272334.27976c4a@posting.google.com> I want to reboot target and load boot rom from target ATA drive, but after i type "reboot" on the target console or windsh,it failed and returned error value as following: dosFsDevInit Failed usrFdConfig Failed value=-1=0xffffffff=_func_taskRegsShowRtn+0xffe09b13 If i cold boot target,it can load boot rom from ATA drive and load vxworks. I have changed SYS_WARM_TYPE to SYS_WARM_ATA in config.h. But it seems vxworks still wants to mount floopy to find boot rom. And more, if i insert a vxworks boot diskete in floopy, then type "reboot" it failed also. So what can i do? Our Target is Pentium based --------------------------- Newsgroups: comp.os.vxworks Subject: Re: semBCreate() Date: Thu, 28 Mar 2002 09:02:54 +0100 From: "Michael Lawnick" Organization: Buergernetz Dillingen Message-ID: References: Reply-To: "Michael Lawnick" Sender: mlawnick@pd9e658cd.dip.t-dialin.net "lang2" schrieb im Newsbeitrag news:a7sv57$pb9$1@kermit.esat.net... > > "Michael Lawnick" wrote in message > news:a7stac$fki$1@snoopy.bndlg.de... > > > > "lang2" schrieb im Newsbeitrag > > news:a7snpd$mfu$1@kermit.esat.net... > > > > > > "Michael Lawnick" wrote in message > > > news:a7sjbg$7s3$1@snoopy.bndlg.de... > > > > Liang, Bob, > > > > > > > > don't let me die stupid - what is a 'recursive' semaphore ??? > > > > I know counting- and binary-semaphores and mutex, but have never heard > > of > > > a > > > > recursive one ! > > > > > > > > "lang2" schrieb im Newsbeitrag > > > > news:a7sdf9$gvt$1@kermit.esat.net... > > > > > > > > > > "Bob Bradley" wrote in message > > > > > news:bob-A0B288.03585627032002@news.apple.com... > > > > > > In article , > > > > > > "lang2" wrote: > > > > > > > > > > > > > This function can create a binary semaphore with SEM_Q_FIFO or > > > > > > > SEM_Q_PRIORITY. > > > > > > > But is the semaphore created recursive? > > > > > > > > > > > > No, but if you need a recursive semaphore, you can use semMCreate. > > > > > I looked up the reference, semMCreate can take the following > options: > > > > > SEM_Q_PRIORITY > > > > > SEM_Q_FIFO > > > > > SEM_DELETE_SAFE > > > > > SEM_INVERSION_SAFE. > > > > > > > > > > I can't find an recurrsive option there. > > > > > > > > Sorry if I confused you. I mean a binary semaphore which can be grabbed > by > > > the same thread for multi times. > > > > > That is a _mutex_ (MUTual EXclusion). > > Create it by semMCreate, rest like normal semaphores. > > > Yes that was exactly what I mean. But vxWorks seems like the name semaphore > for some reason. > > Do you mean that the mutex(semaphore) is recurrsive by default? RTFM The mutual-exclusion semaphore is a specialized version of the binary semaphore, designed to address issues inherent in mutual exclusion, such as recursive access to resources, priority inversion, and deletion safety. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: DosFs File Attributes Date: Thu, 28 Mar 2002 09:08:50 +0100 From: "Michael Lawnick" Organization: Buergernetz Dillingen Message-ID: References: Reply-To: "Michael Lawnick" Sender: mlawnick@pd9e658cd.dip.t-dialin.net "Jim S" schrieb im Newsbeitrag news:a7t0u9$hgb@nntpa.cb.lucent.com... > Are there any tips on setting attributes for files under DosFs? > I've tried the documented procedure of: > > fd=open("filename", O_RDONLY, 0) > fstat (fd, &statStruct) > ioctl (fd, FIOATTRIBSET, statStruct.st_attrib | DOS_ATTR_RDONLY)) /* > DOS_ATTR_RDONLY = 0x01 */ > > But the ioctl( ) always returns error (-1) and the file attributes remain > unchanged. The files exist (open OK and I can check the size), but the > attribute always show as 0x0. > > Also, what's the deal with dosFs2.0? Is it part of the standard Tornado > 2/VxW 5.4? Seems we have the original dosFs as part of a recent T2/VxW 5.4, > would this contribute to my problem? WindSurf offered little insight on > this. Tornado 2 comes with old dosFs, but you can ask your FAE for a free update. Tornado 2.2 is promised to come with dosFs2 as its 'native' FS and as a free update for all customers with support (on request). In dosFs2 you can use the function attrib(). HTH Michael --------------------------- Newsgroups: comp.os.vxworks Subject: Re: modifying configlettes` Date: Thu, 28 Mar 2002 09:13:10 +0100 From: "Michael Lawnick" Organization: Buergernetz Dillingen Message-ID: References: <3CA227BC.7A8F78F5@notifier-is.net> Reply-To: "Michael Lawnick" Sender: mlawnick@pd9e658cd.dip.t-dialin.net "david lindauer" schrieb im Newsbeitrag news:3CA227BC.7A8F78F5@notifier-is.net... > hi, > I'm on an x86 development system (target also happens to be x86) and > want to modify one of the configlettes in > /tornado/target/config/comps/src (actually in the net/http directory if > that makes a difference). > I made the changes but it seems as if my change didn't work. I did a > build all, so is there anything I can do to get it to recompile the > configlettes? Or did they recompile somewhere in the background and my > change just isn't taking for some other reason? > > Thanks, > > David Take care that you have closed and reopened your workspace after cdf-change ! The cdf files are only parsed once, on the first expansion of the vxWorks-tab tree. HTH Michael --------------------------- Newsgroups: comp.os.vxworks Subject: Re: modifying configlettes` Date: Thu, 28 Mar 2002 09:14:52 +0100 From: Markus Pietrek Organization: FS Forth Systeme GmbH Message-ID: References: <3CA227BC.7A8F78F5@notifier-is.net> david lindauer wrote: > hi, > I'm on an x86 development system (target also happens to be x86) and > want to modify one of the configlettes in > /tornado/target/config/comps/src (actually in the net/http directory if > that makes a difference). Why not copying the files to your project or BSP? In case you update Tornado it's likely that you changes to comps/src will get lost. Bye, Markus --------------------------- Newsgroups: comp.os.vxworks Subject: Re: PCI interrupt routines Date: Thu, 28 Mar 2002 09:16:58 +0100 From: "Michael Lawnick" Organization: Buergernetz Dillingen Message-ID: References: Reply-To: "Michael Lawnick" Sender: mlawnick@pd9e658cd.dip.t-dialin.net "Peter Kannegiesser" schrieb im Newsbeitrag news:mid4aucvrlek3ssigc1bf3e1cu9ncmo2ln@4ax.com... > Hello everybody! > > Right now I'm fighting with an interrupt routine for a device driver > for a custom PCI board. > I use Tornado II with the standard pcPentium BSP. > The driver is connected to the interrupt using pciConnectInt(...) > > Question: Is it necessary for may driver to handle hardware (apart > of course from the board it is handling)? > Things such as sending EOI to the interrupt controller or similar... > > I believe that would be the responsiblity of the BSP, not of my > driver but feel somewhat unsure about it. > > Any thoughts, ideas or even wisdom? > > TIA, Peter > -- > keine sig You are right in the way it is "the responsiblity of the BSP". This assumes, you are using the dedicated H/W (not always true) and have enabled the needed modules (not always true,too ;-)). HTH Michael --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Can I kill a task in itself? Date: Thu, 28 Mar 2002 09:20:50 +0100 From: "Michael Lawnick" Organization: Buergernetz Dillingen Message-ID: References: Reply-To: "Michael Lawnick" Sender: mlawnick@pd9e658cd.dip.t-dialin.net Just return(); "seatide" schrieb im Newsbeitrag news:b6e3.0203272135.65961a4f@posting.google.com... > as title --------------------------- Newsgroups: comp.os.vxworks Subject: Re: DosFs File Attributes Date: 28 Mar 2002 09:04:44 GMT From: Johan Borkhuis Organization: Agere Systems Message-ID: References: "Michael Lawnick" wrote: > Tornado 2 comes with old dosFs, but you can ask your FAE for a free > update. Tornado 2.2 is promised to come with dosFs2 as its 'native' FS > and as a free update for all customers with support (on request). DosFS2 is already included in Tornado 2.1. Groeten, Johan - -- o o o o o o o . . . _____________________________ o _____ || Johan Borkhuis | .][__n_n_|DD[ ====_____ | borkhuis@agere.com | >(________|__|_[_________]_|__________________________| _/oo OOOOO oo` ooo ooo 'o!o!o o!o!o` === VxWorks FAQ: http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html === --------------------------- Newsgroups: comp.os.vxworks Subject: Re: ipAttach - c vs c++ Date: 28 Mar 2002 09:16:33 GMT From: Johan Borkhuis Organization: Agere Systems Message-ID: References: <8fe86b76.0203150523.37bcf451@posting.google.com> <3CA23F13.7090508@nospam.icon-labs.com> Pete Flugstad wrote: > Acutally, the C compiler Tornado uses is an old version of GCC (2.7.2 > on my install). GCC recognizes // for comments, *except* if you turn > on -ansi, which is on by default inside Tornado. I bet if you remove > the -ansi from your build lines, the compiler will accept // just > fine. Also take a look at this FAQ entry: http://www.xs4all.nl/~borkhuis/vxworks/vxw_pt1.html#1.1-N Groeten, Johan - -- o o o o o o o . . . _____________________________ o _____ || Johan Borkhuis | .][__n_n_|DD[ ====_____ | borkhuis@agere.com | >(________|__|_[_________]_|__________________________| _/oo OOOOO oo` ooo ooo 'o!o!o o!o!o` === VxWorks FAQ: http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html === --------------------------- Newsgroups: comp.os.vxworks Subject: Re: PCI interrupt routines Date: Thu, 28 Mar 2002 10:21:11 +0100 From: Peter Kannegiesser Message-ID: References: On Thu, 28 Mar 2002 09:16:58 +0100, "Michael Lawnick" wrote: >You are right in the way it is "the responsiblity of the BSP". This assumes, >you are using the dedicated H/W (not always true) and have enabled the >needed modules (not always true,too ;-)). I might be a bit dense today, but what do you mean with "the needed modules"? - -Peter --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Can I kill a task in itself? Date: Thu, 28 Mar 2002 09:44:41 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3CA2E67D.8070807@spamm.me.l8s.co.uk> References: Michael Lawnick wrote: > Just > return(); or exit() --------------------------- Newsgroups: comp.os.vxworks Subject: Re: CLI Parser for VxWorks Date: Thu, 28 Mar 2002 10:10:47 GMT From: pjt@iki.fi Organization: Embassy of Elbonia, 42 Kûrvi-Tasch Avenue, Szohod Message-ID: References: <182ee52a.0201251347.2a1d1421@posting.google.com> <9b6f8883.0201251727.781eea1a@posting.google.com> Sender: ptaipale@dslnm.trs.ntc.nokia.com "Dave Korn" writes: > [assuming CLI refers to a command-line here] > > Other good options are the free source utilities lexx/yacc and bison, all > of which provide a simple C-like syntax for constructing parsers of pretty > much any complexity you like. I did this. I would recommend the approach, because bison/flex beats out any commercial CLI engines (such as RapidControl) in power and flexibility. If you can't write C code without someone holding yor hand, then the Windows toys are good for you, but effectively they look like potentially bug-infested gadgets useful for generating a list of function pointers. A mediocre programmer can do better without. The problem with yacc-type parsers is that implementing a good interactive command completion and help system is not trivial. I did it by adding pre-processing tags into the bison source, and generating the completion and help rules automatically from these with a perl script which is run in the build process before bison. - -- Pekka Taipale -- pjt@iki.fi -- http://www.iki.fi/pjt/ --------------------------- Newsgroups: comp.os.vxworks Subject: Re: using CLI commands from file Date: Thu, 28 Mar 2002 10:30:09 GMT From: pjt@iki.fi Organization: Embassy of Elbonia, 42 Kûrvi-Tasch Avenue, Szohod Message-ID: References: Sender: ptaipale@dslnm.trs.ntc.nokia.com ilyasg@yahoo.com (Ilyas G) writes: > I have a file containing a set of CLI commands. > is there any way to re-play this file ? > or to send it to the stdin in order to execute all the command it > contains instead of typing it again. I don't know the internals of RapidControl, which you are using, but in my CLI (which is using ioTaskStdSet to do input/output through a Telnet connection created with telnetCallAdd) I just open the file containing CLI commands, re-assign stdin/stdout to the file descriptor, do commands until end of file, and then restore the stdin/stdout. See the manual pages for ioTaskStdGet and ioTaskStdSet, it's quite easy (unless RapidControl somehow harrasses you, I don't know if it could do that). - -- Pekka Taipale -- pjt@iki.fi -- http://www.iki.fi/pjt/ --------------------------- Newsgroups: comp.os.vxworks Subject: rlogin client puts stdout to shell session Date: Thu, 28 Mar 2002 11:22:12 GMT From: pjt@iki.fi Organization: Embassy of Elbonia, 42 Kûrvi-Tasch Avenue, Szohod Message-ID: Sender: ptaipale@dslnm.trs.ntc.nokia.com I have a command line interpreter, which works just as I want it to. We've moved the regular telnet daemon to another port and CLI listens to port 23. CLI task sets its input/output with ioTaskStdSet. All this works fine. The problem: I'd like to add an "rlogin" command to the CLI. I call the "rlogin" function of VxWorks, which runs great, except that... ...it does take standard input from my CLI, but it directs standard output to the shell/console task's stdout! In other words: I have a VxWorks shell session in one telnet window, my CLI in another telnet window. In the CLI window, I say "rlogin blaah", and yes, VxWorks really connects to blaah, but the login prompt of "blaah" is displayed in the shell window. If I type a valid login name and password in the CLI window, I get the other system's prompt in the shell window. The CLI window has the input, the shell window has the output. How to fix this? It appears as if the VxWorks "rlogin" client implementation incorrectly does something like ioTaskStdSet(taskIdSelf(), STD_OUT, ioGlobalStdGet(STD_OUT)); (but doesn't do it for STD_IN). Anyone seen this before, know how to fix it? Alternatively, does anyone know of a neat "telnet" client implementation for VxWorks? I would like to avoid re-inventing the wheel, if at all possible. (VxWorks seems to be infested with nasty little inconveniences resulting from the fact that implementation always assumes that you have just one shell session.) - -- Pekka Taipale -- pjt@iki.fi -- http://www.iki.fi/pjt/ --------------------------- Newsgroups: comp.os.vxworks Subject: Re: rlogin client puts stdout to shell session Date: Thu, 28 Mar 2002 11:24:24 +0000 (UTC) From: David Laight Organization: BT Openworld Message-ID: <3CA2FDDC.8010007@spamm.me.l8s.co.uk> References: > How to fix this? It appears as if the VxWorks "rlogin" client > implementation incorrectly does something like > ioTaskStdSet(taskIdSelf(), STD_OUT, ioGlobalStdGet(STD_OUT)); > (but doesn't do it for STD_IN). If you know where it does it, patch (ie overwrite the opcodes during system startup) the call to ioTaskStdSet() so that it calls a routine of your own instead - which sets both stdin and stdout. David --------------------------- Newsgroups: comp.os.vxworks Subject: Establishing ppp Connection between vxWorks and windows2000 Date: 28 Mar 2002 03:44:01 -0800 From: vinodkrishnankutty@hotmail.com (vinod) Organization: http://groups.google.com/ Message-ID: hi Could someone please tell me the configurations required on the windows 2000 side in order to establish a ppp connection between vxworks and windows 2000 Thanx in advance, vinod --------------------------- End of New-News digest ********************** From vxwexplo-errs@csg.lbl.gov Fri Mar 29 04:03:23 2002 From: Vxworks Exploder Date: Fri Mar 29 04:03:26 PST 2002 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Fri Mar 29 04:03:18 PST 2002 Subject: Re: rlogin client puts stdout to shell session Subject: Re: Default Signal Handler Subject: Re: DosFs File Attributes Subject: Re: PCI interrupt routines Subject: Re: rlogin client puts stdout to shell session Subject: Re: Can I kill a task in itself? Subject: Re: Establishing ppp Connection between vxWorks and windows2000 Subject: Re: Can I kill a task in itself? Subject: Semaphore identification in task switch hook Subject: [EPILOGUE] RFC2320 - Function missing Subject: taskDelay bug? Subject: lfd, stfd and floating point register Subject: Re: Reboot Target error Subject: Re: where can I find the driver of 82559? Subject: Destroying a semaphore initialized with semBInit Subject: Re: taskDelay bug? Subject: Re: debugging on MCPN765 card (vxworks) Subject: What happens to vxWorks default exception handler Subject: Re: Destroying a semaphore initialized with semBInit Subject: Re: rlogin client puts stdout to shell session Subject: Re: using CLI commands from file Subject: Re: BSD and END device drivers Subject: Re: Default Signal Handler Subject: Re: windNet PPP&PPPOE1.2 ,how to bind pppoe service to Multi Ethernet Port ? Subject: Difference between BSP Developer's Kit and VxWorks Programmer's Guide Subject: Re: Semaphore identification in task switch hook Subject: Re: PCI interrupt routines Subject: Using undefined exceptions. Subject: Re: BSD and END device drivers Subject: Re: How to preform periodical task except sysAuxClkRateSet() Subject: Re: Destroying a semaphore initialized with semBInit Subject: Re: windNet PPP&PPPOE1.2 ,how to bind pppoe service to Multi Ethernet Port ? Subject: Re: BSD and END device drivers Subject: Re: Destroying a semaphore initialized with semBInit Subject: [Question] About RS422, 485 Subject: Re: ISR not Working - IBM PPC405GP Subject: vxsim trial software? Subject: Re: What happens to vxWorks default exception handler Subject: Re: Difference between BSP Developer's Kit and VxWorks Programmer's Guide Subject: Re: Establishing ppp Connection between vxWorks and windows2000 Subject: Re: vxsim trial software? Subject: how to create tasks with desired status Subject: Re: Destroying a semaphore initialized with semBInit Subject: sysClkRateSet() limit ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Re: rlogin client puts stdout to shell session Date: Thu, 28 Mar 2002 12:08:40 GMT From: pjt@iki.fi Organization: Embassy of Elbonia, 42 Kûrvi-Tasch Avenue, Szohod Message-ID: References: <3CA2FDDC.8010007@spamm.me.l8s.co.uk> Sender: ptaipale@dslnm.trs.ntc.nokia.com David Laight writes: > If you know where it does it, patch (ie overwrite the opcodes > during system startup) the call to ioTaskStdSet() so that it > calls a routine of your own instead - which sets both stdin > and stdout. Hmm, this is a Real Programmer solution. As I'm not in need of *that* much job security, I'd like to do something a bit more portable. But if the choices are patching the binary, or porting a telnet client, the patch may be the option of least effort... - -- Pekka Taipale -- pjt@iki.fi -- http://www.iki.fi/pjt/ --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Default Signal Handler Date: Thu, 28 Mar 2002 13:12:26 GMT From: "Jim" Organization: Magma Communications Ltd. Message-ID: <_EEo8.9246$f5.624708@news> References: <488e459a.0203270115.56ab7567@posting.google.com> <6Sjo8.9059$f5.588439@news> I think you are right ... but I have been told by higher powers you are wrong ... I email vxworks support ... "each signal handler is bonded to a specific signal, not on a thread base, so if you call signal() to specify the signal handler associated with a signal (i.e. SIGBUS), it will being applied to all threads. You can refer vxworks programmer's guide page 1-349 and 2-746 for more detail on signal." "Hwa Jin Bae" wrote in message news:ua4n9lh47r52e5@corp.supernews.com... > Signals are specific to a given task. There is no way to assign a global > handler for all the tasks. You will need to use exception hooks instead. > > Even in Unix, you cannot declare a signal handler which will work in all > processes. What happens is by default the SIG_DFL handler will kill the > process. > > You can do something similar in vxWorks if you rewrite signals yourself. > But I don't think sigLib allows that. > > -- > Hwa Jin Bae > mailto:hjb@pso.com > http://www.pso.com > > > --------------------------- Newsgroups: comp.os.vxworks Subject: Re: DosFs File Attributes Date: Thu, 28 Mar 2002 14:19:36 +0100 From: "Michael Lawnick" Organization: Buergernetz Dillingen Message-ID: References: Reply-To: "Michael Lawnick" Sender: mlawnick@pd9e658cd.dip.t-dialin.net "Johan Borkhuis" schrieb im Newsbeitrag news:Xns91DF6689234ACborkhuisagerecom@135.7.153.101... > "Michael Lawnick" wrote: > > Tornado 2 comes with old dosFs, but you can ask your FAE for a free > > update. Tornado 2.2 is promised to come with dosFs2 as its 'native' FS > > and as a free update for all customers with support (on request). > > DosFS2 is already included in Tornado 2.1. AFAIK Tornado 2.1 is not available for all architectures. Michael --------------------------- Newsgroups: comp.os.vxworks Subject: Re: PCI interrupt routines Date: Thu, 28 Mar 2002 14:22:10 +0100 From: "Michael Lawnick" Organization: Buergernetz Dillingen Message-ID: References: Reply-To: "Michael Lawnick" Sender: mlawnick@pd9e658cd.dip.t-dialin.net "Peter Kannegiesser" schrieb im Newsbeitrag news:e1o5ausg6d6k3h1cieh75g9a0o209rr027@4ax.com... > On Thu, 28 Mar 2002 09:16:58 +0100, "Michael Lawnick" > wrote: > > > >You are right in the way it is "the responsiblity of the BSP". This assumes, > >you are using the dedicated H/W (not always true) and have enabled the > >needed modules (not always true,too ;-)). > > I might be a bit dense today, but what do you mean with "the needed > modules"? What's about INCLUDE_PCI to link in pciIntLib, pciConfigLib ? Michael --------------------------- Newsgroups: comp.os.vxworks Subject: Re: rlogin client puts stdout to shell session Date: Thu, 28 Mar 2002 13:29:01 GMT From: pjt@iki.fi Organization: Embassy of Elbonia, 42 Kûrvi-Tasch Avenue, Szohod Message-ID: References: <3CA2FDDC.8010007@spamm.me.l8s.co.uk> Sender: ptaipale@dslnm.trs.ntc.nokia.com pjt@iki.fi writes: > Hmm, this is a Real Programmer solution. As I'm not in need of *that* > much job security, I'd like to do something a bit more portable. > But if the choices are patching the binary, or porting > a telnet client, the patch may be the option of least effort... BTW, the rlogin output can be redirected in the shell quite normally. I find this a bit odd. rlogin() apparently spawns a task internally (rlogChildTask); does anyone have information as to how that works? (We do have a support agreement, but as Easter is approaching our time zone, it's hard to get hold of anyone...) - -- Pekka Taipale -- pjt@iki.fi -- http://www.iki.fi/pjt/ --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Can I kill a task in itself? Date: Thu, 28 Mar 2002 14:26:32 +0100 From: "Michael Lawnick" Organization: Buergernetz Dillingen Message-ID: References: <3CA2E67D.8070807@spamm.me.l8s.co.uk> Reply-To: "Michael Lawnick" Sender: mlawnick@pd9e658cd.dip.t-dialin.net "David Laight" schrieb im Newsbeitrag news:3CA2E67D.8070807@spamm.me.l8s.co.uk... > Michael Lawnick wrote: > > > Just > > return(); > > or exit() > Uh, the same devil as taskDelete(taskIdSelf ()). Its like asking for getting beat. Michael --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Establishing ppp Connection between vxWorks and windows2000 Date: Thu, 28 Mar 2002 14:46:53 +0100 From: "Michael Lawnick" Organization: Buergernetz Dillingen Message-ID: References: Reply-To: "Michael Lawnick" Sender: mlawnick@pd9e658cd.dip.t-dialin.net "vinod" schrieb im Newsbeitrag news:cb7218f2.0203280344.5fefa2f3@posting.google.com... > hi > Could someone please tell me the configurations required on the > windows 2000 side in order to establish a ppp connection between > vxworks and windows 2000 > > Thanx in advance, > vinod In the Control Panel: 'Network and Dial-up Connections'->'Make New Connection' In the Connection Wizard select the suitable mechansim and go through installation process. I found it straight forward. Michael --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Can I kill a task in itself? Date: Thu, 28 Mar 2002 14:34:29 GMT From: nunya@damn.business.com (Bruce) Organization: Prodigy Internet http://www.prodigy.com Message-ID: <3ca32a6b.5919291@news.dallas.sbcglobal.net> References: <3CA2E67D.8070807@spamm.me.l8s.co.uk> In comp.os.vxworks "Michael Lawnick" wrote: >Uh, the same devil as taskDelete(taskIdSelf ()). Its like asking for getting >beat. I like to comment this one like: taskDelete(taskIdSelf ()); // Commit suicide --------------------------- Newsgroups: comp.os.vxworks Subject: Semaphore identification in task switch hook Date: Thu, 28 Mar 2002 15:51:39 +0100 From: "Daniel Sundmark" Message-ID: <3ca32bb1@news.mdh.se> Hi! Is there anybody who knows how to extract information about what semaphore id that caused the task switch (due to a SemGive() or a SemTake()) in a task switch hook??? // Daniel --------------------------- Newsgroups: comp.os.vxworks,comp.protocols.snmp Subject: [EPILOGUE] RFC2320 - Function missing Date: 28 Mar 2002 06:55:12 -0800 From: ilyasg@yahoo.com (Ilyas G) Organization: http://groups.google.com/ Message-ID: I am trying to implement rfc2320 On VxWorks agent, first is there someone who has already tested that ? I have receaives some code from Windriver and it's really Bad !! they say that windnet support that ... However, in their code they call a function bld_amb_get_common() that seems inexistant !! any --------------------------- Newsgroups: comp.os.vxworks Subject: taskDelay bug? Date: 28 Mar 2002 07:07:21 -0800 From: sys_eng30@hotmail.com (System Engineer) Organization: http://groups.google.com/ Message-ID: <9c198a20.0203280707.42c77023@posting.google.com> Hi All, Has anybody ever had some troubles with the taskDelay(1)? It seems that one of the tasks in my application has got stock in this procedure. The problem has happened only once, but I want to find the root cause anyway. Example semA is a mutual exclusion semaphore. Task A: while (1) { semTake(semA); do_some_stuff(); semGive(semA); } task B while(1) { taskDelay(1); semTake(semA); do_other_things(); semGive(); } So the sequence is A -> B -> A ->B The priority of the task B is greater than the priority of the task A. --------------------------- Newsgroups: comp.os.vxworks Subject: lfd, stfd and floating point register Date: 28 Mar 2002 07:46:54 -0800 From: triniatlarge@yahoo.com (lovell James) Organization: http://groups.google.com/ Message-ID: Hi, I am trying to do 64 bit acessess in memory using lfd and stfd instructions. The problem that I am having is when I move my 64 bit contents into a floating point register I cannot display it. Is there a limitation to printf? I am using printf("%f") and even %g and nothing happens. I am also trying to parse a string and convert a string into a 64 bit number using sscanf without using 32 bit registers. That is, parse my string and convert the string into a 64 bit number which is stored in a floating point register ~ sscanf(string,"%f"........ Could this be done? I am using Vxworks 5.4, PPC755 LJ --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Reboot Target error Date: Thu, 28 Mar 2002 17:35:35 +0100 From: "Werner Schiendl" Message-ID: <3ca34655$1@brateggebdc5.br-automation.co.at> References: <58cafc21.0203272334.27976c4a@posting.google.com> Hi, check the global variable "sysWarmType" in the shell. It's value is the kind of reboot to exercise when issuing reboot. If it's not SYS_WARM_ATA, there is something wrong with your build. hth Werner "supergod" wrote in message news:58cafc21.0203272334.27976c4a@posting.google.com... > I want to reboot target and load boot rom from target ATA drive, but > after i type "reboot" on the target console or windsh,it failed and > returned error value as following: > > dosFsDevInit Failed > usrFdConfig Failed > value=-1=0xffffffff=_func_taskRegsShowRtn+0xffe09b13 > > If i cold boot target,it can load boot rom from ATA drive and load > vxworks. > > I have changed SYS_WARM_TYPE to SYS_WARM_ATA in config.h. > But it seems vxworks still wants to mount floopy to find boot rom. > > And more, if i insert a vxworks boot diskete in floopy, then type > "reboot" > it failed also. > > > So what can i do? Our Target is Pentium based --------------------------- Newsgroups: comp.os.vxworks Subject: Re: where can I find the driver of 82559? Date: Thu, 28 Mar 2002 17:32:50 +0100 From: "Werner Schiendl" Message-ID: <3ca345b0$1@brateggebdc5.br-automation.co.at> References: Hi, you want use the 'fei' driver for that. There is an updated version over the one originally shipped with Tornado II hth Werner "seatide" wrote in message news:b6e3.0203272140.3fb5e096@posting.google.com... > as title --------------------------- Newsgroups: comp.os.vxworks Subject: Destroying a semaphore initialized with semBInit Date: Thu, 28 Mar 2002 12:01:37 -0500 From: "Paul Kurmas" Message-ID: <3ca34c76$0$23841$4c41069e@reader0.ash.ops.us.uu.net> To prevent memory fragmentation, etc., I'm embedding a SEMAPHORE (from private\semLibP.h) in a structure and calling semBInit() to initialize it. No worries as yet... When I destroy the structure, I realize that there may be (OK, shouldn't be, but never say never) tasks blocked on the semaphore. There's got to be a cleanup step to release the blocked tasks, right? In semLibP.h, I see: extern STATUS semDestroy (SEM_ID semId, BOOL dealloc); Would I be correct in assuming that this (with dealloc = true) would clean up the initialized semaphore and unblock tasks? Further, would it leave the memory where the semaphore was alone ('cause it can't be free()d)? I looked through the Deja archives and couldn't find any mention of this before, and of course, this isn't in the FM. If no one knows for sure, I'll just get to read the disassembled function call, but a definitive answer would save some time. Thanks in advance... PK --------------------------- Newsgroups: comp.os.vxworks Subject: Re: taskDelay bug? Date: Thu, 28 Mar 2002 12:41:35 -0500 From: "doug dotson" Organization: Verio Message-ID: References: <9c198a20.0203280707.42c77023@posting.google.com> I think taskDelay (1) is probably not getting you what you want. It will delay for up to 1 tick but could be 0. Not sure why it would hang though. doug "System Engineer" wrote in message news:9c198a20.0203280707.42c77023@posting.google.com... > Hi All, > > Has anybody ever had some troubles with the taskDelay(1)? > > It seems that one of the tasks in my application has got stock in this > procedure. The problem has happened only once, but I want to find the > root cause anyway. > > Example > > semA is a mutual exclusion semaphore. > > Task A: > > while (1) > { > semTake(semA); > > do_some_stuff(); > > semGive(semA); > } > > task B > > while(1) > { > taskDelay(1); > semTake(semA); > > do_other_things(); > > semGive(); > } > > > So the sequence is A -> B -> A ->B > The priority of the task B is greater than the priority of the task A. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: debugging on MCPN765 card (vxworks) Date: Thu, 28 Mar 2002 18:37:54 +0100 From: "Werner Schiendl" Message-ID: <3ca354f0$1@brateggebdc5.br-automation.co.at> References: Hi, Do you add a local or global breakpoint? Local breakpoints are only active, when the correct task hits it. hth Werner "Rajat Dayal" wrote in message news:dbc7acef.0203240535.2e6d6ea8@posting.google.com... > Hi, > > Im using vxWorks on a Motorola MCPN765 card. > If i add a breakpoint on any function through the vxworks prompt it > doesnt get hit on execution. > -- although the breakpoint gets added correctly. > What could be the problem ? > > Regards > RD --------------------------- Newsgroups: comp.os.vxworks Subject: What happens to vxWorks default exception handler Date: 28 Mar 2002 10:12:06 -0800 From: ryeung@earthlink.net (Raymond Yeung) Organization: http://groups.google.com/ Message-ID: I'm invoking a function (via tShell) that I know would cause a bus timeout problem on 8260. Instead of getting a machine check or data access exception, my serial (actually the entire CPU) hangs. With vxMsrGet, I find out MSR is 0x9032, and this means EE, ME, IR and DR are enabled. And they're all recoverable. Shouldn't the BSP default handler at least dump a message on the console? What else could be happening? --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Destroying a semaphore initialized with semBInit Date: Thu, 28 Mar 2002 10:17:11 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <3ca34c76$0$23841$4c41069e@reader0.ash.ops.us.uu.net> If you used semInit() to initialize a semaphore, you should use semTerminate() to terminate it. You can flush all pending tasks on the semaphore before terminating it. Use semFlush(). - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: rlogin client puts stdout to shell session Date: Thu, 28 Mar 2002 10:22:14 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <3CA2FDDC.8010007@spamm.me.l8s.co.uk> The rlogin child task simply reads from the socket and write to stdout. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: using CLI commands from file Date: Thu, 28 Mar 2002 10:23:17 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: You can also use execute() function. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: BSD and END device drivers Date: Thu, 28 Mar 2002 10:29:11 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <3CA28A7B.FB0C4972@cisco.com> END driver eventually becomes BSD driver before hooking up to IP layer. As far as IP layer code is concerned all look like BSD driver. So the routing related issues are no problem even when you mix both END and BSD. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Default Signal Handler Date: Thu, 28 Mar 2002 10:47:20 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <488e459a.0203270115.56ab7567@posting.google.com> <6Sjo8.9059$f5.588439@news> <_EEo8.9246$f5.624708@news> I can't deny that I might be wrong, as I frequently am. However, as far as I know the signals are task specific. Just look at taskLib.h. In every task's TCB there is a struct sigtcb. This is where the signal handlers for each task get stored. It is possible that things have changed recently, but since Tornado 2.0? I doubt it. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: windNet PPP&PPPOE1.2 ,how to bind pppoe service to Multi Ethernet Port ? Date: Thu, 28 Mar 2002 10:51:24 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: The information I recently received from WRS is: " The short answer is that it's not possible with the current version of PPPoE. In the current version of PPPoE, the "oE" component is meerly a framing layer component in the PPP stack. And there are some restrictions in the code that allow only one "oE" framing layer per remote access framework. (very confusing, I know, but I'm dredging this from memory). I've talked to the engineers doing the PPPoE product and they have confirmed this limitation. However, we are looking at addressing this in a future release. If this "sardine" person would present themselves to WindRiver, it would help in creating the business case that we need to get some resources on this, as more people are asking for it. " - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Difference between BSP Developer's Kit and VxWorks Programmer's Guide Date: 28 Mar 2002 12:18:59 -0800 From: ryeung@earthlink.net (Raymond Yeung) Organization: http://groups.google.com/ Message-ID: I already have the programmer's guide, but don't have the developer's kit (they're not one and the same, right?). Can someone the differences in content between the two? What am I missing? --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Semaphore identification in task switch hook Date: Thu, 28 Mar 2002 12:52:09 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <3ca32bb1@news.mdh.se> There is no API for that as far as I know. Yet, it is possible to approximate this kind of information gathering. Look in taskLib.h. In it is the TCB structure. Every task has a pointer to "pending queue" called pPendQ. This is a pointer to a queue inside a semaphore the task is pending on, if any. Using the TCB pointers (old and new) you can glean some information about the semaphores this way. But this method probably belongs in the class of "hacks". - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: PCI interrupt routines Date: Thu, 28 Mar 2002 22:06:55 +0100 From: Peter Kannegiesser Organization: SEK Message-ID: <9c17austo339iug14gbkhpp28uo4jtmnf5@4ax.com> References: Reply-To: peter.kannegiesser@gmx.de On Thu, 28 Mar 2002 14:22:10 +0100, "Michael Lawnick" wrote: > >What's about INCLUDE_PCI to link in pciIntLib, pciConfigLib ? > Yeah, I have these. Anyway, my problem is solved -- to silly to describe :-) I am in for vacation... Thanks, Peter - -- keine sig --------------------------- Newsgroups: comp.os.vxworks Subject: Using undefined exceptions. Date: 28 Mar 2002 17:26:23 -0500 From: Bill Pringlemeir Organization: Factory of the mind Message-ID: Sender: bpringlemeir@DeadDuck - --=-=-= [Possibly the problem isn't ARM specific.] I have T2.1.1, which is the ARM release of T2.1, and it does not support the ARMARCH3 but only StrongARM and ARMARCH4 variants. I explored several options at emulating the address mode three instructions (and multiplies) that were added in ARCH4. Anyways, I ended up translating these op-codes to an illegal variant. However, vxWorks debugger also used an illegal opcode for break points. I have found a define that uses 0xE7FDDEFE for the break points. I confirmed this by setting breakpoints and writing code to retrieve the instruction (the vxWorks tool do something to prevent this). I then patched my own code into the illegal instruction vector and call the old vector, named excEnterUndef, after I have determined that this is a break point and not an ARMARCH4 instruction to be emulated. All is fine and well. I can set break points, step through the functions, etc. However, I recently discovered that when I set a breakpoint and hit it (calling my illegal instruction vector) the shell starts to behave strangely. Specifically, from the host tools the `i' command works fine but the `@i' command gives, -> @i WTX Error 0x100cc (AGENT_RT_ERROR) value = -1 = 0xffffffff I also have the shell running on a tty. Typing `i' here give, -> i Object not found. value = 18 = 0x12 I can run `lkup "printf"'on the host and the target. However, `@lkup "printf"' gives the same WTX error. I would suspect that something with WDB might have went wrong. I have limited visibility so it is difficult to figure out what is happening. Does excEnterUndef make any assumptions about the stack? I see that it changes to SVC32 mode quickly. My handler uses the UNDEF stack and hands off to the excEnterUndef. Upon closer inspections, I think that I might have to save whatever `undefined stack' and replace this before calling the vxWorks excEnterUndef. Does anyone else have any advice on this? Maybe I should be using the exception library. The overhead seems to much at first. However, my system seems ok even with the `C' implementation of the instruction emulation. I have also went through observing every ARCH4 instruction included in the T2.1.1 library files. My scanning code gets all of these appropriately for my target. However, many constant address references do decode to an `ldrh' instruction. I ignore these if they are in my DRAM range. The compiler doesn't seem to output these instructions as actual values. Thanks for any help, Bill Pringlemeir. - -- Have you ever rewired your dog through the use of psychokinetic energy? Or had someone you saw at a party spew gibberish while throwing an explosion in your mouth? You will. And the company that will bring it to you: AT&T. vxWorks FAQ, "http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html" - --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=am3.c Content-Description: [I shall commit a heinous sin] ARMARCH4 instruction emulation. /* am3.c */ /* * This module emulates addressing mode 3 of the ARM processor. * */ #include #include #include #include #include #include /* * Instruction decoding. * * Address mode 3 has the following bit decoding, * * 3 2 1 0 * 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 * /---------------------------------------------------------------\ * | cond |0 0 0|P|U|I|W|L| RN | RD |sbz/off|1 S H 1| RM/off| * \---------------------------------------------------------------/ * * cond - condition code, P - pre/post index, U - index sign, * I - immediate or register, W - write back, L - load/store, * sbz - should be zero, off - 8 bit offset, S - signed load, * h - 16 bit load (or store). * */ #define INSTR_ISAM3(i) (((i)&(IMASK_AM3))==(IOP_AM3)&&((i)&IMASK2_AM3)) #define IMASK_AM3 0x0E000090 #define IOP_AM3 0x00000090 #define IMASK2_AM3 0x00000060 /* B,D,F */ #define AM3_STACK_SIZE 2048 /* bytes */ #define AM3_HANDLER_ADRS 0x100 /* Addressing mode three bit definitions. */ #define AM3_P_BIT (1<<24) #define AM3_U_BIT (1<<23) #define AM3_I_BIT (1<<22) #define AM3_W_BIT (1<<21) #define AM3_L_BIT (1<<20) #define AM3_S_BIT (1<<6) #define AM3_H_BIT (1<<5) #define RN_MASK 0x000f0000UL #define RD_MASK 0x0000f000UL #define RM_MASK 0x0000000fUL #define IH_MASK 0x00000f00UL #define IL_MASK 0x0000000fUL #define RN_SHIFT 16 #define RD_SHIFT 12 #define RM_SHIFT 0 #define IH_SHIFT 8 #define IL_SHIFT 0 #define ERROR_PRINT(s...) /* nothing. */ /* #define ERROR_PRINT printf */ extern void (*am3PreviousHook)(void); extern void am3SetStack(void *stack); /* Correct for top! */ extern void am3Hook(void); extern void sysFlushIDCacheAll(void); #if 0 #define ldrh0(r,m) __asm__(" ldrb %0,[%1]\n" \ " ldrb %1,[%1,#1]\n" \ " add %0,%0,%1, LSL #8\n" :"=r" (r) : "r" (m)) #define strh0(r,m) __asm__ volatile(" strb %0,[%1]\n" \ " mov %0,%0,ROR #8\n" \ " strb %0,[%1,#1]\n" \ " mov %0,%0,ROR #24\n" :"=r" (r) : "r" (m)) #endif long long smull(int x, int y) { return (long long) x * (long long) y; } void am3Handler(UINT32 *esf, const UINT32 value) { UINT16 *mem; UINT32 *reg, regValue; UINT32 tmp; /* Multiply. */ if(!(value & (AM3_S_BIT | AM3_H_BIT))) { UINT32 *rdH, *rdL; UINT32 rm, rs; unsigned long long t; tmp = (value & RN_MASK) >> RN_SHIFT; rdH = &esf[tmp]; tmp = (value & RD_MASK) >> RD_SHIFT; rdL = &esf[tmp]; tmp = (value & IH_MASK) >> IH_SHIFT; rs = esf[tmp]; tmp = (value & RM_MASK) >> RM_SHIFT; rm = esf[tmp]; switch((value & 0x00600000)>>21) { default: /* UMULL */ case 0: /* RD = Rm * Rs */ t = (unsigned long long)rm * (unsigned long long)rs; *rdL = (UINT32)t; *rdH = (UINT32)(t>>32); break; case 1: /* UMLAL */ *rdL = 0; *rdH = 0; break; case 2: /* SMULL */ { int sign = 0; if(rs & 0x80000000UL) { rs = -rs; sign ^= 1; } if(rm & 0x80000000UL) { rm = -rm; sign ^= 1; } t = (unsigned long long)rm * (unsigned long long)rs; if(sign) { t = - t; } *rdL = (UINT32)t; *rdH = (UINT32)(t>>32); } break; case 3: /* SMLAL */ *rdL = 0; *rdH = 0; break; } return; } /* Get parameters */ tmp = (value & RN_MASK) >> RN_SHIFT; mem = (UINT16*)esf[tmp]; tmp = (value & RD_MASK) >> RD_SHIFT; reg = &esf[tmp]; /* Pre-index. */ if(value & AM3_P_BIT) { UINT32 offset; if(value & AM3_I_BIT) /* Immediate. */ { tmp = (value & IH_MASK) >> 4; /* >> 8, << 4 */ tmp |= (value & IL_MASK); offset = tmp; } else /* Register */ { tmp = value & RM_MASK; offset = esf[tmp]; } if(!(value & AM3_U_BIT)) /* Signed */ { offset = -offset; } if(value & AM3_W_BIT) /* Writeback. */ { tmp = (value & RN_MASK) >> RN_SHIFT; esf[tmp] += offset; } mem = (UINT16 *)((UINT32)mem + offset); } if(value & AM3_L_BIT) /* Load */ { switch((value & (AM3_S_BIT | AM3_H_BIT)) >> 5) { default: case 0: regValue = 0; break; case 1: /* half-word */ regValue = *mem; break; case 2: /* signed byte. */ regValue = *((UINT8*)mem); if(regValue & (1<<7)) { regValue |= 0xffffff00UL; } break; case 3: /* signed halfword */ regValue = *mem; if(regValue & (1<<15)) { regValue |= 0xffff0000UL; } break; } *reg = regValue; } else /* Store */ { *mem = (UINT16)*reg; } /* Writeback, post-indexed. */ if(!(value & AM3_P_BIT)) { UINT32 offset; /* Get parameters */ tmp = (value & RN_MASK) >> RN_SHIFT; reg = &esf[tmp]; if(value & AM3_I_BIT) /* Immediate. */ { tmp = (value & IH_MASK) >> 4; /* >> 8, << 4 */ tmp |= (value & IL_MASK); offset = tmp; } else /* Register */ { tmp = value & RM_MASK; offset = esf[tmp]; } if(!(value & AM3_U_BIT)) /* Signed */ { offset = -offset; } *reg += offset; } } static void setStack(void) { static char undefined_stack[AM3_STACK_SIZE]; am3SetStack(&undefined_stack[AM3_STACK_SIZE - 4]); } void am3InstallHandler(void) { void (**vector)(void) = (void(**)(void))AM3_HANDLER_ADRS; void (*temp)(void) = am3Hook; setStack(); am3PreviousHook = *vector; /* vxMemProbe((char*)vector, VX_WRITE, 4, (char*)&temp); */ *vector = temp; } void am3UninstallHandler(void) { void (**vector)(UINT32*) = (void(**)(UINT32*))AM3_HANDLER_ADRS; vxMemProbe((char*)vector, VX_WRITE, 4, (char*)&am3PreviousHook); } void am3Scan(UINT32 *scan, int size) { int count = -1; unsigned long code; while(count++ < size) { code = scan[count]; /* Inside address mode 3 space? */ if(INSTR_ISAM3(code)) { /* Always... */ if((code & 0xf0000000) != 0xe0000000 && (code & 0x0fe00000) != 0x01c00000) { ERROR_PRINT("wonky cc, %x: %.8lx\n", count, code); continue; } /* No signed stores. */ if(!(code & AM3_L_BIT) && (code & AM3_S_BIT)) { ERROR_PRINT("store S!L, %x: %.8lx\n", count, code); continue; } /* W set, P clear is not valid. */ if((code & AM3_W_BIT) && !(code & AM3_P_BIT)) { ERROR_PRINT("invalid W!P, %x: %.8lx\n", count, code); continue; } /* No byte stores (uses mode 2). */ if(!(code & AM3_L_BIT) && !(code & AM3_H_BIT)) { ERROR_PRINT("store !H!L, %x: %.8lx\n", count, code); continue; } /* No unsigned bytes (uses mode 2). */ if(!(code & AM3_S_BIT) && !(code & AM3_H_BIT)) { ERROR_PRINT("store !S!H, %x: %.8lx\n", count, code); continue; } /* Register and SBZ != 0. */ if(!(code & AM3_I_BIT) && (code & 0x00000f00)) { ERROR_PRINT("SBZ, %x: %.8lx\n", count, code); continue; } /* false CC. */ if((code & 0xf0000000)== 0xf0000000) { ERROR_PRINT("FALSE, %x: %.8lx\n", count, code); continue; } /* r15. */ if((code & RN_MASK) == RN_MASK) { ERROR_PRINT("r15, %x: %.8lx\n", count, code); continue; } /* r15. */ if((code & RD_MASK) == RD_MASK) { ERROR_PRINT("r15, %x: %.8lx\n", count, code); continue; } /* index, r15 */ if(!(code & AM3_I_BIT) && (code & RM_MASK) == RM_MASK) { ERROR_PRINT("r15, %x: %.8lx\n", count, code); continue; } /* Conditional mask allows `re-scan'. */ scan[count] = code | 0x06000000UL; } /* Multiply space. */ if((code & 0xff8000f0) == 0xe0800090) { /* EQ */ if((code & 0xf0000000) == 0x00000000) { /* MLA, MUL are ok. */ continue; } /* Always... */ if((code & 0xf0000000) == 0xf0000000) { ERROR_PRINT("wonky cc, %x: %.8lx\n", count, code); continue; } /* unknown op. */ if((code & 0x000f0000) == 0x000f0000) { ERROR_PRINT("RdH, %x: %.8lx\n", count, code); continue; } if((code & 0x0000f000) == 0x0000f000) { ERROR_PRINT("RdL, %x: %.8lx\n", count, code); continue; } if((code & 0x00000f00) == 0x00000f00) { ERROR_PRINT("Rs, %x: %.8lx\n", count, code); continue; } if((code & 0x0000000f) == 0x0000000f) { ERROR_PRINT("Rm, %x: %.8lx\n", count, code); continue; } /* Conditional mask allows `re-scan'. */ scan[count] = code | 0x06000000UL; } } sysFlushIDCacheAll(); } - --=-=-=-- --------------------------- Newsgroups: comp.os.vxworks Subject: Re: BSD and END device drivers Date: Thu, 28 Mar 2002 16:48:51 -0800 From: Aravind Srinivasan Organization: Cisco Systems Inc. Message-ID: <3CA3B9F3.BB5C728F@cisco.com> References: <3CA28A7B.FB0C4972@cisco.com> I believe that the IP layer has to implement MUX interface to interact with the END based device driver. However, for a BSD driver, IP could share the same ifnet data structure with the device driver to talk to each other. So can the IP layer do both in VXworks, i.e talk to a BSD driver as well as with the MUX?? Hwa Jin Bae wrote: > END driver eventually becomes BSD driver before hooking up to IP layer. As > far as IP layer code is concerned all look like BSD driver. So the routing > related issues are no problem even when you mix both END and BSD. > > -- > Hwa Jin Bae > mailto:hjb@pso.com > http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: How to preform periodical task except sysAuxClkRateSet() Date: 28 Mar 2002 14:49:21 -1000 From: Jim Thomas Organization: Canada France Hawai`i Telescope Message-ID: References: <5c074538.0203122254.56279c06@posting.google.com> <5c074538.0203131643.765b42c2@posting.google.com> <3c90a3ec@brateggebdc5.br-automation.co.at> <3C90AE69.10201@spamm.me.l8s.co.uk> <3C95E9E3.6070207@spamm.me.l8s.co.uk> <4cf902bf.0203221920.2e65f87@posting.google.com> <4cf902bf.0203240914.472936a9@posting.google.com> <4cf902bf.0203260813 >>>>> "David" == David Laight writes: David> Hwa Jin Bae wrote: >> I agree that the code could have been written better. I am certainly >> not trying to defend the current code. I did not write that code, but >> I know who did. The person who wrote that code originally is a very >> good engineer. I have to assume that it was his intent to keep things >> that way. It was never his intent to support fine grain timer >> resolution with select. There are other ways of accomplishing such >> timing requirements in vxWorks. select was only provided as a crude >> way of compatibility with Unix. >> David> Actually I expect it was written assuming a tick of around David> 60-100Hz. Writing it to support arbitrary fast ticks is quite David> hard. OTOH if unsigned arithmetic had been done then select() David> would only ever return early. But that's the "bug" that bit me. There are two problems in the code. Requesting anything on a 4000Hz system. Requesting 10ms on a 60Hz system. To me, returning early at 60Hz is just as bad :-( Jim --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Destroying a semaphore initialized with semBInit Date: 28 Mar 2002 16:57:39 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203281657.7302474a@posting.google.com> References: <3ca34c76$0$23841$4c41069e@reader0.ash.ops.us.uu.net> Hello, > If you used semInit() to initialize a semaphore, you should use > semTerminate() to terminate it. And since both of these are unpublished interfaces you can expect your code to be non-portable. For example, neither of those calls are available to application level code under VxWorks AE, so don't expect this code to work there. They could even lead to problems if used in the AE kernel since they are not the "public" interface to semaphore management. There are good reasons for some things not being in the manuals... feel free to use them, but at your own risk. Rgds, John... --------------------------- Newsgroups: comp.os.vxworks Subject: Re: windNet PPP&PPPOE1.2 ,how to bind pppoe service to Multi Ethernet Port ? Date: 28 Mar 2002 17:26:17 -0800 From: sardine_sz@163.net (sardine) Organization: http://groups.google.com/ Message-ID: References: thx hwa, OK,i think we can spawn Multi Framework ,each framework bind a ethernet port, --------------------------- Newsgroups: comp.os.vxworks Subject: Re: BSD and END device drivers Date: Thu, 28 Mar 2002 17:52:00 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <3CA28A7B.FB0C4972@cisco.com> <3CA3B9F3.BB5C728F@cisco.com> END drivers are presented as netif style BSD drivers to IP layer code. So IP layer can talk to both END and BSD. In fact, IP layer thinks it is talking to BSD drivers all the time. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Destroying a semaphore initialized with semBInit Date: Thu, 28 Mar 2002 18:00:34 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <3ca34c76$0$23841$4c41069e@reader0.ash.ops.us.uu.net> <488e459a.0203281657.7302474a@posting.google.com> semInit is documented in manual. I think semTerminate is not. But it really should be. Otherwise, semInit should not be documented either. Just to be consistent. semFlush is documented. If semInit does not work in VxWorks AE, then it is unfortunate. From the consistent API point of view. Just my opinion... - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: [Question] About RS422, 485 Date: 28 Mar 2002 18:34:33 -0800 From: netproa@freechal.com (James) Organization: http://groups.google.com/ Message-ID: <3ad4e9be.0203281834.717e1e5e@posting.google.com> Hi, I'm about to program MPC860's SCC3 to RS422 or RS485 device. But I don't know how to modify Tornado's serial driver. (ppc860Sio.c or ppc860SccSio.c) Please give me some advice, how to program CPM to RS422,485 device or about other RS422,485 device driver. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: ISR not Working - IBM PPC405GP Date: Fri, 29 Mar 2002 04:13:30 GMT From: "Travis Pennington" Organization: AT&T Worldnet Message-ID: References: <9f1c83d3.0203220846.364bd946@posting.google.com> A few things to watch out for. Some of these have been hinted in the past messages, but attention to them have not been explicitly called out: 1. Don't assume your interrupt line will not be shared, even if you have a single external PCI device. If your controller card has an ethernet device on board, it will most likely use INTB. Because of this, it is wise to use pciIntConnect. 2. Keep in mind that the interrupt line your device uses will change, from the controller's point of view, if you move the PCI device to a different slot. The PCI Interrupt lines do not "pass through" the PCI backplane -- They are serpentined and assigned to different pins (and thus different interrupt lines) on different slots. Because of this, it is wise to set your BSP's "autoconfiguration option" and read your PCI device's interrupt line from the device's configuration space. Forgot the exact syntax of the command and i'm not i work. Something like "pci_config_in_byte(...)". 3. Remeber that you intEnable (or equivalent function) the INTERRUPT LINE, whereas you intConnect or pciIntConnect to the INTERRUPT VECTOR NUMBER. The interrupt vector for your device is equal to the interrupt line + the value of IRQ0. Search through your BSP for the vector entry assigned to IRQ0 (for PPC750 it is 0, not sure for your processor). From the looks of your example code, it seems you might be missing this step. 4. First thing to perform in your ISR is to check your PCI's status to see if it is the device causing the interrupt. If it is not, exit immediately. If it is, perform whatever logic is necessary to your PCI device to make it deassert its interrupt. If you do not do this, you will experience another interrupt immediately upon exit of your interrupt processing. You will never escape the interrupt processing logic and your system will hang up. 5. If you get to step 4 and continue to have problems, try performing a dummy read of one of your PCI device's registers after performing the interrupt clearing logic. This will force and end to the PCI bus's write cycle and reduce latency due to caching or bursting. This step can solve the "spurious interrupts" that many people encounter when writing ISR's, particulary when the controller board is clocked much higher than the PCI device. Hope that helps. Travis Pennington --------------------------- Newsgroups: comp.os.vxworks Subject: vxsim trial software? Date: 28 Mar 2002 21:31:46 -0800 From: throne8@mail.com (SN) Organization: http://groups.google.com/ Message-ID: <43dd1efa.0203282131.2bbf7107@posting.google.com> is vxsim available for download ala trialware kind of thing? --------------------------- Newsgroups: comp.os.vxworks Subject: Re: What happens to vxWorks default exception handler Date: Thu, 28 Mar 2002 22:15:40 -0800 From: "Vladimir Vysotsky" Message-ID: <3ca40b48$1_3@nopics.sjc> References: "Raymond Yeung" wrote: > I'm invoking a function (via tShell) that I know would > cause a bus timeout problem on 8260. Instead of getting > a machine check or data access exception, my serial (actually > the entire CPU) hangs. Do you have the bus monitor enabled? Check the SYPCR register, bits PBME or (if you're talking about the local bus timeout) LBME. Vladimir. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Difference between BSP Developer's Kit and VxWorks Programmer's Guide Date: 29 Mar 2002 00:25:23 -0800 From: youerming@163.com (Torna) Organization: http://groups.google.com/ Message-ID: References: ryeung@earthlink.net (Raymond Yeung) wrote in message news:... > I already have the programmer's guide, but don't have the > developer's kit (they're not one and the same, right?). > Can someone the differences in content between the two? > What am I missing? yeah, you have missed the Developer's kit, they are not the same ones . programer's guide is for vxworks kit for bsp development. --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Establishing ppp Connection between vxWorks and windows2000 Date: Fri, 29 Mar 2002 08:41:02 GMT From: "drdiags" Organization: AT&T Broadband Message-ID: References: Hello Vinod, There was a post to the newsgroup by Scott Vigil detailing exactly how to do this. It was posted roughly 1 month ago. Do a Google Search on the comp.os.vxworks group and look for his posting. HTH. "vinod" wrote in message news:cb7218f2.0203280344.5fefa2f3@posting.google.com... > hi > Could someone please tell me the configurations required on the > windows 2000 side in order to establish a ppp connection between > vxworks and windows 2000 > > Thanx in advance, > vinod --------------------------- Newsgroups: comp.os.vxworks Subject: Re: vxsim trial software? Date: 29 Mar 2002 09:52:46 GMT From: Johan Borkhuis Organization: Agere Systems Message-ID: References: <43dd1efa.0203282131.2bbf7107@posting.google.com> throne8@mail.com (SN) wrote: > is vxsim available for download ala trialware kind of thing? Yes, it is called Tornado Prototyper and can be downloaded from the WindRiver website. Groeten, Johan - -- o o o o o o o . . . _____________________________ o _____ || Johan Borkhuis | .][__n_n_|DD[ ====_____ | borkhuis@agere.com | >(________|__|_[_________]_|__________________________| _/oo OOOOO oo` ooo ooo 'o!o!o o!o!o` === VxWorks FAQ: http://www.xs4all.nl/~borkhuis/vxworks/vxworks.html === --------------------------- Newsgroups: comp.os.vxworks Subject: how to create tasks with desired status Date: 29 Mar 2002 02:12:09 -0800 From: senthilb@comneti.com (senthil) Organization: http://groups.google.com/ Message-ID: <26ca8a8f.0203290212.2761c2ea@posting.google.com> Hi, VxWorks provides a taskSpawn( ) call in taskLib.h for creating and activating new tasks. The tasks status will be "ready" when we use this call. Here is my doubt.. Is there any way by which we could create a new task whose intial status is "suspended". I think there are some functions(wtxContextCreate) in API which will be used to create a task context.If we create a task context with the above function it returns of type WTX_CONTEXT_ID_T . Then we can resume or suspend the task with this id but using some other API function like wtxContextResume. My doubt is, is there any way using this id in the funtions like taskResume( ) ..... If we cant, is there any way to convert the WTX_CONTEXT_ID_T to taskid. Please add your comments and feedbacks. Thanks is advance. Cheers Senthil --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Destroying a semaphore initialized with semBInit Date: 29 Mar 2002 02:14:37 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203290214.5238bea6@posting.google.com> References: <3ca34c76$0$23841$4c41069e@reader0.ash.ops.us.uu.net> <488e459a.0203281657.7302474a@posting.google.com> Hello, "Hwa Jin Bae" wrote in message news:... > semInit is documented in manual. semInit() is the old VxWorks 4.x function, provided in 5.x for backward compatibility; that should never be used in new code. The semBInit(), semCInit() and semMInit() functions are *NOT* documented in any release, and should not be used if you want your code to remain portable. > I think semTerminate is not. But it really should be. Otherwise, semInit > should not be documented either. Just to be consistent. No, semTerminate() is part of the 5.x semaphore support, and is not related to semInit() at all. There is no inconsistency in the docs. Since the semXInit() functions are not public, there is no need for semTerminate() to be public. > If semInit does not work in VxWorks AE, then it is unfortunate. From the > consistent API point of view. semInit() was provided the 5.x releases to help migration from 4.x. It is still provided in AE, but is only usable by kernel domain code. semClear() and semCreate() will work from user level if there is still anybody using the 4.x style semaphores out there... As for the other semXInit() functions, since they were not published, they should not have been used anywhere. They should not be used in AE, and for certain will not work outside the kernel. If you take a moment to think about it, it will be very obvious why no xxxInit() function should be used outside the kernel... just think about where the object would be stored, how well protected it would be, and how easily it could be shared between domains. Rgds, John... --------------------------- Newsgroups: comp.os.vxworks Subject: sysClkRateSet() limit Date: Fri, 29 Mar 2002 11:19:18 +0000 (UTC) From: "Dexter Nixon" Organization: Mailgate.ORG Server - http://www.Mailgate.ORG Message-ID: HI , What is the limit for sysClkRateSet( ) call. Also it can be called at any time or it should be called initially only once. When i say sysClkRateGet it is returning 60. So for every 16ms, we will recieve a clock interupt. Suppose i want to have 100 interrupts within a second. I can do it by giving 100 as arguement right. If so.. what is the limit of having values like this. What is exactly happening insdie when we set with a value in sysCLkRateSet() call. Thanks, Nix - -- Posted via Mailgate.ORG Server - http://www.Mailgate.ORG --------------------------- End of New-News digest ********************** From vxwexplo-errs@csg.lbl.gov Sat Mar 30 04:03:14 2002 From: Vxworks Exploder Date: Sat Mar 30 04:03:16 PST 2002 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Sat Mar 30 04:03:10 PST 2002 Subject: Rational Purify for VxWorks - anyone using it? Subject: Re: how to create tasks with desired status Subject: Re: sysClkRateSet() limit Subject: taskInit() outside of kernel (was Re: Destroying a semaphore Subject: Where is IP_MAX_UNITS set in Tornado VxWorks Configuration? Subject: Re: Destroying a semaphore initialized with semBInit Subject: Re: Destroying a semaphore initialized with semBInit Subject: SA_RESTART flag in signals Subject: timer_create in vxworks. Subject: FCC Tx underrun on 8260 for single buffer implementation?? Subject: stack checker Subject: Pipes and Message Queues....blocking? Subject: Re: taskInit() outside of kernel (was Re: Destroying a semaphore initialized with semBInit) Subject: Re: The "unsupported" WRS Telnet server hanging Subject: Re: where can I find the driver of 82559? Subject: Re: stack checker Subject: Re: FCC Tx underrun on 8260 for single buffer implementation?? Subject: Re: dosFs2 and DOS_VOL_CONFIG Subject: Re: Where is IP_MAX_UNITS set in Tornado VxWorks Configuration? Subject: Source-level profiling tool Subject: A question about pciFindClass Subject: Re: A question about pciFindClass ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Rational Purify for VxWorks - anyone using it? Date: Fri, 29 Mar 2002 09:31:13 -0500 From: Keith Arner Organization: Marconi Message-ID: Reply-To: Keith Arner Rational's website is now claiming that they support various tools, including Purify, for cross-development, embeded environments. (It's about time.) They've also got an evaluation download, that gives you a 15 day license. Has anyone tried it out yet? If so, what are your thoughts? The version of Purify that they ship is something they call PurifyLT, which I assume means "light". Have they lobotomized this version beyond usefulness, or did they just remove a few obscure features that are rarely used? Keith - -- --------------------------- Newsgroups: comp.os.vxworks Subject: Re: how to create tasks with desired status Date: Fri, 29 Mar 2002 09:46:40 -0500 From: Keith Arner Organization: Marconi Message-ID: References: <26ca8a8f.0203290212.2761c2ea@posting.google.com> Reply-To: Keith Arner On 29 Mar 2002, senthil wrote: > VxWorks provides a taskSpawn( ) call in taskLib.h for creating and > activating new tasks. The tasks status will be "ready" when we use > this call. Here is my doubt.. Is there any way by which we could > create a new task whose intial status is "suspended". If you use taskSpawn(), the new task will start in the ready state. You can try to suspend it right after you create it, but this is a bad idea, in that it relies on relative task priorities to work correctly (if the spawned task is higher priority than the spawning task, you're out of luck, even if you try intLock()/taskLock() tricks, because of the fact that you need to malloc() memory to spawn the new task). There are a couple of viable alternatives, however. You can create your task with taskInit(), which will begin the task in the suspended state. The task will only go to the ready state when you call taskActivate(). Note, however, that you will need to malloc() (or something similar) your own stack and TCB. Alternatively, you could use taskSpawn(), and have the spawned task take a binary semaphore which you give when it's time for the task to do its thing. This is probably preferable, as semaphores provide for better synchronization than suspending and resuming tasks. Keith --------------------------- Newsgroups: comp.os.vxworks Subject: Re: sysClkRateSet() limit Date: Fri, 29 Mar 2002 09:52:30 -0500 From: Keith Arner Organization: Marconi Message-ID: References: Reply-To: Keith Arner On Fri, 29 Mar 2002, Dexter Nixon wrote: > What is the limit for sysClkRateSet( ) call. Also it can be called at > any time or it should be called initially only once. When i say > sysClkRateGet it is returning 60. So for every 16ms, we will recieve a > clock interupt. Suppose i want to have 100 interrupts within a second. I > can do it by giving 100 as arguement right. If so.. what is the limit of > having values like this. What is exactly happening insdie when we set > with a value in sysCLkRateSet() call. Your board has an oscillator in hardware that interupts the CPU periodically. If your oscillator is programmable (which it probably is), then sysClkRateSet() will program the frequency with which the oscillator will send interupts. The exact details of how it gets programmed and the frequencies that can be programmed are going to be specific to the oscillator you have on your board. Take a look at your BSP to see what kind of oscillator you are using, and see if you can't find any details on what the legal frequecies are. Keith --------------------------- Newsgroups: comp.os.vxworks Subject: taskInit() outside of kernel (was Re: Destroying a semaphore initialized with semBInit) Date: Fri, 29 Mar 2002 10:03:43 -0500 From: Keith Arner Organization: Marconi Message-ID: References: <3ca34c76$0$23841$4c41069e@reader0.ash.ops.us.uu.net> <488e459a.0203281657.7302474a@posting.google.com> <488e459a.0203290214.5238bea6@posting.google.com> Reply-To: Keith Arner On 29 Mar 2002, John wrote: > If you take a moment to think about it, it will be very obvious why no > xxxInit() function should be used outside the kernel... just think > about where the object would be stored, how well protected it would > be, and how easily it could be shared between domains. I follow your logic, but... What about taskInit()? It is well described in the Reference Manual for 5.4, and the Programmer's Guide takes pains to explain how it works (including it in the task state transition diagram), so I would consider it to be part of the public interface for 5.4. Are applications that use taskInit() not portable to AE? Or is there some magic in the AE kernel that allows this to work? Keith --------------------------- Newsgroups: comp.os.vxworks Subject: Where is IP_MAX_UNITS set in Tornado VxWorks Configuration? Date: Fri, 29 Mar 2002 17:22:10 GMT From: Jon Newbill Organization: EarthLink Inc. -- http://www.EarthLink.net Message-ID: <3CA4A329.16157E28@bitworkssystemsDELETETHIS.com> I'm trying to enable the 2nd Ethernet port on my VMIC VMIVME7750 board using Tornado 2.02. To do this I need to set IP_MAX_UNITS to 2. However it seems Tornado wants to set this to 1 in the prjParams.h file and I can't find IP_MAX_UNITS as a parameter anywhere in Tornado's VxWorks configuration in order to set it to 2. The configNet.h file would set it properly based on the size of the endDevTbl[] if the value wasn't already set in prjParams.h. Where do I set IP_MAX_UNITS and in general how does one find out where a parameter is set in the Tornado VxWorks configuration? I've looked at all the parameters for all the components under network devices. Thanks in advance. Jon Newbill jonUN@bitworkssystemsREMOVTHIS.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Destroying a semaphore initialized with semBInit Date: Fri, 29 Mar 2002 09:33:47 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <3ca34c76$0$23841$4c41069e@reader0.ash.ops.us.uu.net> <488e459a.0203281657.7302474a@posting.google.com> <488e459a.0203290214.5238bea6@posting.google.com> John, Clearly you have more up to date information then I do. I respect your knowledge. I really do not mean to nit pick. I just wish to clarify some issues. However, semInit() was not just provided for backward compatibility when transition from 4.2 to 5.0 was made. semInit provides a real functionality that is useful. That of using pre-allocated data for semaphores. Typically piece of data that is part of another structure. I would argue that semInit() will not go away in near future. The reason is because it is used extensively within vxWorks itself. Of course I realize the difficultiy of getting it to work in different protection domains, given AE's design. But the issue regarding maintaining published API to work consistently is still an issue. It just makes things a little less easy for some application programmers when moving to AE. No big deal, but something to think about I think. semTerminate() was something that was added later on. But it was an attempt to add counter-part to semInit(). The relationship is that of counter-part. As in open/close. semInit() really does not need specific counter part, because you can simply zero out the memory in question. But it is nice to have. Anyway, I suppose all of these points are rather nitpicky after all. So that would be my part of the contribution on this subject. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Destroying a semaphore initialized with semBInit Date: Fri, 29 Mar 2002 09:45:43 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <3ca34c76$0$23841$4c41069e@reader0.ash.ops.us.uu.net> <488e459a.0203281657.7302474a@posting.google.com> <488e459a.0203290214.5238bea6@posting.google.com> Actually, right after I posted this message I remembered something. Around the time when 5.0 release was made, John F. (a different John) rewrote the WIND kernel and created new semaphores in the process (B,M,C semaphores). When that was done, the new semBInit, semMInit, etc. were introduced into the system. Remember, before 5.0, there were just one type of semaphores. Anyway, original code in the kernel that used semInit() were all replaced with equivalent calls. Mostly semInit() were replaced with semBInit(). A lot of code in the network portion that I was responsible for had to change. And John F. actually went ahead and changed all the semInit() code to semBinit() all over the place. I remember that he asked me about the change before he did all that. I agreed mainly because I didn't want to make an issue. However, I still think that it is not a good idea to break the compatibility. If you think about it, semInit() is really nothing but a semBInit() anyway in the semantic sense. There is no compelling reason to delete the published API for the sake of deleting it. I think that is main thesis of my point, which was deeply ingrained in my psyche after all these years. That's all. Thanks for listening. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.os.vxworks Subject: SA_RESTART flag in signals Date: Fri, 29 Mar 2002 18:23:36 +0000 (UTC) From: "Dexter Nixon" Organization: Mailgate.ORG Server - http://www.Mailgate.ORG Message-ID: Hi, I am trying to use posix timers in VxWorks. timer_create and timer_settime am using. In timer_settime am setting the time to timeout. So when time out happens the handler will write into a fd. i pend on select now with the fd where the timer will write, with a timeout value specified in select. What's happening is when i start the timer, after the period expires, the message was written into the fd. so select unblocks. Everything works fine. BUt one thing is the select is not unblocking when the timeout value specified in select expires. This is what looks mysterious. But it is unblocking when messages comes in the fd. This is like indefinitely blocked on select until some fd got set. But if i dont initialise timer_create and timer_settime calls( timers am not using ) and if i use some other socket fd in select, it gets unblocked when the select timeout value expires. What could be the reason. any expert suggestion. TIA, Nix - -- Posted via Mailgate.ORG Server - http://www.Mailgate.ORG --------------------------- Newsgroups: comp.os.vxworks Subject: timer_create in vxworks. Date: Fri, 29 Mar 2002 18:24:53 +0000 (UTC) From: "Dexter Nixon" Organization: Mailgate.ORG Server - http://www.Mailgate.ORG Message-ID: sorry the previous post has unrelated subject. kindly forgive me. Hi, I am trying to use posix timers in VxWorks. timer_create and timer_settime am using. In timer_settime am setting the time to timeout. So when time out happens the handler will write into a fd. i pend on select now with the fd where the timer will write, with a timeout value specified in select. What's happening is when i start the timer, after the period expires, the message was written into the fd. so select unblocks. Everything works fine. BUt one thing is the select is not unblocking when the timeout value specified in select expires. This is what looks mysterious. But it is unblocking when messages comes in the fd. This is like indefinitely blocked on select until some fd got set. But if i dont initialise timer_create and timer_settime calls( timers am not using ) and if i use some other socket fd in select, it gets unblocked when the select timeout value expires. What could be the reason. any expert suggestion. TIA, Nix - -- Posted via Mailgate.ORG Server - http://www.Mailgate.ORG --------------------------- Newsgroups: comp.sys.powerpc.misc,comp.os.vxworks Subject: FCC Tx underrun on 8260 for single buffer implementation?? Date: 29 Mar 2002 10:31:34 -0800 From: ryeung@earthlink.net (Raymond Yeung) Organization: http://groups.google.com/ Message-ID: I'm using 0K26N (ancient revision) of 8260. All frames are transmitted from big buffers (enough to hold maximum frame size). As I pump up (bi-directional) data rate, this underrun thing shows up. I'm really not expecting it. My understanding is that Tx underrun would only happen if I use multiple buffers per frame (and set the "R" bit too early). Scanning through Motorola's errata list, I couldn't find any logged issue directly related to this. Has anyone experienced this? What did you find? --------------------------- Newsgroups: comp.os.vxworks Subject: stack checker Date: 29 Mar 2002 11:40:49 -0800 From: mark_ck_chang@yahoo.com (Mark Chang) Organization: http://groups.google.com/ Message-ID: <9b6f8883.0203291140.6e1da017@posting.google.com> Does anyone have code to do realtime checking of the stack to prevent overflows? w/o too much of a performace hit. We are using Vxworks 5.3, home brew CLI (Tcl 7.3) with multi-session Telnet (4) + serial port. Our main application is SNMP queries so depending on the number of MIB objects, the stack size varies. We just keep increasing it and hope for the best. But Tcl7.3 is really hard to benchmark in terms of stack use. Thanks, Mark --------------------------- Newsgroups: comp.os.vxworks Subject: Pipes and Message Queues....blocking? Date: 29 Mar 2002 12:12:01 -0800 From: kenb88@hotmail.com (Whacked) Organization: http://groups.google.com/ Message-ID: <6755aee5.0203291212.6c96bd2b@posting.google.com> Hi, Here is the situation. Ive set up a pipe for IPC that can accept only one message. Something like the following: pipDevCreate ("/pipe/demo",1,50) Then I write a message to the pipe (pseudo code) fd = open("/pipe/demo", 0_RDRW,0) write (fd, msg,50) close (fd) Now, what happens if I immediately write to the pipe again before any process reads? fd = open("/pipe/demo", 0_RDRW,0) write (fd, message,50) close (fd) It appears to me that I will be blocked in the write call since there is already a message in the pipe. This is not what I want to happen. I would like for the 2nd message to simply be dropped. The pipe facility is based on message queues. If I was setting up a queue, I could pass the it a NO_WAIT timeout parameter. So, I could: Q_ID = msgQCreate (1,50,MSG_Q_FIFO) msgQSend (Q_ID, msg, 50, NO_WAIT, MSG_PRI_NORMAL) and then send the second message msgQSend (Q_ID, msg, 50, NO_WAIT, MSG_PRI_NORMAL) This message would get dropped on the floor if the first one had not been read from the queue. I need to iplement this behavior with pipes. Since the pipes are based on message queues in VxWorks, can I do it?? thanks, Whacked --------------------------- Newsgroups: comp.os.vxworks Subject: Re: taskInit() outside of kernel (was Re: Destroying a semaphore initialized with semBInit) Date: 29 Mar 2002 12:56:58 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203291256.526a1563@posting.google.com> References: <3ca34c76$0$23841$4c41069e@reader0.ash.ops.us.uu.net> <488e459a.0203281657.7302474a@posting.google.com> <488e459a.0203290214.5238bea6@posting.google.com> Hello Keith, > I follow your logic, but... > > What about taskInit()? It is well described in the Reference Manual for > 5.4, and the Programmer's Guide takes pains to explain how it works > (including it in the task state transition diagram), so I would consider > it to be part of the public interface for 5.4. > > Are applications that use taskInit() not portable to AE? Or is there some > magic in the AE kernel that allows this to work? No, taskInit() has been removed from the public interface for AE - I believe that is the only function that has been. To replace it, there is a new function, taskCreate(), which will create a dormant task. There is no way to provide the stack or TCB memory yourself though using taskLib. taskCreate() takes the same parameters as taskSpawn(), which should make it much easier to create a dormant task - taskInit() was not a simple API to work with. Also, the pthread code, which is now a standard API, does allow for the thread creator to provide the stack memory, even for user level threads, but if the stack is provided this way the stack overflow detection feature is disabled. HTH, John... --------------------------- Newsgroups: comp.os.vxworks Subject: Re: The "unsupported" WRS Telnet server hanging Date: 29 Mar 2002 13:14:23 -0800 From: chrismooremobile@yahoo.com (Chris Moore) Organization: http://groups.google.com/ Message-ID: References: Denis Perelyubskiy wrote in message news:... > * Chris Moore [03-Mon-02 18:27 -0800]: > > > I've been using the unsupported WRS telnet daemon for a > > while now and have not noticed any huge problems. BUT! > > When I have the CPU loaded (according to the spylib) I > > get some problems with the telnet client task hanging, if > > I do a netstat from my machine or from the VxWorks target > > I see that the msgq is filled and doesnt clear out at > > all... > > > Has anyone else experienced this problem? > > Haven't used this, but it sounds like some sort of a > starvation problem. Did you check your task priorities? > > denis Yep, the tNetTask is running at a higher priority than the spawned Telnet and the pty Input and ptr Output tasks... so that shouldn't be the case.... hmm I'm going to have to dig a little deeper. Cheers, --------------------------- Newsgroups: comp.os.vxworks Subject: Re: where can I find the driver of 82559? Date: Fri, 29 Mar 2002 22:30:53 +0000 (UTC) From: "Carl Petersen" Organization: Mailgate.ORG Server - http://www.Mailgate.ORG Message-ID: <7f46168cc4b58cb580d603681b2454c5.81221@mygate.mailgate.org> References: "seatide" wrote in message news:b6e3.0203272140.3fb5e096@posting.google.com... > as title I found the eev driver for 82559 on Intel's website. It works fine for pentium with T2.0.2. - -- Posted via Mailgate.ORG Server - http://www.Mailgate.ORG --------------------------- Newsgroups: comp.os.vxworks Subject: Re: stack checker Date: Fri, 29 Mar 2002 16:39:21 -0800 From: "Hwa Jin Bae" Organization: PSO Systems Inc Message-ID: References: <9b6f8883.0203291140.6e1da017@posting.google.com> There is checkStack(). If you wish to do this from within a program, you can write something similar to that. Basically the way vxWorks stacks are initially allocated and values 0xee are written in every byte. As your stack gets used, the values 0xee become some other values (hopefully!). The checkStack() routine just starts looking at the top of the stack and searches for the non 0xee pattern. That is how it knows how much stack is left for a task. If the top of stack has values other than 0xee, then it is probably due to stack overflow. If you ever wondered about 0xeeeeeee values in memory, now you know. - -- Hwa Jin Bae mailto:hjb@pso.com http://www.pso.com --------------------------- Newsgroups: comp.sys.powerpc.misc,comp.os.vxworks Subject: Re: FCC Tx underrun on 8260 for single buffer implementation?? Date: Fri, 29 Mar 2002 17:19:45 -0800 From: "Dan Gold" Organization: Mailgate.ORG Server - http://www.Mailgate.ORG Message-ID: References: Sender: gold@ensemble.com "Raymond Yeung" wrote in message news:d83bb8e3.0203291031.6747fea8@posting.google.com... > I'm using 0K26N (ancient revision) of 8260. All > frames are transmitted from big buffers (enough > to hold maximum frame size). Some more info would be nice. I'd infer you're running 100Base-T on an FCC, correct ? Which FCC ? Are you running (since it's an A.1 part) on an old VADS (or EST) board ? Your own design ? What is the CPU and CPM speed ? VxWorks, or your own stuff ? > As I pump up (bi-directional) data rate, this > underrun thing shows up. I'm really not expecting > it. My understanding is that Tx underrun would only > happen if I use multiple buffers per frame (and set > the "R" bit too early). Scanning through Motorola's > errata list, I couldn't find any logged issue directly > related to this. > > Has anyone experienced this? What did you find? The Tx-underrun is usually because the FCCs Tx FIFO requested more data and the CPM couldn't get data out of your buffers fast enough to fill the FIFO. Are your buffers on the 60x or local bus ? What else is going on in the 8260 (i.e. other peripherals) when this is happening ? Do you have someone hogging the bus (or the CPM) for a long period of time, so it couldn't service the FCC request or couldn't access the bus ? Have you looked at your Tx/Rx clocks (from the PHY) to make sure they look ok ? Since you're running full duplex, are you sure the LPB and FDE bits are set in the 8260, and your PHY is in FDX mode ? Are you sure you're setting the "R" bit at the appropriate time even for 1 buffer ? (i.e. after the length, L-bit, are set). Does this happen on a single board with the A1 or other boards (with the A1) too ? Does it make a difference if you use small or large frames ? At what rate do you see this "under-run thing" start to happen ? Dan Gold gold@ensemble.com --------------------------- Newsgroups: comp.os.vxworks Subject: Re: dosFs2 and DOS_VOL_CONFIG Date: Fri, 29 Mar 2002 18:31:57 -0800 From: Rajesh Tripathi Organization: Globix Corp. Message-ID: <3CA5239D.2AAEC1EF@com21.com> References: <1017146014.258896@azores.network-i.net> <95ebbe31.0203271509.2ab543a2@posting.google.com> Hi, dosFsVolDescGet can be used to get the desired info. WRS has not updated dosFs2 documentation. Although shown LOCAL, it is global now. Here is the API. /*************************************************************************** **** * * dosFsVolDescGet - convert device name to volume descriptor ptr. * * This routine validates as a DOS volume * descriptor ptr. If failed, it supposed to be a path on a * DOS device. This routine uses standard * iosLib function iosDevFind() to get pointer onto * the device descriptor. If device is eligible, * is filled with pointer * to the first character, following * portion the device name. * * RETURNS: ptr to DOS_VOLUME_DESC or NULL, if it is not a DOSFS device. * * ERRNO: * S_dosFsLib_INVALID_PARAMETER */ LOCAL DOS_VOLUME_DESC_ID dosFsVolDescGet ( void * devNameOrPVolDesc, /* device name or ptr to */ /* volume descriptor */ u_char ** ppTail /* return ptr onto name following device name */ ) Regards, Rajesh Aaron Graham wrote: > I had the exact opposite problem a couple months ago. I had a > DOS_VOL_CONFIG structure, and I was trying to figure out how to get > the vol name. I never found a way to do it. The workaround (read: > hack) I had to put into place involved keeping track of all vol names, > adding in some global variables, a table, and searching the table > every time I wanted to associate a config struct with a volume name. > The final result is that the code I'm using is messy, unreadable, and > not re-entrant. Out of 20 or so possible leads I had tried (using > volLabel, comparing pointers, etc), none of them worked. WRS must > have gone to great lengths to specifically disallow you from doing > this. There's no other explanation I could think of... > > Good luck! > > Aaron > > "Employee" wrote in message news:<1017146014.258896@azores.network-i.net>... > > Hi, > > > > given the name of a dos file system (e.g. "/dos1"), how can I get its > > DOS_VOL_CONFIG structure? > > > > I have tried to get it by copying the pointer passed to the configuration > > function given to the dosFsVolFormat() via the 3rd parameter but it appears > > to expire immediatelly after. i.e. if I print the contents of the structure > > from inside the configuration function the data makes sense. But if I print > > the same structure again later on from the shell I get garbage which > > suggests that the structure was moved. > > > > Example: > > void config(DOS_VOL_CONFIG *p); > > dosFsVolFormat(cbio, DOS_OPT_BLANK | DOS_OPT_QUIET, &config); > > > > In other words to do something similar to: > > dosFsShow ("/dos1"); > > > > Regards, > > Dimitris --------------------------- Newsgroups: comp.os.vxworks Subject: Re: Where is IP_MAX_UNITS set in Tornado VxWorks Configuration? Date: Sat, 30 Mar 2002 03:46:23 GMT From: "drdiags" Organization: AT&T Broadband Message-ID: References: <3CA4A329.16157E28@bitworkssystemsDELETETHIS.com> Hello Jon, In the Tornado IDE, when the project is open for your bootable vxWorks kernel, the vxWorks tab can be selected. Right-Click on the Network Components and select parameters. In the list you will find IP_MAX_UNITS which you can change. Don't ask me why the value in the BSP is over-ridden, but anyway this is what I did to add 4 NICs to my Pentium vxWorks kernel. "Jon Newbill" wrote in message news:3CA4A329.16157E28@bitworkssystemsDELETETHIS.com... > I'm trying to enable the 2nd Ethernet port on my VMIC VMIVME7750 board > using Tornado 2.02. To do this I need to set IP_MAX_UNITS to 2. > However it seems Tornado wants to set this to 1 in the prjParams.h file > and I can't find IP_MAX_UNITS as a parameter anywhere in Tornado's > VxWorks configuration in order to set it to 2. The configNet.h file > would set it properly based on the size of the endDevTbl[] if the value > wasn't already set in prjParams.h. > > Where do I set IP_MAX_UNITS and in general how does one find out where a > parameter is set in the Tornado VxWorks configuration? I've looked at > all the parameters for all the components under network devices. Thanks > in advance. > > Jon Newbill > jonUN@bitworkssystemsREMOVTHIS.com > > --------------------------- Newsgroups: comp.os.vxworks Subject: Source-level profiling tool Date: Fri, 29 Mar 2002 23:04:42 -0500 From: "MikeS" Message-ID: <3ca53ae2@news.xetron.com> Does anyone know of a source-level profiling tool that profiles C++ on a line-by-line basis (specifically for VxWorks that will work under the simulator)? I'm looking for something like the profiler that comes with Microsoft's Visual Studio. --------------------------- Newsgroups: comp.os.vxworks Subject: A question about pciFindClass Date: 30 Mar 2002 00:39:40 -0800 From: zhoul@blrcsv.china.bell-labs.com (zlybupt) Organization: http://groups.google.com/ Message-ID: <989cdae4.0203300039.68fcb338@posting.google.com> Hi all: I am trying to get the I/o address and irq number of 3c905B 10/100BASE-TX NIC by using function pciFindClass as the following,error occurs,I hope anyone can give me an explanation. First I found the Verdorid and the deviceid from the el3c90xEnd.h just like the following: #define TC_VENDORID 0x10B7 /* 3Com chip device IDs.*/ #define TC_DEVICEID_BOOMERANG_10BT 0x9000 #define TC_DEVICEID_BOOMERANG_10BT_COMBO 0x9001 #define TC_DEVICEID_BOOMERANG_10_100BT 0x9050 #define TC_DEVICEID_BOOMERANG_100BT4 0x9051 #define TC_DEVICEID_CYCLONE_10BT 0x9004 #define TC_DEVICEID_CYCLONE_10BT_COMBO 0x9005 #define TC_DEVICEID_CYCLONE_10_100BT 0x9055 #define TC_DEVICEID_CYCLONE_10_100BT4 0x9056 #define TC_DEVICEID_CYCLONE_10_100FX 0x905A #define TC_DEVICEID_CYCLONE_10_100BT_SERV 0x9800 so I use the function like the following: if((pciFindDevice(TC_VENDORID,TC_DEVICEID_CYCLONE_10_100BT,1,&pBusNo,&pDeviceNo,&pFuncNo)==0K)){ but when I builded it,it tells me "nondigits in number and not hexadecimal"? why?? thank you in advance! --------------------------- Newsgroups: comp.os.vxworks Subject: Re: A question about pciFindClass Date: Sat, 30 Mar 2002 19:42:34 +0900 From: "Girish Gulawani" Message-ID: <3ca59a2f$0$27607$44c9b20d@news3.asahi-net.or.jp> References: <989cdae4.0203300039.68fcb338@posting.google.com> > if((pciFindDevice(TC_VENDORID,TC_DEVICEID_CYCLONE_10_100BT,1,&pBusNo,&pDevic eNo,&pFuncNo)==0K)){ > but when I builded it,it tells me > "nondigits in number and not hexadecimal"? > why?? if this is a correct copy+paste. i can see a 0(zero) in place of O(Oh). shouldnt this be OK (OhKay)?? --------------------------- End of New-News digest ********************** From vxwexplo-errs@csg.lbl.gov Sun Mar 31 04:03:07 2002 From: Vxworks Exploder Date: Sun Mar 31 04:03:09 PST 2002 Subject: comp.os.vxworks newsdigest Comp.Os.Vxworks Daily Digest Sun Mar 31 04:03:05 PST 2002 Subject: Re: Pipes and Message Queues....blocking? Subject: DosFs2 performance Subject: GoAhead Webserver Porting to VxWorks Porblems! Subject: (no subject) Subject: Re: stack checker Subject: Re: GoAhead Webserver Porting to VxWorks Porblems! ------------------------------------------------------- Newsgroups: comp.os.vxworks Subject: Re: Pipes and Message Queues....blocking? Date: Sat, 30 Mar 2002 08:56:09 -0800 From: "Alex Pogostin" Organization: MindSpring Enterprises Message-ID: References: <6755aee5.0203291212.6c96bd2b@posting.google.com> If the pipe is being written to from an ISR, the pipe driver will force the NO_WAIT onto the lower level msgQSend. Alex Pogostin Silicon Drivers "Whacked" wrote in message news:6755aee5.0203291212.6c96bd2b@posting.google.com... > Hi, > > Here is the situation. Ive set up a pipe for IPC that can accept only > one message. Something like the following: > > pipDevCreate ("/pipe/demo",1,50) > > Then I write a message to the pipe (pseudo code) > > fd = open("/pipe/demo", 0_RDRW,0) > write (fd, msg,50) > close (fd) > > Now, what happens if I immediately write to the pipe again before any > process reads? > > fd = open("/pipe/demo", 0_RDRW,0) > write (fd, message,50) > close (fd) > > It appears to me that I will be blocked in the write call since there > is already a message in the pipe. This is not what I want to happen. I > would like for the 2nd message to simply be dropped. > > The pipe facility is based on message queues. If I was setting up a > queue, I could pass the it a NO_WAIT timeout parameter. So, I could: > > Q_ID = msgQCreate (1,50,MSG_Q_FIFO) > msgQSend (Q_ID, msg, 50, NO_WAIT, MSG_PRI_NORMAL) > > and then send the second message > > msgQSend (Q_ID, msg, 50, NO_WAIT, MSG_PRI_NORMAL) > > This message would get dropped on the floor if the first one had not > been read from the queue. > > I need to iplement this behavior with pipes. Since the pipes are based > on message queues in VxWorks, can I do it?? > > thanks, > > Whacked --------------------------- Newsgroups: comp.os.vxworks Subject: DosFs2 performance Date: Sat, 30 Mar 2002 19:32:12 GMT From: dcolson@ieee.org (David H. Olson) Organization: Oresis Communications, Inc. Message-ID: <3ca612ce.1867405@netnews.attbi.com> Reply-To: dolson@oresis.com I'm posting this from home, so don't have all the details, but here goes anyway. We're running under the latest non-AE vxWorks on a PPC750 and using the DosFs2 file system over a flash drive. We've noticed that opening a file takes a surprisingly long time (~100 ms). The transfer speed, once the file is open, seems in line w/ what we would predict given the specs of the various parts & busses involved. So should we be surprised at how long it takes to open a file? --------------------------- Newsgroups: comp.os.vxworks Subject: GoAhead Webserver Porting to VxWorks Porblems! Date: 30 Mar 2002 18:24:10 -0800 From: Xiaohua.zhang@163.com (xiaohua) Organization: http://groups.google.com/ Message-ID: <49321d54.0203301824.3b3e3a6b@posting.google.com> Install the Tornado2 for ARM and BSP 1.Build Bootable Project with BSP . Include the "target load" and "target unload" components. 2.Build Downloadable Project. Add the following files :/webserver/*.c But not include files : websSSL.c websSSL.h webcomp.c 3.Then Add the files in the derictory "vxworks" ,that is : main.c 4.Download the .out into the target board. In the Shell, taskSpawn("webd",100,8,10000,websvxmain,0); 5.Visit the target board using the IE http://192.168.0.131 6.Error: Data abort Exception address: 0x0005e6c0 Current Processor Status Register: 0x20000013 Task: 0x2c7de0 "webd" ********************* *What can I do next?* ********************* --------------------------- Newsgroups: comp.os.vxworks Subject: (no subject) Date: Sun, 31 Mar 2002 03:50:59 GMT From: vze2nvhy@mail.verizon.net Message-ID: <3CA68808.B6F7AD1B@mail.verizon.net> Reply-To: vze2nvhy@verizon.net --------------------------- Newsgroups: comp.os.vxworks Subject: Re: stack checker Date: Sun, 31 Mar 2002 03:55:33 GMT From: Pierre Frigon Organization: AT&T Broadband Message-ID: <3CA687DB.F79FECBF@yahoo.com> References: <9b6f8883.0203291140.6e1da017@posting.google.com> You can set up a taskSwitch hook to look at the TCB of the task being switched out and see if it exceeds its stack space. Mark Chang wrote: > > Does anyone have code to do realtime checking > of the stack to prevent overflows? > w/o too much of a performace hit. > > We are using Vxworks 5.3, home brew CLI (Tcl 7.3) > with multi-session Telnet (4) + serial port. > Our main application is SNMP queries so > depending on the number of MIB objects, the > stack size varies. > We just keep increasing it and hope for the best. > But Tcl7.3 is really hard to benchmark in terms > of stack use. > > Thanks, > Mark --------------------------- Newsgroups: comp.os.vxworks Subject: Re: GoAhead Webserver Porting to VxWorks Porblems! Date: 31 Mar 2002 03:18:14 -0800 From: john_94501@yahoo.com (John) Organization: http://groups.google.com/ Message-ID: <488e459a.0203310318.3fd8cc9d@posting.google.com> References: <49321d54.0203301824.3b3e3a6b@posting.google.com> Hello, [steps deleted] > 5.Visit the target board using the IE http://192.168.0.131 > > 6.Error: > > Data abort > Exception address: 0x0005e6c0 > Current Processor Status Register: 0x20000013 > Task: 0x2c7de0 "webd" > > ********************* > *What can I do next?* > ********************* Try starting the debugger and find out what caused the exception... since you have source code you should be able to work this out relatively easily using the debugger. HTH, John... Hint: If you want more specific answers you need to post much more detailed information. --------------------------- End of New-News digest **********************