2.1 uboot transplantation in linux

Publisher:CelestialLightLatest update time:2024-11-18 Source: cnblogsKeywords:linux  uboot Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere

1. Introduction to Friendly Arms:

README for FriendlyARM Tiny4412

Note: This u-boot source code is provided by Samsung and modified and ported by Friendly Arm to be suitable for the Tiny4412 development board platform.
It is only for embedded enthusiasts to study and research, and Friendly Arm does not provide any technical support and maintenance for it.

-----------------------------------------------------
1. Build uboot

a) Install the toolchain (arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz) and set
the PATH environment variable to ensure normal use.

b) Unzip uboot_tiny4412-20130729.tgz and enter the corresponding directory
tar xzf uboot_tiny4412-20130729.tgz

c) Configure uboot and compile
cd uboot_tiny4412
make tiny4412_config
make

Generate u-boot.bin

d) Compile the tool used to generate bl2:
make -C sd_fuse
or
cd sd_fuse; make


-----------------------------------------------------
2. Make an SD card to boot Tiny4412

a) Prepare a 4G or higher SDHC card.
Note: The existing data on the card will be destroyed, so please back up the data on the SD card first.

b) fusing SD card
Assuming that the SD card has been identified by PC Linux as /dev/sdb, run the following command as root user:
cd sd_fuse/tiny4412
./sd_fusing.sh /dev/sdb


-----------------------------------------------------
3. Use SD card to boot Tiny4412 and burn Android

a) Insert the prepared SD card into the Tiny4412 board, switch S2 to SDBOOT, and connect
the serial cable to the PC and assume it is ready.

b) Power on the development board, then press any key in the serial console (such as minicom) to enter the uboot command line mode

c) Partition the SD card
Enter the following uboot command to partition the SD card:
fdisk -c 0 320 806 518
After repartitioning, you can reformat the FAT partition
fatformat mmc 0:1

d) Enter fastboot mode to flash Android.
Use a USB cable to connect the MICRO_USB port of Tiny4412 to the PC, and then enter the following uboot command:
fastboot

e) Flash Android to SD card
First, please prepare the Android image, including: zImage, ramdisk-u.img, system.img.
Enter the following commands on the PC to flash:
fastboot flash kernel zImage (burn kernel)

fastboot -w (format userdata and cache)

fastboot flash ramdisk ramdisk-u.img (burn ramdisk)

fastboot flash system system.img (burn system)

f) You can also burn uboot to SD card via fastboot on PC
First manually generate bl2.bin
cd sd_fuse/tiny4412
../mkbl2 ../../u-boot.bin bl2.bin 14336

Then enter the following commands:
fastboot flash fwbl1 E4412_N.bl1.bin

fastboot flash bl2 bl2.bin

fastboot flash bootloader ../../u-boot.bin

fastboot flash tzsw E4412_tzsw.bin


-----------------------------------------------------
4. Boot Android using SD card

a) If you are using HD700, restart Tiny4412 after the flash is complete to automatically start Android

b) If you are using S700, you need to set the kernel command line parameters in uboot:
setenv bootargs console=ttySAC0,115200n8 androidboot.console=ttySAC0 lcd=S700
saveenv
and then restart Tiny4412.

-----------------------------------------------------------------------------------------------------------

(II) Compilation results

Uboot compiled successfully in tiny4412

o lib/lzo/liblzo.o net/libnet.o post/libpost.o board/samsung/tiny4412/libtiny4412.o --end-group /opt/FriendlyARM/tiny4412/uboot/uboot_tiny4412/arch/arm/lib/eabi_compat.o -L /opt/FriendlyARM/toolschain/4.5.1/lib/gcc/arm-none-linux-gnueabi/4.5.1 -lgcc -Map u-boot.map -o u-boot
arm-linux-ld: warning: creating a DT_TEXTREL in object.
arm-linux-objcopy -O srec u-boot u-boot.srec
arm-linux-objcopy --gap-fill=0xff -O binary u-boot u-boot.bin
root@phone-desktop:/opt/FriendlyARM/tiny4412/uboot/uboot_tiny4412# make -C sd_fuse
make:进入目录'/opt/FriendlyARM/tiny4412/uboot/uboot_tiny4412/sd_fuse'
gcc -o    mkbl2 V310-EVT1-mkbl2.c
gcc -o    sd_fdisk sd_fdisk.c
make:离开目录“/opt/FriendlyARM/tiny4412/uboot/uboot_tiny4412/sd_fuse”
root@phone-desktop:/opt/FriendlyARM/tiny4412/uboot/uboot_tiny4412#

(三)目录分析

Directory Hierarchy:
====================

/arch            Architecture specific files    #拱结构的特定文件
/arm            Files generic to ARM architecture  #ARM文件通用的ARM架构
/cpu        CPU specific files CPU特定文件
/arm720t        Files specific to ARM 720 CPUs
/arm920t        Files specific to ARM 920 CPUs
/at91rm9200    Files specific to Atmel AT91RM9200 CPU
/imx        Files specific to Freescale MC9328 i.MX CPUs
/s3c24x0    Files specific to Samsung S3C24X0 CPUs
/arm925t        Files specific to ARM 925 CPUs
/arm926ejs    Files specific to ARM 926 CPUs
/arm1136        Files specific to ARM 1136 CPUs
/ixp        Files specific to Intel XScale IXP CPUs
/pxa        Files specific to Intel XScale PXA CPUs
/s3c44b0        Files specific to Samsung S3C44B0 CPUs
/sa1100        Files specific to Intel StrongARM SA1100 CPUs
/lib        Architecture specific library files
/avr32        Files generic to AVR32 architecture
/cpu        CPU specific files
/lib        Architecture specific library files
/blackfin        Files generic to Analog Devices Blackfin architecture
/cpu        CPU specific files
/lib        Architecture specific library files
/i386            Files generic to i386 architecture
/cpu        CPU specific files
/lib        Architecture specific library files
/m68k            Files generic to m68k architecture
/cpu        CPU specific files
/mcf52x2        Files specific to Freescale ColdFire MCF52x2 CPUs
/mcf5227x        Files specific to Freescale ColdFire MCF5227x CPUs
/mcf532x        Files specific to Freescale ColdFire MCF5329 CPUs
/mcf5445x        Files specific to Freescale ColdFire MCF5445x CPUs
/mcf547x_8x    Files specific to Freescale ColdFire MCF547x_8x CPUs
/lib        Architecture specific library files
/microblaze        Files generic to microblaze architecture
/cpu        CPU specific files
/lib        Architecture specific library files
/mips            Files generic to MIPS architecture
/cpu        CPU specific files
/lib        Architecture specific library files
/nios2        Files generic to Altera NIOS2 architecture
/cpu        CPU specific files
/lib        Architecture specific library files
/powerpc        Files generic to PowerPC architecture
/cpu        CPU specific files
/74xx_7xx        Files specific to Freescale MPC74xx and 7xx CPUs
/mpc5xx        Files specific to Freescale MPC5xx CPUs
/mpc5xxx        Files specific to Freescale MPC5xxx CPUs
/mpc8xx        Files specific to Freescale MPC8xx CPUs
/mpc8220        Files specific to Freescale MPC8220 CPUs
/mpc824x        Files specific to Freescale MPC824x CPUs
/mpc8260        Files specific to Freescale MPC8260 CPUs
/mpc85xx        Files specific to Freescale MPC85xx CPUs
/ppc4xx        Files specific to AMCC PowerPC 4xx CPUs
/lib        Architecture specific library files
/sh            Files generic to SH architecture
/cpu        CPU specific files
/sh2        Files specific to sh2 CPUs
/sh3        Files specific to sh3 CPUs
/sh4        Files specific to sh4 CPUs
/lib        Architecture specific library files
/sparc        Files generic to SPARC architecture
/cpu        CPU specific files
/leon2        Files specific to Gaisler LEON2 SPARC CPU
/leon3        Files specific to Gaisler LEON3 SPARC CPU
/lib        Architecture specific library files
/api            Machine/arch independent API for external apps
/board            Board dependent files
/common            Misc architecture independent functions
/disk            Code for disk drive partition handling
/doc            Documentation (don't expect too much)
/drivers        Commonly used device drivers
/examples        Example code for standalone applications, etc.
/fs            Filesystem code (cramfs, ext2, jffs2, etc.)
/include        Header Files
/lib            Files generic to all architectures
/libfdt        Library files to support flattened device trees
/lzma            Library files to support LZMA decompression
/lzo            Library files to support LZO decompression
/net            Networking code
/post            Power On Self Test
/rtc            Real Time Clock drivers
/tools            Tools to build S-Record or U-Boot images, etc.

----

translate:

/arch architecture specific files
/arm files generic for the ARM architecture
/cpu CPU specific files
/arm720t files specific to the ARM 720 processor
/arm920t files specific to the ARM 920 processor
/at91RM9200 files specific to the Atmel AT91RM9200 CPU
/imx files specific to the Freescale i.MX MC9328 CPU
/s3c24x0 files specific to the Samsung S3C24X0 CPU
/arm925t files specific to the ARM 925 processor
/arm926ejs files specific to the ARM 926 processor
/arm1136 files specific to the ARM 1136 processor
/ixp files specific to Intel XScale processors IXP
/pxa files specific to the Intel XScale PXA family of processors
/s3c44b0 files specific to the Samsung S3C44b0 processor
/sa1100 files specific to the Intel StrongARM SA1100 processor / lib
library files specific to the architecture
AVR32 files generic for the AVR32 architecture
/ CPU CPU specific files
/ lib library files specific to architectures
/ Blackfin processors generic for the Analog Devices Blackfin architecture
/ CPU CPU specific files
/ lib library files specific to architectures
/ i386 files generic for the i386 architecture
/ CPU CPU specific files
/ lib library
files specific to architectures / m68k files generic for the m68k architecture
/ CPU CPU specific files
/ mcf52x2 files specific to Freescale's ColdFire MCF52x2 processors
/ MCF5227X files specific to Freescale's ColdFire MCF5227X
/ MCF532X files specific to Freescale's ColdFire MCF5329 processors / mcf5445x
files specific to Freescale's ColdFire MCF5445x processors
/ mcf547x_8x files specific to Freescale's ColdFire MCF547x_8x
/ lib library files specific to architectures
/ MicroBlaze files generic for the MicroBlaze architecture
/cpu CPU Specific Files
/lib Architecture Specific Library Files
/MIPS Files Generic for MIPS Architecture
/cpu CPU Specific Files
/lib Architecture Specific Library Files
/NIOS2 Files Generic for Altera NIOS2 Architecture
/cpu CPU Specific Files
/lib Architecture Specific Library Files
/PowerPC Files Generic for PowerPC Architecture
/cpu CPU Specific Files
/74xx_7xx Files Specific to Freescale MPC74xx and 7xx Processors
/MPC5xx Specific Files Freescale MPC5xx Processors
/mpc5xxx Specific Files Freescale MPC5xxx CPUs
/mpc8xx Specific Files Freescale MPC8xx Processors
/mpc8220 Specific Files Freescale MPC8220 Processors
/MPC824X Specific Files Freescale MPC824X CPUs
/MPC8260 Specific Files Freescale MPC8260 Processors
/MPC85xx Specific Files Freescale MPC85xx Processors
/ppc4xx Files Specific to AMCC PowerPC 4xx Processors
/lib Architecture Specific Library Files
/ SH files are generic to SH architectures
/ CPU CPU specific files
/ SH2 files specific to SH2 CPUs
/ SH3 files specific to SH3 processors
/ SH4 files specific to SH4 CPUs
/ lib specific architecture library files
/ SPARC files common to SPARC architectures
/ CPU CPU specific files
/ LEON2 files specific to Gaisler LEON2 SPARC CPUs
/ LEON3 files specific to Gaisler LEON3 SPARC CPUs
/ lib specific architecture library files
External applications / API machines / Arch independent APIs
/ Board board related files
/ Common other architecture independent functions
Disk drive partition handling / Encoded disks
/ DOC documentation (don't expect too much)
/ Drivers common device drivers
For standalone applications, etc. / Examples sample code
/ FS file system code (CRAMFS, EXT2, JFFS2, etc.)
/ Include header files
/ LIB files common to all architectures
/ libfdt library files to support flat device tree
/ LZMA library files to support LZMA compression
/ LZO library files to support LZO compression
/NET network code
/POST power on self test
/RTC real time clock driver
/Tools tools to build S-record or U-Boot images, etc.

[1] [2]
Keywords:linux  uboot Reference address:2.1 uboot transplantation in linux

Previous article:uboot relocation code analysis
Next article:最后一页

Latest Microcontroller Articles
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号