AMDGPU内核驱动分析
文章平均质量分 64
TheMoonRiver
流水线 流水线
展开
-
amdgpu gang submit
amdgpu gang submit原创 2024-01-29 11:10:35 · 125 阅读 · 0 评论 -
amdgpu_fence_emit 的原罪-- 完成fence
amdgpu_fence_emit , gfx的amdgpu dma-fence原创 2023-02-01 16:23:19 · 402 阅读 · 0 评论 -
linux kernel GPU Scheduler . RR算法 FIFO entity, dma-fence, job dependency, vmid
RR的GPU schedule原创 2023-01-10 09:43:29 · 250 阅读 · 0 评论 -
DRM vulkan同步(dma fence)机制 Sync Objects
gpu vulkan 同步机制 fence dma-fence , anno file翻译 2023-01-10 09:41:56 · 734 阅读 · 0 评论 -
amdgpu kfd TTM USERPTR
amdgpu kfd TTM USERPTR原创 2022-07-01 11:29:37 · 837 阅读 · 2 评论 -
amdgpu kfd TTM create GTT
AMDGPU kfd TTM 创建 GTT原创 2022-07-01 10:57:36 · 1320 阅读 · 0 评论 -
linux内核drm中 GEM,TTM mmap 机制
http://blog.chinaunix.net/uid-24148050-id-359666.html原创 2019-08-19 15:59:14 · 2797 阅读 · 0 评论 -
doorbell机制
在学习中断相关的知识时,查看了Wikipedia上的解释https://en.wikipedia.org/wiki/InterruptIn a push button analogy applied to computer systems, the term doorbell or doorbell interrupt is often used to describe a mechanism whereby a software system can signal or notify a comput原创 2021-11-09 10:14:38 · 4082 阅读 · 0 评论 -
ww_mutex 一种伤害自己保证资源可靠性的锁
参考链接知乎对mutex知乎对ww_mutexlwn社区解释另外注解内核doc ww_mutex原创 2021-02-26 09:32:57 · 914 阅读 · 0 评论 -
CEA-861-D infoframe
1. infoframe是什么?Various types of auxiliary data can be carried from the Source to the DTV Monitor using InfoFrames. Thissection describes the InfoFrames that have been defined so far将source端的auxiliary信息通过接口发送到sink端。sink端应通过CEA扩展在其EDID中包括与接口相关的(例如HDMI)V原创 2021-02-19 15:10:04 · 2890 阅读 · 0 评论 -
CEA-861-D 术语定义
Active Format Description (AFD)—A data structure that describes what portion of the picture actuallycontains useful information (i.e., letterbox and sidebars [bars] are not considered useful information). It isstandardized in DVB, and is partially adopt.原创 2021-02-19 11:24:13 · 2361 阅读 · 0 评论 -
分析amdgpu display 的 irq service
分析irq servicedal: Data Access Layer 数据访问层在irq_service中的irq_service_interface.h头文件中可以看出,irq_service是向外提供中断源操作函数函数,在内部实现寄存器操作在irq_service.h又知道这个头文件是让client进行数据注册以上,我们就可以了解到。irq_service想为了以后实现一个中间层,抽象出后续寄存器操作。中断的操作,其主要分dal_irq_service_set,dal_i原创 2021-01-21 10:00:18 · 509 阅读 · 2 评论 -
VGA switcheroo VGA仲裁器
文章目录VGA SwitcherooModes of Use“使用方式Manual switching and manual power control手动开关和手动电源控制Driver power controlAPIPublic functionsPublic structuresPublic constantsPrivate structuresHandlersapple-gmux HandlerGraphics muxPower controlBacklight controlPublic func原创 2021-01-13 16:03:39 · 1105 阅读 · 0 评论 -
linux内核GPU驱动
atomic的实现原创 2021-01-13 15:59:23 · 673 阅读 · 0 评论 -
AMDGPU内核驱动的pageflip实现
amd使用状态机维护了pageflip的三个状态。AMDGPU_FLIP_NONE当前工作队列为空AMDGPU_FLIP_SUBMITTED当前队列运转, 提交了任务AMDGPU_FLIP_PENDING当前工作队列正在运转1. 通过libdrm从上到下查看代码流程test_page_fliplibdrm通过drmModePageFlip(DRM_IOCTL_MODE_PAGE_FLIP)发pageflip通过select等待event重复2. 内核驱动运转模式主要分原创 2020-12-29 11:23:35 · 825 阅读 · 0 评论 -
对ip blocks的理解
case CHIP_POLARIS10:case CHIP_POLARIS11:case CHIP_POLARIS12:case CHIP_VEGAM:这系列的ip_blocks注册的有: amdgpu_device_ip_block_add(adev, &vi_common_ip_block); amdgpu_device_ip_block_add(adev, &gmc_v8_1_ip_block); amdgpu_device_ip_bloc原创 2020-09-01 11:58:05 · 1577 阅读 · 0 评论 -
Amdgpu device ip early init
ip的意思是 Intellectual Property , 是知识产权,可以理解成不同的架构有不同的设计方式.所以抽象出来,通过宏去访问.在初始化时,按照asic的形式注册(在radeon的代码中是用的asic. 猜测全称是application specific integrated circuit, 目的是给不同框架使用对应api.)我们以CHIP_POLARIS10进行分析, POLARISI10还属于VEGA之前的架构,分析起来没那么累在函数入口,POLARISI10的family设置成AMD原创 2020-09-01 11:54:34 · 578 阅读 · 0 评论 -
分析AMDGPU DCE系列(POLARIYS10)驱动初始化(二. load)
这里的load本意就是将设备hw初始化.先做admgpu实例化,再amdgpu_device_init对应CHIP初始化.接着做了amdgpu_acpi_init,主要需要理解的是amdgpu_device_ini值得注意的是,到现在flags还是pci注册时传下来的,没发生变化实例化adev.amdgpu_device_init这里主要有几点:adev->flags = flags;保存了设备初始化的flagsadev->asic_type = flags & AMD.原创 2020-09-01 11:40:16 · 1484 阅读 · 0 评论 -
分析AMDGPU DCE系列(POLARIYS10)驱动初始化(一. probe)
1. 故事从从PCI初始化说起关于drm_driver和drm_device是对drm设备的抽象,我们就不在这赘述了.有兴趣的,可以去内核doc中学习drm_device具体是什么.h2. PCI/PCIE的初始工作目前市面上使用的设备基本上都是PCI的,较少的设备还是使用的platform(估计是上古神兽了).那PCI是怎么初始化的就不在本文赘述,感兴趣的同学可以去内核中driver/pci文件中看一下TIP:arch下边会有对pci扫描的过程,可以结合起来,容易理解在amdgpu的初始化时候a原创 2020-09-01 11:18:52 · 1147 阅读 · 0 评论