您尚未登录。

楼主 #1 2017-12-04 14:07:59

晕哥
管理员
注册时间: 2017-09-06
已发帖子: 9,342
积分: 9202

使用逻辑分析仪探测全志Allwinner V3s SPI FLASH启动过程

使用逻辑分析仪探测全志Allwinner V3s SPI FLASH启动过程

先看w25q128手册的spi 读数据指令:
QQ20171204143101.png

逻辑分析仪检测V3s内部BROM读spi flash的boot0:
QQ20171204143502.png

BROM启动的SPI外设时钟为6.25Mhz:
QQ20171204144006.png

依次加载spl, u-boot:
QQ20171204151849.png





离线

楼主 #2 2017-12-07 13:56:59

晕哥
管理员
注册时间: 2017-09-06
已发帖子: 9,342
积分: 9202

Re: 使用逻辑分析仪探测全志Allwinner V3s SPI FLASH启动过程

BROM的责任就是依次寻找合法的引导程序,  TF -> SPI NOR -> SPI NAND -> BROM USB
找到之后就加载到内部 32K SRAM
然后把PC指针指向 SRAM

因为iram大小的限制,所以需要多级跳转
如果足够大,就跟单片机一样了,直接跑了
SRAM的造价应该是很昂贵的
速度也最快
IRAM里面可以放向量表,这样也会比DDR 更快一些





离线

#3 2017-12-07 14:00:30

daydayup
会员
注册时间: 2017-10-09
已发帖子: 343
积分: 343

Re: 使用逻辑分析仪探测全志Allwinner V3s SPI FLASH启动过程

晕哥 说:

BROM的责任就是依次寻找合法的引导程序,  TF -> SPI NOR -> SPI NAND -> BROM USB
找到之后就加载到内部 32K SRAM
然后把PC指针指向 SRAM

因为iram大小的限制,所以需要多级跳转
如果足够大,就跟单片机一样了,直接跑了
SRAM的造价应该是很昂贵的
速度也最快
IRAM里面可以放向量表,这样也会比DDR 更快一些

还可以这么玩?
一部分放IRAM, 一部分放 DDR ?

离线

楼主 #4 2017-12-07 14:01:12

晕哥
管理员
注册时间: 2017-09-06
已发帖子: 9,342
积分: 9202

Re: 使用逻辑分析仪探测全志Allwinner V3s SPI FLASH启动过程

是的





离线

#5 2017-12-07 14:02:48

daydayup
会员
注册时间: 2017-10-09
已发帖子: 343
积分: 343

Re: 使用逻辑分析仪探测全志Allwinner V3s SPI FLASH启动过程

那这个,用代码怎么表示?

离线

楼主 #6 2017-12-07 14:03:07

晕哥
管理员
注册时间: 2017-09-06
已发帖子: 9,342
积分: 9202

Re: 使用逻辑分析仪探测全志Allwinner V3s SPI FLASH启动过程

daydayup 说:

那这个,用代码怎么表示?

都可以的,链接脚本很强大,放变量,代码,都行
因为要跳转,所以前32k代码,编写时,需要位置无关
代码,本质就是机器码,copy到iram中,然后pc指过去,就可以了
这段代码,要求位置无关
用相对寻址指令
这段空间,一般做向量表,或者mmu映射表
大部分系统,很少用这块区域
一段小代码,在hacker世界,他们叫payload
利用某个漏洞,植入payload,然后执行payload
这样就能越权了





离线

#7 2017-12-07 14:04:44

daydayup
会员
注册时间: 2017-10-09
已发帖子: 343
积分: 343

Re: 使用逻辑分析仪探测全志Allwinner V3s SPI FLASH启动过程

是说 IRAM ?

离线

楼主 #8 2017-12-07 14:05:17

晕哥
管理员
注册时间: 2017-09-06
已发帖子: 9,342
积分: 9202

Re: 使用逻辑分析仪探测全志Allwinner V3s SPI FLASH启动过程

daydayup 说:

是说 IRAM ?

随便哪里,都可以
ddr里也行
有操作系统后,地址都是虚拟的
只要能执行,就行





离线

#9 2017-12-07 14:05:48

daydayup
会员
注册时间: 2017-10-09
已发帖子: 343
积分: 343

Re: 使用逻辑分析仪探测全志Allwinner V3s SPI FLASH启动过程

晕哥 说:
daydayup 说:

是说 IRAM ?

随便哪里,都可以
ddr里也行
有操作系统后,地址都是虚拟的
只要能执行,就行

修改中断跳转hack ?

离线

楼主 #10 2017-12-07 14:06:34

晕哥
管理员
注册时间: 2017-09-06
已发帖子: 9,342
积分: 9202

Re: 使用逻辑分析仪探测全志Allwinner V3s SPI FLASH启动过程

NDS破解是利用数据异常做的
这个是机器码,其实就是指令 b _vector
换种写法而已
他们后面发现了验证漏洞
就等于发现了irom漏洞





离线

#11 2020-02-15 22:24:42

myxiaonia
会员
注册时间: 2019-06-18
已发帖子: 81
积分: 49.5

Re: 使用逻辑分析仪探测全志Allwinner V3s SPI FLASH启动过程

晕哥 说:

BROM的责任就是依次寻找合法的引导程序,  TF -> SPI NOR -> SPI NAND -> BROM USB
找到之后就加载到内部 32K SRAM
然后把PC指针指向 SRAM

因为iram大小的限制,所以需要多级跳转
如果足够大,就跟单片机一样了,直接跑了
SRAM的造价应该是很昂贵的
速度也最快
IRAM里面可以放向量表,这样也会比DDR 更快一些


晕哥,f1c100s有没有这个iram,越发看不明白了,boot0这个代码是不是就是BROM

参考手册Memory Mapping章节:
Module   Address (It is for Cluster CPU)  Size (byte)
BROM     0x0000 0000---0x0000 7FFF    32K
SRAM A  0x0001 0000---0x0001 9FFF    40K

是不是SRAM A 指代iram,那应该是有40k啊

离线

#12 2020-04-17 10:15:03

ifree64
会员
注册时间: 2019-06-27
已发帖子: 74
积分: 143.5

Re: 使用逻辑分析仪探测全志Allwinner V3s SPI FLASH启动过程

晕哥,uboot-sunxi-with-spl这个文件是不是包含两部分内容,文件前面32k是spl后面是uboot?

离线

楼主 #13 2020-04-17 10:29:39

晕哥
管理员
注册时间: 2017-09-06
已发帖子: 9,342
积分: 9202

Re: 使用逻辑分析仪探测全志Allwinner V3s SPI FLASH启动过程

myxiaonia 说:

f1c100s有没有这个iram,越发看不明白了,boot0这个代码是不是就是BROM

BROM是固化在芯片内部的, boot0 是 处于spi flash/TF卡/eMMC 最前面的程序,一般用来初始化必要的硬件如DRAM等。

ifree64 说:

晕哥,uboot-sunxi-with-spl这个文件是不是包含两部分内容,文件前面32k是spl后面是uboot?

对,前面32k就是传说中的boot0,
全志的SDK里面都叫boot0, 全志的SDK里面boot0是不开源的。





离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn