问题标签 [u-boot]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
304 浏览

linux - 如何从 x-loader 读取 u-boot env

在我的 X-loader 中,我必须读取 u-boot env 和其他一些我将保存到 u-boot env 分区中的数据。根据保存在 u-boot env 分区中的数据,我必须执行一些任务。

谁能帮助我如何从 x-loader 读取这些环境?

谢谢

0 投票
2 回答
24492 浏览

embedded - u-boot中的Nand分区

我正在开发嵌入式 ARM9 开发板。在那我想重新排列我的 nand 分区。谁能告诉我该怎么做?

在我的 u-boot shell 中,如果我给出命令 mtdparts 给出以下信息。

内核引导消息显示如下:

任何人都可以向我解释这两条消息之间的关系。内核或 u-boot 中的哪一个负责在 nand flash 上创建分区?至于我知道内核不会在每次启动时创建分区,但为什么会出现“创建 3 个 MTD 分区”消息?

0 投票
2 回答
420 浏览

linux - 用于 mx5x 的 uboot 映像

我开始在飞思卡尔 mx5x 板上研究嵌入式设备,现在我正在探索板上的引导模块。根据选择的引导模式,需要正确的 uboot 映像。对于 mmc boot-mod,镜像是 uboot-no-padding.bin,它是从 uboot.bin 生成的。所以,我的问题:为什么需要无填充uboot,两个图像之间的区别是什么?

请帮忙,谢谢

0 投票
3 回答
826 浏览

linux-kernel - 如何通过 U-boot 缩小 RAM 中的 OS 区域?

据我了解,PC/嵌入式系统启动后,操作系统将占据整个 RAM 区域,RAM 将如下所示:

OS 区域占据整个 RAM

这意味着,当我运行我编写的程序时,所有变量、堆栈中分配的动态内存、堆等都将保留在该区域内。如果我运行 firefox、paint、gedit 等,它们也会在这个区域运行。(这个理解正确吗?)

但是,我想缩小操作系统区域。下面是我想如何划分 RAM 的说明:

OS 区域不占用整个 RAM,留下一些物理内存供我使用

我想这样做的原因是,我想将一些通过驱动程序从外部接收的数据存储到Custom Region固定的物理位置,然后我将能够直接从用户空间访问它而无需使用copy_to_user().

我认为可以通过配置u-boot来做到这一点,但是我没有u-boot的经验,谁能给我一些从哪里开始的指导,例如:我是否需要修改u-boot的源,或者改变environment variablesu-boot就足够了?

或者有没有其他方法可以做到这一点?

任何帮助深表感谢。谢谢!

p/s:我使用的是 TI ARM 处理器,并从 SD 卡启动,我不确定这是否重要。

0 投票
1 回答
14560 浏览

linux - 如何更改 U-Boot 内存映射

MS104-SH4 上的 U-Boot(2009.03) 具有如下所示的 RAM 内存映射。

0x8c000000 不使用 (4kB)
0x8c001000 用于 Linux 内核和根文件系统 (3MB)
0x8c400000 用于 Linux 进程 (28MB)

对我来说,Linux 内核和根文件系统的 3MB 太小了,因为 Linux 内核和 ramdisk 分别有 1MB 和 3.5MB。所以我想改变上面的内存映射,例如如下所示。

0x8c000000 不使用 (4KB)
0x8c001000 用于 Linux 内核和根文件系统 (16MB)
0x8cf60000 用于 Linux 进程 (16MB)

在我的猜测中,我必须修改 uboot 源代码,但找不到我应该修改的地方。有人告诉我是否可以修改 u-boot 内存映射?如果是,还请告诉我该怎么做。谢谢你的帮助!

我在如何找到设备的内存映射?,但我的 SH4 iomem 是空的(0 大小),所以看起来像其他主题。

0 投票
1 回答
4750 浏览

linux - Linux 内核启动停止在 Uncompressing Linux... 好的,正在启动内核

我在将内核从旧 SH4 移植到新 SH4 时遇到问题。请让我展示它们之间的区别。

【老SH4】
引导加载程序:redboot v2.0
内核版本:2.4

【新SH4】
引导加载程序:u-boot v2009.03
内核版本:2.6

在旧的 SH4 中,很多源代码都是基于内核 2.4 开发的,因此将内核 2.4 移植到新的 SH4 看起来比在内核 2.6 中重新编译源代码更容易。所以我将 mkimage 应用于为旧 SH4 开发的 zImage,如下所示。

该图像加载到新的 SH4 上,如下所示。

但是,在“Uncompressing Linux... Ok, booting the kernel”之后启动停止并挂起。我发现无限循环发生在 kernel/head.S 的下面几行,但我想这些行没有问题,因为 kernel/head.S 没有定制,它适用于旧 SH4。

因此,我猜这个问题来自新旧 SH4 之间的环境差异。在旧 SH4 中,我执行 fconfig 命令并设置变量,如下所示。

我想我可以在新的 SH4 上设置这些参数,尽管 u-boot 没有 fconfig 命令。但是我找不到如何设置参数 Linux Kernel Source address 和 Linux kernel base address。这与挂起问题有关吗?或者任何关于我接下来应该检查什么的建议都会有所帮助,因为我是 Linux 嵌入式系统的新手。

谢谢你的帮助。

[已编辑]
添加以下信息以在 u-boot 上显示 printenv 结果。

bootcmd=icache on
bootm a0100000
bootdelay=2
波特率=115200
netmask=255.255.255.0
ipaddr=192.168.1.2
serverip=192.168.1.1
gatewayip=0.0.0.0
bootargs=console=ttySC1,115200,N,8 mem=32M ether=8, 0x1300,0,0,eth0 video=e1356fb:system:ms104sh4,display:crt,bpp:8,800x600@60
stdin=serial
stdout=serial
stderr=serial

0 投票
2 回答
2308 浏览

gcc - 关于u-boot重定位功能的问题

u-boot-2011.12在我的OMAP3目标上使用,交叉工具链是CodeSourcery arm-none-linux-gnueabi,我编译u-boot,下载到目标并启动它,一切正常,但我对u-boot重定位功能有一些疑问,我们知道这个功能是基于PIC(位置独立代码),位置独立代码是通过将-fpic标志设置为 来生成的,但我在编译标志中gcc没有找到。fpic没有PIC,u-boot如何实现重定位功能?

0 投票
1 回答
2404 浏览

kernel - 错误:无法识别/不支持的设备树兼容列表

我需要你的帮助。由于我需要 Kernel 3.3 来支持特殊设备的触摸屏,因此我下载了 Linaro Kernel 3.3-rc3 文件。将文件系统从我工作的 Ubuntu-Linaro 安装更改为 ext3 后,新内核将启动到根控制台,但 HDMI 和 USB 无法正常工作......

在一些互联网提示 HDMI 无法与 3.3-rc3 一起正常工作后,我决定从 kernel.org 编译最新的内核 3.3-rc6。

现在我会收到以下错误:

我使用了原始 board.dtb 以及内核树中的版本:

但没有成功。我已经从 git.linaro.org/boot/u-boot-linaro-next.git 获得了最新的 uboot,没有变化。

谁能帮忙?

0 投票
2 回答
7920 浏览

linux-kernel - uboot-MMC 无 SD 卡

我正在尝试在 imx51 Freescale 板上运行带有 linux rootfs 的 linux 内核。

我编译了 linux 内核、根文件系统和 u-boot 并将映像复制到 SD 卡:分区 0:引导分区 1:rootfs 和 linux 内核

但是我有以下错误:

有什么问题?

0 投票
2 回答
4611 浏览

beagleboard - Beagleboard:已擦除 NAND 闪存,现在无法启动

我有一个 Beagle 板 OMAP3530-GP,我已将我的内核和 rootfs 复制到 SD 卡的两个分区中并想要启动它。

SD卡的分区1:FAT32引导分区,以下文件顺序相同:MLO u-boot.bin uImage uInitrd

在分区 2:rootfs

现在我最初启动了它,我得到了:

我认为它在 NAND 中有一个较早的 u-boot.bin 正在读取并想擦除它,所以在一个怪异的时刻做了:

然后再次启动,只注意到一些不可读的串行字符,并且引导加载程序不再出现。

然后我突然想到我可能删除了 NAND 中的 X-loader 1.4.2!我将它复制到我的引导分区中,以便可以从 SD 卡而不是 NAND 启动 X-loader。但是我在开机时看到相同的不可读字符:( :(

我该怎么办??如何让引导加载程序工作?

提前致谢