页次: 1
原理图参考了立创gloomyghost大神版本,那原理图EA3036部分电容的位置有些问题,这里做了修正。
板子采用4层板,注意选择PCB板厚0.8mm,目前还未打样验证功能。
正面图
背面图:
PCB文件分享:
F1C_Pi.zip
没画过几次四层PCB,有问题请指正!
注意注意:
电路打样验证,目前从SD卡启动系统正常。
但是发现RGB屏幕电源驱动电路芯片PT4103原理图错误,幸亏没焊接。。。
电路图和PCB已经更新。
F1C100S_PI_20220811-0806.zip
在过年前收到了华芯微特韬哥的电路板,板子做的很结实!
SWM320VET7核心板
最近刚好有时间学习支持一下国产MCU。
1. SWM320VET7的硬件信息。
ARM cortex-M4 核心,片上包含精度1%以内的20MHz/40MHz时钟,可以倍频120MHz工作。
128KB SRAM,512KB flash。
支持多种外设:UART,SPI,I2C,CAN(后续有条件的话,逐一测试一下)
同时具有PWM模块、定时器模块、RTC模块、DMA模块,SRAM模块、SDRAM模块、SDIO模块、TFT-LCD驱动模块(最大分辨率1024*768)、GPIO(多大100个)、2个12位8通道ADC等
Datasheet上说支持ISP操作(但自己未实验操作成功)
2. 最小系统的介绍。
最小系统板主要分为2个部分,电源采用mini USB接口供电,同时采用CH340G将串口转USB引出;
核心板将所有引脚引出2.54mm引脚(但电路图上的引脚标签全用引脚数字表示,十分不方便阅读),核心板所有外设包括1个key和1个led,使用时需要根据情况连接跳线。
比较好的是将5V、3v3、GND三个引脚单独引出好多引脚,可以单独增加模块测试。
3. 环境搭建:
采用环境使用KEIL5.27,搭建过程可以参考官网文件。
1) 安装keil5.27。
2) 安装synwit的keil软件pack文件(注意需要管理员权限,否则安装失败)。
3) 后面依次建立工程,选择SWM320VET7
4) 弹出的界面选择对应的CMSIS和device内容,建议能全选的都选上。
5) 建立main.c文件。
6) 配置debugger,可以选用jlink的swd模式或者选择dap-link,2个模块都支持。
参考文件如下:keil开发环境搭建.pdf
千万需要注意的是下载时可能会报错,需把下载算法中的size修改变大,由0x1000修改为0xc000即可,修改成0x8000,0x4000都可以。
4. 测试helloword
这里偷懒,直接从下载的库文件里拷贝点灯程序,连接好led、key的跳线以后,程序运行可以看出按钮按下后,led灯亮起,key松开后,led灭。
至此,SWM320初步上手体验告一段落,下一步学习各个上手模块程序。
挖坑网上传图片是在是一个槽点。。
启动信息
U-Boot SPL 2013.01.01-g1938d92-dirty (Nov 05 2014 - 11:50:37) i2c probe OK! musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn) musb-hdrc: MHDRC RTL version 2.0 musb-hdrc: setup fifo_mode 4 musb-hdrc: 28/31 max ep, 16384/16384 memory USB Peripheral mode controller at 47401000 using PIO, IRQ 0 musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn) musb-hdrc: MHDRC RTL version 2.0 musb-hdrc: setup fifo_mode 4 musb-hdrc: 28/31 max ep, 16384/16384 memory USB Host mode controller at 47401800 using PIO, IRQ 0 OMAP SD/MMC: 0 reading u-boot.img reading u-boot.img U-Boot 2013.01.01-g1938d92-dirty (Nov 05 2014 - 11:50:37) I2C: ready DRAM: 512 MiB Data Cache is ON MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1 *** Warning - readenv() failed, using default environment musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn) musb-hdrc: MHDRC RTL version 2.0 musb-hdrc: setup fifo_mode 4 musb-hdrc: 28/31 max ep, 16384/16384 memory USB Peripheral mode controller at 47401000 using PIO, IRQ 0 musb-hdrc: ConfigData=0xde (UTMI-8, dyn FIFOs, bulk combine, bulk split, HB-ISO Rx, HB-ISO Tx, SoftConn) musb-hdrc: MHDRC RTL version 2.0 musb-hdrc: setup fifo_mode 4 musb-hdrc: 28/31 max ep, 16384/16384 memory USB Host mode controller at 47401800 using PIO, IRQ 0 Net: <ethaddr> not set. Validating first E-fuse MAC PHY reset timed out cpsw Hit any key to stop autoboot: 0 (Re)start USB... USB0: lowlevel init failed USB error: all controllers failed lowlevel init Card did not respond to voltage select! mmc0(part 0) is current device Card did not respond to voltage select! mmc1(part 0) is current device SD/MMC found on device 1 reading uEnv.txt 202 bytes read in 3 ms (65.4 KiB/s) Loaded environment from uEnv.txt Importing environment from mmc ... Running uenvmmc1cmd ... reading uImage 2666552 bytes read in 150 ms (17 MiB/s) ## Booting kernel from Legacy Image at 82000000 ... Image Name: Linux-3.2.0-lierda+ Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 2666488 Bytes = 2.5 MiB Load Address: 80008000 Entry Point: 80008000 Verifying Checksum ... OK Loading Kernel Image ... OK OK Starting kernel ... Uncompressing Linux... done, booting the kernel. [ 0.000000] Linux version 3.2.0-lierda+ (hzj@ea-server) (gcc version 4.4.3 (GCC) ) #551 Fri May 15 18:10:12 CST 2015 [ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7d [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache [ 0.000000] Machine: am335xevm [ 0.000000] Memory policy: ECC disabled, Data cache writeback [ 0.000000] AM335X ES2.1 (sgx neon ) [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 130048 [ 0.000000] Kernel command line: console=ttyO0,115200n8 androidboot.console=ttyO0 mem=512M root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait init=/init ip=off [ 0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes) [ 0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes) [ 0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes) [ 0.000000] Memory: 512MB = 512MB total [ 0.000000] Memory: 512620k/512620k available, 11668k reserved, 0K highmem [ 0.000000] Virtual kernel memory layout: [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB) [ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB) [ 0.000000] vmalloc : 0xe0800000 - 0xff000000 ( 488 MB) [ 0.000000] lowmem : 0xc0000000 - 0xe0000000 ( 512 MB) [ 0.000000] modules : 0xbf000000 - 0xc0000000 ( 16 MB) [ 0.000000] .text : 0xc0008000 - 0xc04b8000 (4800 kB) [ 0.000000] .init : 0xc04b8000 - 0xc057f000 ( 796 kB) [ 0.000000] .data : 0xc0580000 - 0xc05c9dc0 ( 296 kB) [ 0.000000] .bss : 0xc05c9dfc - 0xc06f63b0 (1202 kB) [ 0.000000] NR_IRQS:396 [ 0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts [ 0.000000] Total of 128 interrupts on 1 active controller [ 0.000000] OMAP clockevent source: GPTIMER2 at 24000000 Hz [ 0.000000] omap_dm_timer_switch_src: Switching to HW default clocksource(sys_clkin_ck) for timer1, this may impact timekeeping in low power state [ 0.000000] OMAP clocksource: GPTIMER1 at 24000000 Hz [ 0.000000] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956ms [ 0.000000] Console: colour dummy device 80x30 [ 0.000159] Calibrating delay loop... 996.14 BogoMIPS (lpj=4980736) [ 0.087775] pid_max: default: 32768 minimum: 301 [ 0.087877] Security Framework initialized [ 0.087930] Mount-cache hash table entries: 512 [ 0.088253] CPU: Testing write buffer coherency: ok [ 0.107372] omap_hwmod: pruss: failed to hardreset [ 0.108001] print_constraints: dummy: [ 0.108155] NET: Registered protocol family 16 [ 0.108932] OMAP GPIO hardware version 0.1 [ 0.109601] omap_mux_init: Add partition: #1: core, flags: 0 [ 0.110369] omap_i2c.1: alias fck already exists [ 0.110625] Board name: A335EVM [ 0.110632] Board version: 1.0 [ 0.110640] SKU: SKU#01 [ 0.110647] The board is general purpose EVM in profile 0 [ 0.110983] da8xx_lcdc.0: alias fck already exists [ 0.111145] omap_hsmmc.0: alias fck already exists [ 0.111223] omap_hsmmc.1: alias fck already exists [ 0.111340] omap_i2c.3: alias fck already exists [ 0.111449] davinci-mcasp.0: alias fck already exists [ 0.148042] _regulator_get: l3_main.0 supply vdd_core not found, using dummy regulator [ 0.148072] am335x_opp_update: physical regulator not present for core(-22) [ 0.148239] edma.0: alias fck already exists [ 0.148254] edma.0: alias fck already exists [ 0.148268] edma.0: alias fck already exists [ 0.153121] bio: create slab <bio-0> at 0 [ 0.153842] SCSI subsystem initialized [ 0.154019] usbcore: registered new interface driver usbfs [ 0.154105] usbcore: registered new interface driver hub [ 0.154225] usbcore: registered new device driver usb [ 0.154486] registerd cppi-dma Intr @ IRQ 17 [ 0.154497] Cppi41 Init Done Qmgr-base(e087a000) dma-base(e0878000) [ 0.154504] Cppi41 Init Done [ 0.154525] musb-ti81xx musb-ti81xx: musb0, board_mode=0x13, plat_mode=0x3 [ 0.154639] musb-ti81xx musb-ti81xx: musb1, board_mode=0x13, plat_mode=0x1 [ 0.167785] omap_i2c omap_i2c.1: bus 1 rev2.4.0 at 100 kHz [ 0.168592] tps65910 1-002d: JTAGREVNUM 0x0 [ 0.173358] print_constraints: VRTC: [ 0.174593] print_constraints: VIO: at 1500 mV [ 0.176692] print_constraints: VDD1: 600 <--> 1500 mV at 1362 mV normal [ 0.178798] print_constraints: VDD2: 600 <--> 1500 mV at 1137 mV normal [ 0.179618] print_constraints: VDD3: 5000 mV [ 0.180847] print_constraints: VDIG1: at 1800 mV [ 0.182078] print_constraints: VDIG2: at 1800 mV [ 0.183323] print_constraints: VPLL: at 1800 mV [ 0.184565] print_constraints: VDAC: at 1800 mV [ 0.185797] print_constraints: VAUX1: at 1800 mV [ 0.187034] print_constraints: VAUX2: at 3300 mV [ 0.188273] print_constraints: VAUX33: at 3300 mV [ 0.189506] print_constraints: VMMC: at 3300 mV [ 0.189670] tps65910 1-002d: No interrupt support, no core IRQ [ 0.207781] omap_i2c omap_i2c.3: bus 3 rev2.4.0 at 100 kHz [ 0.208255] Advanced Linux Sound Architecture Driver Version 1.0.24. [ 0.208707] Switching to clocksource gp timer [ 0.213466] musb-hdrc: version 6.0, ?dma?, otg (peripheral+host) [ 0.213627] musb-hdrc musb-hdrc.0: dma type: dma-cppi41 [ 0.213771] MUSB0 controller's USBSS revision = 4ea20800 [ 0.213795] musb0: Enabled SW babble control [ 0.214375] musb-hdrc musb-hdrc.0: USB OTG mode controller at e083c000 using DMA, IRQ 18 [ 0.214561] musb-hdrc musb-hdrc.1: dma type: dma-cppi41 [ 0.214667] MUSB1 controller's USBSS revision = 4ea20800 [ 0.214685] musb1: Enabled SW babble control [ 0.215004] musb-hdrc musb-hdrc.1: MUSB HDRC host driver [ 0.215094] musb-hdrc musb-hdrc.1: new USB bus registered, assigned bus number 1 [ 0.215214] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 [ 0.215227] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 0.215236] usb usb1: Product: MUSB HDRC host driver [ 0.215243] usb usb1: Manufacturer: Linux 3.2.0-lierda+ musb-hcd [ 0.215252] usb usb1: SerialNumber: musb-hdrc.1 [ 0.215642] hub 1-0:1.0: USB hub found [ 0.215663] hub 1-0:1.0: 1 port detected [ 0.215950] musb-hdrc musb-hdrc.1: USB Host mode controller at e083e800 using DMA, IRQ 19 [ 0.216231] NET: Registered protocol family 2 [ 0.216406] IP route cache hash table entries: 4096 (order: 2, 16384 bytes) [ 0.216702] TCP established hash table entries: 16384 (order: 5, 131072 bytes) [ 0.216919] TCP bind hash table entries: 16384 (order: 4, 65536 bytes) [ 0.217044] TCP: Hash tables configured (established 16384 bind 16384) [ 0.217054] TCP reno registered [ 0.217063] UDP hash table entries: 256 (order: 0, 4096 bytes) [ 0.217081] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) [ 0.217234] NET: Registered protocol family 1 [ 0.217448] NetWinder Floating Point Emulator V0.97 (double precision) [ 0.234313] ashmem: initialized [ 0.234793] fuse init (API version 7.17) [ 0.234950] msgmni has been set to 1001 [ 0.235678] io scheduler noop registered [ 0.235689] io scheduler deadline registered [ 0.235737] io scheduler cfq registered (default) [ 0.236253] da8xx_lcdc da8xx_lcdc.0: GLCD: Found TFC_S9700RTWV35TR_01B panel [ 0.253951] Console: switching to colour frame buffer device 128x37 [ 0.269255] omap_uart.0: ttyO0 at MMIO 0x44e09000 (irq = 72) is a OMAP UART0 [ 0.962661] console [ttyO0] enabled [ 0.966756] omap_uart.1: ttyO1 at MMIO 0x48022000 (irq = 73) is a OMAP UART1 [ 0.974401] omap_uart.2: ttyO2 at MMIO 0x48024000 (irq = 74) is a OMAP UART2 [ 0.982002] omap_uart.3: ttyO3 at MMIO 0x481a6000 (irq = 44) is a OMAP UART3 [ 0.989618] omap_uart.4: ttyO4 at MMIO 0x481a8000 (irq = 45) is a OMAP UART4 [ 0.997195] omap_uart.5: ttyO5 at MMIO 0x481aa000 (irq = 46) is a OMAP UART5 [ 1.008501] brd: module loaded [ 1.013645] loop: module loaded [ 1.017132] (hci_tty): inside hci_tty_init [ 1.021580] (hci_tty): allocated 251, 0 [ 1.068880] davinci_mdio davinci_mdio.0: davinci mdio revision 1.6 [ 1.075351] davinci_mdio davinci_mdio.0: no live phy, scanning all [ 1.081994] davinci_mdio: probe of davinci_mdio.0 failed with error -5 [ 1.088881] PPP generic driver version 2.4.2 [ 1.093471] PPP BSD Compression module registered [ 1.098385] PPP Deflate Compression module registered [ 1.104328] PPP MPPE Compression module registered [ 1.109383] NET: Registered protocol family 24 [ 1.114030] SLIP: version 0.8.4-NET3.019-NEWTTY (dynamic channels, max=256). [ 1.121409] hdlc: HDLC support module revision 1.22 [ 1.126514] Initializing USB Mass Storage driver... [ 1.131770] usbcore: registered new interface driver usb-storage [ 1.138046] USB Mass Storage support registered. [ 1.144054] gadget: Mass Storage Function, version: 2009/09/11 [ 1.150276] gadget: Number of LUNs=1 [ 1.154101] lun0: LUN: removable file: (no medium) [ 1.159387] gadget: android_usb ready [ 1.163318] musb-hdrc musb-hdrc.0: MUSB HDRC host driver [ 1.168938] musb-hdrc musb-hdrc.0: new USB bus registered, assigned bus number 2 [ 1.176768] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002 [ 1.183881] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 1.191438] usb usb2: Product: MUSB HDRC host driver [ 1.196626] usb usb2: Manufacturer: Linux 3.2.0-lierda+ musb-hcd [ 1.202910] usb usb2: SerialNumber: musb-hdrc.0 [ 1.208024] hub 2-0:1.0: USB hub found [ 1.211976] hub 2-0:1.0: 1 port detected [ 1.216547] mousedev: PS/2 mouse device common for all mice [ 1.232729] [ 1.232734] no i2c_ts, stop install driver. [ 1.232738] [ 1.240223] pixcir_i2c_ts_v3.3.09: probe of 3-005c failed with error -121 [ 1.247661] rtc-pcf8563 1-0051: chip found, driver version 0.4.3 [ 1.255523] rtc-pcf8563 1-0051: low voltage detected, date/time is not reliable. [ 1.263515] using rtc device, rtc-pcf8563, for alarms [ 1.268653] rtc-pcf8563 1-0051: rtc core: registered rtc-pcf8563 as rtc0 [ 1.275894] i2c /dev entries driver [ 1.279740] Linux media interface: v0.10 [ 1.284509] OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec [ 1.292434] cpuidle: using governor ladder [ 1.296820] cpuidle: using governor menu [ 1.303751] usbcore: registered new interface driver usbhid [ 1.309613] usbhid: USB HID core driver [ 1.313851] logger: created 256K log 'log_main' [ 1.318639] logger: created 256K log 'log_events' [ 1.323645] logger: created 256K log 'log_radio' [ 1.328528] logger: created 256K log 'log_system' [ 1.334330] _regulator_get: 1-001b supply IOVDD not found, using dummy regulator [ 1.342119] _regulator_get: 1-001b supply DVDD not found, using dummy regulator [ 1.349782] _regulator_get: 1-001b supply AVDD not found, using dummy regulator [ 1.357431] _regulator_get: 1-001b supply DRVDD not found, using dummy regulator [ 1.367437] asoc: tlv320aic3x-hifi <-> davinci-mcasp.0 mapping ok [ 1.374387] ALSA device list: [ 1.377487] #0: AM335X EVM [ 1.380646] Netfilter messages via NETLINK v0.30. [ 1.385669] nf_conntrack version 0.5.0 (8009 buckets, 32036 max) [ 1.392250] ctnetlink v0.93: registering with nfnetlink. [ 1.397859] NF_TPROXY: Transparent proxy support initialized, version 4.1.0 [ 1.405163] NF_TPROXY: Copyright (c) 2006-2007 BalaBit IT Ltd. [ 1.411502] xt_time: kernel timezone is -0000 [ 1.416245] ip_tables: (C) 2000-2006 Netfilter Core Team [ 1.422000] arp_tables: (C) 2002 David S. Miller [ 1.426885] TCP cubic registered [ 1.430276] NET: Registered protocol family 17 [ 1.434943] NET: Registered protocol family 15 [ 1.439594] Registering the dns_resolver key type [ 1.444556] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3 [ 1.452582] ThumbEE CPU extension supported. [ 1.457254] mux: Failed to setup hwmod io irq -22 [ 1.462184] Power Management for AM33XX family [ 1.466999] Trying to load am335x-pm-firmware.bin (60 secs timeout) [ 1.473692] Copied the M3 firmware to UMEM [ 1.478044] Cortex M3 Firmware Version = 0x181 [ 1.483330] clock: disabling unused clocks to save power [ 1.489381] Detected MACID=54:4a:16:9f:28:3e [ 1.496448] rtc-pcf8563 1-0051: low voltage detected, date/time is not reliable. [ 1.504244] rtc-pcf8563 1-0051: setting system clock to 2012-09-25 13:23:56 UTC (1348579436) [ 1.513588] Waiting for root device /dev/mmcblk0p2... [ 1.603459] mmc1: new high speed MMC card at address 0001 [ 1.609496] mmcblk0: mmc1:0001 4YMD3R 3.64 GiB [ 1.614328] mmcblk0boot0: mmc1:0001 4YMD3R partition 1 4.00 MiB [ 1.620681] mmcblk0boot1: mmc1:0001 4YMD3R partition 2 4.00 MiB [ 1.628180] mmcblk0: p1 p2 p3 [ 1.634115] mmcblk0boot1: unknown partition table [ 1.640313] mmcblk0boot0: unknown partition table [ 1.856964] kjournald starting. Commit interval 5 seconds [ 1.863787] EXT3-fs (mmcblk0p2): using internal journal [ 1.869268] EXT3-fs (mmcblk0p2): recovery complete [ 1.875641] EXT3-fs (mmcblk0p2): mounted filesystem with ordered data mode [ 1.882897] VFS: Mounted root (ext3 filesystem) on device 179:2. [ 1.890062] Freeing init memory: 796K [ 2.000782] adb_open # [ 2.165791] warning: `bluetoothd' uses 32-bit capabilities (legacy support in use) [ 2.202093] android_usb: already disabled [ 2.206990] adb_bind_config [ 2.215211] PHY 0:00 not found [ 2.218420] PHY 0:01 not found [ 2.391262] Disabling lock debugging due to kernel taint [ 9.709888] er.ServerThread (126): /proc/109/oom_adj is deprecated, please use /proc/109/oom_score_adj instead.
这种板子密码都不设置的吗
楼上从sd卡启动成了?用的什么镜像呢?
在RIoTboard上成功点亮,LVDS直接驱动。
https://whycan.cn/files/members/1510/IMG_20191208_202535.jpg
这个LVDS接头那个转接器是什么啊,x宝上找没找到。。。。。
收到货啦,先拆个屏幕试了试,型号是CRD070TN01-40NM02,和AT070TNA2 V.1应该是兼容的。
将Tiny200+RGB2LVDS+LVDS转接板接好,配合emWin的demo(需要修改设备树的panel型号为avic,tm070ddh03),成功点亮并正常使用。
https://whycan.cn/files/members/1510/CRD070TN01-40NM02.jpg
RGB2LVDS转接板哪里有,来个连接看看?
lib/libmvvm.a(binding_context_awtk.o): In function `binding_context_bind_data':
/home/zx/ATWK/awtk-mvvm/src/mvvm/awtk/binding_context_awtk.c:136: undefined reference to `widget_on_with_tag'
lib/libmvvm.a(binding_context_awtk.o): In function `binding_context_bind_command':
/home/zx/ATWK/awtk-mvvm/src/mvvm/awtk/binding_context_awtk.c:252: undefined reference to `widget_on_with_tag'
lib/libmvvm.a(binding_context_awtk.o): In function `on_reset_emitter':
/home/zx/ATWK/awtk-mvvm/src/mvvm/awtk/binding_context_awtk.c:422: undefined reference to `widget_off_by_tag'
collect2: ld returned 1 exit status
scons: *** [bin/cppdemo1] Error 1
目前用的是nano的核心版,适配的是800480的5吋显示屏,因为没有底板,没有测试过触摸屏的效果。
使用方法:放到SD卡内,解压然后cd 到 bin里,可以执行 ./demo 就ok了。
linux系统基于linux4.15,群里网友那个固件即可,链接: https://whycan.cn/t_2689.html
使用中可能需要一个libstdc++的库文件,我也上传了,放到 /usr/lib32内即可。
欢迎大家使用,本人刚入门,希望一起交流。
suniv.dtsi文件:
// SPDX-License-Identifier: (GPL-2.0+ OR X11)
/*
* Copyright 2018 Icenowy Zheng <icenowy@aosc.io>
*/
#include <dt-bindings/clock/suniv-ccu.h>
#include <dt-bindings/reset/suniv-ccu.h>
/ {
#address-cells = <1>;
#size-cells = <1>;
interrupt-parent = <&intc>;
clocks {
#address-cells = <1>;
#size-cells = <1>;
ranges;
osc24M: clk-24M {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <24000000>;
clock-output-names = "osc24M";
};
osc32k: clk-32k {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <32768>;
clock-output-names = "osc32k";
};
fake100M: clk-100M {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <100000000>;
clock-output-names = "fake-100M";
};
};
cpus {
#address-cells = <0>;
#size-cells = <0>;
cpu {
compatible = "arm,arm926ej-s";
device_type = "cpu";
};
};
de: display-engine {
compatible = "allwinner,suniv-display-engine";
allwinner,pipelines = <&fe0>;
status = "disabled";
};
soc {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges;
sram-controller@1c00000 {
compatible = "allwinner,sun4i-a10-sram-controller";
reg = <0x01c00000 0x30>;
#address-cells = <1>;
#size-cells = <1>;
ranges;
sram_d: sram@10000 {
compatible = "mmio-sram";
reg = <0x00010000 0x1000>;
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0x00010000 0x1000>;
otg_sram: sram-section@0 {
compatible = "allwinner,sun4i-a10-sram-d";
reg = <0x0000 0x1000>;
status = "disabled";
};
};
};
spi0: spi@1c05000 {
compatible = "allwinner,suniv-spi",
"allwinner,sun8i-h3-spi";
reg = <0x01c05000 0x1000>;
interrupts = <10>;
clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_BUS_SPI0>;
clock-names = "ahb", "mod";
resets = <&ccu RST_BUS_SPI0>;
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
spi1: spi@1c06000 {
compatible = "allwinner,suniv-spi",
"allwinner,sun8i-h3-spi";
reg = <0x01c06000 0x1000>;
interrupts = <11>;
clocks = <&ccu CLK_BUS_SPI1>, <&ccu CLK_BUS_SPI1>;
clock-names = "ahb", "mod";
resets = <&ccu RST_BUS_SPI1>;
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
tcon0: lcd-controller@1c0c000 {
compatible = "allwinner,suniv-tcon";
reg = <0x01c0c000 0x1000>;
interrupts = <29>;
clocks = <&ccu CLK_BUS_LCD>,
<&ccu CLK_TCON>,
<&osc24M>; /* Still unknown */
clock-names = "ahb",
"tcon-ch0",
"tcon-ch1";
clock-output-names = "tcon-pixel-clock";
resets = <&ccu RST_BUS_LCD>;
reset-names = "lcd";
status = "disabled";
ports {
#address-cells = <1>;
#size-cells = <0>;
tcon0_in: port@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
tcon0_in_be0: endpoint@0 {
reg = <0>;
remote-endpoint = <&be0_out_tcon0>;
};
};
tcon0_out: port@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
};
};
};
mmc0: mmc@1c0f000 {
compatible = "allwinner,suniv-mmc",
"allwinner,sun7i-a20-mmc";
reg = <0x01c0f000 0x1000>;
clocks = <&ccu CLK_BUS_MMC0>,
<&ccu CLK_MMC0>,
<&ccu CLK_MMC0_OUTPUT>,
<&ccu CLK_MMC0_SAMPLE>;
clock-names = "ahb",
"mmc",
"output",
"sample";
resets = <&ccu RST_BUS_MMC0>;
reset-names = "ahb";
interrupts = <23>;
pinctrl-names = "default";
pinctrl-0 = <&mmc0_pins>;
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
mmc1: mmc@1c10000 {
compatible = "allwinner,suniv-mmc",
"allwinner,sun7i-a20-mmc";
reg = <0x01c10000 0x1000>;
clocks = <&ccu CLK_BUS_MMC1>,
<&ccu CLK_MMC1>,
<&ccu CLK_MMC1_OUTPUT>,
<&ccu CLK_MMC1_SAMPLE>;
clock-names = "ahb",
"mmc",
"output",
"sample";
resets = <&ccu RST_BUS_MMC1>;
reset-names = "ahb";
interrupts = <24>;
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
ccu: clock@1c20000 {
compatible = "allwinner,suniv-ccu";
reg = <0x01c20000 0x400>;
clocks = <&osc24M>, <&osc32k>;
clock-names = "hosc", "losc";
#clock-cells = <1>;
#reset-cells = <1>;
};
intc: interrupt-controller@1c20400 {
compatible = "allwinner,suniv-ic";
reg = <0x01c20400 0x400>;
interrupt-controller;
#interrupt-cells = <1>;
};
pio: pinctrl@1c20800 {
compatible = "allwinner,suniv-pinctrl";
reg = <0x01c20800 0x400>;
interrupts = <38>, <39>, <40>;
clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, <&osc32k>;
clock-names = "apb", "hosc", "losc";
gpio-controller;
interrupt-controller;
#interrupt-cells = <3>;
#gpio-cells = <3>;
spi0_pins_a: spi0-pins-pc {
pins = "PC0", "PC1", "PC2", "PC3";
function = "spi0";
};
lcd_rgb666_pins: lcd-rgb666-pins {
pins = "PD0", "PD1", "PD2", "PD3", "PD4",
"PD5", "PD6", "PD7", "PD8", "PD9",
"PD10", "PD11", "PD12", "PD13", "PD14",
"PD15", "PD16", "PD17", "PD18", "PD19",
"PD20", "PD21";
function = "lcd";
};
uart0_pins_a: uart-pins-pe {
pins = "PE0", "PE1";
function = "uart0";
};
uart1_pins_a: uart-pins-pa {
pins = "PA2", "PA3";
function = "uart1";
};
uart2_pins_a: uart-pins-pe1 {
pins = "PE7", "PE8";
function = "uart2";
};
mmc0_pins: mmc0-pins {
pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5";
function = "mmc0";
};
};
timer@1c20c00 {
compatible = "allwinner,suniv-timer";
reg = <0x01c20c00 0x90>;
interrupts = <13>;
clocks = <&osc24M>;
};
wdt: watchdog@1c20ca0 {
compatible = "allwinner,sun6i-a31-wdt";
reg = <0x01c20ca0 0x20>;
};
uart0: serial@1c25000 {
compatible = "snps,dw-apb-uart";
reg = <0x01c25000 0x400>;
interrupts = <1>;
reg-shift = <2>;
reg-io-width = <4>;
clocks = <&ccu CLK_BUS_UART0>;
resets = <&ccu RST_BUS_UART0>;
status = "disabled";
};
uart1: serial@1c25400 {
compatible = "snps,dw-apb-uart";
reg = <0x01c25400 0x400>;
interrupts = <2>;
reg-shift = <2>;
reg-io-width = <4>;
clocks = <&ccu CLK_BUS_UART1>;
resets = <&ccu RST_BUS_UART1>;
status = "disabled";
};
uart2: serial@1c25800 {
compatible = "snps,dw-apb-uart";
reg = <0x01c25800 0x400>;
interrupts = <3>;
reg-shift = <2>;
reg-io-width = <4>;
clocks = <&ccu CLK_BUS_UART2>;
resets = <&ccu RST_BUS_UART2>;
status = "disabled";
};
usb_otg: usb@1c13000 {
compatible = "allwinner,suniv-musb";
reg = <0x01c13000 0x0400>;
clocks = <&ccu CLK_BUS_OTG>;
resets = <&ccu RST_BUS_OTG>;
interrupts = <26>;
interrupt-names = "mc";
phys = <&usbphy 0>;
phy-names = "usb";
extcon = <&usbphy 0>;
allwinner,sram = <&otg_sram 1>;
status = "disabled";
};
usbphy: phy@1c13400 {
compatible = "allwinner,suniv-usb-phy";
reg = <0x01c13400 0x10>;
reg-names = "phy_ctrl";
clocks = <&ccu CLK_USB_PHY0>;
clock-names = "usb0_phy";
resets = <&ccu RST_USB_PHY0>;
reset-names = "usb0_reset";
#phy-cells = <1>;
status = "disabled";
};
fe0: display-frontend@1e00000 {
compatible = "allwinner,suniv-display-frontend";
reg = <0x01e00000 0x20000>;
interrupts = <30>;
clocks = <&ccu CLK_BUS_DE_FE>, <&ccu CLK_DE_FE>,
<&ccu CLK_DRAM_DE_FE>;
clock-names = "ahb", "mod",
"ram";
resets = <&ccu RST_BUS_DE_FE>;
status = "disabled";
ports {
#address-cells = <1>;
#size-cells = <0>;
fe0_out: port@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
fe0_out_be0: endpoint@0 {
reg = <0>;
remote-endpoint = <&be0_in_fe0>;
};
};
};
};
be0: display-backend@1e60000 {
compatible = "allwinner,suniv-display-backend";
reg = <0x01e60000 0x10000>;
reg-names = "be";
interrupts = <31>;
clocks = <&ccu CLK_BUS_DE_BE>, <&ccu CLK_DE_BE>,
<&ccu CLK_DRAM_DE_BE>;
clock-names = "ahb", "mod",
"ram";
resets = <&ccu RST_BUS_DE_BE>;
reset-names = "be";
assigned-clocks = <&ccu CLK_DE_BE>;
assigned-clock-rates = <300000000>;
ports {
#address-cells = <1>;
#size-cells = <0>;
be0_in: port@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
be0_in_fe0: endpoint@0 {
reg = <0>;
remote-endpoint = <&fe0_out_be0>;
};
};
be0_out: port@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
be0_out_tcon0: endpoint@0 {
reg = <0>;
remote-endpoint = <&tcon0_in_be0>;
};
};
};
};
};
};
suniv-f1c100s-licheepi-nano.dts文件:
// SPDX-License-Identifier: (GPL-2.0+ OR X11)
/*
* Copyright 2018 Icenowy Zheng <icenowy@aosc.io>
*/
/dts-v1/;
#include "suniv-f1c100s.dtsi"
#include <dt-bindings/gpio/gpio.h>
/ {
model = "Lichee Pi Nano";
compatible = "licheepi,licheepi-nano", "allwinner,suniv-f1c100s",
"allwinner,suniv";
aliases {
serial0 = &uart0;
serial1 = &uart1;
Serial2 = &uart2;
spi0 = &spi0;
};
chosen {
stdout-path = "serial0:115200n8";
};
panel: panel {
compatible = "lg,lb070wv8", "simple-panel";
#address-cells = <1>;
#size-cells = <0>;
enable-gpios = <&pio 4 6 GPIO_ACTIVE_HIGH>;
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
panel_input: endpoint@0 {
reg = <0>;
remote-endpoint = <&tcon0_out_lcd>;
};
};
};
reg_vcc3v3: vcc3v3 {
compatible = "regulator-fixed";
regulator-name = "vcc3v3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
};
&de {
status = "okay";
};
&mmc0 {
vmmc-supply = <®_vcc3v3>;
bus-width = <4>;
broken-cd;
status = "okay";
};
&otg_sram {
status = "okay";
};
&spi0 {
pinctrl-names = "default";
pinctrl-0 = <&spi0_pins_a>;
status = "okay";
flash:mx25l12805d@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible ="jedec,spi-nor";
reg = <0>;
spi-max-frequency = <40000000>;
partitions{
compatible ="fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0{
label="uboot";
reg=<0x0 0x100000>;
read-only;
};
partition@100000{
label="dtb";
reg=<0x100000 0x10000>;
read-only;
};
partition@110000{
label="kernel";
reg=<0x110000 0x400000>;
read-only;
};
partition@510000{
label="rootfs";
reg=<0x510000 0xAF0000>;
};
};
};
};
&tcon0 {
pinctrl-names = "default";
pinctrl-0 = <&lcd_rgb666_pins>;
status = "okay";
};
&tcon0_out {
tcon0_out_lcd: endpoint@0 {
reg = <0>;
remote-endpoint = <&panel_input>;
};
};
&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_pins_a>;
status = "okay";
};
&uart1 {
pinctrl-names = "default";
pinctrl-0 = <&uart1_pins_a>;
status = "okay";
};
&uart2 {
pinctrl-names = "default";
pinctrl-0 = <&uart2_pins_a>;
status = "okay";
};
&usb_otg {
dr_mode = "otg";
status = "okay";
};
&usbphy {
usb0_id_det-gpio = <&pio 4 2 GPIO_ACTIVE_HIGH>; /* PE2 */
status = "okay";
};
我是直接手动修改的.config文件。
参数传递,在uboot里直接用的bootargs,参考的zero spiflash烧写步骤,需要把spi32776.0改成spi0.0.
几乎熬了个通宵,终于找到原因了并解决问题了:官网下载的config文件,开错了全志的spi控制器开关,正确的配置是# CONFIG_SPI_SUN4I is not set
CONFIG_SPI_SUN6I=y(看来f1c100s用的是新版本的spi控制器)。修改后内核可以正确识别到spi flash了。另外,官网页面上还有个问题, uboot的bootargs 参数设置中, root=/dev/mtdblock3必须要修改为root=31:3,否则无法正确加载rootfs。修改以上两点后可以正确启动到控制台了。云盘中的sdk包4.13和docker中的4.15版本均是如此修改。
我按照你之前的帖子,先apt-get install了一些东西,现在build.sh可以运行了,我想问的还需要配置其他的文件吗?这个编译的文件直接能烧到spiflash里运行吗?
那个他是为了体积,把 git 目录删掉一部分了,不理那个git错误就是了。
buildroot/dl 里面软件的临时下载地址: http://test3.whycan.cn/dl.tar
参考一下这个帖子: https://whycan.cn/t_1008.html
应该是进坑了,好像有许多东西要apt-get install一下啦!
https://whycan.cn/files/members/895/3.png
看内容是少了 head什么的,但是怎么设置呢。。。
这的√上了,我取消一下重新编译一下看看。
https://whycan.cn/t_493.html#p1304
看下这个帖子, 有没有启发?
------------------------------------------------------------
我搜了一下, Booting Linux with rootfs on a JFFS2 File System
看是不是因为这样:
你是不是勾上了 initramfs/initrd 这个根文件系统?
Environment size: 4718/32764 bytes
=> printenv bootcmd
bootcmd=sf probe 0 4000000; sf read 0x80c00000 0x100000 0x10000; sf read 0x80008000 0x110000 0x400000; bootz 0x80008000 - 0x80c00000
=> printenv bootargs
bootargs=console=ttyS0,115200 earlyprintk panic=5 rootwait mtdparts=spi32766.0:1M(uboot)ro,64k(dtb)ro,4M(kernel)ro,-(rootfs) root=31:03 rw rootfstype=jffs2
=>
为了确定一下,你进入 u-boot 命令行,
==> printenv bootcmd
==> printenv bootargs
我就是按照nano.lichee.pro的里面做的,然后对照zero spiflash 教程 做的:
http://zero.lichee.pro/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91/SPI_flash_build.html#id16
看起来是rootfs有问题,
u-boot的bootargs 是什么?
你也是主线u-boot + bsp linux ?
U-Boot 2018.01-05676-g0018878-dirty (May 11 2018 - 21:37:08 +0800) Allwinner Technology
CPU: Allwinner F Series (SUNIV)
Model: Lichee Pi Nano
DRAM: 32 MiB
MMC: SUNXI SD/MMC: 0
SF: Detected mx25l12805 with page size 256 Bytes, erase size 64 KiB, total 16 MiB
*** Warning - bad CRC, using default environment
In: serial@1c25000
Out: serial@1c25000
Err: serial@1c25000
Net: No ethernet found.
starting USB...
No controllers found
Hit any key to stop autoboot: 0
SF: Detected mx25l12805 with page size 256 Bytes, erase size 64 KiB, total 16 MiB
device 0 offset 0x100000, size 0x10000
SF: 65536 bytes @ 0x100000 Read: OK
device 0 offset 0x110000, size 0x400000
SF: 4194304 bytes @ 0x110000 Read: OK
## Flattened Device Tree blob at 80c00000
Booting using the fdt blob at 0x80c00000
Loading Device Tree to 816fb000, end 816ffd96 ... OK
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 4.15.0-rc8-licheepi-nano+ (zx@zx-VirtualBox) (gcc version 7.2.1 20171011 (Linaro GCC 7.2-2017.11)) #3 Thu May 10 22:06:57 CST 2018
[ 0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=0005317f
[ 0.000000] CPU: VIVT data cache, VIVT instruction cache
[ 0.000000] OF: fdt: Machine model: Lichee Pi Nano
[ 0.000000] Memory policy: Data cache writeback
[ 0.000000] random: fast init done
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 8128
[ 0.000000] Kernel command line: console=ttyS0,115200 earlyprintk panic=5 rootwait mtdparts=spi32766.0:1M(uboot)ro,64k(dtb)ro,4M(kernel)ro,-(rootfs) root=31:03 rw rootfstype=jffs2
[ 0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.000000] Memory: 22680K/32768K available (6144K kernel code, 237K rwdata, 1408K rodata, 1024K init, 246K bss, 10088K reserved, 0K cma-reserved, 0K highmem)
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
[ 0.000000] vmalloc : 0xc2800000 - 0xff800000 ( 976 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xc2000000 ( 32 MB)
[ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
[ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
[ 0.000000] .text : 0x(ptrval) - 0x(ptrval) (7136 kB)
[ 0.000000] .init : 0x(ptrval) - 0x(ptrval) (1024 kB)
[ 0.000000] .data : 0x(ptrval) - 0x(ptrval) ( 238 kB)
[ 0.000000] .bss : 0x(ptrval) - 0x(ptrval) ( 247 kB)
[ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[ 0.000045] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[ 0.000109] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[ 0.000634] Console: colour dummy device 80x30
[ 0.000719] Calibrating delay loop... 203.16 BogoMIPS (lpj=1015808)
[ 0.070230] pid_max: default: 32768 minimum: 301
[ 0.070537] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.070576] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.071975] CPU: Testing write buffer coherency: ok
[ 0.073589] Setting up static identity map for 0x80100000 - 0x80100058
[ 0.076097] devtmpfs: initialized
[ 0.082581] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.082646] futex hash table entries: 256 (order: -1, 3072 bytes)
[ 0.082892] pinctrl core: initialized pinctrl subsystem
[ 0.084823] NET: Registered protocol family 16
[ 0.086330] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.088056] cpuidle: using governor menu
[ 0.113279] SCSI subsystem initialized
[ 0.113592] usbcore: registered new interface driver usbfs
[ 0.113737] usbcore: registered new interface driver hub
[ 0.113932] usbcore: registered new device driver usb
[ 0.114365] pps_core: LinuxPPS API ver. 1 registered
[ 0.114395] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 0.114452] PTP clock support registered
[ 0.114891] Advanced Linux Sound Architecture Driver Initialized.
[ 0.116515] clocksource: Switched to clocksource timer
[ 0.141961] NET: Registered protocol family 2
[ 0.143346] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.143422] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.143472] TCP: Hash tables configured (established 1024 bind 1024)
[ 0.143734] UDP hash table entries: 256 (order: 0, 4096 bytes)
[ 0.143792] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[ 0.144252] NET: Registered protocol family 1
[ 0.145403] RPC: Registered named UNIX socket transport module.
[ 0.145443] RPC: Registered udp transport module.
[ 0.145459] RPC: Registered tcp transport module.
[ 0.145475] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.147898] NetWinder Floating Point Emulator V0.97 (double precision)
[ 0.149657] Initialise system trusted keyrings
[ 0.150181] workingset: timestamp_bits=30 max_order=13 bucket_order=0
[ 0.167279] NFS: Registering the id_resolver key type
[ 0.167362] Key type id_resolver registered
[ 0.167382] Key type id_legacy registered
[ 0.167496] jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
[ 0.181507] Key type asymmetric registered
[ 0.181547] Asymmetric key parser 'x509' registered
[ 0.181749] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251)
[ 0.181783] io scheduler noop registered
[ 0.181801] io scheduler deadline registered
[ 0.182555] io scheduler cfq registered (default)
[ 0.182589] io scheduler mq-deadline registered
[ 0.182606] io scheduler kyber registered
[ 0.183676] sun4i-usb-phy 1c13400.phy: Couldn't request ID GPIO
[ 0.193210] suniv-pinctrl 1c20800.pinctrl: initialized sunXi PIO driver
[ 0.357585] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
[ 0.364078] console [ttyS0] disabled
[ 0.384327] 1c25000.serial: ttyS0 at MMIO 0x1c25000 (irq = 23, base_baud = 6250000) is a 16550A
[ 0.864194] console [ttyS0] enabled
[ 0.874441] panel-simple panel: panel supply power not found, using dummy regulator
[ 0.883749] SCSI Media Changer driver v0.25
[ 0.889365] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 0.895900] ehci-platform: EHCI generic platform driver
[ 0.901482] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 0.907775] ohci-platform: OHCI generic platform driver
[ 0.913388] usbcore: registered new interface driver usb-storage
[ 0.920399] udc-core: couldn't find an available UDC - added [g_cdc] to list of pending drivers
[ 0.929438] i2c /dev entries driver
[ 0.986640] sunxi-mmc 1c0f000.mmc: base:0x1b13b58a irq:19
[ 0.993989] usbcore: registered new interface driver usbhid
[ 0.999685] usbhid: USB HID core driver
[ 1.021228] NET: Registered protocol family 17
[ 1.025915] Key type dns_resolver registered
[ 1.032617] Loading compiled-in X.509 certificates
[ 1.047558] sun4i-drm display-engine: bound 1e60000.display-backend (ops 0xc0739c38)
[ 1.056334] sun4i-drm display-engine: bound 1c0c000.lcd-controller (ops 0xc0738f1c)
[ 1.064121] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 1.070781] [drm] No driver support for vblank timestamp query.
[ 1.124725] Console: switching to colour frame buffer device 60x34
[ 1.148135] sun4i-drm display-engine: fb0: frame buffer device
[ 1.155273] [drm] Initialized sun4i-drm 1.0.0 20150629 for display-engine on minor 0
[ 1.164464] usb_phy_generic usb_phy_generic.0.auto: usb_phy_generic.0.auto supply vcc not found, using dummy regulator
[ 1.176353] musb-hdrc musb-hdrc.1.auto: MUSB HDRC host driver
[ 1.182277] musb-hdrc musb-hdrc.1.auto: new USB bus registered, assigned bus number 1
[ 1.192436] hub 1-0:1.0: USB hub found
[ 1.196360] hub 1-0:1.0: 1 port detected
[ 1.201954] using random self ethernet address
[ 1.206587] using random host ethernet address
[ 1.212828] usb0: HOST MAC 36:09:ad:c1:4e:8f
[ 1.217349] usb0: MAC 7a:33:18:f2:2f:f5
[ 1.221352] g_cdc gadget: CDC Composite Gadget, version: King Kamehameha Day 2008
[ 1.228910] g_cdc gadget: g_cdc ready
[ 1.233490] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[ 1.251122] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[ 1.257988] vcc3v3: disabling
[ 1.260972] ALSA device list:
[ 1.263937] #0: Loopback 1
[ 1.267763] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[ 1.276436] cfg80211: failed to load regulatory.db
[ 1.282223] VFS: Cannot open root device "31:03" or unknown-block(31,3): error -19
[ 1.289993] Please append a correct "root=" boot option; here are the available partitions:
[ 1.298410] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,3)
[ 1.306755] CPU: 0 PID: 1 Comm: swapper Not tainted 4.15.0-rc8-licheepi-nano+ #3
[ 1.314127] Hardware name: Allwinner suniv Family
[ 1.318905] [<c010e550>] (unwind_backtrace) from [<c010b6a8>] (show_stack+0x10/0x14)
[ 1.326663] [<c010b6a8>] (show_stack) from [<c0116878>] (panic+0xb8/0x230)
[ 1.333557] [<c0116878>] (panic) from [<c0901190>] (mount_block_root+0x170/0x250)
[ 1.341043] [<c0901190>] (mount_block_root) from [<c0901364>] (mount_root+0xf4/0x120)
[ 1.348870] [<c0901364>] (mount_root) from [<c09014b8>] (prepare_namespace+0x128/0x188)
[ 1.356869] [<c09014b8>] (prepare_namespace) from [<c0900dc0>] (kernel_init_freeable+0x174/0x1b8)
[ 1.365750] [<c0900dc0>] (kernel_init_freeable) from [<c0663c30>] (kernel_init+0x8/0x10c)
[ 1.373937] [<c0663c30>] (kernel_init) from [<c0107dc0>] (ret_from_fork+0x14/0x34)
[ 1.381499] Rebooting in 5 seconds..
[ 7.360731] Reboot failed -- System halted
与正常的启动代码对比了,发现没有识别spiflash,但是我在内核里已经做了相关配置:
不知道哪里还有毛病?是需要增加spiflash的驱动在kernel里面吗?
页次: 1