首页 > 其他分享 >abl如何调用xbl里面的protocol

abl如何调用xbl里面的protocol

时间:2024-09-02 22:25:23浏览次数:10  
标签:Status SMEM protocol EFI abl xbl UEFI images bootloader

参考:高通文档
How to use SMEM in ABL?
For previous platform, Android LK was used for bootloader, while in recent platforms
UEFI is used to replace the old Android LK bootloader.
There are two parts of UEFI modules, one is in boot_images which is called UEFI core;
another is in Linux Android open-source code which is called ABL. ABL is an application
of UEFI, so the protocols defined in UEFI core from ABL can be used directly to access
hardware information such as: DAL, SDCC, and so on.
Follow the following steps to get the information from SMEM set by XBLLoader:
Copy header file from boot_images to LA
boot_images/QcomPkg/SDM845Pkg/Include/smem_type.h ->
bootable/bootloader/edk2/ QcomModulePkg/Include/smem_type.h
boot_images/QcomPkg/Include/EFISmem.h ->
bootable/bootloader/edk2/QcomModulePkg/Include/ Protocol/EFISmem.h
Copy gEfiSMEMProtocolGuid from boot_images/QcomPkg/QcomPkg.dec to
bootable/bootloader/ edk2/QcomModulePkg/QcomModulePkg.dec

Shared Memory
gEfiSMEMProtocolGuid = { 0xf4e5c7d0, 0xd239, 0x47cb, { 0xaa, 0xcd, 0x7f,
0x66, 0xef, 0x76, 0x32, 0x38 } }
Use EFI_SMEM_PROTOCOL in ABL

include <Protocol/EFISmem.h>

include <smem_type.h>

STATIC UINT8 AccessSmem(UINT32 *Args){
EFI_SMEM_PROTOCOL *smemProtocol;
UINT32 *vendor0;
UINT32 size; EFI_STATUS Status;
Status = gBS->LocateProtocol(&gEfiSMEMProtocolGuid, NULL, (VOID **)
&smemProtocol); if (Status != EFI_SUCCESS){
DEBUG((EFI_D_ERROR, “Error locating the smem protocol\n”)); return
Status;}
status = smem_protocol->SmemGetAddr(SMEM_ID_VENDOR0, &size, (void
**)&vendor0); if(status != EFI_SUCCESS){
DEBUG((EFI_D_ERROR, “SmemGetAddr(SMEM_ID_VENDOR0) returned %d\n”,
status)); return status;}
return Status;}

标签:Status,SMEM,protocol,EFI,abl,xbl,UEFI,images,bootloader
From: https://www.cnblogs.com/yyy8/p/18393668

相关文章

  • (多模态)CoDi:Any-to-Any Generation via Composable Diffusion
    摘要我们提出了可组合扩散(CoDi),这是一种新的生成模型,能够从任何输入模式组合生成任何输出模式组合,如语言、图像、视频或音频。与现有的生成式人工智能系统不同,CoDi可以并行生成多种模式,其输入不限于文本或图像等模式的子集。尽管缺乏许多模式组合的训练数据集,但我们建议在输......
  • 安全:nftables的常用命令(查看规则)
    一,nftables的地址簇和相应的iptables命令行工具nftables的地址簇iptables命令行工具ip  仅匹配IPv4数据包。如果没有指定地址系列,这是默认设置iptablesip6   ip6tablesinet   iptables和ip6tablesarp   arptablesbridge   ebtable......
  • 【Qt笔记】QTableView控件详解
     目录引言 一、定义与架构二、主要功能与特点2.1 显示表格数据2.2编辑表格数据2.3自定义外观和交互2.4数据排序和过滤2.5支持拖放操作2.6自适应大小2.7上下文菜单2.8信号与槽三、常用属性设置3.1设置模型3.2 设置选择模型3.3 隐藏垂直标题3.4 ......
  • 这份 Stable diffusion 提示词攻略,记得收好了!
    大家好,今天给大家分享的是关于Stablediffusion提示词的基础和进阶语法,为什么有必要了解这个呢?首先是提示词对出图效果影响很大,了解提示词的用法有助于我们写出更优秀的提示词;其次就是我们可能会去C站拷贝别人的提示词,虽然直接拷贝过来也能得到不错的效果,但这样只会“知其......
  • PrimeVue DataTable 属性值解析
    primeVueDataTable组件的属性值使用DataTable属性NameTypeDefaultdescriptionvaluenull|any[]null要显示的对象数组。dataKeystring|Functionnull唯一标识数据中的记录的字段名称。rowsnumber0每页显示的行数。firstnumber0要显示的第一行的索引。totalR......
  • 让AI学会打光,从此利好电商(Stable Diffusion进阶篇:Imposing Consistent Light)
    IC-Light的下载安装有两个不同的节点包可以在ComfyUI中安装IC-Light,一个是kijai大佬的节点包:https://github.com/kijai/ComfyUI-IC-Light没有魔法的小伙伴可以扫描下面二维码获取相关整合资料!另一个是huchenlei大佬的节点包:https://github.com/huchenlei/ComfyUI-IC......
  • Stable Diffusion majicMIX_realistic模型的介绍及使用
    一、简介majicMIX_realistic模型是一种能够渲染出具有神秘或幻想色彩的真实场景的AI模型。这个模型的特点是在现实场景的基础上,通过加入一些魔法与奇幻元素来营造出极具画面效果和吸引力的图像。传统意义的现实场景虽然真实,但通常情况下缺乏奇幻性,而majicMIX_realistic模型就是为了......
  • iptables 命令使用帮助总结
    本文为博主原创,转载请注明出处:1.iptables命令帮助参数root@controller1:~#iptables--helpiptablesv1.6.1Usage:iptables-[ACD]chainrule-specification[options]iptables-Ichain[rulenum]rule-specification[options]iptables-Rchainrulen......
  • Java异步编程:CompletableFuture与Future的对比
    Java异步编程:CompletableFuture与Future的对比大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在Java中,异步编程是一种常见的编程范式,用于提高应用程序的响应性和吞吐量。Java提供了多种异步编程工具,其中Future和CompletableFuture是两个重要的接口。......
  • Windows平台体验StableSwarmUI-0.6.4-Beta经验版
    目录StableSwarmUIinstall经验版StableSwarmUI配置后端StableSwarmUI快捷安装脚本StableSwarmUI安装与启动sd_xl_base_1.0模型获取由于网络原因,国内获取ComfyUI以及SD_Xl_base_1.0模型可能非常缓慢。想要丝滑获取,需要魔法或者高效上网。如果没有条件,也有方法,可以从......