更新一下修复方案:
问题发生在u-boot-2018/common/board_f.c文件的reserve_board()函数的memset()进行写内存时;
原512M内存的代码在U-Boot运行会出现错误,是由于opensbi的PMP设置中,0xbfxxxxxx地址没有访问权限,故触发异常错误
支持D1 2G内存的主要patch在opensbi的sunxi_platform.c文件sunxi_pmp_region_info()函数中的PMP设置;
正常运行的opensbi:
MIDELEG : 0x0000000000000222
MEDELEG : 0x000000000000b1ff
PMP0 : 0x0000000040000000-0x000000004001ffff (A)
PMP1 : 0x0000000040000000-0x000000007fffffff (A,R,W,X)
PMP2 : 0x0000000080000000-0x00000000bfffffff (A,R,W,X)
PMP3 : 0x0000000000020000-0x0000000000027fff (A,
异常:
MIDELEG : 0x0000000000000222
MEDELEG : 0x000000000000b1ff
PMP0 : 0x0000000040000000-0x000000004001ffff (A)
PMP1 : 0x0000000040000000-0x000000007fffffff (A,R,W,X)
PMP2 : 0x0000000000000000-0x0000000007ffffff (A,R,W)
PMP3 : 0x0000000009000000-0x000000000901ffff (