自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 ubuntu 22.04 server版 虚拟机环境搭建

常规步骤。

2023-04-18 11:51:33 1054 2

原创 浅谈大小端(Endian)与位域

多次从坑中爬出来后对大小端的知识总结

2022-08-11 18:38:14 4038 10

原创 PCI及PCIe基本知识

PCI基本知识,学习参考了《PCI+EXPRESS体系结构导读》一书

2022-08-03 16:46:39 8657

原创 PCI设备与PCI桥的配置空间

PCI设备与PCI桥的配置空间

2022-08-02 15:21:42 3688

原创 Qt无法定位程序输入点_ZdaPvj于动态链接库 Qt5Core.dl Qt5Gui.dll ... 上

本方法参考C:\Qt\Qt5.14.2\5.14.2\mingw73_32\bin\qtenv2.bat脚本文件,其实执行Qt 5.14.2 (MinGW 7.3.0 32-bit)时会默认执行该脚本。备注: 其中C:\Qt\Qt5.14.2\5.14.2\mingw73_32\bin根据使用的编译器来改路径;保存文件create32.bat,然后双击create32.bat文件,便可重新拷贝新的所需库到本路径。

2024-01-20 18:25:45 421

原创 麒麟系统调试

办法:配置/etc/modeprobe.d/xxx.conf文件,定义开机自动加载模块信息;下一次上电还是无驱动,导致不能创建raid。或/etc/modules。

2023-06-10 22:26:25 425

原创 Linux AHCI 驱动(中断部分)

调用trace_scsi_dispatch_cmd_done后,linux系统中mount -t debugfs none /sys/kernel/debug/,便能在/sys/kernel/debug/tracing/events/scsi目录下看到scsi_dispatch_cmd_done。1.一些命令被取消或超时或错误时会调用scsi_eh_scmd_add将错误scsi命令添加到错误命令链表中,并调用scsi_eh_inc_host_failed接口shost->host_failed++;

2023-05-10 19:05:09 1619 8

原创 Linux AHCI驱动

一个AHCI HBA可支持最多32个sata port。

2023-04-28 18:04:25 1361

原创 Linux SATA驱动

SATA规范只规定了FIS结构、Shadow Regs(Command/Control)、SATA Regs(SCR0~15)、命令流程,并未规定SATA控制器如何给软件提供寄存器接口,如软件如何组装FIS、在哪个地址读取SCR0~4。导致不同芯片的sata驱动都不同,所以后面interl出了一个ahci规范,用于规范SATA对上层应用的接口。SATA使用FPDMA(First-party DMA)引擎来允许设备知道从哪里获取正确的DMA数据。

2023-04-26 17:54:31 1377

原创 SATA-AHCI规范学习

Port Multiplier是一种可以在一个控制器上扩展多个SATA设备的技术,它采用4位(bit)宽度的Port Multiplier端口字段,其中控制端口占用一个地址,因此最多能输出15个设备连接----与并行SCSI相当。FIS是SATA协议中用于Host和device之间信息传输的机制,每个FIS的格式都是固定的,并且对应唯一的ID,SATA Spec定义了14类FIS ID。用于容纳AHCI寄存器以及厂商特定的寄存器,即AHCI的寄存器是基于BAR5来偏移的。分PIO mode0-6,速率。

2023-04-25 10:47:10 4034 8

原创 U-Boot 学习

lmb所记录的内存信息最终会传递给kernel。在/include/lmb.h和/lib/lmb.c中有对lmb的接口和定义的具体描述。linux kernel从stext开始启动,整个流程大概就是读取X0(FDT地址)保存到X21中,又将X21保存到__fdt_pointer全局变量中,然后再将__fdt_pointer解析处cmdline数据到boot_command_line全局变量中。在kernel镜像的基础上,加上64Byte的信息提供给uboot使用,定义在include/image.h中。

2023-04-21 18:41:08 1275 5

转载 Linux 中的各种栈:进程栈 线程栈 内核栈 中断栈

2022-09-22 11:48:16 228

原创 基于Linux 5.4.18的nvme驱动学习 - Linux相关概念 (一)

基于Linux 5.4.18的nvme驱动学习 (一)

2022-09-21 15:13:44 2736

原创 PCI总线的中断机制

PCI总线的中断机制

2022-08-05 17:45:40 2209

原创 PCI DMA的Cache一致性

PCI DMA的Cache一致性

2022-08-02 17:40:09 786

原创 PCI配置空间访问机制 及 地址域转换过程

PCI配置空间访问机制 及 地址域转换过程

2022-08-01 15:36:55 635

原创 PCI学习 之 存储器域(CPU域、DRAM域)与PCI总线域

PCI学习 之 存储器域(CPU域、DRAM域)与PCI总线域

2022-08-01 11:43:17 1609

原创 PCI配置空间简介

转自网络,作为自己学习笔记

2022-07-29 14:39:12 1620

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除