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