mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-22 01:48:52 +09:00
![]() Before this commit, weak symbols were not overridden by non-weak symbols found in archive libraries when linking with recent versions of binutils. As stated in the System V ABI, "the link editor does not extract archive members to resolve undefined weak symbols". This commit changes all Makefiles to use partial linking (ld -r) instead of creating library archives, which forces all symbols to participate in linking, allowing non-weak symbols to override weak symbols as intended. This approach is also used by Linux, from which the gmake function cmd_link_o_target (defined in config.mk and used in all Makefiles) is inspired. The name of each former library archive is preserved except for extensions which change from ".a" to ".o". This commit updates references accordingly where needed, in particular in some linker scripts. This commit reveals board configurations that exclude some features but include source files that depend these disabled features in the build, resulting in undefined symbols. Known such cases include: - disabling CMD_NET but not CMD_NFS; - enabling CONFIG_OF_LIBFDT but not CONFIG_QE. Signed-off-by: Sebastien Carlier <sebastien.carlier@gmail.com> |
||
---|---|---|
.. | ||
cu824.c | ||
flash.c | ||
Makefile | ||
README |
ppcboot for a CU824 board --------------------------- CU824 has two banks of flash 8MB each. In board's notation, bank 0 is the one at the address of 0xFF800000 and bank 1 is the one at the address of 0xFF000000. On power-up the processor jumps to the address of 0xFFF00100, the last megabyte of the bank 0 of flash. Thus, U-Boot is configured to reside in flash starting at the address of 0xFFF00000. The environment space is not embedded in the U-Boot code and is located in flash separately from U-Boot, at the address of 0xFF008000. U-Boot test results -------------------- x.x Operation on all available serial consoles x.x.x CONFIG_CONS_INDEX 1 ppcboot 0.9.2 (May 13 2001 - 17:56:46) Initializing... CPU: MPC8240 Revsion 1.1 at 247 MHz: 16 kB I-Cache 16 kB D-Cache Board: CU824 Revision 1 Local Bus at 99 MHz DRAM: 64 MB FLASH: 16 MB In: serial Out: serial Err: serial Hit any key to stop autoboot: 0 => =>he go - start application at address 'addr' run - run commands in an environment variable bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol tftpboot- boot image via network using TFTP protocol and env variables ipaddr and serverip rarpboot- boot image via network using RARP/TFTP protocol bootd - boot default, i.e., run 'bootcmd' loads - load S-Record file over serial line loadb - load binary file over serial line (kermit mode) md - memory display mm - memory modify (auto-incrementing) nm - memory modify (constant address) mw - memory write (fill) cp - memory copy cmp - memory compare crc32 - checksum calculation base - print or set address offset printenv- print environment variables setenv - set environment variables saveenv - save environment variables to persistent storage protect - enable or disable FLASH write protection erase - erase FLASH memory flinfo - print FLASH memory information bdinfo - print Board Info structure iminfo - print header information for application image coninfo - print console devices and informations loop - infinite loop on address range mtest - simple RAM test icache - enable or disable instruction cache dcache - enable or disable data cache reset - Perform RESET of the CPU echo - echo args to console version - print monitor version help - print online help ? - alias for 'help' => x.x.x CONFIG_CONS_INDEX 2 **** NOT TESTED **** x.x Flash Driver Operation x.x.x Erase Operation ppcboot 0.9.2 (May 13 2001 - 17:56:46) Initializing... CPU: MPC8240 Revsion 1.1 at 247 MHz: 16 kB I-Cache 16 kB D-Cache Board: CU824 Revision 1 Local Bus at 99 MHz DRAM: 64 MB FLASH: 16 MB In: serial Out: serial Err: serial Hit any key to stop autoboot: 0 => => => =>md ff000000 ff000000: 27051956 70706362 6f6f7420 302e382e '..Vppcboot 0.8. ff000010: 3320284d 61792031 31203230 3031202d 3 (May 11 2001 - ff000020: 2031343a 35373a30 33290000 00000000 14:57:03)...... ff000030: 00000000 00000000 00000000 00000000 ................ ff000040: 00000000 00000000 00000000 00000000 ................ ff000050: 00000000 00000000 00000000 00000000 ................ ff000060: 00000000 00000000 00000000 00000000 ................ ff000070: 00000000 00000000 00000000 00000000 ................ ff000080: 00000000 00000000 00000000 00000000 ................ ff000090: 00000000 00000000 00000000 00000000 ................ ff0000a0: 00000000 00000000 00000000 00000000 ................ ff0000b0: 00000000 00000000 00000000 00000000 ................ ff0000c0: 00000000 00000000 00000000 00000000 ................ ff0000d0: 00000000 00000000 00000000 00000000 ................ ff0000e0: 00000000 00000000 00000000 00000000 ................ ff0000f0: 00000000 00000000 00000000 00000000 ................ =>erase ff000000 ff007fff Erase Flash from 0xff000000 to 0xff007fff done Erased 1 sectors =>md ff000000 ff000000: ffffffff ffffffff ffffffff ffffffff ................ ff000010: ffffffff ffffffff ffffffff ffffffff ................ ff000020: ffffffff ffffffff ffffffff ffffffff ................ ff000030: ffffffff ffffffff ffffffff ffffffff ................ ff000040: ffffffff ffffffff ffffffff ffffffff ................ ff000050: ffffffff ffffffff ffffffff ffffffff ................ ff000060: ffffffff ffffffff ffffffff ffffffff ................ ff000070: ffffffff ffffffff ffffffff ffffffff ................ ff000080: ffffffff ffffffff ffffffff ffffffff ................ ff000090: ffffffff ffffffff ffffffff ffffffff ................ ff0000a0: ffffffff ffffffff ffffffff ffffffff ................ ff0000b0: ffffffff ffffffff ffffffff ffffffff ................ ff0000c0: ffffffff ffffffff ffffffff ffffffff ................ ff0000d0: ffffffff ffffffff ffffffff ffffffff ................ ff0000e0: ffffffff ffffffff ffffffff ffffffff ................ ff0000f0: ffffffff ffffffff ffffffff ffffffff ................ => x.x.x Information ppcboot 0.9.2 (May 13 2001 - 17:56:46) Initializing... CPU: MPC8240 Revsion 1.1 at 247 MHz: 16 kB I-Cache 16 kB D-Cache Board: CU824 Revision 1 Local Bus at 99 MHz DRAM: 64 MB FLASH: 16 MB In: serial Out: serial Err: serial Hit any key to stop autoboot: 0 => => => => =>flinfo Bank # 1: Intel: 28F160F3B (16Mbit) Size: 8 MB in 39 Sectors Sector Start Addresses: FF000000 FF008000 (RO) FF010000 FF018000 FF020000 FF028000 FF030000 FF038000 FF040000 FF080000 FF0C0000 FF100000 FF140000 FF180000 FF1C0000 FF200000 FF240000 FF280000 FF2C0000 FF300000 FF340000 FF380000 FF3C0000 FF400000 FF440000 FF480000 FF4C0000 FF500000 FF540000 FF580000 FF5C0000 FF600000 FF640000 FF680000 FF6C0000 FF700000 FF740000 FF780000 FF7C0000 Bank # 2: Intel: 28F160F3B (16Mbit) Size: 8 MB in 39 Sectors Sector Start Addresses: FF800000 FF808000 FF810000 FF818000 FF820000 FF828000 FF830000 FF838000 FF840000 FF880000 FF8C0000 FF900000 FF940000 FF980000 FF9C0000 FFA00000 FFA40000 FFA80000 FFAC0000 FFB00000 FFB40000 FFB80000 FFBC0000 FFC00000 FFC40000 FFC80000 FFCC0000 FFD00000 FFD40000 FFD80000 FFDC0000 FFE00000 FFE40000 FFE80000 FFEC0000 FFF00000 (RO) FFF40000 FFF80000 FFFC0000 => x.x.x Flash Programming ppcboot 0.9.2 (May 13 2001 - 17:56:46) Initializing... CPU: MPC8240 Revsion 1.1 at 247 MHz: 16 kB I-Cache 16 kB D-Cache Board: CU824 Revision 1 Local Bus at 99 MHz DRAM: 64 MB FLASH: 16 MB In: serial Out: serial Err: serial Hit any key to stop autoboot: 0 => => => => =>cp 0 ff000000 20 Copy to Flash... done =>md 0 00000000: 0ec08ce0 03f9800c 00000001 040c0000 ................ 00000010: 00000001 03fd1aa0 03fd1ae4 03fd1a00 ................ 00000020: 03fd1a58 03fceb04 03fd34cc 03fd34d0 ...X......4...4. 00000030: 03fcd5bc 03fcdabc 00000000 00000000 ................ 00000040: 00000000 00000000 00000000 00000000 ................ 00000050: 00000000 00000000 00000000 00000000 ................ 00000060: 00000000 00000000 00000000 00000000 ................ 00000070: 00000000 00000000 00000000 00000000 ................ 00000080: 00000000 00000000 00000000 00000000 ................ 00000090: 00000000 00000000 00000000 00000000 ................ 000000a0: 00000000 00000000 00000000 00000000 ................ 000000b0: 00000000 00000000 00000000 00000000 ................ 000000c0: 00000000 00000000 00000000 00000000 ................ 000000d0: 00000000 00000000 00000000 00000000 ................ 000000e0: 00000000 00000000 00000000 00000000 ................ 000000f0: 00000000 00000000 00000000 00000000 ................ =>md ff000000 ff000000: 0ec08ce0 03f9800c 00000001 040c0000 ................ ff000010: 00000001 03fd1aa0 03fd1ae4 03fd1a00 ................ ff000020: 03fd1a58 03fceb04 03fd34cc 03fd34d0 ...X......4...4. ff000030: 03fcd5bc 03fcdabc 00000000 00000000 ................ ff000040: 00000000 00000000 00000000 00000000 ................ ff000050: 00000000 00000000 00000000 00000000 ................ ff000060: 00000000 00000000 00000000 00000000 ................ ff000070: 00000000 00000000 00000000 00000000 ................ ff000080: ffffffff ffffffff ffffffff ffffffff ................ ff000090: ffffffff ffffffff ffffffff ffffffff ................ ff0000a0: ffffffff ffffffff ffffffff ffffffff ................ ff0000b0: ffffffff ffffffff ffffffff ffffffff ................ ff0000c0: ffffffff ffffffff ffffffff ffffffff ................ ff0000d0: ffffffff ffffffff ffffffff ffffffff ................ ff0000e0: ffffffff ffffffff ffffffff ffffffff ................ ff0000f0: ffffffff ffffffff ffffffff ffffffff ................ => x.x.x Storage of environment variables in flash ppcboot 0.9.2 (May 13 2001 - 17:56:46) Initializing... CPU: MPC8240 Revsion 1.1 at 247 MHz: 16 kB I-Cache 16 kB D-Cache Board: CU824 Revision 1 Local Bus at 99 MHz DRAM: 64 MB FLASH: 16 MB In: serial Out: serial Err: serial Hit any key to stop autoboot: 0 => =>printenv bootargs= bootcmd=bootm FE020000 bootdelay=5 baudrate=9600 ipaddr=192.168.4.2 serverip=192.168.4.1 ethaddr=00:40:42:01:00:a0 stdin=serial stdout=serial stderr=serial Environment size: 167/32764 bytes =>setenv myvar 1234 =>save_env Un-Protected 1 sectors Erasing Flash... done Erased 1 sectors Saving Environment to Flash... Protected 1 sectors =>reset ppcboot 0.9.2 (May 13 2001 - 17:56:46) Initializing... CPU: MPC8240 Revsion 1.1 at 247 MHz: 16 kB I-Cache 16 kB D-Cache Board: CU824 Revision 1 Local Bus at 99 MHz DRAM: 64 MB FLASH: 16 MB In: serial Out: serial Err: serial Hit any key to stop autoboot: 0 => =>printenv bootargs= bootcmd=bootm FE020000 bootdelay=5 baudrate=9600 ipaddr=192.168.4.2 serverip=192.168.4.1 ethaddr=00:40:42:01:00:a0 myvar=1234 stdin=serial stdout=serial stderr=serial Environment size: 178/32764 bytes => x.x Image Download and run over serial port ppcboot 0.9.2 (May 13 2001 - 17:56:46) Initializing... CPU: MPC8240 Revsion 1.1 at 247 MHz: 16 kB I-Cache 16 kB D-Cache Board: CU824 Revision 1 Local Bus at 99 MHz DRAM: 64 MB FLASH: 16 MB In: serial Out: serial Err: serial Hit any key to stop autoboot: 0 => => =>mw 40000 0 10000 =>md 40000 00040000: 00000000 00000000 00000000 00000000 ................ 00040010: 00000000 00000000 00000000 00000000 ................ 00040020: 00000000 00000000 00000000 00000000 ................ 00040030: 00000000 00000000 00000000 00000000 ................ 00040040: 00000000 00000000 00000000 00000000 ................ 00040050: 00000000 00000000 00000000 00000000 ................ 00040060: 00000000 00000000 00000000 00000000 ................ 00040070: 00000000 00000000 00000000 00000000 ................ 00040080: 00000000 00000000 00000000 00000000 ................ 00040090: 00000000 00000000 00000000 00000000 ................ 000400a0: 00000000 00000000 00000000 00000000 ................ 000400b0: 00000000 00000000 00000000 00000000 ................ 000400c0: 00000000 00000000 00000000 00000000 ................ 000400d0: 00000000 00000000 00000000 00000000 ................ 000400e0: 00000000 00000000 00000000 00000000 ................ 000400f0: 00000000 00000000 00000000 00000000 ................ =>loads ## Ready for S-Record download ... (Back at xpert.denx.de) [vlad@xpert vlad]$ cat hello_world.srec >/dev/ttyS0 [vlad@xpert vlad]$ kermit -l /dev/ttyS0 -b 9600 -c Connecting to /dev/ttyS0, speed 9600. The escape character is Ctrl-\ (ASCII 28, FS) Type the escape character followed by C to get back, or followed by ? to see other options. md 40000 00040000: 00018148 9421ffe0 7c0802a6 bf61000c ...H.!..|....a.. 00040010: 90010024 48000005 7fc802a6 801effe8 ...$H........... 00040020: 7fc0f214 7c7f1b78 813f0038 7c9c2378 ....|..x.?.8|.#x 00040030: 807e8000 7cbd2b78 80090010 3b600000 .~..|.+x....;`.. 00040040: 7c0803a6 4e800021 813f0038 7f84e378 |...N..!.?.8...x 00040050: 807e8004 80090010 7c0803a6 4e800021 .~......|...N..! 00040060: 7c1be000 4181003c 80bd0000 813f0038 |...A..<.....?.8 00040070: 3bbd0004 2c050000 40820008 80be8008 ;...,...@....... 00040080: 80090010 7f64db78 807e800c 3b7b0001 .....d.x.~..;{.. 00040090: 7c0803a6 4e800021 7c1be000 4081ffcc |...N..!|...@... 000400a0: 813f0038 807e8010 80090010 7c0803a6 .?.8.~......|... 000400b0: 4e800021 813f0038 80090004 7c0803a6 N..!.?.8....|... 000400c0: 4e800021 2c030000 4182ffec 813f0038 N..!,...A....?.8 000400d0: 80090000 7c0803a6 4e800021 813f0038 ....|...N..!.?.8 000400e0: 807e8014 80090010 7c0803a6 4e800021 .~......|...N..! 000400f0: 38600000 80010024 7c0803a6 bb61000c 8`.....$|....a.. =>go 40004 ## Starting application at 0x00040004 ... Hello World argc = 1 argv[0] = "40004" argv[1] = "<NULL>" Hit any key to exit ... ## Application terminated, rc = 0x0 => x.x Image download and run over ethernet interface ppcboot 0.9.2 (May 13 2001 - 17:56:46) Initializing... CPU: MPC8240 Revsion 1.1 at 247 MHz: 16 kB I-Cache 16 kB D-Cache Board: CU824 Revision 1 Local Bus at 99 MHz DRAM: 64 MB FLASH: 16 MB In: serial Out: serial Err: serial Hit any key to stop autoboot: 0 => => =>mw 40000 0 10000 =>md 40000 00040000: 00000000 00000000 00000000 00000000 ................ 00040010: 00000000 00000000 00000000 00000000 ................ 00040020: 00000000 00000000 00000000 00000000 ................ 00040030: 00000000 00000000 00000000 00000000 ................ 00040040: 00000000 00000000 00000000 00000000 ................ 00040050: 00000000 00000000 00000000 00000000 ................ 00040060: 00000000 00000000 00000000 00000000 ................ 00040070: 00000000 00000000 00000000 00000000 ................ 00040080: 00000000 00000000 00000000 00000000 ................ 00040090: 00000000 00000000 00000000 00000000 ................ 000400a0: 00000000 00000000 00000000 00000000 ................ 000400b0: 00000000 00000000 00000000 00000000 ................ 000400c0: 00000000 00000000 00000000 00000000 ................ 000400d0: 00000000 00000000 00000000 00000000 ................ 000400e0: 00000000 00000000 00000000 00000000 ................ 000400f0: 00000000 00000000 00000000 00000000 ................ =>tftpboot 40000 hello_world.bin ARP broadcast 1 TFTP from server 192.168.4.1; our IP address is 192.168.4.2 Filename 'hello_world.bin'. Load address: 0x40000 Loading: ############# done Bytes transferred = 65912 (10178 hex) =>md 40000 00040000: 00018148 9421ffe0 7c0802a6 bf61000c ...H.!..|....a.. 00040010: 90010024 48000005 7fc802a6 801effe8 ...$H........... 00040020: 7fc0f214 7c7f1b78 813f0038 7c9c2378 ....|..x.?.8|.#x 00040030: 807e8000 7cbd2b78 80090010 3b600000 .~..|.+x....;`.. 00040040: 7c0803a6 4e800021 813f0038 7f84e378 |...N..!.?.8...x 00040050: 807e8004 80090010 7c0803a6 4e800021 .~......|...N..! 00040060: 7c1be000 4181003c 80bd0000 813f0038 |...A..<.....?.8 00040070: 3bbd0004 2c050000 40820008 80be8008 ;...,...@....... 00040080: 80090010 7f64db78 807e800c 3b7b0001 .....d.x.~..;{.. 00040090: 7c0803a6 4e800021 7c1be000 4081ffcc |...N..!|...@... 000400a0: 813f0038 807e8010 80090010 7c0803a6 .?.8.~......|... 000400b0: 4e800021 813f0038 80090004 7c0803a6 N..!.?.8....|... 000400c0: 4e800021 2c030000 4182ffec 813f0038 N..!,...A....?.8 000400d0: 80090000 7c0803a6 4e800021 813f0038 ....|...N..!.?.8 000400e0: 807e8014 80090010 7c0803a6 4e800021 .~......|...N..! 000400f0: 38600000 80010024 7c0803a6 bb61000c 8`.....$|....a.. =>go 40004 ## Starting application at 0x00040004 ... Hello World argc = 1 argv[0] = "40004" argv[1] = "<NULL>" Hit any key to exit ... ## Application terminated, rc = 0x0 =>