- 博客(37)
- 资源 (14)
- 收藏
- 关注
原创 NV 逆向驱动, pci平台,queue分析
分为以下几步, 和amd比较相似,但是channel部分和硬件关联, 猜测NV在fw做queue的load balance。
2023-09-19 10:50:03
934
原创 GPU-PRT
转载:https://www.anandtech.com/show/5261/amd-radeon-hd-7970-review/6。
2023-08-30 16:04:52
109
原创 Cache bookdoor
A TLB (Translation Lookaside Buffer) is a cache of the translations from virtual memory addresses to physical memory addresses. When a processor changes the virtual-to-physical mapping of an address, it needs to tell the other processors to invalidate that
2023-06-13 10:09:51
80
原创 linux kernel GPU Scheduler . RR算法 FIFO entity, dma-fence, job dependency, vmid
RR的GPU schedule
2023-01-10 09:43:29
266
翻译 DRM vulkan同步(dma fence)机制 Sync Objects
gpu vulkan 同步机制 fence dma-fence , anno file
2023-01-10 09:41:56
831
原创 Graphic’s文档
hi,这是我用百度网盘分享的文件~复制这段内容打开「百度网盘」APP即可获取。链接:https://pan.baidu.com/s/19RBlyfW4XW-NGi75W1CMHQ提取码:bzda
2022-03-31 23:31:11
140
原创 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
4475
原创 intel NUC 11 使用linux系统 的面板headphone 问题
目前5.10的内核估计是只能 加规则sudo vim /etc/udev/rules.d/51-Realtek-Jackdetect.rules{15:51}~ ➭ cat /etc/udev/rules.d/51-Realtek-Jackdetect.rulesACTION=="add", SUBSYSTEM=="sound", ATTRS{chip_name}=="ALC256", ATTR{hints}="jack_detect=false"ACTION=="add", SUBSYSTEM=
2021-10-16 15:52:14
308
原创 mesa 资料
mesa好的帖子https://blogs.igalia.com/itoral/2014/07/29/a-brief-introduction-to-the-linux-graphics-stack/
2021-05-20 16:25:29
202
原创 OpenGL 4.6 comp spec chapter 1-3
文章目录1. Introduction 简介1.1 Formatting of the OpenGL Specification OpenGL规范的格式1.1.1 Formatting of the Compatibility Profile 兼容性配置文件的格式1.1.2 Formatting of Optional Features 可选功能的格式1.2 What is the OpenGL Graphics System? 什么是OpenGL图形系统1.2.1 Programmer’s Vi
2021-05-13 11:37:59
1219
转载 linux 使用set_task 杀死D状态进程
如何杀死D状态进程https://blog.csdn.net/VincentLuo91/article/details/72625446#include <linux/init.h> #include <linux/kernel.h> /*Needed by all modules*/#include <linux/module.h> #include <linux/sched.h> //for_each_process MODULE_LICENS
2021-03-18 10:51:24
561
原创 ww_mutex 一种伤害自己保证资源可靠性的锁
参考链接知乎对mutex知乎对ww_mutexlwn社区解释另外注解内核doc ww_mutex
2021-02-26 09:32:57
1017
原创 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
3216
原创 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
2494
原创 分析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
561
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
1208
原创 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
874
原创 KMALLOC PK VMALLOC
KMALLOC PK VMALLOCkmalloc是基于slab的,所以速度比较快。vmalloc的内部会调用到kmalloc,但是只是分配vm_struct描述符,和分配nr_pages指针数组,这个数组里的每个元素指向vm_struct对应的非连续内存区域的每一个页描述符结构。真正的分页是通过alloc_page一页一页的从buddy system分配。所以物理地址是不连续的,一页一页分配物理地址不一定啥地方了。kmalloc分配的页已经映射好了,而vmalloc分配后一级一级建立页表很是麻烦。
2020-12-15 20:16:29
220
原创 对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
1629
原创 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
604
原创 分析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
1538
原创 分析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
1191
原创 linux,在配置完vim的plantuml-view后,会使用calibre打开html的解决
针对manjaro等系统,在配置完vim的plantuml-view后,使用calibre打开html的解决cd /usr/share/applicationsgrep calibrevim
2019-10-16 16:24:50
372
原创 linux内核drm中 GEM,TTM mmap 机制
http://blog.chinaunix.net/uid-24148050-id-359666.html
2019-08-19 15:59:14
3051
原创 总线地址/物理地址/字扩展和位扩展/io空间内存空间
总线地址/物理地址/字扩展和位扩展/io空间内存空间1 总线地址An address bus is a bus that is used to specify a physical address. When a processor or DMA-enabled device needs to read or write to a memory location, it specifies ...
2019-08-11 21:28:48
1324
原创 使用内核编译外部驱动时加工程头文件
1、自己的Makefile怎么搞?一个模板,不好勿喷(^ — ^ 其实我没学Makefile 都是网上扒来的,大神们莫怪 )MODULE_NAME := force_rmmod#MODCFLAGS:=-O2 -Wall -DMODULE -D__KERNEL__ -DLINUX -std=c99#EXTRA_CFLAGS += $(MODULE_FLAGS) $(CFG_INC) $...
2019-08-10 21:31:40
699
原创 c语言可变长数组带来的好处
#include <stdlib.h>#include <stdio.h>#include <string.h>typedef struct msg_info_s{char name[16];char msg_info[32];}msg_info_t;typedef struct msg_s{int id;char data[0];}msg_...
2019-04-17 17:12:04
1146
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人