在JZ2440上移植設備樹---下:內核和設備樹移植


https://blog.csdn.net/andrew_111/article/details/80413480

 

本文參考了http://www.cnblogs.com/pengdonglin137/p/6241895.html及韋老師的內核移植視頻

2、內核移植
在www.kernel.org上下載源碼,我這里選取的是linux-4.15.10版本。
解壓后,文件名重命名為linux-4.15.10-jz2440。 cd進入
既然要使用設備樹,我們先看內核中是否已有支持2440的設備樹文件。
cd arch/arm/boot/dts
ls
發現並沒有支持2440的設備數,最接近的只有2416的設備數;
find -name “*defconfig” 發現在
arch/arm/configs 下有
mini2440_defconfig和s3c2410_defconfig兩個接近的配置文件。

2.1 內核編譯
2.1.1 添加設備樹文件
我的思路是內核配置文件選取s3c2410_defconfig,
設備樹復制s3c2416.dtsi為s3c2440.dtsi
復制s3c2416-pinctrl.dtsi為s3c2440-pinctrl.dtsi
復制s3c2416-smdk2416.dts為s3c2440-jz2440.dts
后面遇到問題,具體分析和修改。
介紹一下上面的幾個設備樹文件:

skeleton.dtsi 存放的是一個設備樹必備的一些基本屬性
s3c24xx.dtsi 中存放的是整個s3c24xx系列SoC公共的一些屬性,如中斷控制器、串口、看門狗、RTC、I2C控制器等等
s3c2440-pinctrl.dtsi 存放的是s3c2440這款SoC中GPIO控制器、外部中斷控制器、引腳複用等信息的配置
s3c2440.dtsi 存放的是s3c2440這個SoC跟其他s3c24xx系列不同的一些硬件信息,如clock控制器、串口等等
s3c2440-jz2440.dts 存放的是jz2440的硬件信息
設備樹這樣一層層包含的好處是: 在同名節點中,後出現的屬性會覆蓋前面出現的同名屬性,不同的屬性將來會合併到所隸屬的同名的節點下面。

先修改設備樹的Makefile
vim arch/arm/boot/dts/Makefile

這樣make dtbs的時候就會編譯s3c2440-jz2440.dtb

2.1.2 添加jz2440的板子信息
修改Makefile和Kconfig,並添加jz2440的板子信息,使內核在啟動時能從設備樹文件中解析到的信息匹配到jz2440板子

2.1.2.1 修改arch/arm/mach-s3c24xx/Kconfig
添加如下信息:

這樣的話,在make menuconfig的時候,選擇這個這個配置。選擇了這個配置,CONFIG_CLKSRC_OF/CONFIG_USE_OF/CONFIG_PINCTRL/CONFIG_S3C24XX都會被配置上。

2.1.2.1 修改arch/arm/mach-s3c24xx/Makefile

在menuconfig上選擇了MACH_JZ2440后, 在make uImage的時候會定義CONFIG_MACH_JZ2440宏,這樣就會編譯mach-jz2440-dt.c

2.1.2.1 添加arch/arm/mach-s3c24xx/mach-jz2440-dt.c文件

#include <linux/clocksource.h>
#include <linux/irqchip.h>
#include <linux/serial_s3c.h>
#include <asm/mach/arch.h>
#include <mach/map.h>
#include <plat/cpu.h>
#include <plat/pm.h>
#include "common.h"

static void __init jz2440_dt_map_io(void)
{
s3c24xx_init_io(NULL, 0);
}

static void __init jz2440_dt_machine_init(void)
{
s3c_pm_init();
}

static const char *const jz2440_dt_compat[] __initconst = {
"samsung,s3c2440",
"samsung,jz2440",
NULL
};

DT_MACHINE_START(S3C2440_DT, "Samsung S3C2440 (Flattened Device Tree)")
.dt_compat = jz2440_dt_compat,
.map_io = jz2440_dt_map_io,
.init_irq = irqchip_init,
.init_machine = jz2440_dt_machine_init,
MACHINE_END

如果內核配置make menuconfig中選擇支持設備樹

make menuconfig ---> Boot options ---> Flattened Device Tree support

那么內核在啟動時,不會通過u-boot傳入的machid來找到單板文件;而是通過上面的dt_compat數組中的信息和設備樹中的compatible進行匹配,以此來找到相應單板文件。設備樹中的相關設置如下圖: 

 

2.1.3 內核配置make menuconfig
在執行make menuconfig之前先要確定默認的配置文件。前面已有描述,選取s3c2410_defconfig作為默認配置文件,在內核代碼主目錄下先執行
make ARCH=arm exynos_defconfi
再執行
make ARCH=arm menuconfig 進入配置菜單
ps:前面講過 配置內核支持設備樹,配置內核支持JZ2440單板文件,這里不再重復。

2.1.3.1 配置打開內核調試
在啓動kernel的時候最煩人的是,uboot打印出”Starting kernel …”後,整個系統就沒有任何動靜了,此時,就需要打開內核早期的調試log,方法如下:
爲了能夠儘量看到更多內核啓動早期的log,一定要在內核配置文件中把內核早期的log配置打開:

Kernel hacking --->
[*] Kernel low-level debugging functions (read help!)
Kernel low-level debugging port (Use Samsung S3C UART 0 for low-level debug) --->
[*] Early printk

除了上面的配置,還必須在bootargs中添加一個earlyprintk字符串,否則這些log還是打印不出來,此外,建議再在bootargs中添加一個ignore_loglevel參數,防止有些模塊的log由於loglevel的問題無法輸出log
具體的bootargs參數會在后面給出。

2.1.3.2 配置內核支持DM9000網卡
已經確定JZ2440上有DM90000,我們在內核配置時,先把相應配置選上。

make ARCH=arm menuconfig
[*] Networking support --->
Networking options --->
<*> Packet socket
<*>Unix domain sockets
[*] TCP/IP networking
[*] IP: kernel level autoconfiguration
Device Drivers --->
[*] Network device support --->
[*] Ethernet driver support (NEW) --->
<*> DM9000 support

2.1.3.3 配置內核支持根文件系統類型
如果內核還沒有移植好網卡和存儲設備驅動,可以先嘗試通過內存虛擬文件系統ramdisk先把內核調通,再去支持其他的文件系統類型。關於 ramdisk 的使用可以參考https://blog.csdn.net/u014213012/article/details/51582826
我在這里嘗試使用nfs網絡文件系統,相應內核配置如下:

File systems --->
[*] Network File Systems (NEW) --->
<*> NFS client support
[*] NFS client support for NFS version 3
[*] NFS client support for the NFSv3 ACL protocol extension
[*] Root file system on NFS

bootargs啟動參數設置如下:

bootargs=noinitrd root=/dev/nfs nfsroot=192.168.8.3:/nfs/rootfs rw
clk_ignore_unused console=ttySAC0,115200 init=/linuxrc
ip=192.168.8.4:192.168.8.3:192.168.8.1:255.255.255.0::eth0:off
ignore_loglevel earlyprintk

這里我們通過bootargs告知內核根文件系統為nfs網絡文件系統,並詳細的設置了ip,服務器ip,網關等網絡參數信息,方便內核啟動時直接通過這些參數去掛載nfs網絡文件系統。這里我們直接采用韋老師制作好的文件系統—fs_mini_mdev_new.tar.bz2
將其解壓到linux主機/nfs/rootfs目錄下。
ps:
關於根文件系統的制作可以參考韋老師視頻、華清相關課程和網絡相關資料
關於uboot的環境變量及bootargs設置請參考:
https://blog.csdn.net/dzw19911024/article/details/52334254

2.1.4 內核編譯
配置好內核.config文件后,在內核主目錄下

make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
1
編譯生成zImage。其中的gcc 版本為 gcc-4.6.4,其安裝和添加PATH方法不再贅述。

make dtbs ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
1
編譯設備樹文件,把前面配置過的arch/arm/boot/dts里的dts文件編譯成dtb文件。
cd arch/arm/boot 進入zImage目錄,使用mkimage 工具將zImage制作成uImage

mkimage -A arm -O linux -T kernel -C none -a 0x31000000 -e 0x31000040 -n "jz2440" -d zImage uImage
1
我們先將生成的uImage文件和s3c2440-jz2440.dtb文件放入/tftpboot目錄,使用tftp服務,在uboot啟動時使用tftp服務將內核和設備樹從tftp服務器中加載到內存,然后bootm。具體的bootcmd參數如下:

bootcmd=tftp 31000000 uImage; tftp 32000000 s3c2440-jz2440.dtb; bootm 31000000 - 32000000
1
先不管根文件系統和bootargs,直接啟動板子,看內核啟動運行情況。
結果發現,內核和設備樹加載到內存后,內核無法正常運行;后續就是設備樹的修改工作了;
ps:mkimage 的使用方法參考
https://blog.csdn.net/qq_29350001/article/details/51490415

2.2 修改設備樹
因為前面配置了earlyprintk,串口正常情況下一定會有輸出,這樣我們就可以根據輸出的信息,分析和查找原因,對症下葯進行修改調整,並最終成功掛接到根文件系統,完成移植。

2.2.1 修改設備樹compatible
前面提到過修改s3c2440-jz2440.dts設備樹的compatible,同時也要修改s3c2440.dtsi中的compatible,這里不再重復。

2.2.2 修改串口部分
首先,我們發現串口到最后輸出亂碼:

根據此信息我們大概猜測為串口有兩個問題,1、串口初始化較多,可能是多個串口之間產生了干擾;2、由於我們復制了2416的設備樹文件,其中的信息還沒改成2440。 
打開s3c2440-jz2440.dts文件,將串口1至串口3的設備樹信息先屏蔽掉; 

打開s3c2440.dtsi文件,將串口屬性改為2440,如下: 

2.2.3 DM9000設備樹配置
在s3c2440-jz2440.dts中添加

srom-cs4@20000000 {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
reg = <0x20000000 0x8000000>;
ranges;
ethernet@18000000 {
compatible = "davicom,dm9000";
reg = <0x20000000 0x2 0x20000004 0x2>;
interrupt-parent = <&gpf>;
interrupts = <7 4>;
local-mac-address = [00 00 de ad be ef];
davicom,no-eeprom;
};
};
重新編譯設備樹,並復制到/tftpboot目錄;重啟開發板,不出意外的話就會正常啟動內核並加載根文件系統了:

U-Boot 2013.01 (May 15 2018 - 22:43:15)

CPUID: 32440001
FCLK: 400 MHz
HCLK: 100 MHz
PCLK: 50 MHz
DRAM: 64 MiB
WARNING: Caches not enabled
Flash: 2 MiB
NAND: 256 MiB
In: serial
Out: serial
Err: serial
Net: dm9000
Hit any key to stop autoboot: 0
ERROR: resetting DM9000 -> not responding
dm9000 i/o: 0x20000000, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 08:00:3e:26:0a:5b
could not establish link
Using dm9000 device
TFTP from server 192.168.8.3; our IP address is 192.168.8.4
Filename 'uImage'.
Load address: 0x31000000
Loading: #################################################################
#################################################################
#################################################################
#######################################
816.4 KiB/s
done
Bytes transferred = 3426600 (344928 hex)
dm9000 i/o: 0x20000000, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 08:00:3e:26:0a:5b
could not establish link
Using dm9000 device
TFTP from server 192.168.8.3; our IP address is 192.168.8.4
Filename 's3c2440-jz2440.dtb'.
Load address: 0x32000000
Loading: #
392.6 KiB/s
done
Bytes transferred = 6038 (1796 hex)
## Booting kernel from Legacy Image at 31000000 ...
Image Name: jz2440
Created: 2018-05-19 14:57:09 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3426536 Bytes = 3.3 MiB
Load Address: 31000000
Entry Point: 31000040
Verifying Checksum ... OK
## Flattened Device Tree blob at 32000000
Booting using the fdt blob at 0x32000000
XIP Kernel Image ... OK
OK
Loading Device Tree to 33b23000, end 33b27795 ... OK

Starting kernel ...

Booting Linux on physical CPU 0x0
Linux version 4.15.10 (linux@linux) (gcc version 4.6.4 (crosstool-NG hg+default-2685dfa9de14 - tc0002)) #8 Sat May 19 22:55:44 CST 2018
CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=0000717f
CPU: VIVT data cache, VIVT instruction cache
OF: fdt: Machine model: JZ2440
Memory policy: Data cache writeback
CPU S3C2440A (id 0x32440001)
DT missing boot CPU MPIDR[23:0], fall back to default cpu_logical_map
random: fast init done
Built 1 zonelists, mobility grouping on. Total pages: 16256
Kernel command line: noinitrd root=/dev/nfs nfsroot=192.168.8.3:/nfs/rootfs rw clk_ignore_unused console=ttySAC0,115200 init=/linuxrc ip=192.168.8.4:192.168.8.3:192.168.8.1:255.255.255.0::eth0:off
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 57940K/65536K available (4885K kernel code, 265K rwdata, 1168K rodata, 224K init, 202K bss, 7596K reserved, 0K cma-reserved)
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
vmalloc : 0xc4800000 - 0xff800000 ( 944 MB)
lowmem : 0xc0000000 - 0xc4000000 ( 64 MB)
modules : 0xbf000000 - 0xc0000000 ( 16 MB)
.text : 0x(ptrval) - 0x(ptrval) (4887 kB)
.init : 0x(ptrval) - 0x(ptrval) ( 224 kB)
.data : 0x(ptrval) - 0x(ptrval) ( 266 kB)
.bss : 0x(ptrval) - 0x(ptrval) ( 203 kB)
NR_IRQS: 111
irq: clearing pending status 00000002
Division by zero in kernel.
CPU: 0 PID: 0 Comm: swapper Not tainted 4.15.10 #8
Hardware name: Samsung S3C2440 (Flattened Device Tree)
[<c0111014>] (unwind_backtrace) from [<c010dfd4>] (show_stack+0x10/0x14)
[<c010dfd4>] (show_stack) from [<c05b32d0>] (Ldiv0+0x8/0x10)
[<c05b32d0>] (Ldiv0) from [<c0349ec0>] (samsung_pll6552_recalc_rate+0x54/0x64)
[<c0349ec0>] (samsung_pll6552_recalc_rate) from [<c0345b2c>] (clk_register+0x3bc/0x5e0)
[<c0345b2c>] (clk_register) from [<c0345dc8>] (clk_hw_register+0x8/0x14)
[<c0345dc8>] (clk_hw_register) from [<c0732e68>] (samsung_clk_register_pll+0x2e4/0x3bc)
[<c0732e68>] (samsung_clk_register_pll) from [<c0733674>] (s3c2443_common_clk_init+0x90/0x268)
[<c0733674>] (s3c2443_common_clk_init) from [<c07324c8>] (of_clk_init+0x188/0x1fc)
[<c07324c8>] (of_clk_init) from [<c0721f44>] (time_init+0x28/0x34)
[<c0721f44>] (time_init) from [<c071eaa8>] (start_kernel+0x220/0x394)
[<c071eaa8>] (start_kernel) from [<00000000>] ( (null))
Division by zero in kernel.
CPU: 0 PID: 0 Comm: swapper Not tainted 4.15.10 #8
Hardware name: Samsung S3C2440 (Flattened Device Tree)
[<c0111014>] (unwind_backtrace) from [<c010dfd4>] (show_stack+0x10/0x14)
[<c010dfd4>] (show_stack) from [<c05b32d0>] (Ldiv0+0x8/0x10)
[<c05b32d0>] (Ldiv0) from [<c0349e50>] (samsung_pll6553_recalc_rate+0x4c/0x68)
[<c0349e50>] (samsung_pll6553_recalc_rate) from [<c0345b2c>] (clk_register+0x3bc/0x5e0)
[<c0345b2c>] (clk_register) from [<c0345dc8>] (clk_hw_register+0x8/0x14)
[<c0345dc8>] (clk_hw_register) from [<c0732e68>] (samsung_clk_register_pll+0x2e4/0x3bc)
[<c0732e68>] (samsung_clk_register_pll) from [<c0733674>] (s3c2443_common_clk_init+0x90/0x268)
[<c0733674>] (s3c2443_common_clk_init) from [<c07324c8>] (of_clk_init+0x188/0x1fc)
[<c07324c8>] (of_clk_init) from [<c0721f44>] (time_init+0x28/0x34)
[<c0721f44>] (time_init) from [<c071eaa8>] (start_kernel+0x220/0x394)
[<c071eaa8>] (start_kernel) from [<00000000>] ( (null))
Division by zero in kernel.
CPU: 0 PID: 0 Comm: swapper Not tainted 4.15.10 #8
Hardware name: Samsung S3C2440 (Flattened Device Tree)
[<c0111014>] (unwind_backtrace) from [<c010dfd4>] (show_stack+0x10/0x14)
[<c010dfd4>] (show_stack) from [<c05b32d0>] (Ldiv0+0x8/0x10)
[<c05b32d0>] (Ldiv0) from [<c0349e50>] (samsung_pll6553_recalc_rate+0x4c/0x68)
[<c0349e50>] (samsung_pll6553_recalc_rate) from [<c0343db0>] (clk_recalc+0x44/0x58)
[<c0343db0>] (clk_recalc) from [<c0343ee4>] (__clk_recalc_rates+0x24/0x88)
[<c0343ee4>] (__clk_recalc_rates) from [<c0345b90>] (clk_register+0x420/0x5e0)
[<c0345b90>] (clk_register) from [<c0345dc8>] (clk_hw_register+0x8/0x14)
[<c0345dc8>] (clk_hw_register) from [<c0347eac>] (clk_hw_register_mux_table+0xcc/0x1ac)
[<c0347eac>] (clk_hw_register_mux_table) from [<c0347fd8>] (clk_hw_register_mux+0x4c/0x54)
[<c0347fd8>] (clk_hw_register_mux) from [<c073282c>] (samsung_clk_register_mux+0x60/0xac)
[<c073282c>] (samsung_clk_register_mux) from [<c0733684>] (s3c2443_common_clk_init+0xa0/0x268)
[<c0733684>] (s3c2443_common_clk_init) from [<c07324c8>] (of_clk_init+0x188/0x1fc)
[<c07324c8>] (of_clk_init) from [<c0721f44>] (time_init+0x28/0x34)
[<c0721f44>] (time_init) from [<c071eaa8>] (start_kernel+0x220/0x394)
[<c071eaa8>] (start_kernel) from [<00000000>] ( (null))
Division by zero in kernel.
CPU: 0 PID: 0 Comm: swapper Not tainted 4.15.10 #8
Hardware name: Samsung S3C2440 (Flattened Device Tree)
[<c0111014>] (unwind_backtrace) from [<c010dfd4>] (show_stack+0x10/0x14)
[<c010dfd4>] (show_stack) from [<c05b32d0>] (Ldiv0+0x8/0x10)
[<c05b32d0>] (Ldiv0) from [<c0349ec0>] (samsung_pll6552_recalc_rate+0x54/0x64)
[<c0349ec0>] (samsung_pll6552_recalc_rate) from [<c0343db0>] (clk_recalc+0x44/0x58)
[<c0343db0>] (clk_recalc) from [<c0343ee4>] (__clk_recalc_rates+0x24/0x88)
[<c0343ee4>] (__clk_recalc_rates) from [<c0345b90>] (clk_register+0x420/0x5e0)
[<c0345b90>] (clk_register) from [<c0345dc8>] (clk_hw_register+0x8/0x14)
[<c0345dc8>] (clk_hw_register) from [<c0347eac>] (clk_hw_register_mux_table+0xcc/0x1ac)
[<c0347eac>] (clk_hw_register_mux_table) from [<c0347fd8>] (clk_hw_register_mux+0x4c/0x54)
[<c0347fd8>] (clk_hw_register_mux) from [<c073282c>] (samsung_clk_register_mux+0x60/0xac)
[<c073282c>] (samsung_clk_register_mux) from [<c0733684>] (s3c2443_common_clk_init+0xa0/0x268)
[<c0733684>] (s3c2443_common_clk_init) from [<c07324c8>] (of_clk_init+0x188/0x1fc)
[<c07324c8>] (of_clk_init) from [<c0721f44>] (time_init+0x28/0x34)
[<c0721f44>] (time_init) from [<c071eaa8>] (start_kernel+0x220/0x394)
[<c071eaa8>] (start_kernel) from [<00000000>] ( (null))
Division by zero in kernel.
CPU: 0 PID: 0 Comm: swapper Not tainted 4.15.10 #8
Hardware name: Samsung S3C2440 (Flattened Device Tree)
[<c0111014>] (unwind_backtrace) from [<c010dfd4>] (show_stack+0x10/0x14)
[<c010dfd4>] (show_stack) from [<c05b32d0>] (Ldiv0+0x8/0x10)
[<c05b32d0>] (Ldiv0) from [<c0349ec0>] (samsung_pll6552_recalc_rate+0x54/0x64)
[<c0349ec0>] (samsung_pll6552_recalc_rate) from [<c0343db0>] (clk_recalc+0x44/0x58)
[<c0343db0>] (clk_recalc) from [<c0343ee4>] (__clk_recalc_rates+0x24/0x88)
[<c0343ee4>] (__clk_recalc_rates) from [<c0343f18>] (__clk_recalc_rates+0x58/0x88)
[<c0343f18>] (__clk_recalc_rates) from [<c0345b90>] (clk_register+0x420/0x5e0)
[<c0345b90>] (clk_register) from [<c0345dc8>] (clk_hw_register+0x8/0x14)
[<c0345dc8>] (clk_hw_register) from [<c0346820>] (_register_divider+0xd0/0x114)
[<c0346820>] (_register_divider) from [<c07328dc>] (samsung_clk_register_div+0x64/0xdc)
[<c07328dc>] (samsung_clk_register_div) from [<c0733694>] (s3c2443_common_clk_init+0xb0/0x268)
[<c0733694>] (s3c2443_common_clk_init) from [<c07324c8>] (of_clk_init+0x188/0x1fc)
[<c07324c8>] (of_clk_init) from [<c0721f44>] (time_init+0x28/0x34)
[<c0721f44>] (time_init) from [<c071eaa8>] (start_kernel+0x220/0x394)
[<c071eaa8>] (start_kernel) from [<00000000>] ( (null))
Division by zero in kernel.
CPU: 0 PID: 0 Comm: swapper Not tainted 4.15.10 #8
Hardware name: Samsung S3C2440 (Flattened Device Tree)
[<c0111014>] (unwind_backtrace) from [<c010dfd4>] (show_stack+0x10/0x14)
[<c010dfd4>] (show_stack) from [<c05b32d0>] (Ldiv0+0x8/0x10)
[<c05b32d0>] (Ldiv0) from [<c0349ec0>] (samsung_pll6552_recalc_rate+0x54/0x64)
[<c0349ec0>] (samsung_pll6552_recalc_rate) from [<c0343db0>] (clk_recalc+0x44/0x58)
[<c0343db0>] (clk_recalc) from [<c0343ee4>] (__clk_recalc_rates+0x24/0x88)
[<c0343ee4>] (__clk_recalc_rates) from [<c0343f18>] (__clk_recalc_rates+0x58/0x88)
Division by zero in kernel.
CPU: 0 PID: 0 Comm: swapper Not tainted 4.15.10 #8
Hardware name: Samsung S3C2440 (Flattened Device Tree)
[<c0111014>] (unwind_backtrace) from [<c010dfd4>] (show_stack+0x10/0x14)
[<c010dfd4>] (show_stack) from [<c05b32d0>] (Ldiv0+0x8/0x10)
[<c05b32d0>] (Ldiv0) from [<c015f4b0>] (clockevents_config.part.2+0x18/0x78)
[<c015f4b0>] (clockevents_config.part.2) from [<c015f52c>] (clockevents_config_and_register+0x1c/0x28)
[<c015f52c>] (clockevents_config_and_register) from [<c07388d4>] (_samsung_pwm_clocksource_init+0x17c/0x298)
[<c07388d4>] (_samsung_pwm_clocksource_init) from [<c0738af8>] (samsung_pwm_alloc+0x108/0x134)
[<c0738af8>] (samsung_pwm_alloc) from [<c07386fc>] (timer_probe+0x44/0xa0)
[<c07386fc>] (timer_probe) from [<c071eaa8>] (start_kernel+0x220/0x394)
[<c071eaa8>] (start_kernel) from [<00000000>] ( (null))
------------[ cut here ]------------
WARNING: CPU: 0 PID: 0 at kernel/time/clockevents.c:44 cev_delta2ns+0x140/0x15c
Modules linked in:
CPU: 0 PID: 0 Comm: swapper Not tainted 4.15.10 #8
Hardware name: Samsung S3C2440 (Flattened Device Tree)
[<c0111014>] (unwind_backtrace) from [<c010dfd4>] (show_stack+0x10/0x14)
[<c010dfd4>] (show_stack) from [<c011bad0>] (__warn+0xcc/0xf4)
[<c011bad0>] (__warn) from [<c011bb34>] (warn_slowpath_null+0x3c/0x48)
[<c011bb34>] (warn_slowpath_null) from [<c015f328>] (cev_delta2ns+0x140/0x15c)
[<c015f328>] (cev_delta2ns) from [<c015f4e4>] (clockevents_config.part.2+0x4c/0x78)
[<c015f4e4>] (clockevents_config.part.2) from [<c015f52c>] (clockevents_config_and_register+0x1c/0x28)
[<c015f52c>] (clockevents_config_and_register) from [<c07388d4>] (_samsung_pwm_clocksource_init+0x17c/0x298)
[<c07388d4>] (_samsung_pwm_clocksource_init) from [<c0738af8>] (samsung_pwm_alloc+0x108/0x134)
[<c0738af8>] (samsung_pwm_alloc) from [<c07386fc>] (timer_probe+0x44/0xa0)
[<c07386fc>] (timer_probe) from [<c071eaa8>] (start_kernel+0x220/0x394)
[<c071eaa8>] (start_kernel) from [<00000000>] ( (null))
---[ end trace d70dfa618af44dc3 ]---
Division by zero in kernel.
CPU: 0 PID: 0 Comm: swapper Tainted: G W 4.15.10 #8
Hardware name: Samsung S3C2440 (Flattened Device Tree)
[<c0111014>] (unwind_backtrace) from [<c010dfd4>] (show_stack+0x10/0x14)
[<c010dfd4>] (show_stack) from [<c05b2734>] (Ldiv0_64+0x8/0x18)
[<c05b2734>] (Ldiv0_64) from [<c0158cd8>] (clocks_calc_mult_shift+0x110/0x118)
[<c0158cd8>] (clocks_calc_mult_shift) from [<c0729bf8>] (sched_clock_register+0x54/0x234)
[<c0729bf8>] (sched_clock_register) from [<c073899c>] (_samsung_pwm_clocksource_init+0x244/0x298)
[<c073899c>] (_samsung_pwm_clocksource_init) from [<c0738af8>] (samsung_pwm_alloc+0x108/0x134)
[<c0738af8>] (samsung_pwm_alloc) from [<c07386fc>] (timer_probe+0x44/0xa0)
[<c07386fc>] (timer_probe) from [<c071eaa8>] (start_kernel+0x220/0x394)
[<c071eaa8>] (start_kernel) from [<00000000>] ( (null))
Division by zero in kernel.
CPU: 0 PID: 0 Comm: swapper Tainted: G W 4.15.10 #8
Hardware name: Samsung S3C2440 (Flattened Device Tree)
[<c0111014>] (unwind_backtrace) from [<c010dfd4>] (show_stack+0x10/0x14)
[<c010dfd4>] (show_stack) from [<c05b2734>] (Ldiv0_64+0x8/0x18)
[<c05b2734>] (Ldiv0_64) from [<c0158d9c>] (clocks_calc_max_nsecs+0x28/0x74)
[<c0158d9c>] (clocks_calc_max_nsecs) from [<c0729c34>] (sched_clock_register+0x90/0x234)
[<c0729c34>] (sched_clock_register) from [<c073899c>] (_samsung_pwm_clocksource_init+0x244/0x298)
[<c073899c>] (_samsung_pwm_clocksource_init) from [<c0738af8>] (samsung_pwm_alloc+0x108/0x134)
[<c0738af8>] (samsung_pwm_alloc) from [<c07386fc>] (timer_probe+0x44/0xa0)
[<c07386fc>] (timer_probe) from [<c071eaa8>] (start_kernel+0x220/0x394)
[<c071eaa8>] (start_kernel) from [<00000000>] ( (null))
sched_clock: 16 bits at 0 Hz, resolution 0ns, wraps every 0ns
Division by zero in kernel.
CPU: 0 PID: 0 Comm: swapper Tainted: G W 4.15.10 #8
Hardware name: Samsung S3C2440 (Flattened Device Tree)
[<c0111014>] (unwind_backtrace) from [<c010dfd4>] (show_stack+0x10/0x14)
[<c010dfd4>] (show_stack) from [<c05b2734>] (Ldiv0_64+0x8/0x18)
[<c05b2734>] (Ldiv0_64) from [<c0158d9c>] (clocks_calc_max_nsecs+0x28/0x74)
[<c0158d9c>] (clocks_calc_max_nsecs) from [<c0158f60>] (__clocksource_update_freq_scale+0x178/0x2c0)
[<c0158f60>] (__clocksource_update_freq_scale) from [<c01590b8>] (__clocksource_register_scale+0x10/0xa8)
[<c01590b8>] (__clocksource_register_scale) from [<c0738af8>] (samsung_pwm_alloc+0x108/0x134)
[<c0738af8>] (samsung_pwm_alloc) from [<c07386fc>] (timer_probe+0x44/0xa0)
[<c07386fc>] (timer_probe) from [<c071eaa8>] (start_kernel+0x220/0x394)
[<c071eaa8>] (start_kernel) from [<00000000>] ( (null))
clocksource: samsung_clocksource_timer: mask: 0xffff max_cycles: 0x0, max_idle_ns: 0 ns
Console: colour dummy device 80x30
Calibrating delay loop... 326.86 BogoMIPS (lpj=1634304)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
CPU: Testing write buffer coherency: ok
Setting up static identity map for 0x30108400 - 0x3010847c
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
futex hash table entries: 256 (order: -1, 3072 bytes)
pinctrl core: initialized pinctrl subsystem
NET: Registered protocol family 16
DMA: preallocated 256 KiB pool for atomic coherent allocations
S3C Power Management, Copyright 2004 Simtec Electronics
S3C2440: Initialising architecture
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
Advanced Linux Sound Architecture Driver Initialized.
Division by zero in kernel.
CPU: 0 PID: 1 Comm: swapper Tainted: G W 4.15.10 #8
Hardware name: Samsung S3C2440 (Flattened Device Tree)
[<c0111014>] (unwind_backtrace) from [<c010dfd4>] (show_stack+0x10/0x14)
[<c010dfd4>] (show_stack) from [<c05b32d0>] (Ldiv0+0x8/0x10)
[<c05b32d0>] (Ldiv0) from [<c015588c>] (tk_setup_internals.constprop.3+0xcc/0x278)
[<c015588c>] (tk_setup_internals.constprop.3) from [<c0156128>] (timekeeping_notify+0x7c/0xe8)
[<c0156128>] (timekeeping_notify) from [<c0158a38>] (__clocksource_select+0x98/0xf0)
[<c0158a38>] (__clocksource_select) from [<c07298d0>] (clocksource_done_booting+0x2c/0x44)
[<c07298d0>] (clocksource_done_booting) from [<c0109a78>] (do_one_initcall+0x44/0x170)
[<c0109a78>] (do_one_initcall) from [<c071ed18>] (kernel_init_freeable+0xfc/0x1b8)
[<c071ed18>] (kernel_init_freeable) from [<c05c8aa0>] (kernel_init+0x8/0xec)
[<c05c8aa0>] (kernel_init) from [<c010a840>] (ret_from_fork+0x14/0x34)
clocksource: Switched to clocksource samsung_clocksource_timer
NET: Registered protocol family 2
TCP established hash table entries: 1024 (order: 0, 4096 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 1024 bind 1024)
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
Initialise system trusted keyrings
workingset: timestamp_bits=30 max_order=14 bucket_order=0
jffs2: version 2.2. (NAND) (SUMMARY) 漏 2001-2006 Red Hat, Inc.
romfs: ROMFS MTD (C) 2007 Red Hat, Inc.
Key type asymmetric registered
Asymmetric key parser 'x509' registered
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
io scheduler mq-deadline registered
io scheduler kyber registered
Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
50000000.serial: ttySAC0 at MMIO 0x50000000 (irq = 32, base_baud = 0) is a S3C2440
console [ttySAC0] enabled
lp: driver loaded but no devices found
ppdev: user-space parallel port driver
brd: module loaded
loop: module loaded
eth0: dm9000b at abf2171e,6a51261f IRQ 7 MAC: 00:00:de:ad:be:ef (platform data)
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
ohci-s3c2410: OHCI S3C2410 driver
usbcore: registered new interface driver usbserial_generic
usbserial: USB Serial support registered for generic
usbcore: registered new interface driver ftdi_sio
usbserial: USB Serial support registered for FTDI USB Serial Device
usbcore: registered new interface driver pl2303
usbserial: USB Serial support registered for pl2303
s3c-rtc 57000000.rtc: rtc disabled, re-enabling
rtc rtc0: invalid alarm value: 1900-2-1 0:0:0
s3c-rtc 57000000.rtc: rtc core: registered s3c as rtc0
Division by zero in kernel.
CPU: 0 PID: 1 Comm: swapper Tainted: G W 4.15.10 #8
Hardware name: Samsung S3C2440 (Flattened Device Tree)
[<c0111014>] (unwind_backtrace) from [<c010dfd4>] (show_stack+0x10/0x14)
[<c010dfd4>] (show_stack) from [<c05b32d0>] (Ldiv0+0x8/0x10)
[<c05b32d0>] (Ldiv0) from [<c044d0f4>] (s3c2410wdt_probe+0x134/0x410)
[<c044d0f4>] (s3c2410wdt_probe) from [<c0386b38>] (platform_drv_probe+0x54/0xa4)
[<c0386b38>] (platform_drv_probe) from [<c03854b0>] (driver_probe_device+0x254/0x314)
[<c03854b0>] (driver_probe_device) from [<c0385614>] (__driver_attach+0xa4/0xa8)
[<c0385614>] (__driver_attach) from [<c0383e24>] (bus_for_each_dev+0x5c/0x8c)
[<c0383e24>] (bus_for_each_dev) from [<c0384a74>] (bus_add_driver+0x154/0x1ec)
[<c0384a74>] (bus_add_driver) from [<c0385e70>] (driver_register+0x78/0xf4)
[<c0385e70>] (driver_register) from [<c0109a78>] (do_one_initcall+0x44/0x170)
[<c0109a78>] (do_one_initcall) from [<c071ed18>] (kernel_init_freeable+0xfc/0x1b8)
[<c071ed18>] (kernel_init_freeable) from [<c05c8aa0>] (kernel_init+0x8/0xec)
[<c05c8aa0>] (kernel_init) from [<c010a840>] (ret_from_fork+0x14/0x34)
watchdog: Invalid min and max timeout values, resetting to 0!
Division by zero in kernel.
CPU: 0 PID: 1 Comm: swapper Tainted: G W 4.15.10 #8
Hardware name: Samsung S3C2440 (Flattened Device Tree)
[<c0111014>] (unwind_backtrace) from [<c010dfd4>] (show_stack+0x10/0x14)
[<c010dfd4>] (show_stack) from [<c05b32d0>] (Ldiv0+0x8/0x10)
[<c05b32d0>] (Ldiv0) from [<c044cf6c>] (s3c2410wdt_set_heartbeat+0x78/0xcc)
[<c044cf6c>] (s3c2410wdt_set_heartbeat) from [<c044d11c>] (s3c2410wdt_probe+0x15c/0x410)
[<c044d11c>] (s3c2410wdt_probe) from [<c0386b38>] (platform_drv_probe+0x54/0xa4)
[<c0386b38>] (platform_drv_probe) from [<c03854b0>] (driver_probe_device+0x254/0x314)
[<c03854b0>] (driver_probe_device) from [<c0385614>] (__driver_attach+0xa4/0xa8)
[<c0385614>] (__driver_attach) from [<c0383e24>] (bus_for_each_dev+0x5c/0x8c)
[<c0383e24>] (bus_for_each_dev) from [<c0384a74>] (bus_add_driver+0x154/0x1ec)
[<c0384a74>] (bus_add_driver) from [<c0385e70>] (driver_register+0x78/0xf4)
[<c0385e70>] (driver_register) from [<c0109a78>] (do_one_initcall+0x44/0x170)
[<c0109a78>] (do_one_initcall) from [<c071ed18>] (kernel_init_freeable+0xfc/0x1b8)
[<c071ed18>] (kernel_init_freeable) from [<c05c8aa0>] (kernel_init+0x8/0xec)
[<c05c8aa0>] (kernel_init) from [<c010a840>] (ret_from_fork+0x14/0x34)
s3c2410-wdt 53000000.watchdog: watchdog inactive, reset disabled, irq disabled
NET: Registered protocol family 10
Segment Routing with IPv6
sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
NET: Registered protocol family 17
Loading compiled-in X.509 certificates
s3c-rtc 57000000.rtc: setting system clock to 2000-01-01 10:13:35 UTC (946721615)
dm9000 20000000.ethernet eth0: link down
IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
dm9000 20000000.ethernet eth0: link down
IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
IP-Config: Complete:
device=eth0, hwaddr=00:00:de:ad:be:ef, ipaddr=192.168.8.4, mask=255.255.255.0, gw=192.168.8.1
host=192.168.8.4, domain=, nis-domain=(none)
bootserver=192.168.8.3, rootserver=192.168.8.3, rootpath=
clk: Not disabling unused clocks
ALSA device list:
No soundcards found.
VFS: Mounted root (nfs filesystem) on device 0:10.
Freeing unused kernel memory: 224K
This architecture does not have kernel memory protection.
dm9000 20000000.ethernet eth0: link up, 100Mbps, full-duplex, lpa 0xCDE1

Please press Enter to activate this console.
/ #

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM