The supported features of the SBC8240/8245 board are:
    8240 or 8245 processor
    66MHz & 100MHz bus speed
    Decrementer timer
    1 UART channel (Console channel)
    8240 Interrupt Controller
    8240 PCI bridge
    8240 Memory Controller
    SDRAM (16, 64 MB Memory DIMM)
    FLASH 512K On board
    FLASH 4MB On board


Memory Map from CPU point of view:

    Start        Size   Access to
    -----------------------------------------------------
    0x00000000   64MB   SDRAM DIMM
    0xFF000000    4MB   On Board FLASH
    0xFFF00000  512K    On Board FLASH or SRAM (Configured by jumper)
    0xFFE00000    8K    EEPROM
    0xFFE80000    8Bit  LED
    0xFFF80000    8Bit  UART


Setting the board Jumpers & Switches:

   In order to get the board running with the default configuration the
   jumpers need to be set as follows:

  General Jumpers:
    ____________________________________________
   |   Jumpers   |   Jumpers    |    Jumpers    |
   |-------------|--------------|---------------|
   |JP1     1-2  | JP14    1-2  | JP27    1-2   |
   |JP5     Open | JP15    1-2  | JP28    2-3   |
   |JP8     1-2  | JP16    1-2  | JP33    Open  |
   |JP9     1-2  | JP17    1-2  | JP37    Close |
   |JP10    1-2  | JP18    1-2  |               |
   |JP11    2-3  | JP19    1-2  |               |
   |JP12    1-2  | JP20    1-2  |               |
   |JP13    1-2  | JP25    Open |               |
   |_____________|______________|_______________|

  Bus speed Jumpers:
    _________________________
   | 100MHz Bus | 66 MHz Bus |
   |------------|------------|
   | JP2    1-2 | JP2    1-2 |
   | JP3    1-2 | JP3    2-3 |
   | JP4    1-2 | JP4    2-3 |
   | JP6    1-2 | JP6    2-3 |
   | JP7    1-2 | JP7    1-2 |
   |____________|____________|


U-Boot 1.1.2 (Jun 24 2004 - 17:01:04)

CPU:   MPC8240 Revision 1.1 at 247.500 MHz: 16 kB I-Cache 16 kB D-Cache
Board: sbc8240 Revision 255 Local Bus at 99 MHz
DRAM:  64 MB
FLASH: 512 kB
        00  11  8086  1229  0200  00
In:    serial
Out:   serial
Err:   serial
Net:   i82559#0

Welcome to U-Boot for the sbc8240

Type ? or help to get on-line help

Hit any key to stop autoboot:  0
=> printenv
bootcmd=version;echo;tftpboot $loadaddr $loadfile;bootvx
bootdelay=5
baudrate=9600
ethaddr=DE:AD:BE:EF:01:01
ipaddr=192.168.193.102
preboot=echo;echo Welcome to U-Boot for the sbc8240;echo;echo Type "? or help" to get on-line help;echo
netmask=255.255.255.248
clocks_in_mhz=1
bootargs=$fei(0,0)host:/T221ppc/target/config/sbc8240/vxWorks.st e=192.168.193.102 h=192.168.193.99 u=target pw=hello f=0x08 tn=sbc8240 o=fei
ipaddr=192.168.193.102
loadfile=vxWorks.st
loadaddr=0x01000000
net_load=tftpboot $loadaddr $loadfile
serverip=192.168.193.99
ethact=i82559#0
stdin=serial
stdout=serial
stderr=serial

Environment size: 631/16380 bytes
=> boot

U-Boot 1.1.2 (Jun 24 2004 - 17:01:04)

Using i82559#0 device
TFTP from server 192.168.193.99; our IP address is 192.168.193.102
Filename 'vxWorks.st'.
Load address: 0x1000000
Loading: #################################################################
         #################################################################
         ##############################################################
done
Bytes transferred = 979927 (ef3d7 hex)
## Ethernet MAC address not copied to NV RAM
Loading .text @ 0x00100000 (758848 bytes)
Loading .data @ 0x001b9440 (79904 bytes)
Clearing .bss @ 0x001ccc60 (20288 bytes)
## Using bootline (@ 0x4200): $fei(0,0)host:/T221ppc/target/config/sbc8240/vxWorks.st e=192.168.193.102 h=192.168.193.99 u=target pw=hello f=0x08 tn=sbc8240 o=fei
## Starting vxWorks at 0x00100000 ...

Adding 2845 symbols for standalone.


 ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
 ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
 ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
      ]]]]]]]]]]]  ]]]]     ]]]]]]]]]]       ]]              ]]]]         (R)
 ]     ]]]]]]]]]  ]]]]]]     ]]]]]]]]       ]]               ]]]]
 ]]     ]]]]]]]  ]]]]]]]]     ]]]]]] ]     ]]                ]]]]
 ]]]     ]]]]] ]    ]]]  ]     ]]]] ]]]   ]]]]]]]]]  ]]]] ]] ]]]]  ]]   ]]]]]
 ]]]]     ]]]  ]]    ]  ]]]     ]] ]]]]] ]]]]]]   ]] ]]]]]]] ]]]] ]]   ]]]]
 ]]]]]     ]  ]]]]     ]]]]]      ]]]]]]]] ]]]]   ]] ]]]]    ]]]]]]]    ]]]]
 ]]]]]]      ]]]]]     ]]]]]]    ]  ]]]]]  ]]]]   ]] ]]]]    ]]]]]]]]    ]]]]
 ]]]]]]]    ]]]]]  ]    ]]]]]]  ]    ]]]   ]]]]   ]] ]]]]    ]]]] ]]]]    ]]]]
 ]]]]]]]]  ]]]]]  ]]]    ]]]]]]]      ]     ]]]]]]]  ]]]]    ]]]]  ]]]] ]]]]]
 ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
 ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]       Development System
 ]]]]]]]]]]]]]]]]]]]]]]]]]]]]
 ]]]]]]]]]]]]]]]]]]]]]]]]]]]       VxWorks version 5.5.1
 ]]]]]]]]]]]]]]]]]]]]]]]]]]       KERNEL: WIND version 2.6
 ]]]]]]]]]]]]]]]]]]]]]]]]]       Copyright Wind River Systems, Inc., 1984-2003

                               CPU: MPC8240 -- Wind River BSP. SBC8240 Board.  Processor #0.
                              Memory Size: 0x2000000.  BSP version 1.2/28.

->
