yukawa: rework yukawa device to support new board

-Add initial support sei610 board for yukawa
-Move previous board (sei510) in yukawa_sei510 device

Change-Id: Ibcdcb3e116ada9bf3c45de5031f4713705ffb3b2
Signed-off-by: Guillaume La Roque <glaroque@baylibre.com>
diff --git a/AndroidProducts.mk b/AndroidProducts.mk
index be4a699..bf5ac25 100644
--- a/AndroidProducts.mk
+++ b/AndroidProducts.mk
@@ -15,8 +15,11 @@
 #
 
 PRODUCT_MAKEFILES := \
+    $(LOCAL_DIR)/yukawa_sei510.mk \
+    $(LOCAL_DIR)/yukawa32_sei510.mk \
     $(LOCAL_DIR)/yukawa.mk \
     $(LOCAL_DIR)/yukawa32.mk
 
 COMMON_LUNCH_CHOICES := \
+    yukawa_sei510-userdebug \
     yukawa-userdebug
diff --git a/BoardConfigCommon.mk b/BoardConfigCommon.mk
new file mode 100644
index 0000000..36bfb0e
--- /dev/null
+++ b/BoardConfigCommon.mk
@@ -0,0 +1,85 @@
+#
+# Product-specific compile-time definitions.
+#
+# The generic product target doesn't have any hardware-specific pieces.
+# Primary Arch
+TARGET_ARCH := arm64
+TARGET_ARCH_VARIANT := armv8-a
+TARGET_CPU_ABI := arm64-v8a
+TARGET_CPU_VARIANT := cortex-a53
+
+# Secondary Arch
+TARGET_2ND_ARCH := arm
+TARGET_2ND_ARCH_VARIANT := armv8-a
+TARGET_2ND_CPU_ABI := armeabi-v7a
+TARGET_2ND_CPU_ABI2 := armeabi
+TARGET_2ND_CPU_VARIANT := cortex-a53
+
+TARGET_USES_64_BIT_BINDER := true
+TARGET_SUPPORTS_64_BIT_APPS := true
+
+TARGET_BOARD_PLATFORM := yukawa
+
+# Vulkan
+BOARD_INSTALL_VULKAN := true
+# BT configs
+BOARD_HAVE_BLUETOOTH := true
+
+# generic wifi
+WPA_SUPPLICANT_VERSION := VER_0_8_X
+BOARD_WPA_SUPPLICANT_DRIVER := NL80211
+BOARD_HOSTAPD_DRIVER := NL80211
+
+# Treble
+PRODUCT_FULL_TREBLE_OVERRIDE := true
+BOARD_VNDK_VERSION := current
+
+TARGET_NO_BOOTLOADER := true
+TARGET_NO_KERNEL := false
+TARGET_NO_RECOVERY := true
+
+BOARD_BOOTIMAGE_PARTITION_SIZE := 67108864
+BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1610612736
+BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE := ext4
+BOARD_VENDORIMAGE_PARTITION_SIZE := 268435456
+BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4
+BOARD_CACHEIMAGE_PARTITION_SIZE := 268435456
+BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4
+TARGET_USERIMAGES_USE_EXT4 := true
+
+BOARD_FLASH_BLOCK_SIZE := 512
+
+TARGET_COPY_OUT_VENDOR := vendor
+
+BOARD_BUILD_SYSTEM_ROOT_IMAGE := true
+
+BOARD_KERNEL_OFFSET      := 0x1080000
+BOARD_KERNEL_TAGS_OFFSET := 0x1000000
+BOARD_MKBOOTIMG_ARGS     := --second $(BOARD_KERNEL_DTB) --kernel_offset $(BOARD_KERNEL_OFFSET) --second_offset $(BOARD_KERNEL_TAGS_OFFSET)
+
+BOARD_KERNEL_CMDLINE += root=PARTUUID=99f9b7ac-5207-11e9-8507-c3c037e393f3
+BOARD_KERNEL_CMDLINE += no_console_suspend console=ttyAML0,115200 earlycon
+BOARD_KERNEL_CMDLINE += printk.devkmsg=on
+BOARD_KERNEL_CMDLINE += skip_initramfs init=/init
+BOARD_KERNEL_CMDLINE += firmware_class.path=/vendor/firmware
+BOARD_KERNEL_CMDLINE += androidboot.hardware=yukawa
+ifneq ($(TARGET_SELINUX_ENFORCE), true)
+BOARD_KERNEL_CMDLINE += androidboot.selinux=permissive
+endif
+ifeq ($(TARGET_BUILTIN_EDID), true)
+BOARD_KERNEL_CMDLINE += drm.edid_firmware=edid/1920x1080.bin
+endif
+
+USE_E2FSPROGS := true
+
+BOARD_USES_GENERIC_AUDIO := false
+BOARD_USES_ALSA_AUDIO := true
+TARGET_USES_MKE2FS := true
+TARGET_USES_HWC2 := true
+BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := device/amlogic/yukawa/bluetooth
+
+BOARD_SEPOLICY_DIRS += \
+        device/amlogic/yukawa/sepolicy
+
+DEVICE_MANIFEST_FILE := device/amlogic/yukawa/manifest.xml
+DEVICE_MATRIX_FILE := device/amlogic/yukawa/compatibility_matrix.xml
diff --git a/bootloader/u-boot.bin b/bootloader/u-boot_sei510.bin
similarity index 63%
rename from bootloader/u-boot.bin
rename to bootloader/u-boot_sei510.bin
index 30a9885..2b71e0b 100644
--- a/bootloader/u-boot.bin
+++ b/bootloader/u-boot_sei510.bin
Binary files differ
diff --git a/bootloader/u-boot_sei610.bin b/bootloader/u-boot_sei610.bin
new file mode 100644
index 0000000..6155ff6
--- /dev/null
+++ b/bootloader/u-boot_sei610.bin
Binary files differ
diff --git a/device.mk b/device-common.mk
similarity index 96%
rename from device.mk
rename to device-common.mk
index 67c2a07..725fcc9 100644
--- a/device.mk
+++ b/device-common.mk
@@ -6,14 +6,7 @@
 LOCAL_KERNEL := $(TARGET_PREBUILT_KERNEL)
 endif
 
-ifeq ($(TARGET_PREBUILT_DTB),)
-LOCAL_DTB := device/amlogic/yukawa-kernel/meson-g12a-sei510.dtb
-else
-LOCAL_DTB := $(TARGET_PREBUILT_DTB)
-endif
-
-PRODUCT_COPY_FILES +=  $(LOCAL_KERNEL):kernel \
-                       $(LOCAL_DTB):meson-g12a-sei510.dtb \
+PRODUCT_COPY_FILES +=  $(LOCAL_KERNEL):kernel
 
 # Build and run only ART
 PRODUCT_RUNTIMES := runtime_libart_default
diff --git a/device-yukawa.mk b/device-yukawa.mk
new file mode 100644
index 0000000..87f0506
--- /dev/null
+++ b/device-yukawa.mk
@@ -0,0 +1,12 @@
+$(call inherit-product, device/amlogic/yukawa/device-common.mk)
+
+BOARD_KERNEL_DTB := device/amlogic/yukawa-kernel/meson-sm1-sei610.dtb
+
+ifeq ($(TARGET_PREBUILT_DTB),)
+LOCAL_DTB := $(BOARD_KERNEL_DTB)
+else
+LOCAL_DTB := $(TARGET_PREBUILT_DTB)
+endif
+
+PRODUCT_COPY_FILES +=  $(LOCAL_DTB):meson-sm1-sei610.dtb
+
diff --git a/device-yukawa_sei510.mk b/device-yukawa_sei510.mk
new file mode 100644
index 0000000..238ec02
--- /dev/null
+++ b/device-yukawa_sei510.mk
@@ -0,0 +1,12 @@
+$(call inherit-product, device/amlogic/yukawa/device-common.mk)
+
+BOARD_KERNEL_DTB := device/amlogic/yukawa-kernel/meson-g12a-sei510.dtb
+
+ifeq ($(TARGET_PREBUILT_DTB),)
+LOCAL_DTB := $(BOARD_KERNEL_DTB)
+else
+LOCAL_DTB := $(TARGET_PREBUILT_DTB)
+endif
+
+PRODUCT_COPY_FILES +=  $(LOCAL_DTB):meson-g12a-sei510.dtb
+
diff --git a/sei510/board-info.txt b/sei510/board-info.txt
index 29390f0..b6c6a7f 100644
--- a/sei510/board-info.txt
+++ b/sei510/board-info.txt
@@ -1,2 +1,2 @@
 require board=sei510
-require version-bootloader=U-Boot 2019.10-rc2-00003-gb89e2343e2
+require version-bootloader=U-Boot 2019.10-rc3-00025-g33af67352f
diff --git a/sei610/board-info.txt b/sei610/board-info.txt
new file mode 100644
index 0000000..5791a51
--- /dev/null
+++ b/sei610/board-info.txt
@@ -0,0 +1,2 @@
+require board=sei610
+require version-bootloader=U-Boot 2019.10-rc3-00025-g33af67352f
diff --git a/yukawa-common.mk b/yukawa-common.mk
index 8012814..b97f2d1 100644
--- a/yukawa-common.mk
+++ b/yukawa-common.mk
@@ -1,13 +1,9 @@
-# Inherit the full_base and device configurations
-$(call inherit-product, device/amlogic/yukawa/device.mk)
 
 PRODUCT_SYSTEM_VERITY_PARTITION := /dev/block/platform/ffe07000.emmc/by-name/system
 PRODUCT_VENDOR_VERITY_PARTITION := /dev/block/platform/ffe07000.emmc/by-name/vendor
 $(call inherit-product, build/target/product/verity.mk)
 PRODUCT_SUPPORTS_BOOT_SIGNER := false
 
-BOARD_KERNEL_DTB := device/amlogic/yukawa-kernel/meson-g12a-sei510.dtb
-
 PRODUCT_BRAND := Android
 PRODUCT_MODEL := ATV on yukawa
 PRODUCT_MANUFACTURER := SEI Robotics
diff --git a/yukawa.mk b/yukawa.mk
index 15c53a3..094ee8f 100644
--- a/yukawa.mk
+++ b/yukawa.mk
@@ -1,6 +1,7 @@
 # Inherit the full_base and device configurations
 $(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
+$(call inherit-product, device/amlogic/yukawa/device-yukawa.mk)
 $(call inherit-product, device/amlogic/yukawa/yukawa-common.mk)
 
 PRODUCT_NAME := yukawa
-PRODUCT_DEVICE := yukawa
+PRODUCT_DEVICE := yukawa
\ No newline at end of file
diff --git a/yukawa/BoardConfig.mk b/yukawa/BoardConfig.mk
index b9f55c8..b911321 100644
--- a/yukawa/BoardConfig.mk
+++ b/yukawa/BoardConfig.mk
@@ -1,88 +1,5 @@
-#
-# Product-specific compile-time definitions.
-#
-# The generic product target doesn't have any hardware-specific pieces.
-# Primary Arch
-TARGET_ARCH := arm64
-TARGET_ARCH_VARIANT := armv8-a
-TARGET_CPU_ABI := arm64-v8a
-TARGET_CPU_VARIANT := cortex-a53
+include device/amlogic/yukawa/BoardConfigCommon.mk
 
-# Secondary Arch
-TARGET_2ND_ARCH := arm
-TARGET_2ND_ARCH_VARIANT := armv8-a
-TARGET_2ND_CPU_ABI := armeabi-v7a
-TARGET_2ND_CPU_ABI2 := armeabi
-TARGET_2ND_CPU_VARIANT := cortex-a53
+BOARD_USERDATAIMAGE_PARTITION_SIZE := 13416529920
 
-TARGET_USES_64_BIT_BINDER := true
-TARGET_SUPPORTS_64_BIT_APPS := true
-
-TARGET_BOARD_PLATFORM := yukawa
-
-# Vulkan
-BOARD_INSTALL_VULKAN := true
-# BT configs
-BOARD_HAVE_BLUETOOTH := true
-
-# generic wifi
-WPA_SUPPLICANT_VERSION := VER_0_8_X
-BOARD_WPA_SUPPLICANT_DRIVER := NL80211
-BOARD_HOSTAPD_DRIVER := NL80211
-
-# Treble
-PRODUCT_FULL_TREBLE_OVERRIDE := true
-BOARD_VNDK_VERSION := current
-
-TARGET_NO_BOOTLOADER := true
-TARGET_NO_KERNEL := false
-TARGET_NO_RECOVERY := true
-
-BOARD_BOOTIMAGE_PARTITION_SIZE := 0x04000000
-BOARD_SYSTEMIMAGE_PARTITION_SIZE := 1610612736
-BOARD_SYSTEMIMAGE_FILE_SYSTEM_TYPE := ext4
-BOARD_VENDORIMAGE_PARTITION_SIZE := 268435456
-BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE := ext4
-BOARD_CACHEIMAGE_PARTITION_SIZE := 268435456
-BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE := ext4
-BOARD_USERDATAIMAGE_PARTITION_SIZE := 4976541696
-TARGET_USERIMAGES_USE_EXT4 := true
-
-BOARD_FLASH_BLOCK_SIZE := 512
-
-TARGET_COPY_OUT_VENDOR := vendor
-
-BOARD_BUILD_SYSTEM_ROOT_IMAGE := true
-
-BOARD_KERNEL_OFFSET      := 0x1080000
-BOARD_KERNEL_TAGS_OFFSET := 0x1000000
-BOARD_MKBOOTIMG_ARGS     := --second $(BOARD_KERNEL_DTB) --kernel_offset $(BOARD_KERNEL_OFFSET) --second_offset $(BOARD_KERNEL_TAGS_OFFSET)
-
-BOARD_KERNEL_CMDLINE += root=PARTUUID=99f9b7ac-5207-11e9-8507-c3c037e393f3
-BOARD_KERNEL_CMDLINE += no_console_suspend console=ttyAML0,115200 earlycon
-BOARD_KERNEL_CMDLINE += printk.devkmsg=on
-BOARD_KERNEL_CMDLINE += skip_initramfs init=/init
-BOARD_KERNEL_CMDLINE += firmware_class.path=/vendor/firmware
-BOARD_KERNEL_CMDLINE += androidboot.hardware=yukawa
-ifneq ($(TARGET_SELINUX_ENFORCE), true)
-BOARD_KERNEL_CMDLINE += androidboot.selinux=permissive
-endif
-ifeq ($(TARGET_BUILTIN_EDID), true)
-BOARD_KERNEL_CMDLINE += drm.edid_firmware=edid/1920x1080.bin
-endif
-
-USE_E2FSPROGS := true
-
-BOARD_USES_GENERIC_AUDIO := false
-BOARD_USES_ALSA_AUDIO := true
-TARGET_USES_MKE2FS := true
-TARGET_USES_HWC2 := true
-BOARD_BLUETOOTH_BDROID_BUILDCFG_INCLUDE_DIR := device/amlogic/yukawa/bluetooth
-
-BOARD_SEPOLICY_DIRS += \
-        device/amlogic/yukawa/sepolicy
-
-DEVICE_MANIFEST_FILE := device/amlogic/yukawa/manifest.xml
-DEVICE_MATRIX_FILE := device/amlogic/yukawa/compatibility_matrix.xml
-
-TARGET_BOARD_INFO_FILE := device/amlogic/yukawa/sei510/board-info.txt
+TARGET_BOARD_INFO_FILE := device/amlogic/yukawa/sei610/board-info.txt
diff --git a/yukawa32.mk b/yukawa32.mk
index 66ebaae..ae3394a 100644
--- a/yukawa32.mk
+++ b/yukawa32.mk
@@ -1,3 +1,4 @@
+$(call inherit-product, device/amlogic/yukawa/device-yukawa.mk)
 $(call inherit-product, device/amlogic/yukawa/yukawa-common.mk)
 
 PRODUCT_NAME := yukawa32
diff --git a/yukawa32_sei510.mk b/yukawa32_sei510.mk
new file mode 100644
index 0000000..d9e2cbe
--- /dev/null
+++ b/yukawa32_sei510.mk
@@ -0,0 +1,5 @@
+$(call inherit-product, device/amlogic/yukawa/device-yukawa_sei510.mk)
+$(call inherit-product, device/amlogic/yukawa/yukawa-common.mk)
+
+PRODUCT_NAME := yukawa32_sei510
+PRODUCT_DEVICE := yukawa32_sei510
diff --git a/yukawa32_sei510/BoardConfig.mk b/yukawa32_sei510/BoardConfig.mk
new file mode 100644
index 0000000..57cd852
--- /dev/null
+++ b/yukawa32_sei510/BoardConfig.mk
@@ -0,0 +1,15 @@
+include device/amlogic/yukawa/yukawa_sei510/BoardConfig.mk
+
+TARGET_ARCH := arm
+TARGET_ARCH_VARIANT := armv7-a-neon
+TARGET_CPU_ABI := armeabi-v7a
+TARGET_CPU_ABI2 := armeabi
+TARGET_CPU_VARIANT := generic
+
+TARGET_2ND_ARCH :=
+TARGET_2ND_ARCH_VARIANT :=
+TARGET_2ND_CPU_ABI :=
+TARGET_2ND_CPU_ABI2 :=
+TARGET_2ND_CPU_VARIANT :=
+
+TARGET_SUPPORTS_64_BIT_APPS := false
diff --git a/yukawa_sei510.mk b/yukawa_sei510.mk
new file mode 100644
index 0000000..654d172
--- /dev/null
+++ b/yukawa_sei510.mk
@@ -0,0 +1,7 @@
+# Inherit the full_base and device configurations
+$(call inherit-product, $(SRC_TARGET_DIR)/product/core_64_bit.mk)
+$(call inherit-product, device/amlogic/yukawa/device-yukawa_sei510.mk)
+$(call inherit-product, device/amlogic/yukawa/yukawa-common.mk)
+
+PRODUCT_NAME := yukawa_sei510
+PRODUCT_DEVICE := yukawa_sei510
diff --git a/yukawa_sei510/BoardConfig.mk b/yukawa_sei510/BoardConfig.mk
new file mode 100644
index 0000000..9e5f945
--- /dev/null
+++ b/yukawa_sei510/BoardConfig.mk
@@ -0,0 +1,5 @@
+include device/amlogic/yukawa/BoardConfigCommon.mk
+
+BOARD_USERDATAIMAGE_PARTITION_SIZE := 5600444416
+
+TARGET_BOARD_INFO_FILE := device/amlogic/yukawa/sei510/board-info.txt