This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: The 640k barrier


Leandro Fanzone <leandro@hasar.com> writes:

> I already wrote about this in another thread, but as I didn't receive
> an answer, I try to create a dedicated thread for this. I'm doing some
> testing on eCos, and I'm trying to figure out if it fits our needs. I
> wanted to quickly find out how much heap I have, so I made a floppy
> test that mallocs memory until malloc returns NULL: some 140k of heap,
> and that's it. We're planning a 2M i386 board, and though I declare
> through the mlt_i386_pc_floppy files such thing, malloc always stops
> when the pointer reaches the 640k barrier. It's also a concern for us
> that the code can't be moved to the upper meg, because the linker
> complains "relocation truncated to fit", something related to
> vectors.o, so I assume that the interrupt vectors drag the code to the
> lower meg, and therefore can't be moved that high. Our code will be
> large enough to exceed the 640k, so the best for us would be to map
> the code in the upper meg, and let data and heap in the lower
> 640k. Can someone help me with this? I already modified the
> mlt_i386_pc_floppy.* files, but with no success so far. Either I have
> linker errors, or it doesn't boot at all. The documentation isn't much
> explicit about the this.
> Thank you in advance,

The 640k limit on FLOPPY startups is there because the BIOS calls used
to access the floppy device can only load sectors into the bottom
640k. So, even if you moved the link address of the code to above the
1M barrier, it would still not load.

If it is not possible to load your program using RedBoot then take a
look at the support for using GRUB. This will load programs into the
upper memory. Take a look at the following documentation:

http://ecos.sourceware.org/docs-latest/user-guide/setup-i386-pc.html

-- 
Nick Garnett                    eCos Kernel Architect
http://www.ecoscentric.com      The eCos and RedBoot experts


-- 
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]