mirror of
https://github.com/u-boot/u-boot.git
synced 2024-11-25 05:04:23 +08:00
6d8962e814
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> |
||
---|---|---|
.. | ||
flash.c | ||
Makefile | ||
musenki.c | ||
README |
U-Boot for a Musenki M-3/M-1 board --------------------------- Musenki M-1 and M-3 have two banks of flash of 4MB or 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 located in flash separately from U-Boot, at the address of 0xFF800000. There is a Davicom 9102A on-board, but I don't have it working yet. U-Boot test results -------------------- x.x Operation on all available serial consoles x.x.x CONFIG_CONS_INDEX 1 U-Boot 1.1.1 (Nov 20 2001 - 15:55:32) CPU: MPC8245 Revision 16.20 at 250 MHz: 16 kB I-Cache 16 kB D-Cache Board: MUSENKI Local Bus at 100 MHz DRAM: 32 MB FLASH: 4 MB In: serial Out: serial Err: serial Hit any key to stop autoboot: 0 => help base - print or set address offset bdinfo - print Board Info structure bootm - boot application image from memory bootp - boot image via network using BootP/TFTP protocol bootd - boot default, i.e., run 'bootcmd' cmp - memory compare coninfo - print console devices and informations cp - memory copy crc32 - checksum calculation dcache - enable or disable data cache echo - echo args to console erase - erase FLASH memory flinfo - print FLASH memory information go - start application at address 'addr' help - print online help icache - enable or disable instruction cache iminfo - print header information for application image loadb - load binary file over serial line (kermit mode) loads - load S-Record file over serial line loop - infinite loop on address range md - memory display mm - memory modify (auto-incrementing) mtest - simple RAM test mw - memory write (fill) nm - memory modify (constant address) printenv- print environment variables protect - enable or disable FLASH write protection rarpboot- boot image via network using RARP/TFTP protocol reset - Perform RESET of the CPU run - run commands in an environment variable saveenv - save environment variables to persistent storage setenv - set environment variables source - run script from memory tftpboot- boot image via network using TFTP protocol and env variables ipaddr and serverip version - print monitor version ? - alias for 'help' x.x.x CONFIG_CONS_INDEX 2 **** NOT TESTED **** x.x Flash Driver Operation Boot 1.1.1 (Nov 20 2001 - 15:55:32) CPU: MPC8245 Revision 16.20 at 250 MHz: 16 kB I-Cache 16 kB D-Cache Board: MUSENKI Local Bus at 100 MHz DRAM: 32 MB FLASH: 4 MB *** Warning - bad CRC, using default environment In: serial Out: serial Err: serial Hit any key to stop autoboot: 0 => => md ff800000 ff800000: 46989bf8 626f6f74 636d643d 626f6f74 F...bootcmd=boot ff800010: 6d204646 38323030 30300062 6f6f7464 m FF820000.bootd ff800020: 656c6179 3d350062 61756472 6174653d elay=5.baudrate= ff800030: 39363030 00636c6f 636b735f 696e5f6d 9600.clocks_in_m ff800040: 687a3d31 00737464 696e3d73 65726961 hz=1.stdin=seria ff800050: 6c007374 646f7574 3d736572 69616c00 l.stdout=serial. ff800060: 73746465 72723d73 65726961 6c006970 stderr=serial.ip ff800070: 61646472 3d313932 2e313638 2e302e34 addr=192.168.0.4 ff800080: 32007365 72766572 69703d31 39322e31 2.serverip=192.1 ff800090: 36382e30 2e380000 00000000 00000000 68.0.8.......... ff8000a0: 00000000 00000000 00000000 00000000 ................ ff8000b0: 00000000 00000000 00000000 00000000 ................ ff8000c0: 00000000 00000000 00000000 00000000 ................ ff8000d0: 00000000 00000000 00000000 00000000 ................ ff8000e0: 00000000 00000000 00000000 00000000 ................ ff8000f0: 00000000 00000000 00000000 00000000 ................ => protect off ff800000 ff81ffff Un-Protected 1 sectors => erase ff800000 ff81ffff Erase Flash from 0xff800000 to 0xff81ffff done Erased 1 sectors => md ff800000 ff800000: ffffffff ffffffff ffffffff ffffffff ................ ff800010: ffffffff ffffffff ffffffff ffffffff ................ ff800020: ffffffff ffffffff ffffffff ffffffff ................ ff800030: ffffffff ffffffff ffffffff ffffffff ................ ff800040: ffffffff ffffffff ffffffff ffffffff ................ ff800050: ffffffff ffffffff ffffffff ffffffff ................ ff800060: ffffffff ffffffff ffffffff ffffffff ................ ff800070: ffffffff ffffffff ffffffff ffffffff ................ ff800080: ffffffff ffffffff ffffffff ffffffff ................ ff800090: ffffffff ffffffff ffffffff ffffffff ................ ff8000a0: ffffffff ffffffff ffffffff ffffffff ................ ff8000b0: ffffffff ffffffff ffffffff ffffffff ................ ff8000c0: ffffffff ffffffff ffffffff ffffffff ................ ff8000d0: ffffffff ffffffff ffffffff ffffffff ................ ff8000e0: ffffffff ffffffff ffffffff ffffffff ................ ff8000f0: ffffffff ffffffff ffffffff ffffffff ................ x.x.x Information U-Boot 1.1.1 (Nov 20 2001 - 15:55:32) CPU: MPC8245 Revision 16.20 at 250 MHz: 16 kB I-Cache 16 kB D-Cache Board: MUSENKI Local Bus at 100 MHz DRAM: 32 MB FLASH: 4 MB *** Warning - bad CRC, using default environment In: serial Out: serial Err: serial Hit any key to stop autoboot: 0 => flinfo Bank # 1: Intel 28F320J3A (32Mbit = 128K x 32) Size: 4 MB in 32 Sectors Sector Start Addresses: FF800000 (RO) FF820000 FF840000 FF860000 FF880000 FF8A0000 FF8C0000 FF8E0000 FF900000 FF920000 FF940000 FF960000 FF980000 FF9A0000 FF9C0000 FF9E0000 FFA00000 FFA20000 FFA40000 FFA60000 FFA80000 FFAA0000 FFAC0000 FFAE0000 FFB00000 FFB20000 FFB40000 FFB60000 FFB80000 FFBA0000 FFBC0000 FFBE0000 Bank # 2: missing or unknown FLASH type => x.x.x Flash Programming U-Boot 1.1.1 (Nov 20 2001 - 15:55:32) CPU: MPC8245 Revision 16.20 at 250 MHz: 16 kB I-Cache 16 kB D-Cache Board: MUSENKI Local Bus at 100 MHz DRAM: 32 MB FLASH: 4 MB In: serial Out: serial Err: serial Hit any key to stop autoboot: 0 => => => => protect off ff800000 ff81ffff Un-Protected 1 sectors => cp 0 ff800000 20 Copy to Flash... done => md ff800000 ff800000: 37ce33ec 33cc334c 33c031cc 33cc35cc 7.3.3.3L3.1.3.5. ff800010: 33ec13ce 30ccb3ec b3c833c4 31c836cc 3...0.....3.1.6. ff800020: 33cc3b9d 31ec33ee 13ecf3cc 338833ec 3.;.1.3.....3.3. ff800030: 234c33ec 32cc22cc 33883bdc 534433cc #L3.2.".3.;.SD3. ff800040: 33cc30c8 31cc32ec 338c33cc 330c33dc 3.0.1.2.3.3.3.3. ff800050: 33cc13dc 334c534c b1c433d8 128c13cc 3...3LSL..3..... ff800060: 37ec36cd 33dc33cc bbc9f7e8 bbcc77cc 7.6.3.3.......w. ff800070: 314c0adc 139c30ed 33cc334c 33c833ec 1L....0.3.3L3.3. ff800080: ffffffff ffffffff ffffffff ffffffff ................ ff800090: ffffffff ffffffff ffffffff ffffffff ................ ff8000a0: ffffffff ffffffff ffffffff ffffffff ................ ff8000b0: ffffffff ffffffff ffffffff ffffffff ................ ff8000c0: ffffffff ffffffff ffffffff ffffffff ................ ff8000d0: ffffffff ffffffff ffffffff ffffffff ................ ff8000e0: ffffffff ffffffff ffffffff ffffffff ................ ff8000f0: ffffffff ffffffff ffffffff ffffffff ................ x.x.x Storage of environment variables in flash U-Boot 1.1.1 (Nov 20 2001 - 15:55:32) CPU: MPC8245 Revision 16.20 at 250 MHz: 16 kB I-Cache 16 kB D-Cache Board: MUSENKI Local Bus at 100 MHz DRAM: 32 MB FLASH: 4 MB In: serial Out: serial Err: serial Hit any key to stop autoboot: 0 => printenv bootcmd=bootm FF820000 bootdelay=5 baudrate=9600 clocks_in_mhz=1 stdin=serial stdout=serial stderr=serial Environment size: 106/16380 bytes => setenv myvar 1234 => saveenv Un-Protected 1 sectors Erasing Flash... done Erased 1 sectors Saving Environment to Flash... Protected 1 sectors => reset U-Boot 1.1.1 (Nov 20 2001 - 15:55:32) CPU: MPC8245 Revision 16.20 at 250 MHz: 16 kB I-Cache 16 kB D-Cache Board: MUSENKI Local Bus at 100 MHz DRAM: 32 MB FLASH: 4 MB In: serial Out: serial Err: serial Hit any key to stop autoboot: 0 => printenv bootcmd=bootm FF820000 bootdelay=5 baudrate=9600 clocks_in_mhz=1 myvar=1234 stdin=serial stdout=serial stderr=serial Environment size: 117/16380 bytes x.x Image Download and run over serial port U-Boot 1.1.1 (Nov 20 2001 - 15:55:32) CPU: MPC8245 Revision 16.20 at 250 MHz: 16 kB I-Cache 16 kB D-Cache Board: MUSENKI Local Bus at 100 MHz DRAM: 32 MB FLASH: 4 MB In: serial Out: serial Err: serial Hit any key to stop autoboot: 0 => loads ## Ready for S-Record download ... ## First Load Addr = 0x00040000 ## Last Load Addr = 0x00050177 ## Total Size = 0x00010178 = 65912 Bytes ## Start Addr = 0x00040004 => 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 untested (not working yet, actually)