PCB-dat/PCB-dat.md
... ...
@@ -4,6 +4,8 @@
4 4
5 5
- [[PCB-design-dat]]
6 6
7
+- [[EDA-dat]] - [[kicad-dat]]
8
+
7 9
- [[fab-dat]] - [[fab-PCB-dat]] - [[fab-PCBA-dat]] - [[fab-stencil-dat]] - [[fab-mech-dat]]
8 10
9 11
- [[PCB-tools-dat]] - [[PCB-soldering-dat]]
... ...
@@ -12,8 +14,6 @@
12 14
13 15
- [[PCB-accesories-dat]]
14 16
15
-- [[EDA-dat]] - [[PCB-design-dat]] - [[kicad-dat]]
16
-
17 17
- [[test-point-dat]]
18 18
19 19
... ...
@@ -25,6 +25,6 @@
25 25
26 26
## ref
27 27
28
-
28
+- [[fab-stencil]]
29 29
30 30
PCB-dat/PCB-design-dat/PCB-design-dat.md
... ...
@@ -13,7 +13,7 @@
13 13
- [[peripherals-dat]]
14 14
15 15
16
-- [[4-layer-dat]] - [[0402-dat]]
16
+- [[4-layer-dat]] - [[0402-dat]] - [[double-side-PCB-dat]]
17 17
18 18
- [[PCB-form-dat]]
19 19
PCB-dat/PCB-design-dat/double-side-PCB-dat/double-side-PCB-dat.md
... ...
@@ -0,0 +1,12 @@
1
+
2
+# double-side-PCB-dat
3
+
4
+## General Rules
5
+
6
+| Factor | Rule of Thumb | Reason |
7
+| --------------------------------- | ----------------------------------------------------------------------------- | ---------------------------------------------------------------- |
8
+| **Component size & weight** | **Lighter / smaller SMD components are placed first**, usually on the bottom. | Heavy parts may fall off during second reflow. |
9
+| **Through-hole parts** | Always populated **after reflow** (usually last step). | Reflow ovens are for SMD; THT is wave-soldered or hand-soldered. |
10
+| **BGA, QFN, Fine-pitch ICs** | Usually go on the **primary (top) side**. | Better solder joint reliability and inspection access. |
11
+| **Connectors, mechanical parts** | Preferably on the **primary side**. | Reduces stress during use. |
12
+| **Assembly process optimization** | PCB side with **more components** usually chosen as **first (primary) side**. | Reduces machine setup time and cost. |
PCB-dat/PCB-design-dat/footprint-dat/footprint-dat.md
... ...
@@ -9,6 +9,7 @@
9 9
10 10
- [[QFP-dat]] - [[SSOP-dat]] - [[SOP-dat]]
11 11
12
+- [[fab-PCBA-dat]]
12 13
13 14
## common footprint libraries
14 15
... ...
@@ -24,6 +25,80 @@
24 25
- Package_CSP
25 26
26 27
28
+## IC Package Footprintscategorized by pitch
29
+
30
+
31
+| Pitch (mm) | Package Types & Examples |
32
+|------------|-------------------------------------------------------------------------------------------|
33
+| **0.3 mm** | WLCSP (Wafer Level Chip Scale Package), uBGA (Ultra Fine Pitch BGA), QFN (fine pitch) |
34
+| **0.35 mm**| DFN (small pitch variants), QFN (ultra fine pitch), LGA |
35
+| **0.4 mm** | QFN (fine pitch), CSP (Chip Scale Package), BGA (fine pitch), DFN |
36
+| **0.5 mm** | QFN (common pitch), TQFP (fine pitch), LGA, DFN |
37
+| **0.635 mm** | SSOP (Shrink Small Outline Package), TSSOP (Thin Shrink SOP) |
38
+| **0.8 mm** | QFP (Quad Flat Package), TQFP (standard pitch), LQFP, BGA (medium pitch) |
39
+| **1.0 mm** | QFP (larger pitch), LQFP, PLCC (Plastic Leaded Chip Carrier), SOIC (narrow pitch) |
40
+| **1.27 mm**| SOIC (Small Outline IC), DIP (Dual In-line Package), PLCC |
41
+| **1.5 mm** | Older DIP variants, larger SIP (Single In-line Package) |
42
+| **2.0 mm** | Some DIP, SIP, Power Packages (TO-220 multi-pin) |
43
+| **2.54 mm (0.1")** | Standard DIP (most common), SIP, headers, through-hole connectors |
44
+
45
+
46
+## Methods to Examine Hidden Solder Bridges Under Packages
47
+
48
+| Method | Description | Pros | Cons / Limitations |
49
+|--------------------------------|-----------------------------------------------------------------------------|------------------------------------------|-----------------------------------------|
50
+| **X-Ray Inspection** | Uses 2D or 3D X-ray (AXI/CT) to image solder joints under the package. | Most reliable, can see voids, bridges, opens | Expensive equipment, not DIY friendly |
51
+| **Microscope with Oblique Light** | Tilted inspection around chip edges, sometimes you can see solder "squeeze-out". | Cheap, immediate check | Only shows gross defects near edges |
52
+| **Electrical Continuity Test** | Use multimeter to check resistance between adjacent pins/pads. | Simple, effective for shorts | Cannot detect open joints or cold solder|
53
+| **Boundary Scan (JTAG)** | IC self-tests connectivity if supported. | Automated, precise | Only available if IC has JTAG support |
54
+| **Thermal Camera / IR Imaging**| Power up board, shorts often cause local hot spots. | Non-contact, quick check | Needs power-on, risk of damage |
55
+| **Flying Probe / ICT Test** | Automated test system probes nets for shorts/opens. | Precise, production use | Expensive, setup time |
56
+| **Acoustic Microscopy (SAM)** | Ultrasound imaging can detect voids or poor solder bonding. | High resolution for reliability testing | Very expensive, lab equipment only |
57
+
58
+
59
+For hobbyist / small-lab use:
60
+
61
+**Best option**: Electrical continuity check with a **multimeter** (between power rails, adjacent pins).
62
+
63
+Second best: If you suspect hidden bridges, try **thermal camera** (small USB IR cameras are affordable).
64
+
65
+Pro-level: Use an **X-ray machine** (common in professional PCB assembly houses).
66
+
67
+👉 If you’re debugging **why the IC doesn’t work after reflow**, I’d suggest:
68
+
69
+Check for shorts with multimeter.
70
+
71
+Power briefly, then feel for **overheating** (carefully) or use thermal camera.
72
+
73
+If nothing obvious, suspect **opens (unsoldered pads)**, which can only be 100% confirmed by X-ray or functional testing.
74
+
75
+
76
+
77
+## DIY Methods to Detect Hidden Solder Bridges Under Packages (No X-Ray)
78
+
79
+| Method | How It Works | Notes / Tips |
80
+|--------------------------------|-------------------------------------------------------------------------------|--------------|
81
+| **Multimeter Continuity Check**| With power off, measure resistance between power rails (VCC–GND) and between suspect pins. | If you read ~0Ω or very low resistance, there may be a bridge. |
82
+| **Current-Limited Power Test** | Power board with a bench supply set to current limit (e.g. 50–100mA). If supply immediately hits limit, there’s likely a short. | Use low limit to avoid chip damage. |
83
+| **Thermal Finger Test / IR Camera** | Briefly power on with current limit. A solder bridge often causes a tiny hot spot. | Safer with cheap USB thermal cameras. |
84
+| **Rosin / Alcohol Wetting** | Apply isopropyl alcohol or rosin flux around package edges, then power board. If there is a short, liquid may boil or show bubbles near bridged pads. | Not very precise, but sometimes works. |
85
+| **Resistance Mapping** | Compare resistance between ground and each I/O pin versus a known-good board. | Detects anomalies indirectly. |
86
+| **Functional "Wiggle Test"** | Gently press down or heat package with hot air. If circuit suddenly works or fails, some pads may be bridged or floating. | Risky — only use for debugging prototypes. |
87
+
88
+Practical DIY Workflow
89
+
90
+**First step**: Check resistance between **VCC and GND** before powering. If it’s suspiciously low, suspect a bridge.
91
+
92
+**Second step**: Use **current-limited bench supply** to power on — check for overheating.
93
+
94
+**Third step**: If possible, use **cheap thermal camera** (even phone add-ons) to find hot spots.
95
+
96
+**Last resort**: Rework package with **flux + hot air and reflow** — often fixes hidden bridges without even finding them.
97
+
98
+👉 This way you don’t need expensive X-ray, just a multimeter, alcohol/flux, and maybe a thermal camera.
99
+
100
+
101
+
27 102
## general footprint guide
28 103
29 104
### overal setup
SDK-dat/sunxi-dat/sunxi-dat.md
... ...
@@ -0,0 +1,8 @@
1
+
2
+# sunxi-dat
3
+
4
+- [[sunxi-tools-dat]]
5
+
6
+- [[TINA-dat]]
7
+
8
+- [[sunxi-errors-dat]] - [[sunxi-log-dat]]
SDK-dat/sunxi-dat/sunxi-errors-dat/sunxi-errors-dat.md
... ...
@@ -0,0 +1,42 @@
1
+
2
+# sunxi-errors-dat
3
+
4
+- [[sunxi-log-dat]]
5
+
6
+## Unable to mount root fs on unknown-block
7
+
8
+
9
+```
10
+[ 3.170114] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) ]---
11
+```
12
+
13
+
14
+## **Error Meaning**
15
+- **VFS: Unable to mount root fs** → Kernel started but could not find or mount the root filesystem.
16
+- **unknown-block(0,0)** → Kernel didn’t find the block device for rootfs (often means missing drivers or wrong parameters).
17
+
18
+---
19
+
20
+### **Common Causes**
21
+
22
+| Cause | Explanation |
23
+|-------|-------------|
24
+| **Incorrect rootfs path in bootloader** | Kernel parameter `root=` may point to a wrong device. |
25
+| **Missing storage drivers** | Kernel was built without drivers for your storage device (SD card, eMMC, SATA, etc.). |
26
+| **Corrupted root filesystem** | Root filesystem may be damaged or missing. |
27
+| **Wrong DTB (Device Tree Blob)** | Device tree does not match hardware, so root device isn’t recognized. |
28
+| **Wrong kernel configuration** | Missing CONFIG support for your filesystem type (ext4, squashfs, etc.). |
29
+
30
+On Sunxi devices (Allwinner), bootloader is usually **u-boot** or **barebox**.
31
+
32
+- Look at the boot command in `boot.cmd` or `boot.scr`.
33
+- Check the `root=` parameter:
34
+
35
+Here:
36
+- `/dev/mmcblk0p2` means second partition of SD/eMMC.
37
+- `rootwait` → wait for device to be ready.
38
+
39
+**Possible issues:**
40
+- Wrong partition number.
41
+- Missing `rootwait` (device might not be ready when kernel tries to mount).
42
+
SDK-dat/sunxi-dat/sunxi-log-dat/sunxi-log-dat.md
... ...
@@ -0,0 +1,396 @@
1
+
2
+# sunxi-log-dat
3
+
4
+```
5
+[32]HELLO! BOOT0 is starting!
6
+[35]BOOT0 commit : adaf1174cc
7
+[38]set pll start
8
+[40]periph0 has been enabled
9
+[42]set pll end
10
+[44][pmu]: bus read error
11
+[46]board init ok
12
+[48]ZQ value = 0x2d
13
+[50]get_pmu_exist() = -1
14
+[52]ddr_efuse_type: 0xa
15
+[55]trefi:7.8ms
16
+[57][AUTO DEBUG] single rank and full DQ!
17
+[61]ddr_efuse_type: 0xa
18
+[63]trefi:7.8ms
19
+[65][AUTO DEBUG] rank 0 row = 13
20
+[68][AUTO DEBUG] rank 0 bank = 4
21
+[71][AUTO DEBUG] rank 0 page size = 2 KB
22
+[75]DRAM BOOT DRIVE INFO: V0.33
23
+[78]DRAM CLK = 528 MHz
24
+[80]DRAM Type = 2 (2:DDR2,3:DDR3)
25
+[83]DRAMC read ODT off.
26
+[85]DRAM ODT off.
27
+[87]ddr_efuse_type: 0xa
28
+[90]DRAM SIZE =64 M
29
+[91]dram_tpr4:0x0
30
+[93]PLL_DDR_CTRL_REG:0xf8002b00
31
+[96]DRAM_CLK_REG:0xc0000000
32
+[99][TIMING DEBUG] MR2= 0x0
33
+[103]DRAM simple test OK.
34
+[105]dram size =64
35
+[107]card no is 0
36
+[109]sdcard 0 line count 4
37
+[111][mmc]: mmc driver ver 2021-04-2 16:45
38
+[121][mmc]: Wrong media type 0x0
39
+[124][mmc]: ***Try SD card 0***
40
+[133][mmc]: HSSDR52/SDR25 4 bit
41
+[136][mmc]: 50000000 Hz
42
+[138][mmc]: 15343 MB
43
+[140][mmc]: ***SD/MMC 0 init OK!!!***
44
+[191]Loading boot-pkg Succeed(index=0).
45
+[194]Entry_name = opensbi
46
+[198]Entry_name = u-boot
47
+[201]Entry_name = dtb
48
+[204]mmc not para
49
+[206]Jump to second Boot.
50
+
51
+OpenSBI auto-t113-linux-V0.8-1-g771d82e
52
+ ____ _____ ____ _____
53
+ / __ \ / ____| _ \_ _|
54
+ | | | |_ __ ___ _ __ | (___ | |_) || |
55
+ | | | | '_ \ / _ \ '_ \ \___ \| _ < | |
56
+ | |__| | |_) | __/ | | |____) | |_) || |_
57
+ \____/| .__/ \___|_| |_|_____/|____/_____|
58
+ | |
59
+ |_|
60
+
61
+Platform Name : T-HEAD Xuantie Platform
62
+Platform HART Features : RV64ACDFIMSUVX
63
+Platform Max HARTs : 1
64
+Current Hart : 0
65
+Firmware Base : 0x41fc0400
66
+Firmware Size : 75 KB
67
+Runtime SBI Version : 0.2
68
+
69
+MIDELEG : 0x0000000000000222
70
+MEDELEG : 0x000000000000b1ff
71
+PMP0 : 0x0000000041fc0000-0x0000000041fdffff (A)
72
+PMP1 : 0x0000000040000000-0x000000007fffffff (A,R,W,X)
73
+PMP2 : 0x0000000080000000-0x00000000bfffffff (A,R,W,X)
74
+PMP3 : 0x0000000000020000-0x0000000000027fff (A,ÿ
75
+
76
+U-Boot 2018.05-g2a1965a (Jul 10 2022 - 02:50:57 +0000) Allwinner Technology
77
+
78
+[00.291]DRAM: 64 MiB
79
+[00.293]Relocation Offset is: 01ed9000
80
+[00.297]secure enable bit: 0
81
+[00.300]CPU=1008 MHz,PLL6=600 Mhz,AHB=200 Mhz, APB1=100Mhz MBus=300Mhz
82
+[00.306]flash init start
83
+[00.308]workmode = 0,storage type = 1
84
+[00.312][mmc]: mmc driver ver uboot2018:2021-12-20 13:35:00
85
+[00.317][mmc]: get sdc_type fail and use default host:tm1.
86
+[00.324][mmc]: can't find node "mmc0",will add new node
87
+[00.328][mmc]: fdt err returned <no error>
88
+[00.332][mmc]: Using default timing para
89
+[00.336][mmc]: SUNXI SDMMC Controller Version:0x50310
90
+[00.354][mmc]: card_caps:0x3000000a
91
+[00.357][mmc]: host_caps:0x3000003f
92
+[00.360]sunxi flash init ok
93
+[00.363]line:703 init_clocks
94
+[00.366]drv_disp_init
95
+request pwm success, pwm7:pwm7:0x2000c00.
96
+fdt get node offset faill: hdmi
97
+[00.384]unable to map hdmi registers
98
+[00.387]drv_disp_init finish
99
+[00.404]Loading Environment from SUNXI_FLASH... OK
100
+[00.425]boot_gui_init:start
101
+[00.428]set disp.dev2_output_type fail. using defval=0
102
+[00.435]boot_gui_init:finish
103
+partno erro : can't find partition bootloader
104
+54 bytes read in 1 ms (52.7 KiB/s)
105
+[00.449]bmp_name=bootlogo.bmp size 28854
106
+28854 bytes read in 19 ms (1.4 MiB/s)
107
+[00.478]out of usb burn from boot: not need burn key
108
+[00.483]Item0 (Map) magic is bad
109
+[00.486]the secure storage item0 copy0 magic is bad
110
+[00.491]Item0 (Map) magic is bad
111
+[00.494]the secure storage item0 copy1 magic is bad
112
+[00.499]Item0 (Map) magic is bad
113
+List file under ULI/factory
114
+** Unrecognized filesystem type **
115
+root_partition is rootfs
116
+set root to /dev/mmcblk0p5
117
+[00.514]update part info
118
+[00.518]update bootcmd
119
+[00.522]change working_fdt 0x42a98da0 to 0x42a78da0
120
+disable nand error: FDT_ERR_BADPATH
121
+[00.531]The storage not support sample function
122
+No reserved memory region found in source FDT
123
+[00.556]update dts
124
+noncached_alloc(): addr = 0x42b02a40
125
+noncached_alloc(): addr = 0x42b02a80
126
+noncached_alloc(): addr = 0x42b02ac0
127
+noncached_alloc(): addr = 0x42b03300
128
+geth_sys_init:639: get node 'gmac0' error
129
+geth_sys_init fail!
130
+[00.577]Board Net Initialization Failed
131
+[00.580]No ethernet found.
132
+Hit any key to stop autoboot: 1 FDT ERROR:get muxsel err returned FDT_ERR_INTERNAL
133
+sunxi_pwm_pin_set_state, fdt_set_all_pin, ret=-1
134
+[00.625]LCD open finish
135
+ 0
136
+[01.882]no vendor_boot partition is found
137
+Android's image name: f133-mq_r
138
+Detect comp none
139
+[01.898]
140
+Starting kernel ...
141
+
142
+[01.901][mmc]: MMC Device 2 not found
143
+[01.905][mmc]: mmc 2 not find, so not exit
144
+[ 0.000000] Linux version 5.4.61 (test@test-virtual-machine) (riscv64-unknown-linux-gnu-gcc (C-SKY RISCV Tools V1.8.4 B20200702) 8.1.0, GNU ld (GNU Binutils) 2.32) #2 PREEMPT Tue May 2 06:32:35 UTC 2023
145
+[ 0.000000] Zone ranges:
146
+[ 0.000000] DMA32 [mem 0x0000000040000000-0x0000000043ffffff]
147
+[ 0.000000] Normal empty
148
+[ 0.000000] Movable zone start for each node
149
+[ 0.000000] Early memory node ranges
150
+[ 0.000000] node 0: [mem 0x0000000040000000-0x0000000043ffffff]
151
+[ 0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x0000000043ffffff]
152
+[ 0.000000] On node 0 totalpages: 16384
153
+[ 0.000000] DMA32 zone: 224 pages used for memmap
154
+[ 0.000000] DMA32 zone: 0 pages reserved
155
+[ 0.000000] DMA32 zone: 16384 pages, LIFO batch:3
156
+[ 0.000000] elf_hwcap is 0x20112d
157
+[ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
158
+[ 0.000000] pcpu-alloc: [0] 0
159
+[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 16160
160
+[ 0.000000] Kernel command line: earlyprintk=sunxi-uart,0x02500000 clk_ignore_unused initcall_debug=0 console=ttyS0,115200 loglevel=8 root=/dev/mmcblk0p5 init=/pseudo_init partitions=boot-resource@mmcblk0p1:env@mmcblk0p2:env-redund@mmcblk0p3:boot@mmcblk0p4:rootfs@mmcblk0p5:private@mmcblk0p6:rootfs_data@mmcblk0p7:UDISK@mmcblk0p8 cma=0M snum= mac_addr= wifi_mac= bt_mac= specialstr= gpt=1 androidboot.mode=normal androidboot.hardware=sun20iw1p1 boot_type=1 androidboot.boot_type=1 gpt=1 uboot_message=2018.05-g2a1965a(07/10/2022-02:50:57) mbr_o
161
+[ 0.000000] Dentry cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
162
+[ 0.000000] Inode-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
163
+[ 0.000000] Sorting __ex_table...
164
+[ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
165
+[ 0.000000] Memory: 55896K/65536K available (4123K kernel code, 405K rwdata, 1699K rodata, 136K init, 229K bss, 9640K reserved, 0K cma-reserved)
166
+[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
167
+[ 0.000000] rcu: Preemptible hierarchical RCU implementation.
168
+[ 0.000000] Tasks RCU enabled.
169
+[ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
170
+[ 0.000000] NR_IRQS: 0, nr_irqs: 0, preallocated irqs: 0
171
+[ 0.000000] plic: mapped 200 interrupts with 1 handlers for 2 contexts.
172
+[ 0.000000] riscv_timer_init_dt: Registering clocksource cpuid [0] hartid [0]
173
+[ 0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
174
+[ 0.000006] sched_clock: 64 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
175
+[ 0.000027] riscv_timer_clockevent depends on broadcast, but no broadcast function available
176
+[ 0.000361] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
177
+[ 0.000947] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
178
+[ 0.000968] pid_max: default: 32768 minimum: 301
179
+[ 0.001127] Mount-cache hash table entries: 512 (order: 0, 4096 bytes, linear)
180
+[ 0.001147] Mountpoint-cache hash table entries: 512 (order: 0, 4096 bytes, linear)
181
+[ 0.002817] ASID allocator initialised with 65536 entries
182
+[ 0.002985] rcu: Hierarchical SRCU implementation.
183
+[ 0.003645] devtmpfs: initialized
184
+[ 0.019187] random: get_random_u32 called from bucket_table_alloc.isra.27+0x102/0x124 with crng_init=0
185
+[ 0.020051] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
186
+[ 0.020136] futex hash table entries: 256 (order: 0, 6144 bytes, linear)
187
+[ 0.020282] pinctrl core: initialized pinctrl subsystem
188
+[ 0.021646] NET: Registered protocol family 16
189
+[ 0.022409] DMA: preallocated 256 KiB pool for atomic allocations
190
+[ 0.023075] cpuidle: using governor menu
191
+[ 0.065986] rtc_ccu: sunxi ccu init OK
192
+[ 0.074358] clock: sunxi ccu init OK
193
+[ 0.076207] clock: sunxi ccu init OK
194
+[ 0.106479] iommu: Default domain type: Translated
195
+[ 0.106671] sunxi iommu: irq = 4
196
+[ 0.107895] SCSI subsystem initialized
197
+[ 0.108147] usbcore: registered new interface driver usbfs
198
+[ 0.108240] usbcore: registered new interface driver hub
199
+[ 0.108356] usbcore: registered new device driver usb
200
+[ 0.109357] Advanced Linux Sound Architecture Driver Initialized.
201
+[ 0.110341] pwm module init!
202
+[ 0.112130] g2d 5410000.g2d: Adding to iommu group 0
203
+[ 0.112659] G2D: rcq version initialized.major:252
204
+[ 0.113669] clocksource: Switched to clocksource riscv_clocksource
205
+[ 0.127223] sun8iw20-pinctrl 2000000.pinctrl: initialized sunXi PIO driver
206
+[ 0.130584] NET: Registered protocol family 2
207
+[ 0.131469] tcp_listen_portaddr_hash hash table entries: 256 (order: 0, 4096 bytes, linear)
208
+[ 0.131512] TCP established hash table entries: 512 (order: 0, 4096 bytes, linear)
209
+[ 0.131534] TCP bind hash table entries: 512 (order: 0, 4096 bytes, linear)
210
+[ 0.131548] TCP: Hash tables configured (established 512 bind 512)
211
+[ 0.131696] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
212
+[ 0.131742] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
213
+[ 0.131974] NET: Registered protocol family 1
214
+[ 0.133142] sun8iw20-pinctrl 2000000.pinctrl: 2000000.pinctrl supply vcc-pc not found, using dummy regulator
215
+[ 0.133848] spi spi0: spi0 supply spi not found, using dummy regulator
216
+[ 0.134130] sunxi_spi_resource_get()2116 - [spi0] SPI MASTER MODE
217
+[ 0.134192] sunxi_spi_resource_get()2154 - Failed to get sample mode
218
+[ 0.134203] sunxi_spi_resource_get()2159 - Failed to get sample delay
219
+[ 0.134214] sunxi_spi_resource_get()2163 - sample_mode:-1431633921 sample_delay:-1431633921
220
+[ 0.134279] sunxi_spi_clk_init()2205 - [spi0] mclk 100000000
221
+[ 0.135104] sunxi_spi_probe()2623 - [spi0]: driver probe succeed, base ffffffd004058000, irq 31
222
+[ 0.137212] workingset: timestamp_bits=62 max_order=14 bucket_order=0
223
+[ 0.145805] squashfs: version 4.0 (2009/01/31) Phillip Lougher
224
+[ 0.146050] ntfs: driver 2.1.32 [Flags: R/W].
225
+[ 0.146381] fuse: init (API version 7.31)
226
+[ 0.167788] io scheduler mq-deadline registered
227
+[ 0.167805] io scheduler kyber registered
228
+[ 0.168708] [DISP]disp_module_init
229
+[ 0.169333] disp 5000000.disp: Adding to iommu group 0
230
+[ 0.169884] [DISP] parser_disp_init_para,line:1430:
231
+[ 0.169889] of_property_read fb0_width fail
232
+[ 0.169911] [DISP] disp_init,line:2386:
233
+[ 0.169915] smooth display screen:0 type:1 mode:4
234
+[ 0.210704] display_fb_request,fb_id:0
235
+[ 0.219072] Freeing logo buffer memory: 1500K
236
+[ 0.219594] disp_al_manager_apply ouput_type:1
237
+[ 0.220023] sun8iw20-pinctrl 2000000.pinctrl: 2000000.pinctrl supply vcc-pd not found, using dummy regulator
238
+[ 0.220808] [DISP]disp_module_init finish
239
+[ 0.221700] sunxi_sid_init()551 - insmod ok
240
+[ 0.222296] pwm-regulator: supplied by regulator-dummy
241
+[ 0.224054] sun8iw20-pinctrl 2000000.pinctrl: 2000000.pinctrl supply vcc-pe not found, using dummy regulator
242
+[ 0.224538] uart uart0: uart0 supply uart not found, using dummy regulator
243
+[ 0.224930] uart0: ttyS0 at MMIO 0x2500000 (irq = 18, base_baud = 1500000) is a SUNXI
244
+[ 0.224958] sw_console_setup()1808 - console setup baud 115200 parity n bits 8, flow n
245
+[ 0.943314] printk: console [ttyS0] enabled
246
+[ 0.949217] misc dump reg init
247
+[ 0.953736] sun8iw20-pinctrl 2000000.pinctrl: 2000000.pinctrl supply vcc-pg not found, using dummy regulator
248
+[ 0.965027] sunxi-rfkill soc@3000000:rfkill@0: module version: v1.0.9
249
+[ 0.972243] sunxi-rfkill soc@3000000:rfkill@0: get gpio chip_en failed
250
+[ 0.979639] sunxi-rfkill soc@3000000:rfkill@0: get gpio power_en failed
251
+[ 0.987062] sunxi-rfkill soc@3000000:rfkill@0: wlan_busnum (1)
252
+[ 0.993594] sunxi-rfkill soc@3000000:rfkill@0: Missing wlan_power.
253
+[ 1.000552] sunxi-rfkill soc@3000000:rfkill@0: wlan clock[0] (32k-fanout1)
254
+[ 1.008358] sunxi-rfkill soc@3000000:rfkill@0: wlan_regon gpio=204 assert=1
255
+[ 1.016247] sunxi-rfkill soc@3000000:rfkill@0: wlan_hostwake gpio=202 assert=1
256
+[ 1.024389] sunxi-rfkill soc@3000000:rfkill@0: wakeup source is enabled
257
+[ 1.032096] sunxi-rfkill soc@3000000:rfkill@0: Missing bt_power.
258
+[ 1.038871] sunxi-rfkill soc@3000000:rfkill@0: bt clock[0] (32k-fanout1)
259
+[ 1.046472] sunxi-rfkill soc@3000000:rfkill@0: bt_rst gpio=210 assert=0
260
+[ 1.054697] [ADDR_MGT] addr_mgt_probe: module version: v1.0.11
261
+[ 1.062397] [ADDR_MGT] addr_mgt_probe: success.
262
+[ 1.068483] sunxi-spinand: AW SPINand MTD Layer Version: 2.3 20211223
263
+[ 1.075810] sunxi-spinand-phy: AW SPINand Phy Layer Version: 1.10 20200306
264
+[ 1.086619] random: fast init done
265
+[ 1.284341] random: crng init done
266
+[ 2.073747] sunxi-spinand-phy: read id failed : -110
267
+[ 2.079316] spi-nand: probe of spi0.0 failed with error -110
268
+[ 2.085807] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
269
+[ 2.093089] sunxi-ehci: EHCI SUNXI driver
270
+[ 2.098062] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
271
+[ 2.105090] sunxi-ohci: OHCI SUNXI driver
272
+[ 2.112178] sunxi-rtc 7090000.rtc: registered as rtc0
273
+[ 2.118048] sunxi-rtc 7090000.rtc: setting system clock to 1970-01-01T00:00:21 UTC (21)
274
+[ 2.127044] sunxi-rtc 7090000.rtc: sunxi rtc probed
275
+[ 2.133047] i2c /dev entries driver
276
+[ 2.137049] sunxi cedar version 1.1
277
+[ 2.141227] sunxi-cedar 1c0e000.ve: Adding to iommu group 0
278
+[ 2.147532] VE: install start!!!
279
+[ 2.147532]
280
+[ 2.153114] VE: cedar-ve the get irq is 6
281
+[ 2.153114]
282
+[ 2.159496] VE: ve_debug_proc_info:00000000f36217e6, data:00000000dc0b564d, lock:00000000c9928603
283
+[ 2.159496]
284
+[ 2.171135] VE: install end!!!
285
+[ 2.171135]
286
+[ 2.176213] VE: sunxi_cedar_probe
287
+[ 2.180880] sunxi-wdt 6011000.watchdog: Watchdog enabled (timeout=16 sec, nowayout=0)
288
+[ 2.192331] sunxi-mmc 4020000.sdmmc: SD/MMC/SDIO Host Controller Driver(v4.22 2021-12-20 15:40)
289
+[ 2.202403] sunxi-mmc 4020000.sdmmc: ***ctl-spec-caps*** 8
290
+[ 2.208636] sunxi-mmc 4020000.sdmmc: No vmmc regulator found
291
+[ 2.214972] sunxi-mmc 4020000.sdmmc: No vqmmc regulator found
292
+[ 2.221410] sunxi-mmc 4020000.sdmmc: No vdmmc regulator found
293
+[ 2.227844] sunxi-mmc 4020000.sdmmc: No vd33sw regulator found
294
+[ 2.234413] sunxi-mmc 4020000.sdmmc: No vd18sw regulator found
295
+[ 2.240918] sunxi-mmc 4020000.sdmmc: No vq33sw regulator found
296
+[ 2.247452] sunxi-mmc 4020000.sdmmc: No vq18sw regulator found
297
+[ 2.254497] sunxi-mmc 4020000.sdmmc: Got CD GPIO
298
+[ 2.259842] sunxi-mmc 4020000.sdmmc: set cd-gpios as 24M fail
299
+[ 2.266531] sunxi-mmc 4020000.sdmmc: sdc set ios:clk 0Hz bm PP pm UP vdd 21 width 1 timing LEGACY(SDR12) dt B
300
+[ 2.277729] sunxi-mmc 4020000.sdmmc: no vqmmc,Check if there is regulator
301
+[ 2.297920] sunxi-mmc 4020000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
302
+[ 2.322389] sunxi-mmc 4020000.sdmmc: detmode:gpio irq
303
+[ 2.322460] sunxi-mmc 4020000.sdmmc: sdc set ios:clk 0Hz bm PP pm OFF vdd 0 width 1 timing LEGACY(SDR12) dt B
304
+[ 2.339973] sunxi-mmc 4021000.sdmmc: SD/MMC/SDIO Host Controller Driver(v4.22 2021-12-20 15:40)
305
+[ 2.350011] sunxi-mmc 4021000.sdmmc: ***ctl-spec-caps*** 8
306
+[ 2.356403] sunxi-mmc 4021000.sdmmc: No vmmc regulator found
307
+[ 2.362761] sunxi-mmc 4021000.sdmmc: No vqmmc regulator found
308
+[ 2.369255] sunxi-mmc 4021000.sdmmc: No vdmmc regulator found
309
+[ 2.375687] sunxi-mmc 4021000.sdmmc: No vd33sw regulator found
310
+[ 2.382189] sunxi-mmc 4021000.sdmmc: No vd18sw regulator found
311
+[ 2.388749] sunxi-mmc 4021000.sdmmc: No vq33sw regulator found
312
+[ 2.395280] sunxi-mmc 4021000.sdmmc: No vq18sw regulator found
313
+[ 2.401863] sunxi-mmc 4021000.sdmmc: Cann't get pin bias hs pinstate,check if needed
314
+[ 2.411334] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 0Hz bm PP pm UP vdd 21 width 1 timing LEGACY(SDR12) dt B
315
+[ 2.422536] sunxi-mmc 4021000.sdmmc: no vqmmc,Check if there is regulator
316
+[ 2.442694] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
317
+[ 2.466946] sunxi-mmc 4021000.sdmmc: detmode:manually by software
318
+[ 2.474658] sunxi-mmc 4021000.sdmmc: smc 1 p1 err, cmd 52, RTO !!
319
+[ 2.481767] ashmem: initialized
320
+[ 2.485295] sunxi-mmc 4021000.sdmmc: smc 1 p1 err, cmd 52, RTO !!
321
+[ 2.492229] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
322
+[ 2.503844] exFAT: Version 1.3.0
323
+[ 2.511958] [AUDIOCODEC][sunxi_codec_parse_params][2412]:digital_vol:0, lineout_vol:26, mic1gain:31, mic2gain:31 pa_msleep:120, pa_level:1, pa_pwr_level:1
324
+[ 2.511958]
325
+[ 2.529288] [AUDIOCODEC][sunxi_codec_parse_params][2448]:adcdrc_cfg:0, adchpf_cfg:1, dacdrc_cfg:0, dachpf:0
326
+[ 2.540874] [AUDIOCODEC][sunxi_internal_codec_probe][2609]:codec probe finished
327
+[ 2.549134] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 400000Hz bm PP pm ON vdd 21 width 1 timing LEGACY(SDR12) dt B
328
+[ 2.562143] debugfs: Directory '203034c.dummy_cpudai' with parent 'audiocodec' already present!
329
+[ 2.572145] [SNDCODEC][sunxi_card_init][583]:card init finished
330
+[ 2.579640] sunxi-mmc 4021000.sdmmc: smc 1 p1 err, cmd 5, RTO !!
331
+[ 2.587275] sunxi-mmc 4021000.sdmmc: smc 1 p1 err, cmd 5, RTO !!
332
+[ 2.594861] sunxi-mmc 4021000.sdmmc: smc 1 p1 err, cmd 5, RTO !!
333
+[ 2.601807] sunxi-codec-machine 2030340.sound: 2030000.codec <-> 203034c.dummy_cpudai mapping ok
334
+[ 2.611615] sunxi-mmc 4021000.sdmmc: smc 1 p1 err, cmd 5, RTO !!
335
+[ 2.618428] sunxi-mmc 4021000.sdmmc: sdc set ios:clk 0Hz bm PP pm OFF vdd 0 width 1 timing LEGACY(SDR12) dt B
336
+[ 2.631090] input: audiocodec sunxi Audio Jack as /devices/platform/soc@3000000/2030340.sound/sound/card0/input0
337
+[ 2.643523] [SNDCODEC][sunxi_card_dev_probe][836]:register card finished
338
+[ 2.653163] NET: Registered protocol family 10
339
+[ 2.658258] [SNDCODEC][sunxi_hs_init_work][259]:resume-->report switch
340
+[ 2.667015] Segment Routing with IPv6
341
+[ 2.671338] NET: Registered protocol family 17
342
+[ 2.697764] sunxi-i2c sunxi-i2c2: sunxi-i2c2 supply twi not found, using dummy regulator
343
+[ 2.712526] sunxi-i2c sunxi-i2c2: probe success
344
+[ 2.720000] sun8iw20-pinctrl 2000000.pinctrl: 2000000.pinctrl supply vcc-pb not found, using dummy regulator
345
+[ 2.734084] get ehci0-controller wakeup-source is fail.
346
+[ 2.740050] sunxi ehci0-controller don't init wakeup source
347
+[ 2.746322] [sunxi-ehci0]: probe, pdev->name: 4101000.ehci0-controller, sunxi_ehci: 0xffffffe000661b28, 0x:ffffffd0040f1000, irq_no:2e
348
+[ 2.759871] [sunxi-ehci0]: Not init ehci0
349
+[ 2.764901] get ohci0-controller wakeup-source is fail.
350
+[ 2.770904] sunxi ohci0-controller don't init wakeup source
351
+[ 2.777174] [sunxi-ohci0]: probe, pdev->name: 4101400.ohci0-controller, sunxi_ohci: 0xffffffe000661ef0
352
+[ 2.787649] [sunxi-ohci0]: Not init ohci0
353
+[ 2.792655] get ehci1-controller wakeup-source is fail.
354
+[ 2.798643] sunxi ehci1-controller don't init wakeup source
355
+[ 2.804975] [sunxi-ehci1]: probe, pdev->name: 4200000.ehci1-controller, sunxi_ehci: 0xffffffe0006622b8, 0x:ffffffd0040fb000, irq_no:31
356
+[ 2.818819] sunxi-ehci 4200000.ehci1-controller: 4200000.ehci1-controller supply hci not found, using dummy regulator
357
+[ 2.832493] sunxi-ehci 4200000.ehci1-controller: EHCI Host Controller
358
+[ 2.839819] sunxi-ehci 4200000.ehci1-controller: new USB bus registered, assigned bus number 1
359
+[ 2.849685] sunxi-ehci 4200000.ehci1-controller: irq 49, io mem 0x04200000
360
+[ 2.883725] sunxi-ehci 4200000.ehci1-controller: USB 2.0 started, EHCI 1.00
361
+[ 2.892631] hub 1-0:1.0: USB hub found
362
+[ 2.896950] hub 1-0:1.0: 1 port detected
363
+[ 2.902503] get ohci1-controller wakeup-source is fail.
364
+[ 2.908576] sunxi ohci1-controller don't init wakeup source
365
+[ 2.914865] [sunxi-ohci1]: probe, pdev->name: 4200400.ohci1-controller, sunxi_ohci: 0xffffffe000662680
366
+[ 2.925618] sunxi-ohci 4200400.ohci1-controller: 4200400.ohci1-controller supply hci not found, using dummy regulator
367
+[ 2.938083] sunxi-ohci 4200400.ohci1-controller: OHCI Host Controller
368
+[ 2.945418] sunxi-ohci 4200400.ohci1-controller: new USB bus registered, assigned bus number 2
369
+[ 2.955262] sunxi-ohci 4200400.ohci1-controller: irq 50, io mem 0x04200400
370
+[ 3.028775] hub 2-0:1.0: USB hub found
371
+[ 3.033013] hub 2-0:1.0: 1 port detected
372
+[ 3.040483] get usb_detect_mode is fail, -22
373
+[ 3.045369] get det_vbus is fail, -84
374
+[ 3.049451] get id is fail, -84
375
+[ 3.055469] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
376
+[ 3.065199] clk: Not disabling unused clocks
377
+[ 3.069966] ALSA device list:
378
+[ 3.073320] #0: audiocodec
379
+[ 3.076619] cfg80211: failed to load regulatory.db
380
+[ 3.082023] alloc_fd: slot 0 not NULL!
381
+[ 3.086691] VFS: Cannot open root device "mmcblk0p5" or unknown-block(0,0): error -6
382
+[ 3.095459] Please append a correct "root=" boot option; here are the available partitions:
383
+[ 3.104843] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
384
+[ 3.114063] CPU: 0 PID: 1 Comm: swapper Not tainted 5.4.61 #2
385
+[ 3.120464] Call Trace:
386
+[ 3.123206] [<ffffffe000023d56>] walk_stackframe+0x0/0x70
387
+[ 3.129230] [<ffffffe000027d2c>] panic+0xdc/0x266
388
+[ 3.134478] [<ffffffe000000d9c>] mount_block_root+0x1fe/0x266
389
+[ 3.140888] [<ffffffe000000fc2>] prepare_namespace+0x136/0x144
390
+[ 3.147392] [<ffffffe0004242a2>] rest_init+0xbc/0xc0
391
+[ 3.152925] [<ffffffe0004242b0>] kernel_init+0xa/0xe8
392
+[ 3.158554] [<ffffffe0004242a2>] rest_init+0xbc/0xc0
393
+[ 3.164087] [<ffffffe000022d5c>] ret_from_syscall+0xa/0xe
394
+[ 3.170114] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0) ]---
395
+
396
+```
SDK-dat/sunxi-dat/sunxi-tools-dat/2025-07-16-12-35-43.png
... ...
Binary files /dev/null and b/SDK-dat/sunxi-dat/sunxi-tools-dat/2025-07-16-12-35-43.png differ
SDK-dat/sunxi-dat/sunxi-tools-dat/sunxi-tools-dat.md
... ...
@@ -0,0 +1,110 @@
1
+
2
+# sunxi-tools-dat
3
+
4
+- [[uboot-dat]]
5
+
6
+![](2025-07-16-12-35-43.png)
7
+
8
+- [[F1C100-SDK-dat]] - [[V3S-dat]]
9
+
10
+[linux-sunxi.org](https://linux-sunxi.org/D1s)
11
+
12
+
13
+
14
+### Using `sunxi-fel` (u-boot / generic FEL):
15
+```bash
16
+sunxi-fel -v spl u-boot-spl.bin
17
+sunxi-fel -v write 0x4A000000 u-boot.bin
18
+sunxi-fel -v exe 0x4A000000
19
+```
20
+
21
+
22
+
23
+
24
+## for F1C100
25
+
26
+- [[F1C100-dat]] - [[ubuntu-dat]]
27
+
28
+ git clone https://github.com/Icenowy/sunxi-tools.git -b f1c100s-spiflash
29
+
30
+ make && sudo make install
31
+
32
+check
33
+
34
+ root@ubuntu14:/home/vb/lpi/sunxi-tools# sunxi-fel
35
+ sunxi-fel v1.4.1-104-g11a9d20
36
+
37
+查看芯片信息
38
+
39
+ sudo sunxi-fel ver
40
+ AWUSBFEX soc=00001663(F1C100s) 00000001 ver=0001 44 08
41
+ scratchpad=00007e00 00000000 00000000
42
+
43
+列出所有芯片的信息
44
+
45
+ sudo sunxi-fel -l
46
+
47
+ root@ubuntu14:/home/vb# sunxi-fel -l
48
+ USB device 002:004 Allwinner F1C100s
49
+
50
+
51
+加载并执行uboot的spl
52
+
53
+ sudo sunxi-fel spl 文件名
54
+
55
+把文件内容写入内存指定地址(-p是显示写入进度) sudo sunxi-fel -p
56
+
57
+ write 地址 文件名
58
+
59
+调用指定地址的函数
60
+
61
+ sudo sunxi-fel exec 地址
62
+
63
+显示spiflash的信息
64
+
65
+ sudo sunxi-fel spiflash-info
66
+
67
+读取spiflash指定地址的数据并写入到文件
68
+
69
+ sudo sunxi-fel spiflash-read 地址 长度 存放数据的文件路径
70
+
71
+写入指定文件的指定长度的内容到spiflash的指定地址
72
+
73
+ sudo sunxi-fel spiflash-write 地址 长度 存放数据的文件路径
74
+
75
+## programming
76
+
77
+
78
+1. 以 uboot file-with-spl形式进行(单次运行,测试时个人推荐)
79
+
80
+ sunxi-fel uboot /your/path/to/u-boot-sunxi-with-spl.bin
81
+
82
+2. 烧进 spi-flash (开机自启)
83
+
84
+ sunxi-fel -p spiflash-write 0 /your/path/to/u-boot-sunxi-with-spl.bin
85
+
86
+note: 重新烧录或重进fel模式时,请在上电时拉低SPI flash 的 CS引脚
87
+
88
+此时在串口控制台(minicom、putty或其他)输入 bdinfo
89
+
90
+将列出各种板子信息,如:
91
+
92
+ arch_number = 0x00000000
93
+ boot_params = 0x80000100
94
+ DRAM bank = 0x00000000
95
+ -> start = 0x80000000
96
+ -> size = 0x02000000
97
+ baudrate = 115200 bps
98
+ TLB addr = 0x80FF0000
99
+ relocaddr = 0x80F14000
100
+ reloc off = 0xFF814000
101
+ irq_sp = 0x80E09D90
102
+ sp start = 0x80E09D80
103
+ FB base = 0x81E89000
104
+ Early malloc usage: 118 / 400
105
+ fdt_blob = 80e09da8
106
+
107
+
108
+## ref
109
+
110
+- [[allwinner-dat]]
... ...
\ No newline at end of file
SDK-dat/sunxi-tools-dat/2025-07-16-12-35-43.png
... ...
Binary files a/SDK-dat/sunxi-tools-dat/2025-07-16-12-35-43.png and /dev/null differ
SDK-dat/sunxi-tools-dat/sunxi-tools-dat.md
... ...
@@ -1,110 +0,0 @@
1
-
2
-# sunxi-tools-dat
3
-
4
-- [[uboot-dat]]
5
-
6
-![](2025-07-16-12-35-43.png)
7
-
8
-- [[F1C100-SDK-dat]] - [[V3S-dat]]
9
-
10
-[linux-sunxi.org](https://linux-sunxi.org/D1s)
11
-
12
-
13
-
14
-### Using `sunxi-fel` (u-boot / generic FEL):
15
-```bash
16
-sunxi-fel -v spl u-boot-spl.bin
17
-sunxi-fel -v write 0x4A000000 u-boot.bin
18
-sunxi-fel -v exe 0x4A000000
19
-```
20
-
21
-
22
-
23
-
24
-## for F1C100
25
-
26
-- [[F1C100-dat]] - [[ubuntu-dat]]
27
-
28
- git clone https://github.com/Icenowy/sunxi-tools.git -b f1c100s-spiflash
29
-
30
- make && sudo make install
31
-
32
-check
33
-
34
- root@ubuntu14:/home/vb/lpi/sunxi-tools# sunxi-fel
35
- sunxi-fel v1.4.1-104-g11a9d20
36
-
37
-查看芯片信息
38
-
39
- sudo sunxi-fel ver
40
- AWUSBFEX soc=00001663(F1C100s) 00000001 ver=0001 44 08
41
- scratchpad=00007e00 00000000 00000000
42
-
43
-列出所有芯片的信息
44
-
45
- sudo sunxi-fel -l
46
-
47
- root@ubuntu14:/home/vb# sunxi-fel -l
48
- USB device 002:004 Allwinner F1C100s
49
-
50
-
51
-加载并执行uboot的spl
52
-
53
- sudo sunxi-fel spl 文件名
54
-
55
-把文件内容写入内存指定地址(-p是显示写入进度) sudo sunxi-fel -p
56
-
57
- write 地址 文件名
58
-
59
-调用指定地址的函数
60
-
61
- sudo sunxi-fel exec 地址
62
-
63
-显示spiflash的信息
64
-
65
- sudo sunxi-fel spiflash-info
66
-
67
-读取spiflash指定地址的数据并写入到文件
68
-
69
- sudo sunxi-fel spiflash-read 地址 长度 存放数据的文件路径
70
-
71
-写入指定文件的指定长度的内容到spiflash的指定地址
72
-
73
- sudo sunxi-fel spiflash-write 地址 长度 存放数据的文件路径
74
-
75
-## programming
76
-
77
-
78
-1. 以 uboot file-with-spl形式进行(单次运行,测试时个人推荐)
79
-
80
- sunxi-fel uboot /your/path/to/u-boot-sunxi-with-spl.bin
81
-
82
-2. 烧进 spi-flash (开机自启)
83
-
84
- sunxi-fel -p spiflash-write 0 /your/path/to/u-boot-sunxi-with-spl.bin
85
-
86
-note: 重新烧录或重进fel模式时,请在上电时拉低SPI flash 的 CS引脚
87
-
88
-此时在串口控制台(minicom、putty或其他)输入 bdinfo
89
-
90
-将列出各种板子信息,如:
91
-
92
- arch_number = 0x00000000
93
- boot_params = 0x80000100
94
- DRAM bank = 0x00000000
95
- -> start = 0x80000000
96
- -> size = 0x02000000
97
- baudrate = 115200 bps
98
- TLB addr = 0x80FF0000
99
- relocaddr = 0x80F14000
100
- reloc off = 0xFF814000
101
- irq_sp = 0x80E09D90
102
- sp start = 0x80E09D80
103
- FB base = 0x81E89000
104
- Early malloc usage: 118 / 400
105
- fdt_blob = 80e09da8
106
-
107
-
108
-## ref
109
-
110
-- [[allwinner-dat]]
... ...
\ No newline at end of file
fab-dat/fab-PCBA-dat/fab-PCBA-dat.md
... ...
@@ -55,6 +55,51 @@
55 55
- or layered plastic case [[layered-case-dat]]
56 56
- more simple soltuion - [[PMP1037-dat]]
57 57
58
+
59
+
60
+## Automated Methods to Check Complex Footprints (Unsoldered Pads)
61
+
62
+- [[AOI-dat]] - [[ICT-dat]]
63
+
64
+- [[E-test-dat]]
65
+
66
+- **E-Test is for the bare PCB (before assembly).**
67
+- It checks copper traces, vias, and pads for:
68
+ - **Short circuits** (unwanted connections between nets).
69
+ - **Open circuits** (broken or missing connections).
70
+- Done by the PCB manufacturer using a **flying probe tester** or a **bed-of-nails fixture**.
71
+- Ensures the **bare board matches the Gerber/netlist** before any components are soldered.
72
+
73
+
74
+
75
+| Method | How It Works | Pros | Cons |
76
+|-------------------------------|-------------|------|------|
77
+| **Automated Optical Inspection (AOI)** | High-resolution cameras scan PCB to compare against "golden board" or Gerber. Detects shorts, opens, mask issues, pad misalignment. | Fast, widely used in PCB fab & assembly. | Limited for hidden pads (BGA bottom side). |
78
+| **Flying Probe Test** | Robotic probes touch each pad/net and check connectivity vs netlist. | No test fixture needed, flexible, high accuracy. | Slower than bed-of-nails, not good for high volume. |
79
+| **In-Circuit Test (ICT / Bed-of-Nails)** | Custom test fixture presses spring pins into test pads, verifying continuity, isolation, resistance, etc. | Very fast, accurate, used for production. | Expensive setup, needs test points designed in. |
80
+| **X-Ray Inspection (AXI)** | X-ray scans to detect hidden bridges, voids, and pad geometry (great for BGA/QFN). | Can see under packages, detects hidden issues. | Expensive equipment, slower than AOI. |
81
+| **Electrical Netlist Test (Bare Board E-Test)** | PCB fab tests each board against Gerber netlist for shorts/opens using a flying probe. | Ensures PCB is correct before assembly. | Only checks copper nets, not mask/pad alignment. |
82
+| **Solder Paste Inspection (SPI)** | 3D laser scan checks solder paste deposits on pads. | Ensures correct stencil printing before reflow. | Only useful after paste printing stage. |
83
+| **Coplanarity / Surface Profiling** | Laser or white-light interferometer scans pads for height/flatness. | Ensures pads are level for fine-pitch ICs. | More common in IC packaging QA. |
84
+
85
+---
86
+
87
+## Typical Workflow in Production
88
+1. **Bare PCB stage** → Electrical netlist test + AOI.
89
+2. **Assembly stage (before soldering ICs)** → AOI for pad/solder mask check, SPI for solder paste.
90
+3. **After soldering** → AOI again + X-ray for BGA/QFN.
91
+4. **Final board** → ICT (bed-of-nails) or flying probe for electrical verification.
92
+
93
+---
94
+
95
+👉 For **prototyping / small batch**, fabs usually run **bare board E-test** + **AOI** already.
96
+👉 For **hidden pad packages (QFN/BGA)**, the only real automated detection is **X-ray**.
97
+
98
+
99
+
100
+
101
+
102
+
58 103
## ref
59 104
60 105
- [[fab-dat]]
fab-dat/fab-PCBA-dat/fab-Stencil-DAT/fab-stencil-dat.md
... ...
@@ -5,6 +5,9 @@
5 5
6 6
- [[high-precise-printing-dat]]
7 7
8
+
9
+- [[fab-stencil]]
10
+
8 11
## common size frameless
9 12
10 13
- 10 x 10 cm