[ECOS] Q: PowerPC HAL '.vectors', ROM/RAM, etc.

Sergei Organov osv@javad.ru
Tue Apr 4 05:08:00 GMT 2000


Jesper Skov <jskov@redhat.com> writes:
> >>>>> "Sergei" == Sergei Organov <osv@javad.ru> writes:
> Sergei> Now, I need the '.vectors' section to be put in RAM, but
> Sergei> 'vectors.S' file generates '.vectors' section only if at least
> Sergei> one of the following conditions is met:
>
> Sergei> #if defined(CYG_HAL_STARTUP_ROM) || \
> Sergei> defined(CYGPKG_HAL_POWERPC_SIM) || \
> Sergei> defined(CYGSEM_HAL_POWERPC_COPY_VECTORS)
>
[...]
> It should be a fairly limited job:
>
>  o Add new CDL option which specifies where to copy vectors
>    (should take values 0x0 or 0xfff00000, former being default)
>  o Change COPY_VECTORS code to use that variable.
>  o Change MSR value calculation (top of vectors.S) to take the value
>    of that variable into account.
>  o The hal_vsr_table definition must be made platform specific.
>    I saw this one coming but didn't take the time to figure out how to
>    deal with it.
>    Short term: add the above variable to the definition so the table
>    either resides at 0x3000 or 0xfff03000.
>
> Then you would be in a situation where CYGSEM_HAL_POWERPC_COPY_VECTORS
> should be enabled (or it should be harmless to do so).

Well, that's easy to do. However, in my case it is not required to copy
vectors - it's required to have '.vectors' section and allocate it at
0xfff00000 by the linker. One solution for this is to define new boolean CDL
option, say, CYGSEM_HAL_POWERPC_NEED_VECTORS, with default value
(CYG_HAL_STARTUP != "RAM" || CYGSEM_HAL_POWERPC_COPY_VECTORS) and change the
condition in vectors.S to use it. The "sim" target and my target then should
somehow force the value to be 'true' in its "ram" startup variant. I'm not
sure I know how to do the latter in CDL though. How do I do it?

[...]

Thanks,
Sergei.



More information about the Ecos-discuss mailing list