mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-26 20:09:02 +09:00
![Mike Frysinger](/assets/img/avatar_default.png)
This is long over due. All but two net drivers have been converted, but those have now been dropped. The only thing left to do is actually delete all references to NET_MULTI and code that is compiled when that is not defined. So here we scrub the core code. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
327 lines
12 KiB
Plaintext
327 lines
12 KiB
Plaintext
Freescale MCF5373EVB ColdFire Development Board
|
|
================================================
|
|
|
|
TsiChung Liew(Tsi-Chung.Liew@freescale.com)
|
|
Created 11/08/07
|
|
===========================================
|
|
|
|
|
|
Changed files:
|
|
==============
|
|
|
|
- board/freescale/m5373evb/m5373evb.c Dram setup
|
|
- board/freescale/m5373evb/mii.c Mii access
|
|
- board/freescale/m5373evb/Makefile Makefile
|
|
- board/freescale/m5373evb/config.mk config make
|
|
- board/freescale/m5373evb/u-boot.lds Linker description
|
|
|
|
- arch/m68k/cpu/mcf532x/cpu.c cpu specific code
|
|
- arch/m68k/cpu/mcf532x/cpu_init.c FBCS, Mux pins, icache and RTC extra regs
|
|
- arch/m68k/cpu/mcf532x/interrupts.c cpu specific interrupt support
|
|
- arch/m68k/cpu/mcf532x/speed.c system, pci, flexbus, and cpu clock
|
|
- arch/m68k/cpu/mcf532x/Makefile Makefile
|
|
- arch/m68k/cpu/mcf532x/config.mk config make
|
|
- arch/m68k/cpu/mcf532x/start.S start up assembly code
|
|
|
|
- doc/README.m5373evb This readme file
|
|
|
|
- drivers/net/mcffec.c ColdFire common FEC driver
|
|
- drivers/serial/mcfuart.c ColdFire common UART driver
|
|
- drivers/rtc/mcfrtc.c Realtime clock Driver
|
|
|
|
- include/asm-m68k/bitops.h Bit operation function export
|
|
- include/asm-m68k/byteorder.h Byte order functions
|
|
- include/asm-m68k/fec.h FEC structure and definition
|
|
- include/asm-m68k/fsl_i2c.h I2C structure and definition
|
|
- include/asm-m68k/global_data.h Global data structure
|
|
- include/asm-m68k/immap.h ColdFire specific header file and driver macros
|
|
- include/asm-m68k/immap_532x.h mcf532x specific header file
|
|
- include/asm-m68k/io.h io functions
|
|
- include/asm-m68k/m532x.h mcf532x specific header file
|
|
- include/asm-m68k/posix_types.h Posix
|
|
- include/asm-m68k/processor.h header file
|
|
- include/asm-m68k/ptrace.h Exception structure
|
|
- include/asm-m68k/rtc.h Realtime clock header file
|
|
- include/asm-m68k/string.h String function export
|
|
- include/asm-m68k/timer.h Timer structure and definition
|
|
- include/asm-m68k/types.h Data types definition
|
|
- include/asm-m68k/uart.h Uart structure and definition
|
|
- include/asm-m68k/u-boot.h u-boot structure
|
|
|
|
- include/configs/M5373EVB.h Board specific configuration file
|
|
|
|
- arch/m68k/lib/board.c board init function
|
|
- arch/m68k/lib/cache.c
|
|
- arch/m68k/lib/interrupts Coldfire common interrupt functions
|
|
- arch/m68k/lib/m68k_linux.c
|
|
- arch/m68k/lib/time.c Timer functions (Dma timer and PIT)
|
|
- arch/m68k/lib/traps.c Exception init code
|
|
|
|
1 MCF5373 specific Options/Settings
|
|
====================================
|
|
1.1 pre-loader is no longer suppoer in thie coldfire family
|
|
|
|
1.2 Configuration settings for M5373EVB Development Board
|
|
CONFIG_MCF532x -- define for all MCF532x CPUs
|
|
CONFIG_M5373 -- define for all Freescale MCF5373 CPUs
|
|
CONFIG_M5373EVB -- define for M5373EVB board
|
|
|
|
CONFIG_MCFUART -- define to use common CF Uart driver
|
|
CONFIG_SYS_UART_PORT -- define UART port number, start with 0, 1 and 2
|
|
CONFIG_BAUDRATE -- define UART baudrate
|
|
|
|
CONFIG_MCFRTC -- define to use common CF RTC driver
|
|
CONFIG_SYS_MCFRTC_BASE -- provide base address for RTC in immap.h
|
|
CONFIG_SYS_RTC_OSCILLATOR -- define RTC clock frequency
|
|
RTC_DEBUG -- define to show RTC debug message
|
|
CONFIG_CMD_DATE -- enable to use date feature in u-boot
|
|
|
|
CONFIG_MCFFEC -- define to use common CF FEC driver
|
|
CONFIG_MII -- enable to use MII driver
|
|
CONFIG_CF_DOMII -- enable to use MII feature in cmd_mii.c
|
|
CONFIG_SYS_DISCOVER_PHY -- enable PHY discovery
|
|
CONFIG_SYS_RX_ETH_BUFFER -- Set FEC Receive buffer
|
|
CONFIG_SYS_FAULT_ECHO_LINK_DOWN--
|
|
CONFIG_SYS_FEC0_PINMUX -- Set FEC0 Pin configuration
|
|
CONFIG_SYS_FEC0_MIIBASE -- Set FEC0 MII base register
|
|
MCFFEC_TOUT_LOOP -- set FEC timeout loop
|
|
|
|
CONFIG_MCFTMR -- define to use DMA timer
|
|
CONFIG_MCFPIT -- define to use PIT timer
|
|
|
|
CONFIG_FSL_I2C -- define to use FSL common I2C driver
|
|
CONFIG_HARD_I2C -- define for I2C hardware support
|
|
CONFIG_SOFT_I2C -- define for I2C bit-banged
|
|
CONFIG_SYS_I2C_SPEED -- define for I2C speed
|
|
CONFIG_SYS_I2C_SLAVE -- define for I2C slave address
|
|
CONFIG_SYS_I2C_OFFSET -- define for I2C base address offset
|
|
CONFIG_SYS_IMMR -- define for MBAR offset
|
|
|
|
CONFIG_SYS_MBAR -- define MBAR offset
|
|
|
|
CONFIG_MONITOR_IS_IN_RAM -- Not support
|
|
|
|
CONFIG_SYS_INIT_RAM_ADDR -- defines the base address of the MCF5373 internal SRAM
|
|
|
|
CONFIG_SYS_CSn_BASE -- defines the Chip Select Base register
|
|
CONFIG_SYS_CSn_MASK -- defines the Chip Select Mask register
|
|
CONFIG_SYS_CSn_CTRL -- defines the Chip Select Control register
|
|
|
|
CONFIG_SYS_SDRAM_BASE -- defines the DRAM Base
|
|
|
|
2. MEMORY MAP UNDER U-BOOT AND LINUX KERNEL
|
|
===========================================
|
|
2.1. System memory map:
|
|
Flash: 0x00000000-0x3FFFFFFF (1024MB)
|
|
DDR: 0x40000000-0x7FFFFFFF (1024MB)
|
|
SRAM: 0x80000000-0x8FFFFFFF (256MB)
|
|
IP: 0xF0000000-0xFFFFFFFF (256MB)
|
|
|
|
2.2. 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:
|
|
Flash0: 0x00000000-0x00FFFFFF (16MB)
|
|
|
|
DDR: 0x40000000-0x4FFFFFFF (256MB)
|
|
SRAM: 0x80000000-0x80007FFF (32KB)
|
|
IP: 0xFC000000-0xFC0FFFFF (64KB)
|
|
|
|
3. COMPILATION
|
|
==============
|
|
3.1 To create U-Boot the gcc-4.1-xx compiler set (ColdFire ELF or
|
|
uClinux version) from codesourcery.com was used. Download it from:
|
|
http://www.codesourcery.com/gnu_toolchains/coldfire/download.html
|
|
|
|
3.2 Compilation
|
|
export CROSS_COMPILE=cross-compile-prefix
|
|
cd u-boot-1.x.x
|
|
make distclean
|
|
make M5373EVB_config
|
|
make
|
|
|
|
4. SCREEN DUMP
|
|
==============
|
|
4.1 M5373EVB Development board
|
|
(NOTE: May not show exactly the same)
|
|
|
|
U-Boot 1.3.0 (Nov 8 2007 - 12:44:08)
|
|
|
|
CPU: Freescale MCF5373 (Mask:65 Version:1)
|
|
CPU CLK 240 Mhz BUS CLK 80 Mhz
|
|
Board: Freescale FireEngine 5373 EVB
|
|
I2C: ready
|
|
DRAM: 32 MB
|
|
FLASH: 2 MB
|
|
In: serial
|
|
Out: serial
|
|
Err: serial
|
|
NAND: 16 MiB
|
|
Net: FEC0
|
|
-> print
|
|
bootdelay=1
|
|
baudrate=115200
|
|
ethaddr=00:e0:0c:bc:e5:60
|
|
hostname=M5373EVB
|
|
netdev=eth0
|
|
loadaddr=40010000
|
|
load=tftp ${loadaddr) ${u-boot}
|
|
upd=run load; run prog
|
|
prog=prot off 0 2ffff;era 0 2ffff;cp.b ${loadaddr} 0 ${filesize};save
|
|
ethact=FEC0
|
|
u-boot=u-boot.bin
|
|
gatewayip=192.168.1.1
|
|
netmask=255.255.255.0
|
|
ipaddr=192.168.1.3
|
|
serverip=192.168.1.2
|
|
stdin=serial
|
|
stdout=serial
|
|
stderr=serial
|
|
mem=261632k
|
|
|
|
Environment size: 401/8188 bytes
|
|
-> bdinfo
|
|
memstart = 0x40000000
|
|
memsize = 0x02000000
|
|
flashstart = 0x00000000
|
|
flashsize = 0x00200000
|
|
flashoffset = 0x00000000
|
|
sramstart = 0x80000000
|
|
sramsize = 0x00008000
|
|
mbar = 0xFC000000
|
|
busfreq = 80 MHz
|
|
ethaddr = 00:E0:0C:BC:E5:60
|
|
ip_addr = 192.168.1.3
|
|
baudrate = 115200 bps
|
|
->
|
|
-> help
|
|
? - alias for 'help'
|
|
base - print or set address offset
|
|
bdinfo - print Board Info structure
|
|
boot - boot default, i.e., run 'bootcmd'
|
|
bootd - boot default, i.e., run 'bootcmd'
|
|
bootelf - Boot from an ELF image in memory
|
|
bootm - boot application image from memory
|
|
bootp - boot image via network using BootP/TFTP protocol
|
|
bootvx - Boot vxWorks from an ELF image
|
|
cmp - memory compare
|
|
coninfo - print console devices and information
|
|
cp - memory copy
|
|
crc32 - checksum calculation
|
|
date - get/set/reset date & time
|
|
dcache - enable or disable data cache
|
|
echo - echo args to console
|
|
erase - erase FLASH memory
|
|
flinfo - print FLASH memory information
|
|
go - start application at address 'addr'
|
|
help - print online help
|
|
i2c - I2C sub-system
|
|
icache - enable or disable instruction cache
|
|
iminfo - print header information for application image
|
|
imls - list all images found in flash
|
|
itest - return true/false on integer compare
|
|
loadb - load binary file over serial line (kermit mode)
|
|
loads - load S-Record file over serial line
|
|
loady - load binary file over serial line (ymodem mode)
|
|
loop - infinite loop on address range
|
|
ls - list files in a directory (default /)
|
|
md - memory display
|
|
mii - MII utility commands
|
|
mm - memory modify (auto-incrementing)
|
|
mtest - simple RAM test
|
|
mw - memory write (fill)
|
|
nand - NAND sub-system
|
|
nboot - boot from NAND device
|
|
nfs - boot image via network using NFS protocol
|
|
nm - memory modify (constant address)
|
|
ping - send ICMP ECHO_REQUEST to network host
|
|
printenv- print environment variables
|
|
protect - enable or disable FLASH write protection
|
|
rarpboot- boot image via network using RARP/TFTP protocol
|
|
reset - Perform RESET of the CPU
|
|
run - run commands in an environment variable
|
|
saveenv - save environment variables to persistent storage
|
|
setenv - set environment variables
|
|
sleep - delay execution for some time
|
|
source - run script from memory
|
|
tftpboot- boot image via network using TFTP protocol
|
|
version - print monitor version
|
|
-> tftp 0x40800000 uImage
|
|
Using FEC0 device
|
|
TFTP from server 192.168.1.3; our IP address is 192.168.1.3 Filename 'uImage'.
|
|
Load address: 0x40800000
|
|
Loading: #################################################################
|
|
#################################################################
|
|
##########
|
|
done
|
|
Bytes transferred = 2053270 (1f5496 hex)
|
|
-> bootm 0x40800000
|
|
## Booting image at 40800000 ...
|
|
Image Name: Linux Kernel Image
|
|
Created: 2007-11-07 20:33:08 UTC
|
|
Image Type: M68K Linux Kernel Image (gzip compressed)
|
|
Data Size: 2053206 Bytes = 2 MB
|
|
Load Address: 40020000
|
|
Entry Point: 40020000
|
|
Verifying Checksum ... OK
|
|
Uncompressing Kernel Image ... OK
|
|
Linux version 2.6.22-uc1 (mattw@loa) (gcc version 4.2.1 (Sourcery G++ Lite 4.2-7
|
|
|
|
|
|
uClinux/COLDFIRE(m537x)
|
|
COLDFIRE port done by Greg Ungerer, gerg@snapgear.com Flat model support (C) 1998,1999 Kenneth Albanowski, D. Jeff Dionne Built 1 zonelists. Total pages: 8128 Kernel command line: rootfstype=romfs PID hash table entries: 128 (order: 7, 512 bytes) Dentry cache hash table entries: 4096 (order: 2, 16384 bytes) Inode-cache hash table entries: 2048 (order: 1, 8192 bytes) Memory available: 28092k/32768k RAM, (1788k kernel code, 244k data) Mount-cache hash table entries: 512
|
|
NET: Registered protocol family 16
|
|
USB-MCF537x: (HOST module) EHCI device is registered
|
|
USB-MCF537x: (OTG module) EHCI device is registered
|
|
USB-MCF537x: (OTG module) UDC device is registered
|
|
usbcore: registered new interface driver usbfs
|
|
usbcore: registered new interface driver hub
|
|
usbcore: registered new device driver usb
|
|
NET: Registered protocol family 2
|
|
IP route cache hash table entries: 1024 (order: 0, 4096 bytes) TCP established hash table entries: 1024 (order: 1, 8192 bytes) TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
|
|
TCP: Hash tables configured (established 1024 bind 1024) TCP reno registered
|
|
JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
|
|
io scheduler noop registered
|
|
io scheduler cfq registered (default)
|
|
ColdFire internal UART serial driver version 1.00 ttyS0 at 0xfc060000 (irq = 90) is a builtin ColdFire UART
|
|
ttyS1 at 0xfc064000 (irq = 91) is a builtin ColdFire UART
|
|
ttyS2 at 0xfc068000 (irq = 92) is a builtin ColdFire UART RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
|
|
loop: module loaded
|
|
nbd: registered device at major 43
|
|
usbcore: registered new interface driver ub FEC ENET Version 0.2
|
|
fec: PHY @ 0x1, ID 0x20005c90 -- DP83848
|
|
eth0: ethernet 00:e0:0c:bc:e5:60
|
|
uclinux[mtd]: RAM probe address=0x4021c22c size=0x22b000 Creating 1 MTD partitions on "RAM":
|
|
0x00000000-0x0022b000 : "ROMfs"
|
|
uclinux[mtd]: set ROMfs to be root filesystem NAND device: Manufacturer ID: 0x20, Chip ID: 0x73 (ST Micro NAND 16MiB 3,3V 8-b) Scanning device for bad blocks Creating 1 MTD partitions on "NAND 16MiB 3,3V 8-bit":
|
|
0x00000000-0x01000000 : "M53xx flash partition 1"
|
|
QSPI: spi->max_speed_hz 300000
|
|
QSPI: Baud set to 255
|
|
SPI: Coldfire master initialized
|
|
M537x - Disable UART1 when using Audio
|
|
udc: Freescale MCF53xx UDC driver version 27 October 2006 init
|
|
udc: MCF53xx USB Device is found. ID=0x5 Rev=0x41 i2c /dev entries driver
|
|
usbcore: registered new interface driver usbhid
|
|
drivers/hid/usbhid/hid-core.c: v2.6:USB HID core driver TCP cubic registered
|
|
NET: Registered protocol family 1
|
|
NET: Registered protocol family 17
|
|
VFS: Mounted root (romfs filesystem) readonly.
|
|
Freeing unused kernel memory: 64k freed (0x401f5000 - 0x40204000) init started: BusyBox v1.00 (2007.11.07-19:57+0000) multi-call binary?Setting e Mounting filesystems
|
|
mount: Mounting devpts on /dev/pts failed: No such device
|
|
mount: Mounting usbfs on /proc/bus/usb failed: No such file or directory Starting syslogd and klogd Setting up networking on loopback device:
|
|
Setting up networking on eth0:
|
|
info, udhcpc (v0.9.9-pre) started
|
|
eth0: config: auto-negotiation on, 100FDX, 100HDX, 10FDX, 10HDX.
|
|
debug, Sending discover...
|
|
debug, Sending discover...
|
|
debug, Sending select for 172.27.0.130...
|
|
info, Lease of 172.27.0.130 obtained, lease time 43200 deleting routers
|
|
route: SIOC[ADD|DEL]RT: No such process
|
|
adding dns 172.27.0.1
|
|
Starting the boa webserver:
|
|
Setting time from ntp server: ntp.cs.strath.ac.uk
|
|
ntp.cs.strath.ac.uk: Unknown host
|
|
|
|
|
|
BusyBox v1.00 (2007.11.07-19:57+0000) Built-in shell (msh) Enter 'help' for a list of built-in commands.
|
|
|
|
#
|