u-boot/board/bmw
Sebastien Carlier 6d8962e814 Switch from archive libraries to partial linking
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>
2010-11-17 21:02:18 +01:00
..
bmw.c bmw: Remove duplicated include of header file 2010-09-28 14:47:23 +02:00
bmw.h
config.mk Makefile: move all Power Architecture boards into boards.cfg 2010-10-18 22:12:04 +02:00
early_init.S rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
flash.c rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
m48t59y.c rtc: allow rtc_set to return an error and use it in cmd_date 2008-09-07 00:56:36 +02:00
m48t59y.h
Makefile Switch from archive libraries to partial linking 2010-11-17 21:02:18 +01:00
ns16550.c Move arch/ppc to arch/powerpc 2010-04-21 23:42:38 +02:00
ns16550.h Move arch/ppc to arch/powerpc 2010-04-21 23:42:38 +02:00
README rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00
serial.c rename CFG_ macros to CONFIG_SYS 2008-10-18 21:54:03 +02:00

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:~#