我想在AMD Ryzen嵌入式平台上与嵌入式linux的bios进行一些交互。
我认为主要的工具是flashrom,它可以读写闪存芯片。
如果内存中芯片的地址已知,也应该可以使用像dd这样的东西将数据写入闪存rom?
这是查找系统bios的正确方法吗:
root@device:~/bios# grep ROM /proc/iomem
000c0000-000cd3ff : Video ROM
000f0000-000fffff : System ROM
如果我使用flashrom工具查找rom,就会得到以下内容:
root@device:~/bios# flashrom -p in
我已经读到,在启动时,CPU程序计数器寄存器是填充F000。
我以为:
PC registers contain the next instruction address.
This address is send to the address bus and value return to the data bus
地址总线只处理RAM吗?显然,BIOS没有存储在RAM中。
那么F000是如何针对ROM来启动BIOS执行的呢?
我在调用函数时遇到了困难,使用函数指针声明为master.cpp中类内的一个结构的成员:
#include "headers/master.hh"
#include "headers/bus.hh"
#include <memory.h>
#include <stdint.h>
#include <iostream>
int main()
{
int size = 4;
Bus prova;
int su = (prova.BIOS_ROM.*read_ptr)(prova.BIOS_ROM, siz