kernel 2.6.35.7向S5PV210移植
2024-12-27 来源:cnblogs
ARCH和CROSS_COMPILE配置
不详述,改就对了。
错误1
未出现Uncompressing Linux... done, booting the kernel.。
解压地址应当等于链接地址,否则自解压之后不可运行。
链接的物理地址可以在head.S的开头看到。那么解压缩地址在哪呢?
// 内核运行的虚拟地址 0xC0008000
#define KERNEL_RAM_VADDR (PAGE_OFFSET + TEXT_OFFSET)
// 内核运行的物理地址 0x30008000
#define KERNEL_RAM_PADDR (PHYS_OFFSET + TEXT_OFFSET)
arch/arm/mach-s5pv210/Makefile.boot其中定义了解压缩地址。
# override for SMDKV210
zreladdr-$(CONFIG_MACH_SMDKV210) := 0x30008000
params_phys-$(CONFIG_MACH_SMDKV210) := 0x30000100
改为如上。改完之后,就可以运行解压缩了。
之后再修改内核运行的物理地址(原本PHYS_OFFEST是0x2000_0000)为0x3000_0000
错误2
Unable to handle kernel NULL pointer dereference at virtual address 00000060
Internal error: Oops: 5 [#1] PREEMPT
PC is at dev_driver_string+0xc/0x44
LR is at max8698_pmic_probe+0x150/0x32c
说明在这两个函数出现了问题。考虑到之前uboot移植中,smdkc110使用了电源管理模块,那么这里也可以推测是电源管理模块出现了问题。
解决办法就是在内核配置中去除该模块。直接在MENUCONFIG中搜索MAX8696,关掉就可以。
错误3
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
panic应该是一个比较严重的错误。说白了就是没识别块设备。这里的识别应当就是inand。这里应当是驱动的问题。
MBR往往在SD0扇区。用于描述块设备分区信息。这里不好修改。
错误4
[ 1.130308] dm9000 Ethernet Driver, V1.31
[ 1.133113] ERROR : resetting
[ 1.135700] dm9000 dm9000.0: read wrong id 0x2b2a2928
[ 1.140915] dm9000 dm9000.0: read wrong id 0x2b2a2928
[ 1.145941] dm9000 dm9000.0: read wrong id 0x2b2a2928
[ 1.150963] dm9000 dm9000.0: read wrong id 0x2b2a2928
[ 1.155992] dm9000 dm9000.0: read wrong id 0x2b2a2928
[ 1.161018] dm9000 dm9000.0: read wrong id 0x2b2a2928
[ 1.166041] dm9000 dm9000.0: read wrong id 0x2b2a2928
[ 1.171070] dm9000 dm9000.0: read wrong id 0x2b2a2928
[ 1.176092] dm9000 dm9000.0: wrong id: 0x2b2a2928
[ 1.180774] dm9000 dm9000.0: not found (-19).
mach-smdkc110.c中smdkc110_machine_init硬件初始化存在问题。
smdkc110_devices和smdkc110_dm9000_set()这两个地方是和DM9000有关的,要分别去做移植。
DM9000相关的数据配置在arch/arm/plat-s5p/devs.c中更改
在arch/arm/mach-s5pv210/include/mach/map.h中定义了DM9000的IO基地址,和DM9000接在哪个bank有关。
还有+2改成+4,IRQ_EINT9改成10即可。
- linux内核Kernel3.0.8编译移植到天嵌210
- [kernel 启动流程] (第五章)第一阶段之——临时内核页表的创建
- [kernel 启动流程] (第四章)第一阶段之——dtb的验证
- tiny210V2 Uboot kernel filesystem 烧写和启动
- 使用uboot启动低版本内核卡死在Starting kernel...
- S5pv210 之sate210 android4.0 linux kernel 触摸屏通道选择
- Linux Kernel之flush_cache_all在ARM平台下是如何实现的
- Uncompressing Linux... done, booting the kernel
- 记录tiny6410 使用linux-2.6.28.6内核遇到starting kernel...的问题
- 半年翻三倍!三星2nm良率涨至60%以上:紧追台积电
- 六大全新产品系列推出,MCX A微控制器家族迎来创新
- 意法半导体全新STM32C5系列,重新定义入门级微控制器性能与价值,赋能万千智能设备
- 模组复用与整机重测在SRRC、CCC、CTA/NAL认证中的实践操作指南
- 有源晶振与无源晶振的六大区别详解
- 英飞凌持续巩固全球微控制器市场领导地位
- 使用 Keil Studio for Visual Studio Code开发 STM32 设备
- 从控制到系统:TI利用边缘AI重塑嵌入式MCU的边界
- 蓝牙信道探测技术原理与开发套件实践
- Microchip 推出生产就绪型全栈边缘 AI 解决方案,赋能MCU和MPU实现 智能实时决策
- LoRa、LoRaWAN、NB-IoT与4G DTU技术对比及工业无线方案选型分析




