Skip to content
Snippets Groups Projects
README.m54455evb 15.3 KiB
Newer Older
  • Learn to ignore specific revisions
  • Freescale MCF54455EVB ColdFire Development Board
    ================================================
    
    TsiChung Liew(Tsi-Chung.Liew@freescale.com)
    Created 4/08/07
    ===========================================
    
    
    Changed files:
    ==============
    
    - board/freescale/m54455evb/m54455evb.c	Dram setup, IDE pre init, and PCI init
    - board/freescale/m54455evb/flash.c		Atmel and INTEL flash support
    - board/freescale/m54455evb/Makefile		Makefile
    - board/freescale/m54455evb/config.mk	config make
    - board/freescale/m54455evb/u-boot.lds	Linker description
    
    - common/cmd_bdinfo.c		Clock frequencies output
    - common/cmd_mii.c		mii support
    
    
    - arch/m68k/cpu/mcf5445x/cpu.c		cpu specific code
    - arch/m68k/cpu/mcf5445x/cpu_init.c	Flexbus ChipSelect, Mux pins setup, icache and RTC extra regs
    - arch/m68k/cpu/mcf5445x/interrupts.c	cpu specific interrupt support
    - arch/m68k/cpu/mcf5445x/speed.c		system, pci, flexbus, and cpu clock
    - arch/m68k/cpu/mcf5445x/Makefile		Makefile
    - arch/m68k/cpu/mcf5445x/config.mk	config make
    - arch/m68k/cpu/mcf5445x/start.S		start up assembly code
    
    
    - doc/README.m54455evb	This readme file
    
    - drivers/net/mcffec.c		ColdFire common FEC driver
    - drivers/serial/mcfuart.c	ColdFire common UART 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_5445x.h	mcf5445x specific header file
    - include/asm-m68k/io.h			io functions
    - include/asm-m68k/m5445x.h		mcf5445x 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/M54455EVB.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
    
    
    - rtc/mcfrtc.c				Realtime clock Driver
    
    1 MCF5445x specific Options/Settings
    ====================================
    1.1 pre-loader is no longer suppoer in thie coldfire family
    
    1.2 Configuration settings for M54455EVB Development Board
    CONFIG_MCF5445x		-- define for all MCF5445x CPUs
    CONFIG_M54455		-- define for all Freescale MCF54455 CPUs
    CONFIG_M54455EVB	-- define for M54455EVB 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
    
    Wolfgang Denk's avatar
    Wolfgang Denk committed
    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_FEC1_PINMUX		-- Set FEC1 Pin configuration
    CONFIG_SYS_FEC0_MIIBASE	-- Set FEC0 MII base register
    CONFIG_SYS_FEC1_MIIBASE	-- Set FEC0 MII base register
    
    MCFFEC_TOUT_LOOP	-- set FEC timeout loop
    CONFIG_HAS_ETH1		-- define to enable second FEC in u-boot
    
    CONFIG_ISO_PARTITION	-- enable ISO read/write
    CONFIG_DOS_PARTITION	-- enable DOS read/write
    CONFIG_IDE_RESET	-- define ide_reset()
    CONFIG_IDE_PREINIT	-- define ide_preinit()
    CONFIG_ATAPI		-- define ATAPI support
    CONFIG_LBA48		-- define LBA48 (larger than 120GB) support
    
    CONFIG_SYS_IDE_MAXBUS		-- define max channel
    CONFIG_SYS_IDE_MAXDEVICE	-- define max devices per channel
    CONFIG_SYS_ATA_BASE_ADDR	-- define ATA base address
    CONFIG_SYS_ATA_IDE0_OFFSET	-- define ATA IDE0 offset
    CONFIG_SYS_ATA_DATA_OFFSET	-- define ATA data IO
    CONFIG_SYS_ATA_REG_OFFSET	-- define for normal register accesses
    CONFIG_SYS_ATA_ALT_OFFSET	-- define for alternate registers
    CONFIG_SYS_ATA_STRIDE		-- define for Interval between registers
    
    _IO_BASE		-- define for IO base address
    
    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_PCI              -- define for PCI support
    CONFIG_PCI_PNP          -- define for Plug n play support
    
    CONFIG_SYS_PCI_MEM_BUS		-- PCI memory logical offset
    CONFIG_SYS_PCI_MEM_PHYS	-- PCI memory physical offset
    CONFIG_SYS_PCI_MEM_SIZE	-- PCI memory size
    CONFIG_SYS_PCI_IO_BUS		-- PCI IO logical offset
    CONFIG_SYS_PCI_IO_PHYS		-- PCI IO physical offset
    CONFIG_SYS_PCI_IO_SIZE		-- PCI IO size
    CONFIG_SYS_PCI_CFG_BUS		-- PCI Configuration logical offset
    CONFIG_SYS_PCI_CFG_PHYS	-- PCI Configuration physical offset
    CONFIG_SYS_PCI_CFG_SIZE	-- PCI Configuration size
    
    
    CONFIG_EXTRA_CLOCK	-- Enable extra clock such as vco, flexbus, pci, etc
    
    
    CONFIG_SYS_MBAR		-- define MBAR offset
    
    CONFIG_SYS_ATMEL_BOOT		-- To determine the u-boot is booted from Atmel or Intel
    
    
    CONFIG_MONITOR_IS_IN_RAM -- Not support
    
    
    CONFIG_SYS_INIT_RAM_ADDR	-- defines the base address of the MCF54455 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_ATMEL_BASE	-- defines the Atmel Flash base
    CONFIG_SYS_INTEL_BASE	-- defines the Intel Flash base
    
    CONFIG_SYS_SDRAM_BASE	-- defines the DRAM Base
    CONFIG_SYS_SDRAM_BASE1	-- defines the DRAM Base 1
    
    
    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)
    	ATA:		0x90000000-0x9FFFFFFF (256MB)
    	PCI:		0xA0000000-0xBFFFFFFF (512MB)
    	FlexBus:	0xC0000000-0xDFFFFFFF (512MB)
    	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:
    	Atmel boot:
    	Flash0:		0x00000000-0x0007FFFF (512KB)
    	Flash1:		0x04000000-0x05FFFFFF (32MB)
    	Intel boot:
    	Flash0:		0x00000000-0x01FFFFFF (32MB)
    	Flash1:		0x04000000-0x0407FFFF (512KB)
    
    	CPLD:		0x08000000-0x08FFFFFF (16MB)
    	FPGA:		0x09000000-0x09FFFFFF (16MB)
    	DDR:		0x40000000-0x4FFFFFFF (256MB)
    	SRAM:		0x80000000-0x80007FFF (32KB)
    	IP:		0xFC000000-0xFC0FFFFF (64KB)
    
    3. SWITCH SETTINGS
    ==================
    3.1 SW1 Pin3: 0 - Boot from Atmel or 1 - INTEL
    	SW1 Pin4: 0 - ULPI chip not in reset state or 1 - ULPI chip in reset state
    	SW1 Pin5: 0 - Full ATA Bus enabled, FEC Phy1 powered down
    			  1 - Upper 8 bits ATA data bus disabled, FEC PHY1 active
    	SW1 Pin6: 0 - FEC Phy0 active or 1 - FEC Phy0 powered down
    	SW1 Pin3: 0 - Boot from Atmel or 1 - INTEL
    
    4. COMPILATION
    ==============
    4.1	To create U-Boot the gcc-4.1-32 compiler set (ColdFire ELF version)
    from codesourcery.com was used. Download it from:
    http://www.codesourcery.com/gnu_toolchains/coldfire/download.html
    
    4.2 Compilation
       export CROSS_COMPILE=cross-compile-prefix
       cd u-boot-1.x.x
       make distclean
       make M54455EVB_config, or		- default to atmel 33Mhz input clock
       make M54455EVB_atmel_config, or	- default to atmel 33Mhz input clock
       make M54455EVB_a33_config, or	- default to atmel 33Mhz input clock
       make M54455EVB_a66_config, or	- default to atmel 66Mhz input clock
       make M54455EVB_intel_config, or	- default to intel 33Mhz input clock
       make M54455EVB_i33_config, or	- default to intel 33Mhz input clock
       make M54455EVB_i66_config, or	- default to intel 66Mhz input clock
       make
    
    5. SCREEN DUMP
    ==============
    5.1 M54455EVB Development board
        Boot from Atmel (NOTE: May not show exactly the same)
    
    U-Boot 1.2.0-g98c80b46-dirty (Jul 26 2007 - 12:44:08)
    
    CPU:   Freescale MCF54455 (Mask:48 Version:1)
           CPU CLK 266 Mhz BUS CLK 133 Mhz FLB CLK 66 Mhz
           PCI CLK 33 Mhz INP CLK 33 Mhz VCO CLK 533 Mhz
    Board: Freescale M54455 EVB
    I2C:   ready
    DRAM:  256 MB
    FLASH: 16.5 MB
    In:    serial
    Out:   serial
    Err:   serial
    Net:   FEC0, FEC1
    IDE:   Bus 0: not available
    -> print
    bootargs=root=/dev/ram rw
    bootdelay=1
    baudrate=115200
    ethaddr=00:e0:0c:bc:e5:60
    eth1addr=00:e0:0c:bc:e5:61
    hostname=M54455EVB
    netdev=eth0
    inpclk=33333333
    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
    mtdids=nor0=M54455EVB-1
    mtdparts=M54455EVB-1:16m(user)
    u-boot=u-boot54455.bin
    filesize=292b4
    fileaddr=40010000
    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: 563/8188 bytes
    -> bdinfo
    memstart    = 0x40000000
    memsize     = 0x10000000
    flashstart  = 0x00000000
    flashsize   = 0x01080000
    flashoffset = 0x00000000
    sramstart   = 0x80000000
    sramsize    = 0x00008000
    mbar        = 0xFC000000
    busfreq     = 133.333 MHz
    pcifreq     = 33.333 MHz
    flbfreq     = 66.666 MHz
    inpfreq     = 33.333 MHz
    vcofreq     = 533.333 MHz
    ethaddr     = 00:E0:0C:BC:E5:60
    eth1addr    = 00:E0:0C:BC:E5:61
    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
    diskboot- boot from IDE device
    echo    - echo args to console
    erase   - erase FLASH memory
    ext2load- load binary file from a Ext2 filesystem
    ext2ls  - list files in a directory (default /)
    fatinfo - print information about filesystem
    fatload - load binary file from a dos filesystem
    fatls   - list files in a directory (default /)
    flinfo  - print FLASH memory information
    fsinfo	- print information about filesystems
    fsload	- load binary file from a filesystem image
    go      - start application at address 'addr'
    help    - print online help
    
    i2c     - I2C sub-system
    
    icache  - enable or disable instruction cache
    ide     - IDE sub-system
    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)
    nfs	- boot image via network using NFS protocol
    nm      - memory modify (constant address)
    pci     - list and access PCI Configuration Space
    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
    ->bootm 4000000
    
    ## Booting image at 04000000 ...
       Image Name:   Linux Kernel Image
       Created:      2007-08-14  15:13:00 UTC
       Image Type:   M68K Linux Kernel Image (uncompressed)
       Data Size:    2301952 Bytes =  2.2 MB
       Load Address: 40020000
       Entry Point:  40020000
       Verifying Checksum ... OK
    OK
    Linux version 2.6.20-gfe5136d6-dirty (mattw@kea) (gcc version 4.2.0 20070318 (pr
    erelease) (Sourcery G++ Lite 4.2-20)) #108 Mon Aug 13 13:00:13 MDT 2007
    starting up linux startmem 0xc0254000, endmem 0xcfffffff, size 253MB
    Built 1 zonelists.  Total pages: 32624
    Kernel command line: root=/dev/mtdblock1 rw rootfstype=jffs2 ip=none mtdparts=ph
    ysmap-flash.0:5M(kernel)ro,-(jffs2)
    PID hash table entries: 1024 (order: 10, 4096 bytes)
    Console: colour dummy device 80x25
    Dentry cache hash table entries: 32768 (order: 4, 131072 bytes)
    Inode-cache hash table entries: 16384 (order: 3, 65536 bytes)
    Memory: 257496k/262136k available (1864k kernel code, 2440k data, 88k init)
    Mount-cache hash table entries: 1024
    NET: Registered protocol family 16
    SCSI subsystem initialized
    NET: Registered protocol family 2
    IP route cache hash table entries: 2048 (order: 0, 8192 bytes)
    TCP established hash table entries: 8192 (order: 2, 32768 bytes)
    TCP bind hash table entries: 4096 (order: 1, 16384 bytes)
    TCP: Hash tables configured (established 8192 bind 4096)
    TCP reno registered
    JFFS2 version 2.2. (NAND) (C) 2001-2006 Red Hat, Inc.
    io scheduler noop registered
    io scheduler anticipatory registered
    io scheduler deadline 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 64000K size 1024 blocksize
    loop: loaded (max 8 devices)
    FEC ENET Version 0.2
    fec: PHY @ 0x0, ID 0x20005ca2 -- DP83849
    eth0: ethernet 00:08:ee:00:e4:19
    physmap platform flash device: 01000000 at 04000000
    physmap-flash.0: Found 1 x16 devices at 0x0 in 8-bit bank
     Intel/Sharp Extended Query Table at 0x0031
    Using buffer write method
    cfi_cmdset_0001: Erase suspend on write enabled
    2 cmdlinepart partitions found on MTD device physmap-flash.0
    Creating 2 MTD partitions on "physmap-flash.0":
    0x00000000-0x00500000 : "kernel"
    mtd: Giving out device 0 to kernel
    0x00500000-0x01000000 : "jffs2"
    mtd: Giving out device 1 to jffs2
    mice: PS/2 mouse device common for all mice
    i2c /dev entries driver
    TCP cubic registered
    NET: Registered protocol family 1
    NET: Registered protocol family 17
    NET: Registered protocol family 15
    VFS: Mounted root (jffs2 filesystem).
    Setting the hostname to freescale
    Mounting filesystems
    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:
    eth0: config: auto-negotiation on, 100FDX, 100HDX, 10FDX, 10HDX.
    Adding static route for default gateway to 172.27.255.254:
    Setting nameserver to 172.27.0.1 in /etc/resolv.conf:
    Starting inetd:
    / #