[tiny4412][kernel]tiny4412 Linux4.4 SDMMC移植

硬件:
    核心板  : Tiny4412-1306-Schematic
    底板    : Tiny4412SDK-1308(没有micro USB)其他都一样

参考博客:https://www.cnblogs.com/pengdonglin137/p/5159032.html

在此感谢前辈分享。

代码已上传至github上管理。https://github.com/Jason543716996/tiny4412.git

启动log:

[    2.218605] s3c-sdhci 12530000.sdhci: clock source 2: mmc_busclk.2 (100000000 Hz)
[    2.230745] s3c-sdhci 12530000.sdhci: No vqmmc regulator found
[    2.265442] mmc0: SDHCI controller on samsung-hsmmc [12530000.sdhci] using ADMA
[    2.518999] mmc0: new high speed SDHC card at address aaaa
[    2.519718] mmcblk0: mmc0:aaaa SS08G 7.40 GiB 
[    2.521701]  mmcblk0: p1 p2

查看设备文件:

[root@tiny4412 ]# ls /dev/mmc*
/dev/mmcblk0    /dev/mmcblk0p1  /dev/mmcblk0p2


 

尝试通过SDMMC启动,设置环境变量

TINY4412 # set bootargs "root=/dev/mmcblk0p2 console=ttySAC0,115200"
TINY4412 # save
Saving Environment to SMDK bootable device...
done
 

[    0.157780] usbcore: registered new interface driver usbfs
[    0.157854] usbcore: registered new interface driver hub
[    0.157933] usbcore: registered new device driver usb
[    0.159120] Advanced Linux Sound Architecture Driver Initialized.
[    0.160192] clocksource: Switched to clocksource mct-frc
[    0.169772] missing cooling_device property
[    0.169781] failed to build thermal zone cpu-thermal: -2
[    0.169878] NET: Registered protocol family 2
[    0.170263] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
[    0.170323] TCP bind hash table entries: 8192 (order: 5, 163840 bytes)
[    0.170439] TCP: Hash tables configured (established 8192 bind 8192)
[    0.170512] UDP hash table entries: 512 (order: 2, 24576 bytes)
[    0.170539] UDP-Lite hash table entries: 512 (order: 2, 24576 bytes)
[    0.170673] NET: Registered protocol family 1
[    0.170885] RPC: Registered named UNIX socket transport module.
[    0.170892] RPC: Registered udp transport module.
[    0.170897] RPC: Registered tcp transport module.
[    0.170902] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.172276] futex hash table entries: 1024 (order: 4, 65536 bytes)
[    0.181703] romfs: ROMFS MTD (C) 2007 Red Hat, Inc.
[    0.182357] bounce: pool size: 64 pages
[    0.182369] io scheduler noop registered
[    0.182378] io scheduler deadline registered
[    0.182546] io scheduler cfq registered (default)
[    0.183664] 125b0000.exynos-usbphy supply vbus not found, using dummy regulator
[    0.188049] dma-pl330 12680000.pdma: Loaded driver for PL330 DMAC-141330
[    0.188059] dma-pl330 12680000.pdma: 	DBUFF-32x4bytes Num_Chans-8 Num_Peri-32 Num_Events-32
[    0.191133] dma-pl330 12690000.pdma: Loaded driver for PL330 DMAC-141330
[    0.191143] dma-pl330 12690000.pdma: 	DBUFF-32x4bytes Num_Chans-8 Num_Peri-32 Num_Events-32
[    0.192042] dma-pl330 12850000.mdma: Loaded driver for PL330 DMAC-141330
[    0.192051] dma-pl330 12850000.mdma: 	DBUFF-64x8bytes Num_Chans-8 Num_Peri-1 Num_Events-32
[    0.252055] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    0.253362] 13800000.serial: ttySAC0 at MMIO 0x13800000 (irq = 47, base_baud = 0) is a S3C6400/10
[    0.871626] console [ttySAC0] enabled
[    0.875601] 13810000.serial: ttySAC1 at MMIO 0x13810000 (irq = 48, base_baud = 0) is a S3C6400/10
[    0.884392] 13820000.serial: ttySAC2 at MMIO 0x13820000 (irq = 49, base_baud = 0) is a S3C6400/10
[    0.893251] 13830000.serial: ttySAC3 at MMIO 0x13830000 (irq = 50, base_baud = 0) is a S3C6400/10
[    0.902878] [drm] Initialized drm 1.1.0 20060810
[    0.916799] brd: module loaded
[    0.921771] loop: module loaded
[    0.922648] usbcore: registered new interface driver r8152
[    0.922778] usbcore: registered new interface driver asix
[    0.923486] usbcore: registered new interface driver ax88179_178a
[    0.929576] usbcore: registered new interface driver cdc_ether
[    0.935393] usbcore: registered new interface driver dm9601
[    0.940962] usbcore: registered new interface driver smsc75xx
[    0.946687] usbcore: registered new interface driver smsc95xx
[    0.952398] usbcore: registered new interface driver net1080
[    0.958040] usbcore: registered new interface driver cdc_subset
[    0.963941] usbcore: registered new interface driver zaurus
[    0.969530] usbcore: registered new interface driver cdc_ncm
[    0.975537] 12480000.hsotg supply vusb_d not found, using dummy regulator
[    0.981880] 12480000.hsotg supply vusb_a not found, using dummy regulator
[    1.315233] dwc2 12480000.hsotg: EPs: 16, dedicated fifos, 7808 entries in SPRAM
[    1.875789] dwc2 12480000.hsotg: DWC OTG Controller
[    1.875861] dwc2 12480000.hsotg: new USB bus registered, assigned bus number 1
[    1.875945] dwc2 12480000.hsotg: irq 45, io mem 0x00000000
[    1.876098] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    1.877793] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.885019] usb usb1: Product: DWC OTG Controller
[    1.889696] usb usb1: Manufacturer: Linux 4.4.0-g58d0198-dirty dwc2_hsotg
[    1.896466] usb usb1: SerialNumber: 12480000.hsotg
[    1.901752] hub 1-0:1.0: USB hub found
[    1.904978] hub 1-0:1.0: 1 port detected
[    1.909400] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.915396] ehci-exynos: EHCI EXYNOS driver
[    1.919997] exynos-ehci 12580000.ehci: EHCI Host Controller
[    1.925125] exynos-ehci 12580000.ehci: new USB bus registered, assigned bus number 2
[    1.932973] exynos-ehci 12580000.ehci: irq 46, io mem 0x12580000
[    1.945217] exynos-ehci 12580000.ehci: USB 2.0 started, EHCI 1.00
[    1.945370] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[    1.951674] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    1.958876] usb usb2: Product: EHCI Host Controller
[    1.963736] usb usb2: Manufacturer: Linux 4.4.0-g58d0198-dirty ehci_hcd
[    1.970332] usb usb2: SerialNumber: 12580000.ehci
[    1.975466] hub 2-0:1.0: USB hub found
[    1.978760] hub 2-0:1.0: 3 ports detected
[    1.983226] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    1.988920] ohci-exynos: OHCI EXYNOS driver
[    1.993198] exynos-ohci 12590000.ohci: USB Host Controller
[    1.998558] exynos-ohci 12590000.ohci: new USB bus registered, assigned bus number 3
[    2.006413] exynos-ohci 12590000.ohci: irq 46, io mem 0x12590000
[    2.069328] usb usb3: New USB device found, idVendor=1d6b, idProduct=0001
[    2.069394] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.069461] usb usb3: Product: USB Host Controller
[    2.069508] usb usb3: Manufacturer: Linux 4.4.0-g58d0198-dirty ohci_hcd
[    2.072385] usb usb3: SerialNumber: 12590000.ohci
[    2.077506] hub 3-0:1.0: USB hub found
[    2.080886] hub 3-0:1.0: 3 ports detected
[    2.085539] usbcore: registered new interface driver usb-storage
[    2.091133] usb4640 usb-hub: switched to HUB mode
[    2.095474] usb4640 usb-hub: usb4640_probe: probed in hub mode
[    2.101429] using random self ethernet address
[    2.105717] using random host ethernet address
[    2.110605] usb0: HOST MAC f2:06:91:0d:08:28
[    2.114415] usb0: MAC 86:e6:69:2b:cf:f5
[    2.118225] using random self ethernet address
[    2.122643] using random host ethernet address
[    2.127098] g_ether gadget: Ethernet Gadget, version: Memorial Day 2008
[    2.133665] g_ether gadget: g_ether ready
[    2.137805] dwc2 12480000.hsotg: dwc2_hsotg_init_fifo: timeout flushing fifos (GRSTCTL=80000430)
[    2.148532] dwc2 12480000.hsotg: Failed to get CSftRst asserted
[    2.152327] dwc2 12480000.hsotg: bound driver g_ether
[    2.159478] dwc2 12480000.hsotg: Failed to get CSftRst asserted
[    2.163599] mousedev: PS/2 mouse device common for all mice
[    2.169582] s3c-rtc 10070000.rtc: failed to find rtc source clock
[    2.174912] s3c-rtc: probe of 10070000.rtc failed with error -2
[    2.181236] i2c /dev entries driver
[    2.186499] device-mapper: ioctl: 4.34.0-ioctl (2015-10-28) initialised: [email protected]
[    2.193520] sdhci: Secure Digital Host Controller Interface driver
[    2.198852] sdhci: Copyright(c) Pierre Ossman
[    2.203466] s3c-sdhci 12530000.sdhci: clock source 2: mmc_busclk.2 (100000000 Hz)
[    2.210716] s3c-sdhci 12530000.sdhci: Got CD GPIO
[    2.215606] s3c-sdhci 12530000.sdhci: No vqmmc regulator found
[    2.250308] mmc0: SDHCI controller on samsung-hsmmc [12530000.sdhci] using ADMA
[    2.250495] Synopsys Designware Multimedia Card Interface Driver
[    2.252013] usbcore: registered new interface driver usbhid
[    2.252067] usbhid: USB HID core driver
[    2.254573] NET: Registered protocol family 10
[    2.260691] sit: IPv6 over IPv4 tunneling driver
[    2.261178] NET: Registered protocol family 17
[    2.264136] NET: Registered protocol family 15
[    2.268718] Registering SWP/SWPB emulation handler
[    2.274262] hctosys: unable to open rtc device (rtc0)
[    2.290252] usb 2-1: new high-speed USB device number 2 using exynos-ehci
[    2.290436] ALSA device list:
[    2.290468]   No soundcards found.
[    2.292201] VFS: Cannot open root device "mmcblk0p2" or unknown-block(0,0): error -6
[    2.299257] Please append a correct "root=" boot option; here are the available partitions:
[    2.307573] 0100            8192 ram0  (driver?)
[    2.312127] 0101            8192 ram1  (driver?)
[    2.316727] 0102            8192 ram2  (driver?)
[    2.321332] 0103            8192 ram3  (driver?)
[    2.325951] 0104            8192 ram4  (driver?)
[    2.330548] 0105            8192 ram5  (driver?)
[    2.335131] 0106            8192 ram6  (driver?)
[    2.339732] 0107            8192 ram7  (driver?)
[    2.344332] 0108            8192 ram8  (driver?)
[    2.348933] 0109            8192 ram9  (driver?)
[    2.353533] 010a            8192 ram10  (driver?)
[    2.358220] 010b                     8192 ram13  (driver?)
[    2.372282] 010e            8192 ram14  (driver?)
[    2.376969] 010f            8192 ram15  (driver?)
[    2.381660] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[    2.389903] CPU: 2 d_backtrace) from [<c0012e08>] (show_stack+0x10/0x14)
[    2.410832] [<c0012e08>] (show_stack) from [<c01f6bd8>] (dump_stack+0x80/0xc0)
[    2.418033] [<c01f6bd8>] (dump_stack) from [<c0097380>] (panic+0xa0/0x210)
[    2.424893] [<c0097380>] (panic) from [<c07991a0>] (mount_block_root+0x19c/0x238)
[    2.432352] [<c07991a0>] (mount_block_root) from [<c0799448>] (mount_root+0x120/0x128)
[    2.440250] [<c0799448>] (mount_root) from [<c07995e0>] (prepare_namespace+0x190/0x1d8)
[    2.448236] [<c07995e0>] (prepare_namespace) from [<c0798e60>] (kernel_init_freeable+0x1e8/0x1f8)
[    2.457092] [<c0798e60>] (kernel_init_freeable) from [<c056892c>] (kernel_init+0x8/0xf0)
[    2.465163] [<c056892c>] (kernel_init) from [<c000f6b8>] (ret_from_fork+0x14/0x3c)
[    2.465872] usb 2-1: New USB device found, idVendor=1a40, idProduct=0101
[    2.465881] usb 2-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[    2.465888] usb 2-1: Product: USB 2.0 Hub
[    2.466693] hub 2-1:1.0: USB hub found
[    2.466868] hub 2-1:1.0: 4 ports detected
[    2.498230] CPU1: stopping
[    2.500921] CPU: 1 PID: 0 Comm: swapper/1 Not tainted 4.4.0-g58d0198-dirty #2
[    2.508033] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
[    2.514124] [<c00160ec>] (unwind_backtrace) from [<c0012e08>] (show_stack+0x10/0x14)
[    2.521846] [<c0012e08>] (show_stack) from [<c01f6bd8>] (dump_stack+0x80/0xc0)
[    2.529046] [<c01f6bd8>] (dump_stack) from [<c0015348>] (handle_IPI+0x1ac/0x1c0)
[    2.536423] [<c0015348>] (handle_IPI) from [<c00094d0>] (gic_handle_irq+0x90/0x94)
[    2.543974] [<c00094d0>] (gic_handle_irq) from [<c00138d4>] (__irq_svc+0x54/0x90)
[    2.551434] Exception stack(0xef0aff88 to 0xef0affd0)
[    2.556473] ff80:                   00000001 00000000 ef0affe0 c001b860 c0571388 00000000
[    2.564634] ffa0: 00000000 c08013c0 c08064b4 c07fe2e4 ef0ae000 c08064bc 00000001 ef0affd8
[    2.572789] ffc0: c00100f8 c00100fc 60000013 ffffffff
[    2.577828] [<c00138d4>] (__irq_svc) from [<c00100fc>] (arch_cpu_idle+0x38/0x3c)
[    2.585212] [<c00100fc>] (arch_cpu_idle) from [<c00579dc>] (cpu_startup_entry+0x1b0/0x26c)
[    2.593452] [<c00579dc>] (cpu_startup_entry) from [<4000956c>] (0x4000956c)
[    2.600390] CPU3: stopping
[    2.603083] CPU: 3 PID: 0 Comm: swapper/3 Not tainted 4.4.0-g58d0198-dirty #2
[    2.610196] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
[    2.616286] [<c00160ec>] (unwind_backtrace) from [<c0012e08>] (show_stack+0x10/0x14)
[    2.624008] [<c0012e08>] (show_stack) from [<c01f6bd8>] (dump_stack+0x80/0xc0)
[    2.631209] [<c01f6bd8>] (dump_stack) from [<c0015348>] (handle_IPI+0x1ac/0x1c0)
[    2.638586] [<c0015348>] (handle_IPI) from [<c00094d0>] (gic_handle_irq+0x90/0x94)
[    2.646137] [<c00094d0>] (gic_handle_irq) from [<c00138d4>] (__irq_svc+0x54/0x90)
[    2.653597] Exception stack(0xef0b3f88 to 0xef0b3fd0)
[    2.658637] 3f80:                   00000001 00000000 ef0b3fe0 c001b860 c0571388 00000000
[    2.666797] 3fa0: 00000000 c08013c0 c08064b4 c07fe2e4 ef0b2000 c08064bc 00000001 ef0b3fd8
[    2.674952] 3fc0: c00100f8 c00100fc 60000013 ffffffff
[    2.679991] [<c00138d4>] (__irq_svc) from [<c00100fc>] (arch_cpu_idle+0x38/0x3c)
[    2.687371] [<c00100fc>] (arch_cpu_idle) from [<c00579dc>] (cpu_startup_entry+0x1b0/0x26c)
[    2.695614] [<c00579dc>] (cpu_startup_entry) from [<4000956c>] (0x4000956c)
[    2.702553] CPU0: stopping
[    2.705247] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.4.0-g58d0198-dirty #2
[    2.712360] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
[    2.718449] [<c00160ec>] (unwind_backtrace) from [<c0012e08>] (show_stack+0x10/0x14)
[    2.726171] [<c0012e08>] (show_stack) from [<c01f6bd8>] (dump_stack+0x80/0xc0)
[    2.733373] [<c01f6bd8>] (dump_stack) from [<c0015348>] (handle_IPI+0x1ac/0x1c0)
[    2.740750] [<c0015348>] (handle_IPI) from [<c00094d0>] (gic_handle_irq+0x90/0x94)
[    2.748300] [<c00094d0>] (gic_handle_irq) from [<c00138d4>] (__irq_svc+0x54/0x90)
[    2.755761] Exception stack(0xc0805f48 to 0xc0805f90)
[    2.760800] 5f40:                   00000001 00000000 c0805fa0 c001b860 c0571388 00000000
[    2.768961] 5f60: 00000000 c08013c0 c08064b4 c07fe2e4 c0804000 c08064bc 00000001 c0805f98
[    2.777116] 5f80: c00100f8 c00100fc 60000013 ffffffff
[    2.782154] [<c00138d4>] (__irq_svc) from [<c00100fc>] (arch_cpu_idle+0x38/0x3c)
[    2.789535] [<c00100fc>] (arch_cpu_idle) from [<c00579dc>] (cpu_startup_entry+0x1b0/0x26c)
[    2.797781] [<c00579dc>] (cpu_startup_entry) from [<c0798c6c>] (start_kernel+0x3b0/0x3bc)
[    2.805936] [<c0798c6c>] (start_kernel) from [<4000807c>] (0x4000807c)
[    2.812448] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

但是出现了以上错误。

使用网络文件系统,查看SD卡识别的log

[    2.540135] mmc0: new high speed SDHC card at address aaaa
[    2.541197] mmcblk0: mmc0:aaaa SS08G 7.40 GiB 
[    2.543136]  mmcblk0: p1 p2

看来是可能是文件系统挂载时,SD卡未识别到,导致错误出现,后边再看有没有解决方案。

查看硬件中断资源:cat /proc/interrupts

查看GPIO资源:cat /sys/kernel/debug/gpio

猜你喜欢

转载自blog.csdn.net/qq543716996/article/details/102560098