| 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 CFG_IBAT0L (0x00000000 | BATL_PP_10 | BATL_MEMCOHERENCE) |
| #define CFG_IBAT0U (0x00000000 | BATU_BL_256M | BATU_VS | BATU_VP) |
| |
| #define CFG_IBAT1L (0x70000000 | BATL_PP_10 | BATL_CACHEINHIBIT) |
| #define CFG_IBAT1U (0x70000000 | BATU_BL_256M | BATU_VS | BATU_VP) |
| |
| #define CFG_IBAT2L (0x80000000 | BATL_PP_10 | BATL_CACHEINHIBIT) |
| #define CFG_IBAT2U (0x80000000 | BATU_BL_256M | BATU_VS | BATU_VP) |
| |
| #define CFG_IBAT3L (0xF0000000 | BATL_PP_10 | BATL_CACHEINHIBIT) |
| #define CFG_IBAT3U (0xF0000000 | BATU_BL_256M | BATU_VS | BATU_VP) |
| |
| #define CFG_DBAT0L CFG_IBAT0L |
| #define CFG_DBAT0U CFG_IBAT0U |
| #define CFG_DBAT1L CFG_IBAT1L |
| #define CFG_DBAT1U CFG_IBAT1U |
| #define CFG_DBAT2L CFG_IBAT2L |
| #define CFG_DBAT2U CFG_IBAT2U |
| #define CFG_DBAT3L CFG_IBAT3L |
| #define CFG_DBAT3U CFG_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:~# |