Installing Linux Kernel 2.6.23 on the PPC405 core of a Xilinx ML403 board

Installing Linux Kernel 2.6.23 on the PPC405 core of a Xilinx ML403 board

The aim of the following text is to explain the necessary steps, especially potential pitfalls and their avoidance, to setup a Linux Kernel 2.6.23 on a Xilinx ML403 prototyping board.


Contents

  [hide]

Hardware Setup

Section to be written.


Software Setup

Installing a Cross Compiler Chain for PPC405

Write something about cross-tools here.

Making the Cross Compiler accessible

Configuring the Linux Kernel

After generating the cross compilation tool chain it is necessary to compile a fitting Linux Kernel. This section details how this is done.

Generating a Board Support Package (BSP) for Kernel 2.6

Use XPS for that, see its documentation. The main directory of the EDK project will be referred to as $EDK_PROJECT_DIR in the following text. The Xilinx Platform Studio (XPS), on my machine, generates the Bord Support Package (BSP) in the directory: $EDK_PROJECT_DIR/ppc405_0/libsrc/linux_2_6_v1_00_b/. This directory will be referred to as $BSP_DIR in the following text. Please note that depending on the version of the Xilinx tools this location may slightly differ.


Obtaining the Kernel Sources

Before integrating the BSP into the Kernel Tree it is necessary to obtain the kernel sources of Kernel 2.6.23. Extract the sources at a convenient location. The top-level directory of the kernel (linux-2.6.23) will be referred to as $KERNEL_DIR in the following.

Enabling Cross Compilation for the Linux Kernel

The Linux Kernel allows the user to define the target architecture (ARCH) and which compiler chain to use (CROSS_COMPILE). To do so please edit the file `$KERNEL_DIR/Makefile' with the following values:

ARCH          ?= ppc
CROSS_COMPILE ?= powerpc-405-linux-gnu

Integrating the BSP into the Kernel Tree

The BSP generated by the Xilinx tools contains all necessary drivers for Kernel 2.6. Many of these drivers have been integrated into Kernel 2.6.23 already. Therefore, I do not use the drivers generated by Xilinx but the ones provided by the Kernel. However, due to the fact that we are using a custom hardware setup here, without a BIOS, it is necessary to give the kernel detailed information about it. We do this by including a xparamerter header file. The files of interest are stored in the directory: $BSP_DIR/arch/ppc/platforms/4xx/xparameters/. Copy the two header files to the directory: $BSP_DIR/arch/ppc/platforms/4xx/xparameters/. Due to some changes in the kernel it is necessary to modify the file: xparameters.h, change the line:

#if defined(CONFIG_XILINX_ML40X)

to:

#if defined(CONFIG_XILINX_ML403)

Furthermore, change the line:

#include<linux/config.h>

to:

#include<linux/autoconf.h>

To obtain the configuration of the selected embedded system the kernel calls the function embed_config(). Unfortunately, by default the linux kernel uses a dummy function instead of the real one. To change this comment out the following from the file $KERNEL_DIR/arch/ppc/boot/simple/misc-embedded.c :

void __attribute__((weak))
embed_config(bdt **bpd){
}

This completes the necessary modifications to the Linux Kernel source code, now it is time to configure the kernel.

Configuring the Kernel

The Linux kernel contains many different configuration options. Most of these are optional / additional at the moment. Nevertheless, the following options are necessary in this case. To configure the kernel execute the following command in your kernel root:

make menuconfig

Set the following configuration options:

  • Enable loadable module support: DISABLE
  • Processor:
    • Type 40x
    • Math emulation: ENABLE
    • IBM 40x options:
      • Machine Type: "Xilinx-ML403"
  • Platform options:
    • Kernel command line: "console=ttyUL0 root=/dev/$FOO", The setting for the root device depends on the actual system. In my current system it is the second partition of the CF card connected to the SystemACE controller (/dev/xsa2).
  • Bus options:
    • PCI support: DISABLE
    • PCCARD (PCMCIA/CardBus) support:
      • PCCARD (PCMCIA/CardBus) support: DISABLE
  • Drivers
    • Block Devices:
      • Xilinx SystemACE support: ENABLE
    • Character devices:
      • Serial drivers:
        • Xilinx uartlite serial port support: ENABLE
        • Support for console on Xilinx uartlite serial port: ENABLE


Compiling the Kernel

To compile the kernel execute the following command in the kernel root directory:

make bzImage

This compiles the kernel for the PPC, and generates the file:

$KERNEL_DIR/arch/ppc/boot/images/zImage.elf


Configuring the ML403 and Booting Kernel the using Xilinx's SystemACE

To test the compiled kernel it is necessary to create a SystemACE file. A SystemACE file, short ace-file, combines an elf-file with a bitstream to configure an FPGA. This file is then copied onto the first partition (file system: FAT), of a medium that the SystemACE controller can access. In case of the ML403 board this is a Compact Flash card. To generate an ace-file, named: linux.ace, for the current project execute the following command in the project root directory:

xmd -tcl genace.tcl -jprog -board ml403 
 -hw implementation/download.bit 
 -elf $KERNEL_DIR/arch/ppc/boot/images/zImage.elf 
 -ace linux.ace

Copy it onto the CF card, and then place the CF card into the CF slot of the ML403. When you switch on the board it should configure the FPGA and then load the kernel. Don't forget to connect the serial port of the ML403 to a terminal program to watch the kernel booting. If there are any problems, check that you did all the changes to the kernel correct, check the HW settings as well.


Part two of this howto details how to get the Xilinx EMAC 10/100 MBit/s network core working.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园的建设目标是通过数据整合、全面共享,实现校园内教学、科研、管理、服务流程的数字化、信息化、智能化和多媒体化,以提高资源利用率和管理效率,确保校园安全。 智慧校园的建设思路包括构建统一支撑平台、建立完善管理体系、大数据辅助决策和建设校园智慧环境。通过云架构的数据中心与智慧的学习、办公环境,实现日常教学活动、资源建设情况、学业水平情况的全面统计和分析,为决策提供辅助。此外,智慧校园还涵盖了多媒体教学、智慧录播、电子图书馆、VR教室等多种教学模式,以及校园网络、智慧班牌、校园广播等教务管理功能,旨在提升教学品质和管理水平。 智慧校园的详细方案设计进一步细化了教学、教务、安防和运维等多个方面的应用。例如,在智慧教学领域,通过多媒体教学、智慧录播、电子图书馆等技术,实现教学资源的共享和教学模式的创新。在智慧教务方面,校园网络、考场监控、智慧班牌等系统为校园管理提供了便捷和高效。智慧安防系统包括视频监控、一键报警、阳光厨房等,确保校园安全。智慧运维则通过综合管理平台、设备管理、能效管理和资产管理,实现校园设施的智能化管理。 智慧校园的优势和价值体现在个性化互动的智慧教学、协同高效的校园管理、无处不在的校园学习、全面感知的校园环境和轻松便捷的校园生活等方面。通过智慧校园的建设,可以促进教育资源的均衡化,提高教育质量和管理效率,同时保障校园安全和提升师生的学习体验。 总之,智慧校园解决方案通过整合现代信息技术,如云计算、大数据、物联网和人工智能,为教育行业带来了革命性的变革。它不仅提高了教育的质量和效率,还为师生创造了一个更加安全、便捷和富有智慧的学习与生活环境。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值