参考的荔枝派zero教程和坑网的帖子,但是貌似内核找不到spi设备?
spiflash用的是w25q128,我看打印信息里写着擦除大小是4K?
U-Boot SPL 2022.04 (Jun 17 2022 - 09:45:39 +0800)
DRAM: 64 MiB
Trying to boot from sunxi SPI
U-Boot 2022.04 (Jun 17 2022 - 09:45:39 +0800) Allwinner Technology
CPU: Allwinner V3s (SUN8I 1681)
Model: Lichee Pi Zero
DRAM: 64 MiB
Core: 23 devices, 10 uclasses, devicetree: separate
WDT: Not starting watchdog@1c20ca0
MMC: mmc@1c0f000: 0
Loading Environment from SPIFlash... SF: Detected w25q128 with page size 256 Bytes, erase size 4 KiB, total 16 MiB
OK
In: serial@1c28800
Out: serial@1c28800
Err: serial@1c28800
Net: No ethernet found.
Hit any key to stop autoboot: 0
SF: Detected w25q128 with page size 256 Bytes, erase size 4 KiB, total 16 MiB
device 0 offset 0x100000, size 0x10000
SF: 65536 bytes @ 0x100000 Read: OK
device 0 offset 0x110000, size 0x400000
SF: 4194304 bytes @ 0x110000 Read: OK
Kernel image @ 0x41000000 [ 0x000000 - 0x39c5b8 ]
## Flattened Device Tree blob at 41800000
Booting using the fdt blob at 0x41800000
Loading Device Tree to 42dfa000, end 42dffcf9 ... OK
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 5.18.2-licheepi-zero (any@Any-Desktop) (arm-linux-gnueabihf-gcc (GCC) 12.0.1 20220205 (experimental) [master revision f49b8d25b1ff96e9cd09326666cc510b3a3accde], GNU ld (Linaro_Binutils-2022.2
[ 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
[ 0.000000] Memory policy: Data cache writealloc
[ 0.000000] Zone ranges:
[ 0.000000] Normal [mem 0x0000000040000000-0x0000000043ffffff]
[ 0.000000] HighMem empty
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000040000000-0x0000000043ffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x0000000043ffffff]
[ 0.000000] psci: probing for conduit method from DT.
[ 0.000000] psci: Using PSCI v0.1 Function IDs from DT
[ 0.000000] percpu: Embedded 11 pages/cpu s15316 r8192 d21548 u45056
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 16256
[ 0.000000] Kernel command line: console=ttyS2,115200 earlyprintk panic=5 rootwait mtdparts=spi32766.0:1M(uboot),64k(dtb)ro,4M(kernel)ro,-(rootfs) root=/dev/mtdblock3 rw rootfstype=jffs2 init=/linuxrc vt.global_curso0
[ 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:all(zero), heap alloc:off, heap free:off
[ 0.000000] Memory: 52636K/65536K available (8192K kernel code, 689K rwdata, 1836K rodata, 1024K init, 234K bss, 12900K reserved, 0K 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 event tracing is enabled.
[ 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: Using split EOI/Deactivate mode
[ 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.000002] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[ 0.000021] Switching to timer-based delay loop, resolution 41ns
[ 0.000225] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[ 0.000618] Console: colour dummy device 80x30
[ 0.000707] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
[ 0.000734] pid_max: default: 32768 minimum: 301
[ 0.000975] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.001012] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.001791] CPU: Testing write buffer coherency: ok
[ 0.002360] /cpus/cpu@0 missing clock-frequency property
[ 0.002424] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[ 0.003747] Setting up static identity map for 0x40100000 - 0x40100060
[ 0.004077] rcu: Hierarchical SRCU implementation.
[ 0.004859] smp: Bringing up secondary CPUs ...
[ 0.004897] smp: Brought up 1 node, 1 CPU
[ 0.004911] SMP: Total of 1 processors activated (48.00 BogoMIPS).
[ 0.004923] CPU: All CPU(s) started in HYP mode.
[ 0.004931] CPU: Virtualization extensions available.
[ 0.005697] devtmpfs: initialized
[ 0.009111] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
[ 0.009443] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.009496] futex hash table entries: 256 (order: 2, 16384 bytes, linear)
[ 0.009735] pinctrl core: initialized pinctrl subsystem
[ 0.011666] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[ 0.012206] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.013341] thermal_sys: Registered thermal governor 'step_wise'
[ 0.013654] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[ 0.013697] hw-breakpoint: maximum watchpoint size is 8 bytes.
[ 0.032351] SCSI subsystem initialized
[ 0.032630] usbcore: registered new interface driver usbfs
[ 0.032696] usbcore: registered new interface driver hub
[ 0.032767] usbcore: registered new device driver usb
[ 0.033015] pps_core: LinuxPPS API ver. 1 registered
[ 0.033037] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 0.033067] PTP clock support registered
[ 0.033285] Advanced Linux Sound Architecture Driver Initialized.
[ 0.034815] clocksource: Switched to clocksource arch_sys_counter
[ 0.045434] NET: Registered PF_INET protocol family
[ 0.045772] IP idents hash table entries: 2048 (order: 2, 16384 bytes, linear)
[ 0.046417] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
[ 0.046492] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.046526] TCP bind hash table entries: 1024 (order: 1, 8192 bytes, linear)
[ 0.046557] TCP: Hash tables configured (established 1024 bind 1024)
[ 0.046701] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[ 0.046761] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[ 0.047043] NET: Registered PF_UNIX/PF_LOCAL protocol family
[ 0.048204] RPC: Registered named UNIX socket transport module.
[ 0.048252] RPC: Registered udp transport module.
[ 0.048262] RPC: Registered tcp transport module.
[ 0.048270] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.050745] Initialise system trusted keyrings
[ 0.051425] workingset: timestamp_bits=30 max_order=14 bucket_order=0
[ 0.058704] NFS: Registering the id_resolver key type
[ 0.058872] Key type id_resolver registered
[ 0.058889] Key type id_legacy registered
[ 0.058948] jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
[ 0.059426] Key type asymmetric registered
[ 0.059455] Asymmetric key parser 'x509' registered
[ 0.059643] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 249)
[ 0.059670] io scheduler mq-deadline registered
[ 0.059681] io scheduler kyber registered
[ 0.123710] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
[ 0.129884] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 0.129930] ehci-platform: EHCI generic platform driver
[ 0.130025] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 0.130067] ohci-platform: OHCI generic platform driver
[ 0.130465] UDC core: couldn't find an available UDC - added [g_cdc] to list of pending drivers
[ 0.131896] sun6i-rtc 1c20400.rtc: registered as rtc0
[ 0.131968] sun6i-rtc 1c20400.rtc: setting system clock to 1970-01-01T18:03:40 UTC (65020)
[ 0.131997] sun6i-rtc 1c20400.rtc: RTC enabled
[ 0.132195] i2c_dev: i2c /dev entries driver
[ 0.133005] sunxi-wdt 1c20ca0.watchdog: Watchdog enabled (timeout=16 sec, nowayout=0)
[ 0.134164] sun4i-ss 1c15000.crypto: Die ID 7
[ 0.135216] usbcore: registered new interface driver usbhid
[ 0.135253] usbhid: USB HID core driver
[ 0.137231] NET: Registered PF_PACKET protocol family
[ 0.137478] Key type dns_resolver registered
[ 0.137608] Registering SWP/SWPB emulation handler
[ 0.137878] Loading compiled-in X.509 certificates
[ 0.151416] sun8i-v3s-pinctrl 1c20800.pinctrl: initialized sunXi PIO driver
[ 0.151957] sun8i-v3s-pinctrl 1c20800.pinctrl: supply vcc-pb not found, using dummy regulator
[ 0.173848] 1c28000.serial: ttyS0 at MMIO 0x1c28000 (irq = 42, base_baud = 1500000) is a U6_16550A
[ 0.196594] 1c28800.serial: ttyS2 at MMIO 0x1c28800 (irq = 43, base_baud = 1500000) is a U6_16550A
[ 0.926554] printk: console [ttyS2] enabled
[ 0.931731] sun8i-v3s-pinctrl 1c20800.pinctrl: supply vcc-pc not found, using dummy regulator
[ 0.942284] sun8i-v3s-pinctrl 1c20800.pinctrl: supply vcc-pg not found, using dummy regulator
[ 0.952450] sun8i-v3s-pinctrl 1c20800.pinctrl: supply vcc-pf not found, using dummy regulator
[ 0.962525] usb_phy_generic usb_phy_generic.1.auto: supply vcc not found, using dummy regulator
[ 0.971592] usb_phy_generic usb_phy_generic.1.auto: dummy supplies not allowed for exclusive requests
[ 0.981758] musb-hdrc musb-hdrc.2.auto: MUSB HDRC host driver
[ 0.987644] musb-hdrc musb-hdrc.2.auto: new USB bus registered, assigned bus number 1
[ 0.999505] hub 1-0:1.0: USB hub found
[ 1.003365] hub 1-0:1.0: 1 port detected
[ 1.008522] using random self ethernet address
[ 1.013058] using random host ethernet address
[ 1.018752] usb0: HOST MAC 5e:7a:0d:7c:d2:24
[ 1.023058] usb0: MAC ca:f5:4e:3f:46:e6
[ 1.027074] g_cdc gadget: CDC Composite Gadget, version: King Kamehameha Day 2008
[ 1.034589] g_cdc gadget: g_cdc ready
[ 1.038727] sunxi-mmc 1c0f000.mmc: initialized, max. request size: 16384 KB
[ 1.046839] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[ 1.058927] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[ 1.065727] ALSA device list:
[ 1.068712] No soundcards found.
[ 1.072888] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[ 1.081659] cfg80211: failed to load regulatory.db
[ 1.086904] Waiting for root device /dev/mtdblock3...
[ 31.204799] vcc3v0: disabling
[ 31.207809] vcc3v3: disabling
[ 31.210777] vcc5v0: disabling
[ 287.790801] random: crng init done
离线
日志里面没有 spi
那么日志里为何没有spi信息呢?
sun8i-v3s-dtsi:
/*
* Copyright (C) 2016 Icenowy Zheng <icenowy@aosc.xyz>
* Copyright (C) 2021 Tobias Schramm <t.schramm@manjaro.org>
*
* 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/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/sun8i-v3s-ccu.h>
#include <dt-bindings/reset/sun8i-v3s-ccu.h>
#include <dt-bindings/clock/sun8i-de2.h>
/ {
#address-cells = <1>;
#size-cells = <1>;
interrupt-parent = <&gic>;
chosen {
#address-cells = <1>;
#size-cells = <1>;
ranges;
framebuffer-lcd {
compatible = "allwinner,simple-framebuffer",
"simple-framebuffer";
allwinner,pipeline = "mixer0-lcd0";
clocks = <&display_clocks CLK_MIXER0>,
<&ccu CLK_TCON0>;
status = "disabled";
};
};
cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu@0 {
compatible = "arm,cortex-a7";
device_type = "cpu";
reg = <0>;
clocks = <&ccu CLK_CPU>;
};
};
de: display-engine {
compatible = "allwinner,sun8i-v3s-display-engine";
allwinner,pipelines = <&mixer0>;
status = "disabled";
};
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-accuracy = <50000>;
clock-output-names = "osc24M";
};
osc32k: osc32k_clk {
#clock-cells = <0>;
compatible = "fixed-clock";
clock-frequency = <32768>;
clock-accuracy = <50000>;
clock-output-names = "ext-osc32k";
};
};
soc {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges;
display_clocks: clock@1000000 {
compatible = "allwinner,sun8i-v3s-de2-clk";
reg = <0x01000000 0x10000>;
clocks = <&ccu CLK_BUS_DE>,
<&ccu CLK_DE>;
clock-names = "bus",
"mod";
resets = <&ccu RST_BUS_DE>;
#clock-cells = <1>;
#reset-cells = <1>;
};
mixer0: mixer@1100000 {
compatible = "allwinner,sun8i-v3s-de2-mixer";
reg = <0x01100000 0x100000>;
clocks = <&display_clocks 0>,
<&display_clocks 6>;
clock-names = "bus",
"mod";
resets = <&display_clocks 0>;
ports {
#address-cells = <1>;
#size-cells = <0>;
mixer0_out: port@1 {
reg = <1>;
mixer0_out_tcon0: endpoint {
remote-endpoint = <&tcon0_in_mixer0>;
};
};
};
};
syscon: system-control@1c00000 {
compatible = "allwinner,sun8i-v3s-system-control",
"allwinner,sun8i-h3-system-control";
reg = <0x01c00000 0xd0>;
#address-cells = <1>;
#size-cells = <1>;
ranges;
};
nmi_intc: interrupt-controller@1c000d0 {
compatible = "allwinner,sun8i-v3s-nmi",
"allwinner,sun9i-a80-nmi";
interrupt-controller;
#interrupt-cells = <2>;
reg = <0x01c000d0 0x0c>;
interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
};
dma: dma-controller@1c02000 {
compatible = "allwinner,sun8i-v3s-dma";
reg = <0x01c02000 0x1000>;
interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_DMA>;
resets = <&ccu RST_BUS_DMA>;
#dma-cells = <1>;
};
tcon0: lcd-controller@1c0c000 {
compatible = "allwinner,sun8i-v3s-tcon";
reg = <0x01c0c000 0x1000>;
interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_TCON0>,
<&ccu CLK_TCON0>;
clock-names = "ahb",
"tcon-ch0";
clock-output-names = "tcon-pixel-clock";
#clock-cells = <0>;
resets = <&ccu RST_BUS_TCON0>;
reset-names = "lcd";
status = "disabled";
ports {
#address-cells = <1>;
#size-cells = <0>;
tcon0_in: port@0 {
reg = <0>;
tcon0_in_mixer0: endpoint {
remote-endpoint = <&mixer0_out_tcon0>;
};
};
tcon0_out: port@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
};
};
};
mmc0: mmc@1c0f000 {
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>;
pinctrl-names = "default";
pinctrl-0 = <&mmc0_pins>;
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
mmc1: mmc@1c10000 {
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>;
pinctrl-names = "default";
pinctrl-0 = <&mmc1_pins>;
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
mmc2: mmc@1c11000 {
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>;
};
crypto@1c15000 {
compatible = "allwinner,sun8i-v3s-crypto",
"allwinner,sun8i-a33-crypto";
reg = <0x01c15000 0x1000>;
interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_CE>, <&ccu CLK_CE>;
clock-names = "ahb", "mod";
dmas = <&dma 16>, <&dma 16>;
dma-names = "rx", "tx";
resets = <&ccu RST_BUS_CE>;
reset-names = "ahb";
};
usb_otg: usb@1c19000 {
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@1c19400 {
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@1c20000 {
compatible = "allwinner,sun8i-v3s-ccu";
reg = <0x01c20000 0x400>;
clocks = <&osc24M>, <&rtc 0>;
clock-names = "hosc", "losc";
#clock-cells = <1>;
#reset-cells = <1>;
};
rtc: rtc@1c20400 {
#clock-cells = <1>;
compatible = "allwinner,sun8i-v3-rtc";
reg = <0x01c20400 0x54>;
interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&osc32k>;
clock-output-names = "osc32k", "osc32k-out";
};
pio: pinctrl@1c20800 {
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>, <&rtc 0>;
clock-names = "apb", "hosc", "losc";
gpio-controller;
#gpio-cells = <3>;
interrupt-controller;
#interrupt-cells = <3>;
/omit-if-no-ref/
csi0_mclk_pin: csi0-mclk-pin {
pins = "PE20";
function = "csi_mipi";
};
/omit-if-no-ref/
csi1_8bit_pins: csi1-8bit-pins {
pins = "PE0", "PE2", "PE3", "PE8", "PE9",
"PE10", "PE11", "PE12", "PE13", "PE14",
"PE15";
function = "csi";
};
/omit-if-no-ref/
csi1_mclk_pin: csi1-mclk-pin {
pins = "PE1";
function = "csi";
};
i2c0_pins: i2c0-pins {
pins = "PB6", "PB7";
function = "i2c0";
};
/omit-if-no-ref/
i2c1_pb_pins: i2c1-pb-pins {
pins = "PB8", "PB9";
function = "i2c1";
};
/omit-if-no-ref/
i2c1_pe_pins: i2c1-pe-pins {
pins = "PE21", "PE22";
function = "i2c1";
};
uart0_pb_pins: uart0-pb-pins {
pins = "PB8", "PB9";
function = "uart0";
};
uart2_pins: uart2-pins {
pins = "PB0", "PB1";
function = "uart2";
};
mmc0_pins: mmc0-pins {
pins = "PF0", "PF1", "PF2", "PF3",
"PF4", "PF5";
function = "mmc0";
drive-strength = <30>;
bias-pull-up;
};
mmc1_pins: mmc1-pins {
pins = "PG0", "PG1", "PG2", "PG3",
"PG4", "PG5";
function = "mmc1";
drive-strength = <30>;
bias-pull-up;
};
spi0_pins: spi0-pins {
pins = "PC0", "PC1", "PC2", "PC3";
function = "spi0";
};
};
timer@1c20c00 {
compatible = "allwinner,sun8i-v3s-timer";
reg = <0x01c20c00 0xa0>;
interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&osc24M>;
};
wdt0: watchdog@1c20ca0 {
compatible = "allwinner,sun6i-a31-wdt";
reg = <0x01c20ca0 0x20>;
interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&osc24M>;
};
pwm: pwm@1c21400 {
compatible = "allwinner,sun8i-v3s-pwm",
"allwinner,sun7i-a20-pwm";
reg = <0x01c21400 0xc>;
clocks = <&osc24M>;
#pwm-cells = <3>;
status = "disabled";
};
lradc: lradc@1c22800 {
compatible = "allwinner,sun4i-a10-lradc-keys";
reg = <0x01c22800 0x400>;
interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
status = "disabled";
};
codec: codec@1c22c00 {
#sound-dai-cells = <0>;
compatible = "allwinner,sun8i-v3s-codec";
reg = <0x01c22c00 0x400>;
interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_CODEC>, <&ccu CLK_AC_DIG>;
clock-names = "apb", "codec";
resets = <&ccu RST_BUS_CODEC>;
dmas = <&dma 15>, <&dma 15>;
dma-names = "rx", "tx";
allwinner,codec-analog-controls = <&codec_analog>;
status = "disabled";
};
codec_analog: codec-analog@1c23000 {
compatible = "allwinner,sun8i-v3s-codec-analog";
reg = <0x01c23000 0x4>;
};
uart0: serial@1c28000 {
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>;
dmas = <&dma 6>, <&dma 6>;
dma-names = "rx", "tx";
resets = <&ccu RST_BUS_UART0>;
status = "disabled";
};
uart1: serial@1c28400 {
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>;
dmas = <&dma 7>, <&dma 7>;
dma-names = "rx", "tx";
resets = <&ccu RST_BUS_UART1>;
status = "disabled";
};
uart2: serial@1c28800 {
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>;
dmas = <&dma 8>, <&dma 8>;
dma-names = "rx", "tx";
resets = <&ccu RST_BUS_UART2>;
pinctrl-0 = <&uart2_pins>;
pinctrl-names = "default";
status = "disabled";
};
i2c0: i2c@1c2ac00 {
compatible = "allwinner,sun6i-a31-i2c";
reg = <0x01c2ac00 0x400>;
interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_I2C0>;
resets = <&ccu RST_BUS_I2C0>;
pinctrl-names = "default";
pinctrl-0 = <&i2c0_pins>;
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
i2c1: i2c@1c2b000 {
compatible = "allwinner,sun6i-a31-i2c";
reg = <0x01c2b000 0x400>;
interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_I2C1>;
resets = <&ccu RST_BUS_I2C1>;
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
emac: ethernet@1c30000 {
compatible = "allwinner,sun8i-v3s-emac";
syscon = <&syscon>;
reg = <0x01c30000 0x10000>;
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";
phy-handle = <&int_mii_phy>;
phy-mode = "mii";
status = "disabled";
mdio: mdio {
#address-cells = <1>;
#size-cells = <0>;
compatible = "snps,dwmac-mdio";
};
mdio_mux: mdio-mux {
compatible = "allwinner,sun8i-h3-mdio-mux";
#address-cells = <1>;
#size-cells = <0>;
mdio-parent-bus = <&mdio>;
/* Only one MDIO is usable at the time */
internal_mdio: mdio@1 {
compatible = "allwinner,sun8i-h3-mdio-internal";
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
int_mii_phy: ethernet-phy@1 {
compatible = "ethernet-phy-ieee802.3-c22";
reg = <1>;
clocks = <&ccu CLK_BUS_EPHY>;
resets = <&ccu RST_BUS_EPHY>;
};
};
};
};
spi0: spi@1c68000 {
compatible = "allwinner,sun8i-h3-spi";
reg = <0x01c68000 0x1000>;
interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_SPI0>;
clock-names = "ahb", "mod";
dmas = <&dma 23>, <&dma 23>;
dma-names = "rx", "tx";
pinctrl-names = "default";
pinctrl-0 = <&spi0_pins>;
resets = <&ccu RST_BUS_SPI0>;
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
gic: interrupt-controller@1c81000 {
compatible = "arm,gic-400";
reg = <0x01c81000 0x1000>,
<0x01c82000 0x2000>,
<0x01c84000 0x2000>,
<0x01c86000 0x2000>;
interrupt-controller;
#interrupt-cells = <3>;
interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
};
csi1: camera@1cb4000 {
compatible = "allwinner,sun8i-v3s-csi";
reg = <0x01cb4000 0x3000>;
interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_CSI>,
<&ccu CLK_CSI1_SCLK>,
<&ccu CLK_DRAM_CSI>;
clock-names = "bus", "mod", "ram";
resets = <&ccu RST_BUS_CSI>;
status = "disabled";
};
};
};
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.
*/
/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;
serial2 = &uart2;
spi0 = &spi0;
};
chosen {
stdout-path = "serial2:115200n8";
};
leds {
compatible = "gpio-leds";
blue_led {
label = "licheepi:blue:usr";
gpios = <&pio 6 1 GPIO_ACTIVE_LOW>; /* PG1 */
};
green_led {
label = "licheepi:green:usr";
gpios = <&pio 6 0 GPIO_ACTIVE_LOW>; /* PG0 */
default-state = "on";
};
red_led {
label = "licheepi:red:usr";
gpios = <&pio 6 2 GPIO_ACTIVE_LOW>; /* PG2 */
};
};
};
&mmc0 {
broken-cd;
bus-width = <4>;
vmmc-supply = <®_vcc3v3>;
status = "okay";
};
&spi0 {
status = "okay";
};
&uart0 {
pinctrl-0 = <&uart0_pb_pins>;
pinctrl-names = "default";
status = "okay";
};
&uart2{
pinctrl-0 = <&uart2_pins>;
pinctrl-names = "default";
status = "okay";
};
&usb_otg {
dr_mode = "otg";
status = "okay";
};
&usbphy {
usb0_id_det-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>;
status = "okay";
};
离线
Command line partition table parsing和SPI NOR device support已经勾选了。
───────────────────────────── Partition parsers ───────────────────────────────┐
│ Arrow keys navigate the menu. <Enter> selects submenus ---> (or empty │
│ submenus ----). Highlighted letters are hotkeys. Pressing <Y> includes, <N> │
│ excludes, <M> modularizes features. Press <Esc><Esc> to exit, <?> for Help, │
│ </> for Search. Legend: [*] built-in [ ] excluded <M> module < > module │
│ ┌─────────────────────────────────────────────────────────────────────────────┐ │
│ │ < > TI AR7 partitioning parser │ │
│ │ <*> Command line partition table parsing │ │
│ │ <*> OpenFirmware (device tree) partitioning parser │ │
│ │ < > ARM Firmware Suite partition parsing │ │
│ │ < > RedBoot partition table parsing │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────────────────────────┤
│ <Select> < Exit > < Help > < Save > < Load >
──────────────────── Memory Technology Device (MTD) support ─────────────────────┐
│ Arrow keys navigate the menu. <Enter> selects submenus ---> (or empty │
│ submenus ----). Highlighted letters are hotkeys. Pressing <Y> includes, <N> │
│ excludes, <M> modularizes features. Press <Esc><Esc> to exit, <?> for Help, │
│ </> for Search. Legend: [*] built-in [ ] excluded <M> module < > module │
│ ┌────^(-)─────────────────────────────────────────────────────────────────────┐ │
│ │ [ ] Retain master device when partitioned │ │
│ │ RAM/ROM/Flash chip drivers ---> │ │
│ │ Mapping drivers for chip access ---> │ │
│ │ Self-contained MTD device drivers ---> │ │
│ │ NAND ---> │ │
│ │ LPDDR & LPDDR2 PCM memory drivers ---> │ │
│ │ <*> SPI NOR device support ---> │ │
│ │ < > Enable UBI - Unsorted block images ---- │ │
│ └────v(+)─────────────────────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────────────────────────┤
│ <Select> < Exit > < Help > < Save > < Load >
最近编辑记录 Gentlepig (2022-06-23 10:15:03)
离线
好的,我去加个。感谢。
离线
我在sun8i-v3s-licheepi-zero.dts加入了w25q128:
/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;
serial2 = &uart2;
spi0 = &spi0;
};
chosen {
stdout-path = "serial2:115200n8";
};
leds {
compatible = "gpio-leds";
blue_led {
label = "licheepi:blue:usr";
gpios = <&pio 6 1 GPIO_ACTIVE_LOW>; /* PG1 */
};
green_led {
label = "licheepi:green:usr";
gpios = <&pio 6 0 GPIO_ACTIVE_LOW>; /* PG0 */
default-state = "on";
};
red_led {
label = "licheepi:red:usr";
gpios = <&pio 6 2 GPIO_ACTIVE_LOW>; /* PG2 */
};
};
};
&mmc0 {
broken-cd;
bus-width = <4>;
vmmc-supply = <®_vcc3v3>;
status = "okay";
};
&spi0 {
status = "okay";
w25q128:w25q128@0 {
compatible = "jedec,spi-nor";
reg = <0x0>;
spi-max-frequency = <50000000>;
#address-cells = <1>;
#size-cells = <1>;
};
};
&uart0 {
pinctrl-0 = <&uart0_pb_pins>;
pinctrl-names = "default";
status = "okay";
};
&uart2{
pinctrl-0 = <&uart2_pins>;
pinctrl-names = "default";
status = "okay";
};
&usb_otg {
dr_mode = "otg";
status = "okay";
};
&usbphy {
usb0_id_det-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>;
status = "okay";
};
但是烧录到v3s后,结果好像和之前一样:
U-Boot SPL 2022.04 (Jun 17 2022 - 09:45:39 +0800)
DRAM: 64 MiB
Trying to boot from sunxi SPI
U-Boot 2022.04 (Jun 17 2022 - 09:45:39 +0800) Allwinner Technology
CPU: Allwinner V3s (SUN8I 1681)
Model: Lichee Pi Zero
DRAM: 64 MiB
Core: 23 devices, 10 uclasses, devicetree: separate
WDT: Not starting watchdog@1c20ca0
MMC: mmc@1c0f000: 0
Loading Environment from SPIFlash... SF: Detected w25q128 with page size 256 Bytes, erase size 4 KiB, total 16 MiB
OK
In: serial@1c28800
Out: serial@1c28800
Err: serial@1c28800
Net: No ethernet found.
Hit any key to stop autoboot: 0
SF: Detected w25q128 with page size 256 Bytes, erase size 4 KiB, total 16 MiB
device 0 offset 0x100000, size 0x10000
SF: 65536 bytes @ 0x100000 Read: OK
device 0 offset 0x110000, size 0x400000
SF: 4194304 bytes @ 0x110000 Read: OK
Kernel image @ 0x41000000 [ 0x000000 - 0x3921d0 ]
## Flattened Device Tree blob at 41800000
Booting using the fdt blob at 0x41800000
Loading Device Tree to 42dfa000, end 42dffd7b ... OK
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 5.18.2-licheepi-zero (any@Any-Desktop) (arm-linux-gnueabihf-gcc (GCC) 12.0.1 20220205 (experimental) [master revision f49b8d25b1ff96e9cd09326666cc510b3a3accde], GNU ld (Linaro_Binutils-2022.2
[ 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
[ 0.000000] Memory policy: Data cache writealloc
[ 0.000000] Zone ranges:
[ 0.000000] Normal [mem 0x0000000040000000-0x0000000043ffffff]
[ 0.000000] HighMem empty
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000040000000-0x0000000043ffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x0000000043ffffff]
[ 0.000000] psci: probing for conduit method from DT.
[ 0.000000] psci: Using PSCI v0.1 Function IDs from DT
[ 0.000000] percpu: Embedded 11 pages/cpu s15316 r8192 d21548 u45056
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 16256
[ 0.000000] Kernel command line: console=ttyS2,115200 earlyprintk panic=5 rootwait mtdparts=spi32766.0:1M(uboot),64k(dtb)ro,4M(kernel)ro,-(rootfs) root=/dev/mtdblock3 rw rootfstype=jffs2 init=/linuxrc vt.global_curso0
[ 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:all(zero), heap alloc:off, heap free:off
[ 0.000000] Memory: 52640K/65536K available (8192K kernel code, 688K rwdata, 1816K rodata, 1024K init, 233K bss, 12896K reserved, 0K 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 event tracing is enabled.
[ 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: Using split EOI/Deactivate mode
[ 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.000002] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[ 0.000021] Switching to timer-based delay loop, resolution 41ns
[ 0.000230] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[ 0.000626] Console: colour dummy device 80x30
[ 0.000714] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
[ 0.000741] pid_max: default: 32768 minimum: 301
[ 0.000977] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.001014] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.001794] CPU: Testing write buffer coherency: ok
[ 0.002362] /cpus/cpu@0 missing clock-frequency property
[ 0.002427] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[ 0.003792] Setting up static identity map for 0x40100000 - 0x40100060
[ 0.004119] rcu: Hierarchical SRCU implementation.
[ 0.004920] smp: Bringing up secondary CPUs ...
[ 0.004954] smp: Brought up 1 node, 1 CPU
[ 0.004970] SMP: Total of 1 processors activated (48.00 BogoMIPS).
[ 0.004982] CPU: All CPU(s) started in HYP mode.
[ 0.004988] CPU: Virtualization extensions available.
[ 0.005752] devtmpfs: initialized
[ 0.009252] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
[ 0.009591] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.009636] futex hash table entries: 256 (order: 2, 16384 bytes, linear)
[ 0.009969] pinctrl core: initialized pinctrl subsystem
[ 0.011828] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[ 0.012360] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.013493] thermal_sys: Registered thermal governor 'step_wise'
[ 0.013805] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[ 0.013845] hw-breakpoint: maximum watchpoint size is 8 bytes.
[ 0.032573] SCSI subsystem initialized
[ 0.032857] usbcore: registered new interface driver usbfs
[ 0.032918] usbcore: registered new interface driver hub
[ 0.032984] usbcore: registered new device driver usb
[ 0.033208] pps_core: LinuxPPS API ver. 1 registered
[ 0.033226] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 0.033252] PTP clock support registered
[ 0.033463] Advanced Linux Sound Architecture Driver Initialized.
[ 0.035016] clocksource: Switched to clocksource arch_sys_counter
[ 0.045726] NET: Registered PF_INET protocol family
[ 0.046082] IP idents hash table entries: 2048 (order: 2, 16384 bytes, linear)
[ 0.046747] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
[ 0.046823] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.046857] TCP bind hash table entries: 1024 (order: 1, 8192 bytes, linear)
[ 0.046887] TCP: Hash tables configured (established 1024 bind 1024)
[ 0.047037] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[ 0.047100] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[ 0.047375] NET: Registered PF_UNIX/PF_LOCAL protocol family
[ 0.048572] RPC: Registered named UNIX socket transport module.
[ 0.048623] RPC: Registered udp transport module.
[ 0.048633] RPC: Registered tcp transport module.
[ 0.048640] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.051085] Initialise system trusted keyrings
[ 0.051783] workingset: timestamp_bits=30 max_order=14 bucket_order=0
[ 0.059126] NFS: Registering the id_resolver key type
[ 0.059254] Key type id_resolver registered
[ 0.059271] Key type id_legacy registered
[ 0.059355] Key type asymmetric registered
[ 0.059372] Asymmetric key parser 'x509' registered
[ 0.059584] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 249)
[ 0.059609] io scheduler mq-deadline registered
[ 0.059620] io scheduler kyber registered
[ 0.124796] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
[ 0.130985] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 0.131030] ehci-platform: EHCI generic platform driver
[ 0.131125] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 0.131164] ohci-platform: OHCI generic platform driver
[ 0.131562] UDC core: couldn't find an available UDC - added [g_cdc] to list of pending drivers
[ 0.133012] sun6i-rtc 1c20400.rtc: registered as rtc0
[ 0.133085] sun6i-rtc 1c20400.rtc: setting system clock to 1970-01-01T00:17:57 UTC (1077)
[ 0.133114] sun6i-rtc 1c20400.rtc: RTC enabled
[ 0.133309] i2c_dev: i2c /dev entries driver
[ 0.134171] sunxi-wdt 1c20ca0.watchdog: Watchdog enabled (timeout=16 sec, nowayout=0)
[ 0.135426] sun4i-ss 1c15000.crypto: Die ID 7
[ 0.136344] usbcore: registered new interface driver usbhid
[ 0.136375] usbhid: USB HID core driver
[ 0.138382] NET: Registered PF_PACKET protocol family
[ 0.138617] Key type dns_resolver registered
[ 0.138749] Registering SWP/SWPB emulation handler
[ 0.139029] Loading compiled-in X.509 certificates
[ 0.153025] sun8i-v3s-pinctrl 1c20800.pinctrl: initialized sunXi PIO driver
[ 0.153566] sun8i-v3s-pinctrl 1c20800.pinctrl: supply vcc-pb not found, using dummy regulator
[ 0.175632] 1c28000.serial: ttyS0 at MMIO 0x1c28000 (irq = 42, base_baud = 1500000) is a U6_16550A
[ 0.198196] 1c28800.serial: ttyS2 at MMIO 0x1c28800 (irq = 43, base_baud = 1500000) is a U6_16550A
[ 0.922123] printk: console [ttyS2] enabled
[ 0.927330] sun8i-v3s-pinctrl 1c20800.pinctrl: supply vcc-pc not found, using dummy regulator
[ 0.937702] spi-nor spi0.0: w25q128 (16384 Kbytes)
[ 0.944172] sun8i-v3s-pinctrl 1c20800.pinctrl: supply vcc-pg not found, using dummy regulator
[ 0.954355] sun8i-v3s-pinctrl 1c20800.pinctrl: supply vcc-pf not found, using dummy regulator
[ 0.964461] usb_phy_generic usb_phy_generic.1.auto: supply vcc not found, using dummy regulator
[ 0.973516] usb_phy_generic usb_phy_generic.1.auto: dummy supplies not allowed for exclusive requests
[ 0.983618] musb-hdrc musb-hdrc.2.auto: MUSB HDRC host driver
[ 0.989506] musb-hdrc musb-hdrc.2.auto: new USB bus registered, assigned bus number 1
[ 1.001457] hub 1-0:1.0: USB hub found
[ 1.005472] hub 1-0:1.0: 1 port detected
[ 1.010523] using random self ethernet address
[ 1.015134] using random host ethernet address
[ 1.020666] usb0: HOST MAC 72:17:8b:53:8a:17
[ 1.025091] usb0: MAC 5e:40:45:1b:4e:8a
[ 1.029004] g_cdc gadget: CDC Composite Gadget, version: King Kamehameha Day 2008
[ 1.036543] g_cdc gadget: g_cdc ready
[ 1.040705] sunxi-mmc 1c0f000.mmc: initialized, max. request size: 16384 KB
[ 1.048806] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[ 1.060839] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[ 1.067640] ALSA device list:
[ 1.070625] No soundcards found.
[ 1.074801] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[ 1.083581] cfg80211: failed to load regulatory.db
[ 1.088855] Waiting for root device /dev/mtdblock3...
[ 31.204993] vcc3v0: disabling
[ 31.208007] vcc3v3: disabling
[ 31.210976] vcc5v0: disabling
[ 287.790999] random: crng init done
离线
spi使能了。
───────────────────────────────────────────────────────── SPI support ──────────────────────────────────────────────────────────┐
│ Arrow keys navigate the menu. <Enter> selects submenus ---> (or empty submenus ----). Highlighted letters are hotkeys. │
│ Pressing <Y> includes, <N> excludes, <M> modularizes features. Press <Esc><Esc> to exit, <?> for Help, </> for Search. │
│ Legend: [*] built-in [ ] excluded <M> module < > module capable │
│ │
│ ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ --- SPI support │ │
│ │ [ ] Debug support for SPI drivers │ │
│ │ -*- SPI memory extension │ │
│ │ *** SPI Master Controller Drivers *** │ │
│ │ < > Altera SPI Controller platform driver │ │
│ │ < > Analog Devices AXI SPI Engine controller │ │
│ │ -*- Utilities for Bitbanging SPI masters │ │
│ │ < > Cadence SPI controller │ │
│ │ < > Cadence Quad SPI controller │ │
│ │ < > Cadence XSPI controller │ │
│ │ < > DesignWare SPI controller core support │ │
│ │ < > NXP Flex SPI controller │ │
│ │ <*> GPIO-based bitbanging SPI Master │ │
│ │ < > Freescale SPI controller and Aeroflex Gaisler GRLIB SPI controller │ │
│ │ < > OpenCores tiny SPI │ │
│ │ < > Rockchip SPI controller driver │ │
│ │ < > NXP SC18IS602/602B/603 I2C to SPI bridge │ │
│ │ < > SiFive SPI controller │ │
│ │ < > Allwinner A10 SoCs SPI controller │ │
│ │ <*> Allwinner A31 SPI controller │ │
│ └───────────────────────────v(+)──────────────────────────────────────────────────────────────────────────────────────────────┘ │
├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ <Select> < Exit > < Help > < Save > < Load >
离线
离线
不是这个,是spi-nor.c 那个.
少走弯路,对比一下这个吧:
(V3s/V3x/S3/S3L/R11通吃)小智V3x开发板smallwitpi lite u-boot/linux/buildroot测试
https://whycan.com/t_7248.html#p69178
如果说的是MTD里的spi nor flash support的话,是勾选了的,3楼里有展示。
小智帖子里,只有uboot和buildroot的编译,没有kerenl的。
最近编辑记录 Gentlepig (2022-06-23 17:03:57)
离线
@Gentlepig
有的,都在那个压缩包里面。
能否指出是哪个楼层以及文件名吗?
能下载的太多了,不确定是哪个,不想花积分...
离线
哇酷小二 说:@Gentlepig
有的,都在那个压缩包里面。能否指出是哪个楼层以及文件名吗?
能下载的太多了,不确定是哪个,不想花积分...
(V3s/V3x/S3/S3L/R11通吃)小智V3x开发板smallwitpi lite u-boot/linux/buildroot测试
https://whycan.com/t_7248.html#p69178
离线
下载了链接里3楼给的buildroot地址,git clone -b以后,下载patch,然后解压到buildroot目录里。
然后make br2_smallwitpi_lite_v3_ddr2_uart0_pb8_pb9_tfcard_spinor_defconfig,再make。
这个buildroot是自动下载工具链、uboot、kernel,所以花了比较久的时间。
通过编译后,下载到板子上,串口2无输出,发现这是uart0版本。
在以上defconfig里,做以下修改:
BR2_TARGET_UBOOT_CUSTOM_CONFIG_FILE="board/smallwitpi/lite/v1/configs/uboot-v2021.07/smallwitpi_lite_v3s_ddr2_debug_uart2_pb0_pb1_defconfig" #这里直接改成补丁里uboot对应的uart2的defconfig。
BR2_TARGET_UBOOT_CUSTOM_DTS_PATH="board/smallwitpi/lite/v1/dts/uboot-v2021.07/sun8i-v3x-smallwitpi-lite-debug-uart2.dts board/smallwitpi/lite/v1/dts/uboot-v2021.07/sun8i-v3x-smallwitpi-lite-debug-uart1.dts board/smallwitpi/lite/v1/dts/uboot-v2021.07/sun8i-v3x-smallwitpi-lite-debug-uart0.dts"
#这里是将uart2的设备树放到了最前,默认是第一个。
再次编译时,提示c-stack.c里有个报错,好像是55行,直接屏蔽这行,可继续通过编译。
再次下载到板子上,uboot阶段串口有输出了,但是进步到kerenl,打印env,发现没有bootcmd及bootargs。尝试setenv,但是发现没有saveenv命令。make uboot-menuconfig,发现勾选saveenv命令了。网上查了下,uboot-menuconfig里需要指定env存储位置,这里设为norspi,好像还有个擦除扇区也需要设置。
再次编译下载到板子上,单独烧录uboot,zimage,dtb文件。然后在uboot命令行里按荔枝派教程设置bootargs和bootcmd。可以启动内核了。
在内核信息里,可以看到spi分区。但是和我bootargs里指定的mtdpart不一样。按关键字搜索buildroot工程,在补丁文件里的scripts/genimage-nor.cfg里有这几个分区定义,genimage.sh调用这个文件,而它又是在buildroot menuconfig的systemconfigure里的自定义脚本里指定运行的。
那么问题来了,spiflash分区只能在脚本里实现的吗?是如何实现分区的?为什么荔枝派及我看坑网的其他教程,没有提到这个脚本?
还有,这个buildroot,为什么没有指定bootcmd及bootargs呢?
U-Boot SPL 2021.07 (Jun 25 2022 - 16:05:49 +0800)
DRAM: 64 MiB
Trying to boot from sunxi SPI
U-Boot 2021.07 (Jun 25 2022 - 16:05:49 +0800) Allwinner Technology
CPU: Allwinner V3s (SUN8I 1681)
Model: Smallwit Pi Lite
DRAM: 64 MiB
Loading Environment from SPIFlash... SF: Detected w25q128 with page size 256 Bytes, erase size 4 KiB, total 16 MiB
OK
In: serial@1c28800
Out: serial@1c28800
Err: serial@1c28800
Net: No ethernet found.
starting USB...
No working controllers found
Hit any key to stop autoboot: 0
SF: Detected w25q128 with page size 256 Bytes, erase size 4 KiB, total 16 MiB
device 0 offset 0x100000, size 0x10000
SF: 65536 bytes @ 0x100000 Read: OK
device 0 offset 0x110000, size 0x500000
SF: 5242880 bytes @ 0x110000 Read: OK
Kernel image @ 0x41000000 [ 0x000000 - 0x30bec8 ]
## Flattened Device Tree blob at 41800000
Booting using the fdt blob at 0x41800000
Loading Device Tree to 42df9000, end 42dff593 ... OK
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 5.4.70-smallwitpi (any@Any-Desktop) (gcc version 7.3.1 20180425 [linaro-7.3-2018.05 revision d29120a424ecf2
[ 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: SMALLWITPY
[ 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 s30668 r8192 d22580 u61440
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 16256
[ 0.000000] Kernel command line: console=ttyS2,115200 earlyprintk panic=5 rootwait mtdparts=spi32766.0:1M(uboot)ro,64k(dtb)ro,-(kerno
[ 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: 38512K/65536K available (6144K kernel code, 410K rwdata, 1804K rodata, 1024K init, 251K bss, 10640K reserved, 16)
[ 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+0x2b4/0x44c 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.000012] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[ 0.000028] Switching to timer-based delay loop, resolution 41ns
[ 0.000420] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[ 0.000869] Console: colour dummy device 80x30
[ 0.000975] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
[ 0.000998] pid_max: default: 32768 minimum: 301
[ 0.001269] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.001294] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.001463] *** VALIDATE tmpfs ***
[ 0.002441] *** VALIDATE proc ***
[ 0.002790] *** VALIDATE cgroup1 ***
[ 0.002818] *** VALIDATE cgroup2 ***
[ 0.002848] CPU: Testing write buffer coherency: ok
[ 0.003753] /cpus/cpu@0 missing clock-frequency property
[ 0.003797] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[ 0.005068] Setting up static identity map for 0x40100000 - 0x40100060
[ 0.005420] rcu: Hierarchical SRCU implementation.
[ 0.006316] smp: Bringing up secondary CPUs ...
[ 0.006351] smp: Brought up 1 node, 1 CPU
[ 0.006363] SMP: Total of 1 processors activated (48.00 BogoMIPS).
[ 0.006372] CPU: All CPU(s) started in HYP mode.
[ 0.006380] CPU: Virtualization extensions available.
[ 0.007486] devtmpfs: initialized
[ 0.013431] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
[ 0.013998] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.014050] futex hash table entries: 256 (order: 2, 16384 bytes, linear)
[ 0.015327] pinctrl core: initialized pinctrl subsystem
[ 0.017387] NET: Registered protocol family 16
[ 0.019205] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.021478] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[ 0.021511] hw-breakpoint: maximum watchpoint size is 8 bytes.
[ 0.047973] SCSI subsystem initialized
[ 0.048386] usbcore: registered new interface driver usbfs
[ 0.048469] usbcore: registered new interface driver hub
[ 0.048671] usbcore: registered new device driver usb
[ 0.049042] mc: Linux media interface: v0.10
[ 0.049097] videodev: Linux video capture interface: v2.00
[ 0.049151] pps_core: LinuxPPS API ver. 1 registered
[ 0.049162] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 0.049194] PTP clock support registered
[ 0.052030] clocksource: Switched to clocksource arch_sys_counter
[ 0.052527] *** VALIDATE ramfs ***
[ 0.069844] thermal_sys: Registered thermal governor 'step_wise'
[ 0.070517] NET: Registered protocol family 2
[ 0.071781] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
[ 0.071848] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.071890] TCP bind hash table entries: 1024 (order: 1, 8192 bytes, linear)
[ 0.072089] TCP: Hash tables configured (established 1024 bind 1024)
[ 0.072394] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[ 0.072483] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[ 0.072921] NET: Registered protocol family 1
[ 0.075980] Initialise system trusted keyrings
[ 0.076680] workingset: timestamp_bits=30 max_order=14 bucket_order=0
[ 0.087209] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 0.087750] utf8_selftest: All 154 tests passed
[ 0.087769] jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
[ 0.088667] *** VALIDATE jffs2 ***
[ 0.136788] Key type asymmetric registered
[ 0.136820] Asymmetric key parser 'x509' registered
[ 0.136973] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 248)
[ 0.136998] io scheduler mq-deadline registered
[ 0.137008] io scheduler kyber registered
[ 0.137016] test_strscpy: loaded.
[ 0.137049] test_strscpy: all 32 tests passed
[ 0.138732] sun4i-usb-phy 1c19400.phy: Couldn't request ID GPIO
[ 0.145282] sun8i-v3s-pinctrl 1c20800.pinctrl: initialized sunXi PIO driver
[ 0.146271] sun8i-v3s-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pb not found, using dummy regulator
[ 0.147462] pwm-backlight backlight: backlight supply power not found, using dummy regulator
[ 0.325662] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
[ 0.353170] 1c28000.serial: ttyS0 at MMIO 0x1c28000 (irq = 32, base_baud = 1500000) is a U6_16550A
[ 0.354528] sun8i-v3s-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pe not found, using dummy regulator
[ 0.376764] 1c28400.serial: ttyS1 at MMIO 0x1c28400 (irq = 33, base_baud = 1500000) is a U6_16550A
[ 0.400009] 1c28800.serial: ttyS2 at MMIO 0x1c28800 (irq = 34, base_baud = 1500000) is a U6_16550A
[ 1.033827] printk: console [ttyS2] enabled
[ 1.074223] panel-simple panel: panel supply power not found, using dummy regulator
[ 1.084864] sun8i-v3s-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pc not found, using dummy regulator
[ 1.097424] spi-nor spi0.0: w25q128 (16384 Kbytes)
[ 1.102471] 5 fixed-partitions partitions found on MTD device spi0.0
[ 1.108825] Creating 5 MTD partitions on "spi0.0":
[ 1.113683] 0x000000000000-0x000000070000 : "u-boot"
[ 1.122262] 0x000000070000-0x000000080000 : "dtb"
[ 1.130241] 0x000000080000-0x000000600000 : "kernel"
[ 1.138571] 0x000000600000-0x000000e00000 : "rom"
[ 1.146607] 0x000000e00000-0x000001000000 : "overlay"
[ 1.156419] libphy: Fixed MDIO Bus: probed
[ 1.161210] dwmac-sun8i 1c30000.ethernet: IRQ eth_wake_irq not found
[ 1.167759] dwmac-sun8i 1c30000.ethernet: IRQ eth_lpi not found
[ 1.173986] dwmac-sun8i 1c30000.ethernet: PTP uses main clock
[ 1.179819] dwmac-sun8i 1c30000.ethernet: No regulator found
[ 1.186488] dwmac-sun8i 1c30000.ethernet: No HW DMA feature register supported
[ 1.193858] dwmac-sun8i 1c30000.ethernet: RX Checksum Offload Engine supported
[ 1.201085] dwmac-sun8i 1c30000.ethernet: COE Type 2
[ 1.206088] dwmac-sun8i 1c30000.ethernet: TX Checksum insertion supported
[ 1.212891] dwmac-sun8i 1c30000.ethernet: Normal descriptors
[ 1.218548] dwmac-sun8i 1c30000.ethernet: Chain mode enabled
[ 1.224245] dwmac-sun8i 1c30000.ethernet: device MAC address 82:0a:38:08:3d:77
[ 1.231898] libphy: stmmac: probed
[ 1.236523] dwmac-sun8i 1c30000.ethernet: Found internal PHY node
[ 1.243036] libphy: mdio_mux: probed
[ 1.246662] dwmac-sun8i 1c30000.ethernet: Switch mux to internal PHY
[ 1.253099] dwmac-sun8i 1c30000.ethernet: Powering internal PHY
[ 1.261709] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 1.268469] ehci-platform: EHCI generic platform driver
[ 1.274288] ehci-platform 1c1a000.usb: EHCI Host Controller
[ 1.279943] ehci-platform 1c1a000.usb: new USB bus registered, assigned bus number 1
[ 1.288496] ehci-platform 1c1a000.usb: irq 24, io mem 0x01c1a000
[ 1.321993] ehci-platform 1c1a000.usb: USB 2.0 started, EHCI 1.00
[ 1.329955] hub 1-0:1.0: USB hub found
[ 1.334078] hub 1-0:1.0: 1 port detected
[ 1.339148] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 1.345580] ohci-platform: OHCI generic platform driver
[ 1.351354] ohci-platform 1c1a400.usb: Generic Platform OHCI controller
[ 1.358165] ohci-platform 1c1a400.usb: new USB bus registered, assigned bus number 2
[ 1.366525] ohci-platform 1c1a400.usb: irq 25, io mem 0x01c1a400
[ 1.450451] hub 2-0:1.0: USB hub found
[ 1.454548] hub 2-0:1.0: 1 port detected
[ 1.459724] usbcore: registered new interface driver usb-storage
[ 1.467403] mousedev: PS/2 mouse device common for all mice
[ 1.474010] i2c /dev entries driver
[ 1.481101] sunxi-wdt 1c20ca0.watchdog: Watchdog enabled (timeout=16 sec, nowayout=0)
[ 1.490476] sun8i-v3s-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pf not found, using dummy regulator
[ 1.528522] sunxi-mmc 1c0f000.mmc: initialized, max. request size: 16384 KB
[ 1.537285] usbcore: registered new interface driver usbhid
[ 1.543020] usbhid: USB HID core driver
[ 1.548204] IPv4 over IPsec tunneling driver
[ 1.553713] NET: Registered protocol family 17
[ 1.558295] Key type dns_resolver registered
[ 1.562887] Registering SWP/SWPB emulation handler
[ 1.569374] Loading compiled-in X.509 certificates
[ 1.585525] sun8i-v3s-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pg not found, using dummy regulator
[ 1.601234] sun4i-drm display-engine: bound 1100000.mixer (ops 0xc075ffa0)
[ 1.609380] sun4i-drm display-engine: bound 1c0c000.lcd-controller (ops 0xc075d100)
[ 1.617203] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 1.623857] [drm] No driver support for vblank timestamp query.
[ 1.631703] [drm] Initialized sun4i-drm 1.0.0 20150629 for display-engine on minor 0
[ 1.680157] Console: switching to colour frame buffer device 60x34
[ 1.703455] sun4i-drm display-engine: fb0: sun4i-drmdrmfb frame buffer device
[ 1.712392] usb_phy_generic usb_phy_generic.0.auto: usb_phy_generic.0.auto supply vcc not found, using dummy regulator
[ 1.724556] musb-hdrc musb-hdrc.1.auto: MUSB HDRC host driver
[ 1.730453] musb-hdrc musb-hdrc.1.auto: new USB bus registered, assigned bus number 3
[ 1.740520] hub 3-0:1.0: USB hub found
[ 1.744634] hub 3-0:1.0: 1 port detected
[ 1.750607] hctosys: unable to open rtc device (rtc0)
[ 1.758018] Waiting for root device ...
[ 4.689702] random: fast init done
[ 31.841989] vcc3v0: disabling
[ 31.844986] vcc3v3: disabling
[ 31.847955] vcc5v0: disabling
[ 233.468038] random: crng init done
最近编辑记录 Gentlepig (2022-06-25 16:48:31)
离线
又搜了下,spiflash分区不是genimage.sh这个脚本定义的,这个感觉可能是打包成单个img用的。
实际是在kernel的设备树里定义的分区。按荔枝派分区规划修改了设备树。启动后可以看到分区和预想的一致了。
但是不知道为何没有进入文件系统。
[ 1.097429] spi-nor spi0.0: w25q128 (16384 Kbytes)
[ 1.102475] 4 fixed-partitions partitions found on MTD device spi0.0
[ 1.108829] Creating 4 MTD partitions on "spi0.0":
[ 1.113680] 0x000000000000-0x000000100000 : "u-boot"
[ 1.122257] 0x000000100000-0x000000110000 : "dtb"
[ 1.130265] 0x000000110000-0x000000620000 : "kernel"
[ 1.138590] 0x000000510000-0x000002510000 : "roots"
[ 1.143665] mtd: partition "roots" extends beyond the end of device "spi0.0" -- size truncated to 0xaf0000
[ 1.157737] libphy: Fixed MDIO Bus: probed
[ 1.162718] dwmac-sun8i 1c30000.ethernet: IRQ eth_wake_irq not found
离线
那么,这回为何还是进不了文件系统呢?
用的uboot2022.04,linux5.18,buildrtoot也是新的,不过制作出来的rootfs.jffs2只有2M多。
U-Boot SPL 2022.04 (Jun 17 2022 - 09:45:39 +0800)
DRAM: 64 MiB
Trying to boot from sunxi SPI
U-Boot 2022.04 (Jun 17 2022 - 09:45:39 +0800) Allwinner Technology
CPU: Allwinner V3s (SUN8I 1681)
Model: Lichee Pi Zero
DRAM: 64 MiB
Core: 23 devices, 10 uclasses, devicetree: separate
WDT: Not starting watchdog@1c20ca0
MMC: mmc@1c0f000: 0
Loading Environment from SPIFlash... SF: Detected w25q128 with page size 256 Bytes, erase size 4 KiB, total 16 MiB
OK
In: serial@1c28800
Out: serial@1c28800
Err: serial@1c28800
Net: No ethernet found.
Unknown command 'usb' - try 'help'
Hit any key to stop autoboot: 0
SF: Detected w25q128 with page size 256 Bytes, erase size 4 KiB, total 16 MiB
device 0 offset 0x100000, size 0x10000
SF: 65536 bytes @ 0x100000 Read: OK
device 0 offset 0x110000, size 0x500000
SF: 5242880 bytes @ 0x110000 Read: OK
Kernel image @ 0x41000000 [ 0x000000 - 0x36af98 ]
## Flattened Device Tree blob at 41800000
Booting using the fdt blob at 0x41800000
Loading Device Tree to 42dfa000, end 42dffee5 ... OK
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 5.18.2-licheepi-zero (any@Any-Desktop) (arm-linux-gnueabihf-gcc (GCC) 12.0.1 20220205 (experimental) [mast2
[ 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
[ 0.000000] Memory policy: Data cache writealloc
[ 0.000000] Zone ranges:
[ 0.000000] Normal [mem 0x0000000040000000-0x0000000043ffffff]
[ 0.000000] HighMem empty
[ 0.000000] Movable zone start for each node
[ 0.000000] Early memory node ranges
[ 0.000000] node 0: [mem 0x0000000040000000-0x0000000043ffffff]
[ 0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x0000000043ffffff]
[ 0.000000] psci: probing for conduit method from DT.
[ 0.000000] psci: Using PSCI v0.1 Function IDs from DT
[ 0.000000] percpu: Embedded 11 pages/cpu s15316 r8192 d21548 u45056
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 16256
[ 0.000000] Kernel command line: console=ttyS2,115200 earlyprintk panic=5 rootwait mtdparts=spi32766.0:1M(uboot)ro,64k(dtb)ro,-(kerno
[ 0.000000] Unknown kernel command line parameters "earlyprintk", will be passed to user space.
[ 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:all(zero), heap alloc:off, heap free:off
[ 0.000000] Memory: 53668K/65536K available (7168K kernel code, 682K rwdata, 1772K rodata, 1024K init, 233K bss, 11868K reserved, 0K)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] rcu: Hierarchical RCU implementation.
[ 0.000000] rcu: RCU event tracing is enabled.
[ 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: Using split EOI/Deactivate mode
[ 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.000002] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[ 0.000021] Switching to timer-based delay loop, resolution 41ns
[ 0.000228] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[ 0.000631] Console: colour dummy device 80x30
[ 0.000720] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
[ 0.000746] pid_max: default: 32768 minimum: 301
[ 0.000981] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.001018] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.001786] CPU: Testing write buffer coherency: ok
[ 0.002367] /cpus/cpu@0 missing clock-frequency property
[ 0.002433] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[ 0.003751] Setting up static identity map for 0x40100000 - 0x40100060
[ 0.004073] rcu: Hierarchical SRCU implementation.
[ 0.004862] smp: Bringing up secondary CPUs ...
[ 0.004896] smp: Brought up 1 node, 1 CPU
[ 0.004911] SMP: Total of 1 processors activated (48.00 BogoMIPS).
[ 0.004924] CPU: All CPU(s) started in HYP mode.
[ 0.004930] CPU: Virtualization extensions available.
[ 0.005690] devtmpfs: initialized
[ 0.009221] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
[ 0.009554] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.009603] futex hash table entries: 256 (order: 2, 16384 bytes, linear)
[ 0.009827] pinctrl core: initialized pinctrl subsystem
[ 0.011733] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[ 0.012258] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.013401] thermal_sys: Registered thermal governor 'step_wise'
[ 0.013704] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[ 0.013743] hw-breakpoint: maximum watchpoint size is 8 bytes.
[ 0.032487] SCSI subsystem initialized
[ 0.032749] usbcore: registered new interface driver usbfs
[ 0.032809] usbcore: registered new interface driver hub
[ 0.032875] usbcore: registered new device driver usb
[ 0.033124] pps_core: LinuxPPS API ver. 1 registered
[ 0.033142] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 0.033167] PTP clock support registered
[ 0.033383] Advanced Linux Sound Architecture Driver Initialized.
[ 0.034911] clocksource: Switched to clocksource arch_sys_counter
[ 0.045482] NET: Registered PF_INET protocol family
[ 0.045823] IP idents hash table entries: 2048 (order: 2, 16384 bytes, linear)
[ 0.046481] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
[ 0.046557] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
[ 0.046590] TCP bind hash table entries: 1024 (order: 1, 8192 bytes, linear)
[ 0.046618] TCP: Hash tables configured (established 1024 bind 1024)
[ 0.046767] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[ 0.046831] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[ 0.047106] NET: Registered PF_UNIX/PF_LOCAL protocol family
[ 0.048291] RPC: Registered named UNIX socket transport module.
[ 0.048337] RPC: Registered udp transport module.
[ 0.048348] RPC: Registered tcp transport module.
[ 0.048355] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.050774] Initialise system trusted keyrings
[ 0.051537] workingset: timestamp_bits=30 max_order=14 bucket_order=0
[ 0.057918] NFS: Registering the id_resolver key type
[ 0.058054] Key type id_resolver registered
[ 0.058071] Key type id_legacy registered
[ 0.058132] jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
[ 0.058511] Key type asymmetric registered
[ 0.058536] Asymmetric key parser 'x509' registered
[ 0.058713] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 249)
[ 0.058736] io scheduler mq-deadline registered
[ 0.058747] io scheduler kyber registered
[ 0.122998] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled
[ 0.129056] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[ 0.129102] ehci-platform: EHCI generic platform driver
[ 0.129199] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[ 0.129240] ohci-platform: OHCI generic platform driver
[ 0.129640] UDC core: couldn't find an available UDC - added [g_cdc] to list of pending drivers
[ 0.131118] sun6i-rtc 1c20400.rtc: registered as rtc0
[ 0.131193] sun6i-rtc 1c20400.rtc: setting system clock to 1970-01-01T05:33:10 UTC (19990)
[ 0.131223] sun6i-rtc 1c20400.rtc: RTC enabled
[ 0.131415] i2c_dev: i2c /dev entries driver
[ 0.132241] sunxi-wdt 1c20ca0.watchdog: Watchdog enabled (timeout=16 sec, nowayout=0)
[ 0.133402] sun4i-ss 1c15000.crypto: Die ID 7
[ 0.134339] usbcore: registered new interface driver usbhid
[ 0.134372] usbhid: USB HID core driver
[ 0.136440] NET: Registered PF_PACKET protocol family
[ 0.136699] Key type dns_resolver registered
[ 0.136810] Registering SWP/SWPB emulation handler
[ 0.137084] Loading compiled-in X.509 certificates
[ 0.150810] sun8i-v3s-pinctrl 1c20800.pinctrl: initialized sunXi PIO driver
[ 0.151342] sun8i-v3s-pinctrl 1c20800.pinctrl: supply vcc-pb not found, using dummy regulator
[ 0.173239] 1c28000.serial: ttyS0 at MMIO 0x1c28000 (irq = 42, base_baud = 1500000) is a U6_16550A
[ 0.195967] 1c28800.serial: ttyS2 at MMIO 0x1c28800 (irq = 43, base_baud = 1500000) is a U6_16550A
[ 0.926875] printk: console [ttyS2] enabled
[ 0.932076] sun8i-v3s-pinctrl 1c20800.pinctrl: supply vcc-pc not found, using dummy regulator
[ 0.942599] spi-nor spi0.0: w25q128 (16384 Kbytes)
[ 0.947584] 4 fixed-partitions partitions found on MTD device spi0.0
[ 0.953945] Creating 4 MTD partitions on "spi0.0":
[ 0.958787] 0x000000000000-0x000000100000 : "u-boot"
[ 0.964473] 0x000000100000-0x000000110000 : "dtb"
[ 0.969884] 0x000000110000-0x000000510000 : "kernel"
[ 0.975507] 0x000000510000-0x000002510000 : "rootfs"
[ 0.980491] mtd: partition "rootfs" extends beyond the end of device "spi0.0" -- size truncated to 0xaf0000
[ 0.991700] sun8i-v3s-pinctrl 1c20800.pinctrl: supply vcc-pg not found, using dummy regulator
[ 1.001859] sun8i-v3s-pinctrl 1c20800.pinctrl: supply vcc-pf not found, using dummy regulator
[ 1.011991] usb_phy_generic usb_phy_generic.1.auto: supply vcc not found, using dummy regulator
[ 1.021054] usb_phy_generic usb_phy_generic.1.auto: dummy supplies not allowed for exclusive requests
[ 1.031187] musb-hdrc musb-hdrc.2.auto: MUSB HDRC host driver
[ 1.037076] musb-hdrc musb-hdrc.2.auto: new USB bus registered, assigned bus number 1
[ 1.049094] hub 1-0:1.0: USB hub found
[ 1.052951] hub 1-0:1.0: 1 port detected
[ 1.058169] using random self ethernet address
[ 1.062708] using random host ethernet address
[ 1.068345] usb0: HOST MAC 8e:6a:bb:16:91:86
[ 1.072649] usb0: MAC e6:dc:bd:d6:78:84
[ 1.076672] g_cdc gadget: CDC Composite Gadget, version: King Kamehameha Day 2008
[ 1.084185] g_cdc gadget: g_cdc ready
[ 1.088351] sunxi-mmc 1c0f000.mmc: initialized, max. request size: 16384 KB
[ 1.096490] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[ 1.108528] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[ 1.115330] ALSA device list:
[ 1.118315] No soundcards found.
[ 1.122533] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[ 1.131324] cfg80211: failed to load regulatory.db
[ 1.136577] Waiting for root device ...
[ 31.204880] vcc3v0: disabling
[ 31.207894] vcc3v3: disabling
[ 31.210862] vcc5v0: disabling
本想试试小智的uboot、kernel、rootfs.jffs2。结果生成的rootfs.jffs2有11.2M,超了我留的空间。而尝试用我编译的2M多的jffs2,也是卡到这里进步到系统。
离线
搞乱了...
刚看了下bootargs里没有rootfs分区,还是我上个uboot2021版本时手动设置的bootargs。
于是手动又设置bootargs增加了root分区,结果进到内核后报错了。
[ 1.068357] using random host ethernet address
[ 1.073923] usb0: HOST MAC f2:89:ca:24:30:6b
[ 1.078364] usb0: MAC 7e:68:a9:74:b6:5e
[ 1.082267] g_cdc gadget: CDC Composite Gadget, version: King Kamehameha Day 2008
[ 1.089807] g_cdc gadget: g_cdc ready
[ 1.093954] sunxi-mmc 1c0f000.mmc: initialized, max. request size: 16384 KB
[ 1.102033] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[ 1.114007] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[ 1.120800] ALSA device list:
[ 1.123784] No soundcards found.
[ 1.128060] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[ 1.136826] cfg80211: failed to load regulatory.db
[ 1.173648] jffs2: jffs2_scan_inode_node(): CRC failed on node at 0x00034730: Read 0x5318e3b8, calculated 0xfed86b17
[ 1.527055] jffs2: Empty flash at 0x00290704 ends at 0x00291000
[ 1.533021] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00291000: 0x44fa instead
[ 1.542550] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00291004: 0xc3b3 instead
[ 1.552042] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00291008: 0xacba instead
[ 1.561526] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0029100c: 0x34ca instead
[ 1.571042] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00291010: 0x9aca instead
[ 1.580532] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00291014: 0x9ea4 instead
[ 1.590015] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00291018: 0x0f5f instead
[ 1.599496] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0029101c: 0x4c7a instead
[ 1.608977] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00291020: 0x05c0 instead
[ 1.618455] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00291024: 0x9603 instead
[ 1.627934] jffs2: Further such events for this erase block will not be printed
[ 1.648896] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x002a0000: 0x6952 instead
[ 1.658444] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x002a0004: 0xfb10 instead
[ 1.667939] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x002a0008: 0x6967 instead
[ 1.677421] jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x002a000c: 0x6ece instead
=> print bootcmd
bootcmd=sf probe 0; sf read 0x41800000 0x100000 0x10000; sf read 0x41000000 0x110000 0x500000; bootz 0x41000000 - 0x41800000
=> print bootargs
bootargs=console=ttyS2,115200 earlyprintk panic=5 rootwait mtdparts=spi32766.0:1M(uboot)ro,64k(dtb)ro,4M(kernel)ro,-(rootfs) root=31:03 rw rootfstype=jffs2
=>
另,感觉修改uboot后直接烧录到spiflash里,是不是原来的一些变量可能还存在?tf卡是需要dd命令擦除的吧,spiflashi是不是也应该擦除?
最近编辑记录 Gentlepig (2022-06-25 17:58:44)
离线