[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