2011年3月30日 星期三

Cavium CN6300 porting 實錄

到新公司報到的第一件事情就是把這個一年前買進來的版子搞起來....但是事隔一年了...當然好多問題會發生 ..因此紀錄一下解決過程唄


Setup platform Procedure:

1. Download and compressing to /usr/local/Cavium-Networks/OCTEON-SDK
Uncompress OCTEON-SDK-2.0.0-366.i386.rpm
Uncompress OCTEON-LINUX-2.0.0-366.i386.rpm
Uncompress OCTEON-COMPONENTS-COMMON-2.0.0-58.i386.rpm
Uncompress OCTEON-PCI-BASE-2.0.0-73.i386.rpm
Uncompress OCTEON-PCI-NIC-2.0.0-73.i386.rpm
Uncompress OCTEON-ZLIB-CORE-2.0.0-31.i386.rpm
Uncompress OCTEON-ZLIB-LINUX-2.0.0-31.i386.rpm
Uncompress OCTEON-PCI-CNTQ-2.0.0-73.i386.rpm
Uncompress sdk_2.0.0_updates_p4.tgz

# cd /usr/local/Cavium-Networks/OCTEON-SDK

2. Apply the SDK patch4 and the Linux patch
# patch -s -p0 < /download/SDK_2.0.0_update/sdk.patch
# patch -s -p0 < /download/SDK_2.0.0_update/linux.patch

3. Copy bootloaders
# cp /download/SDK_2.0.0_update/u-boot-octeon_*.bin  target/bin

4. Copy oct-remote utilities
# cp /download/SDK_2.0.0_update/oct-remote-*  host/remote-utils

6. Create link to new toolchain
# rm tools
# cp /download/SDK_2.0.0_update/tools_update /usr/local/Cavium_Networks/OCTEON-SDK/
# ln -s tools_update tools

7. Add cross compiler path
#cd /etc
#gedit environment
PATH="/usr/local/Cavium_Networks/OCTEON-SDK/tools/bin:/usr/local/Cavium_Networks/OCTEON-SDK/host/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"

8. Add environment
#cd /etc
#gedit bash.bashrc
pushd /usr/local/Cavium_Networks/OCTEON-SDK
source env-setup OCTEON_CN63XX
popd

9. Reboot linux
#reboot

10. We modify the Makefile
ifeq ($(ARCH),mips)
CROSS_COMPILE = mips64-octeon-linux-gnu-

11. Change the user to root and make
#sudo passwd root
#su – root
#make clobber
#make octeon_ebb6300_config
#make

It create five files
u-boot-0xffffffffbfc00000
u-boot-0xffffffffbfc40000
u-boot-0xffffffffbfc70000
u-boot-octeon_ebb6300
u-boot-octeon_ebb6300.bin

12. burning bootloader image
@Copy the image to CF card
@Plug into EVB CF socket
@Boot up EVB
@Set following command in the bootloader
Ebb6300#printenv                                 (confirm loadaddr, in my )
Ebb6300#fatload ide 0 $(loadaddr) bootloader-filename   (u-boot-octeon_ebb6300.bin)
      Or fatload ide 0x20000000 bootloader-filename    (copy image to RAM)
Ebb6300# run bootloader_flash_update                (burning image from RAM to flash)
 Or bootloaderupdate
 


//*********************not working ************************************
13. make kernel
#cd /usr/local/Cavium_Network/OCTEON-SDK/linux/
#make setup-octeon2
#make kernel
13. make kernel
#cp /usr/local/Cavium_Network/OCTEON-SDK/linux/kernel2.6/kernel.config ./linux
#cd linux
#mv kernel.config .config
#make menuconfig
Load .config
#make clean
#make
//*******************************************************************
   # source ./env-setup OCTEON_CN63XX
   # cd linux
   # make clean
   # make kernel strip





14. burning linux kernel
@Copy the image to CF card
@Plug into EVB CF socket
@Boot up EVB
@Set following command in the bootloader
Ebb6300#fatload ide 0 $(loadaddr) kernel-filename      (vmlinux.64)
Ebb6300#bootoctlinux $(fileaddr)                    (burning image from RAM to flash)


2 則留言:

tpilouis 提到...

sorry, 我的e-mail如下...
tpilouis@gmail.com
tpilouis@seed.net.tw
感謝您!

Unknown 提到...

请教一下,这个SDK还可以获取吗