I'm working on code to initialize a 486 processor.

Code is taken from an AMD support file that illustrates some ASM to initialize the system and call Main function in C application as an external.

I tried assembling the demonstration in Bloodshed C compiler (Great name for a product eh? I'll bet their sick about it.)and got 28 errors. I'm not a C programmer; Perl, VB, Java and some ASM.
I'll try another compiler. I see Watcom C is 48MB.

AMD likes to establish protected mode for some reason before calling the C application ( which in this case is a BIOS demonstration.) My application initially can get by without LOTS of the standard PC BIOS support. I just need to initialize stack, memory and interrupts to process serial I/O and return serial responses. The whole thing can be written in MASM32, taking about 95% of the application from an existing AVR application.

The amount of code needed to initialize the system is not bad.

I also checked into tinyBIOS and began removing a lot of things to get MASM to like it. Conversion from A386 to MASM is not too much work either, but it uses segmentation heavily. So I figure its easier to knockout a FLAT boot method and then add the SIO in MASM. AMD just might be willing to take a look at the BOOT code to help me get a Elan 520 5-WATT server prototype up to a point where I can begin developing the application.

The attachment compiles with no includes in MASM32.

I'd like to get a code method established. I don't understand the expansion really in DRAM initialization. I'm going to run it by AMD.


5W Server
Posted on 2002-03-30 09:25:55 by avrster
Sounds like you need a bootloader have you been here:

Posted on 2002-03-31 05:32:56 by bdjames
You don't undstand what I'm working on.

I'll probably make it optional to boot the 5W server from a DD same as a PC.

I'm looking for a C programmer who has time to assist in converting some C that compiles on a system that AMD uses for development to either Borland C++ or Bloodshed C.

I'm developing the capabillity to build embedded CPU's. (I'm working on schematics using the ZFx86, AMD ELAN-520 and Ali M6117. A 486,568 and 386 respectively.)

Its a race to see which company offers the best assistance in developing the BIOS. AMD is leading that race with a good C/ASM demo for booting and testing the 520 in a defined module. ALi does not support it directly, however tinyBIOS is opensource, available and can be assebled using Eric Isaacson's A386 assembler. There is a config for the M6117. ZF Micro provides excellent documentation, and I am searching for the BIOS definitions source file in projects on their site.

My experience with C is limited so I am going through problems with the conversion needed to the AMD demonstration. I spent a few hours last night converting the e520 include file to ASM definitions hopig to be able to do the entire initialization in MASM32 code.

Once I get the basic initialization algorithm worked ount for one of the platforms, it will be a matter of dropping in the definitions and making appropriate changes. Its extensive and challenging, but its necessary in supporting a design. AMD seems to offer the best support so far, indicating they WILL support me in E-mail response. ALi is difficult to contact, even if you are one of their large distributors.

The payoff for getting involved in this conversion is the use of the BIOS and possibly my schematic, but if you would like to remain involved in the development, you would get more. Possibly mutual access to the designs and their BIOS'.

I checked out the site. I'm creating the entire BIOS using recommended code from available demonstrations and documentation. Where the demo uses a lage emory component, my TOPGUN application requires the flat minimum supported if possible. This requires register values suggested in datasheets.

some BIOS features are un-necessary when ..... BLAH,BLAH

hey its a big project, I gotta go

Thanks, for the info. Anyone who wants to checkout the AMD BIOS demonstration, let me know and I'll post the link. I'm interested in doing the entire sequence in MASM32, converting it from C. But a working C implementation will alsl be useful.

One approach I may try, is to begin with a module at a time working out each error introduced by each new file. There are about 10 files.

Posted on 2002-03-31 06:57:00 by avrster