Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: gcc48, drmkms issues with i386



In article <20140409184035.GB20347%snowdrop.l8s.co.uk@localhost>,
David Laight  <david%l8s.co.uk@localhost> wrote:
>On Wed, Apr 09, 2014 at 09:10:42AM -0500, John D. Baker wrote:
>> On Wed, 9 Apr 2014, John D. Baker wrote:
>> 
>> > disk, the last part of the display actually looked like:
>> > 
>> > prot_to_real: can't return to 0001296DFn: Diskn
>> 
>> Should have been:
>> 
>> prot_to_real: can't return to 000129CD Fn: Diskn
>> 
>> The amd64-built version behaves the same.  The only difference was the
>> address reported in the message above: 00012D19
>
>All the calls to 'prot_to_real' have to reside in the first 64k of
>the code area.
>The code them bombs out back to the outer loader.
>
>The linker used to manage that, but it might have been relying
>on the linker putting object files into a section in the order they
>were specified on the command line.
>
>Plausibly prot_to_real could set the real mode $cs value to one
>appropriate for the return address.
>The calls are all from assembler and are followed by a bios call
>and then a call to real_to_prot.
>
>If that were done the /boot code itself could probably be linked with a
>virtual base address of 1MB and run with virtual == physical removing
>the confusing offset.

Do you want to take a stab at fixing it? It would take me an order
of magnitude longer to do the same.

christos



Home | Main Index | Thread Index | Old Index