自己绘制的V3S板卡,RTL8723DS接到MMC1中 ,使用licheepi的dts文件,uboot、主线kernel4.1.3、buildroot均已正常跑起,已经关闭占用IO的leds,并且打开mmc1。
&mmc1 {
broken-cd;
bus-width = <4>;
vmmc-supply = <®_vcc3v3>;
status = "okay";
};
kernel中编译rtl8723bs的驱动(不知道bs和ds有没有差异,我查资料说ds只是多了bt功能),生成r8723bs.ko
同时拷贝wifi固件rtl8723bs_nic.bin 到根文件系统的 /lib/firmware/rtlwifi/ 目录下
insmod r8723bs.ko时,日志如下
# insmod r8723bs.ko
[ 486.608732] r8723bs: module is from the staging directory, the quality is unknown, you have been warned.
[ 486.625290] RTL8723BS: module init start
[ 486.629363] RTL8723BS: rtl8723bs v4.3.5.5_12290.20140916_BTCOEX20140507-4E40
[ 486.636428] RTL8723BS: rtl8723bs BT-Coex version = BTCOEX20140507-4E40
[ 486.643041] RTL8723BS: module init ret =0
#
# ifconfig -a
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
从上面看加载驱动时并没有报相关的错误,但也没看到下载固件的日志,最终还是找不到wlan0
硬件信号测试:
模组VCC供电3.3V、电压纹波正常,天线未焊接
CLK线上有时钟信号产生,但是时钟下边沿不是0V,不知道有没有影响。
wifi模块原理图如下:
各位大佬能不能给个排查思路,感谢!
最近编辑记录 kemp (2023-10-18 09:04:27)
离线
附上完整的开机日志:
U-Boot SPL 2017.01-rc2-00073-gdd6e874-dirty (Oct 14 2023 - 16:57:06)
DRAM: 64 MiB
Trying to boot from MMC1
U-Boot 2017.01-rc2-00073-gdd6e874-dirty (Oct 14 2023 - 16:57:06 +0000) Allwinner Technology
CPU: Allwinner V3s (SUN8I 1681)
Model: Lichee Pi Zero
DRAM: 64 MiB
MMC: SUNXI SD/MMC: 0
SF: unrecognized JEDEC id bytes: 00, 00, 00
*** Warning - spi_flash_probe() failed, using default environment
Setting up a 800x480 lcd console (overscan 0x0)
dotclock: 33000kHz = 33000kHz: (1 * 3MHz * 66) / 6
In: serial@01c28000
Out: serial@01c28000
Err: serial@01c28000
U-Boot 2017.01-rc2-00073-gdd6e874-dirty (Oct 14 2023 - 16:57:06 +0000) Allwinner Technology
CPU: Allwinner V3s (SUN8I 1681)
Model: Lichee Pi Zero
DRAM: 64 MiB
MMC: SUNXI SD/MMC: 0
SF: unrecognized JEDEC id bytes: 00, 00, 00
*** Warning - spi_flash_probe() failed, using default environment
Setting up a 800x480 lcd console (overscan 0x0)
dotclock: 33000kHz = 33000kHz: (1 * 3MHz * 66) / 6
In: serial@01c28000
Out: serial@01c28000
Err: serial@01c28000
Net: No ethernet found.
starting USB...
No controllers found
Hit any key to stop autoboot: 2
1
0
reading zImage
4105144 bytes read in 211 ms (18.6 MiB/s)
reading sun8i-v3s-licheepi-zero-dock.dtb
11741 bytes read in 26 ms (440.4 KiB/s)
## Flattened Device Tree blob at 41800000
Booting using the fdt blob at 0x41800000
Loading Device Tree to 42dfa000, end 42dffddc ... OK
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 4.13.0-licheepi-zero+ (root@5b077f6e0bc8) (gcc version 6.3.1 20170404 (Linaro GCC 6.3-2017.05)) #3 SMP Tue Oct 17 13:52:01 UTC 2023
[ 0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
[ 0.000000] CPU: div instructions available: patching division code
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] OF: fdt: Machine model: Lichee Pi Zero with Dock
[ 0.000000] Memory policy: Data cache writealloc
[ 0.000000] percpu: Embedded 16 pages/cpu @c3de6000 s33868 r8192 d23476 u65536
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 15883
[ 0.000000] Kernel command line: console=ttyS0,115200 panic=5 rootwait mtdparts=spi32766.0:1M(uboot)ro,64k(dtb)ro,6M(kernel)ro,-(rootfs) root=/dev/mmcblk0p2 earlyprintk rw
[ 0.000000] PID hash table entries: 256 (order: -2, 1024 bytes)
[ 0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
[ 0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.000000] Memory: 53580K/64036K available (6144K kernel code, 219K rwdata, 1468K rodata, 1024K init, 262K bss, 10456K 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 : 0xc4000000 - 0xff800000 ( 952 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xc3e89000 ( 62 MB)
[ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
[ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
[ 0.000000] .text : 0xc0008000 - 0xc0700000 (7136 kB)
[ 0.000000] .init : 0xc0900000 - 0xc0a00000 (1024 kB)
[ 0.000000] .data : 0xc0a00000 - 0xc0a36dc0 ( 220 kB)
[ 0.000000] .bss : 0xc0a3d8b0 - 0xc0a7f194 ( 263 kB)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] Hierarchical RCU implementation.
[ 0.000000] RCU event tracing is enabled.
[ 0.000000] RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=1.
[ 0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[ 0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (virt).
[ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[ 0.000009] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[ 0.000021] Switching to timer-based delay loop, resolution 41ns
[ 0.000191] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[ 0.000419] Console: colour dummy device 80x30
[ 0.000456] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
[ 0.000471] pid_max: default: 32768 minimum: 301
[ 0.000602] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.000615] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.001214] CPU: Testing write buffer coherency: ok
[ 0.001595] /cpus/cpu@0 missing clock-frequency property
[ 0.001620] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[ 0.002059] Setting up static identity map for 0x40100000 - 0x40100060
[ 0.002240] Hierarchical SRCU implementation.
[ 0.002747] smp: Bringing up secondary CPUs ...
[ 0.002761] smp: Brought up 1 node, 1 CPU
[ 0.002772] SMP: Total of 1 processors activated (48.00 BogoMIPS).
[ 0.002779] CPU: All CPU(s) started in SVC mode.
[ 0.003545] devtmpfs: initialized
[ 0.006666] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
[ 0.006958] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.006986] futex hash table entries: 256 (order: 2, 16384 bytes)
[ 0.007148] pinctrl core: initialized pinctrl subsystem
[ 0.008044] random: get_random_u32 called from bucket_table_alloc+0xf4/0x244 with crng_init=0
[ 0.008181] NET: Registered protocol family 16
[ 0.008655] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.009766] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[ 0.009783] hw-breakpoint: maximum watchpoint size is 8 bytes.
[ 0.023267] SCSI subsystem initialized
[ 0.023548] usbcore: registered new interface driver usbfs
[ 0.023634] usbcore: registered new interface driver hub
[ 0.023724] usbcore: registered new device driver usb
[ 0.023974] pps_core: LinuxPPS API ver. 1 registered
[ 0.023983] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 0.024005] PTP clock support registered
[ 0.024216] Advanced Linux Sound Architecture Driver Initialized.
[ 0.024892] Bluetooth: Core ver 2.22
[ 0.024966] NET: Registered protocol family 31
[ 0.024974] Bluetooth: HCI device and connection manager initialized
[ 0.024991] Bluetooth: HCI socket layer initialized
[ 0.025002] Bluetooth: L2CAP socket layer initialized
[ 0.025037] Bluetooth: SCO socket layer initialized
[ 0.026245] clocksource: Switched to clocksource arch_sys_counter
[ 0.037480] NET: Registered protocol family 2
[ 0.038091] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.038126] TCP bind hash table entries: 1024 (order: 1, 8192 bytes)
[ 0.038150] TCP: Hash tables configured (established 1024 bind 1024)
[ 0.038280] UDP hash table entries: 256 (order: 1, 8192 bytes)
[ 0.038328] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
[ 0.038548] NET: Registered protocol family 1
[ 0.039137] RPC: Registered named UNIX socket transport module.
[ 0.039154] RPC: Registered udp transport module.
[ 0.039160] RPC: Registered tcp transport module.
[ 0.039166] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.041264] workingset: timestamp_bits=30 max_order=14 bucket_order=0
[ 0.050323] NFS: Registering the id_resolver key type
[ 0.050373] Key type id_resolver registered
[ 0.050381] Key type id_legacy registered
[ 0.051353] random: fast init done
[ 0.054361] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 249)
[ 0.054385] io scheduler noop registered
[ 0.054393] io scheduler deadline registered
[ 0.054634] io scheduler cfq registered (default)
[ 0.054646] io scheduler mq-deadline registered
[ 0.054654] io scheduler kyber registered
[ 0.059129] sun8i-v3s-pinctrl 1c20800.pinctrl: initialized sunXi PIO driver
[ 0.131137] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
[ 0.134513] console [ttyS0] disabled
[ 0.154788] 1c28000.serial: ttyS0 at MMIO 0x1c28000 (irq = 36, base_baud = 1500000) is a U6_16550A
[ 0.766530] console [ttyS0] enabled
[ 0.791543] 1c28800.serial: ttyS1 at MMIO 0x1c28800 (irq = 37, base_baud = 1500000) is a U6_16550A
[ 0.804068] libphy: Fixed MDIO Bus: probed
[ 0.808686] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 0.815212] ehci-platform: EHCI generic platform driver
[ 0.820765] ehci-platform 1c1a000.usb: EHCI Host Controller
[ 0.826439] ehci-platform 1c1a000.usb: new USB bus registered, assigned bus number 1
[ 0.834361] ehci-platform 1c1a000.usb: irq 26, io mem 0x01c1a000
[ 0.866256] ehci-platform 1c1a000.usb: USB 2.0 started, EHCI 1.00
[ 0.873476] hub 1-0:1.0: USB hub found
[ 0.877402] hub 1-0:1.0: 1 port detected
[ 0.881883] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 0.888183] ohci-platform: OHCI generic platform driver
[ 0.893728] ohci-platform 1c1a400.usb: Generic Platform OHCI controller
[ 0.900459] ohci-platform 1c1a400.usb: new USB bus registered, assigned bus number 2
[ 0.908388] ohci-platform 1c1a400.usb: irq 27, io mem 0x01c1a400
[ 0.981330] hub 2-0:1.0: USB hub found
[ 0.985148] hub 2-0:1.0: 1 port detected
[ 0.992764] udc-core: couldn't find an available UDC - added [g_cdc] to list of pending drivers
[ 1.002379] input: 1c22800.lradc as /devices/platform/soc/1c22800.lradc/input/input0
[ 1.011336] sun6i-rtc 1c20400.rtc: rtc core: registered rtc-sun6i as rtc0
[ 1.018245] sun6i-rtc 1c20400.rtc: RTC enabled
[ 1.022787] i2c /dev entries driver
[ 1.027823] input: ns2009_ts as /devices/platform/soc/1c2ac00.i2c/i2c-0/0-0048/input/input1
[ 1.037372] sunxi-wdt 1c20ca0.watchdog: Watchdog enabled (timeout=16 sec, nowayout=0)
[ 1.045297] Bluetooth: HCI UART driver ver 2.3
[ 1.049848] Bluetooth: HCI UART protocol Three-wire (H5) registered
[ 1.116296] sunxi-mmc 1c0f000.mmc: base:0xc406d000 irq:23
[ 1.164273] mmc0: host does not support reading read-only switch, assuming write-enable
[ 1.175447] mmc0: new high speed SDHC card at address aaaa
[ 1.181516] sunxi-mmc 1c10000.mmc: base:0xc4071000 irq:24
[ 1.188067] usbcore: registered new interface driver usbhid
[ 1.193642] usbhid: USB HID core driver
[ 1.198264] mmcblk0: mmc0:aaaa SH32G 29.7 GiB
[ 1.205945] sun4i-codec 1c22c00.codec: ASoC: /soc/codec-analog@01c23000 not registered
[ 1.214005] sun4i-codec 1c22c00.codec: Failed to register our card
[ 1.222557] mmcblk0: p1 p2
[ 1.226601] sunxi-mmc 1c10000.mmc: card claims to support voltages below defined range
[ 1.235543] NET: Registered protocol family 17
[ 1.240229] Key type dns_resolver registered
[ 1.244640] Registering SWP/SWPB emulation handler
[ 1.254159] simple-framebuffer 43e89000.framebuffer: framebuffer at 0x43e89000, 0x177000 bytes, mapped to 0xc4380000
[ 1.264828] simple-framebuffer 43e89000.framebuffer: format=x8r8g8b8, mode=800x480x32, linelength=3200
[ 1.281149] Console: switching to colour frame buffer device 100x30
[ 1.293580] simple-framebuffer 43e89000.framebuffer: fb0: simplefb registered!
[ 1.302143] usb_phy_generic usb_phy_generic.0.auto: usb_phy_generic.0.auto supply vcc not found, using dummy regulator
[ 1.313539] musb-hdrc musb-hdrc.1.auto: MUSB HDRC host driver
[ 1.319382] musb-hdrc musb-hdrc.1.auto: new USB bus registered, assigned bus number 3
[ 1.328534] hub 3-0:1.0: USB hub found
[ 1.332400] hub 3-0:1.0: 1 port detected
[ 1.337713] using random self ethernet address
[ 1.342168] using random host ethernet address
[ 1.347755] usb0: HOST MAC 6a:16:d4:89:b8:6e
[ 1.352079] usb0: MAC 9e:83:ef:6f:8f:87
[ 1.355958] g_cdc gadget: CDC Composite Gadget, version: King Kamehameha Day 2008
[ 1.363545] g_cdc gadget: g_cdc ready
[ 1.369894] sun4i-codec 1c22c00.codec: Codec <-> 1c22c00.codec mapping ok
[ 1.378718] sun6i-rtc 1c20400.rtc: setting system clock to 1970-01-01 00:12:11 UTC (731)
[ 1.387148] vcc5v0: disabling
[ 1.390127] ALSA device list:
[ 1.393090] #0: V3s Audio Codec
[ 1.398477] EXT4-fs (mmcblk0p2): couldn't mount as ext3 due to feature incompatibilities
[ 1.407745] EXT4-fs (mmcblk0p2): couldn't mount as ext2 due to feature incompatibilities
[ 1.418684] mmc1: new high speed SDIO card at address 0001
[ 1.449345] EXT4-fs (mmcblk0p2): recovery complete
[ 1.456001] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[ 1.464233] VFS: Mounted root (ext4 filesystem) on device 179:2.
[ 1.471107] devtmpfs: mounted
[ 1.475385] Freeing unused kernel memory: 1024K
[ 1.519728] musb-hdrc musb-hdrc.1.auto: VBUS_ERROR in b_idle (80, <SessEnd), retry #0, port1 00000100
[ 1.590177] EXT4-fs (mmcblk0p2): re-mounted. Opts: data=ordered
Starting logging: OK
Initializing random number generator... done.
Starting system message bus:
done
Starting network:
OK
Welcome to LicheePi
licheepi login:
离线
同时贴上dtb转换回的dts,目前还没啥头绪
/dts-v1/;
/ {
#address-cells = <0x1>;
#size-cells = <0x1>;
interrupt-parent = <0x1>;
model = "Lichee Pi Zero with Dock";
compatible = "licheepi,licheepi-zero-dock", "licheepi,licheepi-zero", "allwinner,sun8i-v3s";
chosen {
#address-cells = <0x1>;
#size-cells = <0x1>;
ranges;
stdout-path = "serial0:115200n8";
framebuffer@0 {
compatible = "allwinner,simple-framebuffer", "simple-framebuffer";
allwinner,pipeline = "de0-lcd0";
clocks = <0x2 0x21 0x3 0x0 0x3 0x6 0x2 0x40>;
status = "disabled";
};
};
cpus {
#address-cells = <0x1>;
#size-cells = <0x0>;
cpu@0 {
compatible = "arm,cortex-a7";
device_type = "cpu";
reg = <0x0>;
clocks = <0x2 0xe>;
};
};
display-engine {
compatible = "allwinner,sun8i-v3s-display-engine";
allwinner,pipelines = <0x4>;
status = "disabled";
};
timer {
compatible = "arm,armv7-timer";
interrupts = <0x1 0xd 0xf08 0x1 0xe 0xf08 0x1 0xb 0xf08 0x1 0xa 0xf08>;
};
clocks {
#address-cells = <0x1>;
#size-cells = <0x1>;
ranges;
osc24M_clk {
#clock-cells = <0x0>;
compatible = "fixed-clock";
clock-frequency = <0x16e3600>;
clock-output-names = "osc24M";
linux,phandle = <0xc>;
phandle = <0xc>;
};
osc32k_clk {
#clock-cells = <0x0>;
compatible = "fixed-clock";
clock-frequency = <0x8000>;
clock-output-names = "osc32k";
linux,phandle = <0xd>;
phandle = <0xd>;
};
};
soc {
compatible = "simple-bus";
#address-cells = <0x1>;
#size-cells = <0x1>;
ranges;
clock@1000000 {
compatible = "allwinner,sun8i-v3s-de2-clk";
reg = <0x1000000 0x100000>;
clocks = <0x2 0x3f 0x2 0x23>;
clock-names = "mod", "bus";
resets = <0x2 0x22>;
#clock-cells = <0x1>;
#reset-cells = <0x1>;
linux,phandle = <0x3>;
phandle = <0x3>;
};
mixer@1100000 {
compatible = "allwinner,sun8i-v3s-de2-mixer";
reg = <0x1100000 0x100000>;
clocks = <0x3 0x0 0x3 0x6>;
clock-names = "bus", "mod";
resets = <0x3 0x0>;
assigned-clocks = <0x3 0x6>;
assigned-clock-rates = <0x8f0d180>;
linux,phandle = <0x4>;
phandle = <0x4>;
ports {
#address-cells = <0x1>;
#size-cells = <0x0>;
port@1 {
#address-cells = <0x1>;
#size-cells = <0x0>;
reg = <0x1>;
endpoint@0 {
reg = <0x0>;
remote-endpoint = <0x5>;
linux,phandle = <0x6>;
phandle = <0x6>;
};
};
};
};
syscon@1c00000 {
compatible = "allwinner,sun8i-v3s-system-controller", "syscon";
reg = <0x1c00000 0x1000>;
linux,phandle = <0x14>;
phandle = <0x14>;
};
lcd-controller@1c0c000 {
compatible = "allwinner,sun8i-v3s-tcon";
reg = <0x1c0c000 0x1000>;
interrupts = <0x0 0x56 0x4>;
clocks = <0x2 0x21 0x2 0x40>;
clock-names = "ahb", "tcon-ch0";
clock-output-names = "tcon-pixel-clock";
resets = <0x2 0x1b>;
reset-names = "lcd";
status = "disabled";
ports {
#address-cells = <0x1>;
#size-cells = <0x0>;
port@0 {
#address-cells = <0x1>;
#size-cells = <0x0>;
reg = <0x0>;
endpoint@0 {
reg = <0x0>;
remote-endpoint = <0x6>;
linux,phandle = <0x5>;
phandle = <0x5>;
};
};
port@1 {
#address-cells = <0x1>;
#size-cells = <0x0>;
reg = <0x1>;
};
};
};
dma-controller@01c02000 {
compatible = "allwinner,sun8i-v3s-dma";
reg = <0x1c02000 0x1000>;
interrupts = <0x0 0x32 0x4>;
clocks = <0x2 0x15>;
resets = <0x2 0x6>;
#dma-cells = <0x1>;
linux,phandle = <0xf>;
phandle = <0xf>;
};
mmc@01c0f000 {
compatible = "allwinner,sun7i-a20-mmc";
reg = <0x1c0f000 0x1000>;
clocks = <0x2 0x16 0x2 0x2d 0x2 0x2f 0x2 0x2e>;
clock-names = "ahb", "mmc", "output", "sample";
resets = <0x2 0x7>;
reset-names = "ahb";
interrupts = <0x0 0x3c 0x4>;
status = "okay";
#address-cells = <0x1>;
#size-cells = <0x0>;
pinctrl-0 = <0x7>;
pinctrl-names = "default";
broken-cd;
bus-width = <0x4>;
vmmc-supply = <0x8>;
};
mmc@01c10000 {
compatible = "allwinner,sun7i-a20-mmc";
reg = <0x1c10000 0x1000>;
clocks = <0x2 0x17 0x2 0x30 0x2 0x32 0x2 0x31>;
clock-names = "ahb", "mmc", "output", "sample";
resets = <0x2 0x8>;
reset-names = "ahb";
interrupts = <0x0 0x3d 0x4>;
pinctrl-names = "default";
pinctrl-0 = <0x9>;
status = "okay";
#address-cells = <0x1>;
#size-cells = <0x0>;
broken-cd;
bus-width = <0x4>;
vmmc-supply = <0x8>;
};
mmc@01c11000 {
compatible = "allwinner,sun7i-a20-mmc";
reg = <0x1c11000 0x1000>;
clocks = <0x2 0x18 0x2 0x33 0x2 0x35 0x2 0x34>;
clock-names = "ahb", "mmc", "output", "sample";
resets = <0x2 0x9>;
reset-names = "ahb";
interrupts = <0x0 0x3e 0x4>;
status = "disabled";
#address-cells = <0x1>;
#size-cells = <0x0>;
};
usb@01c19000 {
compatible = "allwinner,sun8i-h3-musb";
reg = <0x1c19000 0x400>;
clocks = <0x2 0x1d>;
resets = <0x2 0x11>;
interrupts = <0x0 0x47 0x4>;
interrupt-names = "mc";
phys = <0xa 0x0>;
phy-names = "usb";
extcon = <0xa 0x0>;
status = "okay";
dr_mode = "otg";
};
phy@01c19400 {
compatible = "allwinner,sun8i-v3s-usb-phy";
reg = <0x1c19400 0x2c 0x1c1a800 0x4>;
reg-names = "phy_ctrl", "pmu0";
clocks = <0x2 0x38>;
clock-names = "usb0_phy";
resets = <0x2 0x0>;
reset-names = "usb0_reset";
status = "okay";
#phy-cells = <0x1>;
usb0_id_det-gpio = <0xb 0x5 0x6 0x0>;
linux,phandle = <0xa>;
phandle = <0xa>;
};
usb@01c1a000 {
compatible = "allwinner,sun8i-v3s-ehci", "generic-ehci";
reg = <0x1c1a000 0x100>;
interrupts = <0x0 0x48 0x4>;
clocks = <0x2 0x1e 0x2 0x1f>;
resets = <0x2 0x12 0x2 0x16>;
status = "okay";
};
usb@01c1a400 {
compatible = "allwinner,sun8i-v3s-ohci", "generic-ohci";
reg = <0x1c1a400 0x100>;
interrupts = <0x0 0x49 0x4>;
clocks = <0x2 0x1e 0x2 0x1f 0x2 0x39>;
resets = <0x2 0x12 0x2 0x16>;
status = "okay";
};
clock@01c20000 {
compatible = "allwinner,sun8i-v3s-ccu";
reg = <0x1c20000 0x400>;
clocks = <0xc 0xd>;
clock-names = "hosc", "losc";
#clock-cells = <0x1>;
#reset-cells = <0x1>;
linux,phandle = <0x2>;
phandle = <0x2>;
};
rtc@01c20400 {
compatible = "allwinner,sun6i-a31-rtc";
reg = <0x1c20400 0x54>;
interrupts = <0x0 0x28 0x4 0x0 0x29 0x4>;
};
pinctrl@01c20800 {
compatible = "allwinner,sun8i-v3s-pinctrl";
reg = <0x1c20800 0x400>;
interrupts = <0x0 0xf 0x4 0x0 0x11 0x4>;
clocks = <0x2 0x25 0xc 0xd>;
clock-names = "apb", "hosc", "losc";
gpio-controller;
#gpio-cells = <0x3>;
interrupt-controller;
#interrupt-cells = <0x3>;
linux,phandle = <0xb>;
phandle = <0xb>;
i2c0 {
pins = "PB6", "PB7";
function = "i2c0";
linux,phandle = <0x13>;
phandle = <0x13>;
};
uart0@0 {
pins = "PB8", "PB9";
function = "uart0";
linux,phandle = <0x11>;
phandle = <0x11>;
};
uart1@0 {
pins = "PE21", "PE22";
function = "uart1";
bias-pull-up;
};
uart2@0 {
pins = "PB0", "PB1";
function = "uart2";
bias-pull-up;
linux,phandle = <0x12>;
phandle = <0x12>;
};
mmc0@0 {
pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5";
function = "mmc0";
drive-strength = <0x1e>;
bias-pull-up;
linux,phandle = <0x7>;
phandle = <0x7>;
};
mmc1 {
pins = "PG0", "PG1", "PG2", "PG3", "PG4", "PG5";
function = "mmc1";
drive-strength = <0x1e>;
bias-pull-up;
linux,phandle = <0x9>;
phandle = <0x9>;
};
spi0 {
pins = "PC0", "PC1", "PC2", "PC3";
function = "spi0";
linux,phandle = <0x16>;
phandle = <0x16>;
};
};
timer@01c20c00 {
compatible = "allwinner,sun4i-a10-timer";
reg = <0x1c20c00 0xa0>;
interrupts = <0x0 0x12 0x4 0x0 0x13 0x4>;
clocks = <0xc>;
};
watchdog@01c20ca0 {
compatible = "allwinner,sun6i-a31-wdt";
reg = <0x1c20ca0 0x20>;
interrupts = <0x0 0x19 0x4>;
};
lradc@1c22800 {
compatible = "allwinner,sun4i-a10-lradc-keys";
reg = <0x1c22800 0x400>;
interrupts = <0x0 0x1e 0x4>;
status = "okay";
vref-supply = <0xe>;
button@200 {
label = "Volume Up";
linux,code = <0x73>;
channel = <0x0>;
voltage = <0x30d40>;
};
button@400 {
label = "Volume Down";
linux,code = <0x72>;
channel = <0x0>;
voltage = <0x61a80>;
};
button@600 {
label = "Select";
linux,code = <0x161>;
channel = <0x0>;
voltage = <0x927c0>;
};
button@800 {
label = "Start";
linux,code = <0x160>;
channel = <0x0>;
voltage = <0xc3500>;
};
};
codec@01c22c00 {
#sound-dai-cells = <0x0>;
compatible = "allwinner,sun8i-v3s-codec";
reg = <0x1c22c00 0x400>;
interrupts = <0x0 0x1d 0x4>;
clocks = <0x2 0x24 0x2 0x46>;
clock-names = "apb", "codec";
resets = <0x2 0x28>;
dmas = <0xf 0xf 0xf 0xf>;
dma-names = "rx", "tx";
allwinner,codec-analog-controls = <0x10>;
status = "okay";
allwinner,audio-routing = "Headphone", "HP", "Headphone", "HPCOM", "MIC1", "Mic", "Mic", "HBIAS";
};
codec-analog@01c23000 {
compatible = "allwinner,sun8i-v3s-codec-analog";
reg = <0x1c23000 0x4>;
linux,phandle = <0x10>;
phandle = <0x10>;
};
serial@01c28000 {
compatible = "snps,dw-apb-uart";
reg = <0x1c28000 0x400>;
interrupts = <0x0 0x0 0x4>;
reg-shift = <0x2>;
reg-io-width = <0x4>;
clocks = <0x2 0x28>;
resets = <0x2 0x31>;
status = "okay";
pinctrl-0 = <0x11>;
pinctrl-names = "default";
};
serial@01c28400 {
compatible = "snps,dw-apb-uart";
reg = <0x1c28400 0x400>;
interrupts = <0x0 0x1 0x4>;
reg-shift = <0x2>;
reg-io-width = <0x4>;
clocks = <0x2 0x29>;
resets = <0x2 0x32>;
status = "disabled";
};
serial@01c28800 {
compatible = "snps,dw-apb-uart";
reg = <0x1c28800 0x400>;
interrupts = <0x0 0x2 0x4>;
reg-shift = <0x2>;
reg-io-width = <0x4>;
clocks = <0x2 0x2a>;
resets = <0x2 0x33>;
status = "okay";
pinctrl-0 = <0x12>;
pinctrl-names = "default";
};
i2c@01c2ac00 {
compatible = "allwinner,sun6i-a31-i2c";
reg = <0x1c2ac00 0x400>;
interrupts = <0x0 0x6 0x4>;
clocks = <0x2 0x26>;
resets = <0x2 0x2e>;
pinctrl-names = "default";
pinctrl-0 = <0x13>;
status = "okay";
#address-cells = <0x1>;
#size-cells = <0x0>;
ns2009@48 {
compatible = "nsiway,ns2009";
reg = <0x48>;
};
};
i2c@01c2b000 {
compatible = "allwinner,sun6i-a31-i2c";
reg = <0x1c2b000 0x400>;
interrupts = <0x0 0x7 0x4>;
clocks = <0x2 0x27>;
resets = <0x2 0x2f>;
status = "disabled";
#address-cells = <0x1>;
#size-cells = <0x0>;
};
ethernet@1c30000 {
compatible = "allwinner,sun8i-v3s-emac";
syscon = <0x14>;
reg = <0x1c30000 0x10000>;
interrupts = <0x0 0x52 0x4>;
interrupt-names = "macirq";
resets = <0x2 0xc>;
reset-names = "stmmaceth";
clocks = <0x2 0x1a>;
clock-names = "stmmaceth";
phy-handle = <0x15>;
phy-mode = "mii";
#address-cells = <0x1>;
#size-cells = <0x0>;
status = "okay";
mdio {
#address-cells = <0x1>;
#size-cells = <0x0>;
ethernet-phy@1 {
compatible = "ethernet-phy-ieee802.3-c22";
reg = <0x1>;
clocks = <0x2 0x2b>;
resets = <0x2 0x27>;
phy-is-integrated;
linux,phandle = <0x15>;
phandle = <0x15>;
};
};
};
spi@1c68000 {
compatible = "allwinner,sun8i-h3-spi";
reg = <0x1c68000 0x1000>;
interrupts = <0x0 0x41 0x4>;
clocks = <0x2 0x1c 0x2 0x37>;
clock-names = "ahb", "mod";
pinctrl-names = "default";
pinctrl-0 = <0x16>;
resets = <0x2 0xf>;
status = "disabled";
#address-cells = <0x1>;
#size-cells = <0x0>;
};
interrupt-controller@01c81000 {
compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic";
reg = <0x1c81000 0x1000 0x1c82000 0x1000 0x1c84000 0x2000 0x1c86000 0x2000>;
interrupt-controller;
#interrupt-cells = <0x3>;
interrupts = <0x1 0x9 0xf04>;
linux,phandle = <0x1>;
phandle = <0x1>;
};
};
ahci-5v {
compatible = "regulator-fixed";
regulator-name = "ahci-5v";
regulator-min-microvolt = <0x4c4b40>;
regulator-max-microvolt = <0x4c4b40>;
regulator-boot-on;
enable-active-high;
gpio = <0xb 0x1 0x8 0x0>;
status = "disabled";
};
usb0-vbus {
compatible = "regulator-fixed";
regulator-name = "usb0-vbus";
regulator-min-microvolt = <0x4c4b40>;
regulator-max-microvolt = <0x4c4b40>;
enable-active-high;
gpio = <0xb 0x1 0x9 0x0>;
status = "disabled";
};
usb1-vbus {
compatible = "regulator-fixed";
regulator-name = "usb1-vbus";
regulator-min-microvolt = <0x4c4b40>;
regulator-max-microvolt = <0x4c4b40>;
regulator-boot-on;
enable-active-high;
gpio = <0xb 0x7 0x6 0x0>;
status = "disabled";
};
usb2-vbus {
compatible = "regulator-fixed";
regulator-name = "usb2-vbus";
regulator-min-microvolt = <0x4c4b40>;
regulator-max-microvolt = <0x4c4b40>;
regulator-boot-on;
enable-active-high;
gpio = <0xb 0x7 0x3 0x0>;
status = "disabled";
};
vcc3v0 {
compatible = "regulator-fixed";
regulator-name = "vcc3v0";
regulator-min-microvolt = <0x2dc6c0>;
regulator-max-microvolt = <0x2dc6c0>;
linux,phandle = <0xe>;
phandle = <0xe>;
};
vcc3v3 {
compatible = "regulator-fixed";
regulator-name = "vcc3v3";
regulator-min-microvolt = <0x325aa0>;
regulator-max-microvolt = <0x325aa0>;
linux,phandle = <0x8>;
phandle = <0x8>;
};
vcc5v0 {
compatible = "regulator-fixed";
regulator-name = "vcc5v0";
regulator-min-microvolt = <0x4c4b40>;
regulator-max-microvolt = <0x4c4b40>;
};
aliases {
serial0 = "/soc/serial@01c28000";
ethernet0 = "/soc/ethernet@1c30000";
};
leds {
compatible = "gpio-leds";
status = "disbaled";
blue_led {
label = "licheepi:blue:usr";
gpios = <0xb 0x6 0x1 0x1>;
};
green_led {
label = "licheepi:green:usr";
gpios = <0xb 0x6 0x0 0x1>;
default-state = "on";
};
red_led {
label = "licheepi:red:usr";
gpios = <0xb 0x6 0x2 0x1>;
};
};
};
离线
排查了可能的几种情况
1、uboot加载的dts不对,clk有信号,所以dts应该没问题,另外,tf卡只烧录了带dock的dtb
2、leds占用io,dts中已经disable掉leds配置
3、rtl8723ds需要上拉VBAT_EN引脚?原理图这个io是悬空的,不知道会不会有影响,已经上拉验证,并不影响
最近编辑记录 kemp (2023-10-18 22:35:15)
离线
焊接也测试过没有短路,没有虚焊。
离线
dts 里面 sdc1 okay了吗?
是的,DTS中已经设置为okay,从卡中读出DTB生成的DTS也能看到
&mmc1 {
broken-cd;
bus-width = <4>;
vmmc-supply = <®_vcc3v3>;
status = "okay";
};
同时,内核编译也已经打开依赖
CONFIG_WLAN=y
CONFIG_MMC=y
CONFIG_CFG80211=y
离线
驱动不对吧,
[ 1.418684] mmc1: new high speed SDIO card at address 0001
看着是认卡了,看一下卡的ID是什么rtl8723b的ID是024c:B723,
rtl8723d的ID是024c:D723/D724
编译时打开支持了吗?
MMC1读到的地址是0001,可以通过sudo blkid查看挂载的sd设备是吗?一般通过哪个指令查询呢,这块不太熟悉,感谢大佬支持
这里说的编译支持指的是dts和内核的mmc1和下面这些吗?
我dts打开了mmc1,然后占用PG口的leds已经disable
CONFIG_WLAN=y
CONFIG_MMC=y
CONFIG_CFG80211=y
CONFIG_RTL8723BS=y
还是有其他需要打开的?
最近编辑记录 kemp (2023-10-19 09:29:05)
离线
@kemp https://whycan.com/viewtopic.php?id=10207
螃蟹家不同尾缀字母就是不同芯片,驱动不兼容编辑驱动的Makefile,不是linux的
CONFIG_RTL8723D = y指的类似USB一样VIDPID来让驱动识别的,sdio卡也有,/sys下的哪个文件我忘记了
好的,感谢。
我对比了下RTL8723BS和RTL8723DS,发现两个版本只是支持蓝牙的协议栈不一样,其它兼容,我再找找DS的固件和驱动看看,另外,我也买了几块BS的模组,等到了同步验证下。
同时,我计划把bus-width改为单线模式看看,不知道layout上面会不会影响到。
指令应该是这两条
~# ls /sys/bus/sdio/devices/
~# cat /sys/bus/sdio/devices/mmcxxx
最近编辑记录 kemp (2023-10-19 10:30:44)
离线
@kemp
/sys/bus/[mmc|sdio]/devices/X:XXXX/
下的manfid与oemid如果确定找不到RTL8723D的驱动想用RTL8723B源码尝试,
就在sdio_intf.c里强行加入上面ID
感谢大佬,果然是驱动的问题。
我下载了这个驱动加到内核中可以了,驱动源码如下:
https://github.com/lwfinger/rtl8723ds/tree/master
但是多了一个问题,一下子出来两个网卡
# ifconfig -a
wlan0 Link encap:Ethernet HWaddr 34:75:63:28:56:4F
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
wlan1 Link encap:Ethernet HWaddr 36:75:63:28:56:4F
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
当然了,我单独启动wlan0是可以的,但是这个wlan1是哪里来的呢,奇怪了
# ping www.baidu.com
PING www.baidu.com (120.232.145.185): 56 data bytes
64 bytes from 120.232.145.185: seq=0 ttl=51 time=58.909 ms
64 bytes from 120.232.145.185: seq=1 ttl=51 time=35.932 ms
离线
@kemp
开了ap和sta共存了吧
配的 CONFIG_PLATFORM_ARM_SUNxI?
makefile里合适位置屏蔽掉 CONFIG_CONCURRENT_MODE 相关的
是的,验证了下,的确是开了共存模式导致。
离线