嵌入式linux ARM启动地址 [英] embedded linux ARM booting address

查看:23
本文介绍了嵌入式linux ARM启动地址的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我按照一些文档通过 sdcard 在 ARM 板上启动嵌入式 Linux(例如:飞思卡尔 Vybrid 塔).文档中有构建uImage和将u-boot写入sdcard的步骤如下:

I follow some document to boot embedded Linux on ARM board (ex: Freescale Vybrid tower) via sdcard. in the document there are steps to build uImage and write u-boot into sdcard as below:

sudo dd if=u-boot.imx of=/dev/sdX bs=512 seek=2
mkimage -A arm64 -O linux -T kernel -C none -a 0x81000000 -e 0x81000000 -n
"Linux" -d Image uImage

我想知道的是他们从哪个数据表/UM/RM 或任何文件中获得编号:bs=512 seek=2, -a 0x81000000(加载地址),-e 0x81000000(入口点)

What I would like to know is from which datasheet/UM/RM or any document they get the number: bs=512 seek=2, -a 0x81000000 (Load address), -e 0x81000000 (Entry point)

还请解释一下加载地址/入口点地址是什么意思?

Please also explain what Load address/entry point address mean?

推荐答案

我想知道的是他们从哪个数据表/UM/RM 或任何文件中获得编号:bs=512 seek=2, -a 0x81000000(加载地址),-e 0x81000000(入口点)

What I would like to know is from which datasheet/UM/RM or any document they get the number: bs=512 seek=2, -a 0x81000000 (Load address), -e 0x81000000 (Entry point)

bs=512 seek=2 规范应该来自 NXP/Freescale SoC 参考手册(例如 System启动章节).

The bs=512 seek=2 specification should be from the NXP/Freescale reference manual for the SoC (e.g. the "Expansion Device: SD, eSD and SDXC" section of the System Boot chapter).

当配置为从 SD 卡启动时,(SoC 的)ROM 启动程序将在字节偏移 0x400(或 2 * 512 = 1024)处查找程序映像(例如 U-Boot),这是第三个 512-字节扇区.
第一个扇区假定为 MBR,第二个扇区保留用于可选的次映像表(使用 NXP 文档中的术语).

When configured to boot from an SDcard, the ROM boot program (of the SoC) will look for a program image (e.g. U-Boot) at byte offset 0x400 (or 2 * 512 = 1024), which is the third 512-byte sector.
The first sector is presumed to be the MBR, and the second sector is reserved for an optional Secondary Image Table (using terminology from NXP document).

全志 SoC 对 SD 卡使用类似的启动方案(即 U-Boot 映像位于原始扇区中的固定位置,而不是分区的一部分),但映像从第 17 个扇区开始.
某些 SoC(例如 Atmel)不是加载原始扇区,而是通过加载 FAT 分区中的文件从 SD 卡启动.

Allwinner SoCs use a similar booting scheme for SDcard (i.e. the U-Boot image is at a fixed location in raw sectors not part of a partition), but the image starts at the 17th sector.
Instead of loading raw sectors, some SoCs (e.g. Atmel) boot from SDcard by loading a file from a FAT partition.

还请解释一下加载地址/入口点地址是什么意思?

Please also explain what Load address/entry point address mean?

这些值指定给 mkimage 实用程序,以便它们可以安装在 uImage 标头中.U-Boot 将在 uImage 加载和解包时使用这些值.

These values are specified to the mkimage utility so that they can be installed in the uImage header. U-Boot will then use these values when the uImage is loaded and unpacked.

load address 指定 U-Boot 定位图像所需的内存地址.图像被复制到该内存地址.
entry point 指定 U-Boot 跳转/分支到的内存地址,以执行映像.该值通常与加载地址的地址相同.

The load address specifies to U-Boot the required memory address to locate the image. The image is copied to that memory address.
The entry point specifies to U-Boot the memory address to jump/branch to in order to execute the image. This value is typically the same address as the load address.

根据 (Vincent Sanders') 启动 ARM Linux.
有关详细信息,请参阅使用 LOADADDR 构建内核 uImage.

For an ARM Linux kernel the recommended load and entry-point addresses are 0x8000 from the start of physical memory, according to (Vincent Sanders') Booting ARM Linux.
See Building kernel uImage using LOADADDR for more details.

这篇关于嵌入式linux ARM启动地址的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆