soc: ambiq: apollo3x: Flash-controller reconfigured for mcuboot
Due to Apollo3's internal bootloader, zephyr build is not able to create correct flash address on linker.cmd while using mcuboot. The PR configures flash-controller start address to solve this problem. Test board: rakwireless/rak11720 Test project: samples/subsys/mgmt/mcumgr/smp_svr Signed-off-by: Sercan Erat <sercanerat@gmail.com>
This commit is contained in:
parent
9edca5e1f5
commit
662d9c75d0
4 changed files with 66 additions and 10 deletions
|
@ -2,6 +2,7 @@
|
|||
#include <ambiq/ambiq_apollo3_blue.dtsi>
|
||||
|
||||
#include "apollo3_evb-pinctrl.dtsi"
|
||||
#include <zephyr/dt-bindings/input/input-event-codes.h>
|
||||
|
||||
/ {
|
||||
model = "Ambiq Apollo3 Blue evaluation board";
|
||||
|
@ -13,9 +14,11 @@
|
|||
zephyr,flash = &flash0;
|
||||
zephyr,console = &uart0;
|
||||
zephyr,shell-uart = &uart0;
|
||||
zephyr,uart-mcumgr = &uart0;
|
||||
zephyr,uart-pipe = &uart0;
|
||||
zephyr,flash-controller = &flash;
|
||||
zephyr,bt_hci = &bt_hci_apollo;
|
||||
zephyr,code-partition = &slot0_partition;
|
||||
};
|
||||
|
||||
aliases {
|
||||
|
@ -25,6 +28,8 @@
|
|||
led2 = &led2;
|
||||
sw0 = &button0;
|
||||
sw1 = &button1;
|
||||
bootloader-led0 = &led0;
|
||||
mcuboot-led0 = &led0;
|
||||
};
|
||||
|
||||
leds {
|
||||
|
@ -56,14 +61,17 @@
|
|||
button0: button_0 {
|
||||
gpios = <&gpio0_31 16 GPIO_ACTIVE_LOW>;
|
||||
label = "BTN0";
|
||||
zephyr,code = <INPUT_KEY_0>;
|
||||
};
|
||||
button1: button_1 {
|
||||
gpios = <&gpio0_31 18 GPIO_ACTIVE_LOW>;
|
||||
label = "BTN1";
|
||||
zephyr,code = <INPUT_KEY_1>;
|
||||
};
|
||||
button2: button_2 {
|
||||
gpios = <&gpio0_31 19 GPIO_ACTIVE_LOW>;
|
||||
label = "BTN2";
|
||||
zephyr,code = <INPUT_KEY_2>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -77,10 +85,28 @@
|
|||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
/* Set 16KB of storage at the end of the 976KB of flash */
|
||||
storage_partition: partition@f0000 {
|
||||
internal_boot_partition: partition@0 {
|
||||
label = "internal_bootloader";
|
||||
reg = <0x00000000 0xc000>;
|
||||
};
|
||||
|
||||
boot_partition: partition@c000 {
|
||||
label = "mcuboot";
|
||||
reg = <0x0000c000 0xc000>;
|
||||
};
|
||||
slot0_partition: partition@18000 {
|
||||
label = "image-0";
|
||||
reg = <0x00018000 0x72000>;
|
||||
};
|
||||
slot1_partition: partition@8a000 {
|
||||
label = "image-1";
|
||||
reg = <0x0008a000 0x72000>;
|
||||
};
|
||||
|
||||
/* Set 16KB of storage at the end of the 1024KB of flash */
|
||||
storage_partition: partition@fc000 {
|
||||
label = "storage";
|
||||
reg = <0x000f0000 0x4000>;
|
||||
reg = <0x000fc000 0x4000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
#include <ambiq/ambiq_apollo3_blue.dtsi>
|
||||
#include <zephyr/dt-bindings/lora/sx126x.h>
|
||||
#include "rak11720_apollo3-pinctrl.dtsi"
|
||||
#include <zephyr/dt-bindings/input/input-event-codes.h>
|
||||
|
||||
/ {
|
||||
model = "RAKwireless RAK11720 WisBlock LPWAN Module";
|
||||
|
@ -19,9 +20,11 @@
|
|||
zephyr,flash = &flash0;
|
||||
zephyr,console = &uart0;
|
||||
zephyr,shell-uart = &uart0;
|
||||
zephyr,uart-mcumgr = &uart0;
|
||||
zephyr,uart-pipe = &uart0;
|
||||
zephyr,flash-controller = &flash;
|
||||
zephyr,bt_hci = &bt_hci_apollo;
|
||||
zephyr,code-partition = &slot0_partition;
|
||||
};
|
||||
|
||||
aliases {
|
||||
|
@ -29,6 +32,8 @@
|
|||
led0 = &blue_led;
|
||||
led1 = &green_led;
|
||||
lora0 = &lora;
|
||||
bootloader-led0 = &blue_led;
|
||||
mcuboot-led0 = &blue_led;
|
||||
};
|
||||
|
||||
leds {
|
||||
|
@ -53,10 +58,28 @@
|
|||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
/* Set 16KB of storage at the end of the 976KB of flash */
|
||||
storage_partition: partition@f0000 {
|
||||
internal_boot_partition: partition@0 {
|
||||
label = "internal_bootloader";
|
||||
reg = <0x00000000 0xc000>;
|
||||
};
|
||||
|
||||
boot_partition: partition@c000 {
|
||||
label = "mcuboot";
|
||||
reg = <0x0000c000 0xc000>;
|
||||
};
|
||||
slot0_partition: partition@18000 {
|
||||
label = "image-0";
|
||||
reg = <0x00018000 0x72000>;
|
||||
};
|
||||
slot1_partition: partition@8a000 {
|
||||
label = "image-1";
|
||||
reg = <0x0008a000 0x72000>;
|
||||
};
|
||||
|
||||
/* Set 16KB of storage at the end of the 1024KB of flash */
|
||||
storage_partition: partition@fc000 {
|
||||
label = "storage";
|
||||
reg = <0x000f0000 0x4000>;
|
||||
reg = <0x000fc000 0x4000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
|
@ -76,17 +76,17 @@
|
|||
soc {
|
||||
compatible = "ambiq,apollo3-blue", "ambiq,apollo3x", "simple-bus";
|
||||
|
||||
flash: flash-controller@c000 {
|
||||
flash: flash-controller@0 {
|
||||
compatible = "ambiq,flash-controller";
|
||||
reg = <0x0000c000 0xf4000>;
|
||||
reg = <0x00000000 0x100000>;
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
/* Flash region */
|
||||
flash0: flash@c000 {
|
||||
flash0: flash@0 {
|
||||
compatible = "soc-nv-flash";
|
||||
reg = <0x0000c000 0xf4000>;
|
||||
reg = <0x00000000 0x100000>;
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -37,4 +37,11 @@ config BT_HCI_ACL_FLOW_CONTROL
|
|||
|
||||
endif # BT
|
||||
|
||||
if !BOOTLOADER_MCUBOOT
|
||||
|
||||
config FLASH_LOAD_OFFSET
|
||||
default 0xc000
|
||||
|
||||
endif # !BOOTLOADER_MCUBOOT
|
||||
|
||||
endif # SOC_APOLLO3_BLUE
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue