| Freescale Alaska MPC8220 board | |
| ============================== | |
| TsiChung Liew(Tsi-Chung.Liew@freescale.com) | |
| Created 9/21/04 | |
| =========================================== | |
| Changed files: | |
| ============== | |
| - Makefile added MPC8220 and Alaska8220_config | |
| - MAKEALL added MPC8220 and Alaska8220 | |
| - README added CONFIG_MPC8220, Alaska8220_config | |
| - common/cmd_bdinfo.c added board information members for MPC8220 | |
| - common/cmd_bootm.c added clocks for MPC8220 in do_bootm_linux() | |
| - include/common.h added CONFIG_MPC8220 | |
| - include/asm-ppc/u-boot.h added board information members for MPC8220 | |
| - include/asm-ppc/global_data.h added global variables - inp_clk, pci_clk, | |
| vco_clk, pev_clk, flb_clk, and bExtUart | |
| - lib_ppc/board.c added CONFIG_MPC8220 support | |
| - net/eth.c added FEC support for MPC8220 | |
| Added files: | |
| ============ | |
| - board/alaska directory for Alaska MPC8220 | |
| - board/alaska/alaska.c Alaska dram and BATs setup | |
| - board/alaska/extserial.c external serial (debug card serial) support | |
| - board/alaska/flash.c Socket (AMD) and Onboard (INTEL) flash support | |
| - board/alaska/serial.c to determine which int/ext serial to use | |
| - board/alaska/Makefile Makefile | |
| - board/alaska/config.mk config make | |
| - board/alaska/u-boot.lds Linker description | |
| - cpu/mpc8220/dma.h multi-channel dma header file | |
| - cpu/mpc8220/dramSetup.h dram setup header file | |
| - cpu/mpc8220/fec.h MPC8220 FEC header file | |
| - cpu/mpc8220/cpu.c cpu specific code | |
| - cpu/mpc8220/cpu_init.c Flexbus ChipSelect and Mux pins setup | |
| - cpu/mpc8220/dramSetup.c MPC8220 DDR SDRAM setup | |
| - cpu/mpc8220/fec.c MPC8220 FEC driver | |
| - cpu/mpc8220/i2c.c MPC8220 I2C driver | |
| - cpu/mpc8220/interrupts.c interrupt support (not enable) | |
| - cpu/mpc8220/loadtask.c load dma | |
| - cpu/mpc8220/speed.c system, pci, flexbus, pev, and cpu clock | |
| - cpu/mpc8220/traps.c exception | |
| - cpu/mpc8220/uart.c MPC8220 UART driver | |
| - cpu/mpc8220/Makefile Makefile | |
| - cpu/mpc8220/config.mk config make | |
| - cpu/mpc8220/fec_dma_task.S MPC8220 FEC multi-channel dma program | |
| - cpu/mpc8220/io.S io functions | |
| - cpu/mpc8220/start.S start up | |
| - include/mpc8220.h | |
| - include/asm-ppc/immap_8220.h | |
| - include/configs/Alaska8220.h | |
| 1. SWITCH SETTINGS | |
| ================== | |
| 1.1 SW1: 0 - Boot from Socket Flash (AMD) or 1 - Onboard Flash (INTEL) | |
| SW2: 0 - Select MPC8220 UART or 1 - Debug Card UART | |
| SW3: unsed | |
| SW4: 0 - 1284 or 1 - FEC1 | |
| SW5: 0 - PEV or 1 - FEC2 | |
| 2. MEMORY MAP UNDER U-BOOT AND LINUX KERNEL | |
| =========================================== | |
| 2.1. For the initial bringup, we adopted a consistent memory scheme between u-boot and | |
| linux kernel, you can customize it based on your system requirements: | |
| DDR: 0x00000000-0x1fffffff (max 512MB) | |
| MBAR: 0xf0000000-0xf0027fff (128KB) | |
| CPLD: 0xf1000000-0xf103ffff (256KB) | |
| FPGA: 0xf2000000-0xf203ffff (256KB) | |
| Flash: 0xfe000000-0xffffffff (max 32MB) | |
| 3. DEFINITIONS AND COMPILATION | |
| ============================== | |
| 3.1 Explanation on NEW definitions in include/configs/alaska8220.h | |
| CONFIG_MPC8220 MPC8220 specific | |
| CONFIG_ALASKA8220 Alaska board specific | |
| CFG_MPC8220_CLKIN Define Alaska Input Clock | |
| CONFIG_PSC_CONSOLE Enable MPC8220 UART | |
| CONFIG_EXTUART_CONSOLE Enable External 16552 UART | |
| CFG_AMD_BOOT To determine the u-boot is booted from AMD or Intel | |
| CFG_MBAR MBAR base address | |
| CFG_DEFAULT_MBAR Reset MBAR base address | |
| 3.2 Compilation | |
| export CROSS_COMPILE=cross-compile-prefix | |
| cd u-boot-1-1-x | |
| make distclean | |
| make Alaska8220_config | |
| make | |
| 4. SCREEN DUMP | |
| ============== | |
| 4.1 Alaska MPC8220 board | |
| Boot from AMD (NOTE: May not show exactly the same) | |
| U-Boot 1.1.1 (Sep 22 2004 - 22:14:41) | |
| CPU: MPC8220 (JTAG ID 1640301d) at 300 MHz | |
| Bus 120 MHz, CPU 300 MHz, PCI 30 MHz, VCO 480 MHz | |
| Board: Alaska MPC8220 Evaluation Board | |
| I2C: 93 kHz, ready | |
| DRAM: 256 MB | |
| Reserving 167k for U-Boot at: 0ffd6000 | |
| FLASH: 16.5 MB | |
| *** Warning - bad CRC, using default environment | |
| In: serial | |
| Out: serial | |
| Err: serial | |
| Net: FEC ETHERNET | |
| => flinfo | |
| Bank # 1: INTEL 28F128J3A | |
| Size: 8 MB in 64 Sectors | |
| Sector Start Addresses: | |
| FE000000 FE020000 FE040000 FE060000 FE080000 | |
| FE0A0000 FE0C0000 FE0E0000 FE100000 FE120000 | |
| FE140000 FE160000 FE180000 FE1A0000 FE1C0000 | |
| FE1E0000 FE200000 FE220000 FE240000 FE260000 | |
| FE280000 FE2A0000 FE2C0000 FE2E0000 FE300000 | |
| FE320000 FE340000 FE360000 FE380000 FE3A0000 | |
| FE3C0000 FE3E0000 FE400000 FE420000 FE440000 | |
| FE460000 FE480000 FE4A0000 FE4C0000 FE4E0000 | |
| FE500000 FE520000 FE540000 FE560000 FE580000 | |
| FE5A0000 FE5C0000 FE5E0000 FE600000 FE620000 | |
| FE640000 FE660000 FE680000 FE6A0000 FE6C0000 | |
| FE6E0000 FE700000 FE720000 FE740000 FE760000 | |
| FE780000 FE7A0000 FE7C0000 FE7E0000 | |
| Bank # 2: INTEL 28F128J3A | |
| Size: 8 MB in 64 Sectors | |
| Sector Start Addresses: | |
| FE800000 FE820000 FE840000 FE860000 FE880000 | |
| FE8A0000 FE8C0000 FE8E0000 FE900000 FE920000 | |
| FE940000 FE960000 FE980000 FE9A0000 FE9C0000 | |
| FE9E0000 FEA00000 FEA20000 FEA40000 FEA60000 | |
| FEA80000 FEAA0000 FEAC0000 FEAE0000 FEB00000 | |
| FEB20000 FEB40000 FEB60000 FEB80000 FEBA0000 | |
| FEBC0000 FEBE0000 FEC00000 FEC20000 FEC40000 | |
| FEC60000 FEC80000 FECA0000 FECC0000 FECE0000 | |
| FED00000 FED20000 FED40000 FED60000 FED80000 | |
| FEDA0000 FEDC0000 FEDE0000 FEE00000 FEE20000 | |
| FEE40000 FEE60000 FEE80000 FEEA0000 FEEC0000 | |
| FEEE0000 FEF00000 (RO) FEF20000 (RO) FEF40000 FEF60000 | |
| FEF80000 FEFA0000 FEFC0000 FEFE0000 (RO) | |
| Bank # 3: AMD AMD29F040B | |
| Size: 0 MB in 7 Sectors | |
| Sector Start Addresses: | |
| FFF00000 (RO) FFF10000 (RO) FFF20000 (RO) FFF30000 FFF40000 | |
| FFF50000 FFF60000 | |
| Bank # 4: AMD AMD29F040B | |
| Size: 0 MB in 1 Sectors | |
| Sector Start Addresses: | |
| FFF70000 (RO) | |
| => bdinfo | |
| memstart = 0xF0009800 | |
| memsize = 0x10000000 | |
| flashstart = 0xFFF00000 | |
| flashsize = 0x01080000 | |
| flashoffset = 0x00025000 | |
| sramstart = 0xF0020000 | |
| sramsize = 0x00008000 | |
| bootflags = 0x00000001 | |
| intfreq = 300 MHz | |
| busfreq = 120 MHz | |
| inpfreq = 30 MHz | |
| flbfreq = 30 MHz | |
| pcifreq = 30 MHz | |
| vcofreq = 480 MHz | |
| pevfreq = 81 MHz | |
| ethaddr = 00:E0:0C:BC:E0:60 | |
| eth1addr = 00:E0:0C:BC:E0:61 | |
| IP addr = 192.162.1.2 | |
| baudrate = 115200 bps | |
| => printenv | |
| bootargs=root=/dev/ram rw | |
| bootdelay=5 | |
| baudrate=115200 | |
| ethaddr=00:e0:0c:bc:e0:60 | |
| eth1addr=00:e0:0c:bc:e0:61 | |
| ipaddr=192.162.1.2 | |
| serverip=192.162.1.1 | |
| gatewayip=192.162.1.1 | |
| netmask=255.255.255.0 | |
| hostname=Alaska | |
| stdin=serial | |
| stdout=serial | |
| stderr=serial | |
| ethact=FEC ETHERNET | |
| Environment size: 268/65532 bytes | |
| => setenv ipaddr 192.160.1.2 | |
| => setenv serverip 192.160.1.1 | |
| => setenv gatewayip 192.160.1.1 | |
| => saveenv | |
| Saving Environment to Flash... | |
| . | |
| Un-Protected 1 sectors | |
| Erasing Flash... | |
| Erasing sector 0 ... done | |
| Erased 1 sectors | |
| Writing to Flash... done | |
| . | |
| Protected 1 sectors | |
| => tftp 0x10000 linux.elf | |
| Using FEC ETHERNET device | |
| TFTP from server 192.160.1.1; our IP address is 192.160.1.2; sending through gateway 192.160.1.1 | |
| Filename 'linux.elf'. | |
| Load address: 0x10000 | |
| Loading: invalid RARP header | |
| ################################################################# | |
| ################################################################# | |
| ################################################################# | |
| ################################################################# | |
| ################################################################# | |
| ################################################################# | |
| ################################################################# | |
| ################################################################# | |
| ################################################## | |
| done | |
| Bytes transferred = 2917494 (2c8476 hex) | |
| => bootelf | |
| Loading .text @ 0x00a00000 (23820 bytes) | |
| Loading .data @ 0x00a06000 (2752512 bytes) | |
| Clearing .bss @ 0x00ca6000 (12764 bytes) | |
| ## Starting application at 0x00a00000 ... | |
| Collect some entropy from RAM........done | |
| loaded at: 00A00000 00CA91DC | |
| zimage at: 00A06A93 00AD7756 | |
| initrd at: 00AD8000 00CA5565 | |
| avail ram: 00CAA000 014AA000 | |
| Linux/PPC load: ip=off console=ttyS0,115200 | |
| Uncompressing Linux...done. | |
| Now booting the kernel | |
| Total memory in system: 256 MB | |
| Memory BAT mapping: BAT2=256Mb, BAT3=0Mb, residual: 0Mb | |
| Linux version 2.4.21-rc1 (r61688@bluesocks.sps.mot.com) (gcc version 3.3.1) #17 Wed Sep 8 11:49:16 CDT 2004 | |
| Motorola Alaska port (C) 2003 Motorola, Inc. | |
| CPLD rev 3 | |
| CPLD switches 0x1b | |
| Set Pin Mux for FEC1 | |
| Set Pin Mux for FEC2 | |
| Alaska Pin Multiplexing: | |
| Port Configuration Register 0 = 0 | |
| Port Configuration Register 1 = 0 | |
| Port Configuration Register 2 = 0 | |
| Port Configuration Register 3 = 50000000 | |
| Port Configuration Register 3 - PCI = 51400180 | |
| Setup Alaska FPGA PIC: | |
| Interrupt Enable Register *(u32) = 0 | |
| Interrupt Status Register = 2f0000 | |
| Interrupt Enable Register in_be32 = 0 | |
| Interrupt Status Register = 2f0000 | |
| Interrupt Enable Register in_le32 = 0 | |
| Interrupt Status Register = 2f00 | |
| Interrupt Enable Register readl = 0 | |
| Interrupt Status Register = 2f00 | |
| Interrupt Enable Register = 0 | |
| Interrupt Status Register = 2f0000 | |
| Setup Alaska PCI Controller: | |
| On node 0 totalpages: 65536 | |
| zone(0): 65536 pages. | |
| zone(1): 0 pages. | |
| zone(2): 0 pages. | |
| Kernel command line: ip=off console=ttyS0,115200 | |
| Using XLB clock (120.00 MHz) to set up decrementer | |
| Calibrating delay loop... 199.88 BogoMIPS | |
| Memory: 254792k available (1476k kernel code, 708k data, 228k init, 0k highmem) | |
| Dentry cache hash table entries: 32768 (order: 6, 262144 bytes) | |
| Inode cache hash table entries: 16384 (order: 5, 131072 bytes) | |
| Mount cache hash table entries: 512 (order: 0, 4096 bytes) | |
| Buffer-cache hash table entries: 16384 (order: 4, 65536 bytes) | |
| Page-cache hash table entries: 65536 (order: 6, 262144 bytes) | |
| POSIX conformance testing by UNIFIX | |
| PCI: Probing PCI hardware | |
| PCI: (pcibios_init) Global-Hose = 0xc029d000 | |
| Scanning bus 00 | |
| Fixups for bus 00 | |
| Bus scan for 00 returning with max=00 | |
| PCI: (pcibios_init) finished pci_scan_bus(hose->first_busno = 0, hose->ops = c01a1a74, hose = c029d000) | |
| PCI: (pcibios_init) PCI Bus Count = 0 =?= Next Bus# = 1 | |
| PCI: (pcibios_init@pci_fixup_irqs) finished machine dependent PCI interrupt routing! | |
| PCI: bridge rsrc 81000000..81ffffff (100), parent c01a7f88 | |
| PCI: bridge rsrc 84000000..87ffffff (200), parent c01a7fa4 | |
| PCI: (pcibios_init) finished allocating and assigning resources! | |
| initDma! | |
| Using 90 DMA buffer descriptors | |
| descUsed f0023600, descriptors f002360c freeSram f0024140 | |
| unmask SDMA tasks: 0xf0008018 = 0x6f000000 | |
| Linux NET4.0 for Linux 2.4 | |
| Based upon Swansea University Computer Society NET3.039 | |
| Initializing RT netlink socket | |
| Starting kswapd | |
| Journalled Block Device driver loaded | |
| JFFS version 1.0, (C) 1999, 2000 Axis Communications AB | |
| JFFS2 version 2.1. (C) 2001 Red Hat, Inc., designed by Axis Communications AB. | |
| pty: 256 Unix98 ptys configured | |
| tracek: Copyright (C) Motorola, 2003. | |
| Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ SERIAL_PCI enabled | |
| ttyS00 at 0xf1001008 (irq = 73) is a ST16650 | |
| ttyS01 at 0xf1001010 (irq = 74) is a ST16650 | |
| elp-fpanel: Copyright (C) Motorola, 2003. | |
| fpanel: fpanelWait timeout | |
| elp-engine: Copyright (C) Motorola, 2003. | |
| Video disabled due to configuration switch 4 | |
| Alpine 1284 driver: Copyright (C) Motorola, 2003. | |
| 1284 disabled due to configuration switch 5 | |
| Alpine USB driver: Copyright (C) Motorola, 2003. | |
| OK | |
| USB: Descriptor download completed OK | |
| enable_irq(41) unbalanced | |
| enable_irq(75) unbalanced | |
| elp-dmaram: Copyright (C) Motorola, 2003. | |
| Total memory in system: 256 MB | |
| elp_dmaram: offset is 0x10000000, size is 0 | |
| Xicor NVRAM driver: Copyright (C) Motorola, 2003. | |
| elp-video: Copyright (C) Motorola, 2003. | |
| Video disabled due to configuration switch 4 | |
| elp-pfm: Copyright (C) Motorola, 2003. | |
| paddle: Copyright (C) Motorola, 2001, present. | |
| RAMDISK driver initialized: 16 RAM disks of 12288K size 1024 blocksize | |
| loop: loaded (max 8 devices) | |
| PPP generic driver version 2.4.2 | |
| PPP Deflate Compression module registered | |
| Uniform Multi-Platform E-IDE driver Revision: 7.00beta-2.4 | |
| ide: Assuming 50MHz system bus speed for PIO modes; override with idebus=xx | |
| init_alaska_mtd: chip probing count 0 | |
| cfi_cmdset_0001: Erase suspend on write enabled | |
| Using buffer write method | |
| init_alaska_mtd: bank1, name:ALASKA0, size:16777216bytes | |
| ALASKA flash0: Using Static image partition definition | |
| Creating 3 MTD partitions on "ALASKA0": | |
| 0x00000000-0x00280000 : "kernel" | |
| 0x00280000-0x00fe0000 : "user" | |
| 0x00fe0000-0x01000000 : "signature" | |
| mgt_fec_module_init | |
| mgt_fec_init() | |
| mgt_fec_init | |
| mgt_init_fec_dev(0xc05f6000,0) | |
| dev c05f6000 fec_priv c05f6160 fec f0009000 | |
| mgt_init_fec_dev(0xc05f6800,1) | |
| dev c05f6800 fec_priv c05f6960 fec f0009800 | |
| NET4: Linux TCP/IP 1.0 for NET4.0 | |
| IP Protocols: ICMP, UDP, TCP, IGMP | |
| IP: routing cache hash table of 2048 buckets, 16Kbytes | |
| TCP: Hash tables configured (established 16384 bind 32768) | |
| NET4: Unix domain sockets 1.0/SMP for Linux NET4.0. | |
| RAMDISK: Compressed image found at block 0 | |
| Freeing initrd memory: 1845k freed | |
| JFFS: Trying to mount a non-mtd device. | |
| VFS: Mounted root (romfs filesystem) readonly. | |
| Freeing unused kernel memory: 228k init | |
| INIT: version 2.78 booting | |
| INIT: Entering runlevel: 1 | |
| "Space, a great big place of unknown stuff." -Dexter, for our MotD. | |
| [01/Jan/1970:00:00:01 +0000] boa: server version Boa/0.94.8.3 | |
| [01/Jan/1970:00:00:01 +0000] boa: server built Sep 7 2004 at 17:40:55. | |
| [01/Jan/1970:00:00:01 +0000] boa: starting server pid=28, port 80 | |
| Mounting flash filesystem, will take a minute... | |
| /etc/rc: line 30: /dev/lp0: No such devish-2.05b# | |
| sh-2.05b# ifup eth0 | |
| client (v0.9.9-pre) started | |
| adapter index 2 | |
| adapter hardware address 00:e0:0c:bc:e0:60 | |
| execle'ing /usr/share/udhcpc/default.script | |
| /sbin/ifconfig eth0 | |
| eth0 Link encap:Ethernet HWaddr 00:E0:0C:BC:E0:60 | |
| BROADCAST MULTICAST MTU:1500 Metric:1 | |
| mgt_fec_open | |
| Rfec request irq | |
| X fec_open: rcv_ring_size 8, xmt_ring_size 8 | |
| packmgt_fec_open(): call netif_start_queue() | |
| ets:0 errors:0 dropped:0 overruns:0 frame:0 | |
| TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 | |
| collisions:0 txqueuelen:100 | |
| RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) | |
| Base address:0x9000 | |
| /sbin/ifconfig eth0 up | |
| entering raw listen mode | |
| Opening raw socket on ifindex 2 | |
| adding option 0x35 | |
| adding option 0x3d | |
| adding option 0x3c | |
| Sending discover... | |
| Waiting on select... | |
| unrelated/bogus packet | |
| Waiting on select... | |
| oooooh!!! got some! | |
| adding option 0x35 | |
| adding option 0x3d | |
| adding option 0x3c | |
| adding option 0x32 | |
| adding option 0x36 | |
| Sending select for 163.12.48.146... | |
| Waiting on select... | |
| oooooh!!! got some! | |
| Waiting on select... | |
| oooooh!!! got some! | |
| Lease of 163.12.48.146 obtained, lease time 345600 | |
| execle'ing /usr/share/udhcpc/default.script | |
| /sbin/ifconfig eth0 163.12.48.146 netmask 255.255.254.0 | |
| /sbin/ifconfig eth0 up | |
| deleting routers | |
| /sbin/route del default | |
| /sbin/route add default gw 163.12.49.254 dev eth0 | |
| adding dns 163.12.252.230 | |
| adding dns 192.55.22.4 | |
| adding dns 192.5.249.4 | |
| entering none listen mode | |
| sh-2.05b# | |
| 5. REPROGRAM U-BOOT | |
| =================== | |
| 5.1 Reprogram u-boot (boot from AMD) | |
| 1. Unprotect the boot sector | |
| => protect off bank 3 | |
| 2. Download new u-boot binary file | |
| => tftp 0x10000 u-boot.bin | |
| 3. Erase bootsector (max 7 sectors) | |
| => erase 0xfff00000 0xfff6ffff | |
| 4. Program the u-boot to flash | |
| => cp.b 0x10000 0xfff00000 | |
| 5. Reset for the new u-boot to take place | |
| => reset | |
| 5.2 Reprogram u-boot (boot from AMD program at INTEL) | |
| 1. Unprotect the boot sector | |
| => protect off bank 2 | |
| 2. Download new u-boot binary file | |
| => tftp 0x10000 u-boot.bin | |
| 3. Erase bootsector (max 7 sectors) | |
| => erase 0xfef00000 0xfefdffff | |
| 4. Program the u-boot to flash | |
| => cp.b 0x10000 0xfef00000 | |
| 5. Reset for the new u-boot to take place | |
| => reset | |
| 5.3 Reprogram u-boot (boot from INTEL) | |
| 1. Unprotect the boot sector | |
| => protect off bank 4 | |
| 2. Download new u-boot binary file | |
| => tftp 0x10000 u-boot.bin | |
| 3. Erase bootsector (max 7 sectors) | |
| => erase 0xfff00000 0xfffdffff | |
| 4. Program the u-boot to flash | |
| => cp.b 0x10000 0xfff00000 | |
| 5. Reset for the new u-boot to take place | |
| => reset | |
| 5.4 Reprogram u-boot (boot from INTEL program at AMD) | |
| 1. Unprotect the boot sector | |
| => protect off bank 1 | |
| 2. Download new u-boot binary file | |
| => tftp 0x10000 u-boot.bin | |
| 3. Erase bootsector (max 7 sectors) | |
| => erase 0xfe080000 0xfe0effff | |
| 4. Program the u-boot to flash | |
| => cp.b 0x10000 0xfe080000 | |
| 5. Reset for the new u-boot to take place | |
| => reset |