I-Appliance BBS
The Official Source for Internet Appliance Upgrades and Mods
Amazon Honor System Click Here to Pay Learn More
BBS Main List | Sign In | Sign Up | Search | Help | Linux-Hacker.netReply to Thread | Printer |

Home / Other I-Appliances / 3Com Audrey
Putting core part of QNX 6.1 on Audrey? Redo IPL?

New MessagePutting core part of QNX 6.1 on Audrey? Redo IPL? (modified 0 times) wambs
Profile
Hi,

I have noticed some great work on making new images that boot in the Audrey QNX then use either generic QNX6.0/6.1 programs and libs. However, many issues seem to come up with this approach.

So, my question is has something put the core QNX 6.1 on the audrey, thus replacing the old OS. The rest of QNX 6.1 could be located on a mounted nfs machine. I have search the archives here, but I have only seen attempts with replacing the OS which never worked. This could be because of the IPL code. I think the IPL code needs to be decode, re-written to get rid of the weird 3-Com stuff, and use generic code, so that we will not have these weird problems. Also, in order to increase SDRAM memory > 32 meg, the IPL code needs to initialize the memory correctly to use all the memory. I have looked at the data specs for the Geode processor. It's all very standard stuff.

If we could read in the IPL code and dis-assmble it. Each person could take a chunk of it, then we could have it done re-written quickly. I'm sure that the old IPL is causing problems with our new core OS. Also, most of this work would need to be done for a Linux port as well. They both (Linux and QNX) need the chips and file system to be init correctly.

Is anyone working on this? If so, I would like to help!

If not, we should get a team together, to knock this issue out! If can't keep using the Audrey's the old way. Soon enough all the new QNX programs will no longer work.

I'm pumped up for this, what do you say!?

Kevin

03-05-2002 11:08:47

New MessageRE:Putting core part of QNX 6.1 on Audrey? Redo IPL? (modified 0 times) jukebox
Profile
I can run any 6.0 or 6.1 QNX app in Audrey that doesn't need more than the available memory, by using a share and do a lot of linking.
However, you will notice Audrey's performance will slow down substantially when you do this.
Also when you can do the linking you apparently have QNX 6.0 or 6.1 running on a PC and that works always faster and better.
Why not accept limitations in Audrey and make the best use of it within those limitations. You cannot make a Rolls Royce out of a Beetle.

Jukebox


http://www.prins.net/audrey/index.html
03-05-2002 13:00:46

New MessageRE:Putting core part of QNX 6.1 on Audrey? Redo IPL? (modified 0 times) booya
Profile
Wambs, I am with ya brotha.. I was chattin it up in #qnx on irc.joher.com last night and there were a couple people that were talking about getting Audrey to boot 6.1 and the general thought was we would need to get a professional to rewrite the IPL or get 3com to not care and let someone from within QNX assist :) I think the latter will not happen.

Oh yeah there were a couple people in there that said they could help for the price of an Audrey :)

03-05-2002 16:18:28

New MessageRE:Putting core part of QNX 6.1 on Audrey? Redo IPL? (modified 0 times) smogbound
Profile
I was hot to update the flash via serial once upon a time and spent hours disassembling the IPL with idaw disassembler I've concluded that you can *load* and image via the serial port, but I don't think it's possible to flash one. I would also like to port FreeBSD to the thingy... The biggest problem is that you get exactly one shot at replacing the IPL per audrey, if you screw it up your audrey is dead (unless of course you can remove the surface mounted flash, reburn it and replace it) ! I was also trying to find the JTAG connections so I could burn the flash via JTAG, but I gave up on that as well when I couldn't a JTAG connector after spending hours with an ohm meter. In any case if someone wants my idaw file as a starting point point me to an FTP site and I'll upload it.
03-05-2002 18:57:51

New MessageRE:Putting core part of QNX 6.1 on Audrey? Redo IPL? (modified 0 times) wambs
Profile
Hi All,

Has anyone successfully re-programed the IPL, even if its with the same ucky IPL code? When inserting a flashcard with a saved image created with cat on /dev/fs0p0, fs0p1, fs0p2, fs1p0 are these just the non-IPL code, or does this include the IPL code? After reading a lot of email/news, I'm still not clear on this. Anyone know?

Also, found additional info about Intel flash memory

http://developer.intel.com/design/flash/articles/what.htm

Here is the flash memory programmer, but I it looks this one requires that the flash chip be removed to re-programmed.

http://appzone.intel.com/toolcatalog/listtools.asp?pid=4483&cid=683&pfamily=

03-05-2002 20:48:49

New MessageRE:Putting core part of QNX 6.1 on Audrey? Redo IPL? (modified 0 times) jhd3rd
Profile
I guess some of us "old-timers" are a little jaded, there was a lot of talk early on about this sort of thing but when nobody got anywhere it was mostly abandoned.

fs0p2 contains the IPL, thats why its recommended not to include it in your backups - it never changes anyway, and if you screw it up during a restore you've got a dead Audrey.

It occurs to me that maybe some folks haven't seen Sowbug's site at http://www.sowbug.com/audrey/ . Sowbug was the first person to hack the Audrey and the reason we are all here now. There is a lot of good information on his site and its a good starting place for those interested in hacking the Audrey.

On thing you will see - he tried to flash a QNX 6.1 image to Audrey and ended up killing her. You only get one shot ...

03-06-2002 06:01:40

New MessageRE:Putting core part of QNX 6.1 on Audrey? Redo IPL? (modified 0 times) wambs
Profile
Well, We newbies are, of course, new to this issue of the IPL code. I hope a fresh outlook on this problem may bear some fruit plus with the "old-timers" knowledge we may get somewhere.

I got the IPL by cat /dev/fs0p2 > a_file

The file directory was located on a nfs mounted linux machine. I used the dis-assembler provided by smogbound and wrote the output to a file. This is a really cool tool!

OK, here's my thoughts on two approaches:

1) dis-assemble the entire IPL, change it, and re-write it to the flash. I know this is easier said then done.

2) Understand enough of the IPL code, so that we can write our IPL, and use what we learned from initial IPL stuff, to init the chips, graphics, etc. I found some docs on the QNX site on how to write IPL code, plus some libs. I have to find the link for you all.

If we could get access to a BSP (Board Support Package) software that is similar to the Geode chip set then this would greatly help us. I think if we got this, it could be done, much easier. I'm think of ways to make the SDRAM and flash memory socket. One idea, is to cut the memory out of the board at the top of the chip. This would leave the pins intact, I hope. Next find a female to female socket and plug it into the pins that are sticking out. Now plug the new memory into the socket.

Question is, where do we find a female to female socket with the right pin size.

Comments? Suggestions?

Thanks

I'm leaning towards option number 2. QNX has IPL libraries that we can we and tailor.

03-06-2002 09:13:59

New MessageRE:Putting core part of QNX 6.1 on Audrey? Redo IPL? (modified 0 times) smogbound
Profile
By the way there's an unpopulated BIOS site for what looks to be a 29f040 or similar (that some of us know and love from the I-Opener days). There is also an unpopulated 2 pin jumper labeled flash BIOS some something similar (my Audry is put together at the moment). If someone soldered a plcc socket there and installed a 29f040 programmed with the IPL it *might* be possible to recover from a bad IPL burn to the original flash. This is all theory and could be completely wrong. No doubt one could kill an Audrey trying to figure it out... I'm not game; I don't have access to any surface mount soldering equipment. On the other hand it might have been intended to be used *instead of* the other flash instead of *in addition* to. The Audrey also has footprints for an onboard Ethernet. Perhaps this flash was for netbooting the Audrey. Who knows ? I sure don't !
03-06-2002 18:40:46

New MessageRE:Putting core part of QNX 6.1 on Audrey? Redo IPL? (modified 0 times) mkanar
Profile
The (missing) J3 jumper says "NOR" and the (missing) J4 jumper says "BIOS." I'm pretty certain that "NOR" represents the onboard Intel flash memory; I saw references to this in the QNX documentation or something... can't remember. I'm looking at the board now and it appears that one of the 2 pins from NOR goes to the 13th pin up from the bottom-left of the Intel flash or the 14th pin down from the top-left (when orienting the chip so that the text on the chip is properly oriented).

Does anyone have the expertise to figure out exactly how these jumpers work? "NOR" doesn't appear to be connected...getting the fluke multimeter out now....okay, here's some interesting info!

The BIOS pins are connected. I'm not certain WHERE they are connected, but they have 0 ohms of resistance between each other so these two pins are effectively jumpered. The NOR pins have 1k ohm of resistance between each other.

I would have hypothesized the opposite to be true.

I believe that a good step to take next is to document the memory location of the external CF, the internal Intel Flash, and the 16MB of onboard RAM. I guess I'll assume that /Intel Flash/fs0p2 (aka IPL) is aligned with the reset vector.

Information is appreciated!

-MKanar

04-23-2002 07:08:55

New MessageRE:Putting core part of QNX 6.1 on Audrey? Redo IPL? (modified 0 times) jukebox
Profile
Just want to throw in my 2 pennies again here. I don't know anything about how computers work on the detail level. What I do have is an understanding on the conceptual level.
In my opinion the IPL stuff is a non issue. What's the difference between these two appoaches:
Audrey boots on QNX 6.0 and some kojak libs and from there on we add libs of newer versions and run apps/utilities from those newer QNX versions.
Or we go through all the hardship of trying to change the IPL in QNX 6.1 and later 6.2 etc. and keep QNX 6.0 libs to run the old apps.
The only difference in approach is the boot sequence and I think that makes ultimately no difference for anything we are doing here.
If you look in the RTP 6.1 it has not only the 6.1 stuff, all the 6.0 stuff is still there too.Probably the RTP 6.1 boots on 6.1, but for Audrey I don't think it's of any importance what it boots on as long as everything you need of any version of QNX is there too and works. I even don't expect to make any gain in storage space in Audrey by changing the IPL in 6.1, since you still need the old stuff too.

jukebox


http://www.prins.net/audrey/index.html
04-23-2002 12:28:43

New MessageRE:Putting core part of QNX 6.1 on Audrey? Redo IPL? (modified 0 times) wambs
Profile
Trying to figure out the memory locations and where leads and pins connect to is rather difficult with the audrey because the board is an 8-layer one. We can only see the top/botton layers, i.e. 2 layers of the board.

Replacing the IPL is most benefical for hardware changes, like adding memory. But there is another issue, some of the IPL code contains the QNX 6.0 OS. That is why you can not just replace all of the QNX 6.0 software with QNX 6.1. There is some link between the IPL and the OS. I don't know what it is though.

I am concerned about running QNX 6.1 and QNX 6.2 libs over the QNX 6.0 boot up code. I have heard of some strange behavior, like slow/jumpy playing of MP3s through NFS mounted discs. My impression is that the QNX 6.1 libs are calling the device driver code that was booted on QNX 6.0. So, any bug fixes, etc., we would miss out on. Replacing the IPL would be very difficult. I have done some research on this subject. You will need Xpress ROM builder software, a flash burner to burn the IPL onto the flash, and the QNX DDK. I have not been able to get either and burner or the Xpress software.

Kevin

04-23-2002 20:33:51

New MessageRE:Putting core part of QNX 6.1 on Audrey? Redo IPL? (modified 0 times) jhd3rd
Profile
wambs, why all that hardware? If we knew the correct format, we could create an image, put it on CF, and then flash Audrey from that. Audrey has her own "flash burner" built in.
04-23-2002 21:00:47

New MessageRE:Putting core part of QNX 6.1 on Audrey? Redo IPL? (modified 0 times) jukebox
Profile
wambs,
There should be no concern running 6.1 over 6.0. About MP3 playing, if you read posts on this board from the beginning those problems existed with original Audrey already. Only if you use original Audrey exclusively for MP3 you have a chance it will work. What's true is the more you load up Audrey the slower it gets, but we haven't reached the point yet where Audrey becomes unresponsive because of that high load. Also what's true is fs-cifs and fs-nfs2 are lousy means to play MP3, too much overhead. If you use the HTTP protocol for MP3, the lowest overhead possible, MP3 works fine with any image, including original Audrey. What I call strange behaviour would be Audrey crashing for no reason and I haven't seen that yet.

jukebox


http://www.prins.net/audrey/index.html
04-23-2002 21:02:20

New MessageRE:Putting core part of QNX 6.1 on Audrey? Redo IPL? (modified 0 times) booya
Profile
jukebox,
Just to do it is reason enough. It will no doubt open doors for future enhancements like hardware hacks and potentially getting Audrey to boot an alternative OS. Like it or not all of the images are limited as they stand right now do to 3com's IPL.
04-23-2002 23:33:41

New MessageRE:Putting core part of QNX 6.1 on Audrey? Redo IPL? (modified 0 times) jukebox
Profile
If this can be done I'm all for it ofcourse. But I don't feel held back at this time as long as it isn't possible to change the IPL. See what happens when to next version of QNX is released. I can hardly wait.

jukebox


http://www.prins.net/audrey/index.html
04-23-2002 23:59:10

New MessageProgramming challenge (modified 0 times) smogbound
Profile
For those wanting to replace the IPL I have a challenge: Write a "hello world" program that loads from CF onto the Audrey and simply outputs a string to the serial port. If we can get to that point we could probably boot another OS from the compact flash. The existing IPL code will load and execute an image from CF and at that point the chipset has been initialized to the enough to talk to the serial port. This should be a simple assembly program with less than a page of code. The trick is to wrap it with the right headers and checksums so the IPL will think it's a valid image and execute it. The RTP CD *should* have all of the needed tools for this task... May the best man/woman win !
04-25-2002 17:38:45

New MessageRE:Putting core part of QNX 6.1 on Audrey? Redo IPL? (modified 0 times) chrismckillop
Profile
You guys also need to understand the role of the IPL, startup and procnto. The fact is that you don't NEED to replace the IPL just the startup+procnto bit. The IPL in the audrey is a replacement for a general purpose BIOS (boot speed). It will occupy a fixed portion of boot block of flash, probably 4 or 16K. Once the IPL runs it will either scan for the startup+procnto area or it will jump to a fixed location and expect that location to continue on. You won't be able to use a stock RTP startup+procnto since it is using bios.boot and it could be that the startup-bios will expect to be able to make BIOS calls. So you will need to use a new .build file, new startup and build an ifs and then prepend the IPL from the Audrey.
--
cdm@qnx.com
http://qnx.wox.org/
05-05-2002 14:54:10

New MessageRE:Putting core part of QNX 6.1 on Audrey? Redo IPL? (modified 0 times) jukebox
Profile
Could this be of any use?

mkrom utility
-------------

The mkrom utility is used when generating a BIOS extension IPL.
After generating the IPL, mkrom pads the IPL binary out to a
1k boundary, and then inserts the 55AA BIOS extension signature,
along with a size and checksum, into the start of the image.
It was a QNX 4 utility which never got released with QNX 6,
but since we have now shipped BIOS extension IPL source for the
SC400 in the X86 BSP, this utility will be needed by anyone
attempting to do this.

usage:

to convert the binary IPL my_ipl into a BIOS extension
and insert the proper size and checksum bytes, type:

mkrom my_ipl

jukebox


http://www.prins.net/audrey/index.html
05-06-2002 20:08:22

Reply to Thread | Printer |
All times are PSTPowered by UltraBoard v1.62



Copyright © 2000, Netmake Inc. All Rights Reserved.
See Terms and Conditions for more information.




i-opener opener laptop notebook computer help drivers dll free windows dos repair fix linux mac macintosh 2000 95 98 nt pc configure hardware software sound video netscape explorer network networking lan wan software cmos fat bios printer card mouse modem ide scsi cd rom controllers scanner tape hard drive cgi scripts source code mp3