小编xHi*_*ire的帖子

使用 u-boot 获取大端 Linux 构建以在 ARM 上启动

I\xe2\x80\x99m 试图为 ARM 制作一个大端的 Linux 发行版。由于我在 Gentoo 上\xe2\x80\x99m,交叉编译再简单不过了。我\xe2\x80\x99已经构建了所有这些,但后来陷入了让它/内核启动的困境。

\n\n

I\xe2\x80\x99m 针对采用 AllWinner A10 CPU 的 Cubieboard。我使用 u-boot 作为引导加载程序。由于 u-boot 不\xe2\x80\x99t 支持大端 ARM,因此我在将控制权传递给内核之前对其进行了修补:

\n\n
diff -Naur u-boot-2016.01-1/arch/arm/lib/bootm.c u-boot-2016.01-2/arch/arm/lib/bootm.c\n--- u-boot-2016.01-1/arch/arm/lib/bootm.c       2016-01-12 15:06:54.000000000 +0100\n+++ u-boot-2016.01-2/arch/arm/lib/bootm.c       2017-07-09 14:13:29.675865446 +0200\n@@ -315,7 +315,16 @@\n                                                          0, machid, r2);\n                } else\n #endif\n+               {\n+                       {\n+                               unsigned long v;\n+                               __asm volatile ("mrc p15, 0, %0, c1, c0, 0\\n\\t"\n+                                               "orr %0, %0, #(1 << 7)\\n\\t" /* Switch to bigendian */\n+                                               "mcr p15, 0, %0, c1, c0, 0" : "=&r" (v));\n+                       }\n+\n …
Run Code Online (Sandbox Code Playgroud)

arm u-boot linux-kernel cubieboard

5
推荐指数
1
解决办法
2160
查看次数

标签 统计

arm ×1

cubieboard ×1

linux-kernel ×1

u-boot ×1