- 博客(24)
- 收藏
- 关注
原创 硬盘结构-Partition
UEFI为上面每一个partition生成一个controller,如果这个分区属性bit1 为0,则为这个分区控制器安装BlockIO;ReadBlocks函数就可以用来读取块设备,只能按块(扇区)读取设备。例如读取硬盘MBR区域或者GPT硬盘的保护性MBR区域,可以用ReadBlocks函数,LBA=0。设备中的介质号,BlockIo->Media->MediaId。一般找到分区就能BPB判断分区文件格式。读取的字节数,必须是块大小的整数倍。,其数据结构大概如下,都以。可识别的文件系统,如。
2025-03-10 16:07:32
685
原创 ACPI-_PRW
_PRW (Power Resources for Wake)当设备有能力从睡眠状态唤醒系统时,_PRW被用来列举设备所依赖的用于唤醒的电源资源列表。DeepestSleepState:整数,表示在能提供唤醒系统功能情况下,能进入的最深sleep状态EventInfo:支持四种类型GPE,用参数EventInfo来区分1. 当EventInfo是个整数,则这个整数代表了GPE enable register中的bit index,如下面传递的第一个参数为整数0x6D,则代表GPE enable regist
2025-03-05 16:07:34
103
原创 UEFI-获取EDID信息
EDID存储在显示器中的DDC存储器中,当电脑主机与显示器连接后,电脑主机会通过DDC通道读取显示器DDC存储器中的存储的EDID。offset 36h是4组18 bytes的Timing 数据结构,如Pixel clock,Horizontal Addressable Video,Horizontal Blanking等等,这里面数据都需要根据屏实际数据来设置正确,否则会影响屏工作。否则最小为128bytes。这样就找到了EDID数据存储区的起始地址,参考EDID spec,其数据结构如下。
2024-03-22 16:39:27
1326
原创 ACPI-设备配置(device configuration)
PRS: 用一连串字节流来描述设备可能用到的资源,其格式同_CRS Name(_PRS, ResourceTemplate(){_DIS: 采用method禁用设备,当禁用后,设备不会decode任何硬件资源,有时候系统里右键点击设备,可以看到禁用设备就是调用此对象;在ACPI 枚举设备时,OSPM可以用设备配置对象来配置硬件资源,它们可以用name提供当下或者可能的资源需求信息,也能用method来配置信息。
2024-03-22 13:38:01
1797
1
原创 ACPI-ASL Code解析
Definition Block里数据空间为namespace,Name用来声明对象,在namespace创建一个新对象命名为ObjectName,Object理解为其引用的数据。UpdateRule:定义field里面没有被修改的数据如何对待,有Preserve, WriteAsOnes, or WriteAsZeros选项,一般默认Preserve。声明一段可操作区域,支持硬件上多种空间地址访问,如内存空间,IO空间,PCI 配置空间,CMOS,EC等等。RegionName:定义Region名称。
2024-03-15 15:54:30
2213
1
原创 ACPI:软件编程模型
FADT包含BLKs,即ACPI Hardware Register Blocks (PM1a_EVT_BLK, PM1b_EVT_BLK,PM1a_CNT_BLK, PM1b_CNT_BLK, PM2_CNT_BLK, PM_TMR_BLK, GP0_BLK, GP1_BLK.....);这些表格列举了主板上的设备,或者一些没有侦测到的设备,或者电源管理,又或者是系统功能,例如支持的睡眠电源状态,还有电源计划,电池等等,这样一来就允许OSPM控制系统设备。)里面的GUID 来找到RSDP。
2024-03-15 11:33:19
580
1
原创 UEFI-Device Path
例如[PciRoot(0x30)/Pci(0x1,0x0)/Pci(0x0,0x0)/NVMe(0x1,A8-87-D3-FF-51-48-35-7C)/HD(1,GPT,0F1EA76F-F3A8-4ACF-B51A-FEC6966DC65C,0x800,0x32000)]Pci(0x1,0x0):NVMe所在的PCIe root port,Hardware DP,Sub Type:PCI;系统中设备都有一个唯一的路径,路径中的节点称作设备节点,即DP Node,路径由设备节点组成的列表构成。
2024-03-13 15:53:21
659
原创 UEFI Boot Manager
Boot Manager 会尝试先用EFI_SIMPLE_FILE_SYSTEM_PROTOCOL启动,如果fail,会再用EFI_LOAD_FILE_PROTOCOL。当一个设备没有完整的file system,它会加载EFI_LOAD_FILE_PROTOCOL来使boot image具体化,Network device一般用这种模式boot 因为它的boot image 不需要file system。BootNext 定义了下一次启动的第一启动项,它与BootCurrent的数据均为####。
2024-03-13 14:30:21
2219
原创 CPU压力测试指令和工具
3. cpupower idle-info 可以查看到当前支持C state,cpupower idle-set -D 2 来关闭大于2ns 的C status,这样可以让CPU 一直处于C0 状态。4. 利用stress-ng,它是Linux系统下的系统压力测试工具,可位于。stress-ng -c 核数 --timeout 秒数。1. 设置CPU为性能模式,提高CPU工作频率。2.设置CPU为节能模式。
2024-02-28 17:14:21
1454
1
原创 Postman在服务器中常规使用
最近调试redfish功能,需要使用Postman来获取BIOS配置选项,以及通过此工具来远程修改选项,因此总结Postman几个常规使用指令。方框2:输入URL 例如 https://(bmc ip)/redfish/v1/Systems/Self/Bios。方框3:权限,选择basic Auth,右边方框输入BMC server username/password。方框5:Body,一般Get 可能默认为None,如果要修改内容,就要选择Raw,也有选择binary的时候。2. 修改BIOS 配置。
2024-01-05 17:03:41
777
1
原创 PCIE debug
状态机,PCIe设备在退出复位(Cold or Warm Reset)或Hot Reset后,便会进入LTSSM状态的第一个状态:Detect State;3. Link Control Register (Offset 10h)bit 4,如果设定,则disable link,LTSSM to Disable;2. 如果link training 完成,则RP Link Status Register(Offset 12h)bit13 置1;
2023-11-17 15:03:55
606
1
原创 Linux 指令学习
3. 修改 grub gedit /etc/default/grub,在GRUB_CMDLINE_LINUX_DEFAULT 添加与2 一样参数,update-grub,也可以正常进系统。2.cat /proc/cmdline 查看recovery mode(可以进系统) 时boot传递给内核的参数。5. 查看微码包对应微码版本apt-get changelog intel-microcode。4. 查看 intel 微码包 dpkg -l | grep intel。
2023-11-17 14:31:21
118
1
原创 PCIE Capabilities and Error
结合PCIE spec 总结PCIE Capabilities 寻址以及PCIE error report
2023-10-31 13:54:53
569
1
原创 UEFI HII (Human Interface Infrastructure)一些知识点
HII database 涉及到packagelist-》Forms package-》IFR-》Opcode数据结构
2023-05-17 11:21:43
834
1
原创 Handle & Protocol
handle 与 protocol 关系,平常使用的比较多的获取protocol或者handle 的service
2023-03-21 13:57:43
500
EDID EEPROM specification
2024-03-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人