1/* SPDX-License-Identifier: GPL-2.0+ */ 2/* 3 * Configuration for Amlogic Meson 64bits SoCs 4 * (C) Copyright 2016 Beniamino Galvani <b.galvani@gmail.com> 5 */ 6 7#ifndef __MESON64_CONFIG_H 8#define __MESON64_CONFIG_H 9 10/* Generic Interrupt Controller Definitions */ 11#if (defined(CONFIG_MESON_AXG) || defined(CONFIG_MESON_G12A)) 12#define GICD_BASE 0xffc01000 13#define GICC_BASE 0xffc02000 14#elif defined(CONFIG_MESON_A1) 15#define GICD_BASE 0xff901000 16#define GICC_BASE 0xff902000 17#else /* MESON GXL and GXBB */ 18#define GICD_BASE 0xc4301000 19#define GICC_BASE 0xc4302000 20#endif 21 22/* Serial drivers */ 23/* The following table includes the supported baudrates */ 24#define CFG_SYS_BAUDRATE_TABLE \ 25 {300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, \ 26 230400, 250000, 460800, 500000, 1000000, 2000000, 4000000, \ 27 8000000 } 28 29/* For splashscreen */ 30#ifdef CONFIG_VIDEO 31#define STDOUT_CFG "vidconsole,serial" 32#else 33#define STDOUT_CFG "serial" 34#endif 35 36#ifdef CONFIG_USB_KEYBOARD 37#define STDIN_CFG "usbkbd,serial" 38#else 39#define STDIN_CFG "serial" 40#endif 41 42#define CFG_SYS_SDRAM_BASE 0 43 44/* ROM USB boot support, auto-execute boot.scr at scriptaddr */ 45#define BOOTENV_DEV_ROMUSB(devtypeu, devtypel, instance) \ 46 "bootcmd_romusb=" \ 47 "if test \"${boot_source}\" = \"usb\" && " \ 48 "test -n \"${scriptaddr}\"; then " \ 49 "echo '(ROM USB boot)'; " \ 50 "source ${scriptaddr}; " \ 51 "fi\0" 52 53#define BOOTENV_DEV_NAME_ROMUSB(devtypeu, devtypel, instance) \ 54 "romusb " 55 56/* 57 * Fallback to "USB DFU" boot if script is not at scriptaddr 58 * 59 * DFU will expose the kernel_addr_r memory range as DFU entry, 60 * then with `dfu-util --detach`, booting the uploaded image 61 * will be attempted: 62 * $ dfu-util -a 0 -D fitImage 63 * $ dfu-util -a 0 -e 64 */ 65#if CONFIG_IS_ENABLED(USB_GADGET) && CONFIG_IS_ENABLED(DFU_RAM) 66 #define BOOTENV_DEV_USB_DFU(devtypeu, devtypel, instance) \ 67 "bootcmd_usbdfu=" \ 68 "if test \"${boot_source}\" = \"usb\"; then " \ 69 "dfu 0 ram 0 60;" \ 70 "bootm ${kernel_addr_r};" \ 71 "fi\0" 72 73 #define BOOTENV_DEV_NAME_USB_DFU(devtypeu, devtypel, instance) \ 74 "usbdfu " 75#else 76 #define BOOTENV_DEV_USB_DFU(devtypeu, devtypel, instance) 77 #define BOOTENV_DEV_NAME_USB_DFU(devtypeu, devtypel, instance) 78#endif 79 80#ifdef CONFIG_CMD_USB 81#define BOOT_TARGET_DEVICES_USB(func) func(USB, usb, 0) 82#else 83#define BOOT_TARGET_DEVICES_USB(func) 84#endif 85 86#ifdef CONFIG_CMD_NVME 87 #define BOOT_TARGET_NVME(func) func(NVME, nvme, 0) 88#else 89 #define BOOT_TARGET_NVME(func) 90#endif 91 92#ifdef CONFIG_CMD_SCSI 93 #define BOOT_TARGET_SCSI(func) func(SCSI, scsi, 0) 94#else 95 #define BOOT_TARGET_SCSI(func) 96#endif 97 98#ifndef BOOT_TARGET_DEVICES 99#define BOOT_TARGET_DEVICES(func) \ 100 func(ROMUSB, romusb, na) \ 101 func(USB_DFU, usbdfu, na) \ 102 func(MMC, mmc, 0) \ 103 func(MMC, mmc, 1) \ 104 func(MMC, mmc, 2) \ 105 BOOT_TARGET_DEVICES_USB(func) \ 106 BOOT_TARGET_NVME(func) \ 107 BOOT_TARGET_SCSI(func) \ 108 func(PXE, pxe, na) \ 109 func(DHCP, dhcp, na) 110#endif 111 112#define BOOTM_SIZE __stringify(0x1700000) 113#define KERNEL_ADDR_R __stringify(0x08080000) 114#define KERNEL_COMP_ADDR_R __stringify(0x0d080000) 115#define FDT_ADDR_R __stringify(0x08008000) 116#define SCRIPT_ADDR_R __stringify(0x08000000) 117#define PXEFILE_ADDR_R __stringify(0x01080000) 118#define FDTOVERLAY_ADDR_R __stringify(0x01000000) 119#define RAMDISK_ADDR_R __stringify(0x13000000) 120 121#include <config_distro_bootcmd.h> 122 123#ifdef CONFIG_OF_UPSTREAM 124#define FDTFILE_NAME CONFIG_DEFAULT_DEVICE_TREE ".dtb" 125#else 126#define FDTFILE_NAME "amlogic/" CONFIG_DEFAULT_DEVICE_TREE ".dtb" 127#endif 128 129#ifndef CFG_EXTRA_ENV_SETTINGS 130#define CFG_EXTRA_ENV_SETTINGS \ 131 "stdin=" STDIN_CFG "\0" \ 132 "stdout=" STDOUT_CFG "\0" \ 133 "stderr=" STDOUT_CFG "\0" \ 134 "kernel_comp_addr_r=" KERNEL_COMP_ADDR_R "\0" \ 135 "kernel_comp_size=0x2000000\0" \ 136 "fdt_addr_r=" FDT_ADDR_R "\0" \ 137 "scriptaddr=" SCRIPT_ADDR_R "\0" \ 138 "kernel_addr_r=" KERNEL_ADDR_R "\0" \ 139 "pxefile_addr_r=" PXEFILE_ADDR_R "\0" \ 140 "fdtoverlay_addr_r=" FDTOVERLAY_ADDR_R "\0" \ 141 "ramdisk_addr_r=" RAMDISK_ADDR_R "\0" \ 142 "fdtfile=" FDTFILE_NAME "\0" \ 143 "dfu_alt_info=fitimage ram " KERNEL_ADDR_R " 0x4000000 \0" \ 144 BOOTENV 145#endif 146 147 148#endif /* __MESON64_CONFIG_H */ 149