[U-Boot] OMAP3: EVM: Linker errors across tool chain versions

Alexander Holler holler at ahsoftware.de
Thu Dec 16 15:31:21 CET 2010


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


More information about the U-Boot mailing list