Am 28.11.2010 um 12:56 schrieb Blue Swirl:
On Sun, Nov 28, 2010 at 11:40 AM, repository service svn@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 */