bouffalolab_release_bl_iot_sdk_1.6.38-63-gae97ed42f

This commit is contained in:
jczhang 2022-08-23 22:45:30 +08:00
parent 389fee4f9d
commit 923e89b26c
536 changed files with 71824 additions and 0 deletions

BIN
tools/flash_tool/BLDevCube Executable file

Binary file not shown.

Binary file not shown.

BIN
tools/flash_tool/bflb_iot_tool Executable file

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,43 @@
Bouffalolab Iot Command Tool
============
The functions of bflb_iot_tool is the same as DevCube(IOT View) which is a GUI tool for image programing.
bflb_iot_tool is designed for the convenience of integrating into the compilation system after image buid,
and making it more easy for users who are accustomed to using command line operations.
basic download config:
--chipnamemandatory, name of chip(bl602/bl702/bl616...)
--interface1.uart, 2.jlink, 3.cklink, 4.openocd, default is uart
--portserial port or jlink serial number
--baudratebaudrate of serial port, default is 115200
--xtalxtal on the board,for bl602,1:24M,2:32M,3:38.4M,4:40M(default value when not specified),5:26M. for bl702,1:32M(default value when not specified)
for bl616,just use value 7(auto adjust)
--configeflash loader configuration file,default is chips\blXXXX\eflash_loader\eflash_loader_cfg.ini
--otadir of ota file,default is chips\blXXXX\ota
files for download:
1.scattered files:
--firmwaremandatory, select the firmware binary file which your sdk build out
--dtsoptional,select the device tree file you used
--ptmandatory,partition table of flash, default is located in chips/chipname/partition
--boot2mandatory,boot2 binary file as bootloader, default is located in chips/chipname/builtin_imgs/boot2_isp_xxxxx
--mfgoptional, mfg binary file, only use when do RF test
--romfsoptional, romfs dir to create romfs.bin
2.one whole image file:
--addraddress to program, default is 0
--singlethe single file to be programmed ,the tool will add nothing for this file
other options:
--buildbuild image only,not program into flash
EXAMPLE:
bflb_iot_tool.exe --chipname=bl602 --port=COM28 --baudrate=2000000 --firmware="helloworld_bl602.bin" --pt="chips\bl602\partition\partition_cfg_2M.toml" --dts="chips\bl602\device_tree\bl_factory_params_IoTKitA_40M.dts"
bflb_iot_tool.exe --chipname=bl602 --port=COM28 --baudrate=2000000 --firmware="helloworld_bl602.bin" --pt="chips\bl602\partition\partition_cfg_2M.toml" --dts="chips\bl602\device_tree\bl_factory_params_IoTKitA_40M.dts" --build
bflb_iot_tool.exe --chipname=bl602 --port=COM28 --baudrate=2000000 --addr=0x0 --firmware="helloworld_bl602.bin" --single

View File

@ -0,0 +1,23 @@
Bouffalolab Iot Command Tool
============
--chipnamemandatory, name of chip
--interface1.uart, 2.jlink, 3.cklink, 4.openocd, default is uart
--portserial port
--baudratebaudrate of serial port, default is 115200
--xtalxtal of board
--firmwaremandatory, firmware binary file
--dtsdevice tree file
--ptpartition table of flash, default is located in chips/chipname/partition
--boot2boot2 binary file as bootloader, default is located in chips/chipname/builtin_imgs/boot2_isp_xxxxx
--mfgoptional, mfg binary file, only use when do RF test
--romfsoptional, romfs dir
--buildbuild image only
--singlesingle file download
--addraddress to write, default is 0
--configeflash loader configuration file
--otadir of ota file
EXAMPLE:
bflb_iot_tool.exe --chipname=bl702 --port=COM28 --baudrate=2000000 --firmware="helloworld_bl702.bin" --dts="bl_factory_params_IoTKitA_None.dts"

View File

@ -0,0 +1,6 @@
[ota]
#max length of version_hardware is 15 bytes
version_hardware = "BFL_Module_v1.1"
#max length of version_software is 15 bytes
version_software = "EVENT_V1.1.1"
version_header = "BL60X_OTA_Ver1.0"

View File

@ -0,0 +1,348 @@
/dts-v1/;
/include/ "bl602_base.dtsi";
// version: 17
// last_comp_version: 16
// boot_cpuid_phys: 0x0
/ {
model = "bl bl602 IOT board";
compatible = "bl,bl602-sample", "bl,bl602-common";
#address-cells = <0x1>;
#size-cells = <0x1>;
gpio {
#address-cells = <1>;
#size-cells = <1>;
max_num = <40>;
gpio0 {
status = "okay";
pin = <5>;
feature = "led";
active = "Hi"; //Hi or Lo
mode = "blink"; //blink or hearbeat
time = <100>; //duration for this mode
};
gpio1 {
status = "disable";
pin = <6>;
feature = "led";
active = "Hi"; //Hi or Lo
mode = "blink"; //blink or hearbeat
time = <100>; //duration for this mode
};
gpio2 {
status = "okay";
pin = <2>;
feature = "button";
active = "Hi";
mode = "multipress";
button {
debounce = <10>;
short_press_ms {
start = <100>;
end = <3000>;
kevent = <2>;
};
long_press_ms {
start = <6000>;
end = <10000>;
kevent = <3>;
};
longlong_press_ms {
start = <15000>;
kevent = <4>;
};
trig_level = "Hi";
};
hbn_use = "disable";
};
};
i2s {
#address-cells = <1>;
#size-cells = <1>;
i2s@40017000 {
status = "okay";
compatible = "bl602_i2s";
reg = <0x40017000 0x100>;
mclk_only = "okay";
pin {
mclk = <11>;
};
};
i2s@40017100 {
status = "okay";
compatible = "bl602_i2s";
reg = <0x40017100 0x100>;
mclk_only = "disable";
pin {
bclk = <12>;
fs = <29>;
do = <30>;
di = <31>;
};
};
};
i2c {
#address-cells = <1>;
#size-cells = <1>;
i2c@40011000 {
status = "okay";
compatible = "bl602_i2c";
reg = <0x40011000 0x100>;
pin {
scl = <32>;
sda = <13>;
};
devices {
list_addr = <0x18 0x21>;
list_driver = "i2c_es8311", "i2c_gc0308>";
};
};
i2c@40011100 {
status = "disable";
compatible = "bl602_i2c";
reg = <0x40011100 0x100>;
pin {
/*empty here*/
};
};
};
timer {
#address-cells = <1>;
#size-cells = <1>;
timer@40014000 {
status = "disable";
compatible = "bl602_timer";
reg = <0x40014000 0x100>;
};
timer@40014100 {
status = "disable";
compatible = "bl602_timer";
reg = <0x40014100 0x100>;
};
};
pwm {
#address-cells = <1>;
#size-cells = <1>;
pwm@4000A420 {
status = "okay";
compatible = "bl602_pwm";
reg = <0x4000A420 0x20>;
path = "/dev/pwm0";
id = <0>;
pin = <0>;
freq = <800000>;
duty = <50>;
};
pwm@4000A440 {
status = "disable";
reg = <0x4000A440 0x20>;
path = "/dev/pwm1";
id = <1>;
pin = <1>;
freq = <5000>;
duty = <50>;
};
pwm@4000A460 {
status = "disable";
reg = <0x4000A460 0x20>;
path = "/dev/pwm2";
id = <2>;
pin = <2>;
freq = <5000>;
duty = <50>;
};
pwm@4000A480 {
status = "disable";
reg = <0x4000A480 0x20>;
path = "/dev/pwm3";
id = <3>;
pin = <3>;
freq = <5000>;
duty = <50>;
};
pwm@4000A4A0 {
status = "disable";
reg = <0x4000A4A0 0x20>;
path = "/dev/pwm4";
id = <4>;
pin = <4>;
freq = <5000>;
duty = <50>;
};
};
ir {
#address-cells = <1>;
#size-cells = <1>;
ctrltype = <0>;
tx {
status = "disable";
pin = <11>; // only support 11
mode = "NEC"; // NEC,ExtenedNEC,RC5,SWM
interval = <100>; // ms
active_mode = "Hi"; //Hi,Lo
};
rx {
status = "okay";
pin = <12>; // only support 12 13
mode = "NEC"; // NEC,ExtenedNEC,RC5,SWM
active_mode = "Hi"; //Hi,Lo
data_check = <2>; //bit 0:check cmd, bit 1:check addr
};
};
uart {
#address-cells = <1>;
#size-cells = <1>;
uart@4000A000 {
status = "okay";
id = <0>;
compatible = "bl602_uart";
path = "/dev/ttyS0";
baudrate = <2000000>;
pin {
rx = <7>;
tx = <16>;
};
buf_size {
rx_size = <512>;
tx_size = <512>;
};
feature {
tx = "okay";
rx = "okay";
cts = "disable";
rts = "disable";
};
};
uart@4000A100 {
status = "okay";
id = <1>;
compatible = "bl602_uart";
path = "/dev/ttyS1";
baudrate = <115200>;
pin {
rx = <3>;
tx = <4>;
};
buf_size {
rx_size = <512>;
tx_size = <512>;
};
feature {
tx = "okay";
rx = "okay";
cts = "disable";
rts = "disable";
};
};
};
spi {
#address-cells = <1>;
#size-cells = <1>;
spi@4000F000 {
status = "okay"; /* okay disable */
mode = "master";
reg = <0x4000F000 0x100>; /* 4KB */
path = "/dev/spi0";
port = <0>;
polar_phase = <1>; /* 0,1,2,3 */
freq = <6000000>;
pin {
clk = <3>;
cs = <2>;
mosi = <1>;
miso = <0>;
};
dma_cfg {
tx_dma_ch = <2>;
rx_dma_ch = <3>;
};
};
};
gpip {
#address-cells = <1>;
#size-cells = <1>;
adc_key {
status = "disable";
pin = <9>;
interrupt = <3>;
key_vol = <0 100 400 300 500>;
key_pcb = "SW1", "SW2", "SW3", "SW4","SW5";
key_event = "Usr1", "Usr2", "Start", "Up", "Down";
key_raw = <1 2 3 4 5>;
};
};
qspi {
#address-cells = <1>;
#size-cells = <1>;
qspi@4000A000 {
status = "disable";
reg = <0x4000A000 0x1000>;/* 4KB */
};
};
wifi {
#address-cells = <1>;
#size-cells = <1>;
region {
country_code = <86>;
};
mac {
mode = "MBF";
sta_mac_addr = [C8 43 57 82 73 40];
ap_mac_addr = [C8 43 57 82 73 02];
};
sta {
ssid = "yourssid";
pwd = "yourapssword";
auto_connect_enable = <0>;
};
ap {
ssid = "bl_test_005";
pwd = "12345678";
ap_channel = <11>;
auto_chan_detect = "disable";
};
brd_rf {
xtal_mode = "MF";
xtal = <36 36 0 60 60>;
/*
pwr_table = < 4 3 3 186
4 3 4 176
4 3 5 167
3 3 0 159
3 3 1 149
3 3 2 140
3 3 3 129
3 3 4 119
3 3 5 110
2 3 0 101
2 3 1 91
2 3 2 82
2 3 3 72
2 3 4 62
2 3 5 52
1 3 3 10>;
*/
pwr_mode = "bf";//B: only use power offset in EFUSE; b: use power offset in EFUSE with incremental mode; F: only use power offset in Flash; f: use power offset in Flash with incremental mode
pwr_table_11b = <20 20 20 18>;//1Mbps 2Mbps 5.5Mbps 11Mbps
pwr_table_11g = <18 18 18 18 18 18 14 14>; //6Mbps 9Mbps 12Mbps 18MBps 24Mbps 36Mbps 48Mbps 54Mbps
pwr_table_11n = <18 18 18 18 18 16 14 14>; //MCS0 MCS1 MCS2 MCS3 MCS4 MCS5 MCS6 MCS7
pwr_offset = <10 10 10 10 10 10 10 10 10 10 10 10 10 10>;//due to the limit of current DTC, negative value is used. So we work around by adding all the poweroffset with 10. so 8 represents -2; 10 represents 0; 13 represents 3
};
rf_temp {
en_tcal = <0>;
linear_or_follow = <1>;
Tchannels = <2412 2427 2442 2457 2472>;
Tchannel_os = <180 168 163 160 157>;
Tchannel_os_low = <199 186 170 165 160>;
Troom_os = <255>;
//negative value is NOT supported. So we use '256' for 0, '255' for -1, '257' for 1,'511' for 256
};
};
bluetooth {
#address-cells = <1>;
#size-cells = <1>;
brd_rf {
pwr_table_ble = <13>; //range:0~15dbm
};
};
};

View File

@ -0,0 +1,348 @@
/dts-v1/;
/include/ "bl602_base.dtsi";
// version: 17
// last_comp_version: 16
// boot_cpuid_phys: 0x0
/ {
model = "bl bl602 IOT board";
compatible = "bl,bl602-sample", "bl,bl602-common";
#address-cells = <0x1>;
#size-cells = <0x1>;
gpio {
#address-cells = <1>;
#size-cells = <1>;
max_num = <40>;
gpio0 {
status = "okay";
pin = <5>;
feature = "led";
active = "Hi"; //Hi or Lo
mode = "blink"; //blink or hearbeat
time = <100>; //duration for this mode
};
gpio1 {
status = "disable";
pin = <6>;
feature = "led";
active = "Hi"; //Hi or Lo
mode = "blink"; //blink or hearbeat
time = <100>; //duration for this mode
};
gpio2 {
status = "okay";
pin = <2>;
feature = "button";
active = "Hi";
mode = "multipress";
button {
debounce = <10>;
short_press_ms {
start = <100>;
end = <3000>;
kevent = <2>;
};
long_press_ms {
start = <6000>;
end = <10000>;
kevent = <3>;
};
longlong_press_ms {
start = <15000>;
kevent = <4>;
};
trig_level = "Hi";
};
hbn_use = "disable";
};
};
i2s {
#address-cells = <1>;
#size-cells = <1>;
i2s@40017000 {
status = "okay";
compatible = "bl602_i2s";
reg = <0x40017000 0x100>;
mclk_only = "okay";
pin {
mclk = <11>;
};
};
i2s@40017100 {
status = "okay";
compatible = "bl602_i2s";
reg = <0x40017100 0x100>;
mclk_only = "disable";
pin {
bclk = <12>;
fs = <29>;
do = <30>;
di = <31>;
};
};
};
i2c {
#address-cells = <1>;
#size-cells = <1>;
i2c@40011000 {
status = "okay";
compatible = "bl602_i2c";
reg = <0x40011000 0x100>;
pin {
scl = <32>;
sda = <13>;
};
devices {
list_addr = <0x18 0x21>;
list_driver = "i2c_es8311", "i2c_gc0308>";
};
};
i2c@40011100 {
status = "disable";
compatible = "bl602_i2c";
reg = <0x40011100 0x100>;
pin {
/*empty here*/
};
};
};
timer {
#address-cells = <1>;
#size-cells = <1>;
timer@40014000 {
status = "disable";
compatible = "bl602_timer";
reg = <0x40014000 0x100>;
};
timer@40014100 {
status = "disable";
compatible = "bl602_timer";
reg = <0x40014100 0x100>;
};
};
pwm {
#address-cells = <1>;
#size-cells = <1>;
pwm@4000A420 {
status = "okay";
compatible = "bl602_pwm";
reg = <0x4000A420 0x20>;
path = "/dev/pwm0";
id = <0>;
pin = <0>;
freq = <800000>;
duty = <50>;
};
pwm@4000A440 {
status = "disable";
reg = <0x4000A440 0x20>;
path = "/dev/pwm1";
id = <1>;
pin = <1>;
freq = <5000>;
duty = <50>;
};
pwm@4000A460 {
status = "disable";
reg = <0x4000A460 0x20>;
path = "/dev/pwm2";
id = <2>;
pin = <2>;
freq = <5000>;
duty = <50>;
};
pwm@4000A480 {
status = "disable";
reg = <0x4000A480 0x20>;
path = "/dev/pwm3";
id = <3>;
pin = <3>;
freq = <5000>;
duty = <50>;
};
pwm@4000A4A0 {
status = "disable";
reg = <0x4000A4A0 0x20>;
path = "/dev/pwm4";
id = <4>;
pin = <4>;
freq = <5000>;
duty = <50>;
};
};
ir {
#address-cells = <1>;
#size-cells = <1>;
ctrltype = <0>;
tx {
status = "disable";
pin = <11>; // only support 11
mode = "NEC"; // NEC,ExtenedNEC,RC5,SWM
interval = <100>; // ms
active_mode = "Hi"; //Hi,Lo
};
rx {
status = "okay";
pin = <12>; // only support 12 13
mode = "NEC"; // NEC,ExtenedNEC,RC5,SWM
active_mode = "Hi"; //Hi,Lo
data_check = <2>; //bit 0:check cmd, bit 1:check addr
};
};
uart {
#address-cells = <1>;
#size-cells = <1>;
uart@4000A000 {
status = "okay";
id = <0>;
compatible = "bl602_uart";
path = "/dev/ttyS0";
baudrate = <2000000>;
pin {
rx = <7>;
tx = <16>;
};
buf_size {
rx_size = <512>;
tx_size = <512>;
};
feature {
tx = "okay";
rx = "okay";
cts = "disable";
rts = "disable";
};
};
uart@4000A100 {
status = "okay";
id = <1>;
compatible = "bl602_uart";
path = "/dev/ttyS1";
baudrate = <115200>;
pin {
rx = <3>;
tx = <4>;
};
buf_size {
rx_size = <512>;
tx_size = <512>;
};
feature {
tx = "okay";
rx = "okay";
cts = "disable";
rts = "disable";
};
};
};
spi {
#address-cells = <1>;
#size-cells = <1>;
spi@4000F000 {
status = "okay"; /* okay disable */
mode = "master";
reg = <0x4000F000 0x100>; /* 4KB */
path = "/dev/spi0";
port = <0>;
polar_phase = <1>; /* 0,1,2,3 */
freq = <6000000>;
pin {
clk = <3>;
cs = <2>;
mosi = <1>;
miso = <0>;
};
dma_cfg {
tx_dma_ch = <2>;
rx_dma_ch = <3>;
};
};
};
gpip {
#address-cells = <1>;
#size-cells = <1>;
adc_key {
status = "disable";
pin = <9>;
interrupt = <3>;
key_vol = <0 100 400 300 500>;
key_pcb = "SW1", "SW2", "SW3", "SW4","SW5";
key_event = "Usr1", "Usr2", "Start", "Up", "Down";
key_raw = <1 2 3 4 5>;
};
};
qspi {
#address-cells = <1>;
#size-cells = <1>;
qspi@4000A000 {
status = "disable";
reg = <0x4000A000 0x1000>;/* 4KB */
};
};
wifi {
#address-cells = <1>;
#size-cells = <1>;
region {
country_code = <86>;
};
mac {
mode = "MBF";
sta_mac_addr = [C8 43 57 82 73 40];
ap_mac_addr = [C8 43 57 82 73 02];
};
sta {
ssid = "yourssid";
pwd = "yourapssword";
auto_connect_enable = <0>;
};
ap {
ssid = "bl_test_005";
pwd = "12345678";
ap_channel = <11>;
auto_chan_detect = "disable";
};
brd_rf {
xtal_mode = "MF";
xtal = <36 36 0 60 60>;
/*
pwr_table = < 4 3 3 186
4 3 4 176
4 3 5 167
3 3 0 159
3 3 1 149
3 3 2 140
3 3 3 129
3 3 4 119
3 3 5 110
2 3 0 101
2 3 1 91
2 3 2 82
2 3 3 72
2 3 4 62
2 3 5 52
1 3 3 10>;
*/
pwr_mode = "bf";//B: only use power offset in EFUSE; b: use power offset in EFUSE with incremental mode; F: only use power offset in Flash; f: use power offset in Flash with incremental mode
pwr_table_11b = <20 20 20 18>;//1Mbps 2Mbps 5.5Mbps 11Mbps
pwr_table_11g = <18 18 18 18 18 18 14 14>; //6Mbps 9Mbps 12Mbps 18MBps 24Mbps 36Mbps 48Mbps 54Mbps
pwr_table_11n = <18 18 18 18 18 16 14 14>; //MCS0 MCS1 MCS2 MCS3 MCS4 MCS5 MCS6 MCS7
pwr_offset = <10 10 10 10 10 10 10 10 10 10 10 10 10 10>;//due to the limit of current DTC, negative value is used. So we work around by adding all the poweroffset with 10. so 8 represents -2; 10 represents 0; 13 represents 3
};
rf_temp {
en_tcal = <0>;
linear_or_follow = <1>;
Tchannels = <2412 2427 2442 2457 2472>;
Tchannel_os = <180 168 163 160 157>;
Tchannel_os_low = <199 186 170 165 160>;
Troom_os = <255>;
//negative value is NOT supported. So we use '256' for 0, '255' for -1, '257' for 1,'511' for 256
};
};
bluetooth {
#address-cells = <1>;
#size-cells = <1>;
brd_rf {
pwr_table_ble = <13>; //range:0~15dbm
};
};
};

View File

@ -0,0 +1,348 @@
/dts-v1/;
/include/ "bl602_base.dtsi";
// version: 17
// last_comp_version: 16
// boot_cpuid_phys: 0x0
/ {
model = "bl bl602 IOT board";
compatible = "bl,bl602-sample", "bl,bl602-common";
#address-cells = <0x1>;
#size-cells = <0x1>;
gpio {
#address-cells = <1>;
#size-cells = <1>;
max_num = <40>;
gpio0 {
status = "okay";
pin = <5>;
feature = "led";
active = "Hi"; //Hi or Lo
mode = "blink"; //blink or hearbeat
time = <100>; //duration for this mode
};
gpio1 {
status = "disable";
pin = <6>;
feature = "led";
active = "Hi"; //Hi or Lo
mode = "blink"; //blink or hearbeat
time = <100>; //duration for this mode
};
gpio2 {
status = "okay";
pin = <2>;
feature = "button";
active = "Hi";
mode = "multipress";
button {
debounce = <10>;
short_press_ms {
start = <100>;
end = <3000>;
kevent = <2>;
};
long_press_ms {
start = <6000>;
end = <10000>;
kevent = <3>;
};
longlong_press_ms {
start = <15000>;
kevent = <4>;
};
trig_level = "Hi";
};
hbn_use = "disable";
};
};
i2s {
#address-cells = <1>;
#size-cells = <1>;
i2s@40017000 {
status = "okay";
compatible = "bl602_i2s";
reg = <0x40017000 0x100>;
mclk_only = "okay";
pin {
mclk = <11>;
};
};
i2s@40017100 {
status = "okay";
compatible = "bl602_i2s";
reg = <0x40017100 0x100>;
mclk_only = "disable";
pin {
bclk = <12>;
fs = <29>;
do = <30>;
di = <31>;
};
};
};
i2c {
#address-cells = <1>;
#size-cells = <1>;
i2c@40011000 {
status = "okay";
compatible = "bl602_i2c";
reg = <0x40011000 0x100>;
pin {
scl = <32>;
sda = <13>;
};
devices {
list_addr = <0x18 0x21>;
list_driver = "i2c_es8311", "i2c_gc0308>";
};
};
i2c@40011100 {
status = "disable";
compatible = "bl602_i2c";
reg = <0x40011100 0x100>;
pin {
/*empty here*/
};
};
};
timer {
#address-cells = <1>;
#size-cells = <1>;
timer@40014000 {
status = "disable";
compatible = "bl602_timer";
reg = <0x40014000 0x100>;
};
timer@40014100 {
status = "disable";
compatible = "bl602_timer";
reg = <0x40014100 0x100>;
};
};
pwm {
#address-cells = <1>;
#size-cells = <1>;
pwm@4000A420 {
status = "okay";
compatible = "bl602_pwm";
reg = <0x4000A420 0x20>;
path = "/dev/pwm0";
id = <0>;
pin = <0>;
freq = <800000>;
duty = <50>;
};
pwm@4000A440 {
status = "disable";
reg = <0x4000A440 0x20>;
path = "/dev/pwm1";
id = <1>;
pin = <1>;
freq = <5000>;
duty = <50>;
};
pwm@4000A460 {
status = "disable";
reg = <0x4000A460 0x20>;
path = "/dev/pwm2";
id = <2>;
pin = <2>;
freq = <5000>;
duty = <50>;
};
pwm@4000A480 {
status = "disable";
reg = <0x4000A480 0x20>;
path = "/dev/pwm3";
id = <3>;
pin = <3>;
freq = <5000>;
duty = <50>;
};
pwm@4000A4A0 {
status = "disable";
reg = <0x4000A4A0 0x20>;
path = "/dev/pwm4";
id = <4>;
pin = <4>;
freq = <5000>;
duty = <50>;
};
};
ir {
#address-cells = <1>;
#size-cells = <1>;
ctrltype = <0>;
tx {
status = "disable";
pin = <11>; // only support 11
mode = "NEC"; // NEC,ExtenedNEC,RC5,SWM
interval = <100>; // ms
active_mode = "Hi"; //Hi,Lo
};
rx {
status = "okay";
pin = <12>; // only support 12 13
mode = "NEC"; // NEC,ExtenedNEC,RC5,SWM
active_mode = "Hi"; //Hi,Lo
data_check = <2>; //bit 0:check cmd, bit 1:check addr
};
};
uart {
#address-cells = <1>;
#size-cells = <1>;
uart@4000A000 {
status = "okay";
id = <0>;
compatible = "bl602_uart";
path = "/dev/ttyS0";
baudrate = <2000000>;
pin {
rx = <7>;
tx = <16>;
};
buf_size {
rx_size = <512>;
tx_size = <512>;
};
feature {
tx = "okay";
rx = "okay";
cts = "disable";
rts = "disable";
};
};
uart@4000A100 {
status = "okay";
id = <1>;
compatible = "bl602_uart";
path = "/dev/ttyS1";
baudrate = <115200>;
pin {
rx = <3>;
tx = <4>;
};
buf_size {
rx_size = <512>;
tx_size = <512>;
};
feature {
tx = "okay";
rx = "okay";
cts = "disable";
rts = "disable";
};
};
};
spi {
#address-cells = <1>;
#size-cells = <1>;
spi@4000F000 {
status = "okay"; /* okay disable */
mode = "master";
reg = <0x4000F000 0x100>; /* 4KB */
path = "/dev/spi0";
port = <0>;
polar_phase = <1>; /* 0,1,2,3 */
freq = <6000000>;
pin {
clk = <3>;
cs = <2>;
mosi = <1>;
miso = <0>;
};
dma_cfg {
tx_dma_ch = <2>;
rx_dma_ch = <3>;
};
};
};
gpip {
#address-cells = <1>;
#size-cells = <1>;
adc_key {
status = "disable";
pin = <9>;
interrupt = <3>;
key_vol = <0 100 400 300 500>;
key_pcb = "SW1", "SW2", "SW3", "SW4","SW5";
key_event = "Usr1", "Usr2", "Start", "Up", "Down";
key_raw = <1 2 3 4 5>;
};
};
qspi {
#address-cells = <1>;
#size-cells = <1>;
qspi@4000A000 {
status = "disable";
reg = <0x4000A000 0x1000>;/* 4KB */
};
};
wifi {
#address-cells = <1>;
#size-cells = <1>;
region {
country_code = <86>;
};
mac {
mode = "MBF";
sta_mac_addr = [C8 43 57 82 73 40];
ap_mac_addr = [C8 43 57 82 73 02];
};
sta {
ssid = "yourssid";
pwd = "yourapssword";
auto_connect_enable = <0>;
};
ap {
ssid = "bl_test_005";
pwd = "12345678";
ap_channel = <11>;
auto_chan_detect = "disable";
};
brd_rf {
xtal_mode = "MF";
xtal = <36 36 0 60 60>;
/*
pwr_table = < 4 3 3 186
4 3 4 176
4 3 5 167
3 3 0 159
3 3 1 149
3 3 2 140
3 3 3 129
3 3 4 119
3 3 5 110
2 3 0 101
2 3 1 91
2 3 2 82
2 3 3 72
2 3 4 62
2 3 5 52
1 3 3 10>;
*/
pwr_mode = "bf";//B: only use power offset in EFUSE; b: use power offset in EFUSE with incremental mode; F: only use power offset in Flash; f: use power offset in Flash with incremental mode
pwr_table_11b = <20 20 20 18>;//1Mbps 2Mbps 5.5Mbps 11Mbps
pwr_table_11g = <18 18 18 18 18 18 14 14>; //6Mbps 9Mbps 12Mbps 18MBps 24Mbps 36Mbps 48Mbps 54Mbps
pwr_table_11n = <18 18 18 18 18 16 14 14>; //MCS0 MCS1 MCS2 MCS3 MCS4 MCS5 MCS6 MCS7
pwr_offset = <10 10 10 10 10 10 10 10 10 10 10 10 10 10>;//due to the limit of current DTC, negative value is used. So we work around by adding all the poweroffset with 10. so 8 represents -2; 10 represents 0; 13 represents 3
};
rf_temp {
en_tcal = <0>;
linear_or_follow = <1>;
Tchannels = <2412 2427 2442 2457 2472>;
Tchannel_os = <180 168 163 160 157>;
Tchannel_os_low = <199 186 170 165 160>;
Troom_os = <255>;
//negative value is NOT supported. So we use '256' for 0, '255' for -1, '257' for 1,'511' for 256
};
};
bluetooth {
#address-cells = <1>;
#size-cells = <1>;
brd_rf {
pwr_table_ble = <13>; //range:0~15dbm
};
};
};

View File

@ -0,0 +1,348 @@
/dts-v1/;
/include/ "bl602_base.dtsi";
// version: 17
// last_comp_version: 16
// boot_cpuid_phys: 0x0
/ {
model = "bl bl602 IOT board";
compatible = "bl,bl602-sample", "bl,bl602-common";
#address-cells = <0x1>;
#size-cells = <0x1>;
gpio {
#address-cells = <1>;
#size-cells = <1>;
max_num = <40>;
gpio0 {
status = "okay";
pin = <5>;
feature = "led";
active = "Hi"; //Hi or Lo
mode = "blink"; //blink or hearbeat
time = <100>; //duration for this mode
};
gpio1 {
status = "disable";
pin = <6>;
feature = "led";
active = "Hi"; //Hi or Lo
mode = "blink"; //blink or hearbeat
time = <100>; //duration for this mode
};
gpio2 {
status = "okay";
pin = <2>;
feature = "button";
active = "Hi";
mode = "multipress";
button {
debounce = <10>;
short_press_ms {
start = <100>;
end = <3000>;
kevent = <2>;
};
long_press_ms {
start = <6000>;
end = <10000>;
kevent = <3>;
};
longlong_press_ms {
start = <15000>;
kevent = <4>;
};
trig_level = "Hi";
};
hbn_use = "disable";
};
};
i2s {
#address-cells = <1>;
#size-cells = <1>;
i2s@40017000 {
status = "okay";
compatible = "bl602_i2s";
reg = <0x40017000 0x100>;
mclk_only = "okay";
pin {
mclk = <11>;
};
};
i2s@40017100 {
status = "okay";
compatible = "bl602_i2s";
reg = <0x40017100 0x100>;
mclk_only = "disable";
pin {
bclk = <12>;
fs = <29>;
do = <30>;
di = <31>;
};
};
};
i2c {
#address-cells = <1>;
#size-cells = <1>;
i2c@40011000 {
status = "okay";
compatible = "bl602_i2c";
reg = <0x40011000 0x100>;
pin {
scl = <32>;
sda = <13>;
};
devices {
list_addr = <0x18 0x21>;
list_driver = "i2c_es8311", "i2c_gc0308>";
};
};
i2c@40011100 {
status = "disable";
compatible = "bl602_i2c";
reg = <0x40011100 0x100>;
pin {
/*empty here*/
};
};
};
timer {
#address-cells = <1>;
#size-cells = <1>;
timer@40014000 {
status = "disable";
compatible = "bl602_timer";
reg = <0x40014000 0x100>;
};
timer@40014100 {
status = "disable";
compatible = "bl602_timer";
reg = <0x40014100 0x100>;
};
};
pwm {
#address-cells = <1>;
#size-cells = <1>;
pwm@4000A420 {
status = "okay";
compatible = "bl602_pwm";
reg = <0x4000A420 0x20>;
path = "/dev/pwm0";
id = <0>;
pin = <0>;
freq = <800000>;
duty = <50>;
};
pwm@4000A440 {
status = "disable";
reg = <0x4000A440 0x20>;
path = "/dev/pwm1";
id = <1>;
pin = <1>;
freq = <5000>;
duty = <50>;
};
pwm@4000A460 {
status = "disable";
reg = <0x4000A460 0x20>;
path = "/dev/pwm2";
id = <2>;
pin = <2>;
freq = <5000>;
duty = <50>;
};
pwm@4000A480 {
status = "disable";
reg = <0x4000A480 0x20>;
path = "/dev/pwm3";
id = <3>;
pin = <3>;
freq = <5000>;
duty = <50>;
};
pwm@4000A4A0 {
status = "disable";
reg = <0x4000A4A0 0x20>;
path = "/dev/pwm4";
id = <4>;
pin = <4>;
freq = <5000>;
duty = <50>;
};
};
ir {
#address-cells = <1>;
#size-cells = <1>;
ctrltype = <0>;
tx {
status = "disable";
pin = <11>; // only support 11
mode = "NEC"; // NEC,ExtenedNEC,RC5,SWM
interval = <100>; // ms
active_mode = "Hi"; //Hi,Lo
};
rx {
status = "okay";
pin = <12>; // only support 12 13
mode = "NEC"; // NEC,ExtenedNEC,RC5,SWM
active_mode = "Hi"; //Hi,Lo
data_check = <2>; //bit 0:check cmd, bit 1:check addr
};
};
uart {
#address-cells = <1>;
#size-cells = <1>;
uart@4000A000 {
status = "okay";
id = <0>;
compatible = "bl602_uart";
path = "/dev/ttyS0";
baudrate = <2000000>;
pin {
rx = <7>;
tx = <16>;
};
buf_size {
rx_size = <512>;
tx_size = <512>;
};
feature {
tx = "okay";
rx = "okay";
cts = "disable";
rts = "disable";
};
};
uart@4000A100 {
status = "okay";
id = <1>;
compatible = "bl602_uart";
path = "/dev/ttyS1";
baudrate = <115200>;
pin {
rx = <3>;
tx = <4>;
};
buf_size {
rx_size = <512>;
tx_size = <512>;
};
feature {
tx = "okay";
rx = "okay";
cts = "disable";
rts = "disable";
};
};
};
spi {
#address-cells = <1>;
#size-cells = <1>;
spi@4000F000 {
status = "okay"; /* okay disable */
mode = "master";
reg = <0x4000F000 0x100>; /* 4KB */
path = "/dev/spi0";
port = <0>;
polar_phase = <1>; /* 0,1,2,3 */
freq = <6000000>;
pin {
clk = <3>;
cs = <2>;
mosi = <1>;
miso = <0>;
};
dma_cfg {
tx_dma_ch = <2>;
rx_dma_ch = <3>;
};
};
};
gpip {
#address-cells = <1>;
#size-cells = <1>;
adc_key {
status = "disable";
pin = <9>;
interrupt = <3>;
key_vol = <0 100 400 300 500>;
key_pcb = "SW1", "SW2", "SW3", "SW4","SW5";
key_event = "Usr1", "Usr2", "Start", "Up", "Down";
key_raw = <1 2 3 4 5>;
};
};
qspi {
#address-cells = <1>;
#size-cells = <1>;
qspi@4000A000 {
status = "disable";
reg = <0x4000A000 0x1000>;/* 4KB */
};
};
wifi {
#address-cells = <1>;
#size-cells = <1>;
region {
country_code = <86>;
};
mac {
mode = "MBF";
sta_mac_addr = [C8 43 57 82 73 40];
ap_mac_addr = [C8 43 57 82 73 02];
};
sta {
ssid = "yourssid";
pwd = "yourapssword";
auto_connect_enable = <0>;
};
ap {
ssid = "bl_test_005";
pwd = "12345678";
ap_channel = <11>;
auto_chan_detect = "disable";
};
brd_rf {
xtal_mode = "MF";
xtal = <36 36 0 60 60>;
/*
pwr_table = < 4 3 3 186
4 3 4 176
4 3 5 167
3 3 0 159
3 3 1 149
3 3 2 140
3 3 3 129
3 3 4 119
3 3 5 110
2 3 0 101
2 3 1 91
2 3 2 82
2 3 3 72
2 3 4 62
2 3 5 52
1 3 3 10>;
*/
pwr_mode = "bf";//B: only use power offset in EFUSE; b: use power offset in EFUSE with incremental mode; F: only use power offset in Flash; f: use power offset in Flash with incremental mode
pwr_table_11b = <20 20 20 18>;//1Mbps 2Mbps 5.5Mbps 11Mbps
pwr_table_11g = <18 18 18 18 18 18 14 14>; //6Mbps 9Mbps 12Mbps 18MBps 24Mbps 36Mbps 48Mbps 54Mbps
pwr_table_11n = <18 18 18 18 18 16 14 14>; //MCS0 MCS1 MCS2 MCS3 MCS4 MCS5 MCS6 MCS7
pwr_offset = <10 10 10 10 10 10 10 10 10 10 10 10 10 10>;//due to the limit of current DTC, negative value is used. So we work around by adding all the poweroffset with 10. so 8 represents -2; 10 represents 0; 13 represents 3
};
rf_temp {
en_tcal = <0>;
linear_or_follow = <1>;
Tchannels = <2412 2427 2442 2457 2472>;
Tchannel_os = <180 168 163 160 157>;
Tchannel_os_low = <199 186 170 165 160>;
Troom_os = <255>;
//negative value is NOT supported. So we use '256' for 0, '255' for -1, '257' for 1,'511' for 256
};
};
bluetooth {
#address-cells = <1>;
#size-cells = <1>;
brd_rf {
pwr_table_ble = <13>; //range:0~15dbm
};
};
};

View File

@ -0,0 +1,348 @@
/dts-v1/;
/include/ "bl602_base.dtsi";
// version: 17
// last_comp_version: 16
// boot_cpuid_phys: 0x0
/ {
model = "bl bl602 IOT board";
compatible = "bl,bl602-sample", "bl,bl602-common";
#address-cells = <0x1>;
#size-cells = <0x1>;
gpio {
#address-cells = <1>;
#size-cells = <1>;
max_num = <40>;
gpio0 {
status = "okay";
pin = <5>;
feature = "led";
active = "Hi"; //Hi or Lo
mode = "blink"; //blink or hearbeat
time = <100>; //duration for this mode
};
gpio1 {
status = "disable";
pin = <6>;
feature = "led";
active = "Hi"; //Hi or Lo
mode = "blink"; //blink or hearbeat
time = <100>; //duration for this mode
};
gpio2 {
status = "okay";
pin = <2>;
feature = "button";
active = "Hi";
mode = "multipress";
button {
debounce = <10>;
short_press_ms {
start = <100>;
end = <3000>;
kevent = <2>;
};
long_press_ms {
start = <6000>;
end = <10000>;
kevent = <3>;
};
longlong_press_ms {
start = <15000>;
kevent = <4>;
};
trig_level = "Hi";
};
hbn_use = "disable";
};
};
i2s {
#address-cells = <1>;
#size-cells = <1>;
i2s@40017000 {
status = "okay";
compatible = "bl602_i2s";
reg = <0x40017000 0x100>;
mclk_only = "okay";
pin {
mclk = <11>;
};
};
i2s@40017100 {
status = "okay";
compatible = "bl602_i2s";
reg = <0x40017100 0x100>;
mclk_only = "disable";
pin {
bclk = <12>;
fs = <29>;
do = <30>;
di = <31>;
};
};
};
i2c {
#address-cells = <1>;
#size-cells = <1>;
i2c@40011000 {
status = "okay";
compatible = "bl602_i2c";
reg = <0x40011000 0x100>;
pin {
scl = <32>;
sda = <13>;
};
devices {
list_addr = <0x18 0x21>;
list_driver = "i2c_es8311", "i2c_gc0308>";
};
};
i2c@40011100 {
status = "disable";
compatible = "bl602_i2c";
reg = <0x40011100 0x100>;
pin {
/*empty here*/
};
};
};
timer {
#address-cells = <1>;
#size-cells = <1>;
timer@40014000 {
status = "disable";
compatible = "bl602_timer";
reg = <0x40014000 0x100>;
};
timer@40014100 {
status = "disable";
compatible = "bl602_timer";
reg = <0x40014100 0x100>;
};
};
pwm {
#address-cells = <1>;
#size-cells = <1>;
pwm@4000A420 {
status = "okay";
compatible = "bl602_pwm";
reg = <0x4000A420 0x20>;
path = "/dev/pwm0";
id = <0>;
pin = <0>;
freq = <800000>;
duty = <50>;
};
pwm@4000A440 {
status = "disable";
reg = <0x4000A440 0x20>;
path = "/dev/pwm1";
id = <1>;
pin = <1>;
freq = <5000>;
duty = <50>;
};
pwm@4000A460 {
status = "disable";
reg = <0x4000A460 0x20>;
path = "/dev/pwm2";
id = <2>;
pin = <2>;
freq = <5000>;
duty = <50>;
};
pwm@4000A480 {
status = "disable";
reg = <0x4000A480 0x20>;
path = "/dev/pwm3";
id = <3>;
pin = <3>;
freq = <5000>;
duty = <50>;
};
pwm@4000A4A0 {
status = "disable";
reg = <0x4000A4A0 0x20>;
path = "/dev/pwm4";
id = <4>;
pin = <4>;
freq = <5000>;
duty = <50>;
};
};
ir {
#address-cells = <1>;
#size-cells = <1>;
ctrltype = <0>;
tx {
status = "disable";
pin = <11>; // only support 11
mode = "NEC"; // NEC,ExtenedNEC,RC5,SWM
interval = <100>; // ms
active_mode = "Hi"; //Hi,Lo
};
rx {
status = "okay";
pin = <12>; // only support 12 13
mode = "NEC"; // NEC,ExtenedNEC,RC5,SWM
active_mode = "Hi"; //Hi,Lo
data_check = <2>; //bit 0:check cmd, bit 1:check addr
};
};
uart {
#address-cells = <1>;
#size-cells = <1>;
uart@4000A000 {
status = "okay";
id = <0>;
compatible = "bl602_uart";
path = "/dev/ttyS0";
baudrate = <2000000>;
pin {
rx = <7>;
tx = <16>;
};
buf_size {
rx_size = <512>;
tx_size = <512>;
};
feature {
tx = "okay";
rx = "okay";
cts = "disable";
rts = "disable";
};
};
uart@4000A100 {
status = "okay";
id = <1>;
compatible = "bl602_uart";
path = "/dev/ttyS1";
baudrate = <115200>;
pin {
rx = <3>;
tx = <4>;
};
buf_size {
rx_size = <512>;
tx_size = <512>;
};
feature {
tx = "okay";
rx = "okay";
cts = "disable";
rts = "disable";
};
};
};
spi {
#address-cells = <1>;
#size-cells = <1>;
spi@4000F000 {
status = "okay"; /* okay disable */
mode = "master";
reg = <0x4000F000 0x100>; /* 4KB */
path = "/dev/spi0";
port = <0>;
polar_phase = <1>; /* 0,1,2,3 */
freq = <6000000>;
pin {
clk = <3>;
cs = <2>;
mosi = <1>;
miso = <0>;
};
dma_cfg {
tx_dma_ch = <2>;
rx_dma_ch = <3>;
};
};
};
gpip {
#address-cells = <1>;
#size-cells = <1>;
adc_key {
status = "disable";
pin = <9>;
interrupt = <3>;
key_vol = <0 100 400 300 500>;
key_pcb = "SW1", "SW2", "SW3", "SW4","SW5";
key_event = "Usr1", "Usr2", "Start", "Up", "Down";
key_raw = <1 2 3 4 5>;
};
};
qspi {
#address-cells = <1>;
#size-cells = <1>;
qspi@4000A000 {
status = "disable";
reg = <0x4000A000 0x1000>;/* 4KB */
};
};
wifi {
#address-cells = <1>;
#size-cells = <1>;
region {
country_code = <86>;
};
mac {
mode = "MBF";
sta_mac_addr = [C8 43 57 82 73 40];
ap_mac_addr = [C8 43 57 82 73 02];
};
sta {
ssid = "yourssid";
pwd = "yourapssword";
auto_connect_enable = <0>;
};
ap {
ssid = "bl_test_005";
pwd = "12345678";
ap_channel = <11>;
auto_chan_detect = "disable";
};
brd_rf {
xtal_mode = "MF";
xtal = <36 36 0 60 60>;
/*
pwr_table = < 4 3 3 186
4 3 4 176
4 3 5 167
3 3 0 159
3 3 1 149
3 3 2 140
3 3 3 129
3 3 4 119
3 3 5 110
2 3 0 101
2 3 1 91
2 3 2 82
2 3 3 72
2 3 4 62
2 3 5 52
1 3 3 10>;
*/
pwr_mode = "bf";//B: only use power offset in EFUSE; b: use power offset in EFUSE with incremental mode; F: only use power offset in Flash; f: use power offset in Flash with incremental mode
pwr_table_11b = <20 20 20 18>;//1Mbps 2Mbps 5.5Mbps 11Mbps
pwr_table_11g = <18 18 18 18 18 18 14 14>; //6Mbps 9Mbps 12Mbps 18MBps 24Mbps 36Mbps 48Mbps 54Mbps
pwr_table_11n = <18 18 18 18 18 16 14 14>; //MCS0 MCS1 MCS2 MCS3 MCS4 MCS5 MCS6 MCS7
pwr_offset = <10 10 10 10 10 10 10 10 10 10 10 10 10 10>;//due to the limit of current DTC, negative value is used. So we work around by adding all the poweroffset with 10. so 8 represents -2; 10 represents 0; 13 represents 3
};
rf_temp {
en_tcal = <0>;
linear_or_follow = <1>;
Tchannels = <2412 2427 2442 2457 2472>;
Tchannel_os = <180 168 163 160 157>;
Tchannel_os_low = <199 186 170 165 160>;
Troom_os = <255>;
//negative value is NOT supported. So we use '256' for 0, '255' for -1, '257' for 1,'511' for 256
};
};
bluetooth {
#address-cells = <1>;
#size-cells = <1>;
brd_rf {
pwr_table_ble = <13>; //range:0~15dbm
};
};
};

View File

@ -0,0 +1,348 @@
/dts-v1/;
/include/ "bl602_base.dtsi";
// version: 17
// last_comp_version: 16
// boot_cpuid_phys: 0x0
/ {
model = "bl bl602 IOT board";
compatible = "bl,bl602-sample", "bl,bl602-common";
#address-cells = <0x1>;
#size-cells = <0x1>;
gpio {
#address-cells = <1>;
#size-cells = <1>;
max_num = <40>;
gpio0 {
status = "okay";
pin = <5>;
feature = "led";
active = "Hi"; //Hi or Lo
mode = "blink"; //blink or hearbeat
time = <100>; //duration for this mode
};
gpio1 {
status = "disable";
pin = <6>;
feature = "led";
active = "Hi"; //Hi or Lo
mode = "blink"; //blink or hearbeat
time = <100>; //duration for this mode
};
gpio2 {
status = "okay";
pin = <2>;
feature = "button";
active = "Hi";
mode = "multipress";
button {
debounce = <10>;
short_press_ms {
start = <100>;
end = <3000>;
kevent = <2>;
};
long_press_ms {
start = <6000>;
end = <10000>;
kevent = <3>;
};
longlong_press_ms {
start = <15000>;
kevent = <4>;
};
trig_level = "Hi";
};
hbn_use = "disable";
};
};
i2s {
#address-cells = <1>;
#size-cells = <1>;
i2s@40017000 {
status = "okay";
compatible = "bl602_i2s";
reg = <0x40017000 0x100>;
mclk_only = "okay";
pin {
mclk = <11>;
};
};
i2s@40017100 {
status = "okay";
compatible = "bl602_i2s";
reg = <0x40017100 0x100>;
mclk_only = "disable";
pin {
bclk = <12>;
fs = <29>;
do = <30>;
di = <31>;
};
};
};
i2c {
#address-cells = <1>;
#size-cells = <1>;
i2c@40011000 {
status = "okay";
compatible = "bl602_i2c";
reg = <0x40011000 0x100>;
pin {
scl = <32>;
sda = <13>;
};
devices {
list_addr = <0x18 0x21>;
list_driver = "i2c_es8311", "i2c_gc0308>";
};
};
i2c@40011100 {
status = "disable";
compatible = "bl602_i2c";
reg = <0x40011100 0x100>;
pin {
/*empty here*/
};
};
};
timer {
#address-cells = <1>;
#size-cells = <1>;
timer@40014000 {
status = "disable";
compatible = "bl602_timer";
reg = <0x40014000 0x100>;
};
timer@40014100 {
status = "disable";
compatible = "bl602_timer";
reg = <0x40014100 0x100>;
};
};
pwm {
#address-cells = <1>;
#size-cells = <1>;
pwm@4000A420 {
status = "okay";
compatible = "bl602_pwm";
reg = <0x4000A420 0x20>;
path = "/dev/pwm0";
id = <0>;
pin = <0>;
freq = <800000>;
duty = <50>;
};
pwm@4000A440 {
status = "disable";
reg = <0x4000A440 0x20>;
path = "/dev/pwm1";
id = <1>;
pin = <1>;
freq = <5000>;
duty = <50>;
};
pwm@4000A460 {
status = "disable";
reg = <0x4000A460 0x20>;
path = "/dev/pwm2";
id = <2>;
pin = <2>;
freq = <5000>;
duty = <50>;
};
pwm@4000A480 {
status = "disable";
reg = <0x4000A480 0x20>;
path = "/dev/pwm3";
id = <3>;
pin = <3>;
freq = <5000>;
duty = <50>;
};
pwm@4000A4A0 {
status = "disable";
reg = <0x4000A4A0 0x20>;
path = "/dev/pwm4";
id = <4>;
pin = <4>;
freq = <5000>;
duty = <50>;
};
};
ir {
#address-cells = <1>;
#size-cells = <1>;
ctrltype = <0>;
tx {
status = "disable";
pin = <11>; // only support 11
mode = "NEC"; // NEC,ExtenedNEC,RC5,SWM
interval = <100>; // ms
active_mode = "Hi"; //Hi,Lo
};
rx {
status = "okay";
pin = <12>; // only support 12 13
mode = "NEC"; // NEC,ExtenedNEC,RC5,SWM
active_mode = "Hi"; //Hi,Lo
data_check = <2>; //bit 0:check cmd, bit 1:check addr
};
};
uart {
#address-cells = <1>;
#size-cells = <1>;
uart@4000A000 {
status = "okay";
id = <0>;
compatible = "bl602_uart";
path = "/dev/ttyS0";
baudrate = <2000000>;
pin {
rx = <7>;
tx = <16>;
};
buf_size {
rx_size = <512>;
tx_size = <512>;
};
feature {
tx = "okay";
rx = "okay";
cts = "disable";
rts = "disable";
};
};
uart@4000A100 {
status = "okay";
id = <1>;
compatible = "bl602_uart";
path = "/dev/ttyS1";
baudrate = <115200>;
pin {
rx = <3>;
tx = <4>;
};
buf_size {
rx_size = <512>;
tx_size = <512>;
};
feature {
tx = "okay";
rx = "okay";
cts = "disable";
rts = "disable";
};
};
};
spi {
#address-cells = <1>;
#size-cells = <1>;
spi@4000F000 {
status = "okay"; /* okay disable */
mode = "master";
reg = <0x4000F000 0x100>; /* 4KB */
path = "/dev/spi0";
port = <0>;
polar_phase = <1>; /* 0,1,2,3 */
freq = <6000000>;
pin {
clk = <3>;
cs = <2>;
mosi = <1>;
miso = <0>;
};
dma_cfg {
tx_dma_ch = <2>;
rx_dma_ch = <3>;
};
};
};
gpip {
#address-cells = <1>;
#size-cells = <1>;
adc_key {
status = "disable";
pin = <9>;
interrupt = <3>;
key_vol = <0 100 400 300 500>;
key_pcb = "SW1", "SW2", "SW3", "SW4","SW5";
key_event = "Usr1", "Usr2", "Start", "Up", "Down";
key_raw = <1 2 3 4 5>;
};
};
qspi {
#address-cells = <1>;
#size-cells = <1>;
qspi@4000A000 {
status = "disable";
reg = <0x4000A000 0x1000>;/* 4KB */
};
};
wifi {
#address-cells = <1>;
#size-cells = <1>;
region {
country_code = <86>;
};
mac {
mode = "MBF";
sta_mac_addr = [C8 43 57 82 73 40];
ap_mac_addr = [C8 43 57 82 73 02];
};
sta {
ssid = "yourssid";
pwd = "yourapssword";
auto_connect_enable = <0>;
};
ap {
ssid = "bl_test_005";
pwd = "12345678";
ap_channel = <11>;
auto_chan_detect = "disable";
};
brd_rf {
xtal_mode = "MF";
xtal = <36 36 0 60 60>;
/*
pwr_table = < 4 3 3 186
4 3 4 176
4 3 5 167
3 3 0 159
3 3 1 149
3 3 2 140
3 3 3 129
3 3 4 119
3 3 5 110
2 3 0 101
2 3 1 91
2 3 2 82
2 3 3 72
2 3 4 62
2 3 5 52
1 3 3 10>;
*/
pwr_mode = "bf";//B: only use power offset in EFUSE; b: use power offset in EFUSE with incremental mode; F: only use power offset in Flash; f: use power offset in Flash with incremental mode
pwr_table_11b = <20 20 20 18>;//1Mbps 2Mbps 5.5Mbps 11Mbps
pwr_table_11g = <18 18 18 18 18 18 14 14>; //6Mbps 9Mbps 12Mbps 18MBps 24Mbps 36Mbps 48Mbps 54Mbps
pwr_table_11n = <18 18 18 18 18 16 14 14>; //MCS0 MCS1 MCS2 MCS3 MCS4 MCS5 MCS6 MCS7
pwr_offset = <10 10 10 10 10 10 10 10 10 10 10 10 10 10>;//due to the limit of current DTC, negative value is used. So we work around by adding all the poweroffset with 10. so 8 represents -2; 10 represents 0; 13 represents 3
};
rf_temp {
en_tcal = <0>;
linear_or_follow = <1>;
Tchannels = <2412 2427 2442 2457 2472>;
Tchannel_os = <180 168 163 160 157>;
Tchannel_os_low = <199 186 170 165 160>;
Troom_os = <255>;
//negative value is NOT supported. So we use '256' for 0, '255' for -1, '257' for 1,'511' for 256
};
};
bluetooth {
#address-cells = <1>;
#size-cells = <1>;
brd_rf {
pwr_table_ble = <13>; //range:0~15dbm
};
};
};

View File

@ -0,0 +1,348 @@
/dts-v1/;
/include/ "bl602_base.dtsi";
// version: 17
// last_comp_version: 16
// boot_cpuid_phys: 0x0
/ {
model = "bl bl602 IOT board";
compatible = "bl,bl602-sample", "bl,bl602-common";
#address-cells = <0x1>;
#size-cells = <0x1>;
gpio {
#address-cells = <1>;
#size-cells = <1>;
max_num = <40>;
gpio0 {
status = "okay";
pin = <5>;
feature = "led";
active = "Hi"; //Hi or Lo
mode = "blink"; //blink or hearbeat
time = <100>; //duration for this mode
};
gpio1 {
status = "disable";
pin = <6>;
feature = "led";
active = "Hi"; //Hi or Lo
mode = "blink"; //blink or hearbeat
time = <100>; //duration for this mode
};
gpio2 {
status = "okay";
pin = <2>;
feature = "button";
active = "Hi";
mode = "multipress";
button {
debounce = <10>;
short_press_ms {
start = <100>;
end = <3000>;
kevent = <2>;
};
long_press_ms {
start = <6000>;
end = <10000>;
kevent = <3>;
};
longlong_press_ms {
start = <15000>;
kevent = <4>;
};
trig_level = "Hi";
};
hbn_use = "disable";
};
};
i2s {
#address-cells = <1>;
#size-cells = <1>;
i2s@40017000 {
status = "okay";
compatible = "bl602_i2s";
reg = <0x40017000 0x100>;
mclk_only = "okay";
pin {
mclk = <11>;
};
};
i2s@40017100 {
status = "okay";
compatible = "bl602_i2s";
reg = <0x40017100 0x100>;
mclk_only = "disable";
pin {
bclk = <12>;
fs = <29>;
do = <30>;
di = <31>;
};
};
};
i2c {
#address-cells = <1>;
#size-cells = <1>;
i2c@40011000 {
status = "okay";
compatible = "bl602_i2c";
reg = <0x40011000 0x100>;
pin {
scl = <32>;
sda = <13>;
};
devices {
list_addr = <0x18 0x21>;
list_driver = "i2c_es8311", "i2c_gc0308>";
};
};
i2c@40011100 {
status = "disable";
compatible = "bl602_i2c";
reg = <0x40011100 0x100>;
pin {
/*empty here*/
};
};
};
timer {
#address-cells = <1>;
#size-cells = <1>;
timer@40014000 {
status = "disable";
compatible = "bl602_timer";
reg = <0x40014000 0x100>;
};
timer@40014100 {
status = "disable";
compatible = "bl602_timer";
reg = <0x40014100 0x100>;
};
};
pwm {
#address-cells = <1>;
#size-cells = <1>;
pwm@4000A420 {
status = "okay";
compatible = "bl602_pwm";
reg = <0x4000A420 0x20>;
path = "/dev/pwm0";
id = <0>;
pin = <0>;
freq = <800000>;
duty = <50>;
};
pwm@4000A440 {
status = "disable";
reg = <0x4000A440 0x20>;
path = "/dev/pwm1";
id = <1>;
pin = <1>;
freq = <5000>;
duty = <50>;
};
pwm@4000A460 {
status = "disable";
reg = <0x4000A460 0x20>;
path = "/dev/pwm2";
id = <2>;
pin = <2>;
freq = <5000>;
duty = <50>;
};
pwm@4000A480 {
status = "disable";
reg = <0x4000A480 0x20>;
path = "/dev/pwm3";
id = <3>;
pin = <3>;
freq = <5000>;
duty = <50>;
};
pwm@4000A4A0 {
status = "disable";
reg = <0x4000A4A0 0x20>;
path = "/dev/pwm4";
id = <4>;
pin = <4>;
freq = <5000>;
duty = <50>;
};
};
ir {
#address-cells = <1>;
#size-cells = <1>;
ctrltype = <0>;
tx {
status = "disable";
pin = <11>; // only support 11
mode = "NEC"; // NEC,ExtenedNEC,RC5,SWM
interval = <100>; // ms
active_mode = "Hi"; //Hi,Lo
};
rx {
status = "okay";
pin = <12>; // only support 12 13
mode = "NEC"; // NEC,ExtenedNEC,RC5,SWM
active_mode = "Hi"; //Hi,Lo
data_check = <2>; //bit 0:check cmd, bit 1:check addr
};
};
uart {
#address-cells = <1>;
#size-cells = <1>;
uart@4000A000 {
status = "okay";
id = <0>;
compatible = "bl602_uart";
path = "/dev/ttyS0";
baudrate = <2000000>;
pin {
rx = <7>;
tx = <16>;
};
buf_size {
rx_size = <512>;
tx_size = <512>;
};
feature {
tx = "okay";
rx = "okay";
cts = "disable";
rts = "disable";
};
};
uart@4000A100 {
status = "okay";
id = <1>;
compatible = "bl602_uart";
path = "/dev/ttyS1";
baudrate = <115200>;
pin {
rx = <3>;
tx = <4>;
};
buf_size {
rx_size = <512>;
tx_size = <512>;
};
feature {
tx = "okay";
rx = "okay";
cts = "disable";
rts = "disable";
};
};
};
spi {
#address-cells = <1>;
#size-cells = <1>;
spi@4000F000 {
status = "okay"; /* okay disable */
mode = "master";
reg = <0x4000F000 0x100>; /* 4KB */
path = "/dev/spi0";
port = <0>;
polar_phase = <1>; /* 0,1,2,3 */
freq = <6000000>;
pin {
clk = <3>;
cs = <2>;
mosi = <1>;
miso = <0>;
};
dma_cfg {
tx_dma_ch = <2>;
rx_dma_ch = <3>;
};
};
};
gpip {
#address-cells = <1>;
#size-cells = <1>;
adc_key {
status = "disable";
pin = <9>;
interrupt = <3>;
key_vol = <0 100 400 300 500>;
key_pcb = "SW1", "SW2", "SW3", "SW4","SW5";
key_event = "Usr1", "Usr2", "Start", "Up", "Down";
key_raw = <1 2 3 4 5>;
};
};
qspi {
#address-cells = <1>;
#size-cells = <1>;
qspi@4000A000 {
status = "disable";
reg = <0x4000A000 0x1000>;/* 4KB */
};
};
wifi {
#address-cells = <1>;
#size-cells = <1>;
region {
country_code = <86>;
};
mac {
mode = "MBF";
sta_mac_addr = [C8 43 57 82 73 40];
ap_mac_addr = [C8 43 57 82 73 02];
};
sta {
ssid = "yourssid";
pwd = "yourapssword";
auto_connect_enable = <0>;
};
ap {
ssid = "bl_test_005";
pwd = "12345678";
ap_channel = <11>;
auto_chan_detect = "disable";
};
brd_rf {
xtal_mode = "MF";
xtal = <36 36 0 60 60>;
/*
pwr_table = < 4 3 3 186
4 3 4 176
4 3 5 167
3 3 0 159
3 3 1 149
3 3 2 140
3 3 3 129
3 3 4 119
3 3 5 110
2 3 0 101
2 3 1 91
2 3 2 82
2 3 3 72
2 3 4 62
2 3 5 52
1 3 3 10>;
*/
pwr_mode = "bf";//B: only use power offset in EFUSE; b: use power offset in EFUSE with incremental mode; F: only use power offset in Flash; f: use power offset in Flash with incremental mode
pwr_table_11b = <20 20 20 18>;//1Mbps 2Mbps 5.5Mbps 11Mbps
pwr_table_11g = <18 18 18 18 18 18 14 14>; //6Mbps 9Mbps 12Mbps 18MBps 24Mbps 36Mbps 48Mbps 54Mbps
pwr_table_11n = <18 18 18 18 18 16 14 14>; //MCS0 MCS1 MCS2 MCS3 MCS4 MCS5 MCS6 MCS7
pwr_offset = <10 10 10 10 10 10 10 10 10 10 10 10 10 10>;//due to the limit of current DTC, negative value is used. So we work around by adding all the poweroffset with 10. so 8 represents -2; 10 represents 0; 13 represents 3
};
rf_temp {
en_tcal = <0>;
linear_or_follow = <1>;
Tchannels = <2412 2427 2442 2457 2472>;
Tchannel_os = <180 168 163 160 157>;
Tchannel_os_low = <199 186 170 165 160>;
Troom_os = <255>;
//negative value is NOT supported. So we use '256' for 0, '255' for -1, '257' for 1,'511' for 256
};
};
bluetooth {
#address-cells = <1>;
#size-cells = <1>;
brd_rf {
pwr_table_ble = <13>; //range:0~15dbm
};
};
};

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,62 @@
[LOAD_CFG]
#jlink or uart
interface = uart
device = COM1
speed_uart_boot = 500000
speed_uart_load = 500000
speed_jlink = 2000
#cklink usb vid|pid
cklink_vidpid = 42bf|b210
cklink_type = CKLink_Lite_Vendor-rog
#eg: rv_dbg_plus, ft2232hl, ft2232d
openocd_config = rv_dbg_plus
#0:without load, 1:eflash_loader load
load_function = 1
auto_burn = false
do_reset = true
#reset retry+reset hold time
reset_hold_time = 5
shake_hand_delay = 100
reset_revert = false
#cutoff revert+cutoff time
cutoff_time = 100
shake_hand_retry = 2
flash_burn_retry = 1
checksum_err_retry = 3
#1:24M, 2:32M, 3:38.4M, 4:40M, 5:26M, 6:RC32M
#xtal_type = 4
erase_time_out = 15000
#chiptype=602
eflash_loader_file = chips/bl602/eflash_loader/eflash_loader_40m.bin
check_mac = true
#0:no erase,1:programmed section erase,2:chip erase
erase = 1
# switch eflash_loader command log save
local_log = false
#0:verify by calculating SHA256(xip), >0:read back verify and verify by calculating SHA256(sbus)
verify = 0
tx_size = 2056
cpu_reset_after_load = false
boot2_isp_mode = 0
isp_mode_speed = 2000000
isp_shakehand_timeout = 0
[FLASH_CFG]
flash_id = ef4015
flash_clock_cfg = 1
#0:NIO, 1:DO, 2:QO, 3:DIO, 4:QIO
flash_io_mode = 1
#empty: auto,0: internal flash with io switch,1: internal flash no io switch,2: GPIO 17-22,3: GPIO 0-2&20-22
flash_pin = ""
#empty for auto, otherwise specified para file path: eg: chips/bl602/efuse_bootheader/flash_para.bin
flash_para = chips/bl602/efuse_bootheader/flash_para.bin
decompress_write = true
file = chips/bl602/img_create/bootinfo_boot2.bin chips/bl602/img_create/img_boot2.bin chips/bl602/partition/partition.bin chips/bl602/partition/partition.bin
address = 00000000 00002000 e000 f000
[EFUSE_CFG]
burn_en = true
factory_mode = false
security_write = false
file = ../../../Tools/img_tools/efuse_bootheader/efusedata.bin
maskfile = ../../../Tools/img_tools/efuse_bootheader/efusedata_mask.bin

View File

@ -0,0 +1,196 @@
[EFUSE_CFG]
########################################################################
#2bits
ef_sf_aes_mode = 0
#2bits
ef_sboot_sign_mode = 0
#2bits
ef_sboot_en = 0
#2bits
ef_dbg_jtag_dis = 0
#4bits
ef_dbg_mode = 0
#32bits
ef_dbg_pwd_low = 0
#32bits
ef_dbg_pwd_high = 0
#2bits
flash_pwr_delay = 0
###################################################################
ef_key_slot_2_w0 = 0
ef_key_slot_2_w1 = 0
ef_key_slot_2_w2 = 0
ef_key_slot_2_w3 = 0
ef_key_slot_3_w0 = 0
ef_key_slot_3_w1 = 0
ef_key_slot_3_w2 = 0
ef_key_slot_3_w3 = 0
ef_key_slot_4_w0 = 0
ef_key_slot_4_w1 = 0
ef_key_slot_4_w2 = 0
ef_key_slot_4_w3 = 0
wr_lock_key_slot_4_l = 0
wr_lock_dbg_pwd = 0
wr_lock_key_slot_2 = 0
wr_lock_key_slot_3 = 0
wr_lock_key_slot_4_h = 0
rd_lock_dbg_pwd = 0
rd_lock_key_slot_2 = 0
rd_lock_key_slot_3 = 0
rd_lock_key_slot_4 = 0
[BOOTHEADER_CFG]
magic_code = 0x504e4642
revision = 0x01
#########################flash cfg#############################
flashcfg_magic_code = 0x47464346
#flashcfg_magic_code=0
io_mode = 0x10
cont_read_support = 0
#0.5T sfctrl_clk_delay=0 sfctrl_clk_invert=3
#1 T sfctrl_clk_delay=1 sfctrl_clk_invert=1
#1.5T sfctrl_clk_delay=1 sfctrl_clk_invert=3
sfctrl_clk_delay = 1
sfctrl_clk_invert = 0x01
reset_en_cmd = 0x66
reset_cmd = 0x99
exit_contread_cmd = 0xff
exit_contread_cmd_size = 3
jedecid_cmd = 0x9f
jedecid_cmd_dmy_clk = 0
qpi_jedecid_cmd = 0x9f
qpi_jedecid_dmy_clk = 0
sector_size = 4
mfg_id = 0xff
page_size = 256
chip_erase_cmd = 0xc7
sector_erase_cmd = 0x20
blk32k_erase_cmd = 0x52
blk64k_erase_cmd = 0xd8
write_enable_cmd = 0x06
page_prog_cmd = 0x02
qpage_prog_cmd = 0x32
qual_page_prog_addr_mode = 0
fast_read_cmd = 0x0b
fast_read_dmy_clk = 1
qpi_fast_read_cmd = 0x0b
qpi_fast_read_dmy_clk = 1
fast_read_do_cmd = 0x3b
fast_read_do_dmy_clk = 1
fast_read_dio_cmd = 0xbb
fast_read_dio_dmy_clk = 0
fast_read_qo_cmd = 0x6b
fast_read_qo_dmy_clk = 1
fast_read_qio_cmd = 0xeb
fast_read_qio_dmy_clk = 2
qpi_fast_read_qio_cmd = 0xeb
qpi_fast_read_qio_dmy_clk = 2
qpi_page_prog_cmd = 0x02
write_vreg_enable_cmd = 0x50
wel_reg_index = 0
qe_reg_index = 1
busy_reg_index = 0
wel_bit_pos = 1
qe_bit_pos = 1
busy_bit_pos = 0
wel_reg_write_len = 2
wel_reg_read_len = 1
qe_reg_write_len = 2
qe_reg_read_len = 1
release_power_down = 0xab
busy_reg_read_len = 1
reg_read_cmd0 = 0x05
reg_read_cmd1 = 0x35
reg_write_cmd0 = 0x01
reg_write_cmd1 = 0x01
enter_qpi_cmd = 0x38
exit_qpi_cmd = 0xff
cont_read_code = 0xa0
cont_read_exit_code = 0xff
burst_wrap_cmd = 0x77
burst_wrap_dmy_clk = 0x03
burst_wrap_data_mode = 2
burst_wrap_code = 0x40
de_burst_wrap_cmd = 0x77
de_burst_wrap_cmd_dmy_clk = 0x03
de_burst_wrap_code_mode = 2
de_burst_wrap_code = 0xF0
sector_erase_time = 300
blk32k_erase_time = 1200
blk64k_erase_time = 1200
page_prog_time = 5
chip_erase_time = 200000
power_down_delay = 20
qe_data = 0
flashcfg_crc32 = 0
#########################clk cfg####################################
clkcfg_magic_code = 0x47464350
#clkcfg_magic_code=0
#0:Not use XTAL to set PLL,1:XTAL is 24M ,2:XTAL is 32M ,3:XTAL is 38.4M
#4:XTAL is 40M,5:XTAL is 26M,6:XTAL is RC32M
xtal_type = 4
#0:RC32M,1:XTAL,2:PLL 48M,3:PLL 120M,4:PLL 160M,5:PLL 192M
pll_clk = 4
hclk_div = 0
bclk_div = 1
#0:120M,1:XCLK(RC32M or XTAL),2:48M,3:80M,4:BCLK,5:96M
flash_clk_type = 3
flash_clk_div = 1
clkcfg_crc32 = 0
########################boot cfg####################################
#1:ECC
sign = 0
#1:AES128,2:AES256,3:AES192
encrypt_type = 0
key_sel = 0
no_segment = 1
cache_enable = 1
notload_in_bootrom = 0
aes_region_lock = 0
cache_way_disable = 0x03
crc_ignore = 0
hash_ignore = 0
########################image cfg####################################
#total image len or segment count
img_len = 0x100
bootentry = 0
#img RAM address or flash offset
img_start = 0x2000
#img hash
hash_0 = 0xdeadbeef
hash_1 = 0
hash_2 = 0
hash_3 = 0
hash_4 = 0
hash_5 = 0
hash_6 = 0
hash_7 = 0
crc32 = 0xdeadbeef

View File

@ -0,0 +1,15 @@
[Img_Cfg]
boot_header_file =
efuse_file =
efuse_mask_file =
encrypt_key_org = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
aesiv_file = img_create/aesiv_cpu0.bin
publickey_file = img_create/publickey_uecc.pem
privatekey_file_uecc = img_create/privatekey_uecc.pem
segheader_file = img_create/segheader.bin
segdata_file =
bootinfo_file =
img_file =
whole_img_file =
aes_key_org = 00000000000000000000000000000000
aes_iv = 00000000000000000000000000000000

View File

@ -0,0 +1,15 @@
[Img_Cfg]
boot_header_file =
efuse_file =
efuse_mask_file =
encrypt_key_org = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
aesiv_file = img_create/aesiv.bin
publickey_file = img_create/publickey_uecc.pem
privatekey_file_uecc = img_create/privatekey_uecc.pem
segheader_file = img_create/segheader.bin
segdata_file =
bootinfo_file =
img_file =
whole_img_file =
aes_key_org = 11
aes_iv = 11

View File

@ -0,0 +1,13 @@
[Img_Cfg]
boot_header_file = ./efuse_bootheader/bootheader.bin
efuse_file = ./efuse_bootheader/efusedata.bin
efuse_mask_file = ./efuse_bootheader/efusedata_mask.bin
encrypt_key_org = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
aesiv_file = ./img_create/aesiv.bin
publickey_file = ./img_create/publickey_uecc.pem
privatekey_file_uecc = ./img_create/privatekey_uecc.pem
segheader_file = ./img_create/segheader.bin
segdata_file =
bootinfo_file = ./img_create/bootinfo_mfg.bin
img_file = ./img_create/img_mfg.bin
whole_img_file = ./img_create/wholeimg_mfg_if.bin

View File

@ -0,0 +1,15 @@
[Img_Cfg]
boot_header_file =
efuse_file =
efuse_mask_file =
encrypt_key_org = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
aesiv_file = img_create/aesiv_cpu0.bin
publickey_file = img_create/publickey_uecc.pem
privatekey_file_uecc = img_create/privatekey_uecc.pem
segheader_file = img_create/segheader.bin
segdata_file =
bootinfo_file =
img_file =
whole_img_file =
aes_key_org = 00000000000000000000000000000000
aes_iv = 00000000000000000000000000000000

View File

@ -0,0 +1,15 @@
[Img_Cfg]
boot_header_file =
efuse_file =
efuse_mask_file =
encrypt_key_org = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
aesiv_file = img_create/aesiv.bin
publickey_file = img_create/publickey_uecc.pem
privatekey_file_uecc = img_create/privatekey_uecc.pem
segheader_file = img_create/segheader.bin
segdata_file =
bootinfo_file =
img_file =
whole_img_file =
aes_key_org = 11
aes_iv = 11

View File

@ -0,0 +1,13 @@
[Img_Cfg]
boot_header_file = ./efuse_bootheader/bootheader.bin
efuse_file = ./efuse_bootheader/efusedata.bin
efuse_mask_file = ./efuse_bootheader/efusedata_mask.bin
encrypt_key_org = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
aesiv_file = ./img_create/aesiv.bin
publickey_file = ./img_create/publickey_uecc.pem
privatekey_file_uecc = ./img_create/privatekey_uecc.pem
segheader_file = ./img_create/segheader.bin
segdata_file =
bootinfo_file = ./img_create/bootinfo_mfg.bin
img_file = ./img_create/img_mfg.bin
whole_img_file = ./img_create/wholeimg_mfg_if.bin

View File

@ -0,0 +1,60 @@
[pt_table]
#partition table is 4K in size
address0 = 0xE000
address1 = 0xF000
[[pt_entry]]
type = 0
name = "FW"
device = 0
address0 = 0x010000
size0 = 0xE7000
address1 = 0x000
size1 = 0x000
# compressed image must set len,normal image can left it to 0
len = 0
[[pt_entry]]
type = 3
name = "media"
device = 0
address0 = 0x0F7000
size0 = 0x2000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
[[pt_entry]]
type = 4
name = "PSM"
device = 0
address0 = 0x0F9000
size0 = 0x2000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
[[pt_entry]]
type = 7
name = "factory"
device = 0
address0 = 0x0FB000
size0 = 0x4000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
#if user want to put RF calibration data on flash, uncomment following pt entry
#[[pt_entry]]
#type = 8
#name = "rf_para"
#device = 0
#address0 = 0x1FF000
#size0 = 0x1000
#address1 = 0
#size1 = 0
## compressed image must set len,normal image can left it to 0
#len = 0

View File

@ -0,0 +1,94 @@
[pt_table]
#partition table is 4K in size
address0 = 0xE000
address1 = 0xF000
[[pt_entry]]
type = 0
name = "FW"
device = 0
address0 = 0x010000
size0 = 0x96000
address1 = 0xA6000
size1 = 0x50000
# compressed image must set len,normal image can left it to 0
len = 0
[[pt_entry]]
type = 2
name = "mfg"
device = 0
address0 = 0x000
size0 = 0x000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
[[pt_entry]]
type = 3
name = "media"
device = 0
address0 = 0x0F6000
size0 = 0x2000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
[[pt_entry]]
type = 4
name = "PSM"
device = 0
address0 = 0x0F8000
size0 = 0x4000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
[[pt_entry]]
type = 5
name = "KEY"
device = 0
address0 = 0x0000
size0 = 0x000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
[[pt_entry]]
type = 6
name = "DATA"
device = 0
address0 = 0x0000
size0 = 0x000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
[[pt_entry]]
type = 7
name = "factory"
device = 0
address0 = 0x0FC000
size0 = 0x4000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
#if user want to put RF calibration data on flash, uncomment following pt entry
#[[pt_entry]]
#type = 8
#name = "rf_para"
#device = 0
#address0 = 0x1FF000
#size0 = 0x1000
#address1 = 0
#size1 = 0
## compressed image must set len,normal image can left it to 0
#len = 0

View File

@ -0,0 +1,94 @@
[pt_table]
#partition table is 4K in size
address0 = 0xE000
address1 = 0xF000
[[pt_entry]]
type = 0
name = "FW"
device = 0
address0 = 0x10000
size0 = 0xD8000
address1 = 0xE8000
size1 = 0x88000
# compressed image must set len,normal image can left it to 0
len = 0
[[pt_entry]]
type = 2
name = "mfg"
device = 0
address0 = 0x170000
size0 = 0x32000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
[[pt_entry]]
type = 3
name = "media"
device = 0
address0 = 0x1A2000
size0 = 0x47000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
[[pt_entry]]
type = 4
name = "PSM"
device = 0
address0 = 0x1E9000
size0 = 0x8000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
[[pt_entry]]
type = 5
name = "KEY"
device = 0
address0 = 0x1F1000
size0 = 0x2000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
[[pt_entry]]
type = 6
name = "DATA"
device = 0
address0 = 0x1F3000
size0 = 0x5000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
[[pt_entry]]
type = 7
name = "factory"
device = 0
address0 = 0x1F8000
size0 = 0x7000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
#if user want to put RF calibration data on flash, uncomment following pt entry
#[[pt_entry]]
#type = 8
#name = "rf_para"
#device = 0
#address0 = 0x1FF000
#size0 = 0x1000
#address1 = 0
#size1 = 0
## compressed image must set len,normal image can left it to 0
#len = 0

View File

@ -0,0 +1,94 @@
[pt_table]
#partition table is 4K in size
address0 = 0xE000
address1 = 0xF000
[[pt_entry]]
type = 0
name = "FW"
device = 0
address0 = 0x10000
size0 = 0x130000
address1 = 0x140000
size1 = 0x100000
# compressed image must set len,normal image can left it to 0
len = 0
[[pt_entry]]
type = 2
name = "mfg"
device = 0
address0 = 0x240000
size0 = 0x32000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
[[pt_entry]]
type = 3
name = "media"
device = 0
address0 = 0x272000
size0 = 0x1000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
[[pt_entry]]
type = 4
name = "PSM"
device = 0
address0 = 0x273000
size0 = 0x33000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
[[pt_entry]]
type = 5
name = "KEY"
device = 0
address0 = 0x2A6000
size0 = 0x2000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
[[pt_entry]]
type = 6
name = "DATA"
device = 0
address0 = 0x2A8000
size0 = 0x5000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
[[pt_entry]]
type = 7
name = "factory"
device = 0
address0 = 0x2AD000
size0 = 0x7000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
#if user want to put RF calibration data on flash, uncomment following pt entry
#[[pt_entry]]
#type = 8
#name = "rf_para"
#device = 0
#address0 = 0x1FF000
#size0 = 0x1000
#address1 = 0
#size1 = 0
## compressed image must set len,normal image can left it to 0
#len = 0

View File

@ -0,0 +1,6 @@
[ota]
#max length of version_hardware is 15 bytes
version_hardware = "BFL_Module_v1.1"
#max length of version_software is 15 bytes
version_software = "EVENT_V1.1.1"
version_header = "BL60X_OTA_Ver1.0"

View File

@ -0,0 +1,349 @@
/dts-v1/;
/include/ "bl602_base.dtsi";
// version: 17
// last_comp_version: 16
// boot_cpuid_phys: 0x0
/ {
model = "bl bl602 IOT board";
compatible = "bl,bl602-sample", "bl,bl602-common";
#address-cells = <0x1>;
#size-cells = <0x1>;
gpio {
#address-cells = <1>;
#size-cells = <1>;
max_num = <40>;
gpio0 {
status = "okay";
pin = <5>;
feature = "led";
active = "Hi"; //Hi or Lo
mode = "blink"; //blink or hearbeat
time = <100>; //duration for this mode
};
gpio1 {
status = "disable";
pin = <6>;
feature = "led";
active = "Hi"; //Hi or Lo
mode = "blink"; //blink or hearbeat
time = <100>; //duration for this mode
};
gpio2 {
status = "okay";
pin = <2>;
feature = "button";
active = "Hi";
mode = "multipress";
button {
debounce = <10>;
short_press_ms {
start = <100>;
end = <3000>;
kevent = <2>;
};
long_press_ms {
start = <6000>;
end = <10000>;
kevent = <3>;
};
longlong_press_ms {
start = <15000>;
kevent = <4>;
};
trig_level = "Hi";
};
hbn_use = "disable";
};
};
i2s {
#address-cells = <1>;
#size-cells = <1>;
i2s@40017000 {
status = "okay";
compatible = "bl602_i2s";
reg = <0x40017000 0x100>;
mclk_only = "okay";
pin {
mclk = <11>;
};
};
i2s@40017100 {
status = "okay";
compatible = "bl602_i2s";
reg = <0x40017100 0x100>;
mclk_only = "disable";
pin {
bclk = <12>;
fs = <29>;
do = <30>;
di = <31>;
};
};
};
i2c {
#address-cells = <1>;
#size-cells = <1>;
i2c@40011000 {
status = "okay";
compatible = "bl602_i2c";
reg = <0x40011000 0x100>;
pin {
scl = <32>;
sda = <13>;
};
devices {
list_addr = <0x18 0x21>;
list_driver = "i2c_es8311", "i2c_gc0308>";
};
};
i2c@40011100 {
status = "disable";
compatible = "bl602_i2c";
reg = <0x40011100 0x100>;
pin {
/*empty here*/
};
};
};
timer {
#address-cells = <1>;
#size-cells = <1>;
timer@40014000 {
status = "disable";
compatible = "bl602_timer";
reg = <0x40014000 0x100>;
};
timer@40014100 {
status = "disable";
compatible = "bl602_timer";
reg = <0x40014100 0x100>;
};
};
pwm {
#address-cells = <1>;
#size-cells = <1>;
pwm@4000A420 {
status = "okay";
compatible = "bl602_pwm";
reg = <0x4000A420 0x20>;
path = "/dev/pwm0";
id = <0>;
pin = <0>;
freq = <800000>;
duty = <50>;
};
pwm@4000A440 {
status = "disable";
reg = <0x4000A440 0x20>;
path = "/dev/pwm1";
id = <1>;
pin = <1>;
freq = <5000>;
duty = <50>;
};
pwm@4000A460 {
status = "disable";
reg = <0x4000A460 0x20>;
path = "/dev/pwm2";
id = <2>;
pin = <2>;
freq = <5000>;
duty = <50>;
};
pwm@4000A480 {
status = "disable";
reg = <0x4000A480 0x20>;
path = "/dev/pwm3";
id = <3>;
pin = <3>;
freq = <5000>;
duty = <50>;
};
pwm@4000A4A0 {
status = "disable";
reg = <0x4000A4A0 0x20>;
path = "/dev/pwm4";
id = <4>;
pin = <4>;
freq = <5000>;
duty = <50>;
};
};
ir {
#address-cells = <1>;
#size-cells = <1>;
ctrltype = <0>;
tx {
status = "disable";
pin = <11>; // only support 11
mode = "NEC"; // NEC,ExtenedNEC,RC5,SWM
interval = <100>; // ms
active_mode = "Hi"; //Hi,Lo
};
rx {
status = "okay";
pin = <12>; // only support 12 13
mode = "NEC"; // NEC,ExtenedNEC,RC5,SWM
active_mode = "Hi"; //Hi,Lo
data_check = <2>; //bit 0:check cmd, bit 1:check addr
};
};
uart {
#address-cells = <1>;
#size-cells = <1>;
uart@4000A000 {
status = "okay";
id = <0>;
compatible = "bl602_uart";
path = "/dev/ttyS0";
baudrate = <2000000>;
pin {
rx = <7>;
tx = <16>;
};
buf_size {
rx_size = <512>;
tx_size = <512>;
};
feature {
tx = "okay";
rx = "okay";
cts = "disable";
rts = "disable";
};
};
uart@4000A100 {
status = "okay";
id = <1>;
compatible = "bl602_uart";
path = "/dev/ttyS1";
baudrate = <115200>;
pin {
rx = <3>;
tx = <4>;
};
buf_size {
rx_size = <512>;
tx_size = <512>;
};
feature {
tx = "okay";
rx = "okay";
cts = "disable";
rts = "disable";
};
};
};
spi {
#address-cells = <1>;
#size-cells = <1>;
spi@4000F000 {
status = "okay"; /* okay disable */
mode = "master";
reg = <0x4000F000 0x100>; /* 4KB */
path = "/dev/spi0";
port = <0>;
polar_phase = <1>; /* 0,1,2,3 */
freq = <6000000>;
pin {
clk = <3>;
cs = <2>;
mosi = <1>;
miso = <0>;
};
dma_cfg {
tx_dma_ch = <2>;
rx_dma_ch = <3>;
};
};
};
gpip {
#address-cells = <1>;
#size-cells = <1>;
adc_key {
status = "disable";
pin = <9>;
interrupt = <3>;
key_vol = <0 100 400 300 500>;
key_pcb = "SW1", "SW2", "SW3", "SW4","SW5";
key_event = "Usr1", "Usr2", "Start", "Up", "Down";
key_raw = <1 2 3 4 5>;
};
};
qspi {
#address-cells = <1>;
#size-cells = <1>;
qspi@4000A000 {
status = "disable";
reg = <0x4000A000 0x1000>;/* 4KB */
};
};
wifi {
#address-cells = <1>;
#size-cells = <1>;
region {
country_code = <86>;
};
mac {
mode = "MBF";
sta_mac_addr = [C8 43 57 82 73 40];
ap_mac_addr = [C8 43 57 82 73 02];
};
sta {
ssid = "yourssid";
pwd = "yourapssword";
auto_connect_enable = <0>;
};
ap {
ssid = "bl_test_005";
pwd = "12345678";
ap_channel = <11>;
auto_chan_detect = "disable";
};
brd_rf {
xtal_mode = "MF";
xtal = <36 36 0 60 60>;
/*
pwr_table = < 4 3 3 186
4 3 4 176
4 3 5 167
3 3 0 159
3 3 1 149
3 3 2 140
3 3 3 129
3 3 4 119
3 3 5 110
2 3 0 101
2 3 1 91
2 3 2 82
2 3 3 72
2 3 4 62
2 3 5 52
1 3 3 10>;
*/
pwr_mode = "bf";//B: only use power offset in EFUSE; b: use power offset in EFUSE with incremental mode; F: only use power offset in Flash; f: use power offset in Flash with incremental mode
pwr_table_11b = <20 20 20 18>;//1Mbps 2Mbps 5.5Mbps 11Mbps
pwr_table_11g = <18 18 18 18 18 18 14 14>; //6Mbps 9Mbps 12Mbps 18MBps 24Mbps 36Mbps 48Mbps 54Mbps
pwr_table_11n = <18 18 18 18 18 16 14 14>; //MCS0 MCS1 MCS2 MCS3 MCS4 MCS5 MCS6 MCS7
pwr_offset = <16 16 16 16 16 16 16 16 16 16 16 16 16 16>;//due to the limit of current DTC, negative value is used. So we work around by adding all the poweroffset with 16.
//so 14 represents -0.5dBm; 16 represents 0dBm; 20 represents 1dBm;(step is 0.25dBm)
};
rf_temp {
en_tcal = <0>;
linear_or_follow = <1>;
Tchannels = <2412 2427 2442 2457 2472>;
Tchannel_os = <180 168 163 160 157>;
Tchannel_os_low = <199 186 170 165 160>;
Troom_os = <255>;
//negative value is NOT supported. So we use '256' for 0, '255' for -1, '257' for 1,'511' for 256
};
};
bluetooth {
#address-cells = <1>;
#size-cells = <1>;
brd_rf {
pwr_table_ble = <13>; //range:0~15dbm
};
};
};

View File

@ -0,0 +1,66 @@
[LOAD_CFG]
#jlink or uart
interface = uart
device = COM1
speed_uart_boot = 500000
speed_uart_load = 2000000
#cklink usb vid|pid
cklink_vidpid = 42bf|b210
cklink_type = CKLink_Lite_Vendor-rog
#eg: rv_dbg_plus, ft2232hl, ft2232d
openocd_config = rv_dbg_plus
auto_burn = false
speed_jlink = 1000
#0:without load, 1:eflash_loader load, 2: bootrom load
load_function = 2
do_reset = true
#reset retry+hold time
reset_hold_time = 50
shake_hand_delay = 100
reset_revert = false
cutoff_time = 50
shake_hand_retry = 3
flash_burn_retry = 1
checksum_err_retry = 3
erase_time_out = 100000
#chiptype=bl606p
check_mac = true
#0:no erase,1:programmed section erase,2:chip erase
erase = 1
# switch eflash_loader command log save
local_log = false
#0:verify by calculating SHA256(xip), >0:read back verify and verify by calculating SHA256(sbus)
verify = 0
tx_size = 4104
cpu_reset_after_load = false
#empty for auto, otherwise specified clock para file path: eg: chips/bl606p/efuse_bootheader/clock_para.bin
clock_para = chips/bl606p/efuse_bootheader/clock_para.bin
boot2_isp_mode = 0
isp_mode_speed = 2000000
isp_shakehand_timeout = 0
[FLASH_CFG]
flash_id = ef4016
#bit 7-4 flash_clock_type: 0:120M wifipll, 1:xtal, 2:128M cpupll, 3:80M wifipll, 4:bclk, 5:96M wifipll
#bit 3-0 flash_clock_div
flash_clock_cfg = 0x41
#0:0.5T delay, 1:1T delay, 2:1.5T delay, 3:2T delay
flash_clock_delay = 0
#0:NIO, 1:DO, 2:QO, 3:DIO, 4:QIO
flash_io_mode = 1
#flash_pin value:
#bit 7 flash pin autoscan
#bit 6-0 flash pin cfg: 0: internal swap io0 with io3, 2: internal no swap io0 with io3, 4: external gpi34-39,
flash_pin = 0x80
#empty for auto, otherwise specified flash para file path: eg: chips/bl606p/efuse_bootheader/flash_para.bin
flash_para = chips/bl606p/efuse_bootheader/flash_para.bin
decompress_write = false
file = chips/bl606p/img_create2/whole_img.bin
address = 00000000
[EFUSE_CFG]
burn_en = true
factory_mode = false
security_write = false
file = ../../../Tools/img_tools/efuse_bootheader/efusedata.bin
maskfile = ../../../Tools/img_tools/efuse_bootheader/efusedata_mask.bin

View File

@ -0,0 +1,519 @@
[EFUSE_CFG]
########################################################################
ef_sf_aes_mode=0
ef_no_xtal=0
ef_force_no_trim=0
ef_sf_key_re_sel=0
ef_dbg_jtag_0_dis=0
###################################################################
ef_dbg_pwd_low=0
ef_dbg_pwd_high=0
ef_dbg_pwd2_low=0
ef_dbg_pwd2_high=0
ef_wifi_mac_low=0
ef_wifi_mac_high=0
ef_key_slot_0_w0=0
ef_key_slot_0_w1=0
ef_key_slot_0_w2=0
ef_key_slot_0_w3=0
ef_key_slot_1_w0=0
ef_key_slot_1_w1=0
ef_key_slot_1_w2=0
ef_key_slot_1_w3=0
ef_key_slot_2_w0=0
ef_key_slot_2_w1=0
ef_key_slot_2_w2=0
ef_key_slot_2_w3=0
ef_key_slot_3_w0=0
ef_key_slot_3_w1=0
ef_key_slot_3_w2=0
ef_key_slot_3_w3=0
##########################################
ef_sw_usage_0=0
ef_sw_usage_1=0
ef_sw_usage_2=0
ef_sw_usage_3=0
ef_key_slot_11_w0=0
ef_key_slot_11_w1=0
ef_key_slot_11_w2=0
ef_key_slot_11_w3=0
###################################################################
ef_sec_lifecycle=0
wr_lock_rsvd_0=0
wr_lock_boot_mode=0
wr_lock_dbg_pwd=0
wr_lock_wifi_mac=0
wr_lock_key_slot_0=0
wr_lock_key_slot_1=0
wr_lock_key_slot_2=0
wr_lock_key_slot_3=0
wr_lock_sw_usage_0=0
wr_lock_sw_usage_1=0
wr_lock_sw_usage_2=0
wr_lock_sw_usage_3=0
wr_lock_key_slot_11=0
rd_lock_dbg_pwd=0
rd_lock_key_slot_0=0
rd_lock_key_slot_1=0
rd_lock_key_slot_2=0
rd_lock_key_slot_3=0
rd_lock_key_slot_11=0
########################################################################
ef_key_slot_4_w0=0
ef_key_slot_4_w1=0
ef_key_slot_4_w2=0
ef_key_slot_4_w3=0
ef_key_slot_5_w0=0
ef_key_slot_5_w1=0
ef_key_slot_5_w2=0
ef_key_slot_5_w3=0
ef_key_slot_6_w0=0
ef_key_slot_6_w1=0
ef_key_slot_6_w2=0
ef_key_slot_6_w3=0
ef_key_slot_7_w0=0
ef_key_slot_7_w1=0
ef_key_slot_7_w2=0
ef_key_slot_7_w3=0
ef_key_slot_8_w0=0
ef_key_slot_8_w1=0
ef_key_slot_8_w2=0
ef_key_slot_8_w3=0
ef_key_slot_9_w0=0
ef_key_slot_9_w1=0
ef_key_slot_9_w2=0
ef_key_slot_9_w3=0
ef_key_slot_10_w0=0
ef_key_slot_10_w1=0
ef_key_slot_10_w2=0
ef_key_slot_10_w3=0
ef_dat_1_rsvd_0=0
ef_dat_1_rsvd_1=0
ef_dat_1_rsvd_2=0
########################################################################
wr_lock_rsvd_1=0
wr_lock_key_slot_4=0
wr_lock_key_slot_5=0
wr_lock_key_slot_6=0
wr_lock_key_slot_7=0
wr_lock_key_slot_8=0
wr_lock_key_slot_9=0
wr_lock_key_slot_10=0
wr_lock_dat_1_rsvd_0=0
wr_lock_dat_1_rsvd_1=0
wr_lock_dat_1_rsvd_2=0
rd_lock_key_slot_4=0
rd_lock_key_slot_5=0
rd_lock_key_slot_6=0
rd_lock_key_slot_7=0
rd_lock_key_slot_8=0
rd_lock_key_slot_9=0
rd_lock_key_slot_10=0
[BOOTHEADER_GROUP0_CFG]
magic_code=0x504e4642
revision=0x01
#########################flash cfg#############################
flashcfg_magic_code=0x47464346
#flashcfg_magic_code=0
io_mode=0x10
#0.5T sfctrl_clk_delay=0 sfctrl_clk_invert=3
#1 T sfctrl_clk_delay=1 sfctrl_clk_invert=1
#1.5T sfctrl_clk_delay=1 sfctrl_clk_invert=3
cont_read_support=0
sfctrl_clk_delay=1
sfctrl_clk_invert=0x01
reset_en_cmd=0x66
reset_cmd=0x99
exit_contread_cmd=0xff
exit_contread_cmd_size=0x3
jedecid_cmd=0x9f
jedecid_cmd_dmy_clk=0
enter_32bits_addr_cmd=0xb7
exit_32bits_addr_clk=0xe9
sector_size=4
mfg_id=0xff
page_size=256
chip_erase_cmd=0xc7
sector_erase_cmd=0x20
blk32k_erase_cmd=0x52
blk64k_erase_cmd=0xd8
write_enable_cmd=0x06
page_prog_cmd=0x02
qpage_prog_cmd=0x32
qual_page_prog_addr_mode=0
fast_read_cmd=0x0b
fast_read_dmy_clk=1
qpi_fast_read_cmd=0x0b
qpi_fast_read_dmy_clk=1
fast_read_do_cmd=0x3b
fast_read_do_dmy_clk=1
fast_read_dio_cmd=0xbb
fast_read_dio_dmy_clk=0
fast_read_qo_cmd=0x6b
fast_read_qo_dmy_clk=1
fast_read_qio_cmd=0xeb
fast_read_qio_dmy_clk=2
qpi_fast_read_qio_cmd=0xeb
qpi_fast_read_qio_dmy_clk=2
qpi_page_prog_cmd=0x02
write_vreg_enable_cmd=0x50
wel_reg_index=0
qe_reg_index=1
busy_reg_index=0
wel_bit_pos=1
qe_bit_pos=1
busy_bit_pos=0
wel_reg_write_len=2
wel_reg_read_len=1
qe_reg_write_len=2
qe_reg_read_len=1
release_power_down = 0xab
busy_reg_read_len=1
reg_read_cmd0=0x05
reg_read_cmd1=0x35
reg_write_cmd0=0x01
reg_write_cmd1=0x01
enter_qpi_cmd=0x38
exit_qpi_cmd=0xff
cont_read_code=0x20
cont_read_exit_code=0xf0
burst_wrap_cmd=0x77
burst_wrap_dmy_clk=0x03
burst_wrap_data_mode=2
burst_wrap_code=0x40
de_burst_wrap_cmd=0x77
de_burst_wrap_cmd_dmy_clk=0x03
de_burst_wrap_code_mode=2
de_burst_wrap_code=0xf0
sector_erase_time=300
blk32k_erase_time=1200
blk64k_erase_time=1200
page_prog_time=50
chip_erase_time=200000
power_down_delay = 20
qe_data = 0
flashcfg_crc32=0
#########################clk cfg#####################################
clkcfg_magic_code=0x47464350
#clkcfg_magic_code=0
#0:None,1:24M,2:32M,3:38.4M,4:40M,5:26M,6:RC32M
xtal_type=4
#0:RC32M,1:Xtal,2:cpupll 400M,3:wifipll 192M,4:wifipll 320M
mcu_clk=4
mcu_clk_div=0
mcu_bclk_div=0
mcu_pbclk_div=3
lp_div=1
#0:RC32M,1:Xtal,2:wifipll 240M,3:wifipll 320M,4:cpupll 400M
dsp_clk=3
dsp_clk_div=0
dsp_bclk_div=1
#0:RC32M,1:Xtal,2:wifipll 160M,3:cpupll 160M,4:wifipll 240M
dsp_pbclk=2
dsp_pbclk_div=0
#0:mcu pbclk,1:cpupll 200M,2:wifipll 320M,3:cpupll 400M
emi_clk=2
emi_clk_div=1
#0:wifipll 120M,1:xtal,2:cpupll 100M,3:wifipll 80M,4:bclk,5:wifipll 96M
flash_clk_type=1
flash_clk_div=0
wifipll_pu=1
aupll_pu=1
cpupll_pu=1
mipipll_pu=1
uhspll_pu=1
clkcfg_crc32=0
########################boot cfg#####################################
#1:ECC
sign=0
#1:AES128 CTR,2:AES256 CTR,3:AES192 CTR,4:AES128 XTS
encrypt_type=0
key_sel=0
xts_mode=0
aes_region_lock=0
no_segment=1
boot2_enable=0
boot2_rollback=0
cpu_master_id=0
notload_in_bootrom=0
crc_ignore=1
hash_ignore=1
power_on_mm=1
em_sel=1
cmds_en=1
#0:cmds bypass wrap commands to macro, original mode;
#1:cmds handle wrap commands, original mode;
#2:cmds bypass wrap commands to macro, cmds force wrap16*4 splitted into two wrap8*4;
#3:cmds handle wrap commands, cmds force wrap16*4 splitted into two wrap8*4
cmds_wrap_mode=2
#0:SF_CTRL_WRAP_LEN_8, 1:SF_CTRL_WRAP_LEN_16, 2:SF_CTRL_WRAP_LEN_32,
#3:SF_CTRL_WRAP_LEN_64, 9: SF_CTRL_WRAP_LEN_4096
cmds_wrap_len=2
icache_invalid=1
dcache_invalid=1
fpga_halt_release=0
########################image cfg####################################
#flash controller offset
group_image_offset=0x00002000
aes_region_len=0
#total image len or segment count
img_len_cnt=0x8000
#img hash
hash_0=0xdeadbeef
hash_1=0
hash_2=0
hash_3=0
hash_4=0
hash_5=0
hash_6=0
hash_7=0
########################CPU M0 cfg###################################
m0_config_enable=1
m0_halt_cpu=0
m0_cache_enable=0
m0_cache_wa=0
m0_cache_wb=0
m0_cache_wt=0
m0_cache_way_dis=0
m0_reserved=0
m0_cache_range_h=0
m0_cache_range_l=0
#img RAM address or flash offset
m0_image_address_offset=0x00002000
m0_boot_entry=0x58000000
m0_msp_val=0
########################CPU D0 cfg###################################
d0_config_enable=1
d0_halt_cpu=0
d0_cache_enable=0
d0_cache_wa=0
d0_cache_wb=0
d0_cache_wt=0
d0_cache_way_dis=0
d0_reserved=0
d0_cache_range_h=0
d0_cache_range_l=0
#img RAM address or flash offset
d0_image_address_offset=0x00022000
d0_boot_entry=0x58020000
d0_msp_val=0
########################CPU LP cfg###################################
lp_config_enable=1
lp_halt_cpu=0
lp_cache_enable=0
lp_cache_wa=0
lp_cache_wb=0
lp_cache_wt=0
lp_cache_way_dis=0
lp_reserved=0
lp_cache_range_h=0x58050000
lp_cache_range_l=0x58040000
#img RAM address or flash offset
lp_image_address_offset=0x00042000
lp_boot_entry=0x58040000
lp_msp_val=0
boot2_pt_table_0=0
boot2_pt_table_1=0
flashCfgTableAddr=0
flashCfgTableLen=0
########################patch on read################################
patch_read_addr0=0
patch_read_value0=0
patch_read_addr1=0
patch_read_value1=0
patch_read_addr2=0
patch_read_value2=0
patch_read_addr3=0
patch_read_value3=0
########################patch on jump################################
patch_jump_addr0=0x20000320
patch_jump_value0=0
patch_jump_addr1=0
patch_jump_value1=0
patch_jump_addr2=0
patch_jump_value2=0
patch_jump_addr3=0
patch_jump_value3=0
reserved1=0
reserved2=0
reserved3=0
reserved4=0
crc32=0xdeadbeef
[BOOTHEADER_GROUP1_CFG]
magic_code=0x50414642
revision=1
#########################flash cfg(ignored for group1)###############
#########################clk cfg(ignored for group1)#################
########################boot cfg#####################################
#1:ECC
sign=0
#1:AES128,2:AES256,3:AES192
encrypt_type=0
key_sel=0
xts_mode=0
aes_region_lock=0
no_segment=1
boot2_enable=0
boot2_rollback=0
cpu_master_id=0
notload_in_bootrom=0
crc_ignore=1
hash_ignore=1
power_on_mm=0
em_sel=0
cmds_en=1
cmds_wrap_mode=2
#2:SF_CTRL_WRAP_LEN_32, 3:SF_CTRL_WRAP_LEN_64, 9: SF_CTRL_WRAP_LEN_4096
cmds_wrap_len=2
icache_invalid=1
dcache_invalid=1
fpga_halt_release=0
########################image cfg####################################
#flash controller offset
group_image_offset=0x00052000
aes_region_len=0
#total image len or segment count
img_len_cnt=0x8000
#img hash
hash_0=0xdeadbeef
hash_1=0
hash_2=0
hash_3=0
hash_4=0
hash_5=0
hash_6=0
hash_7=0
########################CPU M0 cfg###################################
m0_config_enable=1
m0_halt_cpu=0
m0_cache_enable=0
m0_cache_wa=0
m0_cache_wb=0
m0_cache_wt=0
m0_cache_way_dis=0
m0_reserved=0
m0_cache_range_h=0
m0_cache_range_l=0
#img RAM address or flash offset
m0_image_address_offset=0x00052000
m0_boot_entry=0xD8000000
m0_msp_val=0
########################CPU D0 cfg###################################
d0_config_enable=1
d0_halt_cpu=0
d0_cache_enable=0
d0_cache_wa=0
d0_cache_wb=0
d0_cache_wt=0
d0_cache_way_dis=0
d0_reserved=0
d0_cache_range_h=0
d0_cache_range_l=0
#img RAM address or flash offset
d0_image_address_offset=0x00072000
d0_boot_entry=0x58020000
d0_msp_val=0
########################CPU LP cfg###################################
lp_config_enable=1
lp_halt_cpu=0
lp_cache_enable=0
lp_cache_wa=0
lp_cache_wb=0
lp_cache_wt=0
lp_cache_way_dis=0
lp_reserved=0
lp_cache_range_h=0
lp_cache_range_l=0
#img RAM address or flash offset
lp_image_address_offset=0x00082000
lp_boot_entry=0x58040000
lp_msp_val=0
boot2_pt_table_0=0
boot2_pt_table_1=0
flashCfgTableAddr=0
flashCfgTableLen=0
########################patch on read################################
patch_read_addr0=0
patch_read_value0=0
patch_read_addr1=0
patch_read_value1=0
patch_read_addr2=0
patch_read_value2=0
patch_read_addr3=0
patch_read_value3=0
########################patch on jump################################
patch_jump_addr0=0x20000320
patch_jump_value0=0
patch_jump_addr1=0
patch_jump_value1=0
patch_jump_addr2=0
patch_jump_value2=0
patch_jump_addr3=0
patch_jump_value3=0
reserved1=0
reserved2=0
reserved3=0
reserved4=0
crc32=0xdeadbeef

View File

@ -0,0 +1,32 @@
[Img_Group0_Cfg]
boot_header_file = bl606p\efuse_bootheader/bootheader_group0.bin
efuse_file = bl606p\efuse_bootheader/efusedata.bin
efuse_mask_file = bl606p\efuse_bootheader/efusedata_mask.bin
encrypt_key_org = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
aesiv_file = img_create/aesiv_group0.bin
publickey_file = img_create/publickey_uecc_group0.pem
privatekey_file_uecc = img_create/privatekey_uecc_group0.pem
segheader_file = img_create/segheader_group0.bin
segdata_file = bl606p\img_create\IPC\chiptest_ipc_basic_M0.bin bl606p\img_create\IPC\chiptest_ipc_basic_M1.bin UNUSED UNUSED bl606p\img_create\IPC\chiptest_ipc_basic_LP.bin
bootinfo_file = bl606p\img_create2/bootinfo_group0.bin
img_file = bl606p\img_create/img_group0.bin
whole_img_file = bl606p\img_create/wholeimg_group0_if.bin
aes_key_org = ""
aes_iv = ""
[Img_Group1_Cfg]
boot_header_file = bl606p\efuse_bootheader/bootheader_group1.bin
efuse_file = bl606p\efuse_bootheader/efusedata.bin
efuse_mask_file = bl606p\efuse_bootheader/efusedata_mask.bin
encrypt_key_org = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
aesiv_file = img_create/aesiv_group1.bin
publickey_file = img_create/publickey_uecc_group1.pem
privatekey_file_uecc = img_create/privatekey_uecc_group1.pem
segheader_file = img_create/segheader_group1.bin
segdata_file = UNUSED UNUSED bl606p\img_create\IPC\chiptest_ipc_basic_D0.bin bl606p\img_create\IPC\chiptest_ipc_basic_D1.bin UNUSED
bootinfo_file = bl606p\img_create2/bootinfo_group1.bin
img_file = bl606p\img_create/img_group1.bin
whole_img_file = bl606p\img_create/wholeimg_group1_if.bin
aes_key_org = ""
aes_iv = ""

View File

@ -0,0 +1,32 @@
[Img_Group0_Cfg]
boot_header_file = bl606p\efuse_bootheader/bootheader_group0.bin
efuse_file = bl606p\efuse_bootheader/efusedata.bin
efuse_mask_file = bl606p\efuse_bootheader/efusedata_mask.bin
encrypt_key_org = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
aesiv_file = img_create/aesiv_group0.bin
publickey_file = img_create/publickey_uecc_group0.pem
privatekey_file_uecc = img_create/privatekey_uecc_group0.pem
segheader_file = img_create/segheader_group0.bin
segdata_file = bl606p\img_create\IPC\chiptest_ipc_basic_M0.bin bl606p\img_create\IPC\chiptest_ipc_basic_M1.bin UNUSED UNUSED bl606p\img_create\IPC\chiptest_ipc_basic_LP.bin
bootinfo_file = bl606p\img_create2/bootinfo_group0.bin
img_file = bl606p\img_create/img_group0.bin
whole_img_file = bl606p\img_create/wholeimg_group0_if.bin
aes_key_org = ""
aes_iv = ""
[Img_Group1_Cfg]
boot_header_file = bl606p\efuse_bootheader/bootheader_group1.bin
efuse_file = bl606p\efuse_bootheader/efusedata.bin
efuse_mask_file = bl606p\efuse_bootheader/efusedata_mask.bin
encrypt_key_org = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
aesiv_file = img_create/aesiv_group1.bin
publickey_file = img_create/publickey_uecc_group1.pem
privatekey_file_uecc = img_create/privatekey_uecc_group1.pem
segheader_file = img_create/segheader_group1.bin
segdata_file = UNUSED UNUSED bl606p\img_create\IPC\chiptest_ipc_basic_D0.bin bl606p\img_create\IPC\chiptest_ipc_basic_D1.bin UNUSED
bootinfo_file = bl606p\img_create2/bootinfo_group1.bin
img_file = bl606p\img_create/img_group1.bin
whole_img_file = bl606p\img_create/wholeimg_group1_if.bin
aes_key_org = ""
aes_iv = ""

View File

@ -0,0 +1,32 @@
[Img_Group0_Cfg]
boot_header_file = bl606p\efuse_bootheader/bootheader_group0.bin
efuse_file = bl606p\efuse_bootheader/efusedata.bin
efuse_mask_file = bl606p\efuse_bootheader/efusedata_mask.bin
encrypt_key_org = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
aesiv_file = img_create/aesiv_group0.bin
publickey_file = img_create/publickey_uecc_group0.pem
privatekey_file_uecc = img_create/privatekey_uecc_group0.pem
segheader_file = img_create/segheader_group0.bin
segdata_file = bl606p\img_create\IPC\chiptest_ipc_basic_M0.bin bl606p\img_create\IPC\chiptest_ipc_basic_M1.bin UNUSED UNUSED bl606p\img_create\IPC\chiptest_ipc_basic_LP.bin
bootinfo_file = bl606p\img_create2/bootinfo_group0.bin
img_file = bl606p\img_create/img_group0.bin
whole_img_file = bl606p\img_create/wholeimg_group0_if.bin
aes_key_org = ""
aes_iv = ""
[Img_Group1_Cfg]
boot_header_file = bl606p\efuse_bootheader/bootheader_group1.bin
efuse_file = bl606p\efuse_bootheader/efusedata.bin
efuse_mask_file = bl606p\efuse_bootheader/efusedata_mask.bin
encrypt_key_org = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
aesiv_file = img_create/aesiv_group1.bin
publickey_file = img_create/publickey_uecc_group1.pem
privatekey_file_uecc = img_create/privatekey_uecc_group1.pem
segheader_file = img_create/segheader_group1.bin
segdata_file = UNUSED UNUSED bl606p\img_create\IPC\chiptest_ipc_basic_D0.bin bl606p\img_create\IPC\chiptest_ipc_basic_D1.bin UNUSED
bootinfo_file = bl606p\img_create2/bootinfo_group1.bin
img_file = bl606p\img_create/img_group1.bin
whole_img_file = bl606p\img_create/wholeimg_group1_if.bin
aes_key_org = ""
aes_iv = ""

View File

@ -0,0 +1,32 @@
[Img_Group0_Cfg]
boot_header_file = bl606p\efuse_bootheader/bootheader_group0.bin
efuse_file = bl606p\efuse_bootheader/efusedata.bin
efuse_mask_file = bl606p\efuse_bootheader/efusedata_mask.bin
encrypt_key_org = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
aesiv_file = img_create/aesiv_group0.bin
publickey_file = img_create/publickey_uecc_group0.pem
privatekey_file_uecc = img_create/privatekey_uecc_group0.pem
segheader_file = img_create/segheader_group0.bin
segdata_file = bl606p\img_create\IPC\chiptest_ipc_basic_M0.bin bl606p\img_create\IPC\chiptest_ipc_basic_M1.bin UNUSED UNUSED bl606p\img_create\IPC\chiptest_ipc_basic_LP.bin
bootinfo_file = bl606p\img_create2/bootinfo_group0.bin
img_file = bl606p\img_create/img_group0.bin
whole_img_file = bl606p\img_create/wholeimg_group0_if.bin
aes_key_org = ""
aes_iv = ""
[Img_Group1_Cfg]
boot_header_file = bl606p\efuse_bootheader/bootheader_group1.bin
efuse_file = bl606p\efuse_bootheader/efusedata.bin
efuse_mask_file = bl606p\efuse_bootheader/efusedata_mask.bin
encrypt_key_org = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
aesiv_file = img_create/aesiv_group1.bin
publickey_file = img_create/publickey_uecc_group1.pem
privatekey_file_uecc = img_create/privatekey_uecc_group1.pem
segheader_file = img_create/segheader_group1.bin
segdata_file = UNUSED UNUSED bl606p\img_create\IPC\chiptest_ipc_basic_D0.bin bl606p\img_create\IPC\chiptest_ipc_basic_D1.bin UNUSED
bootinfo_file = bl606p\img_create2/bootinfo_group1.bin
img_file = bl606p\img_create/img_group1.bin
whole_img_file = bl606p\img_create/wholeimg_group1_if.bin
aes_key_org = ""
aes_iv = ""

View File

@ -0,0 +1,32 @@
[Img_Group0_Cfg]
boot_header_file = bl606p\efuse_bootheader/bootheader_group0.bin
efuse_file = bl606p\efuse_bootheader/efusedata.bin
efuse_mask_file = bl606p\efuse_bootheader/efusedata_mask.bin
encrypt_key_org = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
aesiv_file = img_create/aesiv_group0.bin
publickey_file = img_create/publickey_uecc_group0.pem
privatekey_file_uecc = img_create/privatekey_uecc_group0.pem
segheader_file = img_create/segheader_group0.bin
segdata_file = bl606p\img_create\IPC\chiptest_ipc_basic_M0.bin bl606p\img_create\IPC\chiptest_ipc_basic_M1.bin UNUSED UNUSED bl606p\img_create\IPC\chiptest_ipc_basic_LP.bin
bootinfo_file = bl606p\img_create2/bootinfo_group0.bin
img_file = bl606p\img_create/img_group0.bin
whole_img_file = bl606p\img_create/wholeimg_group0_if.bin
aes_key_org = ""
aes_iv = ""
[Img_Group1_Cfg]
boot_header_file = bl606p\efuse_bootheader/bootheader_group1.bin
efuse_file = bl606p\efuse_bootheader/efusedata.bin
efuse_mask_file = bl606p\efuse_bootheader/efusedata_mask.bin
encrypt_key_org = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
aesiv_file = img_create/aesiv_group1.bin
publickey_file = img_create/publickey_uecc_group1.pem
privatekey_file_uecc = img_create/privatekey_uecc_group1.pem
segheader_file = img_create/segheader_group1.bin
segdata_file = UNUSED UNUSED bl606p\img_create\IPC\chiptest_ipc_basic_D0.bin bl606p\img_create\IPC\chiptest_ipc_basic_D1.bin UNUSED
bootinfo_file = bl606p\img_create2/bootinfo_group1.bin
img_file = bl606p\img_create/img_group1.bin
whole_img_file = bl606p\img_create/wholeimg_group1_if.bin
aes_key_org = ""
aes_iv = ""

View File

@ -0,0 +1,32 @@
[Img_Group0_Cfg]
boot_header_file = bl606p\efuse_bootheader/bootheader_group0.bin
efuse_file = bl606p\efuse_bootheader/efusedata.bin
efuse_mask_file = bl606p\efuse_bootheader/efusedata_mask.bin
encrypt_key_org = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
aesiv_file = img_create/aesiv_group0.bin
publickey_file = img_create/publickey_uecc_group0.pem
privatekey_file_uecc = img_create/privatekey_uecc_group0.pem
segheader_file = img_create/segheader_group0.bin
segdata_file = bl606p\img_create\IPC\chiptest_ipc_basic_M0.bin bl606p\img_create\IPC\chiptest_ipc_basic_M1.bin UNUSED UNUSED bl606p\img_create\IPC\chiptest_ipc_basic_LP.bin
bootinfo_file = bl606p\img_create2/bootinfo_group0.bin
img_file = bl606p\img_create/img_group0.bin
whole_img_file = bl606p\img_create/wholeimg_group0_if.bin
aes_key_org = ""
aes_iv = ""
[Img_Group1_Cfg]
boot_header_file = bl606p\efuse_bootheader/bootheader_group1.bin
efuse_file = bl606p\efuse_bootheader/efusedata.bin
efuse_mask_file = bl606p\efuse_bootheader/efusedata_mask.bin
encrypt_key_org = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
aesiv_file = img_create/aesiv_group1.bin
publickey_file = img_create/publickey_uecc_group1.pem
privatekey_file_uecc = img_create/privatekey_uecc_group1.pem
segheader_file = img_create/segheader_group1.bin
segdata_file = UNUSED UNUSED bl606p\img_create\IPC\chiptest_ipc_basic_D0.bin bl606p\img_create\IPC\chiptest_ipc_basic_D1.bin UNUSED
bootinfo_file = bl606p\img_create2/bootinfo_group1.bin
img_file = bl606p\img_create/img_group1.bin
whole_img_file = bl606p\img_create/wholeimg_group1_if.bin
aes_key_org = ""
aes_iv = ""

View File

@ -0,0 +1,32 @@
[Img_Group0_Cfg]
boot_header_file = bl606p\efuse_bootheader/bootheader_group0.bin
efuse_file = bl606p\efuse_bootheader/efusedata.bin
efuse_mask_file = bl606p\efuse_bootheader/efusedata_mask.bin
encrypt_key_org = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
aesiv_file = img_create/aesiv_group0.bin
publickey_file = img_create/publickey_uecc_group0.pem
privatekey_file_uecc = img_create/privatekey_uecc_group0.pem
segheader_file = img_create/segheader_group0.bin
segdata_file = bl606p\img_create\IPC\chiptest_ipc_basic_M0.bin bl606p\img_create\IPC\chiptest_ipc_basic_M1.bin UNUSED UNUSED bl606p\img_create\IPC\chiptest_ipc_basic_LP.bin
bootinfo_file = bl606p\img_create2/bootinfo_group0.bin
img_file = bl606p\img_create/img_group0.bin
whole_img_file = bl606p\img_create/wholeimg_group0_if.bin
aes_key_org = ""
aes_iv = ""
[Img_Group1_Cfg]
boot_header_file = bl606p\efuse_bootheader/bootheader_group1.bin
efuse_file = bl606p\efuse_bootheader/efusedata.bin
efuse_mask_file = bl606p\efuse_bootheader/efusedata_mask.bin
encrypt_key_org = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
aesiv_file = img_create/aesiv_group1.bin
publickey_file = img_create/publickey_uecc_group1.pem
privatekey_file_uecc = img_create/privatekey_uecc_group1.pem
segheader_file = img_create/segheader_group1.bin
segdata_file = UNUSED UNUSED bl606p\img_create\IPC\chiptest_ipc_basic_D0.bin bl606p\img_create\IPC\chiptest_ipc_basic_D1.bin UNUSED
bootinfo_file = bl606p\img_create2/bootinfo_group1.bin
img_file = bl606p\img_create/img_group1.bin
whole_img_file = bl606p\img_create/wholeimg_group1_if.bin
aes_key_org = ""
aes_iv = ""

View File

@ -0,0 +1,172 @@
[pt_table]
#partition table is 4K in size
address0 = 0xE000
address1 = 0xF000
# If version is 2, It will use dynamic mode.
version = 2
[[pt_entry]]
type = 16
name = "Boot2"
device = 0
address0 = 0
size0 = 0xE000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
# If header is 1, it will add the header.
header = 1
# If header is 1 and security is 1, It will be encrypted.
security = 1
[[pt_entry]]
type = 0
name = "FW"
device = 0
address0 = 0x10000
size0 = 0x200000
address1 = 0x210000
size1 = 0x200000
# compressed image must set len,normal image can left it to 0
len = 0
# If header is 1, it will add the header.
header = 1
# If header is 1 and security is 1, It will be encrypted.
security = 1
[[pt_entry]]
type = 10
name = "mfg"
device = 0
address0 = 0x210000
size0 = 0xa0000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
# If header is 1, it will add the header.
header = 1
# If header is 1 and security is 1, It will be encrypted.
security = 1
[[pt_entry]]
type = 4
name = "kv"
device = 0
address0 = 0x410000
size0 = 0x10000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
# If header is 1, it will add the header.
header = 0
# If header is 1 and security is 1, It will be encrypted.
security = 0
[[pt_entry]]
type = 5
name = "media"
device = 0
address0 = 0x420000
size0 = 0x80000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
# If header is 1, it will add the header.
header = 0
# If header is 1 and security is 1, It will be encrypted.
security = 0
[[pt_entry]]
type = 8
# It shows Dts in DevCube
name = "factory"
device = 0
address0 = 0x4A0000
size0 = 0x6000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
# If header is 1, it will add the header.
header = 0
# If header is 1 and security is 1, It will be encrypted.
security = 0
[[pt_entry]]
type = 9
name = "Imgload"
device = 0
address0 = 0x500000
size0 = 0x80000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0x3efa0001
# If header is 1, it will add the header.
header = 1
# If header is 1 and security is 1, It will be encrypted.
security = 1
[[pt_entry]]
type = 10
name = "SBI"
device = 0
address0 = 0x580000
size0 = 0x40000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0x3ef8000F
# If header is 1, it will add the header.
header = 1
# If header is 1 and security is 1, It will be encrypted.
security = 1
[[pt_entry]]
type = 11
name = "DTB"
device = 0
address0 = 0x5C0000
size0 = 0x8000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0x3f00000F
# If header is 1, it will add the header.
header = 1
# If header is 1 and security is 1, It will be encrypted.
security = 1
[[pt_entry]]
type = 12
name = "Kernel"
device = 0
address0 = 0x600000
size0 = 0x700000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0x5100000F
# If header is 1, it will add the header.
header = 1
# If header is 1 and security is 1, It will be encrypted.
security = 1
[[pt_entry]]
type = 13
name = "Rootfs"
device = 0
address0 = 0xD00000
size0 = 0x300000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0x5200000F
# If header is 1, it will add the header.
header = 1
# If header is 1 and security is 1, It will be encrypted.
security = 1

View File

@ -0,0 +1,142 @@
[pt_table]
#partition table is 4K in size
address0 = 0xE000
address1 = 0xF000
# If version is 2, It will use dynamic mode.
version = 2
[[pt_entry]]
type = 16
name = "Boot2"
device = 0
address0 = 0
size0 = 0xE000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
# If header is 1, it will add the header.
header = 1
# If header is 1 and security is 1, It will be encrypted.
security = 1
[[pt_entry]]
type = 0
name = "FW"
device = 0
address0 = 0x10000
size0 = 0x280000
address1 = 0x290000
size1 = 0x200000
# compressed image must set len,normal image can left it to 0
len = 0
# If header is 1, it will add the header.
header = 1
# If header is 1 and security is 1, It will be encrypted.
security = 1
[[pt_entry]]
type = 10
name = "mfg"
device = 0
address0 = 0x490000
size0 = 0xa0000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
# If header is 1, it will add the header.
header = 1
# If header is 1 and security is 1, It will be encrypted.
security = 1
[[pt_entry]]
type = 2
name = "D0FW"
device = 0
address0 = 0x530000
size0 = 0xE0000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
# If header is 1, it will add the header.
header = 1
# If header is 1 and security is 1, It will be encrypted.
security = 1
[[pt_entry]]
type = 3
name = "IMTB"
device = 0
address0 = 0x610000
size0 = 0x2000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
# If header is 1, it will add the header.
header = 0
# If header is 1 and security is 1, It will be encrypted.
security = 0
[[pt_entry]]
type = 4
name = "kv"
device = 0
address0 = 0x620000
size0 = 0x10000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
# If header is 1, it will add the header.
header = 0
# If header is 1 and security is 1, It will be encrypted.
security = 0
[[pt_entry]]
type = 5
name = "media"
device = 0
address0 = 0x630000
size0 = 0x100000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
# If header is 1, it will add the header.
header = 0
# If header is 1 and security is 1, It will be encrypted.
security = 0
[[pt_entry]]
type = 7
name = "Yocboot"
device = 0
address0 = 0x730000
size0 = 0x10000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
# If header is 1, it will add the header.
header = 1
# If header is 1 and security is 1, It will be encrypted.
security = 1
[[pt_entry]]
type = 8
# It shows Dts in DevCube
name = "factory"
device = 0
address0 = 0x740000
size0 = 0x8000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
# If header is 1, it will add the header.
header = 0
# If header is 1 and security is 1, It will be encrypted.
security = 0

View File

@ -0,0 +1,6 @@
[ota]
#max length of version_hardware is 15 bytes
version_hardware = "BFL_Module_v1.1"
#max length of version_software is 15 bytes
version_software = "EVENT_V1.1.1"
version_header = "BL60X_OTA_Ver1.0"

View File

@ -0,0 +1,349 @@
/dts-v1/;
/include/ "bl602_base.dtsi";
// version: 17
// last_comp_version: 16
// boot_cpuid_phys: 0x0
/ {
model = "bl bl602 IOT board";
compatible = "bl,bl602-sample", "bl,bl602-common";
#address-cells = <0x1>;
#size-cells = <0x1>;
gpio {
#address-cells = <1>;
#size-cells = <1>;
max_num = <40>;
gpio0 {
status = "okay";
pin = <5>;
feature = "led";
active = "Hi"; //Hi or Lo
mode = "blink"; //blink or hearbeat
time = <100>; //duration for this mode
};
gpio1 {
status = "disable";
pin = <6>;
feature = "led";
active = "Hi"; //Hi or Lo
mode = "blink"; //blink or hearbeat
time = <100>; //duration for this mode
};
gpio2 {
status = "okay";
pin = <2>;
feature = "button";
active = "Hi";
mode = "multipress";
button {
debounce = <10>;
short_press_ms {
start = <100>;
end = <3000>;
kevent = <2>;
};
long_press_ms {
start = <6000>;
end = <10000>;
kevent = <3>;
};
longlong_press_ms {
start = <15000>;
kevent = <4>;
};
trig_level = "Hi";
};
hbn_use = "disable";
};
};
i2s {
#address-cells = <1>;
#size-cells = <1>;
i2s@40017000 {
status = "okay";
compatible = "bl602_i2s";
reg = <0x40017000 0x100>;
mclk_only = "okay";
pin {
mclk = <11>;
};
};
i2s@40017100 {
status = "okay";
compatible = "bl602_i2s";
reg = <0x40017100 0x100>;
mclk_only = "disable";
pin {
bclk = <12>;
fs = <29>;
do = <30>;
di = <31>;
};
};
};
i2c {
#address-cells = <1>;
#size-cells = <1>;
i2c@40011000 {
status = "okay";
compatible = "bl602_i2c";
reg = <0x40011000 0x100>;
pin {
scl = <32>;
sda = <13>;
};
devices {
list_addr = <0x18 0x21>;
list_driver = "i2c_es8311", "i2c_gc0308>";
};
};
i2c@40011100 {
status = "disable";
compatible = "bl602_i2c";
reg = <0x40011100 0x100>;
pin {
/*empty here*/
};
};
};
timer {
#address-cells = <1>;
#size-cells = <1>;
timer@40014000 {
status = "disable";
compatible = "bl602_timer";
reg = <0x40014000 0x100>;
};
timer@40014100 {
status = "disable";
compatible = "bl602_timer";
reg = <0x40014100 0x100>;
};
};
pwm {
#address-cells = <1>;
#size-cells = <1>;
pwm@4000A420 {
status = "okay";
compatible = "bl602_pwm";
reg = <0x4000A420 0x20>;
path = "/dev/pwm0";
id = <0>;
pin = <0>;
freq = <800000>;
duty = <50>;
};
pwm@4000A440 {
status = "disable";
reg = <0x4000A440 0x20>;
path = "/dev/pwm1";
id = <1>;
pin = <1>;
freq = <5000>;
duty = <50>;
};
pwm@4000A460 {
status = "disable";
reg = <0x4000A460 0x20>;
path = "/dev/pwm2";
id = <2>;
pin = <2>;
freq = <5000>;
duty = <50>;
};
pwm@4000A480 {
status = "disable";
reg = <0x4000A480 0x20>;
path = "/dev/pwm3";
id = <3>;
pin = <3>;
freq = <5000>;
duty = <50>;
};
pwm@4000A4A0 {
status = "disable";
reg = <0x4000A4A0 0x20>;
path = "/dev/pwm4";
id = <4>;
pin = <4>;
freq = <5000>;
duty = <50>;
};
};
ir {
#address-cells = <1>;
#size-cells = <1>;
ctrltype = <0>;
tx {
status = "disable";
pin = <11>; // only support 11
mode = "NEC"; // NEC,ExtenedNEC,RC5,SWM
interval = <100>; // ms
active_mode = "Hi"; //Hi,Lo
};
rx {
status = "okay";
pin = <12>; // only support 12 13
mode = "NEC"; // NEC,ExtenedNEC,RC5,SWM
active_mode = "Hi"; //Hi,Lo
data_check = <2>; //bit 0:check cmd, bit 1:check addr
};
};
uart {
#address-cells = <1>;
#size-cells = <1>;
uart@4000A000 {
status = "okay";
id = <0>;
compatible = "bl602_uart";
path = "/dev/ttyS0";
baudrate = <2000000>;
pin {
rx = <7>;
tx = <16>;
};
buf_size {
rx_size = <512>;
tx_size = <512>;
};
feature {
tx = "okay";
rx = "okay";
cts = "disable";
rts = "disable";
};
};
uart@4000A100 {
status = "okay";
id = <1>;
compatible = "bl602_uart";
path = "/dev/ttyS1";
baudrate = <115200>;
pin {
rx = <3>;
tx = <4>;
};
buf_size {
rx_size = <512>;
tx_size = <512>;
};
feature {
tx = "okay";
rx = "okay";
cts = "disable";
rts = "disable";
};
};
};
spi {
#address-cells = <1>;
#size-cells = <1>;
spi@4000F000 {
status = "okay"; /* okay disable */
mode = "master";
reg = <0x4000F000 0x100>; /* 4KB */
path = "/dev/spi0";
port = <0>;
polar_phase = <1>; /* 0,1,2,3 */
freq = <6000000>;
pin {
clk = <3>;
cs = <2>;
mosi = <1>;
miso = <0>;
};
dma_cfg {
tx_dma_ch = <2>;
rx_dma_ch = <3>;
};
};
};
gpip {
#address-cells = <1>;
#size-cells = <1>;
adc_key {
status = "disable";
pin = <9>;
interrupt = <3>;
key_vol = <0 100 400 300 500>;
key_pcb = "SW1", "SW2", "SW3", "SW4","SW5";
key_event = "Usr1", "Usr2", "Start", "Up", "Down";
key_raw = <1 2 3 4 5>;
};
};
qspi {
#address-cells = <1>;
#size-cells = <1>;
qspi@4000A000 {
status = "disable";
reg = <0x4000A000 0x1000>;/* 4KB */
};
};
wifi {
#address-cells = <1>;
#size-cells = <1>;
region {
country_code = <86>;
};
mac {
mode = "MBF";
sta_mac_addr = [C8 43 57 82 73 40];
ap_mac_addr = [C8 43 57 82 73 02];
};
sta {
ssid = "yourssid";
pwd = "yourapssword";
auto_connect_enable = <0>;
};
ap {
ssid = "bl_test_005";
pwd = "12345678";
ap_channel = <11>;
auto_chan_detect = "disable";
};
brd_rf {
xtal_mode = "MF";
xtal = <36 36 0 60 60>;
/*
pwr_table = < 4 3 3 186
4 3 4 176
4 3 5 167
3 3 0 159
3 3 1 149
3 3 2 140
3 3 3 129
3 3 4 119
3 3 5 110
2 3 0 101
2 3 1 91
2 3 2 82
2 3 3 72
2 3 4 62
2 3 5 52
1 3 3 10>;
*/
pwr_mode = "bf";//B: only use power offset in EFUSE; b: use power offset in EFUSE with incremental mode; F: only use power offset in Flash; f: use power offset in Flash with incremental mode
pwr_table_11b = <20 20 20 18>;//1Mbps 2Mbps 5.5Mbps 11Mbps
pwr_table_11g = <18 18 18 18 18 18 14 14>; //6Mbps 9Mbps 12Mbps 18MBps 24Mbps 36Mbps 48Mbps 54Mbps
pwr_table_11n = <18 18 18 18 18 16 14 14>; //MCS0 MCS1 MCS2 MCS3 MCS4 MCS5 MCS6 MCS7
pwr_offset = <16 16 16 16 16 16 16 16 16 16 16 16 16 16>;//due to the limit of current DTC, negative value is used. So we work around by adding all the poweroffset with 16.
//so 14 represents -0.5dBm; 16 represents 0dBm; 20 represents 1dBm;(step is 0.25dBm)
};
rf_temp {
en_tcal = <0>;
linear_or_follow = <1>;
Tchannels = <2412 2427 2442 2457 2472>;
Tchannel_os = <180 168 163 160 157>;
Tchannel_os_low = <199 186 170 165 160>;
Troom_os = <255>;
//negative value is NOT supported. So we use '256' for 0, '255' for -1, '257' for 1,'511' for 256
};
};
bluetooth {
#address-cells = <1>;
#size-cells = <1>;
brd_rf {
pwr_table_ble = <13>; //range:0~15dbm
};
};
};

View File

@ -0,0 +1,116 @@
[LOAD_CFG]
#jlink or uart
interface = uart
device = COM1
speed_uart_boot = 500000
speed_uart_load = 2000000
#cklink usb vid|pid
cklink_vidpid = 42bf|b210
cklink_type = CKLink_Lite_Vendor-rog
#eg: rv_dbg_plus, ft2232hl, ft2232d
openocd_config = rv_dbg_plus
auto_burn = false
speed_jlink = 1000
#0:without load, 1:eflash_loader load, 2: bootrom load
load_function = 2
do_reset = true
#reset retry+hold time
reset_hold_time = 50
shake_hand_delay = 100
reset_revert = false
cutoff_time = 50
shake_hand_retry = 3
flash_burn_retry = 1
checksum_err_retry = 3
erase_time_out = 100000
#chiptype=bl616
check_mac = true
#0:no erase,1:programmed section erase,2:chip erase
erase = 1
# switch eflash_loader command log save
local_log = false
#0:verify by calculating SHA256(xip), >0:read back verify and verify by calculating SHA256(sbus)
verify = 0
tx_size = 2056
cpu_reset_after_load = false
#empty for auto, otherwise specified clock para file path: eg: chips/bl616/efuse_bootheader/clock_para.bin
clock_para = chips/bl616/efuse_bootheader/clock_para.bin
boot2_isp_mode = 0
isp_mode_speed = 2000000
isp_shakehand_timeout = 0
[FLASH_CFG]
flash_id = ef4016
#bit 7-4 flash_clock_type: 0:120M wifipll, 1:xtal, 2:128M cpupll, 3:80M wifipll, 4:bclk, 5:96M wifipll
#bit 3-0 flash_clock_div
flash_clock_cfg = 0x41
#0:0.5T delay, 1:1T delay, 2:1.5T delay, 3:2T delay
flash_clock_delay = 0
#0:NIO, 1:DO, 2:QO, 3:DIO, 4:QIO
flash_io_mode = 1
#flash_pin value:
#bit 7 flash pin autoscan
#bit 6 flash select 0: flash1, 1: flash2
#bit 5-0 flash pin cfg:
#0x0: single flash, sf1 internal swap io3 and io0
#0x1: single flash, sf1 internal swap io3 with io0 and io2 with cs
#0x2: single flash, sf1 internal no swap
#0x3: single flash, sf1 internal swap io2 with cs
#0x4: single flash, sf2 external GPIO4-9 and swap io3 with io0
#0x8: single flash, sf3 external GPIO10-15
#0x14:dual flash, sf1 internal swap io3 and io0, sf2 external GPIO4-9 swap io3 with io0
#0x15:dual flash, sf1 internal swap io3 with io0 and io2 with cs, sf2 external GPIO4-9 swap io3 with io0
#0x16:dual flash, sf1 internal no swap, sf2 external GPIO4-9 swap io3 with io0
#0x17:dual flash, sf1 internal swap io2 with cs, sf2 external GPIO4-9 swap io3 with io0
#0x24:single flash, sf2 external GPIO4-9
#0x34:dual flash, sf1 internal swap io3 and io0, sf2 external GPIO4-9 no swap
#0x35:dual flash, sf1 internal swap io3 with io0 and io2 with cs, sf2 external GPIO4-9 no swap
#0x36:dual flash, sf1 internal no swap, sf2 external GPIO4-9 no swap
#0x37:dual flash, sf1 internal swap io2 with cs, sf2 external GPIO4-9 no swap
flash_pin = 0x80
#empty for auto, otherwise specified flash para file path: eg: chips/bl616/efuse_bootheader/flash_para.bin
flash_para = chips/bl616/efuse_bootheader/flash_para.bin
decompress_write = false
file = chips/bl616/img_create2/whole_img.bin
address = 00000000
[FLASH2_CFG]
flash2_en = false
#flash size, 0:0.5M, 1:1M, 2:2M, 4: 4M, 8: 8M, 16: 16M
flash1_size = 4
flash2_size = 2
flash2_id = ef4015
flash2_clock_cfg = 0x41
#0:0.5T delay, 1:1T delay, 2:1.5T delay, 3:2T delay
flash2_clock_delay = 0
#0:NIO, 1:DO, 2:QO, 3:DIO, 4:QIO
flash2_io_mode = 0x10
#flash_pin value:
#bit 7 flash pin autoscan
#bit 6 flash select 0: flash1, 1: flash2
#bit 5-0 flash pin cfg:
#0x0: single flash, sf1 internal swap io3 and io0
#0x1: single flash, sf1 internal swap io3 with io0 and io2 with cs
#0x2: single flash, sf1 internal no swap
#0x3: single flash, sf1 internal swap io2 with cs
#0x4: single flash, sf2 external GPIO4-9 and swap io3 with io0
#0x8: single flash, sf3 external GPIO10-15
#0x14:dual flash, sf1 internal swap io3 and io0, sf2 external GPIO4-9 swap io3 with io0
#0x15:dual flash, sf1 internal swap io3 with io0 and io2 with cs, sf2 external GPIO4-9 swap io3 with io0
#0x16:dual flash, sf1 internal no swap, sf2 external GPIO4-9 swap io3 with io0
#0x17:dual flash, sf1 internal swap io2 with cs, sf2 external GPIO4-9 swap io3 with io0
#0x24:single flash, sf2 external GPIO4-9
#0x34:dual flash, sf1 internal swap io3 and io0, sf2 external GPIO4-9 no swap
#0x35:dual flash, sf1 internal swap io3 with io0 and io2 with cs, sf2 external GPIO4-9 no swap
#0x36:dual flash, sf1 internal no swap, sf2 external GPIO4-9 no swap
#0x37:dual flash, sf1 internal swap io2 with cs, sf2 external GPIO4-9 no swap
flash2_pin = 0xC0
#empty for auto, otherwise specified flash para file path: eg: chips/bl616/efuse_bootheader/flash2_para.bin
flash2_para = chips/bl616/efuse_bootheader/flash2_para.bin
[EFUSE_CFG]
burn_en = true
factory_mode = false
security_write = false
file = ../../../Tools/img_tools/efuse_bootheader/efusedata.bin
maskfile = ../../../Tools/img_tools/efuse_bootheader/efusedata_mask.bin

View File

@ -0,0 +1,382 @@
[EFUSE_CFG]
########################################################################
ef_sf_aes_mode = 0
ef_sboot_en = 0
ef_dbg_jtag_0_dis = 0
ef_dbg_mode = 0
###################################################################
ef_dbg_pwd_low = 0
ef_dbg_pwd_high = 0
##########################################
sign_cfg = 0
################################################################
ef_key_slot_0_w0 = 0
ef_key_slot_0_w1 = 0
ef_key_slot_0_w2 = 0
ef_key_slot_0_w3 = 0
ef_key_slot_1_w0 = 0
ef_key_slot_1_w1 = 0
ef_key_slot_1_w2 = 0
ef_key_slot_1_w3 = 0
ef_key_slot_2_w0 = 0
ef_key_slot_2_w1 = 0
ef_key_slot_2_w2 = 0
ef_key_slot_2_w3 = 0
ef_key_slot_3_w0 = 0
ef_key_slot_3_w1 = 0
ef_key_slot_3_w2 = 0
ef_key_slot_3_w3 = 0
wr_lock_key_slot_0 = 0
wr_lock_key_slot_1 = 0
wr_lock_key_slot_2 = 0
wr_lock_key_slot_3 = 0
wr_lock_sw_usage_0 = 0
wr_lock_sw_usage_1 = 0
wr_lock_sw_usage_2 = 0
wr_lock_sw_usage_3 = 0
wr_lock_key_slot_11 = 0
rd_lock_dbg_pwd = 0
rd_lock_key_slot_0 = 0
rd_lock_key_slot_1 = 0
rd_lock_key_slot_2 = 0
rd_lock_key_slot_3 = 0
rd_lock_key_slot_11 = 0
########################################################################
ef_key_slot_4_w0 = 0
ef_key_slot_4_w1 = 0
ef_key_slot_4_w2 = 0
ef_key_slot_4_w3 = 0
ef_key_slot_5_w0 = 0
ef_key_slot_5_w1 = 0
ef_key_slot_5_w2 = 0
ef_key_slot_5_w3 = 0
ef_key_slot_6_w0 = 0
ef_key_slot_6_w1 = 0
ef_key_slot_6_w2 = 0
ef_key_slot_6_w3 = 0
ef_key_slot_7_w0 = 0
ef_key_slot_7_w1 = 0
ef_key_slot_7_w2 = 0
ef_key_slot_7_w3 = 0
ef_key_slot_8_w0 = 0
ef_key_slot_8_w1 = 0
ef_key_slot_8_w2 = 0
ef_key_slot_8_w3 = 0
ef_key_slot_9_w0 = 0
ef_key_slot_9_w1 = 0
ef_key_slot_9_w2 = 0
ef_key_slot_9_w3 = 0
ef_key_slot_10_w0 = 0
ef_key_slot_10_w1 = 0
ef_key_slot_10_w2 = 0
ef_key_slot_10_w3 = 0
ef_dat_1_rsvd_0 = 0
ef_dat_1_rsvd_1 = 0
ef_dat_1_rsvd_2 = 0
########################################################################
wr_lock_rsvd_2 = 0
wr_lock_key_slot_4 = 0
wr_lock_key_slot_5 = 0
wr_lock_key_slot_6 = 0
wr_lock_key_slot_7 = 0
wr_lock_key_slot_8 = 0
wr_lock_key_slot_9 = 0
wr_lock_key_slot_10 = 0
wr_lock_dat_1_rsvd_0 = 0
wr_lock_dat_1_rsvd_1 = 0
wr_lock_dat_1_rsvd_2 = 0
rd_lock_key_slot_4 = 0
rd_lock_key_slot_5 = 0
rd_lock_key_slot_6 = 0
rd_lock_key_slot_7 = 0
rd_lock_key_slot_8 = 0
rd_lock_key_slot_9 = 0
rd_lock_key_slot_10 = 0
########################################################################
ef_zone_00_w0 = 0
ef_zone_00_w1 = 0
ef_zone_00_w2 = 0
ef_zone_00_w3 = 0
ef_zone_01_w0 = 0
ef_zone_01_w1 = 0
ef_zone_01_w2 = 0
ef_zone_01_w3 = 0
ef_zone_02_w0 = 0
ef_zone_02_w1 = 0
ef_zone_02_w2 = 0
ef_zone_02_w3 = 0
ef_zone_03_w0 = 0
ef_zone_03_w1 = 0
ef_zone_03_w2 = 0
ef_zone_03_w3 = 0
ef_zone_04_w0 = 0
ef_zone_04_w1 = 0
ef_zone_04_w2 = 0
ef_zone_04_w3 = 0
ef_zone_05_w0 = 0
ef_zone_05_w1 = 0
ef_zone_05_w2 = 0
ef_zone_05_w3 = 0
ef_zone_06_w0 = 0
ef_zone_06_w1 = 0
ef_zone_06_w2 = 0
ef_zone_06_w3 = 0
ef_zone_07_w0 = 0
ef_zone_07_w1 = 0
ef_zone_07_w2 = 0
ef_zone_07_w3 = 0
ef_zone_08_w0 = 0
ef_zone_08_w1 = 0
ef_zone_08_w2 = 0
ef_zone_08_w3 = 0
ef_zone_09_w0 = 0
ef_zone_09_w1 = 0
ef_zone_09_w2 = 0
ef_zone_09_w3 = 0
ef_zone_10_w0 = 0
ef_zone_10_w1 = 0
ef_zone_10_w2 = 0
ef_zone_10_w3 = 0
ef_zone_11_w0 = 0
ef_zone_11_w1 = 0
ef_zone_11_w2 = 0
ef_zone_11_w3 = 0
ef_zone_12_w0 = 0
ef_zone_12_w1 = 0
ef_zone_12_w2 = 0
ef_zone_12_w3 = 0
ef_zone_13_w0 = 0
ef_zone_13_w1 = 0
ef_zone_13_w2 = 0
ef_zone_13_w3 = 0
ef_zone_14_w0 = 0
ef_zone_14_w1 = 0
ef_zone_14_w2 = 0
ef_zone_14_w3 = 0
ef_zone_15_w0 = 0
ef_zone_15_w1 = 0
ef_zone_15_w2 = 0
ef_zone_15_w3 = 0
[BOOTHEADER_GROUP0_CFG]
magic_code = 0x504e4642
revision = 0x01
#########################flash cfg#############################
flashcfg_magic_code = 0x47464346
#flashcfg_magic_code=0
io_mode = 0x10
#0.5T sfctrl_clk_delay=0 sfctrl_clk_invert=3
#1 T sfctrl_clk_delay=1 sfctrl_clk_invert=1
#1.5T sfctrl_clk_delay=1 sfctrl_clk_invert=3
cont_read_support = 0
sfctrl_clk_delay = 1
sfctrl_clk_invert = 0x01
reset_en_cmd = 0x66
reset_cmd = 0x99
exit_contread_cmd = 0xff
exit_contread_cmd_size = 0x3
jedecid_cmd = 0x9f
jedecid_cmd_dmy_clk = 0
enter_32bits_addr_cmd = 0xb7
exit_32bits_addr_clk = 0xe9
sector_size = 4
mfg_id = 0xff
page_size = 256
chip_erase_cmd = 0xc7
sector_erase_cmd = 0x20
blk32k_erase_cmd = 0x52
blk64k_erase_cmd = 0xd8
write_enable_cmd = 0x06
page_prog_cmd = 0x02
qpage_prog_cmd = 0x32
qual_page_prog_addr_mode = 0
fast_read_cmd = 0x0b
fast_read_dmy_clk = 1
qpi_fast_read_cmd = 0x0b
qpi_fast_read_dmy_clk = 1
fast_read_do_cmd = 0x3b
fast_read_do_dmy_clk = 1
fast_read_dio_cmd = 0xbb
fast_read_dio_dmy_clk = 0
fast_read_qo_cmd = 0x6b
fast_read_qo_dmy_clk = 1
fast_read_qio_cmd = 0xeb
fast_read_qio_dmy_clk = 2
qpi_fast_read_qio_cmd = 0xeb
qpi_fast_read_qio_dmy_clk = 2
qpi_page_prog_cmd = 0x02
write_vreg_enable_cmd = 0x50
wel_reg_index = 0
qe_reg_index = 1
busy_reg_index = 0
wel_bit_pos = 1
qe_bit_pos = 1
busy_bit_pos = 0
wel_reg_write_len = 2
wel_reg_read_len = 1
qe_reg_write_len = 2
qe_reg_read_len = 1
release_power_down = 0xab
busy_reg_read_len = 1
reg_read_cmd0 = 0x05
reg_read_cmd1 = 0x35
reg_write_cmd0 = 0x01
reg_write_cmd1 = 0x01
enter_qpi_cmd = 0x38
exit_qpi_cmd = 0xff
cont_read_code = 0x20
cont_read_exit_code = 0xf0
burst_wrap_cmd = 0x77
burst_wrap_dmy_clk = 0x03
burst_wrap_data_mode = 2
burst_wrap_code = 0x40
de_burst_wrap_cmd = 0x77
de_burst_wrap_cmd_dmy_clk = 0x03
de_burst_wrap_code_mode = 2
de_burst_wrap_code = 0xf0
sector_erase_time = 300
blk32k_erase_time = 1200
blk64k_erase_time = 1200
page_prog_time = 50
chip_erase_time = 200000
power_down_delay = 20
qe_data = 0
flashcfg_crc32 = 0
#########################clk cfg#####################################
clkcfg_magic_code = 0x47464350
#clkcfg_magic_code=0
#0:None,1:24M,2:32M,3:38.4M,4:40M,5:26M,6:RC32M
xtal_type = 7
#mcu_clk 0:RC32M;1:XTAL;2:aupll_div2;3:aupll_div1;4:wifipll_240M;5:wifipll_320M
mcu_clk = 5
mcu_clk_div = 0
mcu_bclk_div = 0
mcu_pbclk_div = 3
#0:mcu pbclk,1:cpupll 200M,2:wifipll 320M,3:cpupll 400M
emi_clk = 2
emi_clk_div = 1
#flash_clk_type 0:wifipll_120M;1:xtal;2:aupll_div5;3:muxpll_80M;4:bclk;5:wifipll_96M
flash_clk_type = 1
flash_clk_div = 0
wifipll_pu = 1
aupll_pu = 1
rsvd0 = 0
clkcfg_crc32 = 0
########################boot cfg#####################################
#1:ECC
sign = 0
#1:AES128 CTR,2:AES256 CTR,3:AES192 CTR,4:AES128 XTS
encrypt_type = 0
key_sel = 0
xts_mode = 0
aes_region_lock = 0
no_segment = 1
boot2_enable = 0
boot2_rollback = 0
cpu_master_id = 0
notload_in_bootrom = 0
crc_ignore = 0
hash_ignore = 0
power_on_mm = 1
em_sel = 1
cmds_en = 1
#0:cmds bypass wrap commands to macro, original mode;
#1:cmds handle wrap commands, original mode;
#2:cmds bypass wrap commands to macro, cmds force wrap16*4 splitted into two wrap8*4;
#3:cmds handle wrap commands, cmds force wrap16*4 splitted into two wrap8*4
cmds_wrap_mode=2
#0:SF_CTRL_WRAP_LEN_8, 1:SF_CTRL_WRAP_LEN_16, 2:SF_CTRL_WRAP_LEN_32,
#3:SF_CTRL_WRAP_LEN_64, 9: SF_CTRL_WRAP_LEN_4096
cmds_wrap_len = 2
icache_invalid = 1
dcache_invalid = 1
fpga_halt_release = 0
########################image cfg####################################
#flash controller offset
group_image_offset = 0x2000
aes_region_len = 0
#total image len or segment count
img_len_cnt = 0x100
#img hash
hash_0 = 0xdeadbeef
hash_1 = 0
hash_2 = 0
hash_3 = 0
hash_4 = 0
hash_5 = 0
hash_6 = 0
hash_7 = 0
########################CPU M0 cfg###################################
m0_config_enable = 1
m0_halt_cpu = 0
m0_cache_enable = 0
m0_cache_wa = 0
m0_cache_wb = 0
m0_cache_wt = 0
m0_cache_way_dis = 0
m0_reserved = 0
#img RAM address or flash offset
m0_image_address_offset = 0x0
m0_boot_entry = 0xA0000000
m0_msp_val = 0
boot2_pt_table_0 = 0
boot2_pt_table_1 = 0
flashCfgTableAddr = 0
flashCfgTableLen = 0
########################patch on read################################
patch_read_addr0 = 0
patch_read_value0 = 0
patch_read_addr1 = 0
patch_read_value1 = 0
patch_read_addr2 = 0
patch_read_value2 = 0
########################patch on jump################################
patch_jump_addr0 = 0
patch_jump_value0 = 0
patch_jump_addr1 = 0
patch_jump_value1 = 0
patch_jump_addr2 = 0
patch_jump_value2 = 0
reserved = 0
crc32 = 0xdeadbeef

View File

@ -0,0 +1,16 @@
[Img_Group0_Cfg]
boot_header_file = wb03\efuse_bootheader/bootheader.bin
efuse_file = wb03\efuse_bootheader/efusedata.bin
efuse_mask_file = wb03\efuse_bootheader/efusedata_mask.bin
encrypt_key_org = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
aesiv_file = img_create/aesiv.bin
publickey_file = img_create/publickey_uecc.pem
privatekey_file_uecc = img_create/privatekey_uecc.pem
segheader_file = img_create/segheader.bin
segdata_file = wb03\img_create\IPC\chiptest_ipc_basic.bin
bootinfo_file = wb03\img_create2/bootinfo.bin
img_file = wb03\img_create/img.bin
whole_img_file = wb03\img_create/wholeimg_if.bin
aes_key_org = ""
aes_iv = ""

View File

@ -0,0 +1,16 @@
[Img_Group0_Cfg]
boot_header_file = wb03\efuse_bootheader/bootheader.bin
efuse_file = wb03\efuse_bootheader/efusedata.bin
efuse_mask_file = wb03\efuse_bootheader/efusedata_mask.bin
encrypt_key_org = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
aesiv_file = img_create/aesiv.bin
publickey_file = img_create/publickey_uecc.pem
privatekey_file_uecc = img_create/privatekey_uecc.pem
segheader_file = img_create/segheader.bin
segdata_file = wb03\img_create\IPC\chiptest_ipc_basic.bin
bootinfo_file = wb03\img_create2/bootinfo.bin
img_file = wb03\img_create/img.bin
whole_img_file = wb03\img_create/wholeimg_if.bin
aes_key_org = ""
aes_iv = ""

View File

@ -0,0 +1,16 @@
[Img_Group0_Cfg]
boot_header_file = wb03\efuse_bootheader/bootheader.bin
efuse_file = wb03\efuse_bootheader/efusedata.bin
efuse_mask_file = wb03\efuse_bootheader/efusedata_mask.bin
encrypt_key_org = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
aesiv_file = img_create/aesiv.bin
publickey_file = img_create/publickey_uecc.pem
privatekey_file_uecc = img_create/privatekey_uecc.pem
segheader_file = img_create/segheader.bin
segdata_file = wb03\img_create\IPC\chiptest_ipc_basic.bin
bootinfo_file = wb03\img_create2/bootinfo.bin
img_file = wb03\img_create/img.bin
whole_img_file = wb03\img_create/wholeimg_if.bin
aes_key_org = ""
aes_iv = ""

View File

@ -0,0 +1,16 @@
[Img_Group0_Cfg]
boot_header_file = wb03\efuse_bootheader/bootheader.bin
efuse_file = wb03\efuse_bootheader/efusedata.bin
efuse_mask_file = wb03\efuse_bootheader/efusedata_mask.bin
encrypt_key_org = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
aesiv_file = img_create/aesiv.bin
publickey_file = img_create/publickey_uecc.pem
privatekey_file_uecc = img_create/privatekey_uecc.pem
segheader_file = img_create/segheader.bin
segdata_file = wb03\img_create\IPC\chiptest_ipc_basic.bin
bootinfo_file = wb03\img_create2/bootinfo.bin
img_file = wb03\img_create/img.bin
whole_img_file = wb03\img_create/wholeimg_if.bin
aes_key_org = ""
aes_iv = ""

View File

@ -0,0 +1,126 @@
[pt_table]
#partition table is 4K in size
address0 = 0xE000
address1 = 0xF000
# If version is 2, It will use dynamic mode.
version = 2
[[pt_entry]]
type = 16
name = "Boot2"
device = 0
address0 = 0
size0 = 0xE000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
# If header is 1, it will add the header.
header = 1
# If header is 1 and security is 1, It will be encrypted.
security = 1
[[pt_entry]]
type = 0
name = "FW"
device = 0
address0 = 0x10000
size0 = 0xE0000
address1 = 0xF0000
size1 = 0x80000
# compressed image must set len,normal image can left it to 0
len = 0
# If header is 1, it will add the header.
header = 1
# If header is 1 and security is 1, It will be encrypted.
security= 1
[[pt_entry]]
type = 10
name = "mfg"
device = 0
address0 = 0xE0000
size0 = 0x80000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
# If header is 1, it will add the header.
header = 1
# If header is 1 and security is 1, It will be encrypted.
security= 1
[[pt_entry]]
type = 2
name = "media"
device = 0
address0 = 0x170000
size0 = 0x79000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
# If header is 1, it will add the header.
header = 0
# If header is 1 and security is 1, It will be encrypted.
security= 0
[[pt_entry]]
type = 3
name = "PSM"
device = 0
address0 = 0x1E9000
size0 = 0x8000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
# If header is 1, it will add the header.
header = 0
# If header is 1 and security is 1, It will be encrypted.
security= 0
[[pt_entry]]
type = 4
name = "KEY"
device = 0
address0 = 0x1F1000
size0 = 0x2000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
# If header is 1, it will add the header.
header = 0
# If header is 1 and security is 1, It will be encrypted.
security= 0
[[pt_entry]]
type = 5
name = "DATA"
device = 0
address0 = 0x1F3000
size0 = 0x5000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
# If header is 1, it will add the header.
header = 0
# If header is 1 and security is 1, It will be encrypted.
security = 0
[[pt_entry]]
type = 6
name = "factory"
device = 0
address0 = 0x1F8000
size0 = 0x8000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
# If header is 1, it will add the header.
header = 0
# If header is 1 and security is 1, It will be encrypted.
security= 0

View File

@ -0,0 +1,126 @@
[pt_table]
#partition table is 4K in size
address0 = 0xE000
address1 = 0xF000
# If version is 2, It will use dynamic mode.
version = 2
[[pt_entry]]
type = 16
name = "Boot2"
device = 0
address0 = 0
size0 = 0xE000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
# If header is 1, it will add the header.
header = 1
# If header is 1 and security is 1, It will be encrypted.
security = 1
[[pt_entry]]
type = 0
name = "FW"
device = 0
address0 = 0x10000
size0 = 0x1F8000
address1 = 0x208000
size1 = 0x168000
# compressed image must set len,normal image can left it to 0
len = 0
# If header is 1, it will add the header.
header = 1
# If header is 1 and security is 1, It will be encrypted.
security= 1
[[pt_entry]]
type = 10
name = "mfg"
device = 0
address0 = 0x208000
size0 = 0x168000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
# If header is 1, it will add the header.
header = 1
# If header is 1 and security is 1, It will be encrypted.
security= 1
[[pt_entry]]
type = 2
name = "media"
device = 0
address0 = 0x370000
size0 = 0x79000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
# If header is 1, it will add the header.
header = 0
# If header is 1 and security is 1, It will be encrypted.
security= 0
[[pt_entry]]
type = 3
name = "PSM"
device = 0
address0 = 0x3E9000
size0 = 0x8000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
# If header is 1, it will add the header.
header = 0
# If header is 1 and security is 1, It will be encrypted.
security= 0
[[pt_entry]]
type = 4
name = "KEY"
device = 0
address0 = 0x3F1000
size0 = 0x2000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
# If header is 1, it will add the header.
header = 0
# If header is 1 and security is 1, It will be encrypted.
security= 0
[[pt_entry]]
type = 5
name = "DATA"
device = 0
address0 = 0x3F3000
size0 = 0x5000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
# If header is 1, it will add the header.
header = 0
# If header is 1 and security is 1, It will be encrypted.
security = 0
[[pt_entry]]
type = 6
name = "factory"
device = 0
address0 = 0x3F8000
size0 = 0x8000
address1 = 0
size1 = 0
# compressed image must set len,normal image can left it to 0
len = 0
# If header is 1, it will add the header.
header = 0
# If header is 1 and security is 1, It will be encrypted.
security= 0

View File

@ -0,0 +1,6 @@
[ota]
#max length of version_hardware is 15 bytes
version_hardware = "BFL_Module_v1.1"
#max length of version_software is 15 bytes
version_software = "EVENT_V1.1.1"
version_header = "BL60X_OTA_Ver1.0"

View File

@ -0,0 +1,116 @@
/dts-v1/;
// version: 17
// last_comp_version: 16
// boot_cpuid_phys: 0x0
/ {
model = "bl bl702 AVB board";
compatible = "bl,bl702-sample", "bl,bl702-common";
#address-cells = <0x1>;
#size-cells = <0x1>;
gpio {
#address-cells = <1>;
#size-cells = <1>;
max_num = <40>;
gpio0 {
status = "okay";
pin = <22>;
feature = "led";
active = "Hi"; //Hi or Lo
mode = "onoff"; //blink or hearbeat or onoff
time = <100>; //duration for this mode
};
gpio1 {
status = "disable";
pin = <6>;
feature = "led";
active = "Hi"; //Hi or Lo
mode = "blink"; //blink or hearbeat or onoff
time = <100>; //duration for this mode
};
gpio2 {
status = "disable";
pin = <5>;
feature = "button";
active = "Hi";
mode = "multipress";
button {
debounce = <10>;
short_press_ms {
start = <30>;
end = <4000>;
kevent = <2>;
};
long_press_ms {
start = <4001>;
end = <10000>;
kevent = <3>;
};
longlong_press_ms {
start = <10001>;
kevent = <4>;
};
trig_level = "Lo";
};
hbn_use = "disable";
};
};
uart {
#address-cells = <1>;
#size-cells = <1>;
uart@4000A000 {
status = "okay";
id = <0>;
compatible = "bl702_uart";
path = "/dev/ttyS0";
baudrate = <2000000>;
pin {
rx = <15>;
tx = <14>;
};
feature {
tx = "okay";
rx = "okay";
cts = "disable";
rts = "disable";
};
};
uart@4000A100 {
status = "disable";
id = <1>;
compatible = "bl702_uart";
path = "/dev/ttyS1";
baudrate = <115200>;
pin {
rx = <3>;
tx = <4>;
};
feature {
tx = "okay";
rx = "okay";
cts = "disable";
rts = "disable";
};
};
};
wireless {
#address-cells = <1>;
#size-cells = <1>;
mac {
mode = "MBF"; // 'M': manufacture; 'B': efuse; 'F': flash
mac_addr = [C8 43 57 82 73 40 88 88];
};
brd_rf {
xtal_mode = "MF";
xtal = <36 36 0 60 60>;
pwr = <14>; //range:0~14dbm
pwr_mode = "bf";//B: only use power offset in EFUSE; b: use power offset in EFUSE with incremental mode; F: only use power offset in Flash; f: use power offset in Flash with incremental mode
//pwr_offset = <10 10>;//due to the limit of current DTC, negative value is used. So we work around by adding all the poweroffset with 10. so 8 represents -2; 10 represents 0; 13 represents 3
pwr_offset_zigbee = <10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10>;
pwr_offset_ble = <10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10>;
};
rf_temp {
en_tcal = <0>;
};
};
};

View File

@ -0,0 +1,116 @@
/dts-v1/;
// version: 17
// last_comp_version: 16
// boot_cpuid_phys: 0x0
/ {
model = "bl bl702 AVB board";
compatible = "bl,bl702-sample", "bl,bl702-common";
#address-cells = <0x1>;
#size-cells = <0x1>;
gpio {
#address-cells = <1>;
#size-cells = <1>;
max_num = <40>;
gpio0 {
status = "okay";
pin = <22>;
feature = "led";
active = "Hi"; //Hi or Lo
mode = "onoff"; //blink or hearbeat or onoff
time = <100>; //duration for this mode
};
gpio1 {
status = "disable";
pin = <6>;
feature = "led";
active = "Hi"; //Hi or Lo
mode = "blink"; //blink or hearbeat or onoff
time = <100>; //duration for this mode
};
gpio2 {
status = "disable";
pin = <5>;
feature = "button";
active = "Hi";
mode = "multipress";
button {
debounce = <10>;
short_press_ms {
start = <30>;
end = <4000>;
kevent = <2>;
};
long_press_ms {
start = <4001>;
end = <10000>;
kevent = <3>;
};
longlong_press_ms {
start = <10001>;
kevent = <4>;
};
trig_level = "Lo";
};
hbn_use = "disable";
};
};
uart {
#address-cells = <1>;
#size-cells = <1>;
uart@4000A000 {
status = "okay";
id = <0>;
compatible = "bl702_uart";
path = "/dev/ttyS0";
baudrate = <2000000>;
pin {
rx = <15>;
tx = <14>;
};
feature {
tx = "okay";
rx = "okay";
cts = "disable";
rts = "disable";
};
};
uart@4000A100 {
status = "disable";
id = <1>;
compatible = "bl702_uart";
path = "/dev/ttyS1";
baudrate = <115200>;
pin {
rx = <3>;
tx = <4>;
};
feature {
tx = "okay";
rx = "okay";
cts = "disable";
rts = "disable";
};
};
};
wireless {
#address-cells = <1>;
#size-cells = <1>;
mac {
mode = "MBF"; // 'M': manufacture; 'B': efuse; 'F': flash
mac_addr = [C8 43 57 82 73 40 88 88];
};
brd_rf {
xtal_mode = "MF";
xtal = <36 36 0 60 60>;
pwr = <14>; //range:0~14dbm
pwr_mode = "bf";//B: only use power offset in EFUSE; b: use power offset in EFUSE with incremental mode; F: only use power offset in Flash; f: use power offset in Flash with incremental mode
//pwr_offset = <10 10>;//due to the limit of current DTC, negative value is used. So we work around by adding all the poweroffset with 10. so 8 represents -2; 10 represents 0; 13 represents 3
pwr_offset_zigbee = <10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10>;
pwr_offset_ble = <10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10>;
};
rf_temp {
en_tcal = <0>;
};
};
};

View File

@ -0,0 +1,116 @@
/dts-v1/;
// version: 17
// last_comp_version: 16
// boot_cpuid_phys: 0x0
/ {
model = "bl bl702 AVB board";
compatible = "bl,bl702-sample", "bl,bl702-common";
#address-cells = <0x1>;
#size-cells = <0x1>;
gpio {
#address-cells = <1>;
#size-cells = <1>;
max_num = <40>;
gpio0 {
status = "okay";
pin = <22>;
feature = "led";
active = "Hi"; //Hi or Lo
mode = "onoff"; //blink or hearbeat or onoff
time = <100>; //duration for this mode
};
gpio1 {
status = "disable";
pin = <6>;
feature = "led";
active = "Hi"; //Hi or Lo
mode = "blink"; //blink or hearbeat or onoff
time = <100>; //duration for this mode
};
gpio2 {
status = "disable";
pin = <5>;
feature = "button";
active = "Hi";
mode = "multipress";
button {
debounce = <10>;
short_press_ms {
start = <30>;
end = <4000>;
kevent = <2>;
};
long_press_ms {
start = <4001>;
end = <10000>;
kevent = <3>;
};
longlong_press_ms {
start = <10001>;
kevent = <4>;
};
trig_level = "Lo";
};
hbn_use = "disable";
};
};
uart {
#address-cells = <1>;
#size-cells = <1>;
uart@4000A000 {
status = "okay";
id = <0>;
compatible = "bl702_uart";
path = "/dev/ttyS0";
baudrate = <2000000>;
pin {
rx = <15>;
tx = <14>;
};
feature {
tx = "okay";
rx = "okay";
cts = "disable";
rts = "disable";
};
};
uart@4000A100 {
status = "disable";
id = <1>;
compatible = "bl702_uart";
path = "/dev/ttyS1";
baudrate = <115200>;
pin {
rx = <3>;
tx = <4>;
};
feature {
tx = "okay";
rx = "okay";
cts = "disable";
rts = "disable";
};
};
};
wireless {
#address-cells = <1>;
#size-cells = <1>;
mac {
mode = "MBF"; // 'M': manufacture; 'B': efuse; 'F': flash
mac_addr = [C8 43 57 82 73 40 88 88];
};
brd_rf {
xtal_mode = "MF";
xtal = <36 36 0 60 60>;
pwr = <14>; //range:0~14dbm
pwr_mode = "bf";//B: only use power offset in EFUSE; b: use power offset in EFUSE with incremental mode; F: only use power offset in Flash; f: use power offset in Flash with incremental mode
//pwr_offset = <10 10>;//due to the limit of current DTC, negative value is used. So we work around by adding all the poweroffset with 10. so 8 represents -2; 10 represents 0; 13 represents 3
pwr_offset_zigbee = <10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10>;
pwr_offset_ble = <10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10>;
};
rf_temp {
en_tcal = <0>;
};
};
};

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,64 @@
[LOAD_CFG]
#jlink or uart
interface = uart
device = COM1
speed_uart_boot = 500000
speed_uart_load = 500000
#cklink usb vid|pid
cklink_vidpid = 42bf|b210
cklink_type = CKLink_Lite_Vendor-rog
#eg: rv_dbg_plus, ft2232hl, ft2232d
openocd_config = rv_dbg_plus
auto_burn = false
speed_jlink = 2000
#0:without load, 1:eflash_loader load
load_function = 1
do_reset = true
#reset retry+hold time
reset_hold_time = 50
shake_hand_delay = 100
reset_revert = false
cutoff_time = 50
shake_hand_retry = 3
flash_burn_retry = 1
checksum_err_retry = 3
#1: 32M, 2: RC32M
#xtal_type = 2
erase_time_out = 15000
#chiptype=702
eflash_loader_file=chips/bl702/eflash_loader/eflash_loader_32m.bin
check_mac = true
#0:no erase,1:programmed section erase,2:chip erase
erase = 1
# switch eflash_loader command log save
local_log = false
#0:verify by calculating SHA256(xip), >0:read back verify and verify by calculating SHA256(sbus)
verify = 0
tx_size = 2056
cpu_reset_after_load = false
boot2_isp_mode = 0
isp_mode_speed = 2000000
isp_shakehand_timeout = 0
[FLASH_CFG]
flash_id = c84015
#flash clock 0:72M, 1:36M, 2:24M, 3:18M
flash_clock_cfg = 2
#0:NIO, 1:DO, 2:QO, 3:DIO, 4:QIO
flash_io_mode = 1
#flash_pin value:
#bit 2-3 = flash_cfg: 0: external gpio 23-28, 1: internal 512K, 2: internal 1M, 3: external gpio 17-22
#bit 0-1 = swap_cfg: 0: do not swap, 1: swap cs&io2, 2: swap io0&io3, 3: swap cs&io2 io0&io3 both
flash_pin = ""
#empty for auto, otherwise specified para file path: eg: chips/bl702/efuse_bootheader/flash_para.bin
flash_para = chips/bl702/efuse_bootheader/flash_para.bin
decompress_write = false
file = chips/bl702/img_create/bootinfo_boot2.bin chips/bl702/img_create/img_boot2.bin chips/bl702/partition/partition.bin chips/bl702/partition/partition.bin
address = 00000000 00002000 e000 f000
[EFUSE_CFG]
burn_en = true
factory_mode = false
security_write = false
file = ../../../Tools/img_tools/efuse_bootheader/efusedata.bin
maskfile = ../../../Tools/img_tools/efuse_bootheader/efusedata_mask.bin

View File

@ -0,0 +1,196 @@
[EFUSE_CFG]
########################################################################
#2bits
ef_sf_aes_mode = 0
#2bits
ef_sboot_sign_mode = 0
#2bits
ef_sboot_en = 0
#2bits
ef_dbg_jtag_dis = 0
#4bits
ef_dbg_mode = 0
#32bits
ef_dbg_pwd_low = 0
#32bits
ef_dbg_pwd_high = 0
###################################################################
ef_key_slot_2_w0 = 0
ef_key_slot_2_w1 = 0
ef_key_slot_2_w2 = 0
ef_key_slot_2_w3 = 0
ef_key_slot_3_w0 = 0
ef_key_slot_3_w1 = 0
ef_key_slot_3_w2 = 0
ef_key_slot_3_w3 = 0
ef_key_slot_4_w0 = 0
ef_key_slot_4_w1 = 0
ef_key_slot_4_w2 = 0
ef_key_slot_4_w3 = 0
wr_lock_key_slot_4_l = 0
wr_lock_dbg_pwd = 0
wr_lock_key_slot_2 = 0
wr_lock_key_slot_3 = 0
wr_lock_key_slot_4_h = 0
rd_lock_dbg_pwd = 0
rd_lock_key_slot_2 = 0
rd_lock_key_slot_3 = 0
rd_lock_key_slot_4 = 0
[BOOTHEADER_CFG]
magic_code = 0x504e4642
revision = 0x01
#########################flash cfg#############################
flashcfg_magic_code = 0x47464346
#flashcfg_magic_code=0
io_mode = 0x10
cont_read_support = 0
sfctrl_clk_delay = 0
sfctrl_clk_invert = 0x03
reset_en_cmd = 0x66
reset_cmd = 0x99
exit_contread_cmd = 0xff
exit_contread_cmd_size = 3
jedecid_cmd = 0x9f
jedecid_cmd_dmy_clk = 0
qpi_jedecid_cmd = 0x9f
qpi_jedecid_dmy_clk = 0
sector_size = 4
mfg_id = 0xff
page_size = 256
chip_erase_cmd = 0xc7
sector_erase_cmd = 0x20
blk32k_erase_cmd = 0x52
blk64k_erase_cmd = 0xd8
write_enable_cmd = 0x06
page_prog_cmd = 0x02
qpage_prog_cmd = 0x32
qual_page_prog_addr_mode = 0
fast_read_cmd = 0x0b
fast_read_dmy_clk = 1
qpi_fast_read_cmd = 0x0b
qpi_fast_read_dmy_clk = 1
fast_read_do_cmd = 0x3b
fast_read_do_dmy_clk = 1
fast_read_dio_cmd = 0xbb
fast_read_dio_dmy_clk = 0
fast_read_qo_cmd = 0x6b
fast_read_qo_dmy_clk = 1
fast_read_qio_cmd = 0xeb
fast_read_qio_dmy_clk = 2
qpi_fast_read_qio_cmd = 0xeb
qpi_fast_read_qio_dmy_clk = 2
qpi_page_prog_cmd = 0x02
write_vreg_enable_cmd = 0x50
wel_reg_index = 0
qe_reg_index = 1
busy_reg_index = 0
wel_bit_pos = 1
qe_bit_pos = 1
busy_bit_pos = 0
wel_reg_write_len = 2
wel_reg_read_len = 1
qe_reg_write_len = 2
qe_reg_read_len = 1
release_power_down = 0xab
busy_reg_read_len = 1
reg_read_cmd0 = 0x05
reg_read_cmd1 = 0x35
reg_write_cmd0 = 0x01
reg_write_cmd1 = 0x01
enter_qpi_cmd = 0x38
exit_qpi_cmd = 0xff
cont_read_code = 0xa0
cont_read_exit_code = 0xff
burst_wrap_cmd = 0x77
burst_wrap_dmy_clk = 0x03
burst_wrap_data_mode = 2
burst_wrap_code = 0x40
de_burst_wrap_cmd = 0x77
de_burst_wrap_cmd_dmy_clk = 0x03
de_burst_wrap_code_mode = 2
de_burst_wrap_code = 0xF0
sector_erase_time = 300
blk32k_erase_time = 1200
blk64k_erase_time = 1200
page_prog_time = 5
chip_erase_time = 200000
power_down_delay = 20
qe_data = 0
flashcfg_crc32 = 0
#########################clk cfg####################################
clkcfg_magic_code = 0x47464350
#clkcfg_magic_code=0
#0:Not use XTAL to set PLL, 1:XTAL is 32M, 2:XTAL is RC32M
xtal_type = 1
#0:RC32M, 1:XTAL, 2:PLL 57.6M, 3:PLL 96M, 4:PLL 144M
pll_clk = 1
hclk_div = 0
bclk_div = 0
#0:144M, 1:XCLK(RC32M or XTAL), 2:57.6M, 3:72M, 4:BCLK, 5:96M
flash_clk_type = 1
flash_clk_div = 0
clkcfg_crc32 = 0
########################boot cfg####################################
#1:ECC
sign = 0
#1:AES128,2:AES256,3:AES192
encrypt_type = 0
key_sel = 1
no_segment = 1
cache_enable = 1
notload_in_bootrom = 0
aes_region_lock = 0
cache_way_disable = 0x00
crc_ignore = 1
hash_ignore = 1
boot2_enable=1
boot2_rollback=0
########################image cfg####################################
#total image len or segment count
img_len = 0x100
bootentry = 0
#img RAM address or flash offset
img_start = 0x2000
#img hash
hash_0 = 0xdeadbeef
hash_1 = 0
hash_2 = 0
hash_3 = 0
hash_4 = 0
hash_5 = 0
hash_6 = 0
hash_7 = 0
#address of partition tables for boot2 in bootrom
boot2_pt_table_0=0x1000
boot2_pt_table_1=0x2000
crc32 = 0xdeadbeef

View File

@ -0,0 +1,15 @@
[Img_Cfg]
boot_header_file =
efuse_file =
efuse_mask_file =
encrypt_key_org = 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F
aesiv_file = img_create/aesiv_cpu0.bin
publickey_file = img_create/publickey_uecc.pem
privatekey_file_uecc = img_create/privatekey_uecc.pem
segheader_file = img_create/segheader.bin
segdata_file =
bootinfo_file =
img_file =
whole_img_file =
aes_key_org = 00000000000000000000000000000000
aes_iv = 00000000000000000000000000000000

Some files were not shown because too many files have changed in this diff Show More