From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ns2.centillium.com (mxout.centillium.com [12.47.55.9]) by ozlabs.org (Postfix) with ESMTP id 5BDE6DDD01 for ; Tue, 13 May 2008 00:33:57 +1000 (EST) Message-ID: <48285544.7040908@centillium.com> Date: Mon, 12 May 2008 20:03:40 +0530 From: Sanal Kumar V K MIME-Version: 1.0 To: Scott Wood Subject: Re: Running a section of code from internal memory References: <4822E5CE.3090701@centillium.com> <20080508153315.GC18740@ld0162-tx32.am.freescale.net> In-Reply-To: <20080508153315.GC18740@ld0162-tx32.am.freescale.net> Content-Type: text/html; charset=ISO-8859-1 Cc: linuxppc-embedded@ozlabs.org List-Id: Linux on Embedded PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Thanks a lot Scott for replying.

The attribute section is working, but one problem: the compiler is automatically assigning address for the section and ld returns error is I try to assign the address for this section in a linker script:

Following is the disassembly when I don't specify an address for the same section name in the linker script:
Disassembly of section .l2_scratch:

004ae820 <.l2_scratch>:
  4ae820:       3c1c0fb9        lui     gp,0xfb9
  4ae824:       279c1d90        addiu   gp,gp,7568
  4ae828:       0399e021        addu    gp,gp,t9
  4ae82c:       27bdffd0        addiu   sp,sp,-48
  4ae830:       afbf0028        sw      ra,40(sp)
  4ae834:       afbe0024        sw      s8,36(sp)
  4ae838:       ----------      ----      ---------
 

And the section shows:
Idx Name          Size      VMA       LMA       File off  Algn
  0 .reginfo      00000018  00400094  00400094  00000094  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, DATA, LINK_ONCE_SAME_SIZE
  1 .init         00000088  004000ac  004000ac  000000ac  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  2 .text         000ae6e0  00400140  00400140  00000140  2**4
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  3 .l2_scratch   000004f0  004ae820  004ae820  000ae820  2**2
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  4 -----      --------------------------------------------------------


Now if I make the following entry in the linker script,
  /* define L2 scratch here */
  . = 0x9FC16800;
  .l2_scratch         : { *(.l2_scratch) }

it says "collect2: ld returned 1 exit status".

Is there any way I can assign address for the section used in attribute?

Thanks and regards,
Sanal

Scott Wood wrote:
On Thu, May 08, 2008 at 05:06:46PM +0530, Sanal Kumar V K wrote:
  
A small part of the code needs to run from the on-chip "L2 scratch" for
getting optimum performance. I would really appreciate if some could
give me some pointers regarding the following questions:

1. Is #pragma section supported by gcc.
The compiler prints this warning "ignoring #pragma section" and the
pragma is ignored indicating that it is not supported. Is there any way
I can get the pragma working for gcc or any alternative?
    

__attribute__((section("section name")))

-Scott