U-Boot

树莓派折腾笔记_1_uboot移植

霸气de小男生 提交于 2019-12-22 18:36:16
uboot移植 准备工作 在移植之前,需准备以下相关source code和tools,因为在u-boot的主分支中已经支持raspberry,所以我们可以直接去官网下载最新的code,另外由于raspberry的firmware并没有开源,所以我们只能去github上拿最新的编好的二进制文件。 板子:Raspberry 3B v1.2 u-boot:u-boot-2019.07 https://ftp.denx.de/pub/u-boot/ firmware:master分支 https://github.com/raspberrypi/firmware.git tools: https://github.com/raspberrypi/tools.git 包含交叉编译工具 另需一张SD卡和SD卡读卡器 编译u-boot 准备了相关code和tools之后,我们首先需要搭建交叉编译环境 1、首先需要将交叉编译工具的地址加入PATH变量中(交叉编译工具我们可以在tools文件夹中找到) export PATH=/home/log/log/raspberryPi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/:$PATH 在这里需要说明的是,tools文件夹提供了以下六种编译工具

Can u-boot support more than one ethernet port?

徘徊边缘 提交于 2019-12-22 10:15:09
问题 I want to ping out of multiple ethernet ports. Is there an inherent restriction where u-boot only supports a single ethernet port? 回答1: Can u-boot support more than one ethernet port? Yes, in recent versions of U-Boot (going back to at least 2012.10). Salient code is eth_current_changed() and eth_set_current() in net/eth.c . Is there an inherent restriction where u-boot only supports a single ethernet port? No, recent versions of U-Boot can support more than one Ethernet port on the board.

为什么U-boot程序中要设置成svc模式?

不羁的心 提交于 2019-12-21 23:43:33
ARM的7中工作模式 用户模式(USR):正常程序执行模式,不能直接切换到其他模式。==是用户程序的运行模式。==因此想要访问硬件资源或者切换到其他模式只能通过中断。 系统模式(SYS):运行操作系统的特权任务,与用户模式类似,但具有可以直接切换到其他模式等特权。 运行特权级的操作系统任务。 管理模式(SVC):概括:1.系统复位、开机时自动进入该模式。2.当操作系统申请硬件资源时,由软件中断进入该模式。当有用户态进入内核态的时候系统也是处于这种模式。 快中断模式(FIQ):支持高速数据传输及通道处理,FIQ异常响应时进入此模式 中断模式(IRQ):用于通用中断处理,IRQ异常响应时进入此模式 中止模式(ABT): 用于支持虚拟内存管理或存储器保护 ,在ARM7TDMI没有大用处 未定义模式(UND): 支持硬件协处理器的软件仿真 ,未定义指令异常响应时进入此模式。 特权模式 除用户模式外,其它模式均为特权模式(Privileged Modes) 。ARM 内部寄存器 和一些 片内外设 在硬件设计上只允许(或者可选为只允许)特权模式下访问。此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。 异常模式 特权模式中除系统(system)模式之外的其他5种模式又统称为异常模式 。它们除了可以通过在特权下的程序切换进入外,也可以由特定的异常进入

Passing Bootargs via Chosen node in Device Tree not working for Beaglebone Black

喜欢而已 提交于 2019-12-21 17:35:11
问题 As per my understanding chosen node is used to send boot arguments to the kernel. The following is the chosen node of the existing device code (am335x-bone-common.dtsi). chosen { stdout-path = &uart0; }; So, I have modified chosen node to pass kernel arguments. chosen { bootargs = "console=ttyO0,115200 root=/dev/mmcblk0p2 rootfstype=ext3 rw rootwait"; stdout-path = &uart0; }; While bringing up the board I encountered KERNEL PANIC, Here is the log {https://pastebin.com/XHyrsmfG} FYI: These are

Understand U-Boot memory footprint

…衆ロ難τιáo~ 提交于 2019-12-20 08:51:15
问题 I don't understand what is happening in RAM when loading U-Boot. I'm working on a Xilinx Zynq ZC702 evaluation kit and I'm trying to load a Linux kernel on it using U-Boot. So I used the Xilinx tool Vivado and the SDK to generate a BOOT.bin file that is written on an SD card step by step: Create an HW project using Vivado, Generate FSBL and FPGA bitstream using the SDK, Create a boot image containing the FSBL + bitstream + U-Boot (I downloaded the U-Boot sources from the xilinx Git repository

How uboot passes hardware information to kernel without using DTS

强颜欢笑 提交于 2019-12-20 04:13:00
问题 I am new to embedded Linux development. I have to port uboot and custom Linux distribution to a new ARM based board. The uboot we are using (2009.08) does not have Arch and DTS folders. I suppose it is an older version which does not use use DTS to pass hardware information to the Kernel (v 3.0). I have read a lot about DTS but here is not enough information on internet about this (obsolete?) method of passing hardware information from uboot to kernel that we are using. Internet tells me that

embedded linux ARM booting address

你。 提交于 2019-12-20 04:07:26
问题 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 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

embedded linux ARM booting address

五迷三道 提交于 2019-12-20 04:07:07
问题 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 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

Why using a uImage instead of a zImage

我是研究僧i 提交于 2019-12-19 08:26:11
问题 I'am trying to learn the difference between a zImage and a uImage. In my understanding uImage is got by running mkimage on the Image and as a result it adds a U-Boot wrapper (i don't know what it contains exactly) that contains a header plus the load address and entry point and maybe "extra informations" that i don't know. In the other hand the zImage is the compressed Image , it doesn't contain the load address and entry point(what i think, correct me if i'am wrong) but also U-Boot can load

u-boot 之配置分析 (2)

醉酒当歌 提交于 2019-12-19 07:54:09
Makefile简要分析 所有这些目录的编译连接都是由顶层目录的makefile来确定的。 1. 在makefile中有: unconfig: @rm -f $(obj)include/config.h $(obj)include/config.mk \ $(obj)board/*/config.tmp $(obj)board/*/*/config.tmp %是个通配符,make xxx_config都是这个目标.目标的依赖是unconfig, unconfig 的命令是删除一些文件,而这些文正是从make xxx_config过程中产生的.unconfig就是清理配置的. MKCONFIG := $(SRCTREE)/mkconfig 100ask24x0_config : unconfig @$(MKCONFIG) $(@:_config=) arm arm920t 100ask24x0 NULL s3c24x0           等同为 ./mkconfig 100ask24x0 arm arm920t 100ask24x0 NULL s3c24x0 $@就是指目标 $(@:_config=)是变量的替换引用 格式为“$(VAR:A=B)”(或者“${VAR:A=B}”),意思是:替换变量“VAR”中所有“A”字符结尾的字为“B”结尾的字。 2.