b73a19e160
Modify the RTC API to provide one a status for the time reported by the rtc_get() function: 0 - a reliable time is guaranteed, < 0 - a reliable time isn't guaranteed (power fault, clock issues, and so on). The RTC chip drivers are responsible for providing this info if the corresponding chip supports such functionality. If not - always report that the time is reliable. The POST RTC test was modified to detect the RTC faults utilizing this new rtc_get() feature. Signed-off-by: Yuri Tikhonov <yur@emcraft.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 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:~#