开端

买到的板子A面长这样

在买之前发现板子上有两个UART 和一个JTAG调试口,全志R16是A33的马甲,看数据手册得知sd卡槽与UART0和JTAG复用这样便使得(比较)无损的从sd卡启动主线linux和uboot成为可能,AC108麦克风矩阵+蓝牙+wifi,果断上车。。。。。

开始挖坑

一番探索后发现PWRON测试点旁边的按钮可以进入sunxi-fel模式,但是是通过SPL而不是直接启动的fel,按照linux-sunxi的说法,这种fel是提取不了nand里的数据的(具体参照linux-sunxi fel的说明),我们想要的是全志的设备树轮子(script.bin)反编译出fex文件,来写主线内核的设备树。

系统默认的串口是离VBUS比较近的那两个测试点,接上通过内核日志的到分区表
我这台的分区表是这样的

--------fastboot partitions--------
-total partitions:9-
-name-        -start-       -size-
A env         : 1000000       100000
B kernel1     : 1100000       600000
C rootfs1     : 1700000       2000000
D kernel2     : 3700000       600000
E rootfs2     : 3d00000       2000000
F misc        : 5d00000       100000
G private     : 5e00000       100000
crashlog    : 5f00000       100000
UDISK       : 6000000       0
-----------------------------------

不难看出小爱同学准备了两套内核和rootfs(squashfs只读文件系统)一个用于最终的使用一个用于生产测试,测试采用的是全志的tinalinux,比较担心的一点是小米有没有把事情做绝,密匙写入cpu,启动任何东西要验证。
然而没有(╮(╯▽╰)╭还没翻车呢) sunxi_secure 为正常模式

root@TinaLinux:/sys/class/sunxi_info# cat sys_info
sunxi_platform    : Sun8iw5p1
sunxi_secure      : normal
sunxi_chipid      : 6c1180001ef65857885c12440461872a
sunxi_chiptype    : Not Supported!
sunxi_batchno     : 0

按照上一次玩全志平板的经验,script.bin 是放在nand的某一个分区里的,就一个一个去挂nand分区,结果没找到。。。去github搜到了tina旧版的代码,看了下组装固件的过程,发现它是将uboot和设备树文件通过一个c写的小程序拼装在一起,也就是说,只有得到uboot才能够得到设备树。

在sunxi-fel取不出uboot,linux内核也没有可以提取uboot的有效办法,也只好通过小米的ota服务得到。为了得到小米家的升级机制,一个一个把nand分区cat出来,用adb推到电脑,分析ota和boardupdate两个shell文件可以分析出小米大体推送更新的过程。

matool_check_upgrade通过与一个内核模块得到信息返回一个下载固件的地址,miso负责固件的解包,但是miso在更新完后被删除,这时就要在没有adb和有adb的两个系统之间切换,利用唯一可以写入的分区UDISK完成数据的转移。

把miso用adb push到udisk分区,然后切到正常模式,用miso解包出u-boot.fex,在用adb推到电脑,用bless(linux下的16进制编辑器)找到fex的文件头(在ascii对照表大致从PRODUCT字样开始)把fex从里面抠出来,最终成功反编译!
反编译的设备树文件如下

[product]
version = "100"
machine = "parrot"[platform]
eraseflag = 0
next_work = 2
debug_mode = 1[target]
boot_clock = 1008
storage_type = -1
0
burn_key = 0
burn_key = 0[power_sply]
dcdc1_vol = 3000
dcdc2_vol = 1100
dcdc3_vol = 1200
dcdc4_vol = 0
dcdc5_vol = 1500
aldo2_vol = 2500
aldo3_vol = 3000[key_detect_en]
keyen_flag = 1[fel_key]
fel_key_max = 7
fel_key_min = 2[card_boot]
logical_start = 40960
sprite_gpio0 =
next_work = 3[card0_boot_para]
card_ctrl = 0
card_high_speed = 1
card_line = 4
sdc_d1 = port:PF00<2><1><2><default>
sdc_d0 = port:PF01<2><1><2><default>
sdc_clk = port:PF02<2><1><2><default>
sdc_cmd = port:PF03<2><1><2><default>
sdc_d3 = port:PF04<2><1><2><default>
sdc_d2 = port:PF05<2><1><2><default>[card2_boot_para]
card_ctrl = 2
card_high_speed = 1
card_line = 8
sdc_2xmode = 1
sdc_ddrmode = 1
sdc_clk = port:PC05<3><1><2><default>
sdc_cmd = port:PC06<3><1><2><default>
sdc_d0 = port:PC08<3><1><2><default>
sdc_d1 = port:PC09<3><1><2><default>
sdc_d2 = port:PC10<3><1><2><default>
sdc_d3 = port:PC11<3><1><2><default>
sdc_d4 = port:PC12<3><1><2><default>
sdc_d5 = port:PC13<3><1><2><default>
sdc_d6 = port:PC14<3><1><2><default>
sdc_d7 = port:PC15<3><1><2><default>[twi_para]
twi_port = 0
twi_scl = port:PH02<2><default><default><default>
twi_sda = port:PH03<2><default><default><default>[uart_para]
uart_debug_port = 0
uart_debug_tx = port:PF02<3><1><1><default>
uart_debug_rx = port:PF04<3><1><1><default>[force_uart_para]
force_uart_port = 0
force_uart_tx = port:PF02<3><1><default><default>
force_uart_rx = port:PF04<3><1><default><default>[jtag_para]
jtag_enable = 1
jtag_ms = port:PF00<3><1><1><default>
jtag_ck = port:PF05<3><1><1><default>
jtag_do = port:PF03<3><1><1><default>
jtag_di = port:PF01<3><1><1><default>[clock]
pll3 = 297
pll4 = 300
pll6 = 600
pll8 = 408
pll9 = 480
pll10 = 297
pll_cpupat = 0
pll_gpupat = -1002379674
pll_videopat = 0
pll_vepat = 0
pll_hsicpat = 0
pll_depat = 0
pll_mipipat = 0
pll_mipitun = -1979703288
pll_mipibias = -133168128[pm_para]
standby_mode = 1[dram_para]
dram_clk = 552
dram_type = 3
dram_zq = 0x3bfb
dram_odt_en = 1
dram_para1 = 284295680
dram_para2 = 0
dram_mr0 = 6208
dram_mr1 = 64
dram_mr2 = 8
dram_mr3 = 0
dram_tpr0 = 0x48a192
dram_tpr1 = 0x1b1b18d
dram_tpr2 = 0x76052
dram_tpr3 = 0x0
dram_tpr4 = 0x0
dram_tpr5 = 0x0
dram_tpr6 = 0x0
dram_tpr7 = 0x0
dram_tpr8 = 0x0
dram_tpr9 = 0x0
dram_tpr10 = 0x0
dram_tpr11 = 0x0
dram_tpr12 = 0xa8
dram_tpr13 = 0x800[pm_para]
standby_mode = 1[wakeup_src_para]
cpu_en = 0
cpu_freq = 48
pll_ratio = 273
dram_selfresh_en = 1
dram_freq = 36
wakeup_src_wl = port:PL07<4><default><default><0>
wakeup_src_bt = port:PL09<4><default><default><0>
bb_wake_ap = port:PL02<4><default><default><0>[twi0]
twi_used = 1
twi_scl = port:PH02<2><default><default><default>
twi_sda = port:PH03<2><default><default><default>[twi1]
twi_used = 1
twi_scl = port:PH04<2><default><default><default>
twi_sda = port:PH05<2><default><default><default>[twi2]
twi_used = 1
twi_scl = port:PE12<3><default><default><default>
twi_sda = port:PE13<3><default><default><default>[uart0]
uart_used = 1
uart_type = 2
uart_tx = port:PF02<3><1><1><default>
uart_rx = port:PF04<3><1><1><default>[uart1]
uart_used = 1
uart_type = 2
uart_tx = port:PG06<2><1><default><default>
uart_rx = port:PG07<2><1><default><default>
uart_rts = port:PG08<2><1><default><default>
uart_cts = port:PG09<2><1><default><default>[uart2]
uart_used = 0
uart_type = 4
uart_tx = port:PB00<2><1><default><default>
uart_rx = port:PB01<2><1><default><default>
uart_rts = port:PB02<2><1><default><default>
uart_cts = port:PB03<2><1><default><default>[uart3]
uart_used = 0
uart_type = 4
uart_tx = port:PH06<3><1><default><default>
uart_rx = port:PH07<3><1><default><default>
uart_rts = port:PH08<3><1><default><default>
uart_cts = port:PH09<3><1><default><default>[uart4]
uart_used = 0
uart_type = 2
uart_tx = port:PA04<2><1><default><default>
uart_rx = port:PA05<2><1><default><default>
uart_rts = port:PA06<2><1><default><default>
uart_cts = port:PA07<2><1><default><default>[spi0]
spi_used = 1
spi_cs_bitmap = 1
spi_mosi = port:PH08<2><default><default><default>
spi_miso = port:PH09<2><default><default><default>
spi_sclk = port:PH07<2><default><default><default>
spi_cs0 = port:PH06<2><1><default><default>
spi_regulator = "none"[spi1]
spi_used = 0
spi_cs_bitmap = 1
spi_cs0 = port:PA00<2><1><default><default>
spi_sclk = port:PA01<2><default><default><default>
spi_mosi = port:PA02<2><default><default><default>
spi_miso = port:PA03<2><default><default><default>[spi_devices]
spi_dev_num = 1[spi_board0]
modalias = "ws2812"
max_speed_hz = 25000000
bus_num = 0
chip_select = 0
mode = 0[ctp_para]
ctp_used = 1
ctp_name = "gt82x"
ctp_twi_id = 0
ctp_twi_addr = 0x5d
ctp_screen_max_x = 1280
ctp_screen_max_y = 800
ctp_revert_x_flag = 1
ctp_revert_y_flag = 1
ctp_exchange_x_y_flag = 1
ctp_int_port = port:PL04<4><default><default><default>
ctp_wakeup = port:PL03<1><default><default><1>
ctp_power_ldo =
ctp_power_ldo_vol =
ctp_power_io =[ctp_list_para]
ctp_det_used = 1
ft5x_ts = 1
gt82x = 1
gslX680 = 1
gslX680new = 0
gt9xx_ts = 1
gt9xxf_ts = 0
tu_ts = 0
gt818_ts = 1
zet622x = 1
aw5306_ts = 1
icn83xx_ts = 0[tkey_para]
tkey_used = 0
tkey_twi_id =
tkey_twi_addr =
tkey_int =[motor_para]
motor_used = 1
motor_shake = port:power3<1><default><default><1>
motor_ldo = ""
motor_ldo_voltage = 3300[ths_para]
ths_used = 1
ths_trip1_count = 3
ths_trip1_0 = 75
ths_trip1_1 = 90
ths_trip1_2 = 110
ths_trip1_3 = 110
ths_trip1_4 = 110
ths_trip1_5 = 110
ths_trip1_6 = 110
ths_trip1_7 = 110
ths_trip1_0_min = 0
ths_trip1_0_max = 1
ths_trip1_1_min = 1
ths_trip1_1_max = 3
ths_trip1_2_min = 0
ths_trip1_2_max = 0
ths_trip1_3_min = 0
ths_trip1_3_max = 0
ths_trip1_4_min = 0
ths_trip1_4_max = 0
ths_trip1_5_min = 0
ths_trip1_5_max = 0
ths_trip1_6_min = 0
ths_trip1_6_max = 0
ths_trip2_count = 0
ths_trip2_0 = 0[cooler_table]
cooler_count = 4
cooler0 = "1344000 4 4294967295 0"
cooler1 = "1200000 4 4294967295 0"
cooler2 = "1008000 4 4294967295 0"
cooler3 = "648000 4 4294967295 0"[nand0_para]
nand_support_2ch = 0
nand0_used = 1
nand0_we = port:PC00<2><default><default><default>
nand0_ale = port:PC01<2><default><default><default>
nand0_cle = port:PC02<2><default><default><default>
nand0_ce1 = port:PC03<2><default><default><default>
nand0_ce0 = port:PC04<2><default><default><default>
nand0_nre = port:PC05<2><default><default><default>
nand0_rb0 = port:PC06<2><default><default><default>
nand0_rb1 = port:PC07<2><default><default><default>
nand0_d0 = port:PC08<2><default><default><default>
nand0_d1 = port:PC09<2><default><default><default>
nand0_d2 = port:PC10<2><default><default><default>
nand0_d3 = port:PC11<2><default><default><default>
nand0_d4 = port:PC12<2><default><default><default>
nand0_d5 = port:PC13<2><default><default><default>
nand0_d6 = port:PC14<2><default><default><default>
nand0_d7 = port:PC15<2><default><default><default>
nand0_ndqs = port:PC16<2><default><default><default>
nand0_ce2 = port:PC17<2><default><default><default>
nand0_ce3 = port:PC18<2><default><default><default>[disp_init]
disp_init_enable = 1
disp_mode = 0
screen0_output_type = 1
screen0_output_mode = 4
screen1_output_type = 1
screen1_output_mode = 4
fb0_format = 10
fb0_pixel_sequence = 0
fb0_scaler_mode_enable = 0
fb0_width = 0
fb0_height = 0
fb1_format = 10
fb1_pixel_sequence = 0
fb1_scaler_mode_enable = 0
fb1_width = 0
fb1_height = 0
lcd0_backlight = 50
lcd1_backlight = 50
lcd0_bright = 50
lcd0_contrast = 50
lcd0_saturation = 57
lcd0_hue = 50
lcd1_bright = 50
lcd1_contrast = 50
lcd1_saturation = 57
lcd1_hue = 50[lcd0_para]
lcd_used = 1
lcd_driver_name = "default_lcd"
lcd_if = 3
lcd_x = 1280
lcd_y = 800
lcd_width = 150
lcd_height = 94
lcd_dclk_freq = 71
lcd_pwm_used = 1
lcd_pwm_ch = 1
lcd_pwm_freq = 50000
lcd_pwm_pol = 1
lcd_hbp = 20
lcd_ht = 1418
lcd_hspw = 10
lcd_vbp = 10
lcd_vt = 830
lcd_vspw = 5
lcd_lvds_if = 0
lcd_lvds_colordepth = 1
lcd_lvds_mode = 0
lcd_frm = 1
lcd_gamma_en = 0
lcd_bright_curve_en = 0
lcd_cmap_en = 0
deu_mode = 0
lcdgamma4iep = 22
smart_color = 90
lcd_bl_en = port:PD13<1><0><default><1>
lcd_power = "axp22_dc1sw"
lcdd0 = port:PD18<3><0><default><default>
lcdd1 = port:PD19<3><0><default><default>
lcdd2 = port:PD20<3><0><default><default>
lcdd3 = port:PD21<3><0><default><default>
lcdd4 = port:PD22<3><0><default><default>
lcdd5 = port:PD23<3><0><default><default>
lcdd6 = port:PD24<3><0><default><default>
lcdd7 = port:PD25<3><0><default><default>
lcdd8 = port:PD26<3><0><default><default>
lcdd9 = port:PD27<3><0><default><default>[pwm0_para]
pwm_used = 0
pwm_positive = port:PH00<2><0><default><default>[pwm1_para]
pwm_used = 0
pwm_positive = port:PH01<2><0><default><default>[csi0]
vip_used = 0
vip_mode = 0
vip_dev_qty = 1
vip_define_sensor_list = 0
vip_csi_pck = port:PE00<2><default><default><default>
vip_csi_mck = port:PE01<2><default><default><default>
vip_csi_hsync = port:PE02<2><default><default><default>
vip_csi_vsync = port:PE03<2><default><default><default>
vip_csi_d0 = port:PE04<2><default><default><default>
vip_csi_d1 = port:PE05<2><default><default><default>
vip_csi_d2 = port:PE06<2><default><default><default>
vip_csi_d3 = port:PE07<2><default><default><default>
vip_csi_d4 = port:PE08<2><default><default><default>
vip_csi_d5 = port:PE09<2><default><default><default>
vip_csi_d6 = port:PE10<2><default><default><default>
vip_csi_d7 = port:PE11<2><default><default><default>
vip_csi_sck = port:PE16<2><default><default><default>
vip_csi_sda = port:PE17<2><default><default><default>
vip_dev0_mname = "gc0308"
vip_dev0_pos = "rear"
vip_dev0_lane = 1
vip_dev0_twi_id = 2
vip_dev0_twi_addr = 66
vip_dev0_isp_used = 0
vip_dev0_fmt = 0
vip_dev0_stby_mode = 1
vip_dev0_vflip = 0
vip_dev0_hflip = 0
vip_dev0_iovdd = "axp22_dldo3"
vip_dev0_iovdd_vol = 2800000
vip_dev0_avdd = ""
vip_dev0_avdd_vol = 2800000
vip_dev0_dvdd = ""
vip_dev0_dvdd_vol = 1800000
vip_dev0_afvdd = ""
vip_dev0_afvdd_vol = 2800000
vip_dev0_power_en =
vip_dev0_reset = port:PE14<1><default><default><0>
vip_dev0_pwdn = port:PE15<1><default><default><1>
vip_dev0_flash_en =
vip_dev0_flash_mode =
vip_dev0_af_pwdn =[lgc]
leds-gpio = port:PH01<1><default><default><default>[led_para]
led_used = 0
led_num = 0[mmc0_para]
sdc_used = 0
sdc_detmode = 1
sdc_buswidth = 4
sdc_d1 = port:PF00<2><1><2><default>
sdc_d0 = port:PF01<2><1><2><default>
sdc_clk = port:PF02<2><1><2><default>
sdc_cmd = port:PF03<2><1><2><default>
sdc_d3 = port:PF04<2><1><2><default>
sdc_d2 = port:PF05<2><1><2><default>
sdc_det = port:PD14<0><1><2><default>
sdc_power_supply = "axp22_dcdc1"
sdc_use_wp = 0
sdc_wp =
sdc_isio = 0
sdc_regulator = "none"[mmc1_para]
sdc_used = 1
sdc_detmode = 4
sdc_buswidth = 4
sdc_clk = port:PG00<2><1><1><default>
sdc_cmd = port:PG01<2><1><1><default>
sdc_d0 = port:PG02<2><1><1><default>
sdc_d1 = port:PG03<2><1><1><default>
sdc_d2 = port:PG04<2><1><1><default>
sdc_d3 = port:PG05<2><1><1><default>
sdc_det =
sdc_use_wp = 0
sdc_wp =
sdc_isio = 1
sdc_regulator = "none"[mmc2_para]
sdc_used = 0
sdc_detmode = 3
sdc_buswidth = 8
sdc_2xmode = 1
sdc_ddrmode = 1
sdc_clk = port:PC05<3><1><2><default>
sdc_cmd = port:PC06<3><1><2><default>
sdc_d0 = port:PC08<3><1><2><default>
sdc_d1 = port:PC09<3><1><2><default>
sdc_d2 = port:PC10<3><1><2><default>
sdc_d3 = port:PC11<3><1><2><default>
sdc_d4 = port:PC12<3><1><2><default>
sdc_d5 = port:PC13<3><1><2><default>
sdc_d6 = port:PC14<3><1><2><default>
sdc_d7 = port:PC15<3><1><2><default>
emmc_rst = port:PC16<3><1><2><default>
sdc_power_supply = "axp22_dcdc1"
sdc_det =
sdc_use_wp = 0
sdc_wp =
sdc_isio = 0
sdc_regulator = "none"[usbc0]
usb_used = 1
usb_port_type = 0
usb_detect_type = 1
usb_id_gpio = port:PD08<0><1><default><default>
usb_det_vbus_gpio = "axp_ctrl"
usb_drv_vbus_gpio = port:power4<1><0><default><0>
usb_restrict_gpio =
usb_host_init_state = 0
usb_restric_flag = 0
usb_restric_voltage = 3550000
usb_restric_capacity = 5
usb_regulator_io = "nocare"
usb_regulator_vol = 0
usb_regulator_id_vbus = "axp22_dcdc1"
usb_regulator_id_vbus_vol = 3000000[usbc1]
usb_used = 1
usb_drv_vbus_gpio = port:PD12<1><0><default><0>
usb_restrict_gpio =
usb_host_init_state = 1
usb_restric_flag = 0
usb_regulator_io = "nocare"
usb_regulator_vol = 0
usb_not_suspend = 0[usb_feature]
vendor_id = 7994
mass_storage_id = 4096
adb_id = 4097
manufacturer_name = "USB Developer"
product_name = "Android"
serial_number = "20080411"[msc_feature]
vendor_name = "USB 2.0"
product_name = "USB Flash Driver"
release = 100
luns = 3[gsensor_para]
gsensor_used = 1
gsensor_twi_id = 1
gsensor_twi_addr = 0x18
gsensor_int1 = port:PL02<4><1><default><default>
gsensor_int2 =[gsensor_list_para]
gsensor_det_used = 1
bma250 = 1
stk831x = 0
mma8452 = 1
mma7660 = 1
mma865x = 1
mc32x0 = 0
afa750 = 1
lis3de_acc = 1
lis3dh_acc = 1
kxtik = 1
dmard10 = 0
dmard06 = 1
mxc622x = 1
fxos8700 = 1
lsm303d = 1[rf_para]
module_num = 10
module_power1 = "axp22_dldo1"
module_power1_vol = 3300000
module_power2 = "axp22_dldo2"
module_power2_vol = 3300000
module_power3 = "axp22_aldo1"
module_power3_vol = 3300000
power_switch =
chip_en =
lpo_use_apclk = "losc_out"[wifi_para]
wifi_used = 1
wifi_sdc_id = 1
wifi_usbc_id = 1
wifi_usbc_type = 1
wl_reg_on = port:PL06<1><default><default><0>
wl_host_wake = port:PL07<4><default><default><0>
wl_host_wake_invert = 0[bt_para]
bt_used = 1
bt_uart_id = 1
bt_rst_n = port:PL08<1><default><default><0>
bt_wake = port:PL10<1><default><default><0>
bt_host_wake = port:PL09<4><default><default><0>
bt_host_wake_invert = 0[gps_para]
gps_used = 0
gps_uard_id = 2
gps_vbat =
gps_standby_n = port:PC17<1><default><default><0>
gps_rst_n = port:PC18<1><default><default><0>
gps_clk = "ac10032k3"[3g_para]
3g_used = 1
3g_usbc_num = 1
3g_uart_num = 2
bb_name = "em66"
bb_vbat =
bb_on =
bb_pwr_on = port:PL03<1><default><default><0>
bb_wake = port:PL04<1><default><default><0>
bb_rf_dis = port:PL11<1><default><default><0>
bb_rst = port:PL05<1><default><default><0>
bb_dldo = "axp22_aldo1"
bb_dldo_min_uV = 2800000
bb_dldo_max_uV = 2800000[gy_para]
gy_used = 0
gy_twi_id = 1
gy_twi_addr = 106
gy_int1 =
gy_int2 =[gy_list_para]
gy_det_used = 1
l3gd20_gyr = 1[ls_para]
ls_used = 1
ls_twi_id = 1
ls_twi_addr = 35
ls_int = port:PB10<4><1><default><default>[ls_list_para]
ls_det_used = 1
ltr_501als = 1
jsa1212 = 1[compass_para]
compass_used = 0
compass_twi_id = 1
compass_twi_addr = 13
compass_int =[i2s0]
i2s0_used = 1
i2s0_channel = 2
i2s0_master = 4
i2s0_select = 1
audio_format = 1
signal_inversion = 1
over_sample_rate = 768
sample_resolution = 24
word_select_size = 32
pcm_sync_period = 256
msb_lsb_first = 0
sign_extend = 0
slot_index = 0
slot_width = 16
frame_width = 1
tx_data_mode = 1
rx_data_mode = 1
i2s0_mclk =
i2s0_bclk = port:PB05<2><1><default><default>
i2s0_lrclk = port:PB04<2><1><default><default>
i2s0_dout0 = port:PB06<2><1><default><default>
i2s0_dout1 =
i2s0_dout2 =
i2s0_dout3 =
i2s0_din = port:PB07<2><1><default><default>[i2s1]
i2s1_used = 0
i2s1_channel = 2
i2s1_master = 4
i2s1_select = 1
audio_format = 1
signal_inversion = 1
over_sample_rate = 512
sample_resolution = 16
word_select_size = 32
pcm_sync_period = 64
msb_lsb_first = 0
sign_extend = 0
slot_index = 0
slot_width = 16
frame_width = 1
tx_data_mode = 0
rx_data_mode = 0
i2s1_mclk =
i2s1_bclk = port:PG11<2><1><default><default>
i2s1_lrclk = port:PG10<2><1><default><default>
i2s1_dout = port:PG12<2><1><default><default>
i2s1_din = port:PG13<2><1><default><default>[audio0]
audio_used = 1
audio_hp_ldo = "none"
headphone_vol = 59
earpiece_vol = 62
cap_vol = 5
pa_single_vol = 58
pa_double_used = 0
pa_double_vol = 62
headphone_direct_used = 1
headset_mic_vol = 3
main_mic_vol = 1
audio_lowlevel_detect = 1
audio_pa_ctrl = port:PL05<1><default><default><0>
aif2_used = 0
aif3_used = 0
headphone_mute_used = 0
pa_gpio_reverse = 0
agc_used = 1
drc_used = 0
aif1_lrlk_div = 64[codec_aif2]
aif2_lrlk_div = 32
aif2master = 1
aif2fmt = 0
aif2_bclk = port:PB05<3><1><default><default>
aif2_lrclk = port:PB04<3><1><default><default>
aif2_dout = port:PB06<3><1><default><default>
aif2_din = port:PB07<3><1><default><default>[codec_aif3]
aif3fmt = 4
aif3_bclk = port:PG11<3><1><default><default>
aif3_lrclk = port:PG10<3><1><default><default>
aif3_dout = port:PG12<3><1><default><default>
aif3_din = port:PG13<3><1><default><default>[pmu1_para]
pmu_used = 1
pmu_twi_addr = 52
pmu_twi_id = 1
pmu_irq_id = 0
pmu_battery_rdc = 100
pmu_battery_cap = 1994
pmu_batdeten = 1
pmu_chg_ic_temp = 0
pmu_runtime_chgcur = 700
pmu_earlysuspend_chgcur = 1000
pmu_suspend_chgcur = 1000
pmu_shutdown_chgcur = 1000
pmu_init_chgvol = 4200
pmu_init_chgend_rate = 15
pmu_init_chg_enabled = 1
pmu_init_adc_freq = 800
pmu_init_adcts_freq = 800
pmu_init_chg_pretime = 70
pmu_init_chg_csttime = 720
pmu_batt_cap_correct = 1
pmu_bat_regu_en = 0
pmu_bat_para1 = 0
pmu_bat_para2 = 0
pmu_bat_para3 = 0
pmu_bat_para4 = 0
pmu_bat_para5 = 10
pmu_bat_para6 = 16
pmu_bat_para7 = 25
pmu_bat_para8 = 28
pmu_bat_para9 = 32
pmu_bat_para10 = 36
pmu_bat_para11 = 39
pmu_bat_para12 = 41
pmu_bat_para13 = 44
pmu_bat_para14 = 49
pmu_bat_para15 = 53
pmu_bat_para16 = 57
pmu_bat_para17 = 59
pmu_bat_para18 = 62
pmu_bat_para19 = 64
pmu_bat_para20 = 67
pmu_bat_para21 = 69
pmu_bat_para22 = 71
pmu_bat_para23 = 76
pmu_bat_para24 = 80
pmu_bat_para25 = 84
pmu_bat_para26 = 89
pmu_bat_para27 = 92
pmu_bat_para28 = 95
pmu_bat_para29 = 96
pmu_bat_para30 = 98
pmu_bat_para31 = 99
pmu_bat_para32 = 100
pmu_usbvol_limit = 0
pmu_usbcur_limit = 0
pmu_usbvol = 4000
pmu_usbcur = 0
pmu_usbvol_pc = 4400
pmu_usbcur_pc = 500
pmu_pwroff_vol = 3300
pmu_pwron_vol = 2600
pmu_pekoff_time = 6000
pmu_pekoff_func = 1
pmu_pekoff_en = 1
pmu_peklong_time = 1500
pmu_pekon_time = 1000
pmu_pwrok_time = 64
pmu_battery_warning_level1 = 15
pmu_battery_warning_level2 = 0
pmu_restvol_adjust_time = 60
pmu_ocv_cou_adjust_time = 60
pmu_chgled_func = 0
pmu_chgled_type = 0
pmu_vbusen_func = 1
pmu_reset = 0
pmu_IRQ_wakeup = 1
pmu_hot_shutdowm = 1
pmu_inshort = 0
power_start = 0
pmu_temp_enable = 0
pmu_charge_ltf = 2261
pmu_charge_htf = 388
pmu_discharge_ltf = 3200
pmu_discharge_htf = 237
pmu_temp_para1 = 7466
pmu_temp_para2 = 4480
pmu_temp_para3 = 3518
pmu_temp_para4 = 2786
pmu_temp_para5 = 2223
pmu_temp_para6 = 1788
pmu_temp_para7 = 1448
pmu_temp_para8 = 969
pmu_temp_para9 = 664
pmu_temp_para10 = 466
pmu_temp_para11 = 393
pmu_temp_para12 = 333
pmu_temp_para13 = 283
pmu_temp_para14 = 242
pmu_temp_para15 = 179
pmu_temp_para16 = 134[pmu2_para]
pmu_used = 0
pmu_twi_addr = 52
pmu_twi_id = 1
pmu_irq_id = 0[dvfs_table]
extremity_freq = 1344000000
max_freq = 1200000000
min_freq = 120000000
LV_count = 8
LV1_freq = 1536000000
LV1_volt = 1500
LV2_freq = 1344000000
LV2_volt = 1460
LV3_freq = 1200000000
LV3_volt = 1320
LV4_freq = 1008000000
LV4_volt = 1200
LV5_freq = 816000000
LV5_volt = 1100
LV6_freq = 648000000
LV6_volt = 1040
LV7_freq = 0
LV7_volt = 1040
LV8_freq = 0
LV8_volt = 1040[Vdevice]
Vdevice_used = 1
Vdevice_0 = port:PA01<5><1><2><default>
Vdevice_1 = port:PA02<5><1><2><default>[s_uart0]
s_uart_used = 0
s_uart_tx = port:PL02<2><default><default><default>
s_uart_rx = port:PL03<2><default><default><default>[s_rsb0]
s_rsb_used = 1
s_rsb_sck = port:PL00<2><1><2><default>
s_rsb_sda = port:PL01<2><1><2><default>[s_jtag0]
s_jtag_used = 0
s_jtag_tms = port:PL04<2><1><2><default>
s_jtag_tck = port:PL05<2><1><2><default>
s_jtag_tdo = port:PL06<2><1><2><default>
s_jtag_tdi = port:PL07<2><1><2><default>[s_powchk]
s_powchk_used = -2147483648
s_power_reg = 32865
s_system_power = 50[gpu_mali400_0]
freq = 384[dram_dvfs_table]
LV_count = 3
LV1_freq = 552000000
LV1_volt = 1100
LV2_freq = 360000000
LV2_volt = 1100
LV3_freq = 0
LV3_volt = 1100[charging_type]
charging_type = 1[dram_scene_table]
LV_count = 3
LV1_scene = 1
LV1_freq = 360000000
LV2_scene = 2
LV2_freq = 240000000
LV3_scene = 3
LV3_freq = 168000000

大体上写出一个可以跑动的主线linux设备树基本上没什么难题了~~

工厂废品小爱同学mini的重生(2)————提取设备树相关推荐

  1. 工厂废品小爱同学mini的重生(4)——— Linux 填坑

    博通wifi芯片的坑 小爱同学用的wifi芯片和树莓派zero的差不太多,不难解决 &mmc1 {pinctrl-names = "default";pinctrl-0 = ...

  2. 工厂废品小爱同学mini的重生(1)———— 入坑篇

    入坑的简要教程 咸鱼上突然出现了6元一片的四核音响板(注意这是工厂处理的次品卖家保证可以点亮),就买了几片稍微玩下-- 从咸鱼入坑的小伙伴想要正常使用板子(回到小爱模式)的可以按照如下步骤来. 准备的 ...

  3. 工厂废品小爱同学mini的重生(3)——— Uboot和硬改SD卡

    硬改SD卡 由提取出的设备树结合硬件可以得到,蓝牙使用的为UART1,调试口占用UART0,在A面的调试点分别是JTAG和UART0,还有S-UART(设备树里没有使用),查看全志R16的用户手册得知 ...

  4. “小爱同学”是我对你期待太高?—智能音箱产品体验篇

    家居场景下,为语音交互提供了面向C端的很好的应用环境,因此在过去一年受到广泛关注.因为公司下半年战略进军智能家居这一块,所以特意关注了家庭智能语音交互这一块应用产品,市场上关于语音交互这一块产品主要包 ...

  5. 怎么使用小爱同学音响_小爱音箱mini怎么样如何使用 小爱音箱mini使用方法详细介绍...

    小爱音箱mini怎么样如何使用?相信小伙伴们一定很好奇,小米音响mini首发仅需99元,下面小编为大家带来了小爱音箱mini使用方法详细介绍,感兴趣的小伙伴赶紧跟着小编一起来看看吧. 小爱音箱mini ...

  6. python和小爱同学_小爱mini与小爱同学除了外观,还有什么较大的区别?

    参加完发布会刚到家,先占个坑,等我吃饱了再来回答. -------------------- 小爱mini已开箱,电源改成usb接口了,5V2A. 扬声器在音箱底部,顶部的麦克风只有4个. 灯光放到了 ...

  7. 小爱同学app安卓版_这一届的小爱Play,居然连喵都敢撩……

    智能音箱用过很多款了,但家里常用的还是小爱mini,毕竟,要联动的米家系类产品似乎有点多. 但有一个不可否认的事实就是,小爱mini的反应速度随着使用时间的增加而开始变慢,渐渐的有时候会出现召唤无效的 ...

  8. 小爱同学与小冰将实现联合进步

    在今天举行的小米AIoT开发者大会上,公布了与微软的一项重要合作落地:元旦前,内置小米小爱同学的手机和已接入小爱开放平台的智能硬件设备,将具有"召唤小冰"的能力.这些设备包括小米全 ...

  9. 互联网晚报 | 8月18日 星期三 | 荣耀回应上市传闻;小爱同学宣布月活用户破亿;许家印卸任恒大地产董事长...

    今日看点 ✦ 许家印卸任恒大地产董事长,官方回应:不涉及管理架构和股权变动 ✦ 荣耀回应上市传闻:将聚焦业务发展,近期没有上市计划 ✦ 抖音电商上线品牌自播激励政策,单品牌最高可得万元流量福利 ✦ 小 ...

最新文章

  1. GitHub因“纳粹”评论遭解雇的犹太员工被复职,CEO公开致歉,开除他的HR走人...
  2. python安装pip-python2.7 安装pip的方法步骤(管用)
  3. Hibernate4继承映射
  4. c++ 大数类 大数模板
  5. Python 技术篇-用smtplib和email库实现邮件发送并展示本地图片实例演示
  6. Freebsd10.3(FreeBSD11 Beta1)使用手记
  7. 深入理解Python中的元类(metaclass)
  8. Linux 的帐号与群组:有效与初始群组、groups, newgrp
  9. jQuery刻度尺滚动滑块插件
  10. win7环境下创建超级隐藏账户
  11. 阿里巴巴测试相关内容
  12. 使用EntityFramework Core和Enums作为字符串的ASP.NET Core Razor页面——第四部分
  13. java 管理系统 注释_员工管理系统--带注释--oracle系统--java项目
  14. MES系统的功能详细以及应用价值介绍
  15. 智能门锁到底安不安全?
  16. 机器人把大龙拉出来_英雄联盟之我的电竞梦
  17. ResNet网络结构解析--Pytorch
  18. Linux------进程概念、进程控制
  19. java支付宝第三方支付前置流程
  20. 关于H.264编码原理以及IPB帧

热门文章

  1. ssm验证码功能实现
  2. 低代码开发-牛刀低代码和专业开发云 JNPF 3.4.5 3.4 旗舰版 /微服务、单体 、JAVA 和netcore版本
  3. Redis的基本操作和运用
  4. xxx is assigned a value but never used 报错
  5. 元件基础知识——磁珠
  6. 小米股价下滑或是因为业界担心其遭遇竞争对手压制
  7. 解决win右键不显示发送到桌面快捷方式
  8. Oculus关闭VR电影制作部门,却留下如此美好的作品
  9. Oracle PDB 启动报 Warning: PDB altered with errors. 状态显示受限(RESTRICTED)
  10. If You're so Smart, Why Aren't You Rich? (一个经济学解释)