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> |
||
---|---|---|
.. | ||
bmw.c | ||
bmw.h | ||
config.mk | ||
early_init.S | ||
flash.c | ||
m48t59y.c | ||
m48t59y.h | ||
Makefile | ||
ns16550.c | ||
ns16550.h | ||
README | ||
serial.c |
Broadcom 95xx BMW CPCI Platform Overview ========= BMW is an MPC8245 system controller featuring: * 3U CPCI Form Factor * BCM5703 Gigabit Ethernet * M48T59Y NVRAM * 16MB DOC * DIP Socket for Socketed DOC up to 1GB * 64MB SDRAM * LCD Display * Configurable Jumper options for 66,85, and 100Mhz memory bus BMW System Address Map ====================== BMW uses the MPC8245 CHRP Address MAP B found in the MPC8245 Users Manual (P.121, Section 3.1 Address Maps, Address Map B). Other I/O devices found onboard the processor module are listed briefly below: 0x00000000 - 0x40000000 - 64MB SDRAM SIMM (Unregistered PC-100 SDRAM DIMM Module) 0xFF000000 - 0xFF001FFF - M-Systems DiskOnChip (TM) 2000 TSOP 16MB (MD2211-D16-V3) 0x70000000 - 0x70001FFF - M-Systems DiskOnChip (TM) 2000 DIP32 (Socketed 16MB - 1GB ) * NOTE: this is not populated on all systems. 0x7c000000 - 0x7c000000 - Reset Register (Write 0 to reset) 0x7c000001 - 0x7c000001 - System LED (Clear Bit 7 to turn on, set to shut off) 0x7c000002 - 0x7c000002 - M48T59 Watchdog IRQ3 (Clear bit 7 to reset, set to assert IRQ3) 0x7c000003 - 0x7c000003 - M48T59 Write-Protect Register (Clear bit 7 to make R/W, set to make R/O) 0x7c002000 - 0x7c002003 - Infineon OSRAM DLR2416 4 Character 5x7 Dot Matrix Alphanumeric Display (Each byte sets the appropriate character) 0x7c004000 - 0x7c005FF0 - SGS-THOMSON M48T59Y 8K NVRAM/RTC NVRAM Memory Region 0x7c005FF0 - 0x7c005FFF - SGS-THOMSON M48T59Y 8K NVRAM/RTC Realtime Clock Registers 0xFFF00000 - 0xFFF80000 - 512K PLCC32 BootRom (AMD AM29F040, ST 29W040B) 0xFFF00100 - System Reset Vector IO/MMU (BAT) Configuration ====================== The following Block-Address-Translation (BAT) configuration is recommended to access all I/O devices. #define CONFIG_SYS_IBAT0L (0x00000000 | BATL_PP_10 | BATL_MEMCOHERENCE) #define CONFIG_SYS_IBAT0U (0x00000000 | BATU_BL_256M | BATU_VS | BATU_VP) #define CONFIG_SYS_IBAT1L (0x70000000 | BATL_PP_10 | BATL_CACHEINHIBIT) #define CONFIG_SYS_IBAT1U (0x70000000 | BATU_BL_256M | BATU_VS | BATU_VP) #define CONFIG_SYS_IBAT2L (0x80000000 | BATL_PP_10 | BATL_CACHEINHIBIT) #define CONFIG_SYS_IBAT2U (0x80000000 | BATU_BL_256M | BATU_VS | BATU_VP) #define CONFIG_SYS_IBAT3L (0xF0000000 | BATL_PP_10 | BATL_CACHEINHIBIT) #define CONFIG_SYS_IBAT3U (0xF0000000 | BATU_BL_256M | BATU_VS | BATU_VP) #define CONFIG_SYS_DBAT0L CONFIG_SYS_IBAT0L #define CONFIG_SYS_DBAT0U CONFIG_SYS_IBAT0U #define CONFIG_SYS_DBAT1L CONFIG_SYS_IBAT1L #define CONFIG_SYS_DBAT1U CONFIG_SYS_IBAT1U #define CONFIG_SYS_DBAT2L CONFIG_SYS_IBAT2L #define CONFIG_SYS_DBAT2U CONFIG_SYS_IBAT2U #define CONFIG_SYS_DBAT3L CONFIG_SYS_IBAT3L #define CONFIG_SYS_DBAT3U CONFIG_SYS_IBAT3U Interrupt Mappings ====================== BMW uses MPC8245 discrete mode interrupts. With the following hardwired mappings: BCM5701 10/100/1000 Ethernet IRQ1 CompactPCI Interrupt A IRQ2 RTC/Watchdog Interrupt IRQ3 Internal NS16552 UART IRQ4 Jumper Settings ====================== BMW has a jumper (JP600) for selecting 66, 85, or 100Mhz memory bus. A jumper (X) is a 0 bit. Hence 66= 10110 85= 11000 100= 10000 Jumper Settings for various Speeds ======================= J1 J2 J3 J4 J5 X X 66Mhz ======================= J1 J2 J3 J4 J5 X X X 85Mhz ======================= J1 J2 J3 J4 J5 X X X X 100Mhz ======================= Obviously, 100Mhz memory bus is recommended for optimum performance. U-Boot =============== Broadcom BMW board is supported under config_BWM option. Supported features: - NVRAM setenv/getenv (used by Linux Kernel for configuration variables) - BCM570x TFTP file transfer support - LCD Display Support - DOC Support - (underway) U-Boot 1.2.0 (Aug 6 2002 - 17:44:48) CPU: MPC8245 Revision 16.20 at 264 MHz: 16 kB I-Cache 16 kB D-Cache Board: BMW MPC8245/KAHLUA2 - CHRP (MAP B) Built: Aug 6 2002 at 17:44:37 Local Bus at 66 MHz DRAM: 64 MB FLASH: 4095 MB In: serial Out: serial Err: serial DOC: No DiskOnChip found Hit any key to stop autoboot: 0 =>printenv bootdelay=5 baudrate=9600 clocks_in_mhz=1 hostname=switch-2 bootcmd=tftp 100000 vmlinux.img;bootm gateway=10.16.64.1 ethaddr=00:00:10:18:10:10 nfsroot=172.16.40.111:/boot/root-fs filesize=5ec8c netmask=255.255.240.0 ipaddr=172.16.40.114 serverip=172.16.40.111 root=/dev/nfs stdin=serial stdout=serial stderr=serial Environment size: 315/8172 bytes =>boot DevTools ======== ELDK DENX Embedded Linux Development Kit ROM Emulator Grammar Engine PROMICE P1160-90-AI21E (2MBx8bit, 90ns access time) Grammar Engine PL32E 32Pin PLCC Emulation cables Grammar Engine 3VA8CON (3Volt adapter with Short cables) Grammar Engine FPNET PromICE Ethernet Adapters ICE WRS/EST VisionICE-II (PPC8240) =>reset U-Boot 1.2.0 (Aug 6 2002 - 17:44:48) CPU: MPC8245 Revision 16.20 at 264 MHz: 16 kB I-Cache 16 kB D-Cache Board: BMW MPC8245/KAHLUA2 - CHRP (MAP B) Built: Aug 6 2002 at 17:44:37 Local Bus at 66 MHz DRAM: 64 MB FLASH: 4095 MB In: serial Out: serial Err: serial DOC: No DiskOnChip found Hit any key to stop autoboot: 0 Broadcom BCM5701 1000Base-T: bus 0, device 13, function 0: MBAR=0x80100000 BCM570x PCI Memory base address @0x80100000 eth0:Broadcom BCM5701 1000Base-T: 100 Mbps half duplex link up, flow control OFF eth0: Broadcom BCM5701 1000Base-T @0x80100000,node addr 000010181010 eth0: BCM5700 with Broadcom BCM5701 Integrated Copper transceiver found eth0: 32-bit PCI 33MHz, MTU: 1500,Rx Checksum ON ARP broadcast 1 TFTP from server 172.16.40.111; our IP address is 172.16.40.114 Filename 'vmlinux.img'. Load address: 0x100000 Loading: ################################################################# ####################################T ############################# ###################### done Bytes transferred = 777199 (bdbef hex) eth0:Broadcom BCM5701 1000Base-T,HALT,POWER DOWN,done - offline. ## Booting image at 00100000 ... Image Name: vmlinux.bin.gz Created: 2002-08-06 6:30:13 UTC Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 777135 Bytes = 758 kB = 0 MB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK Memory BAT mapping: BAT2=64Mb, BAT3=0Mb, residual: 0Mb Linux version 2.4.19-rc3 (jfd@que) (gcc version 2.95.3 20010111 (prerelease/franzo/20010111)) #168 Mon Aug 5 23:29:20 PDT 2002 CPU:82xx: 32 I-Cache Block Size, 32 D-Cache Block Size PVR: 0x810000 U-Boot Environment: 0xc01b08f0 IP PNP: 802.3 Ethernet Address=<0:0:10:18:10:10> cpu0: MPC8245/KAHLUA-II : BMW Platform : 64MB RAM: BPLD Rev. 6e NOTICE: mounting root file system via NFS IP PNP: switch-2: eth0 IP 172.16.40.114/255.255.240.0 gateway 10.16.64.1 server 172.16.40.111 On node 0 totalpages: 16384 zone(0): 16384 pages. zone(1): 0 pages. zone(2): 0 pages. Kernel command line: console=ttyS0,9600 ip=172.16.40.114:172.16.40.111:10.16.64.1:255.255.240.0:switch-2:eth0 root=/dev/nfs rw nfsroot=172.16.40.111:/boot/root-fs,timeo=200,retrans=500 nfsaddrs=172.16.40.114:172.16.40.111 root_dev_setup:/dev/nfs or 00:ff time_init: decrementer frequency = 16.501145 MHz Calibrating delay loop... 175.71 BogoMIPS Memory: 62572k available (1396k kernel code, 436k data, 100k init, 0k highmem) Dentry cache hash table entries: 8192 (order: 4, 65536 bytes) Inode cache hash table entries: 4096 (order: 3, 32768 bytes) Mount-cache hash table entries: 1024 (order: 1, 8192 bytes) Buffer-cache hash table entries: 4096 (order: 2, 16384 bytes) Page-cache hash table entries: 16384 (order: 4, 65536 bytes) POSIX conformance testing by UNIFIX PCI: Probing PCI hardware Linux NET4.0 for Linux 2.4 Based upon Swansea University Computer Society NET3.039 Initializing RT netlink socket Starting kswapd devfs: v1.12a (20020514) Richard Gooch (rgooch@atnf.csiro.au) devfs: devfs_debug: 0x0 devfs: boot_options: 0x1 Installing knfsd (copyright (C) 1996 okir@monad.swb.de). pty: 256 Unix98 ptys configured Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ SERIAL_PCI enabled Testing ttyS0 (0xf7f51500, 0xf7f51500)... Testing ttyS1 (0xfc004600, 0xfc004600)... ttyS00 at 0xf7f51500 (irq = 24) is a ST16650 ttyS01 at 0xfc004600 (irq = 25) is a 16550A Real Time Clock Driver v1.10e RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize loop: loaded (max 8 devices) TFFS 5.1.1 Flash disk driver for DiskOnChip Copyright (C) 1998,2001 M-Systems Flash Disk Pioneers Ltd. DOC device(s) found: 1 fl_init: registered device at major: 100 fl_geninit: registered device at major: 100 Partition check: fla: p1 partition: /dev/fl/0: start_sect: 0,nr_sects: 32000 Fl_blk_size[]: 16000KB partition: /dev/fl/1: start_sect: 2,nr_sects: 31998 Fl_blk_size[]: 15999KB partition: /dev/fl/2: start_sect: 0,nr_sects: 0 Fl_blk_size[]: 0KB partition: /dev/fl/3: start_sect: 0,nr_sects: 0 Fl_blk_size[]: 0KB Broadcom Gigabit Ethernet Driver bcm5700 ver. 3.0.7 (07/17/02) eth0: Broadcom BCM5701 found at mem bfff0000, IRQ 1, node addr 000010181010 eth0: Broadcom BCM5701 Integrated Copper transceiver found eth0: Scatter-gather ON, 64-bit DMA ON, Tx Checksum ON, Rx Checksum ON, 802.1Q VLAN ON bond0 registered without MII link monitoring, in bonding mode. rtc: unable to get misc minor NET4: Linux TCP/IP 1.0 for NET4.0 IP Protocols: ICMP, UDP, TCP, IGMP IP: routing cache hash table of 512 buckets, 4Kbytes TCP: Hash tables configured (established 4096 bind 4096) bcm5700: eth0 NIC Link is UP, 100 Mbps half duplex IP-Config: Gateway not on directly connected network. NET4: Unix domain sockets 1.0/SMP for Linux NET4.0. 802.1Q VLAN Support v1.7 Ben Greear <greearb@candelatech.com> All bugs added by David S. Miller <davem@redhat.com> Looking up port of RPC 100003/2 on 172.16.40.111 Looking up port of RPC 100005/1 on 172.16.40.111 VFS: Mounted root (nfs filesystem). Mounted devfs on /dev Freeing unused kernel memory: 100k init INIT: version 2.78 booting Mounting local filesystems... not mounted anything Setting up symlinks in /dev...done. Setting up extra devices in /dev...done. Starting devfsd...Started device management daemon for /dev INIT: Entering runlevel: 2 Starting internet superserver: inetd. Welcome to Linux/PPC MPC8245/BMW switch-2 login: root Password: PAM_unix[49]: (login) session opened for user root by LOGIN(uid=0) Last login: Thu Nov 25 11:51:14 1920 on console Welcome to Linux/PPC MPC8245/BMW login[49]: ROOT LOGIN on `console' root@switch-2:~# cat /proc/cpuinfo cpu : 82xx revision : 16.20 (pvr 8081 1014) bogomips : 175.71 vendor : Broadcom machine : BMW/MPC8245 root@switch-2:~#