Implementation of Linux operating system based on FA526 processor SoC platform

Publisher:炉火旁的YyeLatest update time:2021-06-28 Source: eefocus Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere

introduction


Faraday Technology's FIE8100 SoC platform is a low-power, portable SoC platform for developing video-related applications. It can also be used for SoC design verification based on the FA526 CPU.


Based on the Linux software development kit of FA526, developers can install and implement the Linux-2.4.19 software environment on the FIE8100 platform, and complete the driver installation of all IPs on the platform and the internal debugging of FA526.


FA526 Introduction


FA526 is a 32-bit RISC processor with a wide range of uses. It includes a synchronous CPU core, independent instruction/data cache, independent instruction/data scratchpads, a write buffer, a memory management unit and a JTAG online emulation (ICE) interface. The CPU core is a 6-stage pipeline Harvard structure, including instruction fetch, decode, shift, execution, data memory access, write back, etc. In order to improve the overall performance, the FA526 CPU also includes a branch operation cache (Branch Target Buffer: BTB), which can reduce the overhead (penalties) of branch operations.


The instructions of the FA526 CPU core are compatible with the ARM V4 structure and use the AMBA AHB interface to communicate with external devices. Therefore, the FA526 CPU has a wide range of applications, especially for those that require high performance and low power consumption. The FA526 CPU core adopts a fully synchronous method. Its structure based on a single-phase clock can be easily integrated and developed into a system-on-chip (SoC). The block diagram of the FA526 CPU core is shown in Figure 1.



FIE8100 SoC Platform Introduction


The system architecture of the FIE8100 SoC platform is shown in Figure 2. It provides a variety of peripheral interfaces. Its internal high-performance processor core and power management functions are particularly suitable for the market requirements of MPEG-4 and JPEG. Currently, the format supported by Faraday's MPEG4/JPEG codec is Simple Profile Version 3.1, which includes XviD encoding and a part of DivX encoding.



The FIE8100 SoC platform includes a wide range of functional modules to support a variety of applications, including FA526 (32-bit RISC CPU), MPEG-4/JPEG codec engine, USB2.0 device controller, USB2.0PHY (physical layer), LCD controller, DMA controller, TV Encoder, Capture, and AMBA bus architecture. In order to allow users to run their own IP or functional modules on FA526 smoothly, Faraday Technology pulled the AHB bus out of the CPU lead and matched it with various interfaces and off-chip chips to develop a simulation platform based on FIE8100 SoC: MediaCreative!.


Linux installation based on FA526


The main development hardware environment required for this development system is, first, an Intel x86-compatible PC and second, a standard 16550 UART interface. The software is mainly the Linux operating system (RedHat 7.3-8.0 or higher) and the FA526-Linux software package. The components required for the general platform system are mainly a MediaCreative! (including FIE8100/FWAB326AA chip) and a 64 MB SDRAM and 32 MB Flash.


FA526-Linux allows the Linux-2.4.19 software environment to be installed on the Faraday FA526 processor and peripheral IP.


The FA526-Linux software package is usually packaged and submitted as "arm-linux-20050429.tgz" (this program was released on April 29, 2005). Table 1 lists the hard disk space required to install Linux.



The specific process of installing the FA526-Linux software package is as follows:


(1) Copy the file arm-linux-20050429.tgz to the directory /usr/src:


#cp arm-linux一20050429.tgz/usr/src


(2) Unpack the file "arm-linux-20050429.tgz":


#cd /usr/src


#tar zxvf arm-linux一20050429.Tgz


(3) Install Toolchain (GCC 2.95.3, Binutils 2.11.2, GLIBC 2.2.3) to the directory /usr/local:


#cp /usr/src/arm-linux/toolchain/arm-linux-toolchain.tgz/usr/local/


#cd /usr/local


#tar zxvf arm-linux-toolchain.tgz


#rm-f arm-linux-toolchain.Tgz


This step will unpack the output files of GCC-2.95.3, Binutils-2.11.2, and GLIBC-2.2.3 in the directory /usr/local/arm.


(4) Add the GCC execution path shell environment.


To add a path, execute the following command:


#export PATH=$PATH:/usr/local/arm/2.95.3/bin


After completing the above four installation steps, you can unzip the package file (such as arm-linux20050429.tgz) in your own system, and then the system will automatically generate a set of directories. Table 2 lists the definitions of these source directories. The user's application is contained in the directory /usr/src/arm-linux/user/, and the customer-customized RAM-Disk is contained in the directory /usr/src/arm-linux/images/.



FA526-Linux Construction and Development


When configuring and building the FA526-Linux kernel in an embedded system, if the FA526 Linux kernel subdirectory path is: /usr/src/arm-linux/arm-linux-2.4.19/, then the structure of the FA526-Linux directory will be the same as the standard Linux kernel, and its version is 2.4.19. Table 3 lists the contents of the Linux kernel subdirectory.



Kernel build


When generating a kernel image for the FA526 architecture, the kernel must be configured first. The configuration file path is /.config.


Usually, users may need to reconfigure FA526-Linux for the following reasons. The specific methods are as follows:


(1) Customize the functions of the processor and board: modify the UART clock, system clock, etc.


(2) Customized hardware devices: add or delete certain special devices.


(3) Customizing kernel functions: adding or removing kernel functions (such as network support).


The Linux kernel configuration provides two common ways to configure these optional items: one is to use the menu display to select items (#make menuconfig); the other is to use the GUI display to select items (#make xconfig).


Figure 3 shows the menuconfig interface of FA526-Linux for FA526 and CPE development board.



The main options in the FA526 system are as follows:


(CPE)ARM system type, the default value is the CPE development board to support Faraday CPE (Common Platform Environment).


[*]Support FA526 processor, set FA526 series processor options to support FA526 CPU.


(FIE8100)Platform environment Select the platform setting from A320, FIE8100, and FIE7000.


(44000000) System clock, the default value of FIE8100 is 44 MHz. Developers should adjust it according to the actual board settings.


(22118400)UART clock. The UART clock of FIE8100 is 22.184 MHz. Developers can set the UART clock frequency according to the actual board settings.


It should be noted that when you make the Linux kernel for the first time, you can clear all target files and recreate the dependency files. If you want to modify the kernel configuration, you can call "make dep". The steps are as follows:


#make clean


#make dep (FA526-Linux provides a kernel script file (shell-script) "mkbootp.sh", which can make Make kernel easier.)


#./mkbootp.sh


The above operation can create a final kernel image file named bootplmage and a kernel ELF file named vmlinux. The following operation is an example of modifying mkbootp.sh:


(1) Use a custom ram-disk to modify "make bootpImage INITRD=" for a special ramdisk. You can modify the "Default RAM disk size" to suit the size of the ramdisk (see Figure 4). You can set this in the "Block devices" configuration interface using "make xconfig".



(2) Copy the output image to a specific directory:


Modify the "cp" line in the mkbootp.sh file to suit your needs.


The content of Mkbootp.sh is:


"make hootpimage INITRD=/usr/src/arm-linux/images/ramdisk.gz''


"cp arch/arm/boot/bootpImage/tftpboot/mbootpImage"


Building ARMBOOT


FA526-Linux uses ARMBOOT to load the operating system. FA526's ARMBOOT uses a configuration file called "faraday.h" to configure various hardware environments. This file is placed in /usr/src/arm-linux/armboot-1.1.O/faraday.h. Its modifiable contents and values ​​include (usually no need to change):


Modify the system clock. For MediaCreative! platforms, its default value is 44 MHz.


Modify the UART clock. For MediaCreative! platforms, it should be 22.1184 MHz.


Change the Flash block number. For the MediaCreative! platform, the Flash block number is 1.


After modifying the MAC and IP, you can create ARMBOOT using the following command:


#cd /usr/src/arm-linux/armboot-1.1.0


#make


At this point, the system will automatically generate the "armboot.bin" file in the directory. After that, you can use this command to burn armboot into the Flash device of FIE8100 and write the specific image file armboot.bin to the Flash address 0x80400000.


Boot FA526 Linux via ARMBOOT


In many parts of the development phase, developers must do preliminary planning to modify or download code until they get the desired results. In this case, the specific steps required for armboot to download and run the code are as follows:


(1) Set up a trip server on the Linux host and set up /etc/xinetd.d/tftp.


(2) In this state, use the Linux making shell (mkbootp.sh) to compile the code and generate the Linux code to the directory /tftpboot. To run the Linux code, follow the steps below:


Restart the FIE8100 development board (MediaCreative!).


Select "90) GO ARMB00T".


Confirm that the IP addresses of Linux-Host and F1E8100 are correct (printenv).


Enter the command: tftp Ox2000000 mbootplmage to download the code.


Start Linux through the command "go Ox2000000" until the Linux startup information appears.


Use of Linux


After completing the above operations, armboot can be burned into the Flash on the MediaCreative! development board. In the future, to run the Linux operating system through armboot to develop and verify the FIE8100 platform, you can do the following:


(1) Turn on the MediaCreative! development board and run "MPEG4 Burnin" to make the Linux operating option appear on the system;


(2) Press the "Space" key to enter the Linux operating system.


Conclusion


The above introduction introduces the 32-bit RISC processor compatible with the ARM V4 instruction set and the Linux operating system of the SoC platform through the design and use of Zhiyuan Technology's FIE8100 SOC platform. It has the advantages of low power consumption and portability. Developers can install and implement Linux--2.4.19 software on the FIE8100 platform and conduct secondary development and verification.

[1] [2]
Reference address:Implementation of Linux operating system based on FA526 processor SoC platform

Previous article:Distributed video surveillance system for vehicle rear-view scenes
Next article:Introduction to ARM Compiler

Latest Microcontroller Articles
  • Download from the Internet--ARM Getting Started Notes
    A brief introduction: From today on, the ARM notebook of the rookie is open, and it can be regarded as a place to store these notes. Why publish it? Maybe you are interested in it. In fact, the reason for these notes is ...
  • Learn ARM development(22)
    Turning off and on interrupts Interrupts are an efficient dialogue mechanism, but sometimes you don't want to interrupt the program while it is running. For example, when you are printing something, the program suddenly interrupts and another ...
  • Learn ARM development(21)
    First, declare the task pointer, because it will be used later. Task pointer volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • Learn ARM development(20)
    With the previous Tick interrupt, the basic task switching conditions are ready. However, this "easterly" is also difficult to understand. Only through continuous practice can we understand it. ...
  • Learn ARM development(19)
    After many days of hard work, I finally got the interrupt working. But in order to allow RTOS to use timer interrupts, what kind of interrupts can be implemented in S3C44B0? There are two methods in S3C44B0. ...
  • Learn ARM development(14)
  • Learn ARM development(15)
  • Learn ARM development(16)
  • Learn ARM development(17)
Change More Related Popular Components

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号