mirror of
https://github.com/ivoszbg/uniLoader.git
synced 2024-11-10 06:00:07 +00:00
arch: arm: Implement TEXT_BASE instead of using a hardcoded address
This was an issue for other armv7 boards that have slightly different addresses till now. This also allows to start working on relocation in the near future for both armv7 and aarch64. While we're at it, fix some mistakes here and there. Signed-off-by: Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
This commit is contained in:
parent
1b6ce821f7
commit
b37e225721
3
Makefile
3
Makefile
@ -103,6 +103,7 @@ export srctree objtree VPATH
|
|||||||
CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)
|
CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)
|
||||||
KERNEL_PATH ?= $(CONFIG_KERNEL_PATH:"%"=%)
|
KERNEL_PATH ?= $(CONFIG_KERNEL_PATH:"%"=%)
|
||||||
DT_PATH ?= $(CONFIG_DT_PATH:"%"=%)
|
DT_PATH ?= $(CONFIG_DT_PATH:"%"=%)
|
||||||
|
TEXT_BASE ?= $(CONFIG_TEXT_BASE:"%"=%)
|
||||||
|
|
||||||
KCONFIG_CONFIG ?= .config
|
KCONFIG_CONFIG ?= .config
|
||||||
export KCONFIG_CONFIG
|
export KCONFIG_CONFIG
|
||||||
@ -360,7 +361,7 @@ quiet_cmd_uniLoader = LD $@.o
|
|||||||
cmd_uniLoader = $(LD) $(main-y) $(uniLoader-libs) -o $@.o --script=arch/$(ARCH)/linker.lds
|
cmd_uniLoader = $(LD) $(main-y) $(uniLoader-libs) -o $@.o --script=arch/$(ARCH)/linker.lds
|
||||||
|
|
||||||
arch/$(ARCH)/linker.lds: arch/$(ARCH)/linker.lds.S $(KERNEL_PATH)
|
arch/$(ARCH)/linker.lds: arch/$(ARCH)/linker.lds.S $(KERNEL_PATH)
|
||||||
$(CPP) $< -DKERNEL_PATH=$(KERNEL_PATH) -DDTB_PATH=$(DT_PATH) -P -o $@
|
$(CPP) $< -DTEXT_BASE=$(TEXT_BASE) -DKERNEL_PATH=$(KERNEL_PATH) -DDTB_PATH=$(DT_PATH) -P -o $@
|
||||||
|
|
||||||
uniLoader: $(uniLoader-all)
|
uniLoader: $(uniLoader-all)
|
||||||
$(call if_changed,uniLoader)
|
$(call if_changed,uniLoader)
|
||||||
|
@ -2,7 +2,9 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2022, Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
|
* Copyright (c) 2022, Ivaylo Ivanov <ivo.ivanov.ivanov1@gmail.com>
|
||||||
*/
|
*/
|
||||||
|
.global _start
|
||||||
|
|
||||||
|
_start:
|
||||||
ldr r0, =dtb
|
ldr r0, =dtb
|
||||||
ldr r1, =kernel
|
ldr r1, =kernel
|
||||||
b main
|
b main
|
||||||
|
@ -9,7 +9,9 @@ INPUT(DTB_PATH)
|
|||||||
|
|
||||||
SECTIONS
|
SECTIONS
|
||||||
{
|
{
|
||||||
. = 0x80008000;
|
/* The default TEXT_BASE address is 0x0 if not specified otherwise, so compare it to 0x1 */
|
||||||
|
__start_address = (TEXT_BASE > 0x1) ? TEXT_BASE : 0x80008000;
|
||||||
|
. = __start_address;
|
||||||
|
|
||||||
.boot : {
|
.boot : {
|
||||||
arch/arm/Start.o
|
arch/arm/Start.o
|
||||||
|
@ -55,23 +55,27 @@ menu "Device Support"
|
|||||||
help
|
help
|
||||||
Say Y if you want to include support for Samsung Galaxy S20
|
Say Y if you want to include support for Samsung Galaxy S20
|
||||||
|
|
||||||
config SAMSUNG_J5LTE
|
|
||||||
bool "Support for Samsung Galaxy J5 2015"
|
|
||||||
default n
|
|
||||||
depends on QC32_8916
|
|
||||||
help
|
|
||||||
Say Y if you want to include arm32 support for Samsung Galaxy J5 2015
|
|
||||||
|
|
||||||
config SAMSUNG_J4LTE
|
config SAMSUNG_J4LTE
|
||||||
bool "Support for Samsung Galaxy J4 2018"
|
bool "Support for Samsung Galaxy J4 2018"
|
||||||
default n
|
default n
|
||||||
depends on EXYNOS_7570
|
depends on EXYNOS_7570
|
||||||
help
|
help
|
||||||
Say Y if you want to include arm64 support for Samsung Galaxy J4 2018
|
Say Y if you want to include arm64 support for Samsung Galaxy J4 2018
|
||||||
|
|
||||||
|
config SAMSUNG_J5LTE
|
||||||
|
bool "Support for Samsung Galaxy J5 2015"
|
||||||
|
default n
|
||||||
|
depends on QC32_8916
|
||||||
|
help
|
||||||
|
Say Y if you want to include arm32 support for Samsung Galaxy J5 2015
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
menu "Device Specific Addresses"
|
menu "Device Specific Addresses"
|
||||||
|
|
||||||
|
config TEXT_BASE
|
||||||
|
hex "UniLoader Text Base"
|
||||||
|
default 0x0
|
||||||
|
|
||||||
config PAYLOAD_ENTRY
|
config PAYLOAD_ENTRY
|
||||||
hex "Payload Entry Address"
|
hex "Payload Entry Address"
|
||||||
default 0x830000000 if APPLE_N61AP
|
default 0x830000000 if APPLE_N61AP
|
||||||
@ -82,9 +86,8 @@ menu "Device Specific Addresses"
|
|||||||
default 0x090000000 if SAMSUNG_DREAMLTE
|
default 0x090000000 if SAMSUNG_DREAMLTE
|
||||||
default 0x090000000 if SAMSUNG_STARLTE
|
default 0x090000000 if SAMSUNG_STARLTE
|
||||||
default 0x090000000 if SAMSUNG_X1S
|
default 0x090000000 if SAMSUNG_X1S
|
||||||
default 0x090000000 if SAMSUNG_J5LTE
|
|
||||||
default 0x050000000 if SAMSUNG_J4LTE
|
default 0x050000000 if SAMSUNG_J4LTE
|
||||||
|
default 0x090000000 if SAMSUNG_J5LTE
|
||||||
|
|
||||||
config FRAMEBUFFER_BASE
|
config FRAMEBUFFER_BASE
|
||||||
hex "Framebuffer Base Address (for SimpleFB)"
|
hex "Framebuffer Base Address (for SimpleFB)"
|
||||||
@ -97,8 +100,8 @@ menu "Device Specific Addresses"
|
|||||||
default 0x0cc000000 if SAMSUNG_DREAMLTE
|
default 0x0cc000000 if SAMSUNG_DREAMLTE
|
||||||
default 0x0cc000000 if SAMSUNG_STARLTE
|
default 0x0cc000000 if SAMSUNG_STARLTE
|
||||||
default 0x0F1000000 if SAMSUNG_X1S
|
default 0x0F1000000 if SAMSUNG_X1S
|
||||||
default 0x08e000000 if SAMSUNG_J5LTE
|
|
||||||
default 0x067000000 if SAMSUNG_J4LTE
|
default 0x067000000 if SAMSUNG_J4LTE
|
||||||
|
default 0x08e000000 if SAMSUNG_J5LTE
|
||||||
|
|
||||||
config FRAMEBUFFER_WIDTH
|
config FRAMEBUFFER_WIDTH
|
||||||
int "Framebuffer Width (for SimpleFB)"
|
int "Framebuffer Width (for SimpleFB)"
|
||||||
@ -111,8 +114,8 @@ menu "Device Specific Addresses"
|
|||||||
default 1440 if SAMSUNG_DREAMLTE
|
default 1440 if SAMSUNG_DREAMLTE
|
||||||
default 1440 if SAMSUNG_STARLTE
|
default 1440 if SAMSUNG_STARLTE
|
||||||
default 1440 if SAMSUNG_X1S
|
default 1440 if SAMSUNG_X1S
|
||||||
default 720 if SAMSUNG_J5LTE
|
|
||||||
default 720 if SAMSUNG_J4LTE
|
default 720 if SAMSUNG_J4LTE
|
||||||
|
default 720 if SAMSUNG_J5LTE
|
||||||
|
|
||||||
config FRAMEBUFFER_HEIGHT
|
config FRAMEBUFFER_HEIGHT
|
||||||
int "Framebuffer Height (for SimpleFB)"
|
int "Framebuffer Height (for SimpleFB)"
|
||||||
@ -125,8 +128,8 @@ menu "Device Specific Addresses"
|
|||||||
default 2960 if SAMSUNG_DREAMLTE
|
default 2960 if SAMSUNG_DREAMLTE
|
||||||
default 2960 if SAMSUNG_STARLTE
|
default 2960 if SAMSUNG_STARLTE
|
||||||
default 3200 if SAMSUNG_X1S
|
default 3200 if SAMSUNG_X1S
|
||||||
default 1280 if SAMSUNG_J5LTE
|
|
||||||
default 1280 if SAMSUNG_J4LTE
|
default 1280 if SAMSUNG_J4LTE
|
||||||
|
default 1280 if SAMSUNG_J5LTE
|
||||||
|
|
||||||
config FRAMEBUFFER_STRIDE
|
config FRAMEBUFFER_STRIDE
|
||||||
int "Framebuffer Stride (for SimpleFB)"
|
int "Framebuffer Stride (for SimpleFB)"
|
||||||
@ -139,8 +142,8 @@ menu "Device Specific Addresses"
|
|||||||
default 4 if SAMSUNG_DREAMLTE
|
default 4 if SAMSUNG_DREAMLTE
|
||||||
default 4 if SAMSUNG_STARLTE
|
default 4 if SAMSUNG_STARLTE
|
||||||
default 4 if SAMSUNG_X1S
|
default 4 if SAMSUNG_X1S
|
||||||
default 3 if SAMSUNG_J5LTE
|
|
||||||
default 4 if SAMSUNG_J4LTE
|
default 4 if SAMSUNG_J4LTE
|
||||||
|
default 3 if SAMSUNG_J5LTE
|
||||||
|
|
||||||
config FRAMEBUFFER_BGRA
|
config FRAMEBUFFER_BGRA
|
||||||
bool "Framebuffer BGRA (for SimpleFB)"
|
bool "Framebuffer BGRA (for SimpleFB)"
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
CONFIG_CROSS_COMPILE="arm-none-eabi-"
|
CONFIG_CROSS_COMPILE="arm-none-eabi-"
|
||||||
|
CONFIG_TEXT_BASE=0x80008000
|
||||||
CONFIG_SAMSUNG_J5LTE=y
|
CONFIG_SAMSUNG_J5LTE=y
|
||||||
CONFIG_QC32_8916=y
|
CONFIG_QC32_8916=y
|
||||||
|
Loading…
Reference in New Issue
Block a user