Skip to content

Commit 9115cda

Browse files
committed
lk2nd: device: 2nd: Split recovery partition too
Useful for Android recovery that runs mainline kernel
1 parent 3b49c51 commit 9115cda

File tree

3 files changed

+36
-15
lines changed

3 files changed

+36
-15
lines changed

lk2nd/device/2nd/partition.c

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -107,9 +107,15 @@ static void lk2nd_partition_split_mmc(void)
107107
{
108108
uint32_t block_size __UNUSED = mmc_get_device_blocksize();
109109

110-
#ifdef LK2ND_PARTITION_SIZE
111-
partition_split_mmc(LK2ND_PARTITION_BASE, LK2ND_PARTITION_NAME,
112-
LK2ND_PARTITION_SIZE / block_size, false);
110+
#ifdef LK2ND_BOOT_PARTITION_SIZE
111+
partition_split_mmc(LK2ND_BOOT_PARTITION_BASE,
112+
LK2ND_BOOT_PARTITION_NAME,
113+
LK2ND_BOOT_PARTITION_SIZE / block_size, false);
114+
#endif
115+
#ifdef LK2ND_RECOVERY_PARTITION_SIZE
116+
partition_split_mmc(LK2ND_RECOVERY_PARTITION_BASE,
117+
LK2ND_RECOVERY_PARTITION_NAME,
118+
LK2ND_RECOVERY_PARTITION_SIZE / block_size, false);
113119
#endif
114120
}
115121

@@ -121,9 +127,15 @@ static void lk2nd_partition_split_flash(void)
121127
if (!ptable)
122128
return;
123129

124-
#ifdef LK2ND_PARTITION_SIZE
125-
partition_split_flash(ptable, LK2ND_PARTITION_BASE, LK2ND_PARTITION_NAME,
126-
LK2ND_PARTITION_SIZE / block_size, false);
130+
#ifdef LK2ND_BOOT_PARTITION_SIZE
131+
partition_split_flash(ptable, LK2ND_BOOT_PARTITION_BASE,
132+
LK2ND_BOOT_PARTITION_NAME,
133+
LK2ND_BOOT_PARTITION_SIZE / block_size, false);
134+
#endif
135+
#ifdef LK2ND_RECOVERY_PARTITION_SIZE
136+
partition_split_flash(ptable, LK2ND_RECOVERY_PARTITION_BASE,
137+
LK2ND_RECOVERY_PARTITION_NAME,
138+
LK2ND_RECOVERY_PARTITION_SIZE / block_size, false);
127139
#endif
128140
}
129141

lk2nd/device/2nd/rules.mk

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,17 @@ OBJS += \
1515
$(LOCAL_DIR)/samsung-muic-reset.o \
1616
$(if $(filter %/mdss_spi.o, $(OBJS)), $(LOCAL_DIR)/spi-display.o) \
1717

18-
ifneq ($(LK2ND_PARTITION_SIZE),)
18+
ifneq ($(LK2ND_BOOT_PARTITION_SIZE),)
1919
DEFINES += \
20-
LK2ND_PARTITION_BASE="$(LK2ND_PARTITION_BASE)" \
21-
LK2ND_PARTITION_NAME="$(LK2ND_PARTITION_NAME)" \
22-
LK2ND_PARTITION_SIZE=($(LK2ND_PARTITION_SIZE))
20+
LK2ND_BOOT_PARTITION_BASE="$(LK2ND_BOOT_PARTITION_BASE)" \
21+
LK2ND_BOOT_PARTITION_NAME="$(LK2ND_BOOT_PARTITION_NAME)" \
22+
LK2ND_BOOT_PARTITION_SIZE=($(LK2ND_BOOT_PARTITION_SIZE))
23+
endif
24+
ifneq ($(LK2ND_RECOVERY_PARTITION_SIZE),)
25+
DEFINES += \
26+
LK2ND_RECOVERY_PARTITION_BASE="$(LK2ND_RECOVERY_PARTITION_BASE)" \
27+
LK2ND_RECOVERY_PARTITION_NAME="$(LK2ND_RECOVERY_PARTITION_NAME)" \
28+
LK2ND_RECOVERY_PARTITION_SIZE=($(LK2ND_RECOVERY_PARTITION_SIZE))
2329
endif
2430

2531
include $(if $(BUILD_GPL),$(LOCAL_DIR)/gpl/rules.mk)

lk2nd/project/lk2nd.mk

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,14 @@ ifneq ($(ENABLE_FBCON_DISPLAY_MSG),1)
1111
MODULES += $(if $(filter $(MODULES), lk2nd/display), lk2nd/device/menu)
1212
endif
1313

14-
# Use part of the "boot" partition for the lk2nd boot image. The real Android
15-
# boot image can be placed in the partition with 512 KiB offset.
16-
LK2ND_PARTITION_BASE ?= boot
17-
LK2ND_PARTITION_NAME ?= lk2nd
18-
LK2ND_PARTITION_SIZE ?= 512*1024
14+
# Use part of the "boot" and "recovery" partition for the lk2nd boot image.
15+
# The real Android boot image can be placed in the partition with 512 KiB offset.
16+
LK2ND_BOOT_PARTITION_BASE ?= boot
17+
LK2ND_BOOT_PARTITION_NAME ?= lk2nd
18+
LK2ND_BOOT_PARTITION_SIZE ?= 512*1024
19+
LK2ND_RECOVERY_PARTITION_BASE ?= recovery
20+
LK2ND_RECOVERY_PARTITION_NAME ?= lk2nd_recovery
21+
LK2ND_RECOVERY_PARTITION_SIZE ?= 512*1024
1922

2023
# The primary bootloader will implement LONG_PRESS_POWER_ON if needed.
2124
# If we do it again in lk2nd we might accidentally shutdown the device because

0 commit comments

Comments
 (0)