今早,一位同行通过微信发问:“幽兰的cpu支持arm ptm吗,就是那个类似于intel pt的功能。”
我当时正在忙,便做了一个简单回复:“用的rk3588,你自己查一下吧。”
对方回复了一个:行吧,加上一个捂脸的表情。
这个捂脸表情内涵丰富,多少带着点不满意。但对于这样的提问,如果去问苹果(Mac Book),问华为,问联想,问戴尔,我想多半也不会收到明确的回复。因为这是一个很深层的特征,是芯片内部的一个小众功能,是大多数人没听过的功能。即使对于专业的软件工程师或者硬件工程师,大多数人也是不知道的。
再退一步,这个技术源自ARM,但即使是问ARM的工程师,他们中的多数人也可能摇头。
再再退一步,这个技术应该出自某几个ARM的架构师以及工程师,即使是问他们,他们也可能会摇头,因为虽然他们亲自参加过这个技术的研发,但他们也未必清楚这个技术到底用在了哪一款笔记本,或者哪一款芯片上了。
ROM表里的报告
那么这个问题,应该问谁呢?
最快的方法是问“硬件”它自己。比如,使用挥码枪连接上幽兰后,开启NDB调试,输入!dap info,便得到一份详细而且精确的报告。
[ndb]!dap info
AP ID register 0x24770002
Type is MEM-AP APB2 or APB3
MEM-AP BASE 0x80000003
Valid ROM table present
Component base address 0x80000000
Peripheral ID 0x0000080000
Designer is 0x000, <invalid>
Part is 0x000, Unrecognized
Component class is 0x1, ROM table
MEMTYPE system memory not present: dedicated debug bus
ROMTABLE[0x0] = 0x01000003
Component base address 0x81000000
Peripheral ID 0x04007bb4e3
Designer is 0x23b, ARM Ltd
Part is 0x4e3, Unrecognized
Component class is 0x9, CoreSight component
Type is 0x00, Miscellaneous, other
Dev Arch is 0x47700af7, ARM Ltd "CoreSight ROM architecture" rev.0
Type is ROM table
MEMTYPE system memory not present: dedicated debug bus
[L01] ROMTABLE[0x0] = 0x00001006
Component not present
[L01] ROMTABLE[0x4] = 0x00002006
Component not present
[L01] ROMTABLE[0x8] = 0x00004003
Component base address 0x81004000
Peripheral ID 0x04003bbd05
Designer is 0x23b, ARM Ltd
Part is 0xd05, Unrecognized
Component class is 0x9, CoreSight component
Type is 0x15, Debug Logic, Processor
Dev Arch is 0x47708a15, ARM Ltd "Processor debug architecture (v8.2-A)" rev.0
[L01] ROMTABLE[0xc] = 0x00005003
Component base address 0x81005000
Peripheral ID 0x04003bbd05
Designer is 0x23b, ARM Ltd
Part is 0xd05, Unrecognized
Component class is 0x9, CoreSight component
Type is 0x15, Debug Logic, Processor
Dev Arch is 0x47708a15, ARM Ltd "Processor debug architecture (v8.2-A)" rev.0
[L01] ROMTABLE[0x10] = 0x00006003
Component base address 0x81006000
Peripheral ID 0x04003bbd05
Designer is 0x23b, ARM Ltd
Part is 0xd05, Unrecognized
Component class is 0x9, CoreSight component
Type is 0x15, Debug Logic, Processor
Dev Arch is 0x47708a15, ARM Ltd "Processor debug architecture (v8.2-A)" rev.0
[L01] ROMTABLE[0x14] = 0x00007003
Component base address 0x81007000
Peripheral ID 0x04003bbd05
Designer is 0x23b, ARM Ltd
Part is 0xd05, Unrecognized
Component class is 0x9, CoreSight component
Type is 0x15, Debug Logic, Processor
Dev Arch is 0x47708a15, ARM Ltd "Processor debug architecture (v8.2-A)" rev.0
[L01] ROMTABLE[0x18] = 0x00008002
Component not present
[L01] ROMTABLE[0x1c] = 0x00009002
Component not present
[L01] ROMTABLE[0x20] = 0x0000a002
Component not present
[L01] ROMTABLE[0x24] = 0x0000b002
Component not present
[L01] ROMTABLE[0x28] = 0x0000c003
Component base address 0x8100c000
Peripheral ID 0x04003bbd05
Designer is 0x23b, ARM Ltd
Part is 0xd05, Unrecognized
Component class is 0x9, CoreSight component
Type is 0x16, Performance Monitor, Processor
Dev Arch is 0x47702a16, ARM Ltd "Processor Performance Monitor (PMU) architecture" rev.0
[L01] ROMTABLE[0x2c] = 0x0000d003
Component base address 0x8100d000
Peripheral ID 0x04003bbd05
Designer is 0x23b, ARM Ltd
Part is 0xd05, Unrecognized
Component class is 0x9, CoreSight component
Type is 0x16, Performance Monitor, Processor
Dev Arch is 0x47702a16, ARM Ltd "Processor Performance Monitor (PMU) architecture" rev.0
[L01] ROMTABLE[0x30] = 0x0000e003
Component base address 0x8100e000
Peripheral ID 0x04003bbd05
Designer is 0x23b, ARM Ltd
Part is 0xd05, Unrecognized
Component class is 0x9, CoreSight component
Type is 0x16, Performance Monitor, Processor
Dev Arch is 0x47702a16, ARM Ltd "Processor Performance Monitor (PMU) architecture" rev.0
[L01] ROMTABLE[0x34] = 0x0000f003
Component base address 0x8100f000
Peripheral ID 0x04003bbd05
Designer is 0x23b, ARM Ltd
Part is 0xd05, Unrecognized