24
Introduction of OMAP4 Booting Sequence Jiahe Jou, 2012/09/13

Introduction of omap4 booting sequence

Embed Size (px)

Citation preview

Page 1: Introduction of omap4 booting sequence

Introduction of OMAP4 Booting Sequence

Jiahe Jou, 2012/09/13

Page 2: Introduction of omap4 booting sequence

RevisionsDATE AUTHOR DESCRIPTION

2012/09/13 Jiahe Jou Draft.

Page 3: Introduction of omap4 booting sequence

Outlines

● Booting Types● Booting Overview● Before Booting● Peripheral Booting● Memory Booting● Memory Map● Make A Bootable SD Card● OMAP Bootloader Overview

Page 4: Introduction of omap4 booting sequence

Booting Types

● To start a initialization software(bootstrap)

● Peripheral Booting○ UART○ USB

● Memory Booting○ XIP(eXecution In Place)

■ NOR○ Non-XIP

■ MMC(eMMC)■ SD(eSD)■ NAND

Page 5: Introduction of omap4 booting sequence

Booting Types

● sys_boot[5:0]

● Peripheral Preferred Booting○ 0b0xxxxx

● Memory Preferred Booting○ 0b1xxxxx

sys_boot[5:0] 1st 2nd 3rd 4th

0b010110 USB UART MMC1 MMC2(1)

0b110110 MMC2(1) USB UART MMC1

Page 6: Introduction of omap4 booting sequence

Booting OverviewROM code

start

Start up and configuration

Booting

Copying or download

successful?

More devices in list?

Image execution

Setup booting device list

Select device from the list

Yes

NoNo

Yes

Wait for reset

Failed or returned

Page 7: Introduction of omap4 booting sequence

Booting OverviewBooting

Permanent device?

CH present?

CH sent?

Download Image

Is XIP device?

Copy and excute CH

Copy to RAM

Copy and excute CH

Image execution

Yes

Yes

No Yes

No

Yes

No

No

Page 8: Introduction of omap4 booting sequence

Before Booting

● Start up and configuration○ Reading SYSBOOT pins○ Software booting configuration

● Setup booting device list○ sys_boot[5:0]○ Redefined by software booting configuration

● Select device from list○ Select a device to start booting procedure

Page 9: Introduction of omap4 booting sequence

Before Booting

● Software booting configuration structure○ Store in SAR RAM memory○ PUBLIC_SW_BOOT_CFG_ADDR(0x4A326A00)

■ Be 0 if cold reset■ Address of configuration structure on else

● Software booting configuration○ Device booting list○ Clock setting○ Time-out mechanism of peripheral booting

Page 10: Introduction of omap4 booting sequence

Peripheral Booting

● Types○ UART ○ USB

● Download a flash loader(Pre-flashing)

● Initial flash memories

● Update firmware

Page 11: Introduction of omap4 booting sequence

Peripheral Booting

Peipheral Booting

USB Initialization

UART or

USB

UART Initialization

Synchronization Phase

Transfer Phase

Failed

USB

UART

Time-out

Time-out

Synchronized

SuccessedTransfered

Page 12: Introduction of omap4 booting sequence

Peripheral BootingSynchronization Phase of USB

USB enumeration

Get ASIC ID

ASIC ID

Booting message

3s time-out

3s time-out

Page 13: Introduction of omap4 booting sequence

Peripheral BootingSynchronization Phase of UART

Get ASIC ID

ASIC ID

Booting message300ms time-out

ASIC ID

Page 14: Introduction of omap4 booting sequence

Peripheral BootingTransfer Phase

Image size

Image1min time-out

1min time-out

Page 15: Introduction of omap4 booting sequence

Peripheral Booting

● ASIC ID structure○ Items, number of sub-blocks○ ID sub-block, device identification○ Checksum sub-block, CRC(not for UART)○ 3 reserved sub-blocks

● Booting message○ Peripheral booting, 0xF0030002○ Change device, 0xF003xx06○ Next device, 0xFFFFFFFF○ Memory booting, Others

■ Get ASIC ID, 0xF003 0003

Page 16: Introduction of omap4 booting sequence

Memory Booting

● Types○ XIP(eXecution In Place)

■ NOR○ Non-XIP

■ MMC(eMMC)■ SD(eSD)

● Code shadowing for Non-XIP○ Copying code to RAM

Page 17: Introduction of omap4 booting sequence

Memory Booting

Memory Booting

Copy image to RAM

Is XIP dev?

Execute image

No

Yes

Page 18: Introduction of omap4 booting sequence

Memory BootingSD/MMC Booting

Initilization

Configure card address

(RCA)

Is raw mode?

Find and get booting file

Get raw data

Successed

Yes

No

Page 19: Introduction of omap4 booting sequence

Memory Booting

● SDMMCx interfaces○ SDMMC1(SDCard)

■ Raw■ File system

○ SDMMC2(eMMC)■ Raw

● Avoid boot time penalty

Page 20: Introduction of omap4 booting sequence

Memory Booting

● Raw○ Read image directly from sectors○ Four consecutive location, offset 128KB

■ 0x00000(bytes)■ 0x20000■ 0x40000■ 0x60000

● File system(FAT16, FAT32)○ Read image from a booting file○ SDMMC1 only○ File name must be "MLO"

Page 21: Introduction of omap4 booting sequence

Memory Map

48KB

Page 22: Introduction of omap4 booting sequence

Make A Bootable SD Card

● http://code.google.com/p/beagleboard/wiki/LinuxBootDiskFormat

● Tool○ fdisk○ mkfs

● Procedure○ Step 1. Prepre a SD card○ Step 2. Delete all partitions○ Step 3. Configure SD card

■ Heads, sectors, cylinders○ Step 4. Create a FAT32 partition○ Step 5. Mark it as bootable○ Step 6. Format the partition

Page 23: Introduction of omap4 booting sequence

OMAP Bootloader Overview

● http://omappedia.org/wiki/Bootloader_Project

● Two stages○ x-loader○ u-boot

ROM code x-loader u-boot Linux kernel

1st stage 2nd stage

Page 24: Introduction of omap4 booting sequence

End