From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexander Holler Date: Thu, 16 Dec 2010 15:31:21 +0100 Subject: [U-Boot] OMAP3: EVM: Linker errors across tool chain versions In-Reply-To: <4D0A186B.1040006@ahsoftware.de> References: <4D0486FE.9080601@googlemail.com> <4D049F2C.6010005@free.fr> <4D04A4BD.6070705@googlemail.com> <4D04B4AB.7080405@free.fr> <4D079060.70104@googlemail.com> <4D0794CF.5090608@free.fr> <4D0A186B.1040006@ahsoftware.de> Message-ID: <4D0A22B9.9090708@ahsoftware.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Am 16.12.2010 14:47, schrieb Alexander Holler: > To put some salt into the wounds ;) , Using gcc 4.5.1 board_init_f isn't > reached here. When I'm using gcc 4.3.5 it is reached. In both cases I've > used the same version of binutils, 2.20.1. > > For a test without using jtag, I've modified board_init_f to be > > ----------- > board_init_f() > { > turn_on_leds > while(1) ; > ... > } > > I'm working with the master (f8689b9eb3a7f6925cd50404a12479889188c510) > on a beagleboard, using > -------- > make mrproper > make omap3_beagle_config > make > -------- To be precise, turn_on_leds is: ------- // GPIO5 #define GPIO5_OE (*((volatile unsigned long *)0x49056034)) // Output Data Enable Register (Table 24-27) #define GPIO5_DATAOUT (*((volatile unsigned long *)0x4905603C)) // Data Out register (Table 24-31) #define LED1 0x00200000 // Bit 21 #define LED0 0x00400000 // Bit 22 // PRCM #define CM_FCLKEN_PER (*((volatile unsigned long *)0x48005000)) // Controls the modules functional clock activity. (Table 4-237) #define CM_ICLKEN_PER (*((volatile unsigned long *)0x48005010)) // Controls the modules interface clock activity (Table 4-239) // SCM #define CONTROL_PADCONF_UART1_TX (*((volatile unsigned long *)0x4800217C)) // Pad configuration for GPIO_149 [31:16] (Tables 7-4 & 7-74) #define CONTROL_PADCONF_UART1_CTS (*((volatile unsigned long *)0x48002180)) // Pad configuration for GPIO_150 [15:0] (Tables 7-4 & 7-74) // Set the pinmux to select the GPIO signal CONTROL_PADCONF_UART1_TX &= 0x0000FFFF; // [31:16]=GPIO_149 - Clear register bits [31:16] CONTROL_PADCONF_UART1_TX |= 0x00040000; // [31:16]=GPIO_149 - select mux mode 4 for gpio CONTROL_PADCONF_UART1_TX &= 0xFFFF0000; // [15:0] =GPIO_150 - Clear register [15:0] CONTROL_PADCONF_UART1_TX |= 0x00000004; // [15:0] =GPIO_150 - select mux mode 4 for gpio // Switch on the Interface and functional clocks to the GPIO5 module CM_FCLKEN_PER |= 0x20; // Enable GPIO5 F clock CM_FCLKEN_PER |= 0x20; // Enable GPIO5 I clock // Configure the GPIO signals GPIO5_OE &= ~(LED1+LED0); // Set GPIO_149 & GPIO_150 (GPIO 4 bit 2) to output GPIO5_DATAOUT |= LED0; // Set GPIO_150 high GPIO5_DATAOUT |= LED1; // Set GPIO_149 high //GPIO5_DATAOUT &= ~LED1; // Set GPIO_149 low ------- (code stolen from somewhere on the web, just to show bss isn't used here) Regards, Alexander