QEMU ARM64 Uboot

QEMU ARM64 Uboot
以virt machine 为例,
export ARCH=arm64 
export CROSS_COMPILE=aarch64-linux-gnu-
make qemu_arm64_defconfig
make -j16 
make CROSS_COMPILE=aarch64-linux-gnu- -j2 
QEMU启动

qemu-system-aarch64 \
-M virt \
-cpu cortex-a72 \
-smp 2 \
-m 2048M \
-kernel u-boot \
-nographic

qemu-system-aarch64: unable to find CPU model 'cortex-a72'

qemu-system-aarch64 -M virt -cpu cortex-a53 -smp 2 -m 2048M -kernel u-boot -nographic

qemu-system-aarch64 -M virt -cpu cortex-a53  -m 2048M -kernel u-boot -nographic
qemu quit:
ctrl+A -> wait a moment ->+X


/* SPDX-License-Identifier: GPL-2.0+ */
/*
 * relocate - common relocation function for AArch64 U-Boot
 *
 * (C) Copyright 2013
 * Albert ARIBAUD <albert.u.boot@aribaud.net>
 * David Feng <fenghua@phytium.com.cn>
 */

#include <asm-offsets.h>
#include <config.h>
#include <elf.h>
#include <linux/linkage.h>
#include <asm/macro.h>


//ARM64 有34个寄存器,包括31个通用寄存器,SP,PC,CPSR.
//x0-x30 64bit 通用寄存器,如果有需要可以当做32bit使用:W0-W30.
//其中x0 - x7:这 8 个寄存器主要用来存储传递参数.如果参数超过 8 个,
//则会通过栈来传递; x0 也用来存放上文方法的返回值.
//FP(x29) 64bit 保存栈帧地址(栈底指针),指向当前方法栈的底部。
//LR(x30) 64bit 通常称x30为程序链接寄存器,因为这个寄存器会记录着当前方法的调用方地址 ,
//即当前方法调用完成时应该返回的位置。例如我们遇到 Crash 要获取方法堆栈,
//其本质就是不断的向上递归每一个 x30 寄存器的记录状态(也就是栈上 X30 寄存器的内容) 
//来找到上层调用方。
//SP 64bit 保存栈指针,使用 SP/WSP来进行对SP寄存器的访

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值