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

binutils-2.9.1.0.25 + rtems-patches is broken



Sorry for the delay in responding, I was on a small vacation.  Tony is correct, that
variable should appear later in the initialization.  I thought that had been done already.
Anyway, if possible, initializing as a 'C' file would be far more appropriate.


Tony R. Ambardar wrote:

> I believe I posted about this before, but it can't hurt to point it out
> again. This code fragment doesn't work as expected. The "i8259s_cache"
> variable is in the BSS, and the BSS will just be zeroed after this code
> executes in start.S. The solution is to move the instruction "movw
> $0xFFFB, SYM(i8259s_cache)" to a point after the BSS is zeroed. That area
> runs in 32-bit protected mode, so it should also fix the other problem
> you're seeing.
>
> See start.S in the ts_386ex BSP for an example.
>
> Tony
>
>   ____________________________________________________________
>  /                                                            \
> | Tony R. Ambardar         |   Department of Electrical &      |
> | M.Sc., M.Eng.            |   Computer Engineering            |
> | Email: tonya at ece.ubc.ca  |   University of British Columbia  |
> | Ph: (604) 822-2872       |   2356 Main Mall, Vancouver B.C.  |
> | Fax:(604) 822-5949       |   V6T 1Z4  CANADA                 |
>  \____________________________________________________________/
>
> On Mon, 2 Aug 1999 joel at oarcorp.com wrote:
>
> > On 30 Jul 1999, Ian Lance Taylor wrote:
> >
> > >    Date: Fri, 30 Jul 1999 14:53:20 -0500 (CDT)
> > >    From: <joel at oarcorp.com>
> > >
> > >    it is used like this in i386ex/start/start.S
> > >
> > >    start.S:      movw    $0xFFFB, SYM(i8259s_cache) /* set up same values in cache */
> > >
> > >    I am heading out the door.  Any other ideas what could have tripped this?
> > >
> > > This instruction appears in a .code16 section.  In a .code16 section,
> > > current versions of gas assume that all addresses are 16 bits unless
> > > told otherwise.
> > >
> > > If you change the line to
> > >     addr32   movw $0xFFFB, SYM(i8259s_cache)
> > > then you will get a 32 bit address reference.
> > >
> > > You may want to use addr32 only when NEW_GAS is defined.
> >
> > I think the attached patch is what you had in mind.
> >
> > Ralf .. does this fix the problem on your toolset?
> >
> > --joel
> >


-------------- next part --------------
A non-text attachment was scrubbed...
Name: vcard.vcf
Type: text/x-vcard
Size: 291 bytes
Desc: Card for Erik Ivanenko
Url : http://rtems.rtems.org/pipermail/rtems-users/attachments/19990805/c698d381/attachment.vcf