环境:WIN10 虚拟机Ubuntu 18.04
安装过程百度搜索即可
sudo apt-get update
sudo apt-get upgrade
经过漫长的等待之后更新完成
之后准备编译环境
sudo apt install gcc build-essential bison flex gettext tcl sharutils libncurses-dev zlib1g-dev exuberant-ctags g++ texinfo patch vim libtool bc git python3 unzip python3-distutils swig python-dev
sudo apt install gcc-arm-linux-gnueabihf
从官网下载Buildroot包
我使用的是
buildroot-2020.02.8.tar.gz
解压缩后开始编译
进入目录
cd buildroot-2020.02.8
生成配置文件
make licheepi_zero_defconfig
进行编译
make
编译完成后在/buildroot-2020.02.8/output/images/目录下顺利得到sdcard.img
使用Win32 Disk Imager将sdcard.img烧写进SD卡
启动后
串口0打印输出如下
U-Boot SPL 2019.10 (Jan 06 2021 - 12:31:54 +0800)
DRAM: 64 MiB
Trying to boot from MMC1
U-Boot 2019.10 (Jan 06 2021 - 12:31:54 +0800) Allwinner Technology
CPU: Allwinner V3s (SUN8I 1681)
Model: Lichee Pi Zero
DRAM: 64 MiB
MMC: mmc@01c0f000: 0
Loading Environment from FAT... *** Warning - bad CRC, using default environment
In: serial@01c28000
Out: serial@01c28000
Err: serial@01c28000
Net: No ethernet found.
starting USB...
No working controllers found
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
292 bytes read in 3 ms (94.7 KiB/s)
## Executing script at 41900000
4174456 bytes read in 424 ms (9.4 MiB/s)
9041 bytes read in 5 ms (1.7 MiB/s)
## Flattened Device Tree blob at 41800000
Booting using the fdt blob at 0x41800000
Loading Device Tree to 42dfa000, end 42dff350 ... OK
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 5.3.5 (zhang@ubuntu) (gcc version 8.4.0 (Buildroot 2020.02.8)) #1 SMP Wed Jan 6 12:33:08 CST 2021
[ 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] cma: Reserved 16 MiB at 0x41c00000
[ 0.000000] psci: probing for conduit method from DT.
[ 0.000000] psci: Using PSCI v0.1 Function IDs from DT
[ 0.000000] percpu: Embedded 15 pages/cpu s30412 r8192 d22836 u61440
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 16256
[ 0.000000] Kernel command line: console=ttyS0,115200 panic=5 console=tty0 rootwait root=/dev/mmcblk0p2 earlyprintk rw
[ 0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes, linear)
[ 0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes, linear)
[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[ 0.000000] Memory: 38516K/65536K available (6144K kernel code, 431K rwdata, 1648K rodata, 1024K init, 242K bss, 10636K reserved, 16384K cma-reserved, 0K highmem)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] rcu: Hierarchical RCU implementation.
[ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=1.
[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[ 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] GIC: GICv2 detected, but range too small and irqchip.gicv2_force_probe not set
[ 0.000000] random: get_random_bytes called from start_kernel+0x2fc/0x48c with crng_init=0
[ 0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (phys).
[ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[ 0.000007] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[ 0.000019] Switching to timer-based delay loop, resolution 41ns
[ 0.000211] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[ 0.000443] Console: colour dummy device 80x30
[ 0.000763] printk: console [tty0] enabled
[ 0.000821] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
[ 0.000851] pid_max: default: 32768 minimum: 301
[ 0.001022] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.001054] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.001927] CPU: Testing write buffer coherency: ok
[ 0.002487] /cpus/cpu@0 missing clock-frequency property
[ 0.002534] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[ 0.003343] Setting up static identity map for 0x40100000 - 0x40100060
[ 0.003589] rcu: Hierarchical SRCU implementation.
[ 0.004093] smp: Bringing up secondary CPUs ...
[ 0.004134] smp: Brought up 1 node, 1 CPU
[ 0.004150] SMP: Total of 1 processors activated (48.00 BogoMIPS).
[ 0.004165] CPU: All CPU(s) started in HYP mode.
[ 0.004176] CPU: Virtualization extensions available.
[ 0.005034] devtmpfs: initialized
[ 0.007961] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
[ 0.008309] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.008368] futex hash table entries: 256 (order: 2, 16384 bytes, linear)
[ 0.009194] pinctrl core: initialized pinctrl subsystem
[ 0.010607] NET: Registered protocol family 16
[ 0.011797] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.013068] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[ 0.013116] hw-breakpoint: maximum watchpoint size is 8 bytes.
[ 0.028422] SCSI subsystem initialized
[ 0.029160] usbcore: registered new interface driver usbfs
[ 0.029249] usbcore: registered new interface driver hub
[ 0.029354] usbcore: registered new device driver usb
[ 0.029605] pps_core: LinuxPPS API ver. 1 registered
[ 0.029629] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 0.029669] PTP clock support registered
[ 0.029955] Advanced Linux Sound Architecture Driver Initialized.
[ 0.031417] clocksource: Switched to clocksource arch_sys_counter
[ 0.042293] thermal_sys: Registered thermal governor 'step_wise'
[ 0.042642] NET: Registered protocol family 2
[ 0.043337] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
[ 0.043399] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.043438] TCP bind hash table entries: 1024 (order: 1, 8192 bytes, linear)
[ 0.043468] TCP: Hash tables configured (established 1024 bind 1024)
[ 0.043625] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[ 0.043692] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[ 0.043956] NET: Registered protocol family 1
[ 0.044942] RPC: Registered named UNIX socket transport module.
[ 0.044989] RPC: Registered udp transport module.
[ 0.045002] RPC: Registered tcp transport module.
[ 0.045015] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.047092] workingset: timestamp_bits=30 max_order=14 bucket_order=0
[ 0.055069] NFS: Registering the id_resolver key type
[ 0.055149] Key type id_resolver registered
[ 0.055167] Key type id_legacy registered
[ 0.055300] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 248)
[ 0.055328] io scheduler mq-deadline registered
[ 0.055343] io scheduler kyber registered
[ 0.056282] sun4i-usb-phy 1c19400.phy: Couldn't request ID GPIO
[ 0.060064] sun8i-v3s-pinctrl 1c20800.pinctrl: initialized sunXi PIO driver
[ 0.123816] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
[ 0.126205] sun8i-v3s-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pb not found, using dummy regulator
[ 0.127367] printk: console [ttyS0] disabled
[ 0.147695] 1c28000.serial: ttyS0 at MMIO 0x1c28000 (irq = 32, base_baud = 1500000) is a U6_16550A
[ 0.718210] printk: console [ttyS0] enabled
[ 0.747537] libphy: Fixed MDIO Bus: probed
[ 0.751752] CAN device driver interface
[ 0.756084] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 0.762687] ehci-platform: EHCI generic platform driver
[ 0.768048] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 0.774300] ohci-platform: OHCI generic platform driver
[ 0.780609] input: 1c22800.lradc as /devices/platform/soc/1c22800.lradc/input/input0
[ 0.789805] sun6i-rtc 1c20400.rtc: registered as rtc0
[ 0.794986] sun6i-rtc 1c20400.rtc: RTC enabled
[ 0.799700] i2c /dev entries driver
[ 0.804485] sunxi-wdt 1c20ca0.watchdog: Watchdog enabled (timeout=16 sec, nowayout=0)
[ 0.813226] sun8i-v3s-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pf not found, using dummy regulator
[ 0.849911] sunxi-mmc 1c0f000.mmc: initialized, max. request size: 16384 KB
[ 0.857242] sun8i-v3s-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pg not found, using dummy regulator
[ 0.892519] sunxi-mmc 1c10000.mmc: initialized, max. request size: 16384 KB
[ 0.900562] usbcore: registered new interface driver usbhid
[ 0.906248] usbhid: USB HID core driver
[ 0.912262] NET: Registered protocol family 17
[ 0.916767] can: controller area network core (rev 20170425 abi 9)
[ 0.923142] NET: Registered protocol family 29
[ 0.927600] can: raw protocol (rev 20170425)
[ 0.931918] can: broadcast manager protocol (rev 20170425 t)
[ 0.937590] can: netlink gateway (rev 20170425) max_hops=1
[ 0.943417] Key type dns_resolver registered
[ 0.947851] Registering SWP/SWPB emulation handler
[ 0.961006] usb_phy_generic usb_phy_generic.0.auto: usb_phy_generic.0.auto supply vcc not found, using dummy regulator
[ 0.972597] musb-hdrc musb-hdrc.1.auto: MUSB HDRC host driver
[ 0.978386] musb-hdrc musb-hdrc.1.auto: new USB bus registered, assigned bus number 1
[ 0.987991] hub 1-0:1.0: USB hub found
[ 0.992140] hub 1-0:1.0: 1 port detected
[ 0.997564] sun6i-rtc 1c20400.rtc: setting system clock to 1970-01-01T00:00:04 UTC (4)
[ 1.005929] ALSA device list:
[ 1.008926] No soundcards found.
[ 1.012878] Waiting for root device /dev/mmcblk0p2...
[ 1.018049] mmc0: host does not support reading read-only switch, assuming write-enable
[ 1.028467] mmc0: new high speed SD card at address b368
[ 1.035794] mmcblk0: mmc0:b368 NCard 961 MiB
[ 1.042780] mmcblk0: p1 p2
[ 1.268435] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[ 1.276787] VFS: Mounted root (ext4 filesystem) on device 179:2.
[ 1.283920] devtmpfs: mounted
[ 1.288154] Freeing unused kernel memory: 1024K
[ 1.292926] Run /sbin/init as init process
[ 1.438344] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[ 1.742277] random: dd: uninitialized urandom read (512 bytes read)
Welcome to Buildroot for the LicheePi Zero
licheepi-zero login:
帐号直接输入root
无密码
顺利进入终端
make menuconfig并不会出现如下的设备驱动选项
Device Drivers -> Network device support -> Allwinner Sun8i Ethernet MAC support
想要使用以太网怎么配置呢?
参考https://www.kancloud.cn/lichee/lpi0/327886
执行make uboot-menuconfig
打开
Device Drivers -> Network device support -> Allwinner Sun8i Ethernet MAC support
编辑
/buildroot-2020.02.8/output/build/host-uboot-tools-2020.01/arch/arm/dts/sun8i-v3s-licheepi-zero.dts
/buildroot-2020.02.8/output/build/uboot-2019.10/arch/arm/dts/sun8i-v3s-licheepi-zero.dts
diff --git a/arch/arm/dts/sun8i-v3s-licheepi-zero.dts b/arch/arm/dts/sun8i-v3s-licheepi-zero.dts
index 3d9168c..b8b9fc3 100644
--- a/arch/arm/dts/sun8i-v3s-licheepi-zero.dts
+++ b/arch/arm/dts/sun8i-v3s-licheepi-zero.dts
@@ -49,6 +49,7 @@
compatible = "licheepi,licheepi-zero", "allwinner,sun8i-v3s";
aliases {
+ ethernet0 = &emac;
serial0 = &uart0;
};
@@ -81,3 +82,14 @@
usb0_id_det-gpio = <&pio 5 6 GPIO_ACTIVE_HIGH>;
status = "okay";
};
+
+&emac {
+ phy = <&phy0>;
+ phy-mode = "mii";
+ allwinner,use-internal-phy;
+ allwinner,leds-active-low;
+ status = "okay";
+ phy0: ethernet-phy@0 {
+ reg = <1>;
+ };
+};
编辑
/buildroot-2020.02.8/output/build/host-uboot-tools-2020.01/arch/arm/dts/sun8i-v3s.dtsi
/buildroot-2020.02.8/output/build/uboot-2019.10/arch/arm/dts/sun8i-v3s.dtsi
diff --git a/arch/arm/dts/sun8i-v3s.dtsi b/arch/arm/dts/sun8i-v3s.dtsi
index ebefc0f..cb81dd5 100644
--- a/arch/arm/dts/sun8i-v3s.dtsi
+++ b/arch/arm/dts/sun8i-v3s.dtsi
@@ -96,6 +96,11 @@
#size-cells = <1>;
ranges;
+ syscon: syscon@01c00000 {
+ compatible = "allwinner,sun8i-h3-syscon","syscon";
+ reg = <0x01c00000 0x34>;
+ };
+
mmc0: mmc@01c0f000 {
compatible = "allwinner,sun7i-a20-mmc";
reg = <0x01c0f000 0x1000>;
@@ -208,6 +213,17 @@
interrupt-controller;
#interrupt-cells = <3>;
+ emac_rgmii_pins: emac0@0 {
+ allwinner,pins = "PD0", "PD1", "PD2", "PD3",
+ "PD4", "PD5", "PD7",
+ "PD8", "PD9", "PD10",
+ "PD12", "PD13", "PD15",
+ "PD16", "PD17";
+ allwinner,function = "emac";
+ allwinner,drive = <SUN4I_PINCTRL_40_MA>;
+ allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+ };
+
uart0_pins_a: uart0@0 {
pins = "PB8", "PB9";
function = "uart0";
@@ -270,6 +286,20 @@
status = "disabled";
};
+ emac: ethernet@1c30000 {
+ compatible = "allwinner,sun8i-h3-emac";
+ reg = <0x01c30000 0x104>, <0x01c00030 0x4>;
+ reg-names = "emac", "syscon";
+ interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
+ resets = <&ccu RST_BUS_EMAC>, <&ccu RST_BUS_EPHY>;
+ reset-names = "ahb", "ephy";
+ clocks = <&ccu CLK_BUS_EMAC>, <&ccu CLK_BUS_EPHY>;
+ clock-names = "ahb", "ephy";
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "disabled";
+ };
+
gic: interrupt-controller@01c81000 {
compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic";
reg = <0x01c81000 0x1000>,
重新编译报错,明天继续
arch/arm/dts/sun8i-v3s-licheepi-zero.dtb: ERROR (phandle_references): /soc/spi@1c68000: Reference to non-existent node or label "spi0_pins"
ERROR: Input tree has errors, aborting (use -f to force output)
scripts/Makefile.lib:308: recipe for target 'arch/arm/dts/sun8i-v3s-licheepi-zero.dtb' failed
make[3]: *** [arch/arm/dts/sun8i-v3s-licheepi-zero.dtb] Error 2
dts/Makefile:38: recipe for target 'arch-dtbs' failed
make[2]: *** [arch-dtbs] Error 2
Makefile:1061: recipe for target 'dts/dt.dtb' failed
make[1]: *** [dts/dt.dtb] Error 2
make[1]: Leaving directory '/home/zhang/buildroot-2020.02.8/output/build/uboot-2019.10'
package/pkg-generic.mk:266: recipe for target '/home/zhang/buildroot-2020.02.8/output/build/uboot-2019.10/.stamp_built' failed
make: *** [/home/zhang/buildroot-2020.02.8/output/build/uboot-2019.10/.stamp_built] Error 2
最近编辑记录 zhang235hai (2021-01-28 16:54:20)
离线
我也看到有荔枝派zero的配置文件,但是从来都没用过,没想到真可以编译出能跑的固件,赞!
make menuconfig并不会出现如下的设备驱动选项
Device Drivers -> Network device support -> Allwinner Sun8i Ethernet MAC support
想要使用以太网怎么配置呢?
离线
不知道为什么我不能继续编辑1楼的内容
接着添加以太网
执行make clean重新编译一遍
接着修改sun8i-v3s-licheepi-zero.dts和sun8i-v3s.dtsi
修改后的内容如下
/*
* Copyright (C) 2016 Icenowy Zheng <icenowy@aosc.xyz>
*
* This file is dual-licensed: you can use it either under the terms
* of the GPL or the X11 license, at your option. Note that this dual
* licensing only applies to this file, and not this project as a
* whole.
*
* a) This file is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This file is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* Or, alternatively,
*
* b) Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
* files (the "Software"), to deal in the Software without
* restriction, including without limitation the rights to use,
* copy, modify, merge, publish, distribute, sublicense, and/or
* sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following
* conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*/
#include <dt-bindings/clock/sun8i-v3s-ccu.h>
#include <dt-bindings/reset/sun8i-v3s-ccu.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/pinctrl/sun4i-a10.h>
/ {
#address-cells = <1>;
#size-cells = <1>;
interrupt-parent = <&gic>;
cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu@0 {
compatible = "arm,cortex-a7";
device_type = "cpu";
reg = <0>;
clocks = <&ccu CLK_CPU>;
};
};
timer {
compatible = "arm,armv7-timer";
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
};
clocks {
#address-cells = <1>;
#size-cells = <1>;
ranges;
osc24M: osc24M_clk {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <24000000>;
clock-output-names = "osc24M";
};
osc32k: osc32k_clk {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <32768>;
clock-output-names = "osc32k";
};
};
soc {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges;
syscon: syscon@01c00000 {
compatible = "allwinner,sun8i-h3-syscon","syscon";
reg = <0x01c00000 0x34>;
};
mmc0: mmc@01c0f000 {
compatible = "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 = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
mmc1: mmc@01c10000 {
compatible = "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 = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
mmc2: mmc@01c11000 {
compatible = "allwinner,sun7i-a20-mmc";
reg = <0x01c11000 0x1000>;
clocks = <&ccu CLK_BUS_MMC2>,
<&ccu CLK_MMC2>,
<&ccu CLK_MMC2_OUTPUT>,
<&ccu CLK_MMC2_SAMPLE>;
clock-names = "ahb",
"mmc",
"output",
"sample";
resets = <&ccu RST_BUS_MMC2>;
reset-names = "ahb";
interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
usb_otg: usb@01c19000 {
compatible = "allwinner,sun8i-h3-musb";
reg = <0x01c19000 0x0400>;
clocks = <&ccu CLK_BUS_OTG>;
resets = <&ccu RST_BUS_OTG>;
interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "mc";
phys = <&usbphy 0>;
phy-names = "usb";
extcon = <&usbphy 0>;
status = "disabled";
};
usbphy: phy@01c19400 {
compatible = "allwinner,sun8i-v3s-usb-phy";
reg = <0x01c19400 0x2c>,
<0x01c1a800 0x4>;
reg-names = "phy_ctrl",
"pmu0";
clocks = <&ccu CLK_USB_PHY0>;
clock-names = "usb0_phy";
resets = <&ccu RST_USB_PHY0>;
reset-names = "usb0_reset";
status = "disabled";
#phy-cells = <1>;
};
ccu: clock@01c20000 {
compatible = "allwinner,sun8i-v3s-ccu";
reg = <0x01c20000 0x400>;
clocks = <&osc24M>, <&osc32k>;
clock-names = "hosc", "losc";
#clock-cells = <1>;
#reset-cells = <1>;
};
rtc: rtc@01c20400 {
compatible = "allwinner,sun6i-a31-rtc";
reg = <0x01c20400 0x54>;
interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
};
pio: pinctrl@01c20800 {
compatible = "allwinner,sun8i-v3s-pinctrl";
reg = <0x01c20800 0x400>;
interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, <&osc32k>;
clock-names = "apb", "hosc", "losc";
gpio-controller;
#gpio-cells = <3>;
interrupt-controller;
#interrupt-cells = <3>;
emac_rgmii_pins: emac0@0 {
allwinner,pins = "PD0", "PD1", "PD2", "PD3",
"PD4", "PD5", "PD7",
"PD8", "PD9", "PD10",
"PD12", "PD13", "PD15",
"PD16", "PD17";
allwinner,function = "emac";
allwinner,drive = <SUN4I_PINCTRL_40_MA>;
allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
uart0_pins_a: uart0@0 {
pins = "PB8", "PB9";
function = "uart0";
bias-pull-up;
};
mmc0_pins_a: mmc0@0 {
pins = "PF0", "PF1", "PF2", "PF3",
"PF4", "PF5";
function = "mmc0";
drive-strength = <30>;
bias-pull-up;
};
};
timer@01c20c00 {
compatible = "allwinner,sun4i-a10-timer";
reg = <0x01c20c00 0xa0>;
interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&osc24M>;
};
wdt0: watchdog@01c20ca0 {
compatible = "allwinner,sun6i-a31-wdt";
reg = <0x01c20ca0 0x20>;
interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
};
uart0: serial@01c28000 {
compatible = "snps,dw-apb-uart";
reg = <0x01c28000 0x400>;
interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
reg-shift = <2>;
reg-io-width = <4>;
clocks = <&ccu CLK_BUS_UART0>;
resets = <&ccu RST_BUS_UART0>;
status = "disabled";
};
uart1: serial@01c28400 {
compatible = "snps,dw-apb-uart";
reg = <0x01c28400 0x400>;
interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
reg-shift = <2>;
reg-io-width = <4>;
clocks = <&ccu CLK_BUS_UART1>;
resets = <&ccu RST_BUS_UART1>;
status = "disabled";
};
uart2: serial@01c28800 {
compatible = "snps,dw-apb-uart";
reg = <0x01c28800 0x400>;
interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
reg-shift = <2>;
reg-io-width = <4>;
clocks = <&ccu CLK_BUS_UART2>;
resets = <&ccu RST_BUS_UART2>;
status = "disabled";
};
emac: ethernet@1c30000 {
compatible = "allwinner,sun8i-h3-emac";
reg = <0x01c30000 0x104>, <0x01c00030 0x4>;
reg-names = "emac", "syscon";
interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
resets = <&ccu RST_BUS_EMAC>, <&ccu RST_BUS_EPHY>;
reset-names = "ahb", "ephy";
clocks = <&ccu CLK_BUS_EMAC>, <&ccu CLK_BUS_EPHY>;
clock-names = "ahb", "ephy";
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
};
gic: interrupt-controller@01c81000 {
compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic";
reg = <0x01c81000 0x1000>,
<0x01c82000 0x1000>,
<0x01c84000 0x2000>,
<0x01c86000 0x2000>;
interrupt-controller;
#interrupt-cells = <3>;
interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
};
};
};
/*
* Copyright (C) 2016 Icenowy Zheng <icenowy@aosc.xyz>
*
* This file is dual-licensed: you can use it either under the terms
* of the GPL or the X11 license, at your option. Note that this dual
* licensing only applies to this file, and not this project as a
* whole.
*
* a) This file is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This file is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* Or, alternatively,
*
* b) Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
* files (the "Software"), to deal in the Software without
* restriction, including without limitation the rights to use,
* copy, modify, merge, publish, distribute, sublicense, and/or
* sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following
* conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*/
/dts-v1/;
#include "sun8i-v3s.dtsi"
#include "sunxi-common-regulators.dtsi"
/ {
model = "Lichee Pi Zero";
compatible = "licheepi,licheepi-zero", "allwinner,sun8i-v3s";
aliases {
serial0 = &uart0;
ethernet0 = &emac;
};
chosen {
stdout-path = "serial0:115200n8";
};
};
&mmc0 {
pinctrl-0 = <&mmc0_pins_a>;
pinctrl-names = "default";
broken-cd;
bus-width = <4>;
vmmc-supply = <®_vcc3v3>;
status = "okay";
};
&uart0 {
pinctrl-0 = <&uart0_pins_a>;
pinctrl-names = "default";
status = "okay";
};
&usb_otg {
dr_mode = "otg";
status = "okay";
};
&usbphy {
usb0_id_det-gpio = <&pio 5 6 GPIO_ACTIVE_HIGH>;
status = "okay";
};
&emac {
phy = <&phy0>;
phy-mode = "mii";
allwinner,use-internal-phy;
allwinner,leds-active-low;
status = "okay";
phy0: ethernet-phy@0 {
reg = <1>;
};
};
执行make uboot-menuconfig
打开打开Device Drivers -> Network device support -> Allwinner Sun8i Ethernet MAC support
保存后make成功
得到烧录文件
识别以太网还是失败了
大家帮找找原因
输出如下
U-Boot SPL 2019.10 (Jan 30 2021 - 10:07:59 +0800)
DRAM: 64 MiB
Trying to boot from FEL
U-Boot 2019.10 (Jan 30 2021 - 10:07:59 +0800) Allwinner Technology
CPU: Allwinner V3s (SUN8I 1681)
Model: Lichee Pi Zero
DRAM: 64 MiB
MMC: mmc@01c0f000: 0
Loading Environment from FAT... Card did not respond to voltage select!
In: serial@01c28000
Out: serial@01c28000
Err: serial@01c28000
Net: No ethernet found.
starting USB...
No working controllers found
Hit any key to stop autoboot: 0
为了调试方便,我用了晕哥的在线烧录进内存来运行的模式
最近编辑记录 zhang235hai (2021-01-30 10:23:29)
离线
uboot驱动以太网是要烧录吗?
首页» 全志 V3S/F1C100s/X3» V3s/S3/f1c100s通过USB启动Linux,并把SD NAND/TF卡挂载为U盘, 可以dd或Win32DiskImager任烧写
我把我编译得到的u-boot-sunxi-with-spl.bin替换晕哥的文件在线就能运行,但是还是不能识别以太网
离线
uboot已经能识别以太网
U-Boot SPL 2019.10 (Jan 30 2021 - 10:31:43 +0800)
DRAM: 64 MiB
Trying to boot from FEL
U-Boot 2019.10 (Jan 30 2021 - 10:31:43 +0800) Allwinner Technology
CPU: Allwinner V3s (SUN8I 1681)
Model: Lichee Pi Zero
DRAM: 64 MiB
MMC: mmc@01c0f000: 0
Loading Environment from FAT... Card did not respond to voltage select!
In: serial@01c28000
Out: serial@01c28000
Err: serial@01c28000
Net: failed to get TX clock
eth-1: ethernet@1c30000
starting USB...
No working controllers found
Hit any key to stop autoboot: 0
需要将以下四个文件全部修改完成
执行打开Device Drivers -> Network device support -> Allwinner Sun8i Ethernet MAC support
再次编译得到可用文件u-boot-sunxi-with-spl.rar
/home/zhang/buildroot-2020.02.8/output/build/uboot-2019.10/arch/arm/dts/sun8i-v3s-licheepi-zero.dts
/home/zhang/buildroot-2020.02.8/output/build/host-uboot-tools-2020.01/arch/arm/dts/sun8i-v3s-licheepi-zero.dts
/home/zhang/buildroot-2020.02.8/output/build/host-uboot-tools-2020.01/arch/arm/dts/sun8i-v3s.dtsi
/home/zhang/buildroot-2020.02.8/output/build/uboot-2019.10/arch/arm/dts/sun8i-v3s.dtsi
最近编辑记录 zhang235hai (2021-01-30 11:17:37)
离线
继续参照https://www.kancloud.cn/lichee/lpi0/327886配置linux内核以太网
修改sun8i-v3s.dtsi,内容与uboot中的sun8i-v3s.dtsi一样
/home/zhang/buildroot-2020.02.8/output/build/linux-5.3.5/arch/arm/boot/dts/sun8i-v3s.dtsi
/home/zhang/buildroot-2020.02.8/output/build/linux-headers-5.3.5/arch/arm/boot/dts/sun8i-v3s.dtsi
修改sun8i-v3s-licheepi-zero.dts,内容如下
/home/zhang/buildroot-2020.02.8/output/build/linux-5.3.5/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dts
/home/zhang/buildroot-2020.02.8/output/build/linux-headers-5.3.5/arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dts
/*
* Copyright (C) 2016 Icenowy Zheng <icenowy@aosc.xyz>
*
* This file is dual-licensed: you can use it either under the terms
* of the GPL or the X11 license, at your option. Note that this dual
* licensing only applies to this file, and not this project as a
* whole.
*
* a) This file is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This file is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* Or, alternatively,
*
* b) Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
* files (the "Software"), to deal in the Software without
* restriction, including without limitation the rights to use,
* copy, modify, merge, publish, distribute, sublicense, and/or
* sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following
* conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*/
#include <dt-bindings/clock/sun8i-v3s-ccu.h>
#include <dt-bindings/reset/sun8i-v3s-ccu.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/pinctrl/sun4i-a10.h>
/ {
#address-cells = <1>;
#size-cells = <1>;
interrupt-parent = <&gic>;
cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu@0 {
compatible = "arm,cortex-a7";
device_type = "cpu";
reg = <0>;
clocks = <&ccu CLK_CPU>;
};
};
timer {
compatible = "arm,armv7-timer";
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
<GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
};
clocks {
#address-cells = <1>;
#size-cells = <1>;
ranges;
osc24M: osc24M_clk {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <24000000>;
clock-output-names = "osc24M";
};
osc32k: osc32k_clk {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <32768>;
clock-output-names = "osc32k";
};
};
soc {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges;
syscon: syscon@01c00000 {
compatible = "allwinner,sun8i-h3-syscon","syscon";
reg = <0x01c00000 0x34>;
};
mmc0: mmc@01c0f000 {
compatible = "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 = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
mmc1: mmc@01c10000 {
compatible = "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 = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
mmc2: mmc@01c11000 {
compatible = "allwinner,sun7i-a20-mmc";
reg = <0x01c11000 0x1000>;
clocks = <&ccu CLK_BUS_MMC2>,
<&ccu CLK_MMC2>,
<&ccu CLK_MMC2_OUTPUT>,
<&ccu CLK_MMC2_SAMPLE>;
clock-names = "ahb",
"mmc",
"output",
"sample";
resets = <&ccu RST_BUS_MMC2>;
reset-names = "ahb";
interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
usb_otg: usb@01c19000 {
compatible = "allwinner,sun8i-h3-musb";
reg = <0x01c19000 0x0400>;
clocks = <&ccu CLK_BUS_OTG>;
resets = <&ccu RST_BUS_OTG>;
interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "mc";
phys = <&usbphy 0>;
phy-names = "usb";
extcon = <&usbphy 0>;
status = "disabled";
};
usbphy: phy@01c19400 {
compatible = "allwinner,sun8i-v3s-usb-phy";
reg = <0x01c19400 0x2c>,
<0x01c1a800 0x4>;
reg-names = "phy_ctrl",
"pmu0";
clocks = <&ccu CLK_USB_PHY0>;
clock-names = "usb0_phy";
resets = <&ccu RST_USB_PHY0>;
reset-names = "usb0_reset";
status = "disabled";
#phy-cells = <1>;
};
ccu: clock@01c20000 {
compatible = "allwinner,sun8i-v3s-ccu";
reg = <0x01c20000 0x400>;
clocks = <&osc24M>, <&osc32k>;
clock-names = "hosc", "losc";
#clock-cells = <1>;
#reset-cells = <1>;
};
rtc: rtc@01c20400 {
compatible = "allwinner,sun6i-a31-rtc";
reg = <0x01c20400 0x54>;
interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
};
pio: pinctrl@01c20800 {
compatible = "allwinner,sun8i-v3s-pinctrl";
reg = <0x01c20800 0x400>;
interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, <&osc32k>;
clock-names = "apb", "hosc", "losc";
gpio-controller;
#gpio-cells = <3>;
interrupt-controller;
#interrupt-cells = <3>;
emac_rgmii_pins: emac0@0 {
allwinner,pins = "PD0", "PD1", "PD2", "PD3",
"PD4", "PD5", "PD7",
"PD8", "PD9", "PD10",
"PD12", "PD13", "PD15",
"PD16", "PD17";
allwinner,function = "emac";
allwinner,drive = <SUN4I_PINCTRL_40_MA>;
allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
};
uart0_pins_a: uart0@0 {
pins = "PB8", "PB9";
function = "uart0";
bias-pull-up;
};
mmc0_pins_a: mmc0@0 {
pins = "PF0", "PF1", "PF2", "PF3",
"PF4", "PF5";
function = "mmc0";
drive-strength = <30>;
bias-pull-up;
};
};
timer@01c20c00 {
compatible = "allwinner,sun4i-a10-timer";
reg = <0x01c20c00 0xa0>;
interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&osc24M>;
};
wdt0: watchdog@01c20ca0 {
compatible = "allwinner,sun6i-a31-wdt";
reg = <0x01c20ca0 0x20>;
interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
};
uart0: serial@01c28000 {
compatible = "snps,dw-apb-uart";
reg = <0x01c28000 0x400>;
interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
reg-shift = <2>;
reg-io-width = <4>;
clocks = <&ccu CLK_BUS_UART0>;
resets = <&ccu RST_BUS_UART0>;
status = "disabled";
};
uart1: serial@01c28400 {
compatible = "snps,dw-apb-uart";
reg = <0x01c28400 0x400>;
interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
reg-shift = <2>;
reg-io-width = <4>;
clocks = <&ccu CLK_BUS_UART1>;
resets = <&ccu RST_BUS_UART1>;
status = "disabled";
};
uart2: serial@01c28800 {
compatible = "snps,dw-apb-uart";
reg = <0x01c28800 0x400>;
interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
reg-shift = <2>;
reg-io-width = <4>;
clocks = <&ccu CLK_BUS_UART2>;
resets = <&ccu RST_BUS_UART2>;
status = "disabled";
};
emac: ethernet@1c30000 {
compatible = "allwinner,sun8i-h3-emac";
syscon = <&syscon>;
reg = <0x01c30000 0x104>;
interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "macirq";
resets = <&ccu RST_BUS_EMAC>;
reset-names = "stmmaceth";
clocks = <&ccu CLK_BUS_EMAC>;
clock-names = "stmmaceth";
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
mdio: mdio {
#address-cells = <1>;
#size-cells = <0>;
int_mii_phy: ethernet-phy@0 {
compatible = "ethernet-phy-ieee802.3-c22";
reg = <1>;
clocks = <&ccu CLK_BUS_EPHY>;
resets = <&ccu RST_BUS_EPHY>;
};
};
};
gic: interrupt-controller@01c81000 {
compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic";
reg = <0x01c81000 0x1000>,
<0x01c82000 0x1000>,
<0x01c84000 0x2000>,
<0x01c86000 0x2000>;
interrupt-controller;
#interrupt-cells = <3>;
interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
};
};
};
执行make linux-menuconfig配置以太网相关选项
重新编译报错
zhang@ubuntu:~/buildroot-2020.02.8$ make
>>> linux 5.3.5 Configuring
>>> linux 5.3.5 Building
PATH="/home/zhang/buildroot-2020.02.8/output/host/bin:/home/zhang/buildroot-2020.02.8/output/host/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin" PKG_CONFIG="/home/zhang/buildroot-2020.02.8/output/host/bin/pkg-config" PKG_CONFIG_SYSROOT_DIR="/" PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 PKG_CONFIG_LIBDIR="/home/zhang/buildroot-2020.02.8/output/host/lib/pkgconfig:/home/zhang/buildroot-2020.02.8/output/host/share/pkgconfig" BR_BINARIES_DIR=/home/zhang/buildroot-2020.02.8/output/images KCFLAGS=-Wno-attribute-alias /usr/bin/make -j5 HOSTCC="/usr/bin/gcc -O2 -I/home/zhang/buildroot-2020.02.8/output/host/include -L/home/zhang/buildroot-2020.02.8/output/host/lib -Wl,-rpath,/home/zhang/buildroot-2020.02.8/output/host/lib" ARCH=arm INSTALL_MOD_PATH=/home/zhang/buildroot-2020.02.8/output/target CROSS_COMPILE="/home/zhang/buildroot-2020.02.8/output/host/bin/arm-buildroot-linux-uclibcgnueabihf-" DEPMOD=/home/zhang/buildroot-2020.02.8/output/host/sbin/depmod INSTALL_MOD_STRIP=1 -C /home/zhang/buildroot-2020.02.8/output/build/linux-5.3.5 all
make[1]: Entering directory '/home/zhang/buildroot-2020.02.8/output/build/linux-5.3.5'
HOSTCC scripts/basic/fixdep
HOSTCC scripts/kconfig/conf.o
HOSTCC scripts/kconfig/confdata.o
HOSTCC scripts/kconfig/expr.o
HOSTCC scripts/kconfig/lexer.lex.o
HOSTCC scripts/kconfig/parser.tab.o
HOSTCC scripts/kconfig/preprocess.o
HOSTCC scripts/kconfig/symbol.o
HOSTLD scripts/kconfig/conf
scripts/kconfig/conf --syncconfig Kconfig
DTC arch/arm/boot/dts/sun8i-v3s-licheepi-zero.dtb
DTC arch/arm/boot/dts/sun8i-v3s-licheepi-zero-dock.dtb
Error: arch/arm/boot/dts/sun8i-v3s-licheepi-zero-dock.dts:65.1-7 Label or path lradc not found
FATAL ERROR: Syntax error parsing input tree
scripts/Makefile.lib:306: recipe for target 'arch/arm/boot/dts/sun8i-v3s-licheepi-zero-dock.dtb' failed
make[2]: *** [arch/arm/boot/dts/sun8i-v3s-licheepi-zero-dock.dtb] Error 1
make[2]: *** Waiting for unfinished jobs....
Makefile:1265: recipe for target 'dtbs' failed
make[1]: *** [dtbs] Error 2
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory '/home/zhang/buildroot-2020.02.8/output/build/linux-5.3.5'
package/pkg-generic.mk:266: recipe for target '/home/zhang/buildroot-2020.02.8/output/build/linux-5.3.5/.stamp_built' failed
make: *** [/home/zhang/buildroot-2020.02.8/output/build/linux-5.3.5/.stamp_built] Error 2
希望大家指导一下
离线
sun8i-v3s-licheepi-zero-dock.dts:65.1-7 Label or path lradc not found
65行出错
65行到结尾如下,貌似是4个按键,音量加,音量减,选择键,开始键,但是这个和我要开启以太网好像没啥关系
&lradc {
vref-supply = <®_vcc3v0>;
status = "okay";
button-200 {
label = "Volume Up";
linux,code = <KEY_VOLUMEUP>;
channel = <0>;
voltage = <200000>;
};
button-400 {
label = "Volume Down";
linux,code = <KEY_VOLUMEDOWN>;
channel = <0>;
voltage = <400000>;
};
button-600 {
label = "Select";
linux,code = <KEY_SELECT>;
channel = <0>;
voltage = <600000>;
};
button-800 {
label = "Start";
linux,code = <KEY_OK>;
channel = <0>;
voltage = <800000>;
};
};
最近编辑记录 zhang235hai (2021-01-30 17:18:00)
离线
可能在dtsi没有注册lradc, 所以不能在此引用。把他注释起来就能通过编译。
是的,你说的没错,注释掉了编译通过了,但是出现了新的问题,系统启动失败了,我把sdcard.img烧录进SD卡,启动信息如下
U-Boot SPL 2019.10 (Jan 30 2021 - 10:31:43 +0800)
DRAM: 64 MiB
Trying to boot from MMC1
U-Boot 2019.10 (Jan 30 2021 - 10:31:43 +0800) Allwinner Technology
CPU: Allwinner V3s (SUN8I 1681)
Model: Lichee Pi Zero
DRAM: 64 MiB
MMC: mmc@01c0f000: 0
Loading Environment from FAT... *** Warning - bad CRC, using default environment
In: serial@01c28000
Out: serial@01c28000
Err: serial@01c28000
Net: failed to get TX clock
eth-1: ethernet@1c30000
starting USB...
No working controllers found
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
292 bytes read in 2 ms (142.6 KiB/s)
## Executing script at 41900000
4174464 bytes read in 424 ms (9.4 MiB/s)
6882 bytes read in 5 ms (1.3 MiB/s)
## Flattened Device Tree blob at 41800000
Booting using the fdt blob at 0x41800000
Loading Device Tree to 42dfb000, end 42dffae1 ... OK
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 5.3.5 (zhang@ubuntu) (gcc version 8.4.0 (Buildroot 2020.02.8)) #1 SMP Sat Jan 30 09:51:07 CST 2021
[ 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] cma: Reserved 16 MiB at 0x41c00000
[ 0.000000] psci: probing for conduit method from DT.
[ 0.000000] psci: Using PSCI v0.1 Function IDs from DT
[ 0.000000] percpu: Embedded 15 pages/cpu s30412 r8192 d22836 u61440
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 16256
[ 0.000000] Kernel command line: console=ttyS0,115200 panic=5 console=tty0 rootwait root=/dev/mmcblk0p2 earlyprintk rw
[ 0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes, linear)
[ 0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes, linear)
[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[ 0.000000] Memory: 38524K/65536K available (6144K kernel code, 431K rwdata, 1648K rodata, 1024K init, 242K bss, 10628K reserved, 16384K cma-reserved, 0K highmem)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] rcu: Hierarchical RCU implementation.
[ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=1.
[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[ 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] GIC: GICv2 detected, but range too small and irqchip.gicv2_force_probe not set
[ 0.000000] random: get_random_bytes called from start_kernel+0x2fc/0x48c with crng_init=0
[ 0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (phys).
[ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[ 0.000007] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[ 0.000020] Switching to timer-based delay loop, resolution 41ns
[ 0.000188] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[ 0.000403] Console: colour dummy device 80x30
[ 0.000744] printk: console [tty0] enabled
[ 0.000801] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
[ 0.000830] pid_max: default: 32768 minimum: 301
[ 0.001018] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.001051] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.001922] CPU: Testing write buffer coherency: ok
[ 0.002471] /cpus/cpu@0 missing clock-frequency property
[ 0.002521] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[ 0.003291] Setting up static identity map for 0x40100000 - 0x40100060
[ 0.003534] rcu: Hierarchical SRCU implementation.
[ 0.004015] smp: Bringing up secondary CPUs ...
[ 0.004053] smp: Brought up 1 node, 1 CPU
[ 0.004070] SMP: Total of 1 processors activated (48.00 BogoMIPS).
[ 0.004085] CPU: All CPU(s) started in HYP mode.
[ 0.004096] CPU: Virtualization extensions available.
[ 0.004984] devtmpfs: initialized
[ 0.007410] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
[ 0.007748] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.007800] futex hash table entries: 256 (order: 2, 16384 bytes, linear)
[ 0.008619] pinctrl core: initialized pinctrl subsystem
[ 0.009846] NET: Registered protocol family 16
[ 0.011153] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.012436] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[ 0.012481] hw-breakpoint: maximum watchpoint size is 8 bytes.
[ 0.027542] SCSI subsystem initialized
[ 0.028292] usbcore: registered new interface driver usbfs
[ 0.028395] usbcore: registered new interface driver hub
[ 0.028507] usbcore: registered new device driver usb
[ 0.028756] pps_core: LinuxPPS API ver. 1 registered
[ 0.028777] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 0.028813] PTP clock support registered
[ 0.029100] Advanced Linux Sound Architecture Driver Initialized.
[ 0.030485] clocksource: Switched to clocksource arch_sys_counter
[ 0.041078] thermal_sys: Registered thermal governor 'step_wise'
[ 0.041444] NET: Registered protocol family 2
[ 0.042131] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
[ 0.042191] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.042228] TCP bind hash table entries: 1024 (order: 1, 8192 bytes, linear)
[ 0.042260] TCP: Hash tables configured (established 1024 bind 1024)
[ 0.042418] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[ 0.042483] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[ 0.042740] NET: Registered protocol family 1
[ 0.043740] RPC: Registered named UNIX socket transport module.
[ 0.043786] RPC: Registered udp transport module.
[ 0.043800] RPC: Registered tcp transport module.
[ 0.043813] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.045826] workingset: timestamp_bits=30 max_order=14 bucket_order=0
[ 0.053784] NFS: Registering the id_resolver key type
[ 0.053863] Key type id_resolver registered
[ 0.053878] Key type id_legacy registered
[ 0.054006] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 248)
[ 0.054034] io scheduler mq-deadline registered
[ 0.054048] io scheduler kyber registered
[ 0.054946] sun4i-usb-phy 1c19400.phy: Couldn't request ID GPIO
[ 0.058745] sun8i-v3s-pinctrl 1c20800.pinctrl: initialized sunXi PIO driver
[ 0.121865] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
[ 0.124242] sun8i-v3s-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pb not found, using dummy regulator
[ 0.125446] printk: console [ttyS0] disabled
[ 0.145782] 1c28000.serial: ttyS0 at MMIO 0x1c28000 (irq = 31, base_baud = 1500000) is a U6_16550A
[ 0.716411] printk: console [ttyS0] enabled
[ 0.723379] libphy: Fixed MDIO Bus: probed
[ 0.727513] CAN device driver interface
[ 0.732041] dwmac-sun8i 1c30000.ethernet: PTP uses main clock
[ 0.737862] dwmac-sun8i 1c30000.ethernet: No regulator found
[ 0.744134] dwmac-sun8i 1c30000.ethernet: Current syscon value is not the default 38000 (expect 58000)
[ 0.753546] 8<--- cut here ---
[ 0.756611] Unable to handle kernel NULL pointer dereference at virtual address 00000008
[ 0.764726] pgd = (ptrval)
[ 0.767437] [00000008] *pgd=00000000
[ 0.771038] Internal error: Oops: 5 [#1] SMP ARM
[ 0.775656] Modules linked in:
[ 0.778720] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.3.5 #1
[ 0.784550] Hardware name: Allwinner sun8i Family
[ 0.789272] PC is at sun8i_dwmac_setup+0x37c/0x3f8
[ 0.794071] LR is at of_find_property+0x44/0x4c
[ 0.798601] pc : [<c04cb258>] lr : [<c056253c>] psr: a0000053
[ 0.804866] sp : c3839d10 ip : 00000000 fp : 00000000
[ 0.810090] r10: 00000000 r9 : c3fef930 r8 : c3b15500
[ 0.815314] r7 : c3b10440 r6 : c0a04c48 r5 : c3b14500 r4 : c39a5340
[ 0.821839] r3 : 85672ee0 r2 : 85672ee0 r1 : a0000053 r0 : ffffffea
[ 0.828368] Flags: NzCv IRQs on FIQs off Mode SVC_32 ISA ARM Segment none
[ 0.835589] Control: 10c5387d Table: 4000406a DAC: 00000051
[ 0.841335] Process swapper/0 (pid: 1, stack limit = 0x(ptrval))
[ 0.847341] Stack: (0xc3839d10 to 0xc383a000)
[ 0.851702] 9d00: 00000000 c013752c 00078000 c38a9210
[ 0.859882] 9d20: c3b11064 00038000 c0844870 85672ee0 00000000 00000000 c3b15500 00000000
[ 0.868062] 9d40: 00000000 c3b14500 00000000 00000000 c39ab840 c04c7634 c3b14000 c3b14000
[ 0.876242] 9d60: c3811c8c c3b14000 c3b16000 c0a4ed7c c38a9210 c0aa2a7c c3b14500 c3b15000
[ 0.884422] 9d80: c39ab840 c04bb5c4 00000000 a0000053 c3b0e1c0 c03b7a90 00000000 c0a04c48
[ 0.892602] 9da0: 00000000 c38a9200 c39ab840 c38a9210 c3b10440 c3896e00 00000007 c04cb8c4
[ 0.900781] 9dc0: 0000001f 00000000 00000000 00000000 00000000 c08158e8 00000001 c0285a44
[ 0.908961] 9de0: c38aa000 c02856cc c4818000 c2dfc188 00000020 fffffffa 00000020 85672ee0
[ 0.917141] 9e00: c08158e8 c38a9210 00000000 c0a4ee70 00000000 00000000 c0a4ee70 00000000
[ 0.925321] 9e20: 00000007 c0453734 c0aa145c c38a9210 c0aa1460 00000000 00000000 c04519c4
[ 0.933501] 9e40: c38a9210 c0a4ee70 c0a4ee70 c0451fd8 00000000 c09004a8 000000cb c0451d24
[ 0.941681] 9e60: 000000cb c05633b0 c075cb3c c38a9210 00000000 c0a4ee70 c0451fd8 00000000
[ 0.949861] 9e80: c09004a8 000000cb 00000007 c0451fd0 00000000 c0a4ee70 c38a9210 c0452030
[ 0.958042] 9ea0: c389e9b4 c0a04c48 c0a4ee70 c044fe6c c09004a8 c3808f58 c389e9b4 85672ee0
[ 0.966222] 9ec0: c0a4c670 c0a4ee70 c3b10080 c0a4c670 00000000 c0450ecc c082ea94 ffffe000
[ 0.974402] 9ee0: c0a4ee70 c0a4ee70 c0a04c48 ffffe000 c091ea74 c0452860 c0a6c000 c0a04c48
[ 0.982582] 9f00: ffffe000 c01026e8 c3fffed5 c013b1a4 c089a924 c0834c00 00000000 00000006
[ 0.990762] 9f20: 00000006 c07f05e8 00000000 c0a04c48 c07fa880 c07f065c 00000000 c3fffed3
[ 0.998942] 9f40: 00000000 85672ee0 00000000 00000006 c0a6c000 85672ee0 c094db34 c0a6c000
[ 1.007122] 9f60: c0a6c000 c0939854 c0939834 c0900f04 00000006 00000006 00000000 c09004a8
[ 1.015301] 9f80: 00000000 00000000 c06a89a0 00000000 00000000 00000000 00000000 00000000
[ 1.023481] 9fa0: 00000000 c06a89a8 00000000 c01010e8 00000000 00000000 00000000 00000000
[ 1.031660] 9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 1.039839] 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
[ 1.048039] [<c04cb258>] (sun8i_dwmac_setup) from [<c04c7634>] (stmmac_hwif_init+0x78/0x264)
[ 1.056485] [<c04c7634>] (stmmac_hwif_init) from [<c04bb5c4>] (stmmac_dvr_probe+0x1e0/0xd74)
[ 1.064929] [<c04bb5c4>] (stmmac_dvr_probe) from [<c04cb8c4>] (sun8i_dwmac_probe+0x1e0/0x48c)
[ 1.073464] [<c04cb8c4>] (sun8i_dwmac_probe) from [<c0453734>] (platform_drv_probe+0x48/0x98)
[ 1.081994] [<c0453734>] (platform_drv_probe) from [<c04519c4>] (really_probe+0xf0/0x2c8)
[ 1.090175] [<c04519c4>] (really_probe) from [<c0451d24>] (driver_probe_device+0x60/0x16c)
[ 1.098442] [<c0451d24>] (driver_probe_device) from [<c0451fd0>] (device_driver_attach+0x58/0x60)
[ 1.107316] [<c0451fd0>] (device_driver_attach) from [<c0452030>] (__driver_attach+0x58/0xcc)
[ 1.115845] [<c0452030>] (__driver_attach) from [<c044fe6c>] (bus_for_each_dev+0x74/0xb4)
[ 1.124026] [<c044fe6c>] (bus_for_each_dev) from [<c0450ecc>] (bus_add_driver+0x1b4/0x1d4)
[ 1.132293] [<c0450ecc>] (bus_add_driver) from [<c0452860>] (driver_register+0x74/0x108)
[ 1.140390] [<c0452860>] (driver_register) from [<c01026e8>] (do_one_initcall+0x7c/0x1c8)
[ 1.148580] [<c01026e8>] (do_one_initcall) from [<c0900f04>] (kernel_init_freeable+0x138/0x1d4)
[ 1.157286] [<c0900f04>] (kernel_init_freeable) from [<c06a89a8>] (kernel_init+0x8/0x110)
[ 1.165467] [<c06a89a8>] (kernel_init) from [<c01010e8>] (ret_from_fork+0x14/0x2c)
[ 1.173035] Exception stack(0xc3839fb0 to 0xc3839ff8)
[ 1.178087] 9fa0: 00000000 00000000 00000000 00000000
[ 1.186267] 9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 1.194444] 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[ 1.201063] Code: e34c1082 e1a0400b ebfe11b4 eaffffb1 (e59a2008)
[ 1.207249] ---[ end trace 8aaa0ba895678c76 ]---
[ 1.211935] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[ 1.219603] Rebooting in 5 seconds..
[ 7.223275] Reboot failed -- System halted
U-Boot SPL 2019.10 (Jan 30 2021 - 10:31:43 +0800)
DRAM: 64 MiB
Trying to boot from MMC1
U-Boot 2019.10 (Jan 30 2021 - 10:31:43 +0800) Allwinner Technology
CPU: Allwinner V3s (SUN8I 1681)
Model: Lichee Pi Zero
DRAM: 64 MiB
MMC: mmc@01c0f000: 0
Loading Environment from FAT... *** Warning - bad CRC, using default environment
In: serial@01c28000
Out: serial@01c28000
Err: serial@01c28000
Net: failed to get TX clock
eth-1: ethernet@1c30000
starting USB...
No working controllers found
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
292 bytes read in 3 ms (94.7 KiB/s)
## Executing script at 41900000
4174464 bytes read in 424 ms (9.4 MiB/s)
6882 bytes read in 5 ms (1.3 MiB/s)
## Flattened Device Tree blob at 41800000
Booting using the fdt blob at 0x41800000
Loading Device Tree to 42dfb000, end 42dffae1 ... OK
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 5.3.5 (zhang@ubuntu) (gcc version 8.4.0 (Buildroot 2020.02.8)) #1 SMP Sat Jan 30 09:51:07 CST 2021
[ 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] cma: Reserved 16 MiB at 0x41c00000
[ 0.000000] psci: probing for conduit method from DT.
[ 0.000000] psci: Using PSCI v0.1 Function IDs from DT
[ 0.000000] percpu: Embedded 15 pages/cpu s30412 r8192 d22836 u61440
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 16256
[ 0.000000] Kernel command line: console=ttyS0,115200 panic=5 console=tty0 rootwait root=/dev/mmcblk0p2 earlyprintk rw
[ 0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes, linear)
[ 0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes, linear)
[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[ 0.000000] Memory: 38524K/65536K available (6144K kernel code, 431K rwdata, 1648K rodata, 1024K init, 242K bss, 10628K reserved, 16384K cma-reserved, 0K highmem)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] rcu: Hierarchical RCU implementation.
[ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=1.
[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
[ 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] GIC: GICv2 detected, but range too small and irqchip.gicv2_force_probe not set
[ 0.000000] random: get_random_bytes called from start_kernel+0x2fc/0x48c with crng_init=0
[ 0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (phys).
[ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[ 0.000007] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[ 0.000019] Switching to timer-based delay loop, resolution 41ns
[ 0.000192] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[ 0.000406] Console: colour dummy device 80x30
[ 0.000757] printk: console [tty0] enabled
[ 0.000815] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
[ 0.000845] pid_max: default: 32768 minimum: 301
[ 0.001031] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.001065] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.001941] CPU: Testing write buffer coherency: ok
[ 0.002496] /cpus/cpu@0 missing clock-frequency property
[ 0.002542] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[ 0.003320] Setting up static identity map for 0x40100000 - 0x40100060
[ 0.003556] rcu: Hierarchical SRCU implementation.
[ 0.004038] smp: Bringing up secondary CPUs ...
[ 0.004078] smp: Brought up 1 node, 1 CPU
[ 0.004094] SMP: Total of 1 processors activated (48.00 BogoMIPS).
[ 0.004108] CPU: All CPU(s) started in HYP mode.
[ 0.004120] CPU: Virtualization extensions available.
[ 0.005009] devtmpfs: initialized
[ 0.007431] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
[ 0.007774] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.007826] futex hash table entries: 256 (order: 2, 16384 bytes, linear)
[ 0.008652] pinctrl core: initialized pinctrl subsystem
[ 0.009864] NET: Registered protocol family 16
[ 0.011175] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.012470] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[ 0.012516] hw-breakpoint: maximum watchpoint size is 8 bytes.
[ 0.027603] SCSI subsystem initialized
[ 0.028342] usbcore: registered new interface driver usbfs
[ 0.028443] usbcore: registered new interface driver hub
[ 0.028562] usbcore: registered new device driver usb
[ 0.028806] pps_core: LinuxPPS API ver. 1 registered
[ 0.028832] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 0.028871] PTP clock support registered
[ 0.029156] Advanced Linux Sound Architecture Driver Initialized.
[ 0.030540] clocksource: Switched to clocksource arch_sys_counter
[ 0.041119] thermal_sys: Registered thermal governor 'step_wise'
[ 0.041479] NET: Registered protocol family 2
[ 0.042162] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
[ 0.042225] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.042263] TCP bind hash table entries: 1024 (order: 1, 8192 bytes, linear)
[ 0.042294] TCP: Hash tables configured (established 1024 bind 1024)
[ 0.042454] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[ 0.042518] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[ 0.042777] NET: Registered protocol family 1
[ 0.043768] RPC: Registered named UNIX socket transport module.
[ 0.043814] RPC: Registered udp transport module.
[ 0.043829] RPC: Registered tcp transport module.
[ 0.043842] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.045854] workingset: timestamp_bits=30 max_order=14 bucket_order=0
[ 0.053812] NFS: Registering the id_resolver key type
[ 0.053892] Key type id_resolver registered
[ 0.053907] Key type id_legacy registered
[ 0.054040] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 248)
[ 0.054069] io scheduler mq-deadline registered
[ 0.054085] io scheduler kyber registered
[ 0.054981] sun4i-usb-phy 1c19400.phy: Couldn't request ID GPIO
[ 0.058778] sun8i-v3s-pinctrl 1c20800.pinctrl: initialized sunXi PIO driver
[ 0.121863] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
[ 0.124218] sun8i-v3s-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pb not found, using dummy regulator
[ 0.125410] printk: console [ttyS0] disabled
[ 0.145743] 1c28000.serial: ttyS0 at MMIO 0x1c28000 (irq = 31, base_baud = 1500000) is a U6_16550A
[ 0.716345] printk: console [ttyS0] enabled
[ 0.723292] libphy: Fixed MDIO Bus: probed
[ 0.727425] CAN device driver interface
[ 0.731956] dwmac-sun8i 1c30000.ethernet: PTP uses main clock
[ 0.737777] dwmac-sun8i 1c30000.ethernet: No regulator found
[ 0.744043] dwmac-sun8i 1c30000.ethernet: Current syscon value is not the default 38000 (expect 58000)
[ 0.753458] 8<--- cut here ---
[ 0.756525] Unable to handle kernel NULL pointer dereference at virtual address 00000008
[ 0.764637] pgd = (ptrval)
[ 0.767348] [00000008] *pgd=00000000
[ 0.770947] Internal error: Oops: 5 [#1] SMP ARM
[ 0.775566] Modules linked in:
[ 0.778630] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.3.5 #1
[ 0.784460] Hardware name: Allwinner sun8i Family
[ 0.789182] PC is at sun8i_dwmac_setup+0x37c/0x3f8
[ 0.793981] LR is at of_find_property+0x44/0x4c
[ 0.798511] pc : [<c04cb258>] lr : [<c056253c>] psr: a0000053
[ 0.804775] sp : c3839d10 ip : 00000000 fp : 00000000
[ 0.809999] r10: 00000000 r9 : c3fef930 r8 : c3b15500
[ 0.815223] r7 : c3b10440 r6 : c0a04c48 r5 : c3b14500 r4 : c39a5340
[ 0.821749] r3 : 85672ee0 r2 : 85672ee0 r1 : a0000053 r0 : ffffffea
[ 0.828277] Flags: NzCv IRQs on FIQs off Mode SVC_32 ISA ARM Segment none
[ 0.835499] Control: 10c5387d Table: 4000406a DAC: 00000051
[ 0.841244] Process swapper/0 (pid: 1, stack limit = 0x(ptrval))
[ 0.847250] Stack: (0xc3839d10 to 0xc383a000)
[ 0.851611] 9d00: 00000000 c013752c 00078000 c38a9210
[ 0.859791] 9d20: c3b11064 00038000 c0844870 85672ee0 00000000 00000000 c3b15500 00000000
[ 0.867971] 9d40: 00000000 c3b14500 00000000 00000000 c39ab840 c04c7634 c3b14000 c3b14000
[ 0.876151] 9d60: c3811c8c c3b14000 c3b16000 c0a4ed7c c38a9210 c0aa2a7c c3b14500 c3b15000
[ 0.884331] 9d80: c39ab840 c04bb5c4 00000000 a0000053 c3b0e1c0 c03b7a90 00000000 c0a04c48
[ 0.892511] 9da0: 00000000 c38a9200 c39ab840 c38a9210 c3b10440 c3896e00 00000007 c04cb8c4
[ 0.900690] 9dc0: 0000001f 00000000 00000000 00000000 00000000 c08158e8 00000001 c0285a44
[ 0.908870] 9de0: c38aa000 c02856cc c4818000 c2dfc188 00000020 fffffffa 00000020 85672ee0
[ 0.917050] 9e00: c08158e8 c38a9210 00000000 c0a4ee70 00000000 00000000 c0a4ee70 00000000
[ 0.925230] 9e20: 00000007 c0453734 c0aa145c c38a9210 c0aa1460 00000000 00000000 c04519c4
[ 0.933410] 9e40: c38a9210 c0a4ee70 c0a4ee70 c0451fd8 00000000 c09004a8 000000cb c0451d24
[ 0.941590] 9e60: 000000cb c05633b0 c075cb3c c38a9210 00000000 c0a4ee70 c0451fd8 00000000
[ 0.949770] 9e80: c09004a8 000000cb 00000007 c0451fd0 00000000 c0a4ee70 c38a9210 c0452030
[ 0.957950] 9ea0: c389e9b4 c0a04c48 c0a4ee70 c044fe6c c09004a8 c3808f58 c389e9b4 85672ee0
[ 0.966130] 9ec0: c0a4c670 c0a4ee70 c3b10080 c0a4c670 00000000 c0450ecc c082ea94 ffffe000
[ 0.974311] 9ee0: c0a4ee70 c0a4ee70 c0a04c48 ffffe000 c091ea74 c0452860 c0a6c000 c0a04c48
[ 0.982491] 9f00: ffffe000 c01026e8 c3fffed5 c013b1a4 c089a924 c0834c00 00000000 00000006
[ 0.990671] 9f20: 00000006 c07f05e8 00000000 c0a04c48 c07fa880 c07f065c 00000000 c3fffed3
[ 0.998851] 9f40: 00000000 85672ee0 00000000 00000006 c0a6c000 85672ee0 c094db34 c0a6c000
[ 1.007030] 9f60: c0a6c000 c0939854 c0939834 c0900f04 00000006 00000006 00000000 c09004a8
[ 1.015210] 9f80: 00000000 00000000 c06a89a0 00000000 00000000 00000000 00000000 00000000
[ 1.023389] 9fa0: 00000000 c06a89a8 00000000 c01010e8 00000000 00000000 00000000 00000000
[ 1.031569] 9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 1.039748] 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000
[ 1.047948] [<c04cb258>] (sun8i_dwmac_setup) from [<c04c7634>] (stmmac_hwif_init+0x78/0x264)
[ 1.056395] [<c04c7634>] (stmmac_hwif_init) from [<c04bb5c4>] (stmmac_dvr_probe+0x1e0/0xd74)
[ 1.064838] [<c04bb5c4>] (stmmac_dvr_probe) from [<c04cb8c4>] (sun8i_dwmac_probe+0x1e0/0x48c)
[ 1.073371] [<c04cb8c4>] (sun8i_dwmac_probe) from [<c0453734>] (platform_drv_probe+0x48/0x98)
[ 1.081902] [<c0453734>] (platform_drv_probe) from [<c04519c4>] (really_probe+0xf0/0x2c8)
[ 1.090083] [<c04519c4>] (really_probe) from [<c0451d24>] (driver_probe_device+0x60/0x16c)
[ 1.098349] [<c0451d24>] (driver_probe_device) from [<c0451fd0>] (device_driver_attach+0x58/0x60)
[ 1.107223] [<c0451fd0>] (device_driver_attach) from [<c0452030>] (__driver_attach+0x58/0xcc)
[ 1.115751] [<c0452030>] (__driver_attach) from [<c044fe6c>] (bus_for_each_dev+0x74/0xb4)
[ 1.123931] [<c044fe6c>] (bus_for_each_dev) from [<c0450ecc>] (bus_add_driver+0x1b4/0x1d4)
[ 1.132198] [<c0450ecc>] (bus_add_driver) from [<c0452860>] (driver_register+0x74/0x108)
[ 1.140296] [<c0452860>] (driver_register) from [<c01026e8>] (do_one_initcall+0x7c/0x1c8)
[ 1.148486] [<c01026e8>] (do_one_initcall) from [<c0900f04>] (kernel_init_freeable+0x138/0x1d4)
[ 1.157191] [<c0900f04>] (kernel_init_freeable) from [<c06a89a8>] (kernel_init+0x8/0x110)
[ 1.165374] [<c06a89a8>] (kernel_init) from [<c01010e8>] (ret_from_fork+0x14/0x2c)
[ 1.172942] Exception stack(0xc3839fb0 to 0xc3839ff8)
[ 1.177995] 9fa0: 00000000 00000000 00000000 00000000
[ 1.186174] 9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 1.194352] 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[ 1.200971] Code: e34c1082 e1a0400b ebfe11b4 eaffffb1 (e59a2008)
[ 1.207161] ---[ end trace 62acf0dde808fb34 ]---
[ 1.211842] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[ 1.219511] Rebooting in 5 seconds..
[ 7.223183] Reboot failed -- System halted
离线
zhang235hai 说:uboot已经能识别以太网
U-Boot SPL 2019.10 (Jan 30 2021 - 10:31:43 +0800) DRAM: 64 MiB Trying to boot from FEL U-Boot 2019.10 (Jan 30 2021 - 10:31:43 +0800) Allwinner Technology CPU: Allwinner V3s (SUN8I 1681) Model: Lichee Pi Zero DRAM: 64 MiB MMC: mmc@01c0f000: 0 Loading Environment from FAT... Card did not respond to voltage select! In: serial@01c28000 Out: serial@01c28000 Err: serial@01c28000 Net: failed to get TX clock eth-1: ethernet@1c30000 starting USB... No working controllers found Hit any key to stop autoboot: 0
需要将以下四个文件全部修改完成
执行打开Device Drivers -> Network device support -> Allwinner Sun8i Ethernet MAC support
再次编译得到可用文件u-boot-sunxi-with-spl.rar/home/zhang/buildroot-2020.02.8/output/build/uboot-2019.10/arch/arm/dts/sun8i-v3s-licheepi-zero.dts
/home/zhang/buildroot-2020.02.8/output/build/host-uboot-tools-2020.01/arch/arm/dts/sun8i-v3s-licheepi-zero.dts/home/zhang/buildroot-2020.02.8/output/build/host-uboot-tools-2020.01/arch/arm/dts/sun8i-v3s.dtsi
/home/zhang/buildroot-2020.02.8/output/build/uboot-2019.10/arch/arm/dts/sun8i-v3s.dtsi能识别以太网,实际是不能用的,U-boot还不能驱动以太网
net: failed to get TX clock 这里有错误,楼主解决了吗?
追踪到sun8i_emac.c文件中
if (ret) {
dev_err(dev, "failed to get TX clock\n");
return ret;
}
但是不知道怎么解决
离线