1 /* SPDX-License-Identifier: GPL-2.0+ 2 * 3 * Copyright (C) Guangzhou FriendlyARM Computer Tech. Co., Ltd. 4 * (http://www.friendlyarm.com) 5 * 6 * (C) Copyright 2016 Nexell 7 * Hyejung Kwon <cjscld15@nexell.co.kr> 8 * 9 * Copyright (C) 2019 Stefan Bosch <stefan_b@posteo.net> 10 */ 11 12 #ifndef __CONFIG_H__ 13 #define __CONFIG_H__ 14 15 #include <linux/sizes.h> 16 #include <asm/arch/nexell.h> 17 18 /*----------------------------------------------------------------------- 19 * System memory Configuration 20 */ 21 #define CONFIG_SYS_INIT_SP_ADDR CONFIG_SYS_TEXT_BASE 22 #define CONFIG_SYS_MONITOR_BASE CONFIG_SYS_TEXT_BASE 23 #define CONFIG_SYS_MEM_SIZE 0x40000000 24 #define CONFIG_SYS_SDRAM_BASE 0x71000000 25 26 /* 27 * "(CONFIG_SYS_MEM_SIZE - CONFIG_SYS_RESERVE_MEM_SIZE)" has been used in 28 * u-boot nanopi2-v2016.01. 29 * This is not working anymore because boot_fdt_add_mem_rsv_regions() in 30 * common/image-fdt.c has been extended: 31 * Also reserved-memory sections are marked as unusable. 32 * 33 * In friendlyArm Ubuntu 16.04 source arch/arm/boot/dts/s5p4418.dtsi: 34 * reserved-memory { 35 * #address-cells = <1>; 36 * #size-cells = <1>; 37 * ranges; 38 * 39 * secure_memory@b0000000 { 40 * reg = <0xB0000000 0x1000000>; 41 * nop-map; 42 * }; 43 * }; 44 * 45 * arch_lmb_reserve() of arch/arm/lib/bootm.c: 46 * "Allocate space for command line and board info - ... below the current 47 * stack pointer." 48 * --> Memory allocated would overlap with "secure_memory@b0000000" 49 * --> lmb_add_region(rgn, base==0xb0000000, size==0x1000000) fails, 50 * boot output: 51 * ... 52 * Kernel image @ 0x71080000 [ 0x000000 - 0x60e628 ] 53 * ## Flattened Device Tree blob at 7a000000 54 * Booting using the fdt blob at 0x7a000000 55 * ERROR: reserving fdt memory region failed (addr=b0000000 size=1000000) 56 * Using Device Tree in place at 7a000000, end 7a00fbf0 57 * 58 * Starting kernel ... 59 * ... 60 */ 61 #define CONFIG_SYS_SDRAM_SIZE (0xb0000000 - CONFIG_SYS_SDRAM_BASE) 62 63 #define CONFIG_SYS_MALLOC_LEN (32 * 1024 * 1024) 64 65 #define BMP_LOAD_ADDR 0x78000000 66 67 /* kernel load address */ 68 #define CONFIG_SYS_LOAD_ADDR 0x71080000 69 #define INITRD_START 0x79000000 70 #define KERNEL_DTB_ADDR 0x7A000000 71 72 /*----------------------------------------------------------------------- 73 * High Level System Configuration 74 */ 75 /* Not used: not need IRQ/FIQ stuff */ 76 #undef CONFIG_USE_IRQ 77 /* decrementer freq: 1ms ticks */ 78 #define CONFIG_SYS_HZ 1000 79 80 /*----------------------------------------------------------------------- 81 * System initialize options (board_init_f) 82 */ 83 /* board_init_f->init_sequence, call arch_cpu_init */ 84 #define CONFIG_ARCH_CPU_INIT 85 86 /*----------------------------------------------------------------------- 87 * Miscellaneous configurable options 88 */ 89 #ifdef CONFIG_SYS_PROMPT 90 #undef CONFIG_SYS_PROMPT 91 /* Monitor Command Prompt */ 92 #define CONFIG_SYS_PROMPT "nanopi2# " 93 #endif 94 95 /* Console I/O Buffer Size */ 96 #define CONFIG_SYS_CBSIZE 1024 97 /* Print Buffer Size */ 98 #define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + \ 99 sizeof(CONFIG_SYS_PROMPT) + 16) 100 /* max number of command args */ 101 #define CONFIG_SYS_MAXARGS 16 102 /* Boot Argument Buffer Size */ 103 #define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE 104 105 /*----------------------------------------------------------------------- 106 * Etc Command definition 107 */ 108 #undef CONFIG_BOOTM_NETBSD 109 #undef CONFIG_BOOTM_RTEMS 110 111 /*----------------------------------------------------------------------- 112 * serial console configuration 113 */ 114 #define CONFIG_PL011_CLOCK 50000000 115 #define CONFIG_PL01x_PORTS {(void *)PHY_BASEADDR_UART0, \ 116 (void *)PHY_BASEADDR_UART1, \ 117 (void *)PHY_BASEADDR_UART2, \ 118 (void *)PHY_BASEADDR_UART3} 119 #define CONFIG_SYS_BAUDRATE_TABLE { 9600, 19200, 38400, 57600, 115200 } 120 121 /*----------------------------------------------------------------------- 122 * PLL 123 */ 124 #define CONFIG_SYS_PLLFIN 24000000UL 125 126 /*----------------------------------------------------------------------- 127 * Timer 128 */ 129 #define CONFIG_TIMER_SYS_TICK_CH 0 130 131 /*----------------------------------------------------------------------- 132 * BACKLIGHT 133 */ 134 #ifndef CONFIG_S5P4418_ONEWIRE 135 #ifdef CONFIG_PWM_NX 136 /* fallback to pwm */ 137 #define BACKLIGHT_CH 0 138 #define BACKLIGHT_DIV 0 139 #define BACKLIGHT_INV 0 140 #define BACKLIGHT_DUTY 50 141 #define BACKLIGHT_HZ 1000 142 #endif 143 #endif 144 145 /*----------------------------------------------------------------------- 146 * VIDEO 147 */ 148 149 #define CONFIG_VIDEO_LOGO 150 151 #ifdef CONFIG_VIDEO_LOGO 152 #ifdef CONFIG_SPLASH_SCREEN 153 #define SPLASH_FILE logo.bmp 154 #endif 155 156 #endif 157 158 /*----------------------------------------------------------------------- 159 * ENV 160 */ 161 #define BLOADER_MMC \ 162 "ext4load mmc ${rootdev}:${bootpart} " 163 164 #ifdef CONFIG_OF_BOARD_SETUP 165 #define EXTRA_ENV_DTB_RESERVE \ 166 "dtb_reserve=" \ 167 "if test -n \"$dtb_addr\"; then fdt addr $dtb_addr; fi\0" 168 #else 169 #define EXTRA_ENV_DTB_RESERVE \ 170 "dtb_reserve=" \ 171 "if test -n \"$fb_addr\"; then " \ 172 "fdt addr $dtb_addr;" \ 173 "fdt resize;" \ 174 "fdt mk /reserved-memory display_reserved;" \ 175 "fdt set /reserved-memory/display_reserved " \ 176 "reg <$fb_addr 0x800000>;" \ 177 "fi;\0" 178 #endif 179 180 #ifdef CONFIG_SPLASH_SCREEN 181 #define EXTRA_ENV_BOOT_LOGO \ 182 "splashimage=" __stringify(BMP_LOAD_ADDR)"\0" \ 183 "splashfile=" __stringify(SPLASH_FILE)"\0" \ 184 "splashpos=m,m\0" \ 185 "fb_addr=\0" \ 186 EXTRA_ENV_DTB_RESERVE 187 #else 188 #define EXTRA_ENV_BOOT_LOGO EXTRA_ENV_DTB_RESERVE 189 #endif 190 191 #define CONFIG_EXTRA_ENV_SETTINGS \ 192 "fdt_high=0xffffffff\0" \ 193 "initrd_high=0xffffffff\0" \ 194 "rootdev=" __stringify(CONFIG_ROOT_DEV) "\0" \ 195 "rootpart=" __stringify(CONFIG_ROOT_PART) "\0" \ 196 "bootpart=" __stringify(CONFIG_BOOT_PART) "\0" \ 197 "kernel=zImage\0" \ 198 "loadaddr=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \ 199 "dtb_name=s5p4418-nanopi2-rev01.dtb\0" \ 200 "dtb_addr=" __stringify(KERNEL_DTB_ADDR) "\0" \ 201 "initrd_name=ramdisk.img\0" \ 202 "initrd_addr=" __stringify(INITRD_START) "\0" \ 203 "initrd_size=0x600000\0" \ 204 "load_dtb=" \ 205 BLOADER_MMC "${dtb_addr} ${dtb_name}; " \ 206 "run dtb_reserve\0" \ 207 "load_kernel=" \ 208 BLOADER_MMC "${loadaddr} ${kernel}\0" \ 209 "load_initrd=" \ 210 BLOADER_MMC "${initrd_addr} ${initrd_name}; " \ 211 "setenv initrd_size 0x${filesize}\0" \ 212 "mmcboot=" \ 213 "run load_kernel; run load_initrd; run load_dtb; " \ 214 "bootz ${loadaddr} ${initrd_addr}:${initrd_size} " \ 215 "${dtb_addr}\0" \ 216 "bootcmd=run mmcboot\0" \ 217 EXTRA_ENV_BOOT_LOGO 218 219 #endif /* __CONFIG_H__ */ 220