board: Add new Samsung "stemmy" board based on ST-Ericsson U8500
The ST-Ericsson U8500 SoC has been used in mass-production for some Android smartphones released around 2012. In particular, Samsung has released more than 5 different smartphones based on U8500, e.g. - Samsung Galaxy S III mini (GT-I8190) "golden" - Samsung Galaxy S Advance (GT-I9070) "janice" - Samsung Galaxy Xcover 2 (GT-S7710) "skomer" and a few others. Mainline Linux has great support for the Ux500 SoC, so these smartphones can also run Linux mainline quite well. Unfortunately, the original Samsung bootloader used on these devices has limitations that prevent booting Linux mainline directly. It keeps the L2 cache enabled, which causes Linux to crash very early, shortly after decompressing the kernel. Using U-Boot allows to circumvent these limitations. We can let the Samsung bootloader chain-load U-Boot and U-Boot locks the L2 cache before booting into Linux. U-Boot has several other advantages - it supports device-trees directly and we are no longer limited to flashing Android boot images through Samsung's proprietary download mode. The Samsung "stemmy" board covers all Samsung devices based on U8500. Add minimal support for "stemmy". For now only UART is supported but this will be extended later. Signed-off-by: Stephan Gerhold <stephan@gerhold.net> Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
committed by
Tom Rini
parent
293f9ebb94
commit
43d28855d8
12
board/ste/stemmy/Kconfig
Normal file
12
board/ste/stemmy/Kconfig
Normal file
@@ -0,0 +1,12 @@
|
||||
if TARGET_STEMMY
|
||||
|
||||
config SYS_BOARD
|
||||
default "stemmy"
|
||||
|
||||
config SYS_VENDOR
|
||||
default "ste"
|
||||
|
||||
config SYS_CONFIG_NAME
|
||||
default "stemmy"
|
||||
|
||||
endif
|
||||
6
board/ste/stemmy/MAINTAINERS
Normal file
6
board/ste/stemmy/MAINTAINERS
Normal file
@@ -0,0 +1,6 @@
|
||||
STEMMY BOARD
|
||||
M: Stephan Gerhold <stephan@gerhold.net>
|
||||
S: Maintained
|
||||
F: board/ste/stemmy/
|
||||
F: include/configs/stemmy.h
|
||||
F: configs/stemmy_defconfig
|
||||
2
board/ste/stemmy/Makefile
Normal file
2
board/ste/stemmy/Makefile
Normal file
@@ -0,0 +1,2 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
obj-y := stemmy.o
|
||||
49
board/ste/stemmy/README
Normal file
49
board/ste/stemmy/README
Normal file
@@ -0,0 +1,49 @@
|
||||
ST-Ericsson U8500 Samsung "stemmy" board
|
||||
========================================
|
||||
|
||||
The "stemmy" board supports Samsung smartphones released with
|
||||
the ST-Ericsson NovaThor U8500 SoC, e.g.
|
||||
|
||||
- Samsung Galaxy S III mini (GT-I8190) "golden"
|
||||
- Samsung Galaxy S Advance (GT-I9070) "janice"
|
||||
- Samsung Galaxy Xcover 2 (GT-S7710) "skomer"
|
||||
|
||||
and likely others as well (untested).
|
||||
|
||||
At the moment, U-Boot is intended to be chain-loaded from
|
||||
the original Samsung bootloader, not replacing it entirely.
|
||||
|
||||
Installation
|
||||
------------
|
||||
|
||||
1. Setup cross compiler, e.g. export CROSS_COMPILE=arm-none-eabi-
|
||||
2. make stemmy_defconfig
|
||||
3. make
|
||||
|
||||
For newer devices (golden and skomer), the U-Boot binary has to be packed into
|
||||
an Android boot image. janice boots the raw U-Boot binary from the boot partition.
|
||||
|
||||
4. Obtain mkbootimg, e.g. https://android.googlesource.com/platform/system/core/+/refs/tags/android-7.1.2_r37/mkbootimg/mkbootimg
|
||||
5. mkbootimg \
|
||||
--kernel=u-boot.bin \
|
||||
--base=0x00000000 \
|
||||
--kernel_offset=0x00100000 \
|
||||
--ramdisk_offset=0x02000000 \
|
||||
--tags_offset=0x00000100 \
|
||||
--output=u-boot.img
|
||||
|
||||
6. Enter Samsung download mode (press Power + Home + Volume Down)
|
||||
7. Flash U-Boot image to Android boot partition using Heimdall:
|
||||
https://gitlab.com/BenjaminDobell/Heimdall
|
||||
|
||||
heimdall flash --Kernel u-boot.(bin|img)
|
||||
|
||||
8. After reboot U-Boot prompt should appear via UART.
|
||||
|
||||
UART
|
||||
----
|
||||
|
||||
UART is available through the micro USB port, similar to the Carkit standard.
|
||||
With a ~619kOhm resistor between ID and GND, 1.8V RX/TX is available at D+/D-.
|
||||
|
||||
Make sure to connect the UART cable *before* turning on the phone.
|
||||
18
board/ste/stemmy/stemmy.c
Normal file
18
board/ste/stemmy/stemmy.c
Normal file
@@ -0,0 +1,18 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
/*
|
||||
* Copyright (C) 2019 Stephan Gerhold <stephan@gerhold.net>
|
||||
*/
|
||||
#include <common.h>
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
int dram_init(void)
|
||||
{
|
||||
gd->ram_size = get_ram_size(CONFIG_SYS_SDRAM_BASE, CONFIG_SYS_SDRAM_SIZE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int board_init(void)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user