3.DM816x 1-day Workshop-Getting Started with the EZSDK

更新时间:2023-05-01 03:56:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

DM816x 1-day Workshop

Module 3

Getting Started with the EZSDK

schlum@9735aa543b3567ec102d8a82

Copyright ?2011 Texas Instruments. All rights reserved.

Flash n Bootloader

Provides rudimentary h/w init Calls Linux kernel and passes boot arguments o Kernel

Initializes the system (and device)

Manages system resources Provides services for user programs

p Filesystem

Single filesystem (/ root)

Stores all system files

After init, kernel looks to filesystem for “what ’s next ” bootarg tells linux where to find root filesystem

What Is a ‘Linux Distribution?’

A ‘Linux distribution’is a combination of the components required to provide a working Linux environment for a particular platform:

1.Linux kernel port

A TI LSP or Linux PSP is a Linux kernel port to a device,

not just a set of device drivers

2.Bootloader

Uboot is the standard bootloader for ARM Linux

3.Linux ‘file system’

This does NOT mean a specific type of file system like FAT file system

or flash file system …rather, it more like the “C:\”drive in Windows

It refers to all the ‘user mode’software that an application needs such as graphics libraries, network applications, C run-time library (glibc, uclibc), codec engine, dynamically-loaded kernel modules (CMEM, DSPLINK) 4.Development tools

CodeSourcery-GCC, GDB

MV DevRocket, CCSv5 (beta), GHS Multi, etc.

File System Linux Kernel Boot Loader

U -Boot Linux Kernel Init Process Login Prompt ARM assembly code Passes args to Linux (bootargs )Initialize hardware via static drivers /sbin /init –1st process exe by kernel

Login console Usually one of first prog ’s to run Mount root filesys

Booting Linux – MMC/SD BootnRBLROM
o
(x-loader) Internal RAM
MLO
p
U-BootDDR2 MLO (x-loader)
KernelDDR2
Device
MMC/SDLinux Kernel
RBL MLO (x-loader)
n
o p
UBoot
OCMC (on-chip memory controller) Internal memory
DDR3UBoot Linux Kernel
The ROM bootloader cannot make assumptions about external memory, so it can only load to the device’s internal memory Even though TI8168 and TI8148 have two 128K banks of OCMC memory, ROM-coded MMC boot mode is 128K limited and too small for full U-boot

Ubuntu PC

EVM eth0

RS-232

minicom

U-Boot

Ethernet

~/targetfs

nfs server

/tftpboot/

uImage

tftp server

DHCP/boot p server

“make menuconfig”options

Kernel Object Modules1. Static (built-in) oss v4l2? ?
Linux Kernel fbdev nfsd dsp httpd ext3
Kernel Module Examples: fbdev frame buffer dev v4l2 video for linux 2 nfsd network file server dev dsp oss digital sound proc. audio alsa audio driver
Linux Kernel source code is broken into individual modules Only those parts of the kernel that are needed are built in
2. Dynamic (insmod)
# insmod .ko [mod_properties]? ? ?
Use insmod (short for insert module) command to dynamically add modules into the kernel Keep statically built kernel small (to reduce size or boot-up time), then add functionality later with insmod Insmod is also handy when developing kernel modules
.ko = kernel object

Narcissus–Modifying the GNU Linux Filesystem

Booting Linux – MMC/SD BootnRBLROM
o
(x-loader) Internal RAM
MLO
p
U-BootDDR2 MLO (x-loader)
KernelDDR2
Device
MMC/SDLinux Kernel
RBL MLO (x-loader)
n
o p
UBoot
OCMC (on-chip memory controller) Internal memory
DDR3UBoot Linux Kernel
The ROM bootloader cannot make assumptions about external memory, so it can only load to the device’s internal memory Even though TI8168 and TI8148 have two 128K banks of OCMC memory, ROM-coded MMC boot mode is 128K limited and too small for full U-boot

MLO (U-boot_min) BuildnRBLROM
o
(x-loader) Internal RAM
MLO
p
U-BootDDR2
KernelDDR2
host $ cd ti-ezsdk_dm816x-evm_xxx/psp/linux-xxx-psp-xxx ti-ezsdk_dm816x-evm_xxx/psp/linux-xxx-psp-xxx host $ distclean host $ make ARCH=arm ti8168_evm_min_sd* CROSS_COMPILE=arm-none-linux-gnueabi- u-boot.ti u-boot.ti host $ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabiu-boot.min.sd ${DEST}/MLO host $ cp u-boot.min.sd
Typically, available u-boot configs are as found by: host $ ls include/configs This yields “ti8168_evm_config,” which is an acceptable config. However, TI has modified u-boot Makefile to include alternate configs: (Min configs correspond to MLO/x-loader, have hard-coded environment vars) ti8168_evm_min_sd Fits in internal memory, SD/MMC boot

U-Boot BuildnRBLROM
o
(x-loader) Internal RAM
MLO
p
U-BootDDR2
KernelDDR2
host $ cd ti-ezsdk_dm816x-evm_xxx/psp/linux-xxx-psp-xxx ti-ezsdk_dm816x-evm_xxx/psp/linux-xxx-psp-xxx host $ distclean host $ make ARCH=arm ti8168_evm_config* CROSS_COMPILE=arm-none-linux-gnueabi- u-boot.ti u-boot.ti host $ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabiu-boot.noxip.bin ${DEST}/u-boot.bin ${DEST}/u-boot.bin host $ cp u-boot.noxip.bin
TI has modified u-boot Makefile to include these configs: (Non-min configs include all u-boot supported drivers but are >128K) ti8168_evm_config ti8168_evm_config_nand ti8168_evm_config_nor ti8168_evm_config_spi Default, equivalent to ti8168_evm_config_nand NAND boot, Environment stored in NAND flash NOR boot, Environment stored in NOR flash SPI boot, Environment stored in SPI flash

本文来源:https://www.bwwdw.com/article/fv9e.html

Top