昨天一天課沒來得及更新,今天繼續。。。
首先我找到了2.6.28/arch/arm/plat-s3c24xx/decs.c這個文件。照着歷程發現在dm9000這個函數中缺少一句話EXPORT_SYMBOL(s3c_device_dm9000);可能是這個沒有執行才導致網卡不好使吧,其他設備都有EXPORT_SYMBOL這樣的語句,唯獨dm9000沒有這個沒道理的,加之。
仔細查看才發現原來,在這個平臺下是沒有實時時鐘的驅動的。用不用添加呢。以後再說吧。我現在的目的是讓他能夠掛載。
在平臺上加入&s3c_device_dm9000
[root@WEB188 linux-2.6.33]# vi arch/arm/mach-s3c2410/include/mach/map.h
新增
/* DM9000 */
#define S3C24XX_PA_DM9000 0x20000300
#define S3C24XX_VA_DM9000 0xE0000000
(如果無法發現網卡,請進行操作:)修改arch/arm/mach-s3c2410/mach-smdk2410.c在smdk2410_devices增加以下行
&s3c_device_dm9000,
另外在static struct map_desc smdk2410_iodesc[] __initdata增加以下內容
[0] = {
.virtual = (unsigned long)S3C24XX_VA_DM9000,
.pfn = __phys_to_pfn(S3C24XX_PA_DM9000),
.length = SZ_1M,
.type = MT_DEVICE,
},
沒什麼要改的了,make zImage
接下來我要嘗試一下我linux平臺下的DNW,這項工作應該儘早脫離windows平臺。OK,DNW好使來是下載下載成功
NAND ID is 0xecda
Set boot params = root=/dev/mtdblock3 init=/linuxrc load_ramdisk=0 console=ttyS
Load Kernel...
Undefined instruction exception!!!
又出現新的錯誤了,還是得繼續找錯,先寫到着
糟糕。我最不期盼的事情發生了,我將原來的zImage燒進去,發現了和新的相同的錯誤。這次比較嚴峻,應該是bootloader出現問題了。一直沒有接觸bootloader因爲板子剛買回來的時候我在家,沒趕上看老師怎麼弄bootloader,準備花點時間研究了