[OpenBIOS] [commit] r976 - in trunk/openbios-devel: arch/ppc/qemu include/arch/ppc

Andreas Färber andreas.faerber at web.de
Sun Nov 28 14:05:15 CET 2010


Am 28.11.2010 um 12:56 schrieb Blue Swirl:

> On Sun, Nov 28, 2010 at 11:40 AM, repository service  
> <svn at openbios.org> wrote:
>> Author: afaerber
>> Date: Sun Nov 28 12:40:42 2010
>> New Revision: 976
>> URL: http://tracker.coreboot.org/trac/openbios/changeset/976
>>
>> Log:
>> ppc: Create function descriptors for global functions on ppc64
>>
>> This should also fix linker errors observed by Blue.
>
> Not yet:
>  LINK  openbios-qemu.elf
> libdrivers.a(timer.o): In function `udelay':
> /src/openbios-devel/obj-ppc64/../drivers/timer.c:91: undefined
> reference to `._wait_ticks'
>
> How about this change (get_ticks is not used elsewhere, no need to  
> export it):

It's documented as a C function in the comment above and may get handy  
later on, so I'd prefer to change the calling code.
Mind to check and add your Tested-by?

> diff --git a/arch/ppc/timebase.S b/arch/ppc/timebase.S
> index c519511..38d2566 100644
> --- a/arch/ppc/timebase.S
> +++ b/arch/ppc/timebase.S
> @@ -4,7 +4,7 @@
> /*
>  * unsigned long long _get_ticks(void);
>  */
> -GLOBL(_get_ticks):
> +get_ticks:

Any technical reason for changing the name? I'd assume it's copied  
from Linux or somewhere. __divide_error isn't exactly nice either.

Andreas

> 1:      mftbu   r3
>         mftb    r4
>         mftbu   r5
> @@ -15,16 +15,16 @@ GLOBL(_get_ticks):
> /*
>  * Delay for a number of ticks
>  */
> -GLOBL(_wait_ticks):
> +_GLOBAL(_wait_ticks):
>         mflr    r8              /* save link register */
>         mr      r7, r3          /* save tick count */
> -        bl      _get_ticks       /* Get start time */
> +        bl      get_ticks       /* Get start time */
>
>         /* Calculate end time */
>         addc    r7, r4, r7      /* Compute end time lower */
>         addze   r6, r3          /*     and end time upper */
>
> -1:      bl      _get_ticks       /* Get current time */
> +1:      bl      get_ticks       /* Get current time */
>         subfc   r4, r4, r7      /* Subtract current time from end  
> time */
>         subfe.  r3, r3, r6
>         bge     1b              /* Loop until time expired */




More information about the OpenBIOS mailing list