如何启动Jetson TK1(arm a15)中的辅助核心

如何启动Jetson TK1(arm a15)中的辅助核心,arm,Arm,我是一名来自中国的学生,我正在尝试将一条大鱼移植到Jetson TK1。 现在我必须让主核心工作 但当我开始处理二次核心时,出现了一些问题 首先,我只知道使用“SEV”指令可以唤醒内核(在WFE或WFI中)。我不知道我还能做什么 最重要的是我不知道如何设置辅助核心的启动地址。 我试图从Jetson TK1的linux代码中找到答案,但没有找到任何设置地址的代码 你能告诉我我该做什么吗?我自己有。谢谢所有关心这个问题的人 在jetson tk1 TRM中,我刚刚发现cpu从重置向量寄存器(在EVP

我是一名来自中国的学生,我正在尝试将一条大鱼移植到Jetson TK1。 现在我必须让主核心工作

但当我开始处理二次核心时,出现了一些问题

首先,我只知道使用“SEV”指令可以唤醒内核(在WFE或WFI中)。我不知道我还能做什么

最重要的是我不知道如何设置辅助核心的启动地址。

我试图从Jetson TK1的linux代码中找到答案,但没有找到任何设置地址的代码


你能告诉我我该做什么吗?

我自己有。谢谢所有关心这个问题的人

在jetson tk1 TRM中,我刚刚发现cpu从重置向量寄存器(在EVP寄存器中)[TRM 15.1.6.2]中获取代码,EVP的描述非常简单。详情如下:

这是:

所以我尝试将启动地址写入0x00000000,但没有效果

最后,我不得不尝试使用u-boot(md 0x0 100)转储内存

我在0x400和0x500中发现了一个有用的值(0x83d8e000,u-boot的加载地址)。。。(从0x400到0x1400)

因此,我尝试将barrelfish的启动地址写入内存(所有字节均为0x400-0x1400),辅助核心工作正常

然后,我试图找到次核心的真实寄存器,它是0x500

顺便说一下,引导辅助核心的代码来自linux


总之,我的英语很差。如果我的话有任何错误,请原谅。

我自己也没有碰过Tegra,但我非常怀疑辅助内核是否在线,是否在引导加载程序中执行WFE循环-它们几乎肯定需要通电并从重置中释放。如果你幸运的话,可能有一些固件你可以打电话来为你做这项工作;如果你运气不好的话,这将需要任何复杂的舞蹈,比如拨动电源控制器等等。通过快速查看主线Linux中的arch/arm/mach-tegra/platsmp.c,我怀疑您可能很不走运……我假设每个核心都有一个单独的重置和启用。但是,如果你看看raspberry pi,例如,他们一次发布了所有版本,早期启动软件必须对它们进行分类。这是一个外部的arm核心的东西,所以它是特定于芯片的,你需要找到芯片文档。我假设辅助内核也像主内核一样从零开始,这应该在arm文档中。