diff options
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/include/asm/arch-sunxi/spl.h | 22 | ||||
-rw-r--r-- | arch/arm/mach-sunxi/Kconfig | 16 | ||||
-rw-r--r-- | arch/arm/mach-sunxi/board.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-sunxi/dram_sun4i.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-sunxi/p2wi.c | 2 |
5 files changed, 35 insertions, 9 deletions
diff --git a/arch/arm/include/asm/arch-sunxi/spl.h b/arch/arm/include/asm/arch-sunxi/spl.h index 55f2deb18d..4baba38b00 100644 --- a/arch/arm/include/asm/arch-sunxi/spl.h +++ b/arch/arm/include/asm/arch-sunxi/spl.h @@ -9,7 +9,17 @@ #define BOOT0_MAGIC "eGON.BT0" #define SPL_SIGNATURE "SPL" /* marks "sunxi" SPL header */ -#define SPL_HEADER_VERSION 2 +#define SPL_MAJOR_BITS 3 +#define SPL_MINOR_BITS 5 +#define SPL_VERSION(maj, min) \ + ((((maj) & ((1U << SPL_MAJOR_BITS) - 1)) << SPL_MINOR_BITS) | \ + ((min) & ((1U << SPL_MINOR_BITS) - 1))) + +#define SPL_HEADER_VERSION SPL_VERSION(0, 2) + +#define SPL_ENV_HEADER_VERSION SPL_VERSION(0, 1) +#define SPL_DT_HEADER_VERSION SPL_VERSION(0, 2) +#define SPL_DRAM_HEADER_VERSION SPL_VERSION(0, 3) #define SPL_ADDR CONFIG_SUNXI_SRAM_ADDRESS @@ -45,14 +55,14 @@ struct boot_file_head { uint32_t pub_head_size; uint8_t spl_signature[4]; }; - uint32_t fel_script_address; + uint32_t fel_script_address; /* since v0.1, set by sunxi-fel */ /* * If the fel_uEnv_length member below is set to a non-zero value, * it specifies the size (byte count) of data at fel_script_address. * At the same time this indicates that the data is in uEnv.txt * compatible format, ready to be imported via "env import -t". */ - uint32_t fel_uEnv_length; + uint32_t fel_uEnv_length; /* since v0.1, set by sunxi-fel */ /* * Offset of an ASCIIZ string (relative to the SPL header), which * contains the default device tree name (CONFIG_DEFAULT_DEVICE_TREE). @@ -60,11 +70,11 @@ struct boot_file_head { * by flash programming tools for providing nice informative messages * to the users. */ - uint32_t dt_name_offset; - uint32_t reserved1; + uint32_t dt_name_offset; /* since v0.2, set by mksunxiboot */ + uint32_t dram_size; /* in MiB, since v0.3, set by SPL */ uint32_t boot_media; /* written here by the boot ROM */ /* A padding area (may be used for storing text strings) */ - uint32_t string_pool[13]; + uint32_t string_pool[13]; /* since v0.2, filled by mksunxiboot */ /* The header must be a multiple of 32 bytes (for VBAR alignment) */ }; diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig index 686f38fec4..6277abc3cc 100644 --- a/arch/arm/mach-sunxi/Kconfig +++ b/arch/arm/mach-sunxi/Kconfig @@ -140,6 +140,12 @@ config MACH_SUNXI_H3_H5 select SUNXI_GEN_SUN6I select SUPPORT_SPL +# TODO: try out A80's 8GiB DRAM space +config SUNXI_DRAM_MAX_SIZE + hex + default 0xC0000000 if MACH_SUN50I || MACH_SUN50I_H5 || MACH_SUN50I_H6 + default 0x80000000 + choice prompt "Sunxi SoC Variant" optional @@ -970,4 +976,14 @@ config SPL_SPI_SUNXI sunxi SPI Flash. It uses the same method as the boot ROM, so does not need any extra configuration. +config PINE64_DT_SELECTION + bool "Enable Pine64 device tree selection code" + depends on MACH_SUN50I + help + The original Pine A64 and Pine A64+ are similar but different + boards and can be differed by the DRAM size. Pine A64 has + 512MiB DRAM, and Pine A64+ has 1GiB or 2GiB. By selecting this + option, the device tree selection code specific to Pine64 which + utilizes the DRAM size will be enabled. + endif diff --git a/arch/arm/mach-sunxi/board.c b/arch/arm/mach-sunxi/board.c index d22a84ea6b..b74eaf2a0e 100644 --- a/arch/arm/mach-sunxi/board.c +++ b/arch/arm/mach-sunxi/board.c @@ -52,7 +52,7 @@ static struct mm_region sunxi_mem_map[] = { /* RAM */ .virt = 0x40000000UL, .phys = 0x40000000UL, - .size = 0x80000000UL, + .size = 0xC0000000UL, .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) | PTE_BLOCK_INNER_SHARE }, { diff --git a/arch/arm/mach-sunxi/dram_sun4i.c b/arch/arm/mach-sunxi/dram_sun4i.c index 85623022f1..396c0424ea 100644 --- a/arch/arm/mach-sunxi/dram_sun4i.c +++ b/arch/arm/mach-sunxi/dram_sun4i.c @@ -5,7 +5,7 @@ * (C) Copyright 2013 Luke Kenneth Casson Leighton <lkcl@lkcl.net> * * Based on sun4i Linux kernel sources mach-sunxi/pm/standby/dram*.c - * and earlier U-Boot Allwiner A10 SPL work + * and earlier U-Boot Allwinner A10 SPL work * * (C) Copyright 2007-2012 * Allwinner Technology Co., Ltd. <www.allwinnertech.com> diff --git a/arch/arm/mach-sunxi/p2wi.c b/arch/arm/mach-sunxi/p2wi.c index 82ad254133..e84e1d8d5c 100644 --- a/arch/arm/mach-sunxi/p2wi.c +++ b/arch/arm/mach-sunxi/p2wi.c @@ -5,7 +5,7 @@ * (C) Copyright 2013 Oliver Schinagl <oliver@schinagl.nl> * http://linux-sunxi.org * - * Based on sun6i sources and earlier U-Boot Allwiner A10 SPL work + * Based on sun6i sources and earlier U-Boot Allwinner A10 SPL work * * (C) Copyright 2006-2013 * Allwinner Technology Co., Ltd. <www.allwinnertech.com> |